@charset "UTF-8";
/* ==========================================
 FV
============================================*/
/* ==========================================
 News
============================================*/
.news {
  padding-block: var(--sz-45) var(--sz-62);
  background-color: #fff;
  position: relative;
}

.news__box {
  font-size: var(--sz-20);
  margin-inline: auto;
  border: 1px solid #e5e5e5;
  background: #fff;
  padding: var(--sz-25) var(--sz-40);
  position: relative;
  margin-bottom: var(--sz-52);
}
.news__box:not(:has(.news__list)) {
  display: none;
}

.news__heading {
  font-weight: 400;
  line-height: normal;
  background-color: #fff;
  padding: 0.3em 1em;
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% -50%;
}

.news__list {
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
}

.news__item {
  font-weight: 400;
  line-height: 1.8;
  display: flex;
  gap: 1em;
}

.news__date {
  flex-shrink: 0;
}

.news__title {
  color: inherit;
  text-decoration: none;
}

.news__title:hover {
  text-decoration: underline;
}

.news__p1 {
  font-family: var(--font-serif);
  font-size: var(--sz-24);
  font-weight: 300;
  line-height: 1.45;
  text-align: center;
  letter-spacing: 0.05em;
  margin-bottom: 0;
}
.news__p1 .lg {
  font-size: var(--sz-30);
  line-height: 1.33;
  margin-top: 0.73em;
  display: block;
}

.news__p2 {
  font-family: var(--font-bizUDPMincho);
  font-size: var(--sz-50);
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.15em;
  text-align: center;
  margin-bottom: var(--sz-22);
}
.news__p2 ruby {
  font-size: var(--sz-60);
  line-height: 1.33;
  letter-spacing: 0.1em;
}
.news__p2 rt {
  font-size: var(--sz-20);
  letter-spacing: 0.05em;
}

@media screen and (min-width: 992px) {
  .news {
    padding-block: var(--sz-44) var(--sz-75);
  }
  .news__box {
    width: 96.2%;
    padding: var(--sz-36) var(--sz-75);
    margin-bottom: var(--sz-38);
  }
  .news__heading {
    font-size: var(--sz-20);
  }
  .news__item {
    font-size: var(--sz-20);
  }
  .news__p1 {
    font-size: var(--sz-24);
    line-height: 1.66;
  }
  .news__p1 .lg {
    font-size: var(--sz-35);
    font-weight: 600;
    line-height: 1.42;
    letter-spacing: 0.05em;
    display: block;
    margin-top: var(--sz-28);
  }
  .news__p2 {
    font-size: var(--sz-64);
    line-height: 1.56;
  }
  .news__p2 ruby {
    font-size: var(--sz-80);
    line-height: 1.25;
    letter-spacing: 0.1em;
  }
  .news__p2 rt {
    font-size: var(--sz-25);
    letter-spacing: 0.1em;
  }
}
/* ==========================================
 Service nav
============================================*/
.service-nav {
  background-color: #fff;
  padding-block: var(--sz-25);
}

.service-nav__items {
  display: flex;
  flex-direction: column;
  gap: var(--sz-22);
  width: var(--sz-668);
  margin-inline: auto;
  margin-bottom: var(--sz-25);
}

.service-nav__item {
  font-size: var(--sz-34);
  font-weight: 700;
  padding: 0.75em 0.5em;
  text-align: center;
  line-height: normal;
}
.service-nav__item:link, .service-nav__item:hover, .service-nav__item:active {
  text-decoration: none;
}

.service-nav__item.--furisode {
  background-color: #f6c9dd;
  color: #d20732;
}

.service-nav__item.--processing {
  font-feature-settings: "palt";
  background-color: #fae0d3;
  color: #d20732;
}

.service-nav__item > span {
  display: block;
  color: #666;
  font-size: 80%;
}

.service-nav__corp {
  font-size: var(--sz-24);
  color: var(--bs-blue);
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  text-decoration: underline;
}
.service-nav__corp:link, .service-nav__corp:active, .service-nav__corp:hover {
  color: var(--bs-blue);
}

.service-nav__cleaning {
  color: #ff070a;
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  pointer-events: none;
  animation: blink 2s infinite;
}
.service-nav__cleaning:link, .service-nav__cleaning:active, .service-nav__cleaning:hover {
  color: #ff070a;
}

@media (min-width: 992px) {
  .service-nav__items {
    width: 100%;
    max-width: 1294px;
    flex-direction: row;
    justify-content: space-between;
    gap: var(--sz-10);
    padding-inline: var(--sz-20);
    margin-bottom: var(--sz-20);
  }
  .service-nav__item {
    width: 50%;
    font-size: var(--sz-30);
  }
  .service-nav__corp {
    font-size: var(--sz-20);
    margin-bottom: var(--sz-10);
  }
  .service-nav__cleaning {
    font-size: var(--sz-28);
  }
}
/* ==========================================
 Media
============================================*/
.media {
  background: url(../images/bg-media@2x.webp) no-repeat top center/cover;
  padding-block: var(--sz-111) var(--sz-120);
}

.media__heading {
  color: var(--color-orange);
  text-align: center;
  font-size: var(--sz-40);
  font-weight: bold;
  line-height: 1; /* 100% */
  letter-spacing: 0.05em;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.2em;
  margin-bottom: var(--sz-71);
}

.media__heading::before,
.media__heading::after {
  content: "";
  width: 1px;
  height: var(--sz-97);
  background-color: var(--color-orange);
}

.media__heading::before {
  rotate: -15deg;
}

.media__heading::after {
  rotate: 15deg;
}

.media__image:first-child img {
  width: var(--sz-642);
}

.media__image:last-child img {
  width: var(--sz-700);
}

@media screen and (min-width: 992px) {
  .media {
    background-image: url(../images/bg-media.webp);
    padding-block: var(--sz-99) var(--sz-132);
  }
  .media__heading {
    font-size: var(--sz-40);
    margin-bottom: var(--sz-62);
  }
  .media__image:first-child img {
    width: var(--sz-929);
  }
  .media__image:last-child img {
    width: var(--sz-891);
  }
}
@media screen and (min-width: 1440px) {
  .media .inner {
    max-width: 100%;
  }
  .media__images {
    padding-inline: 20px;
  }
  .media__image:first-child img {
    width: 957px;
    margin-inline: 0 auto;
  }
  .media__image:last-child img {
    width: 1034px;
    margin-inline: auto 0;
  }
}
/* ==========================================
 Worry
============================================*/
.worry {
  background-color: var(--color-primary);
  padding-block: var(--sz-45) var(--sz-58);
}
.worry mark {
  background-image: linear-gradient(180deg, #fff 50%, var(--color-mark) 50%);
}

.worry__heading {
  color: #fff;
  text-align: center;
  font-size: var(--sz-50);
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0.05em;
  margin-bottom: var(--sz-46);
}

.worry__title {
  margin-inline: calc(-1 * var(--sz-26));
}

.worry__desc {
  background-color: #fff;
  padding: var(--sz-11) var(--sz-9) var(--sz-63);
}

.worry__image {
  margin-bottom: var(--sz-34);
}

.worry__image img {
  width: var(--sz-680);
}

.worry__list {
  display: flex;
  flex-direction: column;
  gap: var(--sz-46);
}

.worry__item {
  background: url(../images/icon-check.webp) no-repeat top 0.3em left/var(--sz-36);
  padding-left: var(--sz-51);
  font-size: var(--sz-30);
  font-weight: bold;
  line-height: 1.66;
}

@media screen and (min-width: 992px) {
  .worry {
    padding-block: var(--sz-97) var(--sz-102);
  }
  .worry__heading {
    font-size: var(--sz-40);
    margin-bottom: var(--sz-33);
  }
  .worry__title {
    margin-inline: unset;
  }
  .worry__desc {
    padding: var(--sz-40) var(--sz-18) var(--sz-56);
  }
  .worry__image {
    margin-bottom: var(--sz-33);
  }
  .worry__image img {
    width: var(--sz-873);
  }
  .worry__item {
    font-size: var(--sz-25);
    line-height: 1.6;
  }
}
@media screen and (min-width: 1440px) {
  .worry .inner {
    max-width: 100%;
  }
  .worry__image img {
    width: 1088px;
  }
  .worry__list {
    width: 1000px;
    margin-inline: auto;
  }
}
/* ==========================================
 Case
============================================*/
.case {
  background-color: #fff;
  padding-block: var(--sz-91) var(--sz-92);
}

.case__heading {
  font-size: var(--sz-40);
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0.05em;
  color: var(--color-orange);
  margin-bottom: var(--sz-57);
}

.case__subtitle {
  text-align: center;
  font-size: var(--sz-50);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
  margin-bottom: var(--sz-30);
}

.case__list {
  display: flex;
  flex-direction: column;
}

.case__item {
  position: relative;
  padding-block: var(--sz-30);
}

.case__item:not(:last-child)::before {
  content: "";
  border-bottom: var(--sz-2) dashed var(--color-primary);
  display: block;
  margin-inline: calc(-1 * var(--sz-26));
  width: calc(100% + 2 * var(--sz-26));
  position: absolute;
  bottom: 0;
  left: 50%;
  translate: -50%;
}

.case__title {
  font-size: var(--sz-30);
  font-weight: 700;
  line-height: 1.66;
  -webkit-text-decoration: underline var(--sz-5) #000;
          text-decoration: underline var(--sz-5) #000;
  text-underline-offset: 0.5em;
  margin-bottom: var(--sz-20);
}

.case__opener-pre {
  margin-block: var(--sz-77) 0;
  font-size: var(--sz-20);
  line-height: 2.5;
  text-align: center;
}
.case__opener-pre:has(+ .collapse) {
  display: none;
}

.case__more img {
  width: var(--sz-459);
}

.case__close {
  margin-top: var(--sz-44);
}

.case__close img {
  width: var(--sz-389);
}

@media screen and (min-width: 992px) {
  .case {
    padding-block: var(--sz-89) var(--sz-86);
  }
  .case__subtitle {
    font-size: var(--sz-40);
    line-height: 1.75;
    margin-bottom: var(--sz-60);
  }
  .case__item {
    padding-block: var(--sz-35) var(--sz-25);
  }
  .case__item:not(:last-child)::before {
    content: "";
    margin-inline: unset;
    width: 100%;
  }
  .case__title {
    font-size: var(--sz-30);
  }
  .case__opener-pre {
    margin-block: var(--sz-65) 0;
  }
  .case__more img {
    width: var(--sz-500);
  }
  .case__close {
    margin-top: var(--sz-65);
  }
  .case__close img {
    width: var(--sz-500);
  }
}
@media screen and (min-width: 1440px) {
  .case .inner {
    max-width: 100%;
  }
  .case__image img {
    width: 100%;
  }
}
/* ==========================================
 Reason
============================================*/
.reason {
  background-color: var(--color-secondary);
}

.reason__upper {
  padding-block: var(--sz-66) var(--sz-94);
}

.reason__lower {
  background-color: var(--color-white);
  padding-block: var(--sz-30) var(--sz-53);
}

.reason__heading {
  font-family: var(--font-bizUDPMincho);
  font-size: var(--sz-40);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: var(--sz-67);
}
.reason__heading > span {
  color: var(--color-water);
  font-size: var(--sz-65);
  font-weight: 700;
  line-height: 1;
}
.reason__heading ruby {
  font-size: var(--sz-85);
}
.reason__heading rt {
  font-size: var(--sz-25);
  line-height: 1.66;
}

.reason__subtitle {
  font-family: var(--font-bizUDPMincho);
  text-align: center;
  font-size: var(--sz-30);
  font-weight: 700;
  line-height: 1.66;
  letter-spacing: 0.1em;
  margin-bottom: 0;
}

.reason__list {
  display: flex;
  flex-direction: column;
  gap: var(--sz-24);
  margin-bottom: var(--sz-46);
}

.reason__item {
  border: var(--sz-5) solid #edf4ff;
  background-color: #fff;
  padding: var(--sz-48) var(--sz-25) var(--sz-53);
}

.reason__index {
  font-size: var(--sz-30);
  font-weight: 500;
  line-height: 1.66;
  margin-bottom: var(--sz-39);
  padding-inline: var(--sz-10);
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
}
.reason__index::before {
  content: "";
  background-color: var(--color-text);
  height: var(--sz-5);
  width: 100%;
  display: block;
  position: absolute;
  top: 100%;
  left: 0;
}
.reason__index > span {
  font-size: var(--sz-64);
  font-weight: bold;
  line-height: 0.78;
}

.reason__image {
  width: 100%;
  margin-bottom: var(--sz-9);
}

.reason__title {
  font-size: var(--sz-39);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.1em;
  margin-bottom: var(--sz-42);
}
.reason__title > br + span {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}

.reason__desc {
  font-size: var(--sz-28);
  font-weight: 400;
  line-height: 1.78;
  margin-bottom: 0;
}

@media screen and (min-width: 992px) {
  .reason__upper {
    padding-block: var(--sz-74) var(--sz-87);
    padding-block: var(--sz-74) var(--sz-87);
    background-image: url(../images/pic-petal1.webp), url(../images/pic-petal2.webp);
    background-position: center left, center right;
    background-size: var(--sz-485), var(--sz-510);
    background-repeat: no-repeat;
  }
  .reason__lower {
    padding-block: var(--sz-25) var(--sz-118);
  }
  .reason__heading {
    margin-bottom: var(--sz-26);
  }
  .reason__heading > span {
    font-size: var(--sz-64);
  }
  .reason__heading ruby {
    font-size: var(--sz-80);
  }
  .reason__heading rt {
    font-size: var(--sz-20);
  }
  .reason__subtitle {
    font-size: var(--sz-40);
    line-height: 1.25;
  }
  .reason__list {
    gap: var(--sz-29);
  }
  .reason__item {
    padding: var(--sz-18) var(--sz-15) var(--sz-22) var(--sz-32);
    display: grid;
    grid-template-areas: "index image" "title image" "desc image";
    grid-template-columns: 1fr var(--sz-472);
    align-items: flex-start;
    -moz-column-gap: var(--sz-45);
    column-gap: var(--sz-32);
  }
  .reason__index {
    grid-area: index;
    font-size: var(--sz-25);
    margin-bottom: var(--sz-25);
    padding-inline: unset;
    white-space: nowrap;
  }
  .reason__index > span {
    font-size: var(--sz-40);
  }
  .reason__image {
    grid-area: image;
    margin-bottom: unset;
  }
  .reason__title {
    grid-area: title;
    font-size: var(--sz-30);
    line-height: 1.66;
    margin-bottom: var(--sz-45);
  }
  .reason__title > br + span {
    margin-inline: auto 0;
  }
  .reason__desc {
    font-size: var(--sz-20);
    line-height: 1.5;
  }
}
@media screen and (min-width: 1440px) {
  .reason .inner {
    max-width: 100%;
  }
  .reason__item {
    grid-template-columns: 1fr var(--sz-552);
  }
  .reason__title > br + span {
    display: inline;
  }
  .reason__list {
    margin-bottom: 86px;
  }
}
/* ==========================================
 Price
============================================*/
.price {
  background-color: var(--color-secondary);
  padding-block: var(--sz-51) var(--sz-40);
}

.price__box {
  background-color: #fff;
  padding: var(--sz-81) var(--sz-13) var(--sz-76);
}

.price__heading {
  font-size: var(--sz-40);
  font-weight: 700;
  line-height: 1;
  color: var(--color-orange);
  letter-spacing: 0.05em;
  margin-bottom: var(--sz-40);
}

.price__table {
  --bs-table-color: var(--color-text);
  --bs-table-border-color: #d9d9d9;
  margin-bottom: var(--sz-7);
}

.price__caption {
  caption-side: top;
  color: var(--color-text);
  text-align: center;
  font-size: var(--sz-50);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.05em;
  padding-block: 0 var(--sz-27);
}

.price__table :is(th, td) {
  font-size: var(--sz-25);
  font-weight: bold;
  text-align: center;
  vertical-align: middle;
  padding: var(--sz-23) var(--sz-10);
}

.price__table thead th:first-child {
  font-weight: 400;
}

.price__table thead th:not(:first-child) {
  font-size: var(--sz-28);
  line-height: 1.2;
}

.price__table :is(th, td):not(:first-child) {
  color: #fff;
}

.price__table thead th:nth-child(2),
.price__table tbody td:nth-child(2),
.price__table tbody td:nth-child(3) {
  background-color: var(--color-economy);
}

.price__table thead th:nth-child(3),
.price__table tbody td:nth-child(4) {
  background-color: var(--color-standard);
}

.price__table thead th:nth-child(4),
.price__table tbody td:nth-child(5) {
  background-color: var(--color-storage);
}

.price__desc {
  font-size: var(--sz-30);
  font-weight: 500;
  line-height: 1.66;
  padding-inline: var(--sz-12);
  margin-bottom: 0;
  --mb-p: 1.5em;
}

.price__desc p:last-child {
  margin-bottom: 0;
}

@media screen and (min-width: 992px) {
  .price {
    padding-block: var(--sz-96) var(--sz-13);
  }
  .price__box {
    padding: var(--sz-70) var(--sz-20) var(--sz-86);
  }
  .price__heading {
    margin-bottom: var(--sz-60);
  }
  .price__table {
    margin-bottom: var(--sz-67);
  }
  .price__caption {
    font-size: var(--sz-40);
    line-height: 1.5;
    padding-block: 0 var(--sz-34);
  }
  .price__table :is(th, td) {
    font-size: var(--sz-30);
    padding: var(--sz-10) var(--sz-10);
  }
  .price__desc {
    padding-inline: var(--sz-45);
  }
}
@media screen and (min-width: 1440px) {
  .price .inner {
    max-width: 100%;
  }
}
/* ==========================================
 Course
============================================*/
.course {
  background-color: var(--color-secondary);
  padding-block: 0 var(--sz-55);
}

.course__heading {
  font-size: var(--sz-30);
  font-weight: 700;
  line-height: 1.33;
  text-align: center;
  margin-bottom: var(--sz-13);
}

/* タブ */
.course__nav-tabs {
  --bs-nav-tabs-border-color: transparent;
  --bs-nav-tabs-border-radius: 0;
  --bs-nav-tabs-link-hover-border-color: transparent;
  --bs-nav-tabs-link-active-color: #fff;
  --bs-nav-tabs-link-active-bg: transparent;
  --bs-nav-tabs-link-active-border-color: transparent;
  --bs-link-color: #fff;
  --bs-link-hover-color: #fff;
  margin-bottom: var(--sz-5);
  gap: var(--sz-5);
}

.course__nav-link {
  background: #c9cacc;
  color: #fff;
  font-size: var(--sz-36);
  font-weight: bold;
  line-height: 83.33%;
  padding: var(--sz-19) var(--sz-9) var(--sz-9);
}
.course__nav-link.active.-economy {
  background-color: var(--color-economy);
}
.course__nav-link.active.-standard {
  background-color: var(--color-standard);
}
.course__nav-link.active.-storage {
  background-color: var(--color-storage);
}

.course__nav-link .sm {
  font-size: 69.4%;
}

/* タブコンテンツ */
.course__desc {
  background-color: #fff;
  padding: var(--sz-40) var(--sz-12) var(--sz-90);
  font-size: var(--sz-25);
  font-weight: 400;
  line-height: 1.6;
}

/* リード：共通 */
.course__lead {
  font-size: var(--sz-30);
  font-weight: 400;
  line-height: 1.66;
}
.course__lead p:last-child {
  margin-bottom: unset;
}

/* リード：エコノミー */
.course__lead--economy {
  margin-bottom: var(--sz-47);
}

.course__lead--economy p:first-child {
  color: var(--color-water);
  text-align: center;
  font-size: var(--sz-40);
  font-weight: bold;
  line-height: 1.5;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5em;
  margin-bottom: var(--sz-60);
}

.course__lead--economy p:first-child::before,
.course__lead--economy p:first-child::after {
  content: "";
  width: 1px;
  height: var(--sz-177);
  background-color: var(--color-water);
  display: block;
}

.course__lead--economy p:first-child::before {
  rotate: -15deg;
}

.course__lead--economy p:first-child::after {
  rotate: 15deg;
}

/* リード：スタンダード */
.course__lead--standard {
  margin-bottom: var(--sz-47);
}

.course__lead--standard p:first-child {
  color: var(--color-water);
  text-align: center;
  font-size: var(--sz-40);
  font-weight: bold;
  line-height: 1.5;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
  margin-bottom: var(--sz-60);
}

.course__lead--standard p:first-child::before,
.course__lead--standard p:first-child::after {
  content: "";
  width: 1px;
  height: var(--sz-177);
  background-color: var(--color-water);
  display: block;
}

.course__lead--standard p:first-child::before {
  rotate: -15deg;
}

.course__lead--standard p:first-child::after {
  rotate: 15deg;
}

/* リード：保管 */
.course__lead--storage {
  margin-bottom: var(--sz-47);
}

.course__lead--storage p:first-child {
  color: var(--color-green);
  text-align: center;
  font-size: var(--sz-40);
  font-weight: bold;
  line-height: 1.5;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 0.5em;
  margin-bottom: var(--sz-60);
}

.course__lead--storage p:first-child::before,
.course__lead--storage p:first-child::after {
  content: "";
  width: 1px;
  height: var(--sz-177);
  background-color: var(--color-green);
  display: block;
}

.course__lead--storage p:first-child::before {
  rotate: -15deg;
}

.course__lead--storage p:first-child::after {
  rotate: 15deg;
}

/* 返却・保管期間 */
.course__return {
  margin-top: var(--sz-75);
}

.course__return + .course__return {
  margin-top: 0;
}

.course__return-name {
  width: -moz-fit-content;
  width: fit-content;
  margin-bottom: var(--sz-30);
}

.course__return-name span {
  color: #fff;
  font-size: var(--sz-35);
  font-weight: 700;
  line-height: 1.6;
  padding: 0.1em 0.5em;
  margin-bottom: var(--sz-30);
  margin-right: var(--sz-8);
}

/** エコノミーコース用のカラー **/
:where(.course__item--economy .course__return--normal) .course__return-name span {
  background-color: #74beaa;
}

:where(.course__item--economy .course__return--relaxed) .course__return-name span {
  background-color: #ffc849;
}

.course__return-lead {
  font-size: var(--sz-35);
  font-weight: bold;
  line-height: 1.2;
  text-decoration: underline;
  text-decoration-color: var(--color-orange);
  text-decoration-thickness: var(--sz-5);
  text-underline-offset: 0.5em;
  margin-bottom: var(--sz-34);
}

/* オプション起動ボタン */
.course__modal-triggers {
  display: flex;
  justify-content: center;
  gap: var(--sz-4);
  margin-top: var(--sz-55);
}

.course__modal-trigger {
  width: var(--sz-344);
  cursor: pointer;
  transition: 0.3s;
}
.course__modal-trigger:hover {
  filter: brightness(1.1);
}

/* 申込ボタン */
.course__btn {
  width: var(--sz-500);
}

.course__btns p {
  text-align: center;
  font-size: var(--sz-30);
  font-weight: 700;
  margin-bottom: var(--sz-16);
}

/* 保管プラン用の余白調整 */
.course__item--storage .product__regular {
  margin-bottom: var(--sz-40);
}

.course__item--storage .product__regular::before {
  top: calc(100% + var(--sz-15));
}

/* 備考 */
.course__note {
  background-color: #fff;
  padding-block: var(--sz-73);
  font-feature-settings: "palt";
  font-size: var(--sz-25);
  line-height: 1.6;
  text-align: center;
}

@media screen and (min-width: 992px) {
  .course {
    padding-block: 0 var(--sz-92);
  }
  /* タブ */
  .course__nav-tabs {
    margin-bottom: var(--sz-7);
    gap: var(--sz-7);
  }
  .course__nav-link {
    padding: var(--sz-32) var(--sz-9) var(--sz-28);
  }
  /* タブコンテンツ */
  .course__desc {
    padding: var(--sz-77) var(--sz-25) var(--sz-70);
    line-height: 1.6;
  }
  /* リード：共通 */
  /* リード：エコノミー */
  .course__lead--economy {
    margin-bottom: var(--sz-51);
  }
  .course__lead--economy p:first-child {
    margin-bottom: var(--sz-41);
    gap: 0.5em;
  }
  .course__lead--economy p:first-child::before,
  .course__lead--economy p:first-child::after {
    height: var(--sz-100);
  }
  /* リード：スタンダード */
  .course__lead--standard {
    margin-bottom: var(--sz-51);
  }
  .course__lead--standard p:first-child {
    margin-bottom: var(--sz-41);
    gap: 0.5em;
  }
  .course__lead--standard p:first-child::before,
  .course__lead--standard p:first-child::after {
    height: var(--sz-100);
  }
  /* リード：保管 */
  .course__lead--storage {
    margin-bottom: var(--sz-51);
  }
  .course__lead--storage p:first-child {
    margin-bottom: var(--sz-41);
    gap: 0.5em;
  }
  .course__lead--storage p:first-child::before,
  .course__lead--storage p:first-child::after {
    height: var(--sz-100);
  }
  /* 返却・保管期間 */
  .course__return {
    margin-top: var(--sz-75);
  }
  .course__return + .course__return {
    margin-top: var(--sz-50);
  }
  .course__return-lead {
    margin-bottom: var(--sz-45);
  }
  /* オプション起動ボタン */
  .course__modal-triggers {
    gap: var(--sz-9);
  }
  /* 申込ボタン */
  .course__btns p {
    margin-bottom: var(--sz-22);
  }
  /* 備考 */
  .course__note {
    padding-block: var(--sz-26) var(--sz-91);
  }
}
@media screen and (min-width: 1440px) {
  .course .inner {
    max-width: 100%;
  }
}
/* ==========================================
 Compare
============================================*/
.compare {
  margin-block: var(--sz-47) var(--sz-40);
}

.compare__heading {
  text-align: center;
  font-size: var(--sz-50);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.1em;
  margin-bottom: var(--sz-27);
}

/* 比較表 */
.compare__table {
  --bs-table-color: var(=);
  --bs-table-color: var(--color-text);
  --bs-table-border-color: #d9d9d9;
  margin-bottom: var(--sz-10);
  margin-inline: auto;
}

.compare__table thead th {
  color: #fff;
}

.compare__table thead th:not(:first-child) {
  width: 50%;
}

.compare__table :is(th, td) {
  font-size: var(--sz-30);
  line-height: 1.3;
  text-align: center;
  vertical-align: middle;
  padding: var(--sz-23) var(--sz-10);
}

.compare__table tbody th {
  font-feature-settings: "palt";
  background-color: #ffffed;
  white-space: nowrap;
}

.compare__mark {
  color: var(--color-accent);
  font-size: var(--sz-50);
  line-height: 1;
}

.compare__table small {
  font-size: var(--sz-20);
}

/* 参考例 */
.compare__lead {
  font-size: var(--sz-30);
  font-weight: 700;
  line-height: 1.33;
  margin-bottom: var(--sz-7);
}

.compare__section + .compare__section {
  margin-top: var(--sz-12);
}

.compare__section-title {
  background: #80dfcf;
  color: #fff;
  font-size: var(--sz-40);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.2em;
  text-align: center;
  padding: 0.5em;
}

.compare__section-content {
  background-color: #fff;
  padding: var(--sz-15) var(--sz-15) var(--sz-50) var(--sz-15);
  border: var(--sz-2) solid #80dfcf;
}

.compare__images {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sz-88) var(--sz-25);
  margin-bottom: var(--sz-81);
}

.compare__image {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: var(--sz-20);
}

.compare__image-caption {
  color: #7a7a7a;
  text-align: center;
  font-feature-settings: "palt";
  font-size: var(--sz-20);
  font-weight: 400;
  line-height: 1.2;
  white-space: nowrap;
}

.compare__note {
  font-size: var(--sz-30);
  font-weight: bold;
  margin-bottom: 0;
}

@media screen and (min-width: 992px) {
  .compare {
    margin-block: var(--sz-46) var(--sz-99);
  }
  .compare:has(+ .course__btns) {
    margin-bottom: var(--sz-36);
  }
  .compare__heading {
    font-size: var(--sz-40);
    margin-bottom: var(--sz-45);
    line-height: 1.5;
  }
  /* 比較表 */
  .compare__table {
    max-width: 1000px;
  }
  .compare__table :is(th, td) {
    padding: 0.5em;
  }
  .compare__table thead th:first-child {
    width: 39.6%;
  }
  .compare__table thead th:not(:first-child) {
    width: 30.2%;
  }
  .compare__mark {
    color: var(--color-accent);
  }
  /* 参考例 */
  .compare__lead {
    margin-bottom: var(--sz-7);
    text-align: center;
  }
  .compare__section + .compare__section {
    margin-top: var(--sz-29);
  }
  .compare__section-content {
    padding: var(--sz-15) var(--sz-25) var(--sz-69);
  }
  .compare__images {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--sz-75) var(--sz-67);
    margin-bottom: var(--sz-60);
  }
  .compare__image {
    gap: var(--sz-10);
  }
  .compare__image-caption {
    line-height: 1.2;
  }
  :where(.compare__section:nth-last-child(2)) .compare__note {
    margin-top: calc(-1 * var(--sz-110));
    text-align: right;
  }
}
@media screen and (min-width: 1440px) {
  .compare__section-wapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0 37px;
  }
  .compare__section {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
  }
  .compare__section + .compare__section {
    margin-top: 0;
  }
  .compare__section-content {
    padding: 35px 20px 89px;
    border-width: 5px;
    flex-grow: 1;
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 2;
  }
  .compare__image-caption {
    line-height: 1.5;
  }
  .compare__note {
    margin-top: 0;
  }
  :where(.compare__section:nth-last-child(2)) .compare__note {
    margin-top: 0;
    text-align: left;
  }
}
/* ==========================================
 Flow
============================================*/
.flow {
  background-color: var(--color-secondary);
  padding-block: 0 var(--sz-44);
}

.flow__box {
  background-color: #fff;
  padding-block: var(--sz-77) var(--sz-54);
}

.flow__heading {
  color: var(--color-orange);
  font-size: var(--sz-40);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  margin-bottom: var(--sz-52);
}

.flow__subtitle {
  text-align: center;
  font-size: var(--sz-50);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.05em;
  margin-bottom: var(--sz-30);
}

.flow__list {
  display: flex;
  flex-direction: column;
  gap: var(--sz-19);
  margin-bottom: var(--sz-60);
}

.flow__item-head {
  display: flex;
  align-items: center;
  font-size: var(--sz-40);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  padding: 0.55em 0.4em;
  color: #fff;
  background-color: var(--color-primary);
}

.flow__item-idx {
  font-size: var(--sz-40);
  font-weight: 700;
  line-height: var(--sz-50);
  letter-spacing: unset;
  margin-right: var(--sz-10);
  white-space: nowrap;
}

.flow__item-idx span {
  font-size: var(--sz-70);
}

.flow__item-title {
  font-size: var(--sz-40);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.flow__item-title > span {
  display: block;
  font-feature-settings: "palt";
  font-size: var(--sz-25);
}
.flow__item-title > span.sm {
  font-size: var(--sz-20);
}

.flow__toggler {
  margin-left: auto;
  transition: 0.3s;
}

.flow__item-desc {
  font-size: var(--sz-25);
  font-weight: normal;
  line-height: 1.6;
  padding: var(--sz-56) var(--sz-32);
}

:where(.flow__item.active) .flow__toggler {
  scale: 1 -1;
}

.flow__tel {
  font-size: var(--sz-35);
  font-weight: bold;
  line-height: 1.14;
  letter-spacing: 0.1em;
  color: inherit;
  text-decoration: none;
}

.flow__contact {
  margin-top: var(--sz-60);
  width: var(--sz-400);
}

.flow__image {
  width: var(--sz-458);
  margin-bottom: var(--sz-27);
}

.flow__item p:last-child {
  margin-bottom: unset;
}

.flow__btn {
  width: var(--sz-600);
}

@media screen and (min-width: 992px) {
  .flow {
    padding-block: 0 var(--sz-112);
  }
  .flow__box {
    padding-block: var(--sz-76) var(--sz-74);
    padding-inline: var(--sz-20);
  }
  .flow__heading {
    margin-bottom: var(--sz-38);
  }
  .flow__subtitle {
    font-size: var(--sz-40);
    line-height: 1.5;
    margin-bottom: var(--sz-39);
  }
  .flow__list {
    margin-bottom: var(--sz-53);
  }
  .flow__item-head {
    padding-inline: 3.5% 5%;
  }
  .flow__item-idx {
    font-size: var(--sz-40);
    margin-right: 5%;
  }
  .flow__item-desc {
    font-size: var(--sz-30);
    line-height: 1.33;
    padding: var(--sz-40) var(--sz-32) var(--sz-62);
    width: -moz-fit-content;
    width: fit-content;
    margin-inline: auto;
  }
  .flow__tel {
    font-size: var(--sz-50);
  }
  .flow__contact {
    margin-top: var(--sz-39);
  }
}
@media screen and (min-width: 1440px) {
  .flow .inner {
    max-width: 100%;
  }
  .flow__item-desc {
    padding-inline: 200px 55px;
    width: 100%;
  }
  .flow__item:where(:nth-child(1)) .flow__item-desc {
    padding-inline: 200px 200px;
  }
  .flow__item:where(:nth-child(2), :nth-child(4)).active .flow__item-desc {
    display: flex !important;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
  }
  .flow__item:where(:nth-child(7)).active .flow__item-desc {
    display: grid !important;
    grid-template-areas: "p1 img" "p2 img" "p3 img" "p4 p4";
    grid-template-columns: 1fr 458px;
    -moz-column-gap: 40px;
         column-gap: 40px;
  }
  .flow__item:where(:nth-child(7)) .flow__image {
    grid-area: img;
  }
  .flow__item:where(:nth-child(7)) p:nth-of-type(1) {
    grid-area: p1;
  }
  .flow__item:where(:nth-child(7)) p:nth-of-type(2) {
    grid-area: p2;
  }
  .flow__item:where(:nth-child(7)) p:nth-of-type(3) {
    grid-area: p3;
  }
  .flow__item:where(:nth-child(7)) p:nth-of-type(4) {
    grid-area: p4;
  }
}
/* ==========================================
 Contact brief
============================================*/
.contact-brief {
  background: url(../images/bg-contact-brief@2x.webp) no-repeat top center/cover;
  padding-block: var(--sz-110);
}

.contact-brief__box {
  border: var(--sz-10) solid var(--color-orange);
  background-color: #fff;
}

.contact-brief__box .cta {
  padding: var(--sz-72) var(--sz-31) var(--sz-63);
}

.contact-brief__box .cta__phone {
  grid-template-columns: var(--sz-90) 1fr;
  -moz-column-gap: var(--sz-17);
       column-gap: var(--sz-17);
  margin-bottom: var(--sz-50);
  align-items: center;
  width: auto;
}

.contact-brief__box .cta__phone-label {
  font-size: var(--sz-40);
  margin-bottom: var(--sz-40);
}

.contact-brief__box .cta__phone-number {
  font-size: var(--sz-75);
}

.contact-brief__box .cta__phone__time {
  font-size: var(--sz-30);
}

.contact-brief__box .cta__mail {
  display: grid;
  grid-template-columns: var(--sz-90) 1fr;
  -moz-column-gap: var(--sz-17);
       column-gap: var(--sz-17);
  align-items: center;
}

.contact-brief__box .cta__mail-link {
  color: #00b5f4;
  text-shadow: var(--sz-2) 0px 0px #fff, var(--sz-2) var(--sz-1) var(--sz-4) rgba(0, 0, 0, 0.25);
  font-size: var(--sz-30);
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  text-align: center;
}

@media screen and (min-width: 992px) {
  .contact-brief {
    background-image: url(../images/bg-contact-brief.webp);
    padding-block: var(--sz-147) var(--sz-153);
  }
  .contact-brief__box {
    width: var(--sz-975);
    margin-inline: auto;
  }
  .contact-brief__box .cta {
    padding: var(--sz-114) var(--sz-55) var(--sz-94);
  }
  .contact-brief__box .cta__phone {
    grid-template-columns: var(--sz-108) 1fr;
    -moz-column-gap: var(--sz-55);
         column-gap: var(--sz-55);
    margin-bottom: var(--sz-100);
  }
  .contact-brief__box .cta__phone-label {
    margin-bottom: var(--sz-10);
  }
  .contact-brief__box .cta__phone-number {
    font-size: var(--sz-100);
  }
  .contact-brief__box .cta__phone__time {
    font-size: var(--sz-40);
  }
  .contact-brief__box .cta__mail {
    grid-template-columns: var(--sz-108) 1fr;
    -moz-column-gap: var(--sz-55);
         column-gap: var(--sz-55);
  }
  .contact-brief__box .cta__mail-link {
    font-size: var(--sz-40);
    text-align: left;
  }
}
@media screen and (max-width: 360px) {
  .contact-brief__box .cta__phone-number {
    font-size: var(--sz-70);
  }
  .contact-brief__box .cta__mail-link {
    font-size: var(--sz-28);
  }
}
/* ==========================================
 Review
============================================*/
.review {
  background-color: #fff;
  padding-block: var(--sz-48) var(--sz-67);
}

.review__heading {
  color: var(--color-orange);
  font-size: var(--sz-40);
  font-weight: 700;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.05em;
  padding-inline: 0.5em;
  margin-bottom: var(--sz-36);
}

.review__subtitle {
  text-align: center;
  font-size: var(--sz-50);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.05em;
  margin-bottom: var(--sz-53);
}

.review__list {
  display: flex;
  flex-direction: column;
  gap: var(--sz-20);
  margin-bottom: var(--sz-26);
}

.review__item {
  display: grid;
  grid-template-columns: var(--sz-120) 1fr;
  -moz-column-gap: var(--sz-40);
       column-gap: var(--sz-40);
}

/* デフォルトで非表示にするスタイル */
/* js-hidden-review の中にある review__item を初期状態では非表示にする */
.js-hidden-review .review__item {
  display: none; /* 初期状態は非表示 */
}

/* JavaScriptで is-active クラスが付与されたら表示 */
.js-hidden-review.is-active .review__item {
  display: grid;
}

/* js-hidden-review 自体は display: contents; のまま */
.js-hidden-review {
  display: contents;
}

.review__content {
  padding: var(--sz-25);
  margin-bottom: 0;
  border-radius: var(--sz-10);
  background: var(--color-secondary);
  display: flex;
  flex-direction: column;
  position: relative;
}

.review__content::before {
  content: "";
  background-color: #edf4ff;
  width: var(--sz-30);
  height: var(--sz-20);
  position: absolute;
  top: var(--sz-50);
  right: 100%;
  clip-path: polygon(0 var(--sz-10), 100% 0, 100% 100%);
}

.review__meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sz-10);
  color: #7a7a7a;
  font-size: var(--sz-20);
  font-weight: 700;
  line-height: 1;
  margin-bottom: var(--sz-49);
}

.review__rating {
  font-size: 150%;
  margin-right: auto;
}

.review__star-active {
  color: #ffc849;
}

.review__score {
  display: none;
}

.review__text {
  font-size: var(--sz-25);
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: var(--sz-38);
  transition: max-height 0.5s ease-in-out, -webkit-line-clamp 0.5s ease-in-out, overflow 0.5s ease-in-out;
}

.review__date {
  display: none;
}

.review__btn {
  width: var(--sz-252);
  aspect-ratio: 252/50;
  background-color: var(--color-primary);
  color: #fff;
  font-size: var(--zs-25);
  font-weight: bold;
  border-radius: 100vh;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--color-primary);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--color-primary);
}

@media screen and (min-width: 992px) {
  .review {
    padding-block: var(--sz-89) var(--sz-89);
  }
  .review__heading {
    margin-bottom: var(--sz-56);
  }
  .review__subtitle {
    font-size: var(--sz-40);
    line-height: 1.5;
    margin-bottom: var(--sz-86);
  }
  .review__subtitle span {
    font-size: var(--sz-50);
    line-height: 1.2;
  }
  .review__list {
    gap: var(--sz-15);
    margin-bottom: var(--sz-51);
  }
  .review__content {
    padding: var(--sz-25);
    padding-inline: var(--sz-66) var(--sz-36);
  }
  .review__meta {
    gap: var(--sz-20);
    margin-bottom: var(--sz-40);
    padding-right: var(--sz-44);
  }
  .review__text {
    font-size: var(--sz-25);
    margin-bottom: var(--sz-30);
  }
  .review__btn {
    width: var(--sz-400);
  }
}
@media screen and (max-width: 360px) {
  .review__meta {
    flex-wrap: wrap;
  }
  .review__rating {
    font-size: 180%;
  }
}
@media screen and (min-width: 1440px) {
  .review .inner {
    max-width: 100%;
  }
  .review__list {
    padding-inline: 20px;
  }
  .review__item {
    -moz-column-gap: 20px;
         column-gap: 20px;
    grid-template-columns: 150px 1fr;
  }
}
/* ==========================================
 Youtube
============================================*/
.youtube {
  background-color: #fff;
  padding-block: var(--sz-60) var(--sz-105);
}

.youtube__heading {
  font-size: var(--sz-50);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  display: flex;
  justify-content: center;
  gap: var(--sz-4);
  align-items: baseline;
  border-bottom: var(--sz-5) solid var(--color-orange);
  width: var(--sz-594);
  margin-inline: auto;
  margin-bottom: var(--sz-19);
}

.youtube__heading .fa-youtube {
  color: var(--color-red);
}

.youtube__lead {
  font-size: var(--sz-25);
  font-weight: 400;
  text-align: center;
  margin-bottom: var(--sz-50);
}

.youtube__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sz-18);
  padding-inline: var(--sz-12);
  margin-bottom: var(--sz-86);
}

.youtube__item {
  display: flex;
  flex-direction: column;
  gap: var(--sz-6);
}

.youtube__title {
  font-size: var(--sz-18);
  font-weight: 500;
  line-height: 1.66;
  margin-bottom: 0;
  display: none;
}

.youtube__subtitle {
  font-size: var(--sz-30);
  font-weight: 400;
  line-height: var(--sz-25);
  margin-bottom: var(--sz-32);
}

.youtube__subtitle .lg {
  font-size: 116%;
}

.youtube__desc {
  font-size: var(--sz-24);
  line-height: 137.5%;
}

@media screen and (min-width: 992px) {
  .youtube {
    padding-block: var(--sz-90) var(--sz-82);
  }
  .youtube__heading {
    width: var(--sz-661);
    margin-bottom: var(--sz-15);
  }
  .youtube__lead {
    font-size: var(--sz-30);
  }
  .youtube__list {
    gap: var(--sz-46) var(--sz-79);
    padding-inline: unset;
    margin-bottom: var(--sz-117);
  }
  .youtube__title {
    display: block;
  }
}
@media screen and (min-width: 1440px) {
  .youtube .inner:has(.youtube__subtitle) {
    max-width: 100%;
  }
}
/* ==========================================
 Column
============================================*/
.column {
  background-color: var(--color-secondary);
  padding-block: var(--sz-85) var(--sz-81);
}

.column__box {
  background-color: #fff;
  padding-block: var(--sz-79) var(--sz-61);
}

.column__heading {
  color: var(--color-orange);
  text-align: center;
  font-size: var(--sz-40);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.05em;
  padding-inline: 1em;
  margin-bottom: var(--sz-36);
}

.column__subtitle {
  text-align: center;
  font-size: var(--sz-50);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: var(--sz-52);
}

.column__list {
  display: flex;
  flex-direction: column;
  gap: var(--sz-32);
  padding-inline: var(--sz-10);
  margin-bottom: var(--sz-40);
}

.column__item {
  display: grid;
  grid-template-columns: 30% 1fr;
  gap: var(--sz-15);
  position: relative;
}

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

.column__title {
  font-size: var(--sz-25);
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: var(--sz-20);
}

.column__link {
  color: inherit;
  text-decoration: none;
}

.column__link::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
}

.column__excerpt {
  font-size: var(--sz-20);
  font-weight: 400;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  max-height: 3em;
}

.column__btn {
  width: var(--sz-479);
}

@media screen and (min-width: 992px) {
  .column {
    padding-block: var(--sz-102) var(--sz-100);
  }
  .column__box {
    padding-block: var(--sz-80) var(--sz-101);
  }
  .column__heading {
    font-size: var(--sz-50);
    line-height: 0.8;
    margin-bottom: var(--sz-74);
  }
  .column__subtitle {
    margin-bottom: var(--sz-60);
  }
  .column__list {
    padding-inline: unset;
    margin-bottom: var(--sz-83);
  }
  .column__item {
    grid-template-columns: var(--sz-215) 1fr;
  }
  .column__btn {
    width: var(--sz-600);
  }
}
@media screen and (min-width: 1440px) {
  .column .inner {
    max-width: 100%;
  }
}