@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;
}


a {
  color:#2D2D2D;
}

img {
  width:100%;
}

.sp {
  display: none;
}


/* flexbox */
.pcflex { display: flex;}
.pccolumn {
   display: flex;
   flex-direction: column;
}


html, body {
  width: 100%;
  min-width: 1200px;
}

body {
  overflow-x: auto;
}
h2 {
  font-size: 2.5rem;
  width: fit-content;
  display: block;
  text-align: center;
  position: relative;
  z-index: 3;
  letter-spacing: 0.125em;
}

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

/* ヘッダー */
header {
  width: 100%;
  /* font-size: 5rem; */
  /* background: #00000090; */
  height: 840px;
  position: absolute;
  top: 0;
  z-index: 10;

  min-width: 1200px;
}

header.sub {
  height: 109px;
}

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


/* 表示順 */
header .nav {
position: absolute;
z-index: 3;

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

}


header .nav {
  max-width: 1831px;
  width: 100%;
  margin-left: auto;
  height: 112px;
  align-items: center;
  justify-content: space-between;
  top: 0;
  right: 0;
}

header .nav.header_nav {
  /* position: relative; */
width: 100%;
  justify-content: space-between;
}

header .nav h1 {
  width: 27rem;
  height: 5rem;
  margin-left: 1.5rem;
}

.nav .main_nav {
  width: 1087px;
  height: 112px;
  margin-left: auto;
  justify-content: flex-end;
}


.menu_area {
  /* width: 1597px; */
}

.top_area {
  height: 67px;
  align-items: center;
  justify-content: flex-end;
  padding-right: 1rem;
  gap: 1rem;
}

.top_area a.tellink {
  align-items: center;
  font-family: Inter;
  font-weight: 600;
  font-size: 2.3125rem;
  line-height: 1;
  color: #ffffff;
  gap: 0.5rem;
}

.top_area a.tellink img {
  width: 33px;
}

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

.top_area .ls {
width: fit-content;
height: 2.6875rem;
background: #B9A871;
align-items: center;
gap: 0.2rem;
padding:0 0.5rem;
}

.top_area .ls .gtranslate_wrapper {
  display: flex;
}
.top_area .ls .gtranslate_wrapper a {
  width: 3.125rem;
  height: 2.0625rem;
  transition: all 0.3s ease; 
}
.top_area .ls .gtranslate_wrapper a:hover {
opacity: 0.6;
transition: all 0.3s ease; 
}


.top_area .ls .gtranslate_wrapper a img {
  width: 3.125rem;
  height: 2.0625rem;
}



.top_area .ls .gtranslate_wrapper a:nth-child(n+4){
  display: none;
}

.top_area .ls span {
  color: #ffffff;
  font-size: 1rem;
font-style: normal;
font-weight: 500;
line-height: 1;

}


.bottom_area {
  height: 42px;
}

.bottom_area ul {
  justify-content: flex-end;
  align-items: center;
  gap: 0.5em;
  margin-top: 0rem;
  margin-right: 1rem;
  height: 1.3em;
  flex-wrap: wrap;
}

.bottom_area ul li {
  display: flex;
  gap: 0.5em;
}

.bottom_area ul li:after {
  content: "";
  display: block;
  height: 1.3em;
  width: 1px;
  background: #ffffff;
}

.bottom_area ul li:last-child:after {
  content: none;
}

.bottom_area ul li a {
  color: #ffffff;
  font-size: 1rem;
  line-height: 1;
  display: flex;
  align-items: center;
  transition: all 0.3s ease; 
  letter-spacing: 0.1em;
}

@media (max-width: 1500px) {
  .top_area {height: 53px;}
  .bottom_area ul {
    gap: 0.2rem 0.5rem;
  }
  .bottom_area ul li a {
    font-size: 0.95rem;
  }
  .top_area a.tellink { 
    font-size: 1.8rem;
    white-space: nowrap;
  }
  .top_area .ls span { 
    font-size: 0.8rem;
    white-space: nowrap;
  }
}

.bottom_area ul li a:hover {
  opacity: 0.6;
  transition: all 0.3s ease; 
}


/* お問い合わせ・ダウンロード */
.btn_area {
  gap: 0;
  width: 245px;
}
.btn_area a {
  width: 100%;
  height: 50%;
  color: #ffffff;
  font-size: 1rem;
  font-style: normal;
  line-height: 150%; /* 1.5rem */
  letter-spacing: 0.05rem;
  align-items: center;
  gap: 0.5rem;
  white-space: nowrap;

  transition: all 0.3s ease; 
}
.btn_area a:hover {
  opacity: 0.6;
  transition: all 0.3s ease;
} 
.btn_area a.contactbtn {
  background: #81BC44;
}

.btn_area a.contactbtn img.icn {
  width: 1.76281rem;
  height: 1.76281rem;
  margin-left: 1rem;
}

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

.btn_area a.dlbtn img.icn {
  width: 1.91838rem;
  height: 1.91838rem;
  margin-left: 1rem;
}

img.ar {
  width: 1.4375rem;
  height: 0.28125rem;
  margin-left: auto;
  margin-right: 0.6rem;
}

.nav.scroll_nav {
  position: sticky;
  top: 0;
  z-index: 9;
}
.nav.scroll_nav.nav_sub {
  z-index: 11;
}

/* 追尾メニュー色変え */
.nav.scroll_nav {
  background: #ffffff;
  max-width: 100%;
  min-width: 1200px;
  /* position: fixed; */
  top: 0;
  left: 0;
  justify-content: space-between;
  align-items: center;
  height: 109px;
}

.nav.scroll_nav a.nav_logo {
  width: 27rem;
  height: 5rem;
  margin-left: 1.5rem;
  display: flex;
  align-items: center;
}

.nav.scroll_nav .top_area a.tellink {
  color: #000000;
  font-weight: 600;
}

.nav.scroll_nav .bottom_area ul li a {
  color: #000000;
}

.nav.scroll_nav .bottom_area ul li:after {
  background: #000000;
}

/* フローティングメニュー */
.fl_menu {
  position: fixed;
  z-index: 2;
  right: 0;
  top: 168px;
  align-items: flex-end;
}

.fl_menu a.flbtn {
  width: 4.26863rem;
height: 20.18369rem;
background: #B9A871;
color: #ffffff;
font-size: 1.5625rem;
justify-content: center;
align-items: center;
writing-mode: vertical-rl;
}
.fl_menu a {
  transition: all 0.3s ease; 
}
.fl_menu a:hover {
  opacity: 0.6;
  transition: all 0.3s ease; 
  }
.fl_menu img {
  width: 12.96138rem;
height: 13.875rem;
}



/* メインビジュアル */
.mainvisual {
  height: 840px;
  overflow: hidden;
}
.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: 43.875rem;
height: 22.3125rem;
}
.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: 24.9375rem;
height: 40.9375rem;
}

.mainvisual .maintitle {
  display: block;
  width: fit-content;
  position: absolute;
  left: 13%;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  z-index: 5;
}

.mainvisual .maintitle strong {
  color: #ffffff;
  font-size: 5.625rem;
font-style: normal;
font-weight: 400;
line-height: 100%; 
display: block;
margin-bottom: 1rem;
}

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


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

.image-anime {
  width: 33%;
  height: 840px;
  overflow: hidden;
  position: relative;
  display: flex;
  justify-content: flex-start;
}
.image-anime:nth-child(2) {
  width: 34%;
}

.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: 140%;
  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: both;
  
}

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

}

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

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

@keyframes slowSlide_After {
  from  { 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(0 100%, 100% 100%, 100% 100%, 0 100%);}
  10% { clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);}
  28% { clip-path: polygon(0 0%, 100% 0%, 100% 100%, 0 100%); }
}

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



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

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



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

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


/* BA再生後にフェードアウト */
/* .first-move {animation-name: firstfadeout;}
@keyframes firstfadeout {
  0%, 93% { opacity: 1; }
  95%, 100% { 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(0 100%, 100% 100%, 100% 100%, 0 100%);}
  60% { clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);}
  78% { clip-path: polygon(0 0%, 100% 0%, 100% 100%, 0 100%); }
}

/* BA ①フェードアウト */
@keyframes fo_s_1 {
  0%, 61% { opacity: 0; }
  78% { opacity: 1; }
}


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

/* BA ②フェードアウト */
@keyframes fo_s_2 {
  0%, 66% { opacity: 0; }
  83% { opacity: 1; }
}


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

/* BA ③フェードアウト */
@keyframes fo_s_3 {
  0%, 71% { opacity: 0; }
  88% { opacity: 1; }
}

/* BA 上をフェードアウト */
/* .second-move:not(.copy) {animation-name: secondfadeout;}
@keyframes secondfadeout {
  0%, 95% { opacity: 1; }
  98% , 100% { opacity: 0; }
} */




/* フッター */
footer {
  width: 100%;
  background: #0985D1;
  padding: 10rem 0 0;
  background-image: url(../img/footer_bg_pc.webp);
  background-size: cover;
  background-position: center;
}
footer div.pcflex {
  width: 90%;
  max-width: 1320px;
  background: #ffffff;
  padding: 2rem 0;
  gap: 2rem;
  justify-content: center;
  position: relative;

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

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: 7.125rem;
  position: absolute;
  right: 0;
  top: -7rem;
  opacity: 0.39;
  z-index: 1;
}

footer div div {
  width: 520px;
  position: relative;
  z-index: 3;
}
footer div div img {
width: 22rem;
}
footer div div dl {
  width: 100%;
  border-bottom: solid 1px #cacaca;
  padding: 0.8rem 0.5rem;
  gap: 1rem;
}
footer div div dl:last-child {
  border: 0;
}
footer div div dl dt {
  font-size: 1rem;
  width: 7.5em;
}
footer div div dl dd {
  width: calc(100% - 7.5em);
}
footer div iframe {
  width: 470px;
  height:590px ;
  position: relative;
  z-index: 3;
}



footer ul {
  width: 90%;
  padding: 0 1rem;
  margin-bottom: 3rem;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

footer ul li {
  /* width: 50%; */
  width: fit-content;
}

footer ul li.wd100 {

}

footer ul li a {
  color: #ffffff;
  font-size: 1rem;
  white-space: nowrap;
}

footer ul li a:after {
  content: "|";
  padding-left: 1rem;
}

footer ul li:last-child a:after {
  content: none;
}


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

footer p.copyright a {

  color: #297DB8;
}

/* メインコンテンツ */
main {
  margin-top: 731px;
}

main.sub {
  margin: 0;
  padding: 0;
}


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

  width: 120%;
  height: 46.71019rem;
  background: rgba(255, 255, 255, 0.66);
  backdrop-filter: blur(10px);
  z-index: 1;
}
.worries h2 {
  font-size: 2rem;
  background: #0D97DF;
  display: block;
  width: fit-content;
  padding: 0.7rem 2rem;
  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: 5rem;
transform: rotate(-8.902deg);
top: -3rem;
left: -4rem;
position: absolute;
}

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

.worries div.pcflex {
  max-width: 1204px;
  width: 96%;
  gap: 3rem;
  position: relative;
  z-index: 3;
}

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

.worries div.pcflex div {
  align-items: center;
  flex: 1;
}
.worries .img_area {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 14.25rem;
  min-height: 14.25rem;
  margin-bottom: 1rem;
  flex: none !important;

}
.wr1 img {width: 17.75rem;}
.wr2 img {width: 19.0625rem;}
.wr3 img {width: 11.19681rem;}

.worries h4 {
  font-size: 1.375rem;
  letter-spacing: 0.1925rem;
  white-space: nowrap;
}
.worries p {
  font-size: 1rem;
  line-height: 176%;
  letter-spacing: 0.1rem;
  text-align: justify;
}

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

.worries span.lg_txt img {
  width: 23.38281rem;
}

/* 選ばれる４つの理由 */
.choice_four {
  padding:4rem 0 6rem;
  background: 
  linear-gradient(90deg, rgba(15, 164, 232, 0.90) 1.63%, rgba(9, 133, 209, 0.60) 99.79%),
    url(../img/choice_bg.webp);
  background-size: auto 100%; /* 画像の高さを要素の100%に設定し、幅は自動調整 */
  background-position: right top; /* 画像を右上に配置 */
  background-repeat: no-repeat; 
}

.choice_four h2 {
  font-size: 2rem;
  align-items: center;
  width: fit-content;
  margin-bottom: 2rem;
}
.choice_four h2 strong {
  font-size: 3.25rem;
  margin-bottom: 0.4rem;
}
.choice_four h2 img {
  width: 26.25rem;
}

.choice_four div.pcflex {
  max-width: 1230px;
  width: 90%;
  flex-wrap: wrap;
  gap: 2rem 1.5rem;
  margin-bottom: 3rem;
}
.choice_four div.pcflex div.flex {
  background-color: #ffffff;
  width: calc(50% - 0.75rem);
  height: 240px;
  position: relative;
}
.choice_four div.pcflex div.flex img.choice_num {
  position: absolute;
  top: 0.5rem;
  right: 1.5rem;
  width: auto;
  height: 6rem;

}

.choice_four div.pcflex div img:not(.choice_num) {
  width: 220px;
  height: 240px;
  margin-left: 1.5rem;
  clip-path: polygon(20% 0%, 100% 0%, 80% 100%, 0% 100%);
}
.choice_four div.pcflex div div {
  width: calc(100% - 240px);
  justify-content: center;
  gap: 0.5rem;
  /* padding-right: 3em; */
}

.choice_four div.pcflex div div h3 {
  font-size: 1.375rem;
  line-height: 137%; 
  letter-spacing: 0.1em;
}

.choice_four div.pcflex div div p {
  font-size: 1rem;
  font-style: normal;
  font-weight: 300;
  line-height: 176%; /* 1.76rem */
  letter-spacing: 0.1rem;
  display: block;
  padding-right: 1.5em;
}


/* サービス内容 */
.service {
  position: relative;
  background-image: url(../img/tri_bg_1.png);
  background-position: 0 -33rem;
  background-repeat: no-repeat;
  background-size: 53.5rem auto;
  padding: 5rem 0 15rem;
  height: fit-content;
  overflow: hidden;
}
.service .tri_bg_bottom {
  position: absolute;
  bottom: 28.4375rem;
  right: -2rem;
  display: block;
  width: 53.5rem;
  height: 36.9375rem;
  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:28.4375rem ;
  display: block;
  background-image: url(../img/service_bg_bottom.webp);
  background-repeat: no-repeat;
  background-size: 140%;
  background-position: center center;
  z-index: 2;
}
.service h2 {
  font-size: 2rem;
  width: fit-content;
  margin-bottom: 3rem;
}
.service h2 strong {
  font-size: 2.5rem;
}
.service div.sv_list {
  width: 90%;
  max-width: 1364px;
  gap: 3rem 2rem;
  margin-bottom: 3rem;
  flex-wrap: wrap;
  justify-content: space-between;
}

.service div.sv_list div {
  width: calc(33.33% - 1.4rem);
  gap: 0.3rem;
}

.service div.sv_list div.image-animate {
  width: 100%;
  position: relative;
  z-index: 1;
}

.service div.sv_list div img.sv_icon {
  width: 4.875rem;
  margin-top: -4rem;
  position: relative;
  z-index: 2;
}

.service div.sv_list div h3 {
  font-size: 1.375rem;
  text-align: center;
  width: 100%;
  display: block;
  padding-top: 2rem;
  letter-spacing: 0.1em;
}

.service div.sv_list div p {
  font-size: 1rem;
  padding: 0 2em;
  line-height: 176%; /* 1.76rem */
letter-spacing: 0.1rem;
}

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

.sv_other h3 {
  position: absolute;
  font-size: 2rem;
  letter-spacing: 0.1rem;
  top: 0.2rem;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  margin-top: -1em;
  width: fit-content;
  padding: 0 1rem;
  display: block;
  background: #ffffff;
}



.sv_other div.pccolumn {
  width: calc(33.33% - 1rem);
  align-items: center;
}

.sv_other div div.icon_area {
  display: flex;
  background: #F3F5F6;
  width: 12.0625rem;
height: 12.0625rem;
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: 6rem;}
.sv_other div:nth-child(3) div.icon_area img {width: 6.5625rem;}
.sv_other div:nth-child(4) div.icon_area img {width: 6rem;}
.sv_other div:nth-child(5) div.icon_area img {width: 8.25rem;}
.sv_other div:nth-child(6) div.icon_area img {width: 8rem;}
.sv_other div:nth-child(7) div.icon_area img {width: 9.5rem;margin-bottom: 0;}

.sv_other div div.txt_area {
  margin-top: -3rem;
}

.sv_other div div.txt_area h4 {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 1.375rem;
  line-height: 127%;
  width: 100%;
  height: 2.3em;
  vertical-align: middle;
  margin-bottom: 0.5rem;
  letter-spacing: 0.1em;
}

.sv_other div div.txt_area p {
  font-size: 1rem;
font-style: normal;
font-weight: 300;
line-height: 176%; /* 1.76rem */
letter-spacing: 0.1rem;
}


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

span.flow_back {
  content: "Clean Smiles";
  font-size: 13.125rem;
  letter-spacing: 0.7875rem;
  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: 2.5rem;
  text-align: center;
  width: fit-content;
  display: block;
  padding-top:2rem;
}
.flow p.exp {
  font-size: 1.25rem;
  text-align: center;
  width: fit-content;
  display: block;
  font-weight: 500;
  margin-bottom: 3rem;
}

.flow .pcflex {
  max-width: 1384px;
  width: 90%;
  gap: 0;
  margin-bottom: 4rem;
}

.flow .pcflex .flow_list {
  width: 25%;
  flex: 1;
  align-items: center;
}
.flow .pcflex .f_img {
  width: 90%;
  height: 205px;
  margin-bottom: 1rem;
}

.flow_list img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.flow_list .line_area {
  width: 100%;
  position: relative;
  height: 18px;
  display: flex;
  align-items: center;
  margin-bottom: 2rem;
}
.flow_list .line_area:before {
  content: "";
  width: 100%;
  height: 1px;
  background: #000000;
}

.flow_list .line_area:after {
  content: "";
  position: absolute;
  width: 15px;
  height: 15px;
  background: #ffffff;
  border: solid 3px #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: 90%;
  height: 210px;
  padding: 1.5rem;
  position: relative;
}

.flow_list .bubble_area:before {
  content: "";
  position: absolute;
  display: block;
  width: 2.5625rem;
  height: 2.5625rem;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  top: -1.5rem;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  background: #ffffff;
}
.flow_list .bubble_area h3 {
  font-size: 1.375rem;
  line-height: 117%;
  display: flex;
  height: 2em;
  align-items: center;
  text-align: center;
  justify-content: center;
  width: 100%;
  margin-bottom: 0.5rem;
  letter-spacing: 0.1em;
}

.flow_list .bubble_area p {
  font-size: 1rem;
font-style: normal;
font-weight: 300;
letter-spacing: 0.11rem;
text-align: justify;
}




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

.price p.exp {

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


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

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

.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: 1.5rem;
  font-weight: bold;
}
.price-table tbody tr td:last-child {
  color: #1675B8;
}

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

.price .exp_box {
  background: #F7F7F7;
  width: 860px;
  padding: 1.5rem 5rem;
  margin-bottom: 3rem;
}

.price .exp_box h3 {
  font-size: 1.25rem;
  text-align: center;
  width: fit-content;
  display: block;
  margin-bottom: 0.5rem;
  letter-spacing: 0.125em;
}
.price .exp_box p {
  font-size: 1rem;
  padding-left: 6em;
  font-weight: bold;
  letter-spacing: 0.125em;
}

/* サービス対応エリア */
.service_area {
  width: 100%;
  background-image:url(../img/area_bg_pc.webp) ;
  background-size: cover;
  height: 48.8125rem;
  padding-top: 4rem;
}

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

.service_area .area_exp img {
width: 37rem;
}

.service_area .area_exp div {
  width: 513px;
  flex: 1;
}

.service_area .area_exp div h2 {
  font-size: 2.5rem;
  font-style: normal;
  font-weight: 600;
  line-height: 127%; /* 3.175rem */
  letter-spacing: 0.125rem;
  margin-bottom: 0.5rem;
  text-align: left;
}

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

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

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

.service_area .area_exp div .address p {
  font-size: 1rem;
font-style: normal;
font-weight: 500;
line-height: 150%; /* 1.5rem */
letter-spacing: 0.11rem;
margin: 0;
}

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


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

.review p.exp {

  font-size: 1.25rem;
  text-align: center;
  width: fit-content;
  display: block;
  font-weight: 500;
  margin-bottom: 4rem;
}
.review_slide {
  height: 30rem;
  z-index: 3;
}

.review_slide li {
  /* max-width: 510px; */
  position: relative;
}
.review_slide li img.rv_icon {
  position: absolute;
  top: 0;
  left: 0;
  width: 6rem;
  height: auto;
}
.review_slide li div {
  margin: 2rem auto;
  width: 90%;
  max-width: 28.86738rem;
  height: 23.98319rem;
  border-radius: 0.4375rem;
  padding: 1.8rem 1.7rem;
background: #FFF;
box-shadow: 0px 4px 20px 0px rgba(13, 151, 223, 0.13);
}

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

.review_slide li div p {
  font-size: 1rem;
font-style: normal;
line-height: 1.75rem;
text-align: justify;
}

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

.review_slide .slick-prev {
  left: 12%;
  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: 20px;
  width: 20px;
  transform: rotate(-135deg);
  margin-left: 7px;
}


.review_slide .slick-next {
  right: 12%;
  border: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.review_slide .slick-next:before{
  content: "";
  z-index: 5;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  height: 20px;
  width: 20px;
  transform: rotate(45deg);
  margin-right: 7px;
}

@media (max-width: 1700px) {

  .review_slide .slick-prev {
    left: 11%;
  }
  .review_slide .slick-next {
    right: 11%;
  }
}

@media (max-width: 1600px) {

  .review_slide .slick-prev {
    left: 18%;
  }
  .review_slide .slick-next {
    right: 18%;
  }
}

@media (max-width: 1400px) {

  .review_slide .slick-prev {
    left: 14%;
  }
  .review_slide .slick-next {
    right: 14%;
  }
}


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

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

width: 120%;
height: 66.71019rem;
background: rgba(255, 255, 255, 0.66);
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: 11rem;
letter-spacing: 0.7875rem;
color: #EEEEEE;
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: 90%;
  max-width: 1353px;
  z-index: 3;
  position: relative;
  gap: 2rem;
  margin-bottom: 5rem;

}
.recruit ul.recruit_slide li {
  flex: 1;
}
.recruit ul.recruit_slide li .animate-me {
  width: 100%;
  height: 17.5rem;
  margin-bottom: 0.7rem;
}
.recruit ul.recruit_slide li .animate-me img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.recruit ul.recruit_slide li div div {
  margin-bottom: 0.5rem;
}

.recruit ul.recruit_slide li div div h3 {
  font-size: 1.375rem;
  width: fit-content;
  margin: 0 auto;
  letter-spacing: 0.1em;
}
.recruit ul.recruit_slide li div div h3 small {
  font-size: 1.0625rem;
}

.recruit ul.recruit_slide li div p {
  font-size: 1rem;
font-style: normal;
font-weight: 300;
line-height: 176%; /* 1.76rem */
letter-spacing: 0.1rem;
}

.recruit .app {
  position: relative;
  z-index: 3;
  background: #ffffff;
  width: 90%;
  max-width: 1072px;
  padding:2rem 0;
}

.recruit .app dl {
  width: 688px;
  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: 215px;
  padding-left:1rem ;
  gap: 0.5rem;
}

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

.recruit .app dl dd {
  width: calc(100% - 215px);

font-size: 0.9375rem;
font-style: normal;
font-weight: 500;
line-height: 150%; /* 1.40625rem */
letter-spacing: 0.01875rem;
padding-top: 0.3rem;

}

.recruit .app dl dd ul {
  display: flex;
  flex-wrap: wrap;
}
.recruit .app dl dd ul li {
  width:  calc(100% - 13em);
  box-sizing: border-box; 
}

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


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

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

.accordion {
  width: 90%;
  max-width: 1232px;
  flex-wrap: wrap;
  gap: 2rem;
}

.ac_body {
  width: calc(50% - 1rem);
  position: relative;
  z-index: 1;
}

.ac_body:first-child {z-index: 5;}
.ac_body:nth-child(2) {z-index: 5;}
.ac_body:nth-child(3) {z-index: 4;}
.ac_body:nth-child(4) {z-index: 4;}
.ac_body:nth-child(5) {z-index: 3;}
.ac_body:nth-child(6) {z-index: 3;}


/* 質問 */
.accordion-header {
  cursor: pointer;
  font-size: 1.5rem;
  background-color: #0D97DF;
  color: #ffffff;
  border: none;
  outline: none;
  width: 100%;
  height: 6.5rem;
  display: flex;
  align-items: center;
  padding-left: 1.5rem;
  gap: 1rem;
  line-height: 128%;
  text-align: left;

  position: relative;
  z-index: 1;
}

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

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

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



/* 答え */
.accordion-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease;
  opacity: 0;
  width: 100%;
  top: 6.5rem;
  background-color: #ffffff;
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
  padding:1.4rem 2rem;
  gap: 1rem;

  /* position: absolute; */
  z-index: 3;
  margin-top: -2rem;
}

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

.accordion-body p {
  padding-top: 0.6em;
  font-size: 1.0625rem;
font-style: normal;
line-height: 177%; 
letter-spacing: 0.05313rem;
}



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



/* ご相談フォーム */
.contact {
  padding: 1rem 0 8rem;

}

.contact .emergency {
  width: 580px;
  padding: 1rem;
  text-align: center;
  background: #0A8AD5;
  color: #ffffff;
  margin-top: 3rem;
  margin-bottom: 3rem;
}

.emergency h3 {
  font-size: 1.5625rem;
  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: 2.67594rem;
height: 2.67594rem;

}

.emergency span {
  color: #ffffff;
  display: block;
  font-size: 2.3125rem;
  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: 1.0625rem;
  letter-spacing: -0.02338rem;
}


.form_main {
  width: 90%;
  max-width: 1072px;
  padding: 2rem 4rem;
  background: #ffffff;
}

.form_main p {
  text-align: center;
  display: block;
  width: 100%;
  font-size: 1rem;
  line-height: 1.875rem; 
  margin-bottom: 2rem;
}

.form_main p span.gold {
  color: #B9A871;
}

form {
  width: 80%;
  margin: 0 auto;
}
form div {
  justify-content: flex-start;
  margin-bottom: 1.5rem;
  align-items: center;
}

form div label {
  display: flex;
  width: 9em ;
  font-size: 1.4375rem;
  align-items: center;
}

form div label span {
  color: #B9A871;
}


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

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

form div input {
  max-width: 522px;
  width: calc(100% - 9em);
  height: 3.5625rem;
  border-radius: 0;
  border: solid 1px #000000;
  padding: 0.7rem;
  font-size: 1.25rem;
}
span.num_0 {
  margin-right:1rem;
  font-size: 1.5rem;
}

form div input.num_1 {
  width: 140px;
}

form div input.num_2 {
  width: 192px;
}

form div span.num_3 {
  margin: 0 1rem;
  font-size: 1.5rem;
}

form div textarea {
  max-width: 522px;
  width: calc(100% - 9em);
  height: 17rem;
  resize:vertical;
  padding: 0.7rem;
  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: 17.625rem;
  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(-152%);}
}



/* モーダル */
a.modalOpen {
cursor: pointer;
}

/* オーバーレイのスタイル */
#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: 200;
}

/* モーダルウィンドウの基本スタイル */
#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: 80vh;
  overflow: auto;
  /* min-width: 1000px; */
  padding: 40px;
  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; 
}




/* サブページ */

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



.mainvisual_sub {
  width: 100%;
  height: 400px;
  position: relative;
}

.mainvisual_sub h2 {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  height: 1em;

}

.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: center;
  opacity: 0.9;
}

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

.casestudy_detail .sub_wrap {
  background-image: none;
}

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

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

.breadcrumb ul li, .breadcrumb ol li {
  
  color: #000000;
}

.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;
}


.sub_contents {
  max-width: 1204px;
  width: 96%;
}

.sub_txt {
  margin: 1rem 0 3rem;
}

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


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

.choosing h3 {
  color: #0985D1;
  font-size: 2.5rem;
  text-align: center;
  padding-top: 3rem;

}

.choose_content {
  gap: 2rem;
  margin-bottom: 3rem;
}

.choose_content img {
  width: 300px;
}

.choose_content h4 {
  font-size: 2rem;
  color: #0985D1;
  margin-bottom: 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: 2rem;
}

/* 料金表 */
main.price {}

main.price h3,main.flow h3,main.service h3:not(.sv_other h3) {
  font-size: 2.5rem;
  width: fit-content;
  display: block;
  text-align: center;
  z-index: 4;
  position: relative;
}

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

main.price .flow h3, main.flow .flow h3, main.service .flow h3{
  margin-bottom: 2rem;
}

main.price .flow h4,
main.flow .flow h4 {
  font-size: 1.375rem;
    line-height: 117%;
    display: flex;
    height: 2em;
    align-items: center;
    text-align: center;
    justify-content: center;
    width: 100%;
    margin-bottom: 0.4rem;
    letter-spacing: 0.1em;
    white-space: nowrap;
}
.flow .flow_contact .bubble_area {
  height: 260px;
}

main.price .flow .bubble_area p,
main.flow .flow .bubble_area p {
  letter-spacing: 0.09rem;
}

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 {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: 80%;
  margin: 1rem auto 2rem;
  border-bottom: solid 1px #0985D1;
  color: #0985D1;
  font-size: 2rem;
  padding-bottom: 0.5rem;
  text-align: center;
}


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

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

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

main.company iframe {
  width: 90%;
  margin: 1rem 5%;
}

main.company .representative {
  gap: 2rem;
  margin-bottom: 4rem;
}

main.company .representative img {
  width: 400px;
  height: fit-content;
}

main.company .representative p {
  display: block;
  line-height: 1.8;
}

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


/* 民泊清掃代行サービス */
main.sub.service {}

.sv_contents {
  width: 100%;
  background: #D6EDFA;
  padding: 3rem 0;
  margin-bottom: 5rem;
}

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

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

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

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

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

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

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.4rem;
  font-weight: normal;
}

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


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


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

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

.case_art {
  width: calc(50% - 1rem);
}

.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_art .case_images {
  width: 100%;
  margin-bottom: 0.5rem;
}

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

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

.case_art p {
  font-size: 0.9rem;
  margin-bottom: 2rem;
  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 2rem;
  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 {
  margin: 3rem auto 5rem;
}

ul.case_pager li {
  width: 42px;
  height: 54px;
  border: solid 1px #888888;
  position: relative;
}

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

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

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


ul.case_pager li.back a:after,
ul.case_pager li.next a:after {
  content: "";
  width: 11px;
  height: 17px;
  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 {
  max-width: 1204px;
  width: 96%;
  border-bottom: solid 2px #0985D1;
  margin-bottom: 3rem;
  color: #0985D1;
  text-align: left;
}

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

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


main.casestudy_detail a.gototop_btn {
  width: 640px;
  display: block;
  margin-bottom: 5rem;
}

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


/* コラム */

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


/* 追尾メニュー */
.fl_menu {
width: 65px;
gap: 1rem;
}

.fl_menu a {
  width: 100%;
}

.fl_menu a img {
  width: 100%;
  height: auto;
}
