@charset "UTF-8";

/******************************* ここから genaral ********************************/
html {
  font-size: 3.125vw;
}

body {
  font-size: 1.2rem;
  line-height: 1.9;
}

@media screen and (min-width: 768px) {
  html {
    font-size: 10px;
  }

  body {
    font-size: 2.4rem;
  }
}

@media screen and (min-width: 1024px) {
  body {
    font-size: 1.4rem;
  }
}

* {
  word-break: break-all;
}
section {
  padding: 6.5rem 0;
  overflow: hidden;
}
h2 {
  text-align: center;
  letter-spacing: 0.2em;
}
.h2_eng {
  font-size: 1.4em;
  margin-bottom: 0.5em;
}
@media screen and (min-width: 1024px) and (orientation: landscape) {
  section {
    padding: 15rem 0;
  }
}

/* ここから ページ内ホバー時の指定 */
.form__tel:hover,
.l-header__logo:hover {
  cursor: pointer;
  opacity: 0.7;
}

.slide-dots > li:hover {
  cursor: pointer;
}

.slide-dots > li:hover button {
  background: #009cc8;
}

/* ここまで ページ内ホバー時の指定 */
.full {
  position: relative;
  margin: 0 calc(50% - 50vw);
  width: 100vw;
  max-width: 128rem;
}
@media screen and (min-width: 1280px) {
  .sec_case .full {
    margin: 0;
    width: 100%;
  }
}
/******************************* ここまで genaral ********************************/
/******************************* ここから common ********************************/
.l-main {
  position: relative;
  overflow-x: hidden;
}

.c-logo img {
  vertical-align: middle;
  position: relative;
  top: -1px;
}

.c-min {
  font-family: "FOT-筑紫Aオールド明朝 Pr6 R" !important;
}

.c-min-normal {
  font-family: "FOT-筑紫Aオールド明朝 Pr6 M" !important;
}

/******************************* ここまで common ********************************/

.slider__wrap {
  width: 600px;
  margin: 0 auto 10rem;
}

.slick-list {
  overflow: visible !important;
}

@media (max-width: 428px) {
  .slider__wrap {
    width: 90%;
  }
}

.slides__img img {
  width: 100%;
  height: auto;
}

.slides__text {
  font-size: 3rem;
  display: block;
  opacity: 0;
}

@media (max-width: 428px) {
  .slides__text {
    font-size: 1.8rem;
    padding-top: 1.45rem;
  }
}

.slick-current .slides__text {
  opacity: 1;
}

.slide-dots {
  padding-top: 6rem;
}

@media (max-width: 428px) {
  .slide-dots {
    padding-top: 2rem;
  }
}

.prev-arrow {
  position: absolute;
  top: 220px;
  left: 0;
  z-index: 500;
  width: auto;
}

@media (max-width: 428px) {
  .prev-arrow {
    top: 40%;
    left: -2vw;
  }
}

.next-arrow {
  position: absolute;
  top: 220px;
  right: 0;
  z-index: 500;
  width: auto;
}

@media (max-width: 428px) {
  .next-arrow {
    top: 40%;
    right: -2vw;
  }
}

.prev-arrow:hover,
.next-arrow:hover {
  cursor: pointer;
}

.slide-dots {
  text-align: center;
}

.slide-dots li {
  display: inline-block;
  margin: 0 5px;
}

.slide-dots li button {
  position: relative;
  text-indent: -9999px;
  border: none;
  background: #969696;
  height: 3px;
  width: 20px;
}

.slide-dots li button:hover {
  cursor: pointer;
}

.slide-dots li button:before {
  content: "";
  font-size: 0;
  text-indent: 0px;
  position: absolute;
  top: 0;
  left: 0;
}

.slide-dots li.slick-active button {
  background: #009cc8;
}

.slide-dots li.slick-active button:before {
  content: "";
}

a[href*="tel:"] {
  /* text-decoration: underline; */
  text-decoration: none;
}

@media (min-width: 751px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
  }
}

.c-logo img {
  vertical-align: middle;
  position: relative;
  top: -1px;
}

.c-min {
  font-family: "FOT-筑紫Aオールド明朝 Pr6 R" !important;
}

.c-min-normal {
  font-family: "FOT-筑紫Aオールド明朝 Pr6 M" !important;
}

/******************************* ここから Form ********************************/
.form__detail .ad_present {
  margin-top: 3rem;
  margin-bottom: 0;
}

.mw_wp_form .error {
  margin-bottom: 1rem;
}

.mw_wp_form_preview {
  font-size: 1.6rem;
}

@media (max-width: 428px) {
  .mw_wp_form_preview {
    padding: 0 3rem;
    box-sizing: border-box;
  }
}

.mw_wp_form_preview .contact__form_text {
  padding: 2rem 0 0;
}

.mw_wp_form_preview .contact__form_select_wrap {
  border: none;
  margin-bottom: 0;
}

.mw_wp_form_preview .contact__form_select_wrap::after {
  display: none;
}

.form__text_thanks {
  text-align: center;
  padding: 3rem 0 0;
}

.form__bannertext {
  text-align: center;
  font-size: 14px;
  margin-bottom: 3rem;
}

.form__conditions-list li,
.form__attention-list li {
  padding-left: 1.3em;
  position: relative;
}

.form__conditions-list li::before,
.form__attention-list li::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  margin: auto;
}

.form__conditions-list li:nth-of-type(1)::before {
  content: "❶";
}

.form__conditions-list li:nth-of-type(2)::before {
  content: "❷";
}

.form__conditions-list li:nth-of-type(3)::before {
  content: "❸";
}

.form__conditions-list li:nth-of-type(4)::before {
  content: "❹";
}

.form__conditions-list li:nth-of-type(5)::before {
  content: "❺";
}

.form__conditions-list li:nth-of-type(6)::before {
  content: "❻";
}

.form__attention-list li::before {
  content: "※";
}

/* ここから 「secelt → checkbox」への修正に伴うcheckboxのcss 2023.5.19  */
.contact__form_check_wrap {
  display: block;
  margin: 0.5rem 0 1rem;
}

.contact__form_radio_wrap {
  display: block;
  margin: 0.5rem 0 1rem;
}

@media screen and (min-width: 768px) {
  .contact__form_radio_wrap,
  .contact__form_check_wrap {
    margin: 0.3rem 0 1.5rem;
  }
}

.contact__form_check_wrap .mw_wp_form .vertical-item {
  margin-bottom: 1rem;
}

.contact__form_check_wrap .mwform-checkbox-field label {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}

.contact__form_check_wrap .mwform-checkbox-field-text::before {
  /* border-radius: 50%; */
  border: solid 1px #000;
}

.contact__form_check_wrap
  .mwform-checkbox-field
  label
  input:checked
  + .mwform-checkbox-field-text::after {
  top: -0.2rem;
  width: 0.7rem;
  height: 1.5rem;
}

.mwform-radio-field label input:checked + .mwform-radio-field-text::after {
  width: 1.5rem;
  height: 1.5rem;
  border: none;
  transform: none;
  border-radius: 50%;
  background-color: #000;
  top: 0rem;
  left: 0.55rem;
}

.open-area {
  display: block;
  margin: 1.5rem 0;
}

.mwform-radio-field .mwform-radio-field-text::before {
  border-radius: 50%;
}

@media screen and (min-width: 768px) {
  .mw_wp_form .contact__form_check_wrap .vertical-item {
    display: inline-block;
    width: 48%;
    margin-bottom: 0.5rem;
  }
}

.contact__form_check_wrap .mwform-checkbox-field {
  margin-bottom: 1.5rem;
}

.mwform-radio-field input,
.mwform-checkbox-field input {
  height: 0;
  width: 0;
  visibility: hidden;
  position: absolute;
}

.mwform-radio-field label,
.mwform-checkbox-field label {
  display: block;
  padding-left: 3.2rem;
  position: relative;
  line-height: 1.4;
  font-size: 1.2rem;
}

.contact__form_check_wrap .mwform-checkbox-field-text {
  position: static;
}

.mwform-radio-field-text::before,
.mwform-checkbox-field-text::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  margin: auto;
  display: block;
  width: 2.6rem;
  height: 2.6rem;
  background-color: #fff;
  border-radius: 3px;
  border: solid 1px #000;
}

.mwform-radio-field label input:checked + .mwform-radio-field-text::after,
.mwform-checkbox-field
  label
  input:checked
  + .mwform-checkbox-field-text::after {
  content: "";
  position: absolute;
  top: -0.3rem;
  left: 0.9rem;
  bottom: 0;
  margin: auto;
  display: block;
  width: 0.9rem;
  height: 1.8rem;
  border: solid 0.3rem #000;
  border-top: transparent;
  border-left: transparent;
  transform: rotate(45deg);
}

.contact__form_check_wrap
  .mwform-checkbox-field
  label
  input:checked
  + .mwform-checkbox-field-text::after {
  top: -0.2rem;
  width: 0.7rem;
  height: 1.5rem;
}

.mwform-radio-field label input:checked + .mwform-radio-field-text::after {
  width: 1.5rem;
  height: 1.5rem;
  border: none;
  transform: none;
  border-radius: 50%;
  background-color: #000;
  top: 0rem;
  left: 0.6rem;
}

.mwform-radio-field label {
  padding: 0.4rem 0 0.4rem 3.2rem;
}

/* ここまで 「secelt → checkbox」への修正に伴うcheckboxのcss 2023.5.19  */
/******************************* ここまで Form ********************************/

/******************************* ここまで サウナLP 新規の記述 2024.02.29 ********************************/

/* -----------------------------------

	common

----------------------------------- */
:root {
  --tab-content-area: 700px;
  --pc-content-area: 900px;
  --tab-mag-value: 2.4;
  --pc-mag-value: 1.5;
}

.inner {
  width: calc(100% - 3rem);
}

.bg_blue {
  background-color: #0097c3;
}

h2,
.h2 {
  font-size: 1.7rem;
}

@media screen and (min-width: 768px) {
  .inner {
    max-width: var(--tab-content-area);
  }

  h2,
  .h2 {
    font-size: 3.4rem;
  }
}

@media screen and (min-width: 1024px) {
  .inner {
    max-width: var(--pc-content-area);
  }
}

/* -----------------------------------

	header

----------------------------------- */
.l-header {
  padding: 0;
  background-color: transparent;
  position: fixed;
  top: 0;
  left: 0;
  /* height: 35px; */
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.l-header .c-inner {
  width: 100%;
  padding: 0;
}

.l-header__inner {
  justify-content: flex-start;
  padding: 1.5rem 0;
}

.l-header__logo {
  width: 16rem;
}

@media screen and (min-width: 768px) {
  /* .l-header {
    height: 50px;
  } */
  .l-header__inner {
    padding: calc(3.4rem * 0.618) 0;
  }

  .l-header__logo {
    width: calc((215 / 768) * 100vw);
  }
}

@media screen and (min-width: 1024px) {
  .l-header__logo {
    width: 215px;
    margin: 0 auto;
  }
}

.hero_slider_slick_slide {
  height: auto !important;
  position: relative;
}

.hero_slider_slick_slide figure {
  width: 100%;
  height: 100vh;
  height: 100svh;
  position: relative;
}

.hero_slider_slick_slide figure img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero_slider_slick_slide .absolute {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  display: block;
  margin: auto;
  height: 22rem;
  width: calc(100% - 3rem);
  padding-left: 3.2%;
  transform: translateY(-12%);
}

.hero_slider_slick_slide .absolute img {
  height: 100%;
  width: auto;
  position: relative;
  left: -5%;
}

@media screen and (min-width: 768px) {
  .hero_slider_slick_slide .absolute {
    max-width: var(--tab-content-area);
  }

  .hero_slider_slick_slide .absolute {
    height: calc(22rem * var(--tab-mag-value));
    transform: translateY(calc(-12% * var(--tab-mag-value)));
  }
}

@media screen and (min-width: 1024px) {
  .hero_slider_slick_slide .absolute {
    max-width: var(--pc-content-area);
    height: 36rem;
    transform: translateY(-12%);
    left: 0;
    padding-left: 0;
  }

  .hero_slider_slick_slide .absolute img {
    position: relative;
    left: -2.3rem;
  }
}

@media screen and (min-width: 1280px) {
  .hero_slider_slick_slide .absolute {
    min-height: calc((360 / 770) * 100svh);
    height: calc((360 / 770) * 100svh);
    max-width: calc((900 / 770) * 100svh);
    transition: none !important;
  }

  .hero_slider_slick_slide .absolute img {
    left: -7.5%;
    transition: none !important;
  }
}

/* -----------------------------------

	intro

----------------------------------- */
.intro .item_head,
.intro .item_harvia,
.intro .item_harvia > figure {
  margin-left: auto;
  margin-right: auto;
}

.intro .part_head,
.intro .part_desc {
  position: relative;
  z-index: 2;
}

.intro .item_head h2 {
  position: relative;
}
.intro .item_head h2 .absolute {
  position: absolute;
  top: 18.4%;
  right: 0;
  width: 16.7%;
  transform: translateX(50%);
}
.intro .item_head h2 .relative {
  position: relative;
  z-index: 1;
}
.intro .item_harvia {
  width: 58%;
  /* コンテンツエリアに対する横幅 (200px / 290) = 69% */
}

.intro .item_harvia > figure {
  width: 36%;
  /* .item_harviaに対する横幅 (60px / 168) = 36% */
  margin-bottom: 5%;
  /* .item_harviaに対する比率 (8px / 168) = 5% */
}

.intro .part_designed {
  padding-bottom: 5%;
  /* .part_designedに対する比率 (15px / 320) = 36% */
  position: relative;
  z-index: 1;
  margin-top: -50%;
  /* .part_designedに対する比率 (160px / 320) = 50% */
  margin-bottom: 3%;
  /* .part_designedに対する比率 (10px / 320) = 3% */
}

.intro .part_designed .item {
  position: relative;
  z-index: 1;
}

.intro .part_designed .absolute {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
}

.intro .part_designed .absolute img {
  height: auto;
  width: 83.6rem;
  position: absolute;
  top: 17rem;
  left: 50%;
  transform: translate(-74%, 0);
  /* 
    -74% 
    ・画像の横幅は836px → デザインデータより。
    ・320pxの時、中心から230px左に動かす → デザインデータより。
    ・230px / 836px = 24%
    ・-74% = 中心から24%左の指定 
  */
}

.intro .part_designed .designed_1 {
  width: 28.75%;
  /* .part_designedに対する比率 (92px / 320) = 28.75% */
  margin-bottom: 76.5%;
}

.intro .part_designed .designed_2 {
  width: 43.75%;
  /* .part_designedに対する比率 (140px / 320) = 43.75% */
  margin-left: auto;
}

.intro .part_designed .designed_3 {
  width: 52%;
  /* .part_designedに対する比率 (165px / 320) = 52% */
  margin-top: -4%;
  /* .part_designedに対する比率 (8px / 320) = 4% */
}

.intro .part_designed .designed_4 {
  width: 32%;
  /* .part_designedに対する比率 (103px / 320) = 32% */
  margin-left: auto;
  margin-top: -3%;
  /* .part_designedに対する比率 (3px / 1030) = 3% */
}

@media screen and (min-width: 768px) {
  .intro .part_designed {
    margin-left: auto;
    margin-right: auto;
  }

  .intro .part_designed .absolute img {
    width: 200rem;
    top: calc(17rem * var(--tab-mag-value));
  }
}

@media screen and (min-width: 1024px) {
  .intro {
    padding-bottom: 0;
  }

  .intro_content_container {
    position: relative;
    max-width: var(--pc-content-area);
    margin-left: auto;
    margin-right: auto;
  }

  .intro .part_head,
  .intro .part_desc {
    position: absolute;
  }

  .intro .part_head .inner,
  .intro .part_desc .inner {
    width: 100%;
    max-width: none;
  }

  .intro .part_head {
    width: 28rem;
    top: 0;
    left: 0;
  }

  .part_desc {
    bottom: 10rem;
    right: 6.5rem;
    width: 27.5rem;
  }

  .intro .part_designed {
    margin-top: 0;
    margin-bottom: 0;
    padding-bottom: 0;
  }

  .intro .item_head {
    width: 100%;
  }

  .intro .item_harvia {
    width: 86%;
  }

  .intro .part_desc h2 {
    font-size: 1.7rem;
    margin-bottom: 1.4em;
  }

  .intro .part_desc p {
    font-size: 1.4rem;
  }

  .intro .part_designed .designed_1 {
    width: 18%;
    /* 18% = (165 / 900) */
    margin-bottom: 5%;
    /* 5% = (46 / 900) */
    margin-left: auto;
  }

  .intro .part_designed .designed_2 {
    width: 36%;
    /* 36% = ( 322 / 900) */
    margin-left: auto;
    margin-right: 6%;
    /* 6% = ( 54 / 900) */
  }

  .intro .part_designed .designed_3 {
    width: 28%;
    /* 28% = ( 254 / 900) */
    margin-top: -0.5%;
    /* 0.5% = ( 5 / 900) */
  }

  .intro .part_designed .designed_4 {
    width: 20%;
    /* 20% = ( 178 / 900) */
    margin-top: -2.5%;
    /* 2.5% = ( 23 / 900) */
    margin-right: 41%;
    /* 41% = ( 373 / 900) */
  }

  .intro .part_designed .absolute img {
    width: 105rem;
    top: 0;
    transform: translate(-65.5%, 0);
    /* 65.5% = ( 165 / 900) */
  }
}

/* -----------------------------------

	desc

----------------------------------- */
.desc {
  position: relative;
}

.desc .background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.desc .background video {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 102%;
  height: 102%;
  object-fit: cover;
}

.desc .content * {
  color: #fff;
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
  text-align: center;
}

.desc .content h2 {
  letter-spacing: 0.2em;
}

.desc .content p {
  font-size: 1.7rem;
  margin-bottom: 2.3em;
  /* (40 / 17) */
  letter-spacing: 0.05em;
}

.desc .content p:last-child {
  margin-bottom: 0;
}

@media screen and (min-width: 768px) {
  .desc .content p {
    font-size: 3.4rem;
  }
}

@media screen and (min-width: 1024px) {
  .desc {
    padding: 16rem 0 15rem;
  }

  .desc .content h2,
  .desc .content p {
    font-size: 2.1rem;
  }
}

/* -----------------------------------

	case

----------------------------------- */

.case_container {
  position: relative;
}

.case_container .inner {
  padding-left: 7.8%;
  /* 7.8% = (25 / 290) */
  padding-right: 4.7%;
  /* 4.7% = (15 / 290) */
}

.case_container .case_icon {
  width: 2.5%;
  /* 2.5% = (8 / 320) */
  position: absolute;
  top: 0;
  right: 5%;
  /* 5% = (16 / 320) */
}

.case_container .part_content {
  margin-bottom: 16%;
  /* 16% = (50 / 320) */
}

.case_container .item_head {
  padding-top: 38%;
  /* 38% = (100 / 320) */
  position: relative;
}

.case_container .item_head .bg {
  position: absolute;
  top: 0;
  z-index: 0;
  left: -17%;
  /* 17% = ((15 + 25) / 246) , 15 = コンテンツエリア , 25 = .innerのpadding　*/
  width: 110%;
  /* 110% = (272 / 246) */
  z-index: 1;
}

.case_container h2 {
  position: relative;
  z-index: 2;
  height: 21.5rem;
  left: -6%;
  /* 6% = (15 / 246.5) */
}

.case_container h2 img {
  height: 100%;
  width: auto;
  position: relative;
  left: -3.5%;
}

.case_container .item_desc {
  margin-top: -3.5%;
  /* 3.5% = (10 / 290) */
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  position: relative;
  z-index: 2;
}

.case_container .item_desc p {
  width: 47.5%;
  /* 47.5% = (117 / 246.5) */
  margin-right: 8%;
  /* 8% = (20 / 246.5) */
}

.case_container .item_desc figure {
  flex: 1;
}

.sec_case .sc_slider_content figure {
  margin-bottom: 0.7rem;
  position: relative;
  padding-top: 100%;
}
.sec_case .sc_slider_content figure img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sec_case .sc_slider_content .tag {
  display: inline-block;
  background-color: #fff;
  color: #000;
  font-weight: bold;
  font-size: 1rem;
  line-height: 1;
  padding: 0.2em 0.5em;
}

.sec_case .sc_slider_content .tag + .tag {
  margin-left: 0.3em;
}

.sec_case .sc_slider_content .tag.black {
  background-color: #000;
  color: #fff;
  position: relative;
}

.sec_case .sc_slider_content .tag.black::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: solid 0.1rem #fff;
}

.reverse .case_container .inner {
  padding-left: 4.7%;
  /* 15px */

  padding-right: 7.8%;
  /* 25px */
}

.reverse .case_container .case_icon {
  right: auto;
  left: 5%;
}

.reverse .case_container .item_head .bg {
  left: auto;
  right: -17%;
}

.reverse .case_container .item_desc {
  flex-direction: row-reverse;
  margin-top: 12%;
  /* 12% = (30 / 250) */
}

.reverse .case_container .item_desc p {
  margin-right: 0;
  margin-left: 8%;
}

@media screen and (min-width: 768px) {
  .case_container h2 {
    height: calc(20rem * var(--tab-mag-value));
  }

  .case_container .part_slider h3 {
    font-size: calc(1.7rem * var(--tab-mag-value));
  }

  .sec_case .sc_slider_content .tag {
    font-size: calc(1rem * var(--tab-mag-value));
  }
}

@media screen and (min-width: 1024px) {
  .case_container {
    max-width: var(--pc-content-area);
    margin: auto;
  }

  .case_container .case_icon {
    width: 1.2%;
    /* 1.2% = (11 /  900) */
    right: 0;
  }

  .case_container .part_content .inner {
    width: 100%;
    max-width: none;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
  }

  .case_container .item_head {
    width: 47%;
    /* 47% = (423 / 900) */
    padding-top: 5.5%;
    /* 5.5% = (50 / 900)  */
  }

  .case_container .item_desc {
    flex: 1;
    margin-left: 4.5rem;
    margin-right: 7rem;
    align-items: flex-start;
    margin-top: 0;
    padding-top: 7.5%;
  }

  .case_container .item_head .bg {
    width: 85%;
    /* 85% = (358 / 900) */
    left: 0;
  }

  .case_container h2 {
    height: 38rem;
    left: 0;
  }

  .reverse .case_container .item_desc p,
  .case_container .item_desc p {
    width: 57%;
    margin-right: 6.9%;
  }
  .reverse .case_container .item_desc p {
    margin-left: 0;
  }

  .case_container .part_content {
    margin-bottom: 15%;
  }

  .reverse .case_container .case_icon {
    left: 0;
  }

  .reverse .case_container .part_content .inner {
    flex-direction: row-reverse;
  }

  .reverse .case_container .item_desc {
    flex-direction: row;
    margin-left: 7rem;
    margin-right: 4.5rem;
    margin-top: 0;
  }

  .reverse .case_container .item_head .bg {
    left: auto;
    right: 0;
  }

  .reverse .case_container h2 {
    left: auto;
    right: 0;
  }
  .reverse .case_container h2 img {
    left: auto;
    right: 3.5%;
  }

  .case_container .part_slider h3 {
    font-size: 1.7rem;
  }

  .sec_case .sc_slider_content .tag {
    font-size: 1rem;
  }

  .sec_case .slide-dots li {
    margin: 0 5px;
  }
  .sec_case .slick-list {
    overflow: visible !important;
  }
}

@media screen and (min-width: 1280px) {
  .sec_case .inner {
    max-width: 130rem;
  }
  .sec_case .part_slider .sauna_case_slider_wrap {
    position: relative;
  }

  .sec_case .slick-list {
    overflow: hidden !important;
  }
}
/* -----------------------------------

  model_house

----------------------------------- */
.model_house {
  padding: 5rem 0;
}
.model_house h2 {
  font-size: 2.1rem;
  line-height: 1.5;
  margin-bottom: 1em;
  text-align: center;
}
.model_house .list li + li {
  margin-top: 2.5rem;
}
.model_house .list li p {
  text-align: center;
}
.model_house .list li p span {
  font-size: 1.35rem;
  display: block;
  line-height: 1;
  margin-top: 0.5em;
}
@media screen and (min-width: 768px) {
  .model_house {
    padding: calc(5rem * var(--tab-mag-value)) 0;
  }

  .model_house h2 {
    font-size: calc(2.1rem * var(--tab-mag-value));
  }

  .model_house .list li + li {
    margin-top: calc(2.5rem * var(--tab-mag-value));
  }
  .model_house .list li p span {
    font-size: calc(1.35rem * var(--tab-mag-value));
  }
}
@media screen and (min-width: 1024px) {
  .model_house {
    padding: 8rem 0;
  }

  .model_house h2 {
    font-size: 3.6rem;
    margin-bottom: 4rem;
  }
  .model_house .list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .model_house .list li {
    width: calc((100% - 3rem) / 2);
  }

  .model_house .list li + li {
    margin-top: 0;
  }
  .model_house .list li p span {
    font-size: 2.1rem;
  }
}
/* -----------------------------------

	campaign

----------------------------------- */
.campaign {
  padding: 3rem 0;
}

.campaign .root-block {
  color: #fff;
  text-align: center;
  font-size: 1rem;
}

.campaign h2 span {
  display: block;
  font-size: 1.6em;
  line-height: 1;
  padding: 0.3em 0.75em;
  border: solid 0.1rem #fff;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1rem;
}

.campaign h2 strong {
  font-size: 8em;
  display: block;
  line-height: 1;
  margin-bottom: 0.125em;
}

.campaign h2 small {
  font-size: 2.3em;
  line-height: 1;
  text-shadow: 0px 0px 10px rgba(0, 151, 195, 1),
    0px 0px 10px rgba(0, 151, 195, 1);
}
.campaign .part_head {
  position: relative;
  z-index: 4;
}
.campaign .part_content {
  margin-top: -15.2%;
  /* 親要素に対する比率（44px / 290）= 13% */
  /* margin-top: 4.5%; */

  padding-top: 78%;
  /* 親要素に対する比率（226px / 290）= 74% */
  position: relative;
}

.campaign .part_content .bg_circle {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: block;
  margin: auto;
  z-index: 1;
}

.campaign .part_content .sauna_visual {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: block;
  margin: auto;
  z-index: 3;
}

.campaign .part_content .item_text {
  position: relative;
  z-index: 2;
}

.campaign .part_content .item_text .white {
  padding: 17.5% 5% 5%;
  /* .item_textに対する比率 => (50px 14px 15px) / 290 */
  background-color: #fff;
  border-radius: 1rem;
  box-shadow: 0px 0px 15px -7px rgba(0, 0, 0, 0.3);
}

.campaign .part_content .item_text h3 {
  line-height: 1;
  font-size: 2.1rem;
  letter-spacing: -0.03em;
  margin-bottom: 1.38em;
  /* 29px / 21 */
}

.campaign .part_btn {
  margin-top: 1.5rem;
  max-width: 93%;
  margin-left: auto;
  margin-right: auto;
}

.campaign .part_btn a {
  font-size: 1.6rem;
  display: block;
  line-height: 1;
  padding: 0.75em 0;
  text-align: center;
}
.campaign_test {
  overflow: hidden;
}
.campaign_test img {
  width: 107.5%;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}
.cam_info h4 {
  line-height: 1;
  font-size: 1.4rem;
  margin-bottom: 0;
  padding: 0.4em 0.7em;
  background-color: #e5e5e5;
}
.cam_info dd {
  display: block;
  padding: 6% 0;
  /* padding =  15px 0 */
  border-bottom: solid 0.1rem #8d8d8d;
  margin-bottom: 10%;
  /* 21px */
}
.cam_info > dl > div:last-of-type dd {
  border-bottom: none;
  margin-bottom: 0;
}
.asterisk_list,
.dots_list li {
  position: relative;
  padding-left: 1.2em;
  line-height: 1.8;
}
.dots_list li + li {
  margin-top: 0.7rem;
}
.dots_list li::before {
  content: "●";
  position: absolute;
  top: 0;
  left: 0;
}
.asterisk_list {
  margin-top: 0.7rem;
}
.asterisk_list li::before {
  content: "※";
  position: absolute;
  top: 0;
  left: 0;
}
.cam_info .visuals {
  margin-top: 1.3rem;
  padding-bottom: 0.5rem;
}
.cam_info .visuals figure + figure {
  margin-top: 1rem;
}
.bg_circle img {
  animation: rotation;
  animation-iteration-count: infinite;
  animation-duration: 120s;
  animation-timing-function: linear;
  transform-origin: center center;
  opacity: 0.7;
}
@keyframes rotation {
  0% {
    transform: rotate(0);
  }

  100% {
    transform: rotate(360deg);
  }
}
@media screen and (min-width: 768px) {
  .campaign {
    padding: calc(3rem * var(--tab-mag-value)) 0;
  }

  .campaign .root-block {
    font-size: calc(1rem * var(--tab-mag-value));
  }

  .campaign .part_content .item_text h3 {
    font-size: calc(2.1rem * var(--tab-mag-value));
  }

  .campaign .part_content .item_text h4 {
    font-size: calc(1.4rem * var(--tab-mag-value));
  }

  .campaign .part_btn {
    margin-top: calc(1.5rem * var(--tab-mag-value));
  }

  .campaign .part_btn a {
    font-size: calc(1.6rem * var(--tab-mag-value));
  }
}
@media screen and (min-width: 1024px) {
  .campaign {
    padding: calc(3rem * var(--pc-mag-value)) 0;
  }

  .campaign .root-block {
    font-size: 1.4rem;
  }

  .campaign .part_content .item_text h3 {
    font-size: 2.7rem;
    margin-bottom: 0.65em;
  }

  .campaign .part_content .item_text h4 {
    font-size: 1.4rem;
  }

  .campaign .part_btn {
    max-width: 32.4rem;
  }
  .campaign .part_btn a {
    font-size: 2rem;
  }

  .campaign .part_content .bg_circle,
  .campaign .part_content .sauna_visual {
    max-width: 43.5rem;
    margin-left: auto;
    margin-right: auto;
  }
  .campaign .part_content {
    margin-top: -5%;
    /* 45px */
    /* margin-top: 1.5%; */
    padding-top: 43.8%;
    /* 394px */
  }

  .campaign .part_content .item_text .white {
    padding: 3.6% 4.2% 4.2%;
    /* 32px 38px 38px */
  }
  .cam_info dd {
    padding: 1.8% 0;
    /* 1.8% = 14.5px = 20px - line-heightの余白 */
    border-bottom: solid 0.1rem #8d8d8d;
    margin-bottom: 2.5%;
    /* 20px */

    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .cam_info dd .texts {
    flex: 1;
  }
  .cam_info dd .visuals {
    padding: 0.56rem 0;
    margin: 0;
    width: 62%;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
  }
  .cam_info dd .visuals figure + figure {
    margin: 0;
  }
  .cam_info dd .visuals figure {
    width: 49%;
    height: 100%;
    position: relative;
  }
  .cam_info dd .visuals figure img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .dots_list li + li {
    margin-top: 0.2rem;
  }
  .campaign .part_btn {
    margin-top: 3rem;
  }
}
/* -----------------------------------

	info

----------------------------------- */
.info {
  background: #fff;
}

.info__title {
  font-size: 2.1rem;
  font-weight: bold;
  line-height: 1;
  text-align: center;
  margin-bottom: 3rem;
  padding: 0.9em 0;
  border: solid 0.2rem #000;
}

.info__box {
  background: #fff;
  padding: 5rem;
  box-sizing: border-box;
}

.tel_apply {
  margin-bottom: 5rem;
}

.form__label {
  line-height: 1;
  margin-bottom: 1.5rem;
}

.form__tel {
  font-size: 3.3rem;
  letter-spacing: 0;
  line-height: 1;
  margin-bottom: 1rem;
}

.form__text {
  font-size: 1.5rem;
  line-height: 1;
  margin-bottom: 0;
}

@media screen and (min-width: 1024px) {
  .info .inner {
    max-width: var(--tab-content-area);
  }
}
/* -----------------------------------

	fixed cta banner

----------------------------------- */
.fixed_cta_banner {
  position: fixed;
  left: 0;
  bottom: 0;
  height: 4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  z-index: 999;
}
.fixed_cta_banner .inner {
  width: 100%;
}
.fixed_cta_banner a {
  line-height: 0;
  display: block;
}

.fixed_cta_banner a img {
  height: 2.7rem;
  width: auto;
  margin-left: auto;
  margin-right: auto;
  display: block;
}
@media screen and (min-width: 768px) {
  .fixed_cta_banner {
    /* 要素全体の高さにバナー画像の高さが対して67.5%になる / ここではmax-width500の時画像の高さが45px → 45 / 67.5 * 100 */
    height: 6.6rem;
  }

  .fixed_cta_banner .inner {
    max-width: 50rem;
  }
  .fixed_cta_banner a img {
    height: calc(2.7rem * 1.7);
  }
}
@media screen and (min-width: 1024px) {
  .fixed_cta_banner {
    height: 5rem;
    max-width: 50rem;
    margin-left: auto;
    margin-right: auto;
    right: 0;
  }
  .fixed_cta_banner .inner {
    max-width: 36rem;
  }
  .fixed_cta_banner a img {
    height: calc(2.7rem * 1.25);
  }
}
/******************************* ここまで サウナLP 新規の記述 2024.02.29 ********************************/

/* //白色セクションの上に来た時headerに背景色を追加 */
.landing_sauna .l-header {
  transition: 300ms cubic-bezier(0.25, 0.1, 0.25, 1) 0ms;
}
.landing_sauna .l-header.bg_active {
  background-color: rgba(0, 0, 0, 1);
}
/* 白色セクションの上に来た時headerに背景色を追加// */

/* top */
.top {
  height: 100vh;
  height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.hero_slider_wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.hero_slider_wrap::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
}
h1 {
  position: relative;
  width: 22rem;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  h1 {
    width: auto;
    /* （親の幅に対して68.75%の幅） / 高さ = （768*0.68）/1024 */
    height: 69%;
  }
  h1 img {
    display: block;
    height: 100%;
    width: auto;
  }
}
@media screen and (min-width: 1024px) {
  /* XDより。1024/1280 */
  h1 {
    width: 90rem;
  }
}
@media screen and (min-width: 1280px) {
  .l-header .inner,
  h1 {
    max-width: 128rem;
  }

  h1 {
    width: 90%;
  }
}
/* intro */
.intro {
  padding-bottom: 6.5rem;
}
.intro .item_head {
  width: 83%;
  /* 親の横幅に対して (242px / 290) = 69% */
  margin-bottom: 10%;
  /*  (30px / 290) = 6% */
}
.intro .part_desc h2 {
  margin-bottom: 0.7em;
  letter-spacing: 0.2em;
}

/* case */

.sec_case .sc_slider_content h3 {
  font-size: 1em;
  margin-bottom: 0;
}
.sec_case .slide-dots {
  padding-top: 6.25%;
  /* 6.25% = (20 / 320) */
}

.sec_case .slide-dots li {
  padding: 0 1.5%;
  margin: 0;
}
.sec_case .slide-dots li button {
  padding: 0;
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 50%;
}
.sec_case .sc_slider_slick_slide,
.sec_case .sc_slider_slick_slide.slick-center.slick-cloned {
  opacity: 0.5;
  transition: opacity 350ms ease, transform 350ms ease;
}
.sec_case .sc_slider_slick_slide.slick-center {
  opacity: 1;
}
@media screen and (min-width: 768px) {
  .sec_case .slide-dots li button {
    width: 1.1rem;
    height: 1.1rem;
  }
}
@media screen and (min-width: 1024px) {
  .sec_case .slide-dots {
    padding-top: 2rem;
  }
  .sec_case .slide-dots li {
    padding: 0.5rem;
  }
  .sec_case .slide-dots li button {
    height: 0.3rem;
    width: 2rem;
    border-radius: 0;
  }
}
@media screen and (min-width: 1024px) {
  .sec_case .sc_slider_slick_slide,
  .sec_case .sc_slider_slick_slide.slick-center.slick-cloned {
    padding: 0 30px;
  }
  /* .sec_case .sc_slider_slick_slide.slick-center {
    transform: scale(1);
  } */
}

/* lineup */
.lineup {
  padding-top: 0;
}
.lineup li {
  font-size: 1.2em;
  margin-bottom: 0.7em;
  border: solid 0.1rem #fff;
  border-radius: 1rem;
  text-align: center;
  padding: 0.2em 0.5em;
}
.lineup li:last-child {
  margin-bottom: 0;
}
@media screen and (min-width: 1024px) {
  .lineup ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .lineup ul::after {
    content: "";
    display: block;
    height: 0;
    width: 32.5%;
  }
  .lineup li {
    width: 32.5%;
    margin-bottom: 1.25%; /* (100% - 32.5%*3) / 2 */
  }
  .lineup li:nth-last-of-type(1),
  .lineup li:nth-last-of-type(2) {
    margin-bottom: 0;
  }
}
/* form */
/* 切り替えタブ */
.tab-list .tab--item {
  width: 100%;
}
.is_swich-style input[type="radio"] + span,
.is_swich-style input[type="radio"]:checked + span {
  background-color: transparent;
  color: #000;
}
.is_swich-style input[type="radio"] + span {
  font-size: 1em;
  padding: 0.5em 0;
}
.is_swich-style input[type="radio"] + span::before {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 1.5em;
  height: 1.5em;
  margin: 0 0.4em 0 0;
  margin-right: 0.5rem;
}
.is_swich-style .tab--item.is-active input[type="radio"] + span::after {
  width: 1em;
  height: 1em;
  margin: auto;
  top: 0.2em;
  left: 0.25em;
}
@media screen and (min-width: 768px) {
  .tab-list .tab--item + .tab--item {
    margin-left: 0;
  }
}
@media screen and (min-width: 1024px) {
  .tab-list .tab--item {
    display: inline-block;
    width: auto;
  }
  .tab-list .tab--item + .tab--item {
    margin-left: 1em;
  }
}
/* kari */
/* .kari {
  position: relative;
}
.kari::after {
  content: "仮";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
} */
