@charset "UTF-8";
/* =============================
COMMON
============================= */
/* --------------------------
HEADING
-------------------------- */
/* section header
------------------ */
.section__header {
  padding-bottom: 2.4rem;
  font-size: 3.2rem;
  line-height: 1.2;
  font-weight: var(--font-bold);
  text-align: center;
}
@media (min-width: 768px) {
  .section__header {
    font-size: 4rem;
  }
}

.section__header-bubble {
  position: relative;
  display: inline-block;
  margin: 0 0 0.8rem;
  padding: 0.6rem 1.6rem;
  border-radius: 999px;
  font-size: 1.8rem;
  line-height: 1.2;
  color: var(--color-lightest);
  background: #ccc;
}
@media (min-width: 768px) {
  .section__header-bubble {
    font-size: 2rem;
  }
}

.section__header-bubble::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  width: 0;
  height: 0;
  border-top: 8px solid #ccc;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
  transform: translateX(-50%);
}

.section__header-underline {
  position: relative;
  display: inline-block;
  margin: 0 0 1em 0;
  font-size: 1.8rem;
}
@media (min-width: 768px) {
  .section__header-underline {
    font-size: 2rem;
  }
}

.section__header-underline:before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -0.5em;
  display: inline-block;
  width: 8rem;
  height: 1px;
  background-color: currentColor;
  transform: translateX(-50%);
}

.section__header-rounded {
  display: inline-block;
  margin: 0 0 0.8rem 0;
  padding: 0.4rem 1.6rem;
  border-radius: 999px;
  border: 2px solid currentColor;
  font-size: 1.8rem;
}
@media (min-width: 768px) {
  .section__header-rounded {
    font-size: 2rem;
  }
}

.section__header-notice {
  font-size: 1.4rem;
  font-weight: normal;
  color: var(--color-darkest);
}

/* text slash
------------------ */
.text-slash {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: baseline;
  margin: 0 0 0.8rem 0;
}

.text-slash::before,
.text-slash::after {
  content: "";
  width: 1em;
  height: 2px;
  display: block;
  background: currentColor;
}

.text-slash--primary::before,
.text-slash--primary::after {
  background: var(--color-primary);
}

.text-slash--tertiary::before,
.text-slash--tertiary::after {
  background: var(--color-tertiary);
}

.text-slash::before {
  transform: rotate(55deg);
}

.text-slash::after {
  transform: rotate(-55deg);
}

/* --------------------------
BUTTON
-------------------------- */
/* button
------------------ */
.view-more-btn {
  display: flex;
  flex-wrap: wrap;
  width: -moz-fit-content;
  width: fit-content;
  align-items: center;
  margin: 0 auto;
  padding: 1.2rem 2rem;
  border: 1px solid var(--color-primary);
  border-radius: 0.4rem;
  background: var(--color-lightest);
  font-weight: var(--font-bold);
  font-size: 1.8rem;
  transition: all 0.3s ease;
}

.view-more-btn:hover {
  box-shadow: var(--shadow-card);
  transform: translateY(-4px);
}

.view-more-btn i {
  margin-left: 0.25em;
  color: var(--color-primary);
}

/* urgent btn
------------------ */
.urgent-btn {
  display: grid;
  place-items: center;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  padding: 0.8rem 2.4rem;
  border-radius: 0.4rem;
  background: var(--color-highlight1);
  font-weight: var(--font-bold);
  color: var(--color-lightest);
  transition: all 0.3s ease;
}

.urgent-btn:hover {
  box-shadow: var(--shadow-card);
  transform: translateY(-4px);
}

.urgent-btn-sub {
  font-size: 1.8rem;
}

.urgent-btn-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 3rem;
  height: 2.6rem;
  color: var(--color-highlight2);
}

.urgent-btn-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.urgent-btn-main {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 2.4rem;
}

/* --------------------------
HEADER
-------------------------- */
/* 
site header
------------------ */
.site-header {
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-lightest);
}

/* site brand
------------------ */
.site-brand {
  display: flex;
}

/* 
global nav
------------------ */
.gnav {
  border-bottom: 1px solid var(--color-border);
  background: var(--color-lightest);
  transition: transform 0.3s ease;
}

.gnav.is-fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

.gnav.is-hidden {
  transform: translateY(-100%);
}

.gnav__list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
@media (min-width: 768px) {
  .gnav__list {
    max-width: 1040px;
    margin: 0 auto;
    padding: 0 1.6rem;
  }
}

.gnav__item {
  display: grid;
  position: relative;
  color: var(--color-darkest);
  transition: all 0.3s ease;
}

@media (min-width: 768px) {
  .gnav__item::after {
    position: absolute;
    top: 20%;
    left: 0;
    width: 1px;
    height: 60%;
    background: var(--color-border);
    content: "";
  }
}

.gnav__item:hover {
  background: var(--bg-highlight);
}

.gnav__item--urgent {
  background: var(--color-highlight1);
  color: var(--color-lightest);
}

.gnav__item--urgent:hover {
  background: #E94343;
}

@media (min-width: 768px) {
  .gnav__item--urgent::after {
    content: none;
  }
}

.gnav__item--hamburger {
  background: #FCDEDE;
}

.gnav__item--hamburger:hover {
  background: #ffbebe;
}

@media (min-width: 768px) {
  .gnav__item--hamburger::after {
    content: none;
  }
}

.gnav__link {
  display: grid;
  place-items: center;
  gap: 0.8rem;
  width: 100%;
  height: 100%;
  padding: 1.6rem 0;
}
@media (min-width: 768px) {
  .gnav__link {
    display: flex;
    justify-content: center;
    padding: 1.2rem 0;
  }
}

.gnav__label {
  font-size: 1.1rem;
  line-height: 1;
  overflow-wrap: anywhere;
}
@media (min-width: 768px) {
  .gnav__label {
    font-size: 1.6rem;
  }
}

/* hamburger
------------------ */
.hamburger {
  display: grid;
  gap: 4px;
  width: 26px;
  height: 20px;
}

.hamburger__line {
  height: 2px;
  background: var(--color-darkest);
}

/* --------------------------
FULLSCREEN MENU
-------------------------- */
.fs-menu {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  padding: 0;
  border: 0;
  background: transparent;
}

.fs-menu::backdrop {
  background: rgba(0, 0, 0, 0.18);
}

.fs-menu__panel {
  display: grid;
  grid-template-rows: auto 1fr;
  width: 100%;
  height: 100%;
  background: var(--bg-highlight);
}

.fs-menu__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.6rem;
  border-bottom: 1px solid var(--color-tertiary);
  background: var(--color-lightest);
}

/* close button
------------------ */
.fs-menu__close {
  cursor: pointer;
}

.fs-menu__close-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.8rem;
  border-radius: 0.2rem;
  background: var(--color-primary);
}

.fs-menu__close-circle {
  position: relative;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--color-lightest);
}

.fs-menu__close-circle::before,
.fs-menu__close-circle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform-origin: center;
  width: 12px;
  height: 1px;
  background: var(--color-primary);
}

.fs-menu__close-circle::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.fs-menu__close-circle::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.fs-menu__close-text {
  font-size: 1.2rem;
  color: var(--color-lightest);
}

.fs-menu__body {
  display: grid;
  padding: 2.4rem 1.6rem calc(2.4rem + 90px);
  /* fixed cta換算 */
  gap: 3.2rem;
  overflow: auto;
}

@media (min-width: 768px) {
  .fs-menu__section-body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 2.4rem;
  }
}

.fs-menu__section {
  display: grid;
  gap: 1.6rem;
  padding: 3.2rem 0;
  border-bottom: 1px solid var(--color-tertiary);
}

.fs-menu__section-title {
  font-size: 2rem;
  font-weight: var(--font-bold);
  color: var(--color-primary);
}

.fs-menu__list {
  display: grid;
  gap: 1.6rem;
}

.fs-menu__link {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 1.6rem;
  border: 1px solid var(--color-tertiary);
  border-radius: 0.4rem;
  background: var(--color-lightest);
  transition: all 0.3s ease;
}

.fs-menu__link:hover {
  background: var(--bg-primary);
}

.fs-menu__link-label {
  flex: 1;
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  color: var(--color-darkest);
}

.fs-menu__link-arrow {
  font-size: 1.8rem;
  line-height: 1;
  color: var(--color-tertiary);
}

@media (prefers-reduced-motion: no-preference) {
  .fs-menu[open] .fs-menu__panel {
    animation: fsMenuIn 120ms ease-out;
  }
  @keyframes fsMenuIn {
    from {
      opacity: 0;
      transform: translateY(6px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
/* --------------------------
FIXED CTA
-------------------------- */
.fixed-cta {
  position: fixed;
  z-index: 1000;
  right: 0;
  left: 0;
  bottom: 0;
  padding: 1.2rem 1.2rem calc(1.8rem + env(safe-area-inset-bottom, 0px));
  background: rgba(255, 255, 255, 0.5);
  transform: translateZ(0);
  will-change: transform;
  transition: all 0.3s ease, visibility 0.3s ease;
}

.fixed-cta.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.fixed-cta__inner {
  display: flex;
  justify-content: center;
  gap: 0.8rem;
  margin: 0 auto;
}

.fixed-cta__btn {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  width: auto;
  padding: 0.8rem 1.2rem;
  border-radius: 0.4rem;
  color: var(--color-lightest);
  transition: all 0.3s ease;
}

.fixed-cta__btn--tel {
  background: linear-gradient(0deg, #E64870 0%, #C71D47 100%);
  box-shadow: 0 0.6rem 0 #C71D47;
}

.fixed-cta__btn--tel:hover {
  box-shadow: none;
  transform: translateY(4px);
}

.fixed-cta__btn--doc {
  background: linear-gradient(0deg, #07B10F 0%, #006A05 100%);
  box-shadow: 0 0.6rem 0 #0D8613;
}

.fixed-cta__btn--doc:hover {
  box-shadow: none;
  transform: translateY(4px);
}

.fixed-cta__icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--color-lightest);
  color: #C71D47;
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.25);
}

.fixed-cta__icon-svg {
  width: 18px;
  height: 18px;
  display: block;
}

.fixed-cta__text {
  display: grid;
  gap: 0.4rem;
  font-weight: var(--font-bold);
  line-height: 1;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.25);
}
@media (min-width: 768px) {
  .fixed-cta__text {
    grid-template-columns: auto auto;
    align-items: center;
  }
}

.fixed-cta__main {
  font-size: 2rem;
}
@media (min-width: 768px) {
  .fixed-cta__main {
    font-size: 2.4rem;
  }
}

.fixed-cta__sub {
  font-size: 1rem;
}
@media (min-width: 768px) {
  .fixed-cta__sub {
    padding: 0.8rem;
    border: 1px solid var(--color-lightest);
    font-size: 1.2rem;
    line-height: 1.2;
    text-align: center;
    color: var(--color-lightest);
    background: rgba(255, 255, 255, 0.1);
  }
}

/* =============================
TOP PAGE
============================ */
/* --------------------------
HERO
-------------------------- */
.hero {
  padding: 3.2rem 0 0;
  background: var(--bg-primary);
}
@media (min-width: 768px) {
  .hero {
    padding: 0;
  }
}

.hero__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4rem;
}
@media (min-width: 768px) {
  .hero__inner {
    flex-direction: row;
    align-items: center;
    max-width: 1040px;
    margin: 0 auto;
    padding: 4.8rem 1.6rem;
  }
}

.hero__text-image {
  width: 100%;
  height: auto;
  margin: 0 auto;
  padding: 0 1.6rem;
}
@media (min-width: 768px) {
  .hero__text-image {
    padding: 0;
  }
}

.hero__photo {
  position: relative;
  width: 100%;
}
@media (min-width: 768px) {
  .hero__photo {
    width: 50%;
  }
}

.hero__photo-image {
  width: 100%;
  height: auto;
}

.hero__medal {
  position: absolute;
  top: -32px;
  right: 0;
}

/* --------------------------
INSTANT CTA
-------------------------- */
.instant-cta {
  padding: 2.4rem 0 3.2rem;
}

.instant-cta__header {
  display: flex;
  justify-content: center;
  align-items: end;
  gap: 1.6rem;
}

.instant-cta__title {
  padding-bottom: 1.6rem;
  font-weight: var(--font-bold);
  line-height: 1.2;
}

.instant-cta__timestamp {
  padding: 0 0 0.8rem;
  font-size: 1.8rem;
  color: var(--color-highlight1);
}

.instant-cta__text {
  font-size: 2.4rem;
}
@media (min-width: 768px) {
  .instant-cta__text {
    font-size: 4rem;
  }
}

.instant-cta-operator {
  width: 60px;
  height: auto;
}
@media (min-width: 768px) {
  .instant-cta-operator {
    width: 80px;
  }
}

.cta-actions {
  display: grid;
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .cta-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.6rem;
  }
}

.cta-actions__btn {
  display: flex;
  justify-self: center;
  justify-content: center;
  align-items: center;
  gap: 1.6rem;
  width: 100%;
  margin-bottom: 0.8rem;
  padding: 1.2rem 1.6rem;
  border-radius: 0.4rem;
  font-weight: var(--font-bold);
  color: var(--color-lightest);
  transition: all 0.3s ease;
}
@media (min-width: 768px) {
  .cta-actions__btn {
    width: 100%;
  }
}

.cta-actions__btn--tel {
  background: linear-gradient(0deg, #E64870 0%, #C71D47 100%);
  box-shadow: 0 0.8rem 0 #C71D47;
}

.cta-actions__btn--tel:hover {
  box-shadow: none;
  transform: translateY(4px);
}

.cta-actions__btn--doc {
  background: linear-gradient(0deg, #07B10F 0%, #006A05 100%);
  box-shadow: 0 0.8rem 0 #0D8613;
}

.cta-actions__btn--doc:hover {
  box-shadow: none;
  transform: translateY(4px);
}

.cta-actions__btn-main {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.cta-actions__btn-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--color-lightest);
  color: #C71D47;
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.25);
}

.cta-actions__btn-icon-svg {
  width: 24px;
  height: 24px;
  display: block;
}

.cta-actions__btn-thumb {
  width: 56px;
  height: 56px;
  display: block;
  -o-object-fit: contain;
     object-fit: contain;
}

.cta-actions__btn-text {
  font-size: 2.4rem;
  line-height: 1.2;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.25);
}
@media (min-width: 768px) {
  .cta-actions__btn-text {
    font-size: 3.2rem;
  }
}

.cta-actions__btn-badge {
  padding: 0.8rem;
  border: 1px solid var(--color-lightest);
  font-size: 1.2rem;
  line-height: 1.2;
  text-align: center;
  color: var(--color-lightest);
  background: rgba(255, 255, 255, 0.1);
}

/* --------------------------
PLAN SKIP
-------------------------- */
.plan-skip {
  background: #fff url(../image/plan-skip__bg@2x.jpg) no-repeat center bottom/contain;
}
@media (min-width: 768px) {
  .plan-skip {
    background: #fff url(../image/plan-skip__bg-pc@2x.jpg) no-repeat center bottom/contain;
  }
}

.plan-skip__wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .plan-skip__wrapper {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 1fr;
  }
}

.section__header-bubble--plan-skip {
  background: var(--color-primary);
}

.section__header-bubble--plan-skip::after {
  border-top-color: var(--color-primary);
}

.plan-skip__card {
  display: grid;
  justify-items: center;
  align-content: start;
  border-radius: 0.8rem;
  border: 1px solid #eee;
  box-shadow: var(--shadow-card);
  background: var(--color-lightest) url(../image/plan-skip__content-bg@2x.jpg) left bottom/contain;
  transition: all 0.3s ease;
}
@media (min-width: 768px) {
  .plan-skip__card {
    justify-items: stretch;
  }
}

.plan-skip__card:hover {
  transform: translateY(-8px);
}

.plan-skip__card--wide {
  display: grid;
  grid-column: 1/-1;
}
@media (min-width: 768px) {
  .plan-skip__card--wide {
    grid-column: auto;
  }
}

.plan-skip__plan-name {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 1.2rem;
  border-radius: 0.8rem 0.8rem 0 0;
  background: #999;
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  line-height: 1;
  color: var(--color-lightest);
  text-align: center;
}

.plan-skip__plan-name--simple {
  background: var(--color-simple);
}

.plan-skip__plan-name--primary {
  background: var(--color-primary);
}

.plan-skip__plan-number {
  padding: 0.4rem;
  background: var(--color-lightest);
  font-size: 2rem;
  line-height: 1;
  color: #999;
}

.plan-skip__plan-number--simple {
  color: var(--color-simple);
}

.plan-skip__plan-number--primary {
  color: var(--color-primary);
}

.plan-skip-photo-body {
  position: relative;
  width: 100%;
}

.plan-skip__photo {
  width: 100%;
  height: auto;
}

.plan-skip__badge-26 {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 42px;
  height: auto;
}
@media (min-width: 768px) {
  .plan-skip__badge-26 {
    width: 64px;
  }
}

.plan-skip__badge-56 {
  position: absolute;
  top: -24px;
  right: -8px;
}

.plan-skip__content {
  position: relative;
  width: 100%;
  padding: 1.6rem;
}

.plan-skip__content--wide {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.6rem;
}

.plan-skip__price-label {
  display: inline-block;
  margin: 0 0 0.4rem 0;
  padding: 0.4rem;
  font-size: 1.4rem;
  line-height: 1.2;
  color: var(--color-lightest);
  background: var(--color-primary);
}

.plan-skip__price {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  line-height: 1;
  text-shadow: 0 2px 0 rgb(255, 255, 255);
}

.plan-skip__price-amount {
  overflow-wrap: anywhere;
  font-size: 4rem;
  font-family: var(--font-english);
  font-weight: normal;
  line-height: 1;
}
@media (min-width: 768px) {
  .plan-skip__price-amount {
    font-size: 6.2rem;
  }
}

.plan-skip__price-note {
  display: grid;
  justify-items: center;
  padding-bottom: 0.6em;
  font-weight: var(--font-bold);
}

.plan-skip__price-ex {
  font-size: 1rem;
  font-weight: normal;
}

.plan-skip__price-tax {
  font-size: 1.4rem;
  line-height: 1.2;
  text-shadow: 0 2px 0 rgba(255, 255, 255, 0.95);
}

@media (min-width: 768px) {
  .plan-skip__nokan {
    position: absolute;
    top: -24px;
    right: -16px;
    width: 80px;
    height: auto;
  }
}
@media (min-width: 1040px) {
  .plan-skip__nokan {
    width: 120px;
  }
}

/* --------------------------
AWARD
-------------------------- */
.award {
  background: var(--bg-primary) url("../image/award__bg@2x.jpg") center/cover no-repeat;
}

.award__header {
  font-size: 2.4rem;
}
@media (min-width: 768px) {
  .award__header {
    font-size: 3.2rem;
  }
}

.award__inner {
  display: grid;
  justify-items: center;
  gap: 2.4rem;
}

.award__main-medal {
  width: 100%;
  height: auto;
}

.award__text {
  display: grid;
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .award__text {
    width: 640px;
  }
}

.view-more-btn--award {
  border-color: #B3B3B3;
}

.view-more-btn--award i {
  color: #B3B3B3;
}

/* --------------------------
WORRY
-------------------------- */
.worry__header {
  font-size: 2rem;
  color: #6E697D;
}
@media (min-width: 768px) {
  .worry__header {
    font-size: 3.2rem;
  }
}

.worry__wrapper {
  display: grid;
  justify-items: center;
  gap: 2.4rem;
}

.worry__row {
  display: grid;
  gap: 1.6rem;
  align-items: center;
}

.worry__row--right {
  grid-template-columns: minmax(0, 1fr) auto;
}

.worry__row--left {
  grid-template-columns: auto minmax(0, 1fr);
}

.worry__bubble {
  position: relative;
  padding: 1.6rem;
  border-radius: 0.8rem;
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  background: var(--color-lightest);
  box-shadow: var(--shadow-card);
}

.worry__bubble::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 0;
  height: 0;
  transform: translateY(-50%);
}

.worry__bubble--right::after {
  right: -10px;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 10px solid var(--color-lightest);
}

.worry__bubble--left::after {
  left: -10px;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 10px solid var(--color-lightest);
}

.worry-illust-01 {
  width: 96px;
  height: auto;
}
@media (min-width: 768px) {
  .worry-illust-01 {
    width: 120px;
    height: auto;
  }
}

.worry__stat {
  position: relative;
  display: grid;
  justify-items: center;
  width: 100%;
  padding: 2.4rem;
  background: var(--bg-primary);
  box-shadow: var(--shadow-card);
}
@media (min-width: 768px) {
  .worry__stat {
    display: flex;
    justify-content: start;
    align-items: end;
    width: -moz-fit-content;
    width: fit-content;
    padding: 3.2rem 5.6rem;
  }
}

.worry__stat-sub {
  text-align: center;
}
@media (min-width: 768px) {
  .worry__stat-sub {
    padding-bottom: 0.4em;
  }
}

.worry__stat-accent {
  position: absolute;
  top: -8px;
  left: -4px;
}

.worry__stat-value {
  display: flex;
  gap: 0.4rem;
  align-items: baseline;
  justify-content: center;
  font-weight: var(--font-bold);
  line-height: 1;
}

.worry__stat-illust {
  position: absolute;
  right: -12px;
  bottom: -12px;
  width: 60px;
  height: auto;
}
@media (min-width: 768px) {
  .worry__stat-illust {
    width: 80px;
    height: auto;
  }
}

.worry-illust-03 {
  width: 96px;
  height: auto;
}
@media (min-width: 768px) {
  .worry-illust-03 {
    width: 120px;
    height: auto;
  }
}

.worry__explain {
  position: relative;
  padding: 1.6rem calc(1.6rem + 100px) 1.6rem 1.6rem;
  background: var(--color-lightest);
  box-shadow: var(--shadow-card);
  font-size: 1.8rem;
}
@media (min-width: 768px) {
  .worry__explain {
    padding: 3.2rem calc(3.2rem + 100px) 3.2rem 3.2rem;
  }
}

.worry__tag {
  display: inline-block;
  margin: 0.2em 0.2em 0.2em 0;
  padding: 0 0.25em;
  background: #6E697D;
  font-size: 2rem;
  color: var(--color-lightest);
}

.worry__explain-illust {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.worry__btn {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.8rem 1.6rem;
  border-radius: 0.4rem;
  background: #234FA8;
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  color: var(--color-lightest);
  transition: all 0.3s ease;
}

.worry__btn:hover {
  box-shadow: var(--shadow-card);
  transform: translateY(-4px);
}

.worry__btn-sub {
  display: inline-block;
  border-bottom: 1px solid currentColor;
}

.worry__btn-icon {
  width: 30px;
  height: 26px;
  color: var(--color-highlight2);
}

/* --------------------------
MESSAGE
-------------------------- */
.message {
  position: relative;
  padding: 4rem 0;
  background: var(--bg-highlight) url("../image/message__bg@2x.jpg") center/cover no-repeat;
}

.message::after {
  content: "";
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  border-top: 28px solid var(--color-primary);
  border-right: 36px solid transparent;
  border-left: 36px solid transparent;
}

.message__balloons {
  position: absolute;
  top: -64px;
  right: 8px;
}
@media (min-width: 768px) {
  .message__balloons {
    top: -80px;
  }
}

.message__text {
  display: grid;
  gap: 1.6rem;
}

.message__bird {
  position: absolute;
  bottom: -64px;
  left: 8px;
}
@media (min-width: 768px) {
  .message__bird {
    bottom: -80px;
  }
}

/* --------------------------
FLAT PLAN
-------------------------- */
.section__header-bubble--flat-plan {
  background: var(--color-tertiary);
}

.section__header-bubble--flat-plan::after {
  border-top-color: var(--color-tertiary);
}

.flat-plan__inner {
  display: grid;
  gap: 2.4rem;
}

.flat-plan__illust {
  margin: 0 auto;
}

/* --------------------------
PLAN
-------------------------- */
.plan {
  background: #FFDEDE;
}

.plan__wrapper {
  display: grid;
  gap: 2.4rem;
}

/* plan__nav
------------------ */
.plan__nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 0.8rem;
  width: 100%;
}
@media (min-width: 768px) {
  .plan__nav {
    display: none;
  }
}

.plan__nav-link {
  position: relative;
  display: grid;
  justify-items: center;
  align-items: center;
  height: 100%;
  padding: 1.2rem 0 4rem;
  border-radius: 0.4rem;
  background: #999;
  font-size: 1.4rem;
  font-weight: var(--font-bold);
  line-height: 1.2;
  text-align: center;
  color: var(--color-lightest);
}

.plan__nav-link::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 10px;
  z-index: 0;
  transform: translateX(-50%);
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--gradation-primary);
}

.plan__nav-link::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 18px;
  z-index: 1;
  width: 0;
  height: 0;
  border-top: 0.6rem solid var(--color-primary);
  border-right: 0.6rem solid transparent;
  border-left: 0.6rem solid transparent;
  transform: translateX(-50%);
  pointer-events: none;
}

.plan__nav-link--simple {
  background: var(--color-simple);
}

.plan__nav-link--primary {
  background: var(--color-primary);
}

/* plan__card
------------------ */
.plan__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.6rem;
  width: 100%;
  line-height: 1.2;
}

.plan__item {
  scroll-margin-top: 10rem;
}
@media (min-width: 768px) {
  .plan__item {
    width: calc(50% - 0.8rem);
  }
}
@media (min-width: 1040px) {
  .plan__item {
    width: calc(33% - 1.1rem);
  }
}

.plan__card {
  display: block;
  border-radius: 0.8rem;
  background: var(--color-lightest);
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.plan__card:hover {
  transform: translateY(-8px);
}

.plan__card-catch {
  display: grid;
  align-items: center;
  width: 100%;
  padding: 1.2rem;
  border-radius: 0.8rem 0.8rem 0 0;
  background: #999;
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  line-height: 1.2;
  color: var(--color-lightest);
  text-align: center;
}
@media (min-width: 768px) {
  .plan__card-catch {
    min-height: 80px;
    font-size: 2rem;
  }
}

.plan__card-catch--simple {
  background: var(--color-simple);
}

.plan__card-catch--primary {
  background: var(--color-primary);
}

.plan__card-catch--high-standard {
  background: var(--color-high-standard);
}

.plan__card-catch--premium {
  background: var(--color-premium);
}

.plan__card-head {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  align-items: center;
  gap: 1.6rem;
  padding: 1.6rem;
}
@media (min-width: 768px) {
  .plan__card-head {
    grid-template-columns: 1fr;
  }
}

.plan__card-head--column {
  grid-template-columns: 1fr;
}

.plan__card-head-text {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: start;
  gap: 0.8rem;
}
@media (min-width: 768px) {
  .plan__card-head-text {
    align-items: center;
    min-height: 90px;
  }
}
@media (min-width: 1040px) {
  .plan__card-head-text {
    flex-direction: row;
  }
}

.plan__card-head-text--column {
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
@media (min-width: 768px) {
  .plan__card-head-text--column {
    flex-direction: column;
  }
}

.plan__card-label {
  display: inline-block;
  padding: 0.4rem 0.8rem;
  font-size: 2rem;
  font-weight: var(--font-bold);
  background: #FFDEDE;
}
@media (min-width: 768px) {
  .plan__card-label {
    font-size: 1.8rem;
  }
}

.plan__card-label--simple {
  background: var(--color-simple);
  color: var(--color-lightest);
}

.plan__card-label--primary {
  background: var(--color-primary);
  color: var(--color-lightest);
}

.plan__card-label--high-standard {
  background: var(--color-high-standard);
  color: var(--color-lightest);
}

.plan__card-label--premium {
  background: var(--color-premium);
  color: var(--color-lightest);
}

.plan__card-title {
  display: flex;
  align-items: center;
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  line-height: 1;
}
@media (min-width: 768px) {
  .plan__card-title {
    font-size: 2.8rem;
  }
}

.plan__card-number {
  font-size: 4.8rem;
}

.plan__card-photo {
  position: relative;
}

.plan__card-photo--column {
  width: 100%;
}

.plan__card-photo-image {
  width: 100%;
  height: auto;
}

.plan__card-badge {
  position: absolute;
  top: -24px;
  right: -16px;
}

.plan__card-body {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  gap: 0.8rem;
  padding: 1.6rem 0;
  border-radius: 0 0 0.8rem 0.8rem;
  background: linear-gradient(135deg, #FCF7EB 0%, #FCF7EB 50%, #FFFFFF 50%, #FCF7EB 100%);
}
@media (min-width: 1040px) {
  .plan__card-body {
    flex-direction: row;
  }
}

.plan__card-left {
  display: grid;
  gap: 0.6rem;
}

.plan__discount {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.8rem;
  border-radius: 0.4rem;
  background: var(--color-primary);
  font-size: 1.2rem;
  font-weight: var(--font-bold);
  color: var(--color-lightest);
}
@media (min-width: 768px) {
  .plan__discount {
    align-items: start;
  }
}

.plan__discount::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -4px;
  width: 0;
  height: 0;
  transform: translateY(-50%);
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 4px solid var(--color-primary);
}

.plan__discount-strong {
  font-size: 1.4rem;
  color: var(--color-highlight2);
}
@media (min-width: 768px) {
  .plan__discount-strong {
    font-size: 1.2rem;
  }
}

.plan__discount-amount {
  margin: 0 0.1em;
  font-size: 3.2rem;
  font-family: var(--font-english);
  font-weight: normal;
  line-height: 1;
}
@media (min-width: 768px) {
  .plan__discount-amount {
    margin: 0;
  }
}

.plan__price-sub {
  font-size: 1.4rem;
}
@media (min-width: 768px) {
  .plan__price-sub {
    font-size: 1.2rem;
  }
}

.plan__price-sub-amount {
  margin: 0 0.1em;
  font-size: 3.2rem;
  font-family: var(--font-english);
  font-weight: normal;
  line-height: 1;
}
@media (min-width: 768px) {
  .plan__price-sub-amount {
    margin-left: 0;
    font-size: 2.8rem;
  }
}

.plan__card-right {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .plan__card-right {
    text-align: right;
  }
}

.plan__price-label {
  display: inline-block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 0 0.4rem 0;
  padding: 0.4rem;
  background: var(--bg-highlight);
  border: 1px solid var(--color-primary);
  font-size: 1.6rem;
  line-height: 1;
  font-weight: var(--font-bold);
  color: var(--color-primary);
}
@media (min-width: 768px) {
  .plan__price-label {
    font-size: 1.4rem;
  }
}

.plan__price {
  display: inline-flex;
  width: -moz-fit-content;
  width: fit-content;
  background: linear-gradient(transparent 70%, var(--color-highlight2) 70%);
}
@media (min-width: 768px) {
  .plan__price {
    gap: 0;
  }
}

.plan__price-amount {
  font-size: 4rem;
  font-family: var(--font-english);
  font-weight: normal;
  color: var(--color-primary);
  line-height: 1;
}

.plan__price-note {
  display: grid;
  align-content: center;
  justify-items: center;
  width: 2.2rem;
  font-weight: var(--font-bold);
}

.plan__price-ex {
  font-size: 1rem;
  font-weight: normal;
}

.plan__price-tax {
  font-size: 1.4rem;
}

/* 
plan more
------------------ */
.plan__more {
  position: relative;
  display: grid;
  justify-content: center;
  gap: 0.8rem;
  padding: 2.4rem 1.6rem;
  background: var(--color-lightest);
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);
  line-height: 1.4;
}
@media (min-width: 768px) {
  .plan__more {
    width: 720px;
    margin: 0 auto;
    padding: 4.8rem;
  }
}

.plan__more::after {
  content: "";
  position: absolute;
  top: -12px;
  left: 50%;
  border-right: 36px solid transparent;
  border-left: 36px solid transparent;
  border-top: 28px solid var(--color-primary);
  transform: translateX(-50%);
}

.plan__more-circle {
  position: absolute;
  top: -12px;
  left: -8px;
  display: inline-block;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #FFF480;
}
@media (min-width: 768px) {
  .plan__more-circle {
    left: -16px;
    width: 80px;
    height: 80px;
  }
}

.plan__more-circle-inner {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  display: inline-block;
  width: 56px;
  font-size: 1.2rem;
  font-family: var(--font-rounded);
  font-weight: var(--font-bold);
  text-align: center;
}
@media (min-width: 768px) {
  .plan__more-circle-inner {
    width: 80px;
    font-size: 1.8rem;
  }
}

/* --------------------------
REQUEST CTA
-------------------------- */
.request-cta {
  padding: 2.4rem 0 4rem;
}

.request-cta__header {
  padding: 0;
  font-size: 2rem;
}

/* --------------------------
REQUEST BENEFIT
-------------------------- */
.request-benefit {
  position: relative;
  padding: 3.2rem 0;
  background: var(--color-lightest) url(../image/request-benefit__bg@2x.jpg) no-repeat center center/cover;
}
@media (min-width: 768px) {
  .request-benefit {
    position: relative;
    padding: 3.2rem 0;
    background: var(--color-lightest) url(../image/request-benefit__bg-pc@2x.jpg) no-repeat center top/cover;
  }
}

.request-benefit__arrow {
  position: absolute;
  top: -10px;
  left: 50%;
  text-align: center;
  transform: translateX(-50%);
}
@media (min-width: 768px) {
  .request-benefit__arrow {
    top: -20px;
  }
}

.request-benefit__arrow-label {
  position: relative;
  z-index: 0;
  display: inline-block;
  padding-bottom: 1.2rem;
  font-size: 1.8rem;
  font-family: var(--font-rounded);
  font-weight: var(--font-bold);
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

.request-benefit__arrow-label::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  z-index: -1;
  transform: translateX(-50%);
  width: 180px;
  height: 36px;
  background: #FFF480;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.request-benefit__link {
  display: inline-block;
  transition: all 0.3s ease;
}

.request-benefit__link:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
}

.request-benefit__image {
  width: 100%;
  height: auto;
}
@media (min-width: 768px) {
  .request-benefit__image {
    width: auto;
  }
}

/* --------------------------
HALL
-------------------------- */
.hall__list {
  display: grid;
  gap: 1.6rem;
  margin-bottom: 2.4rem;
}

.hall__item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.4rem;
  padding: 2.4rem 1.6rem;
  background: var(--color-lightest);
  border-radius: 0.8rem;
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);
}
@media (min-width: 768px) {
  .hall__item {
    padding: 4.8rem;
  }
}

.hall-card__inner {
  display: grid;
  align-items: center;
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .hall-card__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
  }
}

.hall-card__info {
  display: grid;
  gap: 1.6rem;
}

.hall-card__header {
  width: 100%;
}

.hall-card__title {
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  color: var(--color-primary);
}

.hall-card__meta-icon {
  color: var(--color-primary);
}

.hall-card__photo {
  display: grid;
  gap: 1.6rem;
}

.hall-card__image {
  width: 100%;
  height: auto;
}

/* Splide slider
------------------ */
.slider-hall__image {
  width: 100%;
  height: auto;
}

.slider-hall .splide__arrow svg {
  fill: var(--color-darkest);
}

.slider-hall .splide__arrow--prev {
  left: -8px;
}

.slider-hall .splide__arrow--next {
  right: -8px;
}

/* feature list
------------------ */
.hall-card__feature-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.hall-card__feature-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.8rem;
  padding: 0.8rem;
  border-radius: 0.4rem;
  border: 1px solid var(--color-primary);
  background: linear-gradient(135deg, #FCF7EB 0%, #FCF7EB 50%, #FFFFFF 50%, #FCF7EB 100%);
}

.hall-card__feature-item--wide {
  grid-column: 1/-1;
}

.hall-card__feature-label {
  font-size: 1.2rem;
  font-weight: var(--font-bold);
}
@media (min-width: 768px) {
  .hall-card__feature-label {
    font-size: 1.4rem;
  }
}

.hall-card__feature-label--morgue {
  font-size: 1.8rem;
  color: var(--color-primary);
}

.hall-card__google-map iframe {
  width: 100%;
}

.view-more-btn--hall-card {
  font-size: 1.6rem;
}

.view-more-btn--hall {
  border-color: var(--color-premium);
}

.view-more-btn--hall i {
  color: var(--color-premium);
}

/* --------------------------
VOICE
-------------------------- */
.voice__list {
  align-items: stretch;
}

.voice__card {
  height: 100%;
  margin: 0 0 2.4rem 0;
  padding: 1.6rem;
  border-radius: 0.8rem;
  background: var(--color-lightest);
  box-shadow: 0 2px 2px rgba(199, 0, 33, 0.1);
}

.voice__card-title {
  margin: 0 0 1.6rem 0;
  padding: 0 0 0.8rem 0;
  border-bottom: 1px solid var(--color-tertiary);
  font-size: 1.8rem;
  font-weight: var(--font-bold);
}

.voice__card-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 64px;
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .voice__card-body {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

.voice__person {
  text-align: center;
}

.voice__name {
  font-size: 1.4rem;
}

.view-more-btn--voice {
  border-color: var(--color-tertiary);
}

.view-more-btn--voice i {
  color: var(--color-tertiary);
}

/* Splide slider
------------------ */
.slider-voice .splide__arrow svg {
  fill: var(--color-darkest);
}

.slider-voice .splide__arrow--prev {
  left: 0.8rem;
}

.slider-voice .splide__arrow--next {
  right: 0.8rem;
}

/* --------------------------
GOOGLE REVIEW
-------------------------- */
.google-review__card {
  display: grid;
  gap: 0.8rem;
  width: 100%;
  height: auto;
  padding: 1.6rem;
  border-radius: 0.8rem;
  border: 2px solid transparent;
  background: linear-gradient(var(--color-lightest), var(--color-lightest)) padding-box, var(--gradation-premium) border-box;
}

.google-rating {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.8rem;
}

.google-rating__summary {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.google-rating__score {
  font-size: 2.4rem;
  font-weight: var(--font-bold);
}

.google-rating__star {
  position: relative;
  z-index: 0;
  display: inline-block;
  white-space: nowrap;
  color: #ccc;
  font-size: 2.4rem;
}

.google-rating__star:before,
.google-rating__star:after {
  content: "★★★★★";
}

.google-rating__star:after {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  overflow: hidden;
  white-space: nowrap;
  color: #FFD400;
}

.google-rating__star[data-rate="5"]:after {
  width: 100%;
}

.google-rating__star[data-rate="4.5"]:after {
  width: 90%;
}

.google-rating__star[data-rate="4"]:after {
  width: 80%;
}

.google-rating__star[data-rate="3.5"]:after {
  width: 70%;
}

.google-rating__star[data-rate="3"]:after {
  width: 60%;
}

.google-rating__star[data-rate="2.5"]:after {
  width: 50%;
}

.google-rating__star[data-rate="2"]:after {
  width: 40%;
}

.google-rating__star[data-rate="1.5"]:after {
  width: 30%;
}

.google-rating__star[data-rate="1"]:after {
  width: 20%;
}

.google-rating__star[data-rate="0.5"]:after {
  width: 10%;
}

.google-rating__star[data-rate="0"]:after {
  width: 0%;
}

.google-rating__link {
  color: #4090C1;
}

/* Splide slider
------------------ */
.slider-google-review .splide__arrow svg {
  fill: var(--color-darkest);
}

.slider-google-review .splide__arrow--prev {
  left: 0.8rem;
}

.slider-google-review .splide__arrow--next {
  right: 0.8rem;
}

/* --------------------------
STAFF
-------------------------- */
.staff {
  background: #EDF5FA;
}

.section__header-bubble--staff {
  background: #639BC3;
}

.section__header-bubble--staff::after {
  border-top-color: #639BC3;
}

.staff__header-strong {
  color: #639BC3;
}

.staff__list {
  display: grid;
  gap: 1.6rem;
  margin: 0 0 2.4rem 0;
}
@media (min-width: 768px) {
  .staff__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.staff__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 1.6rem;
  padding: 1.6rem;
  background: var(--color-lightest);
  box-shadow: 0 2px 2px rgba(0, 88, 143, 0.1);
}

.staff__avatar {
  height: auto;
}

.staff__message {
  margin: 0 0 0.8rem 0;
  font-size: 1.8rem;
  font-weight: var(--font-bold);
}

.staff__name {
  font-size: 1.2rem;
  text-align: center;
}

.staff__more {
  display: flex;
  width: -moz-fit-content;
  width: fit-content;
  align-items: center;
  margin: 0 0 0 auto;
  font-size: 1.4rem;
}

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

.staff__more i {
  margin: 0 0 0 0.5em;
}

.view-more-btn--staff {
  border-color: #639BC3;
}

.view-more-btn__strong--staff {
  color: #639BC3;
}

.view-more-btn--staff i {
  color: #639BC3;
}

/* --------------------------
QUICK LINK
-------------------------- */
.quick-link {
  padding: 2.4rem 0;
}

.quick-link__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.4rem 1.6rem;
}
@media (min-width: 768px) {
  .quick-link__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.quick-link__link {
  display: grid;
  justify-items: center;
  gap: 1.2rem;
}

.quick-link__image {
  transition: all 0.3s ease;
}

.quick-link__image:hover {
  transform: translateY(-8px);
}

.quick-link__label {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
  font-weight: var(--font-bold);
}

.quick-link__label:hover {
  opacity: 0.8;
}

.quick-link__label i {
  color: var(--color-primary);
}

/* --------------------------
FAQ
-------------------------- */
.faq__list {
  display: grid;
  gap: 1.6rem;
  margin: 0 0 2.4rem 0;
}

.faq__item {
  background: var(--color-lightest);
  box-shadow: var(--shadow-card);
}

.faq__question {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 1.2rem;
  padding: 1.6rem 5.6rem 1.6rem 1.6rem;
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
  background: var(--color-primary);
  color: var(--color-lightest);
  cursor: pointer;
}

.faq__question:hover {
  background: var(--color-tertiary);
}

.faq__question::-webkit-details-marker {
  display: none;
}

.faq__q {
  flex: 0 0 auto;
  font-size: 2.4rem;
  color: var(--color-lightest);
}

.faq__question-text {
  flex: 1;
}

.faq__toggle {
  position: absolute;
  top: 50%;
  right: 16px;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: var(--color-lightest);
  transform: translateY(-50%);
}

.faq__toggle::before,
.faq__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 2px;
  background: var(--color-darkest);
  transform: translate(-50%, -50%);
}

.faq__item:not([open]) .faq__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.faq__answer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1.2rem;
  padding: 1.6rem;
}

.faq__answer-head {
  margin: 0 0 0.8rem;
}

.faq__a {
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  color: var(--color-primary);
}

.view-more-btn--faq {
  border-color: var(--color-primary);
}

.view-more-btn--faq i {
  color: var(--color-primary);
}

/* --------------------------
FREE COST
-------------------------- */
.free-cost__header {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.free-cost__header-notice {
  margin-top: 0.8rem;
  font-size: 1.2rem;
  font-weight: normal;
  text-align: center;
}

.free-cost__list {
  display: grid;
  gap: 1.6rem;
}
@media (min-width: 1040px) {
  .free-cost__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.free-cost__item {
  border-radius: 0.8rem;
  background: var(--color-lightest);
  box-shadow: var(--shadow-card);
}

.free-cost__item-head {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1.2rem 1.6rem;
  border-radius: 0.8rem 0.8rem 0 0;
  background: var(--color-tertiary);
  color: var(--color-lightest);
}
@media (min-width: 1040px) {
  .free-cost__item-head {
    flex-direction: column;
  }
}

.free-cost__number {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  border-radius: 50%;
  font-size: 2rem;
  font-weight: var(--font-bold);
  line-height: 1;
  background: var(--color-lightest);
  color: var(--color-tertiary);
}

.free-cost__item-title {
  margin: 0;
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  line-height: 1.2;
}

.free-cost__item-body {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1.6rem;
}
@media (min-width: 1040px) {
  .free-cost__item-body {
    flex-direction: column-reverse;
  }
}

.free-cost__content {
  width: 70%;
}
@media (min-width: 1040px) {
  .free-cost__content {
    width: auto;
  }
}

.free-cost__media {
  display: grid;
  place-items: center;
  width: 30%;
}
@media (min-width: 1040px) {
  .free-cost__media {
    width: 60%;
  }
}

.free-cost__image {
  width: 15vh;
  height: auto;
}
@media (min-width: 1040px) {
  .free-cost__image {
    width: auto;
  }
}

/* --------------------------
CONSULT CTA
-------------------------- */
.consult-cta__panel {
  position: relative;
  margin: 0 0 2.4rem;
  background: var(--bg-primary);
  box-shadow: var(--shadow-card);
}
@media (min-width: 768px) {
  .consult-cta__panel {
    width: 640px;
    margin-right: auto;
    margin-left: auto;
  }
}

.consult-cta__panel::after {
  content: "";
  position: absolute;
  bottom: -16px;
  left: 50%;
  border-right: 36px solid transparent;
  border-left: 36px solid transparent;
  border-top: 28px solid var(--color-tertiary);
  transform: translateX(-50%);
}

.consult-cta__panel-inner {
  position: relative;
}

.consult-cta__checks {
  display: grid;
  gap: 1.2rem;
  padding: 2.4rem 1.6rem;
}
@media (min-width: 768px) {
  .consult-cta__checks {
    padding: 4.8rem;
  }
}

.consult-cta__check {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.8rem;
  padding-bottom: 1.6rem;
  border-bottom: 1px solid var(--color-border);
}

.consult-cta__check-icon {
  position: relative;
  width: 24px;
  height: 24px;
  border: 1px solid #d9d9d9;
  background: var(--color-lightest);
}
@media (min-width: 768px) {
  .consult-cta__check-icon {
    width: 32px;
    height: 32px;
  }
}

.consult-cta__check-icon::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 6px;
  border-left: 3px solid var(--color-primary);
  border-bottom: 3px solid var(--color-primary);
  transform: translate(-50%, -55%) rotate(-45deg);
}
@media (min-width: 768px) {
  .consult-cta__check-icon::before {
    width: 20px;
    height: 10px;
  }
}

.consult-cta__check-text {
  font-size: 1.8rem;
  font-family: var(--font-rounded);
  font-weight: var(--font-bold);
  line-height: 1.4;
}
@media (min-width: 768px) {
  .consult-cta__check-text {
    font-size: 2.4rem;
  }
}

.consult-cta__photo {
  position: absolute;
  right: 16px;
  bottom: 0;
}

.consult-cta__photo-image {
  height: auto;
}

.consult-cta__illustration {
  margin: 2.4rem 0 0;
}

.consult-cta__illustration-image {
  margin: 0 auto;
}

.consult-cta__actions {
  display: grid;
  gap: 1.6rem;
  margin: 2.4rem 0;
}

.consult-cta__btn {
  display: flex;
  justify-self: center;
  justify-content: center;
  align-items: center;
  gap: 1.6rem;
  margin-bottom: 0.8rem;
  padding: 1.2rem 1.6rem;
  border-radius: 0.4rem;
  font-weight: var(--font-bold);
  color: var(--color-lightest);
  transition: all 0.3s ease;
}

.consult-cta__btn--tel {
  background: linear-gradient(0deg, #48B2E6 0%, #1D8EC7 100%);
  box-shadow: 0 0.8rem 0 #1D8EC7;
}

.consult-cta__btn--tel:hover {
  box-shadow: none;
  transform: translateY(8px);
}

.consult-cta__btn-main {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.consult-cta__btn-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--color-lightest);
  color: #1D8EC7;
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.25);
}

.consult-cta__btn-icon-svg {
  width: 24px;
  height: 24px;
  display: block;
}

.consult-cta__btn-text {
  font-size: 2.4rem;
  line-height: 1.2;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.25);
}

.consult-cta__btn-badge {
  padding: 0.8rem;
  border: 1px solid var(--color-lightest);
  font-size: 1.2rem;
  line-height: 1.2;
  text-align: center;
  color: var(--color-lightest);
  background: rgba(255, 255, 255, 0.1);
}

.view-more-btn--consult-cta {
  border-color: #639BC3;
}

.view-more-btn__strong--consult-cta {
  color: #639BC3;
}

.view-more-btn--consult-cta i {
  color: #639BC3;
}

/* --------------------------
FLOW
-------------------------- */
/* checklist CTA
------------------ */
.flow__checklist-btn {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.8rem;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 2.4rem auto;
  padding: 1.2rem;
  border: 1px solid var(--color-tertiary);
  border-radius: 0.6rem;
  background: var(--color-lightest);
  transition: all 0.3s ease;
}
@media (min-width: 768px) {
  .flow__checklist-btn {
    padding: 2.4rem;
  }
}

.flow__checklist-btn:hover {
  box-shadow: 0 2px 2px rgba(255, 0, 0, 0.3);
  transform: translateY(-4px);
}

.flow__checklist-btn-body {
  display: grid;
  justify-items: start;
  gap: 0.4rem;
}

.flow__checklist-btn-sub {
  border-bottom: 1px solid var(--color-tertiary);
  font-family: var(--font-rounded);
}

.flow__checklist-btn-main {
  font-size: 2rem;
  font-weight: var(--font-bold);
  color: var(--color-primary);
}

/* flow panel
------------------ */
.flow__panel {
  counter-reset: flow;
  margin: 0 0 2.4rem 0;
  box-shadow: var(--shadow-card);
  border-radius: 0.6rem;
  overflow: hidden;
  background: var(--color-lightest);
}
@media (min-width: 768px) {
  .flow__panel {
    width: 640px;
    margin-right: auto;
    margin-left: auto;
  }
}

.flow__group-title {
  padding: 0.8rem 1.6rem;
  font-weight: var(--font-bold);
  color: var(--color-lightest);
  background: var(--color-primary);
}

.flow__item + .flow__item {
  border-top: 1px solid var(--color-border);
}

.flow__link {
  counter-increment: flow;
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr) 1.6rem;
  align-items: center;
  gap: 0.8rem;
  padding: 1.2rem 1.6rem;
  font-size: 1.8rem;
}

.flow__link::before {
  content: counter(flow);
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  font-size: 1.4rem;
  font-weight: var(--font-bold);
  line-height: 1;
  background: #FCDEDE;
  color: var(--color-primary);
}

.flow__link i {
  justify-self: end;
  font-size: 1.4rem;
  line-height: 1;
  color: var(--color-primary);
}

.view-more-btn--flow {
  margin-top: 2.4rem;
}

/* payment
------------------ */
.payment {
  padding: 2.4rem 1.6rem;
  box-shadow: var(--shadow-card);
  background: var(--color-lightest);
}
@media (min-width: 768px) {
  .payment {
    width: 640px;
    margin-right: auto;
    margin-left: auto;
    padding: 3.2rem;
  }
}

.payment__title {
  position: relative;
  padding: 0 0 0 1.2rem;
  border-left: 4px solid var(--color-primary);
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
}

.payment__list {
  background: var(--color-lightest);
}

.payment__item {
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--color-border);
}

.payment__item:last-child {
  padding: 1.6rem 0 0 0;
  border-bottom: 0;
}

.payment__label {
  display: inline-block;
  margin: 0 0 0.8rem;
  padding: 0.4rem 0.8rem;
  background: #FAEED6;
  font-weight: var(--font-bold);
}

/* --------------------------
COLUMN LIST
-------------------------- */
.column-list__list {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 82%;
  align-items: stretch;
  gap: 1.6rem;
  margin: 0 0 2.4rem 1.6rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}
@media (min-width: 768px) {
  .column-list__list {
    grid-auto-flow: row;
    grid-auto-columns: initial;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    max-width: 1040px;
    margin: 0 auto 3.2rem auto;
    padding: 0 1.6rem;
  }
}

.column-list__list::-webkit-scrollbar {
  height: 6px;
}

.column-list__list::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.1);
  border-radius: 999px;
}

.column-list__item {
  scroll-snap-align: start;
}

.column-list__card {
  display: grid;
  align-content: start;
  overflow: hidden;
  height: 100%;
  background: var(--color-lightest);
  box-shadow: var(--shadow-card);
  transition: all 0.3s ease;
}

.column-list__card:hover {
  transform: translateY(-8px);
}

.column-list__image {
  width: 100%;
  height: auto;
}

.column-list__card-body {
  padding: 1.6rem;
}

.column-list__tag {
  display: inline-block;
  margin: 0 0 1.2rem;
  padding: 0.4rem 0.8rem;
  background: #FCDEDE;
  font-size: 1.4rem;
  color: var(--color-primary);
}

.column-list__card-title {
  font-size: 2rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
}

.column-list__cat {
  margin: 2.4rem 0 0 0;
}

.column-list__title {
  font-size: 2rem;
  font-weight: var(--font-bold);
  text-align: center;
}

.column-list__title-inner {
  position: relative;
  display: inline-block;
  margin: 0 0 2em 0;
}

.column-list__title-inner::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -5px;
  display: inline-block;
  width: 80px;
  height: 1px;
  background-color: var(--color-primary);
  transform: translateX(-50%);
}

.column-list__cats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}
@media (min-width: 768px) {
  .column-list__cats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.column-list__cat-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.8rem 1.6rem;
  background: var(--color-lightest);
  border: 1px solid var(--color-border);
  font-weight: var(--font-bold);
  transition: all 0.3s ease;
}

.column-list__cat-link:hover {
  background: #FFF1F1;
}

.column-list__cat-link i {
  color: var(--color-primary);
}

/* --------------------------
NEWS LIST
-------------------------- */
.news-list__list {
  margin: 0 0 2.4rem 0;
}

.news-list__link {
  display: block;
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--color-primary);
  transition: all 0.3s ease;
}
@media (min-width: 768px) {
  .news-list__link {
    display: flex;
    align-items: center;
    gap: 2.4rem;
  }
}

.news-list__link:hover {
  background: #FFF1F1;
}

.news-list__link:hover .news-list__cat {
  background: var(--color-lightest);
}

.news-list__meta {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin: 0 0 1.2rem 0;
}
@media (min-width: 768px) {
  .news-list__meta {
    min-width: 200px;
    margin: 0;
  }
}

.news-list__date {
  font-size: 1.4rem;
  line-height: 1;
}
@media (min-width: 768px) {
  .news-list__date {
    min-width: 80px;
  }
}

.news-list__cat {
  display: inline-block;
  padding: 0.4rem 0.8rem;
  font-size: 1.2rem;
  line-height: 1;
  border: 1px solid var(--color-primary);
  background: var(--bg-highlight);
  color: var(--color-primary);
}

.news-list__title {
  font-size: 1.8rem;
}

/* --------------------------
FOOTER
-------------------------- */
.footer {
  padding-top: 4.8rem;
  background: var(--color-lightest);
}

.footer__nav {
  padding: 3.2rem 0;
}

@media (min-width: 768px) {
  .footer__group-wrapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2.4rem;
  }
}
@media (min-width: 1040px) {
  .footer__group-wrapper {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.footer__group {
  margin-top: 2.4rem;
}

.footer__heading {
  margin: 0 0 0.8rem;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid var(--color-tertiary);
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  color: var(--color-primary);
}

.footer__item {
  padding: 1.6rem 0;
  border-bottom: 1px solid #eee;
  transition: all 0.3s ease;
}

.footer__item:hover {
  background: #eee;
}

.footer__link {
  display: flex;
  align-items: center;
  gap: 1.2rem;
}
@media (min-width: 768px) {
  .footer__link {
    font-size: 1.6rem;
  }
}

.footer__link i {
  flex: 0 0 auto;
  color: var(--color-primary);
}

.footer__bottom {
  padding: 1.6rem;
  background: var(--color-primary);
  text-align: center;
}

.footer__copyright {
  font-size: 1.4rem;
  color: var(--color-lightest);
}

/* =============================
SUB PAGE - COMMON
============================= */
.breadcrumb {
  padding: 1.6rem 0;
  font-size: 1.4rem;
}

.breadcrumb-item {
  display: inline;
  margin-left: 0.4rem;
  word-break: break-all;
}

.breadcrumb-item:first-child {
  margin: 0;
}

.breadcrumb-item i {
  margin-right: 0.4rem;
  color: var(--color-primary);
}

/* =============================
SUB PAGE - PLAN DETAIL
============================= */
/* --------------------------
PLAN CTA
-------------------------- */
.plan-mv {
  width: 100%;
  height: auto;
}

.plan-cta {
  background: var(--bg-primary);
}

.plan-cta--simple {
  background: var(--bg-secondary) url(../image/plan-cta__bg-simple@2x.jpg) left bottom/cover;
}

.plan-cta--standard {
  background: var(--bg-secondary) url(../image/plan-cta__bg-standard@2x.jpg) center bottom/cover;
}
@media (min-width: 768px) {
  .plan-cta--standard {
    background: var(--bg-secondary) url(../image/plan-cta__bg-standard-pc@2x.jpg) center bottom/cover;
  }
}

.plan-cta--high-standard {
  background: var(--bg-secondary) url(../image/plan-cta__bg-standard@2x.jpg) center bottom/cover;
}
@media (min-width: 768px) {
  .plan-cta--high-standard {
    background: var(--bg-secondary) url(../image/plan-cta__bg-standard-pc@2x.jpg) center bottom/cover;
  }
}

.plan-cta--premium {
  background: var(--bg-secondary) url(../image/plan-cta__bg-standard@2x.jpg) center bottom/cover;
}
@media (min-width: 768px) {
  .plan-cta--premium {
    background: var(--bg-secondary) url(../image/plan-cta__bg-standard-pc@2x.jpg) center bottom/cover;
  }
}

.plan-cta__catch {
  display: grid;
  align-items: center;
  width: 100%;
  padding: 1.2rem;
  border-radius: 0.8rem 0.8rem 0 0;
  background: #999;
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  line-height: 1.2;
  text-align: center;
  color: var(--color-lightest);
}
@media (min-width: 768px) {
  .plan-cta__catch {
    max-width: 840px;
    margin: 0 auto;
  }
}

.plan-cta__catch--simple {
  background: var(--color-simple);
}

.plan-cta__catch--standard {
  background: var(--color-primary);
}

.plan-cta__catch--high-standard {
  background: var(--color-high-standard);
}

.plan-cta__catch--premium {
  background: var(--color-premium);
}

.plan-cta__body {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  background: rgba(255, 255, 255, 0.8);
  margin-bottom: 3.2rem;
  padding: 2.4rem 1.6rem;
  border: 1px solid #eee;
  box-shadow: var(--shadow-card);
}
@media (min-width: 768px) {
  .plan-cta__body {
    grid-template-columns: 1fr 1fr;
    gap: 3.2rem;
    max-width: 840px;
    margin-right: auto;
    margin-left: auto;
    padding: 4.8rem;
  }
}

.plan-cta-left {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.6rem;
}

.plan-cta__head {
  display: grid;
  gap: 0.8rem;
}

.plan-cta__head-text {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
}

.plan-cta__label {
  display: inline-block;
  padding: 0.4rem 1.6rem;
  border-radius: 999px;
  background: #FFDEDE;
  font-size: 2rem;
  font-weight: var(--font-bold);
}
@media (min-width: 768px) {
  .plan-cta__label {
    font-size: 1.8rem;
  }
}

.plan-cta__label--simple {
  background: var(--color-simple);
  color: var(--color-lightest);
}

.plan-cta__label--primary {
  background: var(--color-primary);
  color: var(--color-lightest);
}

.plan-cta__label--high-standard {
  background: var(--color-high-standard);
  color: var(--color-lightest);
}

.plan-cta__label--premium {
  background: var(--color-premium);
  color: var(--color-lightest);
}

.plan-cta__title {
  display: flex;
  align-items: center;
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  line-height: 1;
}
@media (min-width: 768px) {
  .plan-cta__title {
    font-size: 2.8rem;
  }
}

.plan-cta__number {
  font-size: 4.8rem;
}
@media (min-width: 768px) {
  .plan-cta__number {
    font-size: 5.6rem;
  }
}

.plan-cta__tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
}

.plan-cta__tag {
  padding: 0.4rem 0.8rem;
  border-radius: 0.4rem;
  background: var(--color-tertiary);
  font-size: 1.6rem;
  color: var(--color-lightest);
}

.plan-cta__price-body {
  padding: 1.6rem 0;
  border: 1px solid var(--color-tertiary);
  background: var(--bg-primary);
}

.plan-cta__price-sub {
  font-size: 1.4rem;
  text-align: center;
  color: #666;
}
@media (min-width: 768px) {
  .plan-cta__price-sub {
    font-size: 1.6rem;
  }
}

.plan-cta__price-sub-amount {
  font-size: 2.4rem;
  font-family: var(--font-english);
}

.plan-cta__price-sub-tax {
  font-size: 1.2rem;
}

.plan-cta__price-main {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.8rem;
}

.plan-cta__discount {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.8rem;
  border-radius: 0.4rem;
  background: var(--color-primary);
  font-size: 1rem;
  font-weight: var(--font-bold);
  color: var(--color-lightest);
}
@media (min-width: 1040px) {
  .plan-cta__discount {
    display: flex;
    justify-content: center;
    align-items: baseline;
  }
}

.plan-cta__discount::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -4px;
  width: 0;
  height: 0;
  transform: translateY(-50%);
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 4px solid var(--color-primary);
}

.plan-cta__discount-strong {
  font-size: 1.4rem;
  color: var(--color-highlight2);
}

.plan-cta__discount-amount {
  margin: 0 0.1em;
  font-size: 3.2rem;
  font-family: var(--font-english);
  font-weight: normal;
  line-height: 1;
}
@media (min-width: 768px) {
  .plan-cta__discount-amount {
    margin: 0;
  }
}

.plan-cta__price {
  display: inline-flex;
  background: linear-gradient(transparent 70%, var(--color-highlight2) 70%);
}
@media (min-width: 768px) {
  .plan-cta__price {
    gap: 0;
  }
}

.plan-cta__price-amount {
  font-size: 4rem;
  font-family: var(--font-english);
  font-weight: normal;
  color: var(--color-primary);
  line-height: 1;
}
@media (min-width: 768px) {
  .plan-cta__price-amount {
    font-size: 4.8rem;
  }
}

.plan-cta__price-note {
  display: grid;
  align-content: center;
  justify-items: center;
  width: 2.2rem;
  line-height: 1;
  font-weight: var(--font-bold);
}
@media (min-width: 768px) {
  .plan-cta__price-note {
    font-size: 1.8rem;
  }
}

.plan-cta__price-ex {
  font-size: 1rem;
  font-weight: normal;
}

.plan-cta__price-tax {
  font-size: 1.4rem;
}
@media (min-width: 768px) {
  .plan-cta__price-tax {
    font-size: 1.6rem;
  }
}

.plan-cta__payments {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.8rem;
}

.plan-cta__payment {
  padding: 0.4rem 0.8rem;
  background: var(--color-secondary);
  font-size: 1.2rem;
  color: var(--color-lightest);
}
@media (min-width: 768px) {
  .plan-cta__payment {
    font-size: 1.4rem;
  }
}

/* --------------------------
PLAN INTRO
-------------------------- */
.plan-intro {
  background: var(--bg-secondary);
}

.plan-intro--simple {
  background: var(--bg-simple);
}

.plan-intro--standard {
  background: var(--bg-highlight);
}

.plan-intro--high-standard {
  background: var(--bg-high-standard);
}

.plan-intro--premium {
  background: var(--bg-premium);
}

.plan-intro__lead {
  margin-bottom: 0.8rem;
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
  text-align: center;
  color: var(--color-primary);
}

.plan-intro__heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  margin-bottom: 1.6rem;
  text-align: center;
}

.plan-intro__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 1.2rem;
  border-radius: 999px;
  font-size: 1.8rem;
  font-weight: 700;
  background: #FFDEDE;
}

.plan-intro__badge--simple {
  background: var(--color-simple);
  color: var(--color-lightest);
}

.plan-intro__badge--standard {
  background: var(--color-primary);
  color: var(--color-lightest);
}

.plan-intro__badge--high-standard {
  background: var(--color-high-standard);
  color: var(--color-lightest);
}

.plan-intro__badge--premium {
  background: var(--color-premium);
  color: var(--color-lightest);
}

.plan-intro__title {
  font-size: 3.2rem;
  font-weight: var(--font-bold);
}

.plan-intro__text {
  margin-bottom: 2.4rem;
}
@media (min-width: 768px) {
  .plan-intro__text {
    text-align: center;
  }
}

.plan-intro__bullet-heading {
  display: inline-flex;
  margin-bottom: 1.6rem;
  padding: 0.4rem 1.6rem;
  border: 2px solid var(--color-primary);
  border-radius: 999px;
  font-weight: var(--font-bold);
  text-align: center;
  color: var(--color-primary);
}

.plan-intro__bullet-list {
  display: grid;
  gap: 1.8rem;
}
@media (min-width: 768px) {
  .plan-intro__bullet-list {
    grid-template-columns: 1fr 1fr;
  }
}

.plan-intro__bullet-item {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 1.6rem;
  border-radius: 0.8rem;
  background: var(--color-lightest);
}
@media (min-width: 768px) {
  .plan-intro__bullet-item {
    justify-content: center;
    gap: 1.6rem;
  }
}

.plan-intro__item-text {
  width: calc(100% - 56px);
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
}

/* --------------------------
PLAN RECOMMEND
-------------------------- */
.plan-recommend__heading {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.6rem;
  padding: 1.6rem;
  background: var(--color-primary);
}

.plan-recommend__heading:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -24px;
  width: 0;
  height: 0;
  border-top: 24px solid var(--color-primary);
  border-right: 32px solid transparent;
  border-left: 32px solid transparent;
  transform: translateX(-50%);
}

.plan-recommend__badge {
  flex: 0 0 auto;
}

.plan-recommend__text {
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
  color: var(--color-lightest);
}
@media (min-width: 768px) {
  .plan-recommend__text {
    font-size: 2.4rem;
  }
}

.plan-recommend__link {
  display: inline-block;
  margin: 3.2rem 0;
}

/* --------------------------
PLAN INCLUDES
-------------------------- */
.plan-includes {
  background: var(--bg-secondary);
}

.plan-includes--simple {
  background: var(--bg-simple);
}

.plan-includes--standard {
  background: var(--bg-highlight);
}

.plan-includes--high-standard {
  background: var(--bg-high-standard);
}

.plan-includes--premium {
  background: var(--bg-premium);
}

.plan-includes__heading {
  margin-bottom: 1.6rem;
  padding-bottom: 0.4rem;
  border-bottom: 2px solid var(--color-tertiary);
  font-size: 2rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
  text-align: center;
}

.plan-includes__text {
  display: grid;
  gap: 1.6rem;
  margin-bottom: 2.4rem;
}
@media (min-width: 768px) {
  .plan-includes__text {
    text-align: center;
  }
}

.plan-includes__points {
  margin-bottom: 2.4rem;
}

.plan-includes__points-list {
  display: grid;
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .plan-includes__points-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.plan-includes__point {
  position: relative;
  display: grid;
  align-items: start;
  border: 1px solid var(--color-border);
  border-radius: 0.8rem;
  background: var(--color-lightest);
  overflow: hidden;
}

.plan-includes__point--bg {
  background: var(--bg-primary);
}

.plan-includes__point--standard {
  border: 1px solid var(--color-primary);
}

.plan-includes__point--high-standard {
  border: 1px solid var(--color-high-standard);
}

.plan-includes__point--premium {
  border: 1px solid var(--color-premium);
}

.plan-includes__point-label {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 10;
}

.plan-includes__point-media {
  display: grid;
  align-items: center;
  padding: 1.6rem;
  background: var(--color-lightest);
}

.plan-includes__point-img {
  margin: 0 auto;
}

.plan-includes__point-body {
  height: 100%;
  padding: 1.6rem;
}

.plan-includes__point-title {
  display: flex;
  align-items: center;
  gap: 0.5em;
  margin-bottom: 1.2rem;
  border-bottom: 1px solid var(--color-border);
  font-size: 1.8rem;
  font-weight: var(--font-bold);
}

.plan-includes__point-title--column {
  flex-direction: column;
  align-items: start;
  gap: 0;
}

.plan-includes__point-title--standard {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.plan-includes__point-title--high-standard {
  border-color: var(--color-high-standard);
  color: var(--color-high-standard);
}

.plan-includes__point-title--premium {
  border-color: var(--color-premium);
  color: var(--color-premium);
}

.plan-includes__point-text {
  font-size: 1.6rem;
  font-weight: normal;
  color: var(--color-darkest);
}

.plan-includes__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  margin-bottom: 1.6rem;
}
@media (min-width: 768px) {
  .plan-includes__list {
    grid-template-columns: repeat(7, 1fr);
    gap: 1.6rem;
  }
}

.plan-includes__item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  border: 1px solid var(--color-primary);
  border-radius: 0.4rem;
  text-align: center;
  background: var(--color-lightest);
}

.plan-includes__item--disabled {
  border-color: var(--color-border);
  background: #F7F7F7;
  color: #ccc;
}

.plan-includes__item--grade-up {
  border-width: 3px;
}

.plan-includes__grade-up {
  position: absolute;
  top: -1rem;
  right: -1rem;
}

.plan-includes__item-label {
  padding: 0 0.8rem 1.2rem;
  font-size: 1.4rem;
  line-height: 1.2;
}

.plan-includes__item-notice {
  font-size: 1rem;
}

.plan-includes__item--disabled::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(-45deg, transparent calc(50% - 0.1rem), currentColor calc(50% - 0.1rem), currentColor calc(50% + 0.1rem), transparent calc(50% + 0.1rem));
  content: "";
  opacity: 0.6;
  pointer-events: none;
}

.plan-includes__notices {
  display: grid;
  gap: 0.4rem;
  font-size: 1.2rem;
}

.plan-includes__notice {
  margin-bottom: 0.8rem;
  font-size: 1.6rem;
  font-weight: var(--font-bold);
}

.plan-includes__notice-grade-up {
  margin-right: 0.5em;
  padding: 0.4rem 0.8rem;
  font-weight: var(--font-bold);
  text-transform: uppercase;
  background: var(--color-primary);
  color: var(--color-lightest);
}

/* --------------------------
PRICE ASSURANCE
-------------------------- */
.price-assurance {
  position: relative;
  padding: 1.6rem;
  background: var(--color-primary);
}

.price-assurance::before {
  position: absolute;
  top: -1.6rem;
  left: 50%;
  display: block;
  width: 0;
  height: 0;
  border-right: 2.4rem solid transparent;
  border-top: 2.4rem solid var(--color-tertiary);
  border-left: 2.4rem solid transparent;
  content: "";
  transform: translateX(-50%);
}

/* --------------------------
PLAN EXCLUSIONS
-------------------------- */
.plan-exclusions {
  background: var(--color-lightest);
  padding: 2.4rem 0;
}
@media (min-width: 768px) {
  .plan-exclusions {
    padding: 3.2rem 1.6rem;
  }
}

.plan-exclusions__heading {
  margin-bottom: 1.6rem;
  padding: 0 0 0 1.2rem;
  border-left: 4px solid var(--color-primary);
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
}

.plan-exclusions__lead {
  margin-bottom: 1.6rem;
  font-size: 1.4rem;
}

.plan-exclusions__list {
  display: grid;
  gap: 1.6rem;
}

.plan-exclusions__item {
  padding-top: 1.2rem;
  border-top: 1px solid var(--color-border);
}

.plan-exclusions__item-title {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.8rem;
  font-size: 1.6rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
}

.plan-exclusions__item-title::before {
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 999px;
  background: var(--color-primary);
  content: "";
}

.plan-exclusions__item-text {
  font-size: 1.4rem;
}

.plan-exclusions__details {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.plan-exclusions__details-list {
  display: grid;
  gap: 1.6rem;
  order: 1;
}

.plan-exclusions__details:not([open]) .plan-exclusions__details-list {
  max-height: 56rem;
  overflow: hidden;
}
@media (min-width: 768px) {
  .plan-exclusions__details:not([open]) .plan-exclusions__details-list {
    max-height: none;
  }
}

.plan-exclusions__details-content {
  display: grid;
  gap: 1.2rem;
  font-size: 1.4rem;
}

.plan-exclusions__summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  order: 1;
  padding: 1.2rem 1.6rem;
  border-radius: 0.4rem;
  font-size: 1.4rem;
  font-weight: var(--font-bold);
  line-height: 1;
  background: #ccc;
}

.plan-exclusions__details[open] .plan-exclusions__summary {
  order: 2;
}

.plan-exclusions__summary::-webkit-details-marker {
  display: none;
}

.plan-exclusions__summary-icon {
  width: 0.8rem;
  height: 0.8rem;
  border-right: 0.2rem solid currentColor;
  border-bottom: 0.2rem solid currentColor;
  transform: rotate(45deg);
}

.plan-exclusions__details[open] .plan-exclusions__summary-icon {
  transform: rotate(-135deg);
}

.plan-exclusions__details-title {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.8rem;
  font-size: 1.4rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
}

.plan-exclusions__details-title::before {
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 999px;
  background: var(--color-darkest);
  content: "";
}

.plan-exclusions__box {
  padding: 1.2rem;
  background: var(--bg-primary);
}

.plan-exclusions__box-title {
  margin-bottom: 0.6rem;
  padding-bottom: 0.2rem;
  border-bottom: 1px solid var(--color-primary);
  font-size: 1.4rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
}

/* --------------------------
PLAN COMPARE
-------------------------- */
.plan-compare__header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  margin-bottom: 1.6rem;
}

.plan-compare__title {
  margin-bottom: 0;
  padding: 0 0 0 1.2rem;
  border-left: 4px solid var(--color-tertiary);
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
}

.plan-compare__controls {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.plan-compare__control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  border-radius: 0.4rem;
  background: var(--color-lightest);
  color: var(--color-primary);
}

.plan-compare__hint-hand {
  width: 3.2rem;
  height: 3.2rem;
  animation: planCompareHint 1.2s ease-in-out infinite;
}

@keyframes planCompareHint {
  0% {
    transform: translateX(-0.6rem);
  }
  50% {
    transform: translateX(0.6rem);
  }
  100% {
    transform: translateX(-0.6rem);
  }
}
@media (prefers-reduced-motion: reduce) {
  .plan-compare__hint-hand {
    animation: none;
    transform: none;
  }
}
.plan-compare__scroller {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.plan-compare__list {
  display: flex;
  gap: 0;
  padding-bottom: 1.6rem;
  scroll-snap-type: x mandatory;
}

.plan-compare__item {
  flex: 0 0 auto;
  scroll-snap-align: start;
  width: 16rem;
}
@media (min-width: 768px) {
  .plan-compare__item {
    width: 18rem;
    scroll-snap-align: unset;
  }
}

.compare-card {
  background: var(--color-lightest);
  box-shadow: inset 0 1px 0 0 var(--color-border), inset -1px 0 0 0 var(--color-border), inset 0 -1px 0 0 var(--color-border);
}

.plan-compare__item:first-child .compare-card {
  box-shadow: inset 0 1px 0 0 var(--color-border), inset -1px 0 0 0 var(--color-border), inset 0 -1px 0 0 var(--color-border), inset 1px 0 0 0 var(--color-border);
}

.compare-card__head {
  padding: 1.6rem;
  text-align: center;
  background: var(--bg-primary);
  border-top: 1px solid var(--color-border);
  border-right: 1px solid var(--color-border);
}

.plan-compare__item:first-child .compare-card__head {
  border-left: 1px solid var(--color-border);
}

.compare-card__tag {
  display: inline-block;
  margin-bottom: 1rem;
  padding: 0.4rem 1.6rem;
  font-size: 1.4rem;
  font-weight: var(--font-bold);
  line-height: 1.2;
  background: #FFDEDE;
  color: var(--color-darkest);
}

.compare-card__tag--simple {
  background: var(--color-simple);
  color: var(--color-lightest);
}

.compare-card__tag--standard {
  background: var(--color-primary);
  color: var(--color-lightest);
}

.compare-card__tag--high-standard {
  background: var(--color-high-standard);
  color: var(--color-lightest);
}

.compare-card__tag--premium {
  background: var(--color-premium);
  color: var(--color-lightest);
}

.compare-card__name {
  font-size: 2rem;
  font-weight: var(--font-bold);
  line-height: 1.2;
}

.compare-card__media {
  padding: 1.2rem;
  box-shadow: inset 0 1px 0 0 var(--color-border), inset 0 -1px 0 0 var(--color-border);
}

.compare-card__img {
  width: 100%;
  height: auto;
}

.compare-card__price {
  padding: 1.6rem;
  box-shadow: inset 0 -1px 0 0 var(--color-border);
}

.compare-card__badge {
  display: inline-block;
  padding: 0.4rem 0.8rem;
  font-size: 1.2rem;
  font-weight: var(--font-bold);
  line-height: 1;
  background: #FFDEDE;
  color: #666;
}

.compare-card__amount {
  line-height: 1;
  color: #666;
}

.compare-card__amount-label {
  font-size: 1.2rem;
}

.compare-card__amount-value {
  font-size: 2.4rem;
  font-family: var(--font-english);
}

.compare-card__amount-unit {
  font-size: 1.6rem;
  font-weight: var(--font-bold);
}

.compare-card__tax {
  font-size: 1.2rem;
  color: #666;
}

.compare-card__more {
  margin-top: 0.8rem;
}

.compare-card__more-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 1.2rem;
  border-radius: 999px;
  font-size: 1.4rem;
  font-weight: var(--font-bold);
  line-height: 1;
  text-decoration: none;
  background: var(--color-highlight2);
  color: var(--color-darkest);
}

.compare-card__deal {
  padding: 1.6rem;
}

.compare-card__deal-badge {
  display: inline-block;
  padding: 0.4rem 0.8rem;
  font-size: 1.2rem;
  font-weight: var(--font-bold);
  line-height: 1;
  background: var(--color-primary);
  color: var(--color-lightest);
}

.compare-card__deal-amount {
  display: inline-flex;
  background: linear-gradient(transparent 70%, var(--color-highlight2) 70%);
}

.compare-card__deal-number {
  font-size: 3.6rem;
  font-family: var(--font-english);
  font-weight: normal;
  line-height: 1;
  color: var(--color-primary);
}

.compare-card__deal-yen {
  display: grid;
  align-content: center;
  justify-items: center;
  width: 2.2rem;
  font-weight: var(--font-bold);
  line-height: 1.2;
}

.compare-card__deal-ex {
  font-size: 1rem;
  font-weight: normal;
}

.compare-card__deal-unit {
  font-size: 1.2rem;
}

/* =============================
PRIVACY POLICY
============================= */
.privacy__heading {
  margin-top: 3.2rem;
  padding-bottom: 0.8rem;
  border-bottom: 2px solid var(--color-primary);
  font-size: 1.8rem;
  font-weight: var(--font-bold);
}
@media (min-width: 768px) {
  .privacy__heading {
    margin-top: 4rem;
    font-size: 2rem;
  }
}

.privacy__subheading {
  margin-top: 2.4rem;
  font-size: 1.6rem;
  font-weight: var(--font-bold);
}
@media (min-width: 768px) {
  .privacy__subheading {
    font-size: 1.8rem;
  }
}

.privacy__text {
  margin-top: 1.2rem;
}

.privacy__link {
  color: var(--color-primary);
  text-decoration: underline;
  transition: opacity 0.3s ease;
  overflow-wrap: anywhere;
}

.privacy__link:hover {
  opacity: 0.7;
}

/* =============================
REQUEST FORM
============================= */
/* --------------------------
HEADING
-------------------------- */
.request-form__header-wrapper {
  padding: 4.8rem 0;
}

.request-form__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
}

.request-form__mv {
  margin: 0 auto;
}

.request-form__stepper {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 2.4rem;
  margin-bottom: 2.4rem;
}

.request-form__stepper-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
}

.request-form__stepper-number {
  display: grid;
  place-items: center;
  width: 4rem;
  height: 4rem;
  border-radius: 999px;
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  line-height: 1;
  background: var(--color-border);
  color: var(--color-lightest);
}

.request-form__stepper-step--active .request-form__stepper-number {
  background: var(--color-primary);
}

.request-form__stepper-label {
  font-size: 1.2rem;
}

.request-form__body {
  max-width: 640px;
  margin: 0 auto;
  padding: 4.8rem 0;
  background: var(--color-lightest);
}

.request-form__field {
  display: grid;
  gap: 0.8rem;
  margin-top: 2.4rem;
}

.request-form__field-header p {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.request-form__badge {
  display: inline-block;
  padding: 0.2rem 0.8rem;
  border-radius: 0.2rem;
  font-size: 1.4rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
  background: var(--color-primary);
  color: var(--color-lightest);
}

.request-form__label {
  font-size: 1.8rem;
  font-weight: var(--font-bold);
}

.request-form__input {
  width: 100%;
  padding: 1.2rem;
  border-radius: 0.4rem;
  background: var(--bg-primary);
  border: 1px solid var(--color-border);
  font-size: 2rem;
}

.request-form__input--city {
  margin-top: 1.2rem;
}

.request-form__input::-moz-placeholder {
  color: var(--color-border);
}

.request-form__input::placeholder {
  color: var(--color-border);
}

.request-form__select {
  width: 100%;
  padding: 1.2rem;
  border: 1px solid var(--color-border);
  border-radius: 0.4rem;
  background: var(--color-lightest);
}

.request-form__select-wrap {
  position: relative;
  margin-top: 1.2rem;
}

.request-form__select-icon {
  position: absolute;
  top: 50%;
  right: 1.6rem;
  font-size: 1.6rem;
  color: var(--color-darkest);
  pointer-events: none;
  transform: translateY(-50%);
}

.request-form__name-row {
  display: flex;
  gap: 0.8rem;
}

.request-form__name-label {
  font-size: 1.6rem;
  font-weight: var(--font-bold);
}

.request-form__zip-row {
  display: flex;
  align-items: center;
  gap: 1.2rem;
}

.request-form__zip-inner {
  width: 55%;
}

.request-form__zip-inner p {
  display: flex;
  align-items: center;
}

.request-form__zip-label {
  min-width: 4.5em;
  font-size: 1.6rem;
  font-weight: var(--font-bold);
}

.request-form__zip-btn {
  padding: 1.2rem 1.6rem;
  border: 1px solid var(--color-primary);
  border-radius: 0.4rem;
  font-size: 1.6rem;
  font-weight: var(--font-bold);
  color: var(--color-primary);
  background: var(--color-lightest);
  transition: opacity 0.3s ease;
}

.request-form__zip-btn:hover {
  opacity: 0.7;
}

.request-form__hint {
  margin-top: 0.4rem;
  font-size: 1.4rem;
}

.request-form__address-row {
  margin-top: 1.2rem;
}

.request-form__address-label {
  font-size: 1.6rem;
  font-weight: var(--font-bold);
}

.request-form__consent {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: 2.4rem;
}

.request-form__consent-input {
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--color-border);
  border-radius: 0.2rem;
  background: var(--color-lightest);
}

.request-form__consent-input:checked {
  border-color: var(--color-primary);
  background: var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 5l4 4L13 1' stroke='%23fff' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat center center;
}

.wpcf7-list-item {
  margin: 0;
}

.request-form__consent-link {
  color: var(--color-primary);
  text-decoration: underline;
}

.request-form__submit {
  width: 100%;
  padding: 1.6rem;
  border-radius: 0.4rem;
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  text-align: center;
  background: var(--color-primary);
  color: var(--color-lightest);
  box-shadow: 0 0.8rem 0 #C71D47;
  transition: 0.3s ease;
}

.request-form__submit:hover {
  box-shadow: none;
  transform: translateY(4px);
}

/* --------------------------
CONTACT FORM7
-------------------------- */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border-color: blue;
  color: blue;
}

.wpcf7 form .wpcf7-response-output {
  margin: 0;
}

/* =============================
THANKS REQUEST
============================= */
.thanks-request__body {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  text-align: left;
}
@media (min-width: 768px) {
  .thanks-request__body {
    text-align: center;
  }
}

/* =============================
ABOUT
============================= */
/* --------------------------
ABOUT INTRO
-------------------------- */
.about-intro {
  background: #FFFBFB url(../image/about-intro__bg@2x.png) center bottom/cover;
}
@media (min-width: 768px) {
  .about-intro {
    background: #FFFBFB url(../image/about-intro__bg-pc@2x.png) center bottom/cover;
  }
}

.about-intro__inner {
  margin: 0 auto;
  padding: 2.4rem 1.6rem;
  border-radius: 0.8rem;
  background: rgba(255, 255, 255, 0.85);
}
@media (min-width: 768px) {
  .about-intro__inner {
    width: 720px;
    padding: 4.8rem;
    border-radius: 1.6rem;
    text-align: center;
  }
}

.about-intro__body {
  display: grid;
  gap: 1.6rem;
}

/* --------------------------
ABOUT WORRY
-------------------------- */
.about-worry__header {
  font-size: 3.2rem;
  color: #6E697D;
}
@media (min-width: 768px) {
  .about-worry__header {
    font-size: 4rem;
  }
}

.about-worry__wrapper {
  display: grid;
  justify-items: center;
  gap: 3.2rem;
}
@media (min-width: 768px) {
  .about-worry__wrapper {
    gap: 4.8rem;
  }
}

/* stat
------------------ */
.about-worry__stat {
  position: relative;
  display: grid;
  justify-items: center;
  width: 100%;
  padding: 2.4rem;
  background: var(--bg-primary);
  box-shadow: var(--shadow-card);
}
@media (min-width: 768px) {
  .about-worry__stat {
    display: flex;
    justify-content: start;
    align-items: end;
    width: -moz-fit-content;
    width: fit-content;
    padding: 3.2rem 5.6rem;
  }
}

.about-worry__stat-sub {
  text-align: center;
}
@media (min-width: 768px) {
  .about-worry__stat-sub {
    padding-bottom: 0.4em;
  }
}

.about-worry__stat-accent {
  position: absolute;
  top: -8px;
  left: -4px;
}

.about-worry__stat-value {
  display: flex;
  gap: 0.4rem;
  align-items: baseline;
  justify-content: center;
  font-weight: var(--font-bold);
  line-height: 1;
}

.about-worry__stat-illust {
  position: absolute;
  right: -12px;
  bottom: -12px;
  width: 60px;
  height: auto;
}
@media (min-width: 768px) {
  .about-worry__stat-illust {
    width: 80px;
    height: auto;
  }
}

/* bubble
------------------ */
.about-worry__row-wrapper {
  display: grid;
  gap: 2.4rem;
}

.about-worry__row {
  display: grid;
  gap: 1.6rem;
  align-items: center;
}

.about-worry__row--right {
  grid-template-columns: minmax(0, 1fr) auto;
}

.about-worry__row--left {
  grid-template-columns: auto minmax(0, 1fr);
}

.about-worry__bubble {
  position: relative;
  padding: 1.6rem;
  border-radius: 0.8rem;
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  background: var(--color-lightest);
  box-shadow: var(--shadow-card);
}
@media (min-width: 768px) {
  .about-worry__bubble {
    font-size: 2rem;
  }
}

.about-worry__bubble::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 0;
  height: 0;
  transform: translateY(-50%);
}

.about-worry__bubble--right::after {
  right: -10px;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 10px solid var(--color-lightest);
}

.about-worry__bubble--left::after {
  left: -10px;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 10px solid var(--color-lightest);
}

.about-worry__row-illust {
  width: 96px;
  height: auto;
}
@media (min-width: 768px) {
  .about-worry__row-illust {
    width: 120px;
    height: auto;
  }
}

/* explain
------------------ */
.about-worry__explain {
  padding: 2.4rem 1.6rem;
  font-size: 1.8rem;
  background: var(--color-lightest);
  box-shadow: var(--shadow-card);
}
@media (min-width: 768px) {
  .about-worry__explain {
    padding: 4.8rem;
  }
}

.about-worry__explain-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 2.4rem;
  text-align: center;
}

.about-worry__explain-header-sub {
  font-size: 1.8rem;
  font-family: var(--font-rounded);
  font-weight: var(--font-bold);
}
@media (min-width: 768px) {
  .about-worry__explain-header-sub {
    font-size: 2.4rem;
  }
}

.about-worry__explain-header-main {
  font-size: 3.2rem;
  font-weight: var(--font-bold);
  color: #234FA8;
}
@media (min-width: 768px) {
  .about-worry__explain-header-main {
    font-size: 4rem;
  }
}

.about-worry__explain-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .about-worry__explain-body {
    flex-direction: row-reverse;
    gap: 3.2rem;
  }
}

.about-worry__explain-illust {
  margin: 0 auto;
  width: 50%;
  height: auto;
}
@media (min-width: 768px) {
  .about-worry__explain-illust {
    width: 200px;
    flex-shrink: 0;
  }
}

.about-worry__explain-text {
  display: grid;
  gap: 1.6rem;
}

/* check list
------------------ */
.about-worry__check-list {
  padding: 2.4rem 1.6rem;
  font-size: 1.8rem;
  background: var(--color-lightest);
  box-shadow: var(--shadow-card);
}
@media (min-width: 768px) {
  .about-worry__check-list {
    padding: 4.8rem;
  }
}

.about-worry__check-list-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 2.4rem;
  text-align: center;
}

.about-worry__check-list-header-sub {
  font-size: 1.8rem;
  font-family: var(--font-rounded);
  font-weight: var(--font-bold);
}
@media (min-width: 768px) {
  .about-worry__check-list-header-sub {
    font-size: 2.4rem;
  }
}

.about-worry__check-list-header-main {
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  color: var(--color-highlight1);
}
@media (min-width: 768px) {
  .about-worry__check-list-header-main {
    font-size: 3.2rem;
  }
}

.about-worry__check-list-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .about-worry__check-list-body {
    flex-direction: row;
    gap: 3.2rem;
  }
}

.about-worry__check-list-illust {
  margin: 0 auto;
  width: 50%;
  height: auto;
}
@media (min-width: 768px) {
  .about-worry__check-list-illust {
    width: 200px;
    flex-shrink: 0;
  }
}

.about-worry__check-list-list {
  display: grid;
  gap: 1.2rem;
}

.about-worry__check-list-checks {
  width: 100%;
}

.about-worry__check-list-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.8rem;
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--color-border);
}

.about-worry__check-list-item:first-child {
  padding-top: 0;
}

.about-worry__check-list-item::before {
  content: "";
  width: 18px;
  height: 18px;
  border: 1px solid #d9d9d9;
  background: var(--color-lightest);
}
@media (min-width: 768px) {
  .about-worry__check-list-item::before {
    width: 32px;
    height: 32px;
  }
}

.about-worry__check-list-text {
  font-size: 1.6rem;
  font-family: var(--font-rounded);
  font-weight: var(--font-bold);
  line-height: 1.4;
}
@media (min-width: 768px) {
  .about-worry__check-list-text {
    font-size: 2.4rem;
  }
}

/* --------------------------
HEADING
-------------------------- */
.section__header-bubble--about-plan {
  background: var(--color-tertiary);
}

.section__header-bubble--about-plan::after {
  border-top-color: var(--color-tertiary);
}

.about-plan__illust {
  margin: 0 auto;
}

.about-plan__body {
  display: grid;
  gap: 2.4rem;
  margin-bottom: 2.4rem;
}

.about-plan__text {
  display: grid;
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .about-plan__text {
    text-align: center;
  }
}

/* -----------------------------
ABOUT REASON
----------------------------- */
.about-reason__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 2.4rem;
  text-align: center;
}

.about-reason__header-sub {
  font-size: 1.6rem;
  font-weight: var(--font-bold);
}
@media (min-width: 768px) {
  .about-reason__header-sub {
    font-size: 2rem;
  }
}

.about-reason__header-main {
  font-size: 2.4rem;
  font-weight: var(--font-bold);
  color: var(--color-primary);
}
@media (min-width: 768px) {
  .about-reason__header-main {
    font-size: 3.2rem;
  }
}

.about-reason__list {
  display: grid;
  gap: 2.4rem;
  counter-reset: reason;
}
@media (min-width: 768px) {
  .about-reason__list {
    gap: 3.2rem;
  }
}

.about-reason__item {
  display: grid;
  gap: 1.6rem;
  padding: 2.4rem 1.6rem;
  background: var(--color-lightest);
  counter-increment: reason;
}
@media (min-width: 768px) {
  .about-reason__item {
    gap: 3.2rem;
    padding: 4.8rem;
  }
}

@media (min-width: 768px) {
  .about-reason__item-image {
    width: 240px;
    flex-shrink: 0;
  }
}
@media (min-width: 1040px) {
  .about-reason__item-image {
    width: 400px;
    flex-shrink: 0;
  }
}

.about-reason__list-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .about-reason__list-body {
    flex-direction: row;
    gap: 3.2rem;
  }
}

@media (min-width: 768px) {
  .about-reason__item:nth-child(even) .about-reason__list-body {
    flex-direction: row-reverse;
  }
}

.about-reason__text {
  display: grid;
  gap: 1.2rem;
}

.about-reason__text::before {
  content: counter(reason);
  position: relative;
  top: 0;
  left: 50%;
  display: grid;
  place-items: center;
  width: 3.6rem;
  height: 3.6rem;
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  line-height: 1;
  background: var(--color-tertiary);
  color: var(--color-lightest);
  transform: translateX(-50%);
}
@media (min-width: 768px) {
  .about-reason__text::before {
    left: 0;
    width: 4.8rem;
    height: 4.8rem;
    font-size: 2.4rem;
    transform: translateX(0);
  }
}

.about-reason__item-header {
  padding-bottom: 0.8rem;
  border-bottom: 1px solid var(--color-tertiary);
  font-size: 2rem;
  font-weight: var(--font-bold);
  line-height: 1.4;
  text-align: center;
}
@media (min-width: 768px) {
  .about-reason__item-header {
    font-size: 2.4rem;
    text-align: left;
  }
}

/* -----------------------------
ABOUT COMMITMENT
----------------------------- */
.about-commitment {
  background: var(--bg-primary) url(../image/about-commitment__bg@2x.png) center top/contain no-repeat;
}

.about-commitment__message {
  margin-bottom: 2.4rem;
  padding: 2.4rem 1.6rem;
  background: rgba(255, 255, 255, 0.85);
  border-radius: 0.8rem;
}
@media (min-width: 768px) {
  .about-commitment__message {
    width: 720px;
    margin-right: auto;
    margin-bottom: 3.2rem;
    margin-left: auto;
    padding: 4.8rem;
    border-radius: 1.6rem;
    text-align: center;
  }
}

.about-commitment__header {
  position: relative;
  display: inline-block;
  margin: 0 0 1em 0;
  font-size: 2.4rem;
  font-family: var(--font-rounded);
  font-weight: var(--font-bold);
  line-height: 1.4;
}
@media (min-width: 768px) {
  .about-commitment__header {
    font-size: 3.2rem;
  }
}

.about-commitment__header:before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.5em;
  display: inline-block;
  width: 8rem;
  height: 1px;
  background-color: var(--color-primary);
}
@media (min-width: 768px) {
  .about-commitment__header:before {
    left: 50%;
    transform: translateX(-50%);
  }
}

.about-commitment__lead {
  display: grid;
  gap: 1.6rem;
  margin-bottom: 1.6rem;
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  color: var(--color-primary);
}
@media (min-width: 768px) {
  .about-commitment__lead {
    gap: 0;
    margin-bottom: 2.4rem;
    font-size: 2rem;
  }
}

.about-commitment__body {
  display: grid;
  gap: 1.6rem;
  font-size: 1.6rem;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .about-commitment__body {
    font-size: 1.8rem;
  }
}

/* features
------------------ */
.about-commitment__features {
  padding: 2.4rem 1.6rem;
  background: var(--color-lightest);
}
@media (min-width: 768px) {
  .about-commitment__features {
    padding: 4.8rem;
  }
}

.about-commitment__feature-item {
  display: grid;
  gap: 2.4rem;
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--color-tertiary);
}
@media (min-width: 768px) {
  .about-commitment__feature-item {
    padding: 2.4rem 0;
  }
}

.about-commitment__feature-title {
  font-size: 2rem;
  font-weight: var(--font-bold);
  text-align: center;
  color: var(--color-primary);
}
@media (min-width: 768px) {
  .about-commitment__feature-title {
    font-size: 2.4rem;
    text-align: left;
  }
}

.about-commitment__feature-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .about-commitment__feature-body {
    flex-direction: row;
    justify-content: space-between;
    gap: 3.2rem;
  }
}

.about-commitment__feature-text {
  display: grid;
  gap: 1.6rem;
}

.about-commitment__feature-illust {
  width: 160px;
  height: auto;
}
@media (min-width: 768px) {
  .about-commitment__feature-illust {
    width: 240px;
    flex-shrink: 0;
  }
}
@media (min-width: 1040px) {
  .about-commitment__feature-illust {
    width: 320px;
    flex-shrink: 0;
  }
}

.about-commitment__feature-photo {
  width: auto;
  height: auto;
}
@media (min-width: 768px) {
  .about-commitment__feature-photo {
    width: 240px;
    flex-shrink: 0;
  }
}
@media (min-width: 1040px) {
  .about-commitment__feature-photo {
    width: 320px;
    flex-shrink: 0;
  }
}

/* note
------------------ */
.about-commitment__note {
  padding: 1.6rem;
  background: var(--bg-secondary);
}
@media (min-width: 768px) {
  .about-commitment__note {
    padding: 3.2rem;
  }
}

.about-commitment__note-title {
  padding-bottom: 1.2rem;
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  color: var(--color-primary);
}
@media (min-width: 768px) {
  .about-commitment__note-title {
    font-size: 2rem;
  }
}

.about-commitment__note-body {
  display: grid;
  gap: 0.8rem;
}

/* =============================
404 NOT FOUND
============================= */
.not-found__header {
  font-size: 2.4rem;
}

.not-found__body {
  display: grid;
  gap: 1.6rem;
  margin-bottom: 2.4rem;
  text-align: center;
}/*# sourceMappingURL=style.css.map */