@charset "utf-8";
@import url(https://fonts.googleapis.com/earlyaccess/notosansjp.css);

/*--------------------
Reset
--------------------*/

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}
li {
    list-style: none;
}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section,main {
    display:block;
}
nav ul {
    list-style:none;
}
blockquote, q {
    quotes:none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}
a {
    margin:0;
    padding:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
    text-decoration: none;
}
img,video {
    vertical-align: bottom;
}
img {
  image-rendering: -webkit-optimize-contrast;
}
/* change colours to suit your needs */
ins {
    background-color:#ff9;
    color:#000;
    text-decoration:none;
}
/* change colours to suit your needs */
mark {
    background-color:#ff9;
    color:#000;
    font-style:italic;
    font-weight:bold;
}
del {
    text-decoration: line-through;
}
abbr[title], dfn[title] {
    border-bottom:1px dotted;
    cursor:help;
}
table {
    border-collapse:collapse;
    border-spacing:0;
}
/* change border colour to suit your needs */
hr {
    display:block;
    height:1px;
    border:0;
    border-top:1px solid #ccc;
    margin:1em 0;
    padding:0;
}
input, button, select, textarea {
    /* vertical-align:middle;
    font-family: inherit;
    font-size: inherit; */
}
*,
*::before,
*::after {
    box-sizing: border-box;
}


body.noscroll {
  overflow: hidden; /* スクロールバーを非表示にする */
  height: 100%; /* 高さを画面に合わせる */
}

a {
  color:#2D2D2D;
}

p {

  letter-spacing: 0.1em;
  text-align: justify;
}

header,
main,
footer {
  width:100%;
  margin:0 auto;
}

img {
  width:100%;
}

.pc {
  display: none!important;
}

/* flexbox */
.spflex { display: flex;}
.spcolumn {
   display: flex;
   flex-direction: column;
}


h2 {
  font-size: 1.875rem;
  width: fit-content;
  display: block;
  text-align: center;
  position: relative;
  line-height: 120%;
  z-index: 3;
}

article p.exp {
  font-size: 0.875rem;
  text-align: center;
  width: fit-content;
  display: block;
  font-weight: 500;
  margin-bottom: 1.5rem;
  position: relative;
  z-index: 3;
}


/* ヘッダー */
header {
  width: 100%;

  height: 38.1875rem;
  position: relative;
  z-index: 10;
}

header.sub {
  height: 3.75rem;
}

header .mv_area {
  position: relative;
  z-index: 4;
}



/* 表示順 */
header .nav {
position: absolute;
z-index: 3;
justify-content: space-between;
align-items: center;
width: 100%;
}


.mainvisual {
  /* height: 500px; */
  width: 100%;
  position: absolute;
  z-index: 2;
}

.header_nav.in_hd {
  display: none;
}

header .nav.scroll_nav {
  z-index: 3;
  position: fixed;
  top: 0;
  left: 0;
  background-color: #ffffff;
  height: 3.75rem;
  display: flex;
  align-items: center;
  width: 100%;
}
  


h1 {
  width: 14.375rem;
  height: 2.125rem;
  margin: 0.5rem;
}
.nav_logo {
  width: 14.375rem;
height: 2.125rem;
  margin: 0.5rem;
  display: block;
}


h1 img,
.nav_logo img {
  width: 85%;
  height: auto;

  }

/* ナビ */
.sp_nav {
  width: 30px;
  height: 22px;
  margin-right: 0.9rem;
}

.openbtn {
	/*ボタン内側の基点となるためrelativeを指定。
追従するナビゲーションの場合はfixed＋top、rightといった位置をセットで指定*/
	position: relative;
	/* background:#57a2c7; */
	cursor: pointer;
  width: 30px;
  height: 22px;
	border-radius: 5px;
  z-index: 120;
}

/*ボタン内側*/
.openbtn span {
    display: inline-block;
    transition: all .4s;/*アニメーションの設定*/
    position: absolute;
    left: 0;
    height: 3px;
    background: #ffffff;
	width: 30px;
  }

.scroll_nav .openbtn span {
  background: #1675B8;
}

.openbtn span:nth-of-type(1) {
	top:0;	
}

.openbtn span:nth-of-type(2) {
	top:50%;
}

.openbtn span:nth-of-type(3) {
	top:100%;
}

/*activeクラスが付与されると線が回転して×に*/
.openbtn.active span {
  background: #1675B8;
}

.openbtn.active span:nth-of-type(1) {
    top: 0;
    left: 0;
    transform: translateY(6px) rotate(-45deg);
    width: 30px;
}

.openbtn.active span:nth-of-type(2) {
	opacity: 0;/*真ん中の線は透過*/
}

.openbtn.active span:nth-of-type(3){
    top: 12px;
    left: 0;
    transform: translateY(-6px) rotate(45deg);
    width: 30px;
}



.g-nav{
  /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
  position:fixed;
  /*ナビのスタート位置と形状*/
top:0;
  right: 0;
width:100%;
  height: 100vh;/*ナビの高さ*/
background:#ffffff;
z-index: -1;
/* display: none; */
opacity: 0; /* 初期状態では透明 */
transition: all 0.3s;
display: none;


}

.g-nav.panelactive{
display: block;
  opacity: 1;
  z-index:100;
}

.g-nav .sc_area {
  height: calc(100% - 3.75rem);
  overflow:scroll;
}



/*ナビゲーション*/
.g-nav .nav_logo {
  top: 0;
}

.scroll_nav .g-nav div.logoarea {
  width: 80%;
  height: 3.75rem;
  display: flex;
  align-items: center;
}


.g-nav ul {
  width: 90%;
  /* margin-bottom: 1rem; */
  margin-bottom: 2rem;

}

/*リストのレイアウト設定*/

.g-nav li{
  width: 100%;
  border-bottom: solid 1px #cacaca;
}

.g-nav li a{
  display: flex;
  width: 100%;
  padding: 0.8rem 1.3rem;
  justify-content: space-between;
  color: #297DB8;
}

.g-nav li a:after {
  content: ">";
  color: #B9A871;
  font-size: 1.5rem;
font-style: normal;
font-weight: 500;
line-height: 1;

}


/* 翻訳 */
.ls {
  display: none;
}

.g-nav .ls {
  width: 90%;
  height: 2.6875rem;
  background: #B9A871;
  align-items: center;
  gap: 0.2rem;
  padding:0 0.5rem;
  justify-content: center;
  margin-bottom: 1rem;
  }
  
  .g-nav .ls .gtranslate_wrapper {
    display: flex;
  }
  .g-nav .ls .gtranslate_wrapper a {
    width: 3.125rem;
    height: 2.0625rem;
    transition: all 0.3s ease; 
  }
  .g-nav .ls .gtranslate_wrapper a:hover {
  opacity: 0.6;
  transition: all 0.3s ease; 
  }
  
  
  .g-nav .ls .gtranslate_wrapper a img {
    width: 3.125rem;
    height: 2.0625rem;
  }
  
  
  
  .g-nav .ls .gtranslate_wrapper a:nth-child(n+4){
    display: none;
  }
  
  .g-nav .ls span {
    color: #ffffff;
    font-size: 0.8rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1;
  
  }

  .sp_menu_bn {
    width: 90%;
    margin-bottom: 1rem;
  }
  

  .ft_menu {
    width: 100%;
    height: 3.625rem;
  }
  
  .ft_menu.spflex {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 4;
  }

  .ft_menu.spflex.nobox {
    z-index: 1;
  }

  .ft_menu a {
    width: 50%;
    height: 100%;
    color: #ffffff;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
  }
  .ft_menu a.cnbtn {
    background: #81BC44;
  }
  .ft_menu.spflex a.cnbtn {
    background: #B9A871;
  }

  .ft_menu a.cnbtn span {
    font-size: 1.125rem;
    text-align: center;
    line-height: 110%;
  }
  .ft_menu a.cnbtn span small {
    font-size: 0.7rem;
    display: block;
  }

  .ft_menu a.cnbtn img.icn {
    width: 2.125rem;
height: 2.125rem;
  }


  .ft_menu a.dlbtn {
    background: #297DB8;
  }

  .ft_menu a.dlbtn span {
    font-size: 1rem;
    line-height: 110%;
    text-align: center;
  }
  .ft_menu a.dlbtn span small:first-child {
    font-size: 0.625rem;
  }
  .ft_menu a.dlbtn span small:nth-child(2) {
    font-size: 0.5rem;
  }

  .ft_menu a.dlbtn  img.icn {
    width: 1.914rem;
height: 1.914rem;
  }

  .ft_menu a img.ar {
    width: 0.53125rem;
    height: 1.0625rem;
  }


/* メインビジュアル */
.mainvisual {
  overflow: hidden;
  height: 38.1875rem;
  background: #ffffff;
}
.mainvisual:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(65, 77, 119, 0.22);
  z-index: 5;
}
.mainvisual .mainbg1 {
  display: block;
  background-image: url(../img/main_bg_1.png);
  background-size: cover;
  background-repeat: no-repeat;
  position: absolute;
  z-index: 6;
  top: -5px;
  left: -5px;
  width: 80%;
  height: 10rem;
}
.mainvisual .mainbg2 {
  display: block;
  background-image: url(../img/main_bg2.png);
  background-size: cover;
  background-repeat: no-repeat;
  position: absolute;
  z-index: 6;
  bottom: -5px;
  right: -5px;
  width: 11.125rem;
    height: 17.375rem;
}

.mainvisual .maintitle {
  display: block;
  width: fit-content;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  z-index: 5;
  filter: drop-shadow(2px 4px 3px rgba(0, 0, 0, 0.45));
}

.mainvisual .maintitle strong {
  color: #ffffff;
  font-size: 3.125rem;
font-style: normal;
font-weight: 400;
line-height: 100%; 
display: block;
margin-bottom: 1rem;
white-space: nowrap;
letter-spacing: 0.1rem;
}

.mainvisual .maintitle span {
  color: #ffffff;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 136%; /* 2.89rem */
  letter-spacing: 0.18rem;
}


.anime {
  width: 100%;
  display: flex;
  flex-direction: column;
  position: absolute;
}

.image-anime {
  width: 100%;
  height: calc(38.1875rem / 3);
  overflow: hidden;
  position: relative;
  display: flex;
  justify-content: flex-start;
}
.image-container {
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  position: absolute;
}
.slide-up {z-index: 3;}
.fadeout {z-index: 2;}
.back {z-index: 1;}




/* 画像 */
.image-container img {
  width: 120%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  left: -10%;
  /* transform: translateY(100%);  */
}

.first-move {
  z-index: 3;
  /* display: none!important; */
}
.second-move{z-index: 4; 
  /* display: none!important; */
}
.second-move.copy {
  z-index: 2;
  /* display: none!important; */
}
.third-move{z-index: 4;}
.forth-move{z-index: 5;}


/* スライドアップ */
.slide-up {
  width: 100%;
  height: 100%;
  position: absolute;
}

/*アニメーションの基本設定を共通化*/
.ab-anime {
	animation-iteration-count: infinite;
	animation-duration: 7s;
	/* animation-delay: 1s; */
	animation-fill-mode: normal;
  animation-delay: 0s;

}



/* 基本 画像の移動前半 */
.imagemain {
  animation-name: slowSlide;
  animation-timing-function: linear;
  animation-delay: 0s;
  
}

@keyframes slowSlide {
  0% {  transform: translateX(0);}
  100% {  transform: translateX(-10%);}
}

/* 基本 画像の移動後半 　最初の位置になるように*/
.imagemain_after {
  animation-name: slowSlide_After;
  animation-timing-function: linear;
  animation-delay: 0s;
}

@keyframes slowSlide_After {
  from , 20% { transform: translateX(10%);}
  100% {  transform: translateX(0);}
}


/* A → B */
.first-move .one .slide-up { animation-name: slide_f_1; }
.first-move .one .fadeout { animation-name: fo_f_1; }
.first-move .two .slide-up { animation-name: slide_f_2; }
.first-move .two .fadeout { animation-name: fo_f_2; }
.first-move .three .slide-up { animation-name: slide_f_3; }
.first-move .three .fadeout { animation-name: fo_f_3; }


/* AB ①スライドアップ */
@keyframes slide_f_1 {
  from {clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  10% { clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  28% { clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%); }
  95% {opacity: 1;}
  100% {opacity: 0;}
}

/* AB ①フェードアウト */
@keyframes fo_f_1 {
  0%, 18% { opacity: 1; }
  28% { opacity: 0; }
}



/* AB ②スライドアップ */
@keyframes slide_f_2 {
  from {clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  15% { clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  33% { clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%); }
  95% {opacity: 1;}
  100% {opacity: 0;}
}

/* AB ②フェードアウト */
@keyframes fo_f_2 {
  0%, 20% { opacity: 1; }
  33% { opacity: 0; }
}



/* AB ③スライドアップ */
@keyframes slide_f_3 {
  from {clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  20% { clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  38% { clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%); }
  95% {opacity: 1;}
  100% {opacity: 0;}
}

/* AB ③フェードアウト */
@keyframes fo_f_3 {
  0%, 25% { opacity: 1; }
  38% { opacity: 0; }
}



/* A → B おわり*/

/* B → A */
.second-move .one .slide-up { animation-name: slide_s_1; }
.second-move .one .fadein { animation-name: fo_s_1; }
.second-move .two .slide-up { animation-name: slide_s_2; }
.second-move .two .fadein { animation-name: fo_s_2; }
.second-move .three .slide-up { animation-name: slide_s_3; }
.second-move .three .fadein { animation-name: fo_s_3; }

/* BA ①スライドアップ */
@keyframes slide_s_1 {
  from {clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  60% { clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  78% { clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%); }
}

/* BA ①フェードイン */
@keyframes fo_s_1 {
  0%, 65% { opacity: 0; }
  78% { opacity: 1; }
}


/* BA ②スライドアップ */
@keyframes slide_s_2 {
  from {clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  65% { clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  83% { clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%); }
}

/* BA ②フェードイン */
@keyframes fo_s_2 {
  0%, 70% { opacity: 0; }
  83% { opacity: 1; }
}


/* BA ③スライドアップ */
@keyframes slide_s_3 {
  from {clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  70% { clip-path: polygon(100% 0, 100% 0%, 100% 100%, 100% 100%);}
  88% { clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%); }
}

/* BA ③フェードイン */
@keyframes fo_s_3 {
  0%, 75% { opacity: 0; }
  88% { opacity: 1; }
}





/* フッター */
footer {
  width: 100%;
  background: #0985D1;
  padding: 5rem 0 0;
  background-image: url(../img/footer_bg_sp.png);
  background-size: cover;
  background-position: center;
  padding-bottom: 3.625rem;
}
footer div.spcolumn {
  width: 90%;
  background: #ffffff;
  padding: 1rem;
  gap: 1rem;
  justify-content: center;
  position: relative;

  z-index: 3;
  margin-bottom: 1rem;
}

footer div.pcflex:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  background: #ffffff;
  top: 0;
  left: 0;
  z-index: 2;
}

footer div.pcflex span.ft_title {
  color: #C7D8E5;
  font-size: 3.25rem;
  position: absolute;
  left: 0;
  top: -3.2rem;
  opacity: 0.39;
  z-index: 1;
}

footer div div {
  position: relative;
  z-index: 3;
}
footer div div img {
  width: 90%;
  margin:0 5%;
}
footer div div dl {
  width: 100%;
  border-bottom: solid 1px #cacaca;
  padding: 0.8rem 0.5rem;
  gap: 0.7rem;
}
footer div div dl:last-child {
  border: 0;
}
footer div div dl dt {
  font-size: 0.875rem;
  width: 6em;
}
footer div div dl dd {
  width: calc(100% - 6em);
  font-size: 0.75rem;
}
footer div iframe {
  width: 100%;
  height: 17.5rem;
  position: relative;
  z-index: 3;
}

footer ul {
  width: 90%;
  flex-wrap: wrap;
  padding: 0 1rem;
  margin-bottom: 1rem;
}

footer ul li {
  width: 50%;
}

footer ul li.wd100 {
  width: 100%;
}

footer ul li a {
  color: #ffffff;
  font-size: 0.8125rem;
}

footer ul li a:before {
  content: "＞";
}


footer p.copyright {
  width: 100%;
  display: flex;
  justify-content: center;
  background: #ffffff;
  padding: 0.5rem 0;

font-size: 0.625rem;
white-space: nowrap;
text-align: center;
letter-spacing: -0.01375rem;
margin-bottom: 5rem;
}

footer p.copyright a {

  color: #297DB8;
}



/* 翻訳 */
footer .ls {
  width: 90%;
  height: 2.6875rem;
  border: solid 1px #ffffff;
  align-items: center;
  gap: 0.2rem;
  padding:0 0.5rem;
  justify-content: center;
  margin-bottom: 1rem;
  }
  
  footer .ls .gtranslate_wrapper {
    display: flex;
  }
  footer .ls .gtranslate_wrapper a {
    width: 3.125rem;
    height: 2.0625rem;
    transition: all 0.3s ease; 
  }
  footer .ls .gtranslate_wrapper a:hover {
  opacity: 0.6;
  transition: all 0.3s ease; 
  }
  
  
  footer .ls .gtranslate_wrapper a img {
    width: 3.125rem;
    height: 2.0625rem;
  }
  
  
  
  footer .ls .gtranslate_wrapper a:nth-child(n+4){
    display: none;
  }
  
  footer .ls span {
    color: #ffffff;
    font-size: 0.8rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1;
  
  }




/* こんなお悩みはありませんか */
.worries {
  width: 100%;
  padding: 4rem 0 6rem;
  background-image: url(../img/wirrues_bg.webp);
  background-size: cover;
  background-position: center bottom;
  position: relative;
  overflow: hidden;
  /* height: 55.5625rem; */
}
.worries:after {
  content: "";
  display: block;
  position: absolute;
  top: 5rem;
  left: 50%;
  transform: translateX(-50%) rotate(-7deg);
  -webkit-transform: translateX(-50%) rotate(-7deg);
  -ms-transform: translateX(-50%) rotate(-7deg);

  width: 150%;
  height: 90%;
  background: rgba(255, 255, 255, 1);
  backdrop-filter: blur(10px);
  z-index: 1;
}
.worries h2 {
  font-size: 1.125rem;
  line-height: 112%;
  text-align: center;
  background: #0D97DF;
  display: block;
  width: 92%;
  padding: 0.3rem;
  position: relative;
  font-weight: 600;
  margin-bottom: 4rem;
  z-index: 3;
}
.worries h2:before {
  content: "";
  display: block;
  background-image: url(../img/what.png);
  background-repeat: no-repeat;
  background-size: contain;
  width:16.23319rem ;
  height: 3rem;
transform: rotate(-8.902deg);
top: -2.3rem;
left: -0.3rem;
position: absolute;
}

.worries h2:after {
  content: "";
  display: block;
  background: #0D97DF;
  width: 1.6rem;
  height: 1.4rem;
position: absolute;
clip-path: polygon(0 0, 50% 100%, 100% 0);
bottom: -1.38rem;
left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

.worries div.spcolumn {
  width: 90%;
  gap: 1.5rem;
  position: relative;
  z-index: 3;
  margin-bottom: 2rem;
}

.worries div.spcolumn div {
  align-items: center;
  margin-bottom: 1rem;
}


.worries div.spcolumn div h3 {
  font-size: 0.875rem;
  font-weight: normal;
  width: fit-content;
  padding: 0.3rem 1rem;
  margin-bottom: 0.5rem;
  display: block;
  background-color: #B9A871;
  clip-path: polygon(5% 0%, 100% 0%, 95% 100%, 0% 100%);
  order: 0;
}

.worries div.spcolumn div h4 {
  order: 1;
  font-size: 1.25rem;
  letter-spacing: 0.1925rem;
  white-space: nowrap;
  margin-bottom: 0.8rem;
}

.worries div.spcolumn div .img_area {
  margin-bottom: 0.5rem;
  order: 2;

}
.wr1 img {width: 11rem;}
.wr2 img {width: 12rem;}
.wr3 img {width: 8rem;}


.worries div.spcolumn div p {
  order: 3;
  font-size: 0.875rem;
  line-height: 1.375rem; 
  letter-spacing: 0.0875rem;
  text-align: justify;
}

.worries span.lg_txt {
  color: #0D97DF;
  font-size: 1.25rem;
  position: relative;
  z-index: 5;
  font-weight: 600;
  width: fit-content;
  align-items: center;
  gap: 0.5rem;
  line-height: 0;
}

.worries span.lg_txt img {
  width: 90%;
}


/* 選ばれる４つの理由 */
.choice_four {
  padding:3rem 0 4rem;
  background: 
    linear-gradient(90deg, rgba(15, 164, 232) 1.63%, rgba(9, 133, 209) 99.79%);
  position: relative;
  overflow: hidden;
}
.choice_four:after {
  position: absolute;
  top: 0;
  right: -3rem;
  content: "";
  display: block;
  width: 100%;
  height: 10.8125rem;
  background-image:url(../img/choice_bg.webp);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 120%;
  opacity: 0.4;
  z-index: 1;
}

.choice_four h2 {
  font-size: 1.875rem;
  align-items: center;
  width: fit-content;
  margin-bottom: 2.5rem;
  text-align: center;
  line-height: 130%;
  position: relative;
  z-index: 3;
}
.choice_four h2 strong {
  font-size: 2.1875rem;
  margin-bottom: 0.4rem;
}
.choice_four h2 img {
  width: 18.42238rem;
  margin-right: -0.3em;
  /* margin-bottom: -0.3em; */
}

.choice_four div.spcolumn {
  width: 90%;
  gap: 1rem;
  position: relative;
  z-index: 3;
}
.choice_four div.spcolumn div.flex {
  background-color: #ffffff;
  width: 100%;
  height: 13.0625rem;
  position: relative;
}
.choice_four div.spcolumn div.flex img.choice_num {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: auto;
  height: 4rem;
}

.choice_four div.spcolumn div img:not(.choice_num) {
  width: 7.5rem;
  height: 13.0625rem;
  object-fit: cover;
  clip-path: polygon(20% 0%, 100% 0%, 80% 100%, 0% 100%);
}

.choice_four div.spcolumn div:nth-child(2) img:not(.choice_num) {

  object-position: left;
}

.choice_four div.spcolumn div div {
  width: calc(100% - 8rem);
  justify-content: center;
  /* gap: 0.5rem; */
  padding-right: 1em;
}

.choice_four div.spcolumn div div h3 {
  font-size: 1rem;
  line-height: 137%; 
  white-space: nowrap;
  margin-bottom: 5px;
  letter-spacing: 0.1em;
}

.choice_four div.spcolumn div div p {
  font-size: 0.8rem;
  font-style: normal;
  font-weight: 300;
  line-height: 1.15rem; /* 157.143% */
letter-spacing: -0.05rem;
  display: block;
}


/* サービス内容 */
.service {
  position: relative;
  background-image: url(../img/tri_bg_1.png);
  background-position: 0 -13rem;
  background-repeat: no-repeat;
  background-size: 20rem auto;
  padding: 3rem 0 10rem;
  height: fit-content;
  overflow: hidden;
}
.service .tri_bg_bottom {
  position: absolute;
  bottom: 12rem;
  right: 0;
  display: block;
  width: 100%;
  height: 15rem;
  background-image: url(../img/tri_bg_2.png);
  /* background-position: 0 33rem; */
  background-repeat: no-repeat;
  background-size: cover;
  z-index: 1;
  

}

.service .bg_bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height:12rem ;
  display: block;
  background-image: url(../img/service_bg_bottom.webp);
  background-repeat: no-repeat;
  background-size: 170%;
  background-position: center center;
  z-index: 2;
}
.service h2 {
  font-size: 1.5625rem;
  width: fit-content;
  margin-bottom: 1rem;
  text-align: center;
}
.service h2 strong {
  font-size: 1.875rem;
  display: block;
}
.service div.sv_list {
  width: 90%;
  max-width: 1364px;
  gap: 1rem;
  margin-bottom: 3rem;
  flex-wrap: wrap;
  justify-content: space-between;
}

.service div.sv_list div {
  width: calc(50% - 0.5rem);
  gap: 0.3rem;
}
.service div.sv_list div.image-animate {
  width: 100%;
}

.service div.sv_list div img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.service div.sv_list div img.sv_icon {
  width: 2.54013rem;
  margin-top: -3rem;
}

.service div.sv_list div h3 {
  font-size: 1rem;
  text-align: center;
  width: 100%;
  display: flex;
  height: 2em;
  align-items: center;
  justify-content: center;
  line-height: 113%; 
  padding-top: 2.5rem;
  letter-spacing: 0.1em;
}

.service div.sv_list div p {
  font-size: 0.875rem;
font-style: normal;
font-weight: 400;
line-height: 1.375rem; /* 157.143% */
letter-spacing: -0.06rem;
padding-top: 0.8rem;
}

.service div.sv_other {
  width: 90%;
  position: relative;
  background: #FFF;
  box-shadow: 0px 2px 22px 0px rgba(189, 227, 255, 0.52);
flex-wrap: wrap;
padding: 1rem 0.7rem 2rem;
gap: 1.5rem;
justify-content: space-between;
z-index: 3;
}

.sv_other h3 {
  position: absolute;
  font-size: 1.25rem;
  top: 0.2rem;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  margin-top: -1em;
  width: 85%;
  text-align: center;
  /* padding: 0 1rem; */
  display: block;
  background: #ffffff;
}



.sv_other div.spflex {
  width: 100%;
  align-items: center;
  gap: 0.5rem;
}
.sv_other div.spflex:nth-child(2) {
  margin-top: 1rem;
}
.sv_other div div.icon_area {
  display: flex;
  background: #F3F5F6;
  width: 6rem;
height: 6rem;
border-radius: 100%;
justify-content: center;
align-items: center;
}
.sv_other div div.icon_area img {
  /* margin-bottom: 1rem; */
}

.sv_other div:nth-child(2) div.icon_area img {width: 3.5rem;}
.sv_other div:nth-child(3) div.icon_area img {width: 3.6rem;}
.sv_other div:nth-child(4) div.icon_area img {width: 3.6rem;}
.sv_other div:nth-child(5) div.icon_area img {width: 4.5rem;}
.sv_other div:nth-child(6) div.icon_area img {width: 4.5rem;}
.sv_other div:nth-child(7) div.icon_area img {width: 4.5rem;margin-bottom: 0;}

.sv_other div div.txt_area {
  width: calc(100% - 6.5rem);
  flex: 1;
}

.sv_other div div.txt_area h4 {
  font-size: 1rem;
  font-style: normal;
  font-weight: 600;
  line-height: 124%; /* 1.24rem */
  letter-spacing: 0.1em;
}

.sv_other div div.txt_area p {
  font-size: 0.875rem;
font-style: normal;
font-weight: 400;
line-height: 1.375rem; /* 157.143% */
letter-spacing: 0.0525rem;
}


/* 民泊清掃の流れ */
.flow {
  background: #F3F5F6;
  padding: 1rem 0 3rem;
  position: relative;
  overflow: hidden;
}

span.flow_back {
  font-size: 17.5vw; /* ビューポートの幅に応じたフォントサイズ */
  white-space: nowrap; /* 文字が改行されないようにする */
  text-overflow: ellipsis; /* はみ出た内容を省略記号で表示 */
  color: #ECF0F2;
  position: absolute;
  top: 0rem;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  font-weight: normal;
  white-space: nowrap;
}

.flow h2 {
  font-size: 1.875rem;
  text-align: center;
  width: fit-content;
  display: block;
  padding-top:1rem;
}
.flow p.exp {
  font-size: 0.875rem;
  text-align: center;
  width: fit-content;
  display: block;
  font-weight: 500;
  margin-bottom: 1.5rem;
}

.flow .spcolumn {
  width: 90%;
  gap: 0;
}

.flow .spcolumn .flow_list {
  width: 100%;
  align-items: center;
  justify-content: space-between;
  padding: 0;
  margin: 0;
  height: 9rem;
}


.flow .spcolumn .flow_list:nth-child(3) {
  height: 11rem;
}

.flow .pcflex .f_img {
  width: 40%;
}


.flow_list img {
  width: 100%;
  height: auto;
}

.flow_list .line_area {
  width: 11px;
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}


.flow_list .line_area:before {
  content: "";
  width: 1px;
  height: 100%;
  display: block;
  background: #000000;
}

.flow_list .line_area:after {
  content: "";
  position: absolute;
  width: 9px;
  height: 9px;
  background: #ffffff;
  border: solid 2px #B9A871;
  border-radius: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}

.flow_list .bubble_area {
  background-color:#ffffff;
  width: calc(60% - 11px - 2rem);
  height: 90%;
  position: relative;
  padding: 0.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.flow_list .bubble_area:before {
  content: "";
  position: absolute;
  display: block;
  width: 1.18538rem;
height: 1.38044rem;
  clip-path: polygon(0 50%, 100% 100%, 100% 0);
  top: 50%;
  left: -1rem;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  background: #ffffff;
}
.flow_list .bubble_area h3 {
  font-size: 0.9375rem;
  line-height: 117%;

  width: 100%;
  letter-spacing: 0.1em;
}

.flow_list .bubble_area p {
  font-size: 0.8125rem;
font-style: normal;
font-weight: 300;
letter-spacing: 0.05rem;
text-align: justify;
line-height: 126%; 
}






/* 料金表 */
.price {
  padding: 2rem 0;
}
.price h2 {
  font-size: 1.875rem;
  width: fit-content;
  display: block;
  text-align: center;
  line-height: 120%;
}

.price p.exp {

  font-size: 0.875rem;
  text-align: center;
  width: fit-content;
  display: block;
  font-weight: 500;
  margin-bottom: 2rem;
}


table.price-table {
  width: 90%;
  border-collapse: collapse;
  text-align: center;
  margin-bottom: 1rem;
}
  .price-table th, .price-table td {
  padding: 7px;
  border: 1px solid #e6e6e6;
}

.price-table thead th {
  background-color: #B9A871; /* 左側の背景色 */
  color: white;
  font-size: 1rem;
}

.price-table thead th:last-child {
  background-color: #0D97DF; /* 右側の背景色 */
  color: white;
  border-left: 1px solid white; /* 間のボーダーを白に */
}

.price-table tr.alternate {
  background-color: #F7FBFF;
}

.price-table tbody td {
  border-color: #e6e6e6;
  font-size: 1rem;
  font-weight: bold;
}
.price-table tbody tr td:last-child {
  color: #1675B8;
}

.price small {
  text-align: center;
  font-size: 0.75rem;
  width: fit-content;
  display: block;
  margin-bottom: 1rem;
}

.price .exp_box {
  background: #F7F7F7;
  width: 90%;
  padding: 1.5rem 1rem;
}

.price .exp_box h3 {
  font-size: 1rem;
  text-align: center;
  width: fit-content;
  display: block;
  margin-bottom: 0.5rem;
}
.price .exp_box p {
  font-size: 0.875rem;
  display: flex;
  align-items: center;
  margin-bottom: 0.7rem;
  line-height: 120%;
  text-align: left;
}
.price .exp_box p span {
  white-space: nowrap;
}


/* サービス対応エリア */
.service_area {
  width: 100%;
  background-image:url(../img/area_bg_sp.png) ;
  background-size: cover;
  padding: 3rem 0;
}

.service_area h2 {
  font-size: 1.875rem;
  font-style: normal;
  font-weight: 600;
  line-height: 127%;
  text-align: center;
  margin-bottom: 1rem;
}


.service_area .area_exp {
  width: 90%;
  align-items: center;
  gap: 1rem;
}

.service_area .area_exp img {
width: 100%;
}

.service_area .area_exp div {
  width: 100%;
  flex: 1;
}

.service_area .area_exp div p {
  font-size: 0.875rem;
font-style: normal;
line-height: 154%; /* 1.3475rem */
letter-spacing: 0.1225rem;
margin-bottom: 1rem;
}

.service_area .area_exp div .address {
  width: 100%;
  background: #ffffff;
  padding: 1rem 1rem;
}

.service_area .area_exp div .address img {
  width: 12rem;
}

.service_area .area_exp div .address p {
  font-size: 0.875rem;
  font-style: normal;
  line-height: 150%; /* 1.3125rem */
  letter-spacing: 0.09625rem;
margin: 0 auto;
width: fit-content;

}


/* 口コミ */
.review {
  padding: 1rem 0 7rem;
  position: relative;
}
.review .rv_bg {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 16rem;
  background-image: url(../img/rv_bg.webp);
  background-size: 110%;
  background-position: center 60%;
  z-index: 1;
}


.review h2 {
  font-size: 1.875rem;
  width: fit-content;
  display: block;
  text-align: center;
}

.review p.exp {
  font-size: 0.875rem;
  text-align: center;
  width: fit-content;
  display: block;
  font-weight: 500;
  margin-bottom: 2rem;
}


.review_slide {
  height: 22rem;
  /* height: fit-content; */
  z-index: 3;
  display: flex!important;
  align-items: stretch; 
  padding-bottom: 1rem;
  overflow: auto;
}
.review_slide .slick-list,
.review_slide .slick-track {
  height: 100%;
}
.review_slide .slick-slide {
  height: auto;
}



.review_slide li {
  position: relative;
  height: 100%!important;
  /* padding: 0 0 1rem; */
}
.review_slide li img.rv_icon {
  position: absolute;
  top: 0;
  left: 0;
  width: 3.7rem;
  height: auto;
}
.review_slide li div {
  margin: 1.5rem auto;
  width: 96%;
  max-width: 28.86738rem;
  height: 90%;
  border-radius: 0.4375rem;
  padding: 1rem 1rem;
background: #FFF;
box-shadow: 0px 4px 10px 0px rgba(13, 151, 223, 0.13);
}

.review_slide li div h3 {
  font-size: 0.95rem;
font-style: normal;
font-weight: 600;
line-height: 1.3rem;
text-align: center;
padding: 0.5rem;
display: block;
width: 96%;
border-bottom: solid 1px #1675B8;
white-space: nowrap;
margin-bottom: 1rem;
}

.review_slide li div p {
  
font-size: 0.875rem;
font-style: normal;
line-height: 1.5rem;
text-align: left;
}


.review_slide .slick-prev,
.review_slide .slick-next {
  /* background: #1675B8; */
  border-radius: 100%;
  width: 35px;
  height: 35px;
  z-index: 3;
  /* opacity: 0.5; */
  transform: none;
  background: #1675B8;
  opacity: 0.4;
}

.review_slide .slick-prev {
  left: 3%;
  border: 0;
    display: flex;
    justify-content: center;
    align-items: center;

}
.review_slide .slick-prev:before {
  content: "";
  z-index: 5;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  height: 15px;
  width: 15px;
  transform: rotate(-135deg);
  margin-left: 7px;
}


.review_slide .slick-next {
  right: 3%;
  border: 0;
  display: flex;
  justify-content: center;
  align-items: center;

  z-index: 3;
}
.review_slide .slick-next:before{
  content: "";
  z-index: 5;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  height: 13px;
  width: 13px;
  transform: rotate(45deg);
  margin-right: 7px;
}



/* 採用情報 */
.recruit {
  background-image: url(../img/recruit_bg.webp);
  position: relative;
  background-size: cover;
  background-position: 20% bottom;
  background-repeat: no-repeat;
  width: 100%;
  /* height: 1950px; */
  padding: 1rem 0 3rem;
  overflow: hidden;
}

.recruit:before {
content: "";
display: block;
position: absolute;
top: 7rem;
left: 30%;
transform: translateX(-50%) rotate(-10deg);
-webkit-transform: translateX(-50%) rotate(-10deg);
-ms-transform: translateX(-50%) rotate(-10deg);

width: 200%;
height: 30rem;
background: rgba(255, 255, 255, 0.806);
backdrop-filter: blur(10px);
z-index: 2;
}
.recruit:after {
  content: "";
  display: block;
  background: #ffffffcd;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
span.recruit_back {
  font-size: 25vw; /* ビューポートの幅に応じたフォントサイズ */
  white-space: nowrap; /* 文字が改行されないようにする */
  text-overflow: ellipsis; /* はみ出た内容を省略記号で表示 */
  color: #e4e4e4;
  position: absolute;
  top: 0rem;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  font-weight: normal;
  white-space: nowrap;
  z-index: 2;
}

.recruit h2, .recruit p {
  z-index: 3;
  position: relative;
}

.recruit ul.recruit_slide {
  width: 100%;
  height:20rem ;
  z-index: 3;
  position: relative;
  display: flex;
  align-items: stretch;
  margin-bottom: 3rem;

}
.recruit ul.recruit_slide li {
padding: 0 0.5rem;
height: 20rem;

}
.recruit ul.recruit_slide li div.column {
background: #ffffff;
padding: 0.7rem;
height: 100%;
}


.recruit ul.recruit_slide li div.column div {
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.recruit ul.recruit_slide li .animate-me {
  width: 40%;
  height:auto;
  aspect-ratio: 1 / 1;
}

.recruit ul.recruit_slide li .animate-me img {
  width: 100%;
  height: 100%;
  object-fit: cover;

}

.recruit ul.recruit_slide li div div h3 {
  font-size: 1.25rem;
  width: fit-content;
  margin: 0;
  letter-spacing: 0.1em;
}
.recruit ul.recruit_slide li div div h3 small {
  font-size: 0.8125rem;
  display: block;
}

.recruit ul.recruit_slide li div p {
  font-size: 0.8125rem;
font-style: normal;
font-weight: 400;
line-height: 150%; /* 1.40563rem */
letter-spacing: 0.08125rem;
}




.recruit_slide .slick-prev,
.recruit_slide .slick-next {
  border-radius: 100%;
  width: 50px;
  height: 50px;
  z-index: 3;
  transform: none;
}

.recruit_slide .slick-prev {
  left: 0;
  border: 0;
    display: flex;
    justify-content: center;
    align-items: center;

}
.recruit_slide .slick-prev:before {
  content: "";
  z-index: 5;
  border-top: 3px solid #B9A871;
  border-right: 3px solid #B9A871;
  height: 25px;
  width: 25px;
  transform: rotate(-135deg);
  margin-left: 7px;
}


.recruit_slide .slick-next {
  right: 0;
  border: 0;
  display: flex;
  justify-content: center;
  align-items: center;

  z-index: 3;
}
.recruit_slide .slick-next:before{
  content: "";
  z-index: 5;
  border-top: 3px solid #B9A871;
  border-right: 3px solid #B9A871;
  height: 25px;
  width: 25px;
  transform: rotate(45deg);
  margin-right: 7px;
}



.recruit .app {
  position: relative;
  z-index: 3;
  background: #ffffff;
  width: 90%;
  padding:1rem;
}

.recruit .app dl {
  width: 90%;
  margin: 0 auto;
  border-bottom: solid 1px #cacaca;
  align-items: flex-start;
  padding:1rem 0;
}

.recruit .app dl:last-child {
  border: none;
}

.recruit .app dl dt {
  font-size: 1rem;
  align-items: center;
  width: 100%;
  gap: 0.5rem;
}

.recruit .app dl dt img {
  width: 2rem;
}

.recruit .app dl dd {
  width:100%;
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 500;
  line-height: 150%; /* 1.40625rem */
  letter-spacing: 0.01875rem;
  padding-top: 0.3rem;
  padding-left: 2em;

}

.recruit .app dl dd ul {

}
.recruit .app dl dd ul li {

}

.recruit .app dl dd small {
  font-size: 0.8125rem;
}

.recruit .app dl dd ul li:nth-child(odd) {
  width: 13em;
}


/* よくある質問 */
.faq {
  padding:2rem 0;
  background-image: url(../img/faq_bg.webp);
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: right bottom;
  position: relative;
}

.faq:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  background: #ffffffb7;
  top: 0;
  left: 0;
  z-index: 0;
}

.faq p.exp {
  margin-bottom: 2.5rem;
}

.accordion {
  width: 90%;
  flex-wrap: wrap;
  gap: 0.7rem;
  position: relative;
  z-index: 4;
}

.ac_body {
  width: 100%;
  position: relative;
}
.ac_body:first-child {z-index: 9;}
.ac_body:nth-child(2) {z-index: 8;}
.ac_body:nth-child(3) {z-index: 7;}
.ac_body:nth-child(4) {z-index: 6;}
.ac_body:nth-child(5) {z-index: 5;}
.ac_body:nth-child(6) {z-index: 4;}

.accordion-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease;
  opacity: 0;
  width: 100%;
  /* position: absolute; */
  top: 3.6rem;
  background-color: #ffffff;
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
  z-index: 5;
  padding:1rem;
  gap: 1rem;
  margin-top: -1.5rem;
}


.accordion-body.active {
  max-height: 173px; /* 十分に大きな値を設定 */
  opacity: 1;
  margin-top: 0;
}


.accordion-body p {
  padding-top: 0.3em;
  font-size: 0.9375rem;
font-style: normal;
line-height: 130%; 
letter-spacing: 0.05313rem;
}

.accordion-header {
  cursor: pointer;
  font-size: 0.9375rem;
  background-color: #0D97DF;
  color: #ffffff;
  border: none;
  outline: none;
  width: 100%;
  height: 3.6rem;
  display: flex;
  align-items: center;
  padding-left: 1.2rem;
  gap: 1rem;
  line-height: 128%;
  text-align: left;
}

span.question {
  color: #ffffff;
  font-size: 1.25rem;
}

span.op {
  margin-left: auto;
  margin-right: 0.8rem;
  font-size: 1.3rem;
  color: #CFEFFF;
  font-weight: 600;
}

span.op.active {
  font-size: 1rem;
}

span.answer {
  color: #B9A871;
  font-size: 1.4rem;
  font-weight: 200;
}


/* ご相談フォーム */
.contact {
  width: 100%;
  padding: 2rem 0 3rem;
  background: #F3F5F6;
  background-image: url(../img/contact_bg1.png), url(../img/contact_bg2.png); /* 2つの背景画像を設定 */
  background-position: left top, right bottom; /* 1つ目の画像を左上に、2つ目の画像を右下に配置 */
  background-size: 14rem 9rem, 18rem 14rem; /* 各背景画像のサイズを設定 */
  background-repeat: no-repeat, no-repeat; /* 背景画像の繰り返しを無しに設定 */
}

.contact .emergency {
  width: 90%;
  padding: 1rem;
  text-align: center;
  background: #0A8AD5;
  color: #ffffff;
  margin-top: 2rem;
  margin-bottom: 1.5rem;
}

.emergency h3 {
  font-size: 1rem;
  justify-content: center;
  gap: 0.3rem;
  color: #ffffff;
  letter-spacing: 0.07813rem;
  line-height: 1;
  align-items: center;
  margin-bottom: 0;
}

.emergency h3 img {
  width: 1.8rem;
height: 1.8rem;

}

.emergency span {
  color: #ffffff;
  display: block;
  font-size: 1.7rem;
  line-height: 1;
  margin-bottom: 0.5rem;
}
.emergency span a {
  color: #ffffff;
  font-size: 2.3125rem;
  letter-spacing: 0.04625rem;
  line-height: 1;
}

.emergency small {
  color: #ffffff;
  display: block;
  font-size: 0.9rem;
  letter-spacing: -0.02338rem;
}


.form_main {
  width: 90%;
  max-width: 1072px;
  padding: 1.5rem 0.8rem 3rem;
  background: #ffffff;
}

.form_main p {
  text-align: center;
  display: block;
  width: 100%;
  font-size: 0.75rem;
  line-height: 1.5rem; 
  margin-bottom: 1rem;
  letter-spacing: -0.02rem;
}
.form_main p span {
  color: #1675B8;
  font-size: 1rem;
}
.form_main p span.gold {
  color: #B9A871;
  font-size: 0.75rem;
}

form {
  width: 100%;
}
form div {
  justify-content: flex-start;
  margin-bottom: 0.7rem;
  gap: 0.3rem;
}

form div label {
  display: flex;
  width: 100% ;
  font-size: 1rem;
  align-items: center;
}

form div label span {
  color: #B9A871;
}

form div input::placeholder {
  color: #cbcbcb; /* プレースホルダーの色をグレーに設定 */
}

form div textarea::placeholder {
  color:  #cbcbcb; /* テキストエリアのプレースホルダーの色も同様に設定 */
}

form div input {
  width:100% ;
  height: 3rem;
  border-radius: 0;
  border: solid 1px #000000;
  padding: 0.7rem;
  font-size: 1rem;
}


form div.num_area {
  flex-wrap: wrap;
  align-items: center;
}
form div.num_area label {
  width: 100%;
}
span.num_0 {
  font-size: 1rem;
  display: block;
  width: 7%;
  line-height: 1;
}

form div input.num_1 {
  width: 35%;
}

form div input.num_2 {
  width: 45%;
}

form div span.num_3 {
  display: block;
  width: 7%;
  font-size: 1.3rem;
  text-align: center;
  line-height: 1;
}

form div textarea {
  width: 100%;
  height: 5.8125rem;
  padding: 0.7rem;
  font-size: 1rem;
  resize:vertical;
  border-radius: 0;
}
/* 
form div textarea.info {
  height: 7.6875rem;
} */

form div label.lbtop {
  margin-bottom: auto;
}

form div .submitbtn {
  border: 0;
  border-radius: 0;
  background: linear-gradient(90deg, #0FA4E8 1.63%, #0985D1 99.79%);
  color: #ffffff;
  font-size: 0.9375rem;
  width: 17.25rem;
  height: 3rem;
}
form p.caution {
  font-size: 0.9375rem;
}

form p.caution a {
  font-size: 0.9375rem;
  text-decoration: underline;
}



.img_slide {
  height: 8.1875rem;
  width: 100%;
  overflow: hidden;
}

.img_slide div.slide_anime {
  height: 100%;
  animation-iteration-count: infinite;
	animation-duration: 70s;
  animation-timing-function: linear;
  animation-name: imgslide;
}

.img_slide div img {
  height: 100%;
  width: auto;
}


@keyframes imgslide {
  0% {  transform: translateX(0%);}
  100% {  transform: translateX(-252%);}
}


/* モーダル */
/* オーバーレイのスタイル */
#overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5); /* 薄暗い背景 */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
  z-index: 20;
}

/* モーダルウィンドウの基本スタイル */
#modal1, #modal2 {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  
  background: white;
  width: 80vw;
  height: 60vh;
  overflow: auto;
  /* max-width: 400px; */
  padding: 1.5rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: bottom 0.3s;
  visibility: hidden;
  z-index: 9999999;
  transition: opacity 0.3s, transform 0.5s; 
}

/* モーダルウィンドウの表示スタイル */
#modal1:not(.hidden),
#modal2:not(.hidden) {
  visibility: visible;
}

#modal1.hidden,
#modal2.hidden {
 opacity: 0;
}


/* オーバーレイの表示スタイル */
#overlay:not(.hidden) {
  opacity: 1;
  visibility: visible;
}

/* モーダルコンテンツ */
.modal-content {
  text-align: left;
  font-size: 0.9375rem;
font-style: normal;
font-weight: 400;
line-height: 1.625rem; 
}

.modal-content p {
}
.modal-content p span {
  font-weight: bold;
}

.modalClose {
  border: 0;
  font-size: 1.3rem;
  color: #ffffff;
  font-weight: bold;
  background: #C2191F;
  padding: 0.5rem 3rem;
  border-radius: 1.5rem;
}





/* サブページ */


a.top_gotosublink {
  display: flex;
  align-items: center;
  width: fit-content;
  padding: 0.5rem 2rem;
  border-radius: 0.8rem;
  background: #81BC44;
  color: #ffffff;
  font-size: 1.2rem;
  position: relative;
  z-index: 5;
  margin: 1.5rem auto;
}


main.sub {
  padding: 0;
}
.mainvisual_sub {
  width: 100%;
  height: 12rem;
  position: relative;
}

.mainvisual_sub h2 {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  height: fit-content;
padding: 0;
}

.mainvisual_sub .mvsub_back {
  position: absolute;
  width: 100%;
  height: 100%;
  background: #000000;
}

.mainvisual_sub .mvsub_back img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom;
  opacity: 0.9;
}



/* サブページ共通背景 */
.sub_wrap {
  background-image: url(../img/tri_bg_1.png);
  background-position: 0 -13rem;
  background-repeat: no-repeat;
  background-size: 20rem auto;
}

.sub_wrap article.contact {
  background-image: none;
  background: none;
}


/* ぱんくず */
.breadcrumb {
  display: block;
  padding:1rem;
}

.breadcrumb ul, .breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.5rem;
}

.breadcrumb ul li, .breadcrumb ol li {
  color: #000000;
  line-height: 1;
}

.breadcrumb ul li:after, .breadcrumb ol li:after {
  content: "＞";
  margin-left: 0.5rem;
  color: #0c4772;
}

.breadcrumb ul li:last-child:after, .breadcrumb ol li:last-child:after {
  content: none;
}

.breadcrumb ul li a, .breadcrumb ol li a {
  color: #0985D1;
  line-height: 1;
}


.sub_contents {
  width: 90%;
}

.sub_txt {
  margin: 1rem 0;
  font-size: 0.875rem;
}


main.sub h3:not(.emergency h3) {
  color: #0985D1;
  font-size: 1.5rem;
  text-align: center;
  padding-top: 1rem;
}

/* 選ばれる理由 */
main.choosing {}

main.sub.choosing h3 {
  color: #0985D1;
  font-size: 1.5rem;
  text-align: center;
  padding-top: 1rem;

}

.choose_content {
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1rem;
  padding-top: 1rem;
}

.choose_content img {
  width: 100%;
  height: 12rem;
  object-fit: cover;
  object-position: center;
  margin: 0 auto;
}

.choose_content img.cc_top {
  object-position: top;
}

.choose_content h4 {
  font-size: 1.2rem;
  text-align: center;
  color: #0985D1;
  margin-bottom: 1rem;
}

.choose_content p {
  font-size: 1rem;
}


main.sub.choosing h3.bg_all {
  color: #ffffff;
  padding: 0.5rem 0;
  background: linear-gradient(90deg, #0FA4E8 1.63%, #0985D1 99.79%);
  margin-bottom: 1rem;
}




/* 料金表 流れ　*/
main.price {}
main.price article.price {
  padding-top: 0;
}

main.price h3,main.flow h3,main.service h3 {
  font-size: 1.875rem;
  width: fit-content;
  display: block;
  text-align: center;
  z-index: 4;
  position: relative;
  line-height: 1.2;
}

main.price .service_area h3,
main.flow .service_area h3 {
  text-align: left;
}

main.price .flow h3, main.flow .flow h3 {
  /* margin-bottom: 1rem; */
  line-height: 1.1;
}

main.price,
main.flow {
  padding-bottom: 0!important;
}

main.price .flow h4,
main.flow .flow h4 {
  font-size: 0.9375rem;
  line-height: 117%;
  width: 100%;
  letter-spacing: 0.1em;
}


main.price .flow .bubble_area,
main.flow .flow .bubble_area {
  height: fit-content;
}

main.price .flow .flow_list div.f_img,
main.flow .flow .flow_list div.f_img {
  /* width: 90%;
  height: 205px; */
}

main.flow article.flow {
  background: none;
}

main.flow {
  padding: 0;
  background: #F3F5F6;}

main.flow article.flow div.pcflex.auto {
z-index: 3;
    position: relative;
}

main.flow article.faq {
  padding-top: 3rem;
}


main.sub h3.un_hd {
  width: 100%;
  margin: 1rem auto;
  border-bottom: solid 1px #0985D1;
  color: #0985D1;
  font-size: 1.5rem;
  padding-bottom: 0.5rem;
  text-align: center;
}

/* 会社概要 */
/* テーブル全体のスタイル */
table.company_tb {
  width: 100%;
  border-collapse: collapse;
  margin: 20px auto; /* テーブル上下に余白を追加 */
  font-size: 0.9rem; /* フォントサイズを設定 */
  background: #ffffff;
  padding: 0.5rem;
}

/* テーブルのセルのスタイル */
table.company_tb td {
  border: 1px solid #747779; /* セルの境界線 */
  padding: 0.5rem; /* セルの内側の余白 */
}

/* 左側の列のスタイル */
table.company_tb td.colored {
  background-color: #d8effd; /* 背景色 */
  color: #0985D1; /* 文字色 */
  font-weight: bold; /* 太字 */
  vertical-align: middle;
  width: 30%;
}

main.company iframe {
  width: 100%;
}

main.company .representative {
  gap: 1rem;
  margin-bottom: 3rem;
}

main.company .representative img {
  width: 100%;
  height: fit-content;
}

main.company .representative p {
  display: block;
  line-height: 1.5;
  font-size: 1rem;
}

main.company .representative p span {
  text-align: right;
  display: block;
}



/* 民泊清掃代行サービス */
main.sub.service {}
main.sub.service h3 {
  font-size: 1.4rem;
  width: 100%;
}
.sv_contents {
  width: 100%;
  background: #D6EDFA;
  padding: 1.5rem 0;
  margin-bottom: 2rem;
}

.sv_contents .sub_contents {
  background: #ffffff;
  gap: 0;
  margin-bottom: 1rem;
}

.sv_contents .sub_contents img {
  width: 100%;
  height: auto;
}

.sv_contents .sub_contents div {
  padding: 1rem;
}

.sv_contents .sub_contents div h4 {
  color: #0985D1; 
  font-size: 1.5rem;
  border-bottom: solid 2px #0985D1;
  margin-bottom: 0.7rem;
  text-align: center;
}

main.sub.service .sv_other {
  margin-bottom: 3rem;
}

main.sub.service .sv_other h3 {
  color: #1675B8;
  font-size: 1.25rem;
  white-space: nowrap;
  padding-top: 0;
  margin-top: -2rem;
}

main.sub.service .sv_other div.spflex:nth-child(2) {
  margin-top: 0rem;
}


main.sub.service .sub_contents.sv_support {
  /* width: 800px; */
  padding-bottom: 3rem;
}

main.sub.service .sub_contents.sv_support h3 {
  text-align: center;
  display: flex;
  justify-content: center;
  width: 100%;  
  margin-bottom: 1rem;

}

main.sub.service .sub_contents.sv_support strong {
  text-align: center;
  display: flex;
  justify-content: center;
  width: 100%;  
  margin-bottom: 1rem;
  font-size: 1.1rem;
  font-weight: normal;
}

main.sub.service .sub_contents.sv_support h4 {
  color: #0985D1;
  font-size: 1.2rem;
  margin-bottom: 0rem;
}

main.sub.service .sub_contents.sv_support p {
  margin-top: 0.3rem;
}


/* 民泊清掃事例 */
main.casestudy {}


main.casestudy h3 {
  max-width :1000px ;
  width: 90%;
  border-bottom: solid 2px #0985D1;
  margin-bottom: 1.5rem;
}

main.casestudy .sub_contents {
  flex-wrap: wrap;
  gap: 1.5rem;
}

.case_art {
  width: 100%;
}

.beforeafter {
  width: 100%;
  /* margin-bottom: 0.5rem; */
  align-items: center;
}

.beforeafter span {
  width: calc(50% - 0.5em);
  text-align: center;
  font-size: 1.1rem;
  color: #888888;
}

.beforeafter span.ba_after {
  color: #0985D1;
}

.beforeafter span.ba_arrow {
  width: 1em;
}

.beforeafter span.ba_arrow:before {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  border: 0;
  border-top: solid 2px #888888;
  border-right: solid 2px #888888;
  margin-left: 5px;
  margin-top: -2px;
  transform: rotate(45deg);
}




.case_images {
  width: 100%;
  margin-bottom: 0.5rem;
}

.case_images img {
  width: 50%;
  height:auto;
  object-fit: contain;
}

.case_art h4 {
  font-size: 1.1rem;
  color: #0985D1;
}

.case_art p {
  font-size: 1rem;
  margin-bottom: 0.5rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3; /* 表示する行数を3行に設定 */
  overflow: hidden;
  text-overflow: ellipsis; /* 省略記号を表示 */
  line-height: 1.5em; /* 行の高さを設定（フォントサイズに応じて調整） */
  max-height: calc(1.5em * 3); /* 最大の高さを3行分に設定 */
}



.case_art a.detail_btn {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 13.68113rem;
  height: 3.28344rem;
  margin: 1rem auto;
  color: #ffffff;
  background: linear-gradient(to right, #118dcc, #51cec6);
        filter: drop-shadow(0px 3px 4px rgba(0, 0, 0, 0.408));
}

.case_art a.detail_btn:after {
  content: "";
  width: 9px;
  height: 9px;
  border: 0;
  border-top: solid 2px #ffffff;
  border-right: solid 2px #ffffff;
  margin-left: 5px;
  margin-top: -2px;
  transform: rotate(45deg);
  display: block;
}

/* ページャー */
ul.case_pager {
  width: 100%;
  margin-bottom: 3rem;
}

ul.case_pager li {
  width: 2.625rem;
  height: 3.375rem;
  border: solid 1px #888888;
  position: relative;
}

ul.case_pager li a {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}


ul.case_pager li.now {
  background: #c3e9ff;
}

ul.case_pager li.back {
  /* margin-right: 1.5rem; */
}

ul.case_pager li.back a:after,
ul.case_pager li.next a:after {
  content: "";
  width: 0.7rem;
  height: 1.1875rem;
  clip-path: polygon(0 50%, 100% 100%, 100% 0);
  background: #565656;
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}

ul.case_pager li.next {
  /* margin-left: 1.5rem; */
}

ul.case_pager li.next a:after {
  clip-path: polygon(0 0, 0 100%, 100% 50%);
}



/* 清掃事例詳細ページ */
main.casestudy_detail h2 {
  width: 90%;
  border-bottom: solid 2px #0985D1;
  margin-bottom: 3rem;
  color: #0985D1;
  text-align: left;
  font-size: 1.5rem;
}

main.casestudy_detail h3 {
  width: 100%;
  max-width: 100%;
  text-align: left!important;
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
  border-bottom: none;
} 

main.casestudy_detail .sub_contents {
  margin-bottom: 3rem;
}

main.casestudy_detail p {
  margin-bottom: 1.5rem;
}

main.casestudy_detail a.gototop_btn {
  width: 90%;
  display: block;
  margin-bottom: 3rem;
}

main.casestudy_detail a.gototop_btn img {
  width: 100%;
  height: auto;
}


/* コラム */

main.cs_column h4 {
  line-height: 2.5;
}


/* 追尾メニュー */
.ft_menu {
  flex-wrap: wrap;
  height: auto;
}

.ft_menu .chat_btn {
  width: 100%;
  justify-content: flex-end;
  gap: 1rem;
  padding: 1rem;
}

.ft_menu .chat_btn a {
  width: 3rem;
  height: 3rem;
}

.cnbtn, .dlbtn {
  height: 3.625rem!important;
}
