@charset "UTF-8";

/* =========================================
 * 01. Hero / FV
 * ========================================= */
.p-hero {
  zoom: clamp(0.78125, calc(100vw / 1280px), 1);
  --pcx: max(1px, calc(100vw / 1280));
  --p-hero-shade: #2F2421;
  --p-hero-desat: #3C3E46;
  --p-hero-em: #E4604A;

  position: relative;
  padding-bottom: 93.96px;
  overflow: clip;
  background-color: var(--color-ink-dark);
  color: var(--color-white);
}

.p-hero::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  z-index: var(--z-deco);
  height: 4px;
  background-color: var(--color-accent);
}

/* --- Visual --- */
.p-hero__visual {
  position: absolute;
  inset: 0 0 auto;
  height: 1257px;
  overflow: hidden;
  isolation: isolate;
}

.p-hero__visual-photo {
  position: absolute;
  top: calc(var(--pcx) * -71);
  left: 61.68%;
  width: calc(var(--pcx) * 1593);
  max-width: none;
  height: auto;
  transform: translateX(-50%);
}

.p-hero__visual-tint,
.p-hero__visual-shade {
  position: absolute;
  inset: 0 0 auto;
  height: 853px;
  opacity: .3;
  mix-blend-mode: multiply;
}

.p-hero__visual-tint {
  background-image: linear-gradient(81.13deg, var(--p-hero-shade) 62.94%, var(--color-white) 96.42%);
}

.p-hero__visual-shade {
  background-color: var(--p-hero-shade);
}

.p-hero__visual-desat {
  display: none;
}

.p-hero__visual-fade {
  position: absolute;
  inset: 622px 0 auto;
  height: 635px;
  background-image: linear-gradient(to top, var(--color-ink-dark) 77%, transparent 100%);
}

/* --- Watermark --- */
.p-hero__watermark {
  position: absolute;
  inset: 0 0 auto;
  height: 0;
  font-family: var(--font-en);
  font-size: 0;
  font-weight: 900;
  font-kerning: none;
  line-height: 1;
  white-space: nowrap;
  opacity: .08;
}

.p-hero__watermark-line {
  position: absolute;
  transform-origin: 0 0;
}

.p-hero__watermark-line--a {
  top: 821.17px;
  left: calc(50% - 635.78px);
  font-size: 195.24px;
  transform: skewY(-9.06deg) scaleX(.9035);
}

.p-hero__watermark-line--b {
  top: 1038.51px;
  left: calc(50% - 613.18px);
  font-size: 182.39px;
  transform: skewY(-9.06deg) scaleX(.8925);
}

/* --- Header logo --- */
.p-hero__head {
  position: relative;
  width: fit-content;
  margin-inline: auto calc(50% - 640px);
  padding: 24px 20px 0 0;
}

.p-hero__logo {
  width: 198px;
  height: auto;
}

/* --- Lead (h1) --- */
.p-hero__lead {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 596px;
  margin: -4.1px 0 0 calc(50% - 557px);
  font-weight: 700;
}

.p-hero__eyebrow {
  margin: 13.87px 0 0 17.22px;
  font-size: 36.7577px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: .11em;
}

.p-hero__frac {
  position: relative;
  display: inline-block;
  width: 49.15px;
  height: 0;
  letter-spacing: normal;
}

.p-hero__frac-num,
.p-hero__frac-den {
  position: absolute;
  font-weight: 700;
  line-height: 1;
}

.p-hero__frac-num {
  top: -44.97px;
  left: 2.07px;
}

.p-hero__frac-den {
  top: -23.25px;
  left: 29.44px;
}

.p-hero__frac-bar {
  position: absolute;
  top: -35.61px;
  left: 7.9px;
  width: 36.25px;
  height: 36.26px;
}

.p-hero__title {
  line-height: 2;
}

.p-hero__title-lg,
.p-hero__title-sm,
.p-hero__title--b,
.p-hero__title--c {
  transform: skewX(-6.33deg);
  transform-origin: 0 69.25%;
}

.p-hero__title--a {
  position: relative;
  margin: -48.52px 0 0 7px;
  font-size: 118.1044px;
}

.p-hero__title-lg,
.p-hero__title-sm {
  display: inline-block;
}

.p-hero__title-sm {
  font-size: .6364em;
}

.p-hero__underline {
  position: absolute;
  top: 155.28px;
  left: 4.62px;
  width: 240.87px;
  height: auto;
}

.p-hero__title--b {
  margin: -67.79px 0 0 106.12px;
  font-size: 87.8535px;
}

.p-hero__title--c {
  margin: -56.01px 0 0 38.53px;
  font-size: 79.4342px;
}

/* --- Offer bands --- */
.p-hero__offer {
  position: relative;
  margin: 37.1px 0 0 calc(50% - 638px);
}

.p-hero__offer-row {
  display: flex;
  align-items: flex-start;
  width: fit-content;
  background-color: var(--color-accent);
}

.p-hero__offer-row--a {
  min-width: 418.5px;
  min-height: 75.34px;
  padding-left: 39.7px;
}

.p-hero__offer-row--b {
  min-width: 290.07px;
  min-height: 75.34px;
  padding-left: 39.69px;
}

.p-hero__check {
  flex-shrink: 0;
}

.p-hero__check--yellow {
  width: 27.77px;
  height: 22.5px;
  color: var(--color-yellow);
}

.p-hero__offer-label,
.p-hero__offer-value,
.p-hero__offer-unit {
  line-height: 1;
}

.p-hero__offer-row--a .p-hero__check {
  margin-top: 29.22px;
}

.p-hero__offer-row--a .p-hero__offer-label {
  margin: 25.6px 0 0 14.88px;
  font-size: 29.1057px;
}

.p-hero__offer-row--a .p-hero__offer-value {
  margin: 12.79px 0 0 9.9px;
  font-size: 49.6534px;
}

.p-hero__offer-note {
  display: inline-flex;
  align-items: flex-start;
  margin: 25.97px 0 0 5.95px;
}

.p-hero__offer-paren {
  font-family: var(--font-inter);
  font-size: 30.2683px;
  font-weight: 300;
  line-height: 1;
}

.p-hero__offer-paren--close {
  margin-left: -1.65px;
}

.p-hero__offer-regular {
  margin-left: 6.55px;
  font-size: 13.7025px;
  line-height: 1.2409;
}

.p-hero__offer-row--b .p-hero__check {
  margin-top: 28.83px;
}

.p-hero__offer-row--b .p-hero__offer-label {
  margin: 24.4px 0 0 8.13px;
  font-size: 32.5335px;
}

.p-hero__offer-row--b .p-hero__offer-value {
  margin: -.76px 0 0 5.3px;
  font-size: 68.4614px;
}

.p-hero__offer-row--b .p-hero__offer-unit {
  margin: 26.39px 0 0 2.91px;
  font-size: 32.5335px;
  font-weight: 700;
}

/* --- Intro --- */
.p-hero__intro {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-top: 91.36px;
}

.p-hero__intro-copy {
  min-width: 0;
  margin: 11px 0 0 calc(50% - 540px);
}

.p-hero__intro-lead-a,
.p-hero__intro-lead-b {
  display: block;
  font-size: 33.0376px;
  line-height: 2;
  letter-spacing: .03em;
}

.p-hero__intro-lead-a {
  margin-left: 3px;
}

.p-hero__intro-lead-b {
  margin-top: -31.83px;
}

.p-hero__intro-strong,
.p-hero__intro-em {
  font-size: 1.33163em;
}

.p-hero__intro-em {
  font-weight: 700;
  color: var(--p-hero-em);
}

.p-hero__intro-text {
  margin-top: 28.79px;
  font-size: 17.7898px;
  line-height: 1.9112;
}

.p-hero__intro-figure {
  flex-shrink: 0;
  margin-right: calc(50% - 640px);
  width: 614.61px;
  height: 299px;
  overflow: hidden;
  border-radius: 13.84px 0 0 13.84px;
}

@media (min-width: 1281px) {
  .p-hero__intro-figure {
    border-radius: 13.84px;
  }
}

.p-hero__intro-figure img {
  width: 616px;
  max-width: none;
  height: 335px;
  margin: -18px 0 0 -1.39px;
  object-fit: cover;
  filter: brightness(.838);
}

/* --- Stats --- */
.p-hero .global-inner {
  position: relative;
  margin-top: 42px;
}

.p-hero__stats {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 812.4px;
  margin-inline: auto;
}

.p-hero__stat {
  display: flex;
  align-items: flex-start;
  padding-left: 9.26px;
  padding-bottom: 14px;
  border-bottom: 1.2px solid var(--color-accent);
}

.p-hero__stat--a {
  min-width: 363.6px;
  min-height: 71.42px;
}

.p-hero__stat--b {
  min-width: 414px;
  min-height: 72.05px;
}

.p-hero__check--accent {
  width: 26.74px;
  height: 21.7px;
  color: var(--color-accent);
}

.p-hero__stat-label,
.p-hero__stat-value {
  line-height: 1;
}

.p-hero__stat-label {
  font-size: 21.6493px;
}

.p-hero__stat-value {
  font-size: 41.784px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.p-hero__stat-num {
  letter-spacing: -.03em;
}

.p-hero__stat-comma {
  font-size: .72842em;
}

.p-hero__stat-yen {
  font-size: .65637em;
  font-weight: 400;
}

.p-hero__stat-tilde {
  font-family: var(--font-noto);
  font-size: .89029em;
  font-weight: 500;
}

.p-hero__stat-dash {
  margin-inline: 4.96px 5.22px;
  font-size: .89029em;
}

.p-hero__stat--a .p-hero__check {
  margin-top: 31.1px;
}

.p-hero__stat--a .p-hero__stat-label {
  margin: 40.96px 0 0 14.15px;
}

.p-hero__stat--a .p-hero__stat-value {
  margin: 20.06px 0 0 10.25px;
}

.p-hero__stat--b .p-hero__check {
  margin-top: 29.89px;
}

.p-hero__stat--b .p-hero__stat-value {
  margin: 19.52px 0 0 14.74px;
}

.p-hero__stat--b .p-hero__stat-label {
  margin: 34.43px 0 0 6.06px;
}

/* --- Note / CTA / More --- */
.p-hero__note {
  margin-top: 66px;
  font-size: 24.8918px;
  font-weight: 700;
  line-height: 2;
  text-align: center;
}

.p-hero__note-em {
  font-size: 1.25003em;
}

.p-hero__cta {
  display: flex;
  justify-content: center;
  margin-top: 8.82px;
}

.p-hero__more {
  margin-top: 40.62px;
  font-size: 23.1867px;
  line-height: 1;
  text-align: center;
}

.p-hero__more-link {
  display: inline-block;
  padding-bottom: 5.53px;
  border-bottom: 2px solid var(--color-white);
}

/* =========================================
 * 01 Hero / SP
 * ========================================= */
@media (max-width: 768px) {
  .p-hero {
    zoom: 1;
  }

  .p-hero {
    padding-bottom: calc(var(--spx) * 74);
  }

  .p-hero::before {
    height: calc(var(--spx) * 4);
  }

  .p-hero__visual {
    height: calc(var(--spx) * 969);
  }

  .p-hero__visual-photo {
    top: calc(var(--spx) * -5);
    left: calc(var(--spx) * -1);
    width: calc(var(--spx) * 752);
    transform: none;
  }

  .p-hero__visual-tint,
  .p-hero__visual-shade {
    height: calc(var(--spx) * 501);
  }

  .p-hero__visual-desat {
    position: absolute;
    inset: 0 auto auto 0;
    display: block;
    width: calc(var(--spx) * 424);
    height: calc(var(--spx) * 538);
    background-color: var(--p-hero-desat);
    opacity: .5;
    mix-blend-mode: saturation;
  }

  .p-hero__visual-fade {
    inset: calc(var(--spx) * 334) 0 auto;
    height: calc(var(--spx) * 635);
  }

  .p-hero__watermark-line--a {
    top: calc(var(--spx) * 605.61);
    left: calc(var(--spx) * -9.18);
    font-size: min(calc(var(--spx) * 90.71), 145px);
  }

  .p-hero__watermark-line--b {
    top: calc(var(--spx) * 707.14);
    left: calc(var(--spx) * 1.15);
    font-size: min(calc(var(--spx) * 84.74), 136px);
  }

  .p-hero__head {
    margin-left: 0;
    margin-right: auto;
    padding: calc(var(--spx) * 21.24) calc(var(--spx) * 14.57) 0;
  }

  .p-hero__logo {
    width: calc(var(--spx) * 142.43);
  }

  .p-hero__lead {
    width: calc(var(--spx) * 408.96);
    margin: calc(var(--spx) * 31) 0 0 calc(var(--spx) * 15);
  }

  .p-hero__eyebrow {
    margin: calc(var(--spx) * 9.5) 0 0 calc(var(--spx) * 11.83);
    font-size: min(calc(var(--spx) * 25.1786), 40px);
  }

  .p-hero__frac {
    width: calc(var(--spx) * 33.67);
  }

  .p-hero__frac-num {
    top: calc(var(--spx) * -30.8);
    left: calc(var(--spx) * 1.42);
  }

  .p-hero__frac-den {
    top: calc(var(--spx) * -15.92);
    left: calc(var(--spx) * 20.17);
  }

  .p-hero__frac-bar {
    top: calc(var(--spx) * -24.4);
    left: calc(var(--spx) * 5.42);
    width: calc(var(--spx) * 24.83);
    height: calc(var(--spx) * 24.84);
  }

  .p-hero__title--a {
    margin: calc(var(--spx) * -31.86) 0 0 calc(var(--spx) * 4);
    font-size: min(calc(var(--spx) * 80.9), 130px);
  }

  .p-hero__underline {
    top: calc(var(--spx) * 105);
    left: calc(var(--spx) * 4);
    width: calc(var(--spx) * 165);
  }

  .p-hero__title--b {
    margin: calc(var(--spx) * -47.8) 0 0 calc(var(--spx) * 73);
    font-size: min(calc(var(--spx) * 60.18), 97px);
  }

  .p-hero__title--c {
    margin: calc(var(--spx) * -38.36) 0 0 calc(var(--spx) * 27);
    font-size: min(calc(var(--spx) * 54.41), 87px);
  }

  .p-hero__offer {
    margin: calc(var(--spx) * 21.3) 0 0;
  }

  .p-hero__offer-row--a {
    min-width: calc(var(--spx) * 310);
    min-height: calc(var(--spx) * 55.81);
    padding-left: calc(var(--spx) * 29.41);
  }

  .p-hero__offer-row--b {
    min-width: calc(var(--spx) * 214.87);
    min-height: calc(var(--spx) * 55.81);
    padding-left: calc(var(--spx) * 29.41);
  }

  .p-hero__check--yellow {
    width: calc(var(--spx) * 20.57);
    height: calc(var(--spx) * 16.67);
  }

  .p-hero__offer-row--a .p-hero__check {
    margin-top: calc(var(--spx) * 21.64);
  }

  .p-hero__offer-row--a .p-hero__offer-label {
    margin: calc(var(--spx) * 20.81) 0 0 calc(var(--spx) * 11.02);
    font-size: calc(var(--spx) * 21.56);
  }

  .p-hero__offer-row--a .p-hero__offer-value {
    margin: calc(var(--spx) * 11.58) 0 0 calc(var(--spx) * 7);
    font-size: min(calc(var(--spx) * 36.78), 59px);
  }

  .p-hero__offer-note {
    margin: calc(var(--spx) * 19.01) 0 0 calc(var(--spx) * 3);
  }

  .p-hero__offer-paren {
    font-size: calc(var(--spx) * 22.42);
  }

  .p-hero__offer-paren--close {
    margin-left: calc(var(--spx) * -1.22);
  }

  .p-hero__offer-regular {
    margin-left: calc(var(--spx) * 5);
    font-size: calc(var(--spx) * 10.15);
    line-height: 1.2808;
  }

  .p-hero__offer-row--b .p-hero__check {
    margin-top: calc(var(--spx) * 21.36);
  }

  .p-hero__offer-row--b .p-hero__offer-label {
    margin: calc(var(--spx) * 17.74) 0 0 calc(var(--spx) * 6.02);
    font-size: calc(var(--spx) * 24.1);
  }

  .p-hero__offer-row--b .p-hero__offer-value {
    margin: calc(var(--spx) * 2.06) 0 0 calc(var(--spx) * 5);
    font-size: min(calc(var(--spx) * 50.71), 81px);
  }

  .p-hero__offer-row--b .p-hero__offer-unit {
    margin: calc(var(--spx) * 19.44) 0 0 calc(var(--spx) * 1.19);
    font-size: calc(var(--spx) * 24.1);
  }

  .p-hero__intro {
    display: block;
    margin-top: calc(var(--spx) * 49.26);
  }

  .p-hero__intro-copy {
    margin: 0 0 0 calc(var(--spx) * 35);
  }

  .p-hero__intro-lead-a,
  .p-hero__intro-lead-b {
    font-size: calc(var(--spx) * 26);
  }

  .p-hero__intro-lead-b {
    margin-top: calc(var(--spx) * -25.05);
  }

  .p-hero__intro-text {
    margin-top: calc(var(--spx) * .69);
    font-size: calc(var(--spx) * 14);
    line-height: 1.9286;
  }

  .p-hero__intro-figure {
    width: calc(var(--spx) * 444);
    height: calc(var(--spx) * 216);
    margin: calc(var(--spx) * 26.88) 0 0 calc(var(--spx) * 36);
    border-radius: calc(var(--spx) * 10) 0 0 calc(var(--spx) * 10);
  }

  .p-hero__intro-figure img {
    width: calc(var(--spx) * 445);
    height: calc(var(--spx) * 242);
    margin: calc(var(--spx) * -13) 0 0 calc(var(--spx) * -1);
  }

  .p-hero .global-inner {
    margin-top: calc(var(--spx) * 35);
  }

  .p-hero__stats {
    flex-direction: column;
    align-items: flex-start;
    width: calc(var(--spx) * 345);
    margin-inline: auto;
  }

  .p-hero__stat {
    padding-left: calc(var(--spx) * 7.72);
    padding-bottom: 14px;
  }

  .p-hero__stat--a {
    min-width: calc(var(--spx) * 303);
    min-height: calc(var(--spx) * 60);
    border-bottom-width: 1px;
  }

  .p-hero__stat--b {
    min-width: calc(var(--spx) * 345);
    min-height: calc(var(--spx) * 63.95);
    border-bottom-width: 1px;
  }

  .p-hero__check--accent {
    width: calc(var(--spx) * 22.29);
    height: calc(var(--spx) * 18.08);
  }

  .p-hero__stat-label {
    font-size: calc(var(--spx) * 18.04);
  }

  .p-hero__stat-value {
    font-size: min(calc(var(--spx) * 34.82), 56px);
  }

  .p-hero__stat-dash {
    margin-inline: calc(var(--spx) * 4.64) calc(var(--spx) * 4.35);
  }

  .p-hero__stat--a .p-hero__check {
    margin-top: calc(var(--spx) * 25.92);
  }

  .p-hero__stat--a .p-hero__stat-label {
    margin: calc(var(--spx) * 34.13) 0 0 calc(var(--spx) * 11.78);
  }

  .p-hero__stat--a .p-hero__stat-value {
    margin: calc(var(--spx) * 17.39) 0 0 calc(var(--spx) * 8.54);
  }

  .p-hero__stat--b .p-hero__check {
    margin-top: calc(var(--spx) * 28.92);
  }

  .p-hero__stat--b .p-hero__stat-value {
    margin: calc(var(--spx) * 20.11) 0 0 calc(var(--spx) * 12.27);
  }

  .p-hero__stat--b .p-hero__stat-label {
    margin: calc(var(--spx) * 32.7) 0 0 calc(var(--spx) * 3.21);
  }

  .p-hero__note {
    margin-top: calc(var(--spx) * 39.05);
    font-size: calc(var(--spx) * 16);
  }

  .p-hero__cta {
    margin-top: calc(var(--spx) * 5.86);
  }

  .p-hero__more {
    margin-top: calc(var(--spx) * 31.72);
    font-size: calc(var(--spx) * 17.77);
  }

  .p-hero__more-link {
    padding-bottom: calc(var(--spx) * 3.77);
  }
}

/* =========================================
 * 02. Worries
 * ========================================= */
.p-worries {
  position: relative;
  overflow-x: clip;
  padding-block: 60.33px 116.76px;
  background-color: var(--color-pale-blue);
  color: var(--color-ink);
}

.p-worries__deco {
  position: absolute;
  top: -33px;
  right: max(calc(50% - 671px), -31px);
  width: min(300px, calc(max(50vw, 500px) - 315px));
}

.p-worries__label {
  width: calc(max(50vw, 500px) - 196px);
  margin-left: calc(438px - max(50vw, 500px));
  padding-bottom: 1.29px;
  border-bottom: 0.75px solid var(--color-ink);
  text-align: right;
}

.p-worries__label-en {
  font-family: var(--font-en);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.1em;
}

.p-worries__title {
  margin-top: 15.79px;
  font-size: 37px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
}

.p-worries__title-line {
  line-height: 1.4865;
}

.p-worries__title-line--em {
  line-height: 1.1951;
}

.p-worries__title-line--tail {
  margin-left: 16.07px;
  font-size: 43.38px;
  line-height: 1.1527;
}

.p-worries__title-em {
  font-size: 51.04px;
  font-weight: 700;
}

.p-worries__title-ni {
  font-weight: 700;
}

.p-worries__quote {
  display: inline-block;
  width: 16.08px;
  margin-inline: 13.93px 0.84px;
  vertical-align: 30.08px;
}

.p-worries__quote--close {
  margin-inline: 3.92px;
}

.p-worries__quote--sm {
  width: 10px;
  margin-inline: 2.88px 0.13px;
  vertical-align: 14.7px;
}

.p-worries__quote--close-sm {
  margin-inline: 1.31px 1.7px;
}

.p-worries__list {
  display: flex;
  flex-direction: column;
  gap: 15.34px;
  width: 478px;
  margin: 27.5px auto 0;
  translate: 19px;
}

.p-worries__item {
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 34.5px;
  padding-inline: 22.81px 10px;
  background-color: var(--color-accent);
  color: var(--color-white);
  font-size: 21.73px;
  line-height: 1.5;
}

.p-worries__lead {
  width: fit-content;
  max-width: calc(100% - 38px);
  margin: 30.49px auto 0;
  font-size: 20.04px;
  font-weight: 700;
  line-height: 1.5557;
  text-align: center;
  translate: 19px;
}

.p-worries__lead-line--2 {
  margin-left: 4.99px;
  font-size: 23.49px;
}

.p-worries__lead-em {
  font-size: 27.64px;
}

.p-worries__tsume {
  letter-spacing: -0.3em;
}

.p-worries__cta {
  margin: 31.27px auto 0;
  translate: -7.8px;
}

@media (max-width: 768px) {
  .p-worries {
    padding-block: calc(var(--spx) * 48.07) calc(var(--spx) * 88.23);
  }

  .p-worries__deco {
    top: calc(var(--spx) * -19);
    right: calc(var(--spx) * -11);
    width: calc(var(--spx) * 222);
  }

  .p-worries__label {
    width: fit-content;
    margin-left: calc(var(--spx) * -30);
    padding-right: calc(var(--spx) * 10);
    padding-bottom: calc(var(--spx) * 1.73);
    padding-left: calc(var(--spx) * 31);
    text-align: left;
  }

  .p-worries__label-en {
    font-size: clamp(13px, calc(var(--spx) * 15), 24px);
  }

  .p-worries__title {
    margin-top: calc(var(--spx) * 9.75);
    font-size: clamp(29px, calc(var(--spx) * 37), 60px);
    text-align: left;
  }

  .p-worries__title-line {
    display: block;
  }

  .p-worries__title-line--tail {
    margin-left: 0;
    font-size: clamp(34px, calc(var(--spx) * 43.38), 70px);
  }

  .p-worries__title-em {
    font-size: clamp(40px, calc(var(--spx) * 51.04), 83px);
  }

  .p-worries__quote {
    width: calc(var(--spx) * 16.08);
    margin-inline: calc(var(--spx) * 4) calc(var(--spx) * 0.84);
    vertical-align: calc(var(--spx) * 30.08);
  }

  .p-worries__quote--close {
    margin-inline: calc(var(--spx) * 3.92);
  }

  .p-worries__quote--sm {
    width: calc(var(--spx) * 10);
    margin-inline: calc(var(--spx) * 2.88) calc(var(--spx) * 0.13);
    vertical-align: calc(var(--spx) * 14.7);
  }

  .p-worries__quote--close-sm {
    margin-inline: calc(var(--spx) * 1.31) calc(var(--spx) * 1.7);
  }

  .p-worries__list,
  .p-worries__lead,
  .p-worries__cta {
    translate: none;
  }

  .p-worries__list {
    gap: calc(var(--spx) * 12);
    width: calc(var(--spx) * 374);
    margin-top: calc(var(--spx) * 35.5);
  }

  .p-worries__item {
    min-height: calc(var(--spx) * 27);
    padding-inline: calc(var(--spx) * 18) calc(var(--spx) * 8);
    font-size: clamp(13px, calc(var(--spx) * 17), 27px);
  }

  .p-worries__lead {
    width: auto;
    max-width: none;
    margin-top: calc(var(--spx) * 34.14);
    font-size: clamp(17px, calc(var(--spx) * 20.04), 32px);
  }

  .p-worries__lead-line {
    display: block;
  }

  .p-worries__lead-line--2 {
    margin-left: 0;
    font-size: clamp(19px, calc(var(--spx) * 23.49), 38px);
  }

  .p-worries__lead-em {
    font-size: clamp(22px, calc(var(--spx) * 27.64), 45px);
  }

  .p-worries__cta {
    margin-top: calc(var(--spx) * 27.26);
  }
}

/* =========================================
 * 03. Price / 比較
 * ========================================= */
.p-price {
  --price-line: #E0DBDA;
  --price-cell-line: #D1D1D1;
  --price-head-line: #ADADAD;
  --price-head-bg: #6D6D6D;
  --price-ours-bg: #FFF6ED;
  --price-sub: #898989;
  --price-card-line: #E4604A;

  position: relative;
  display: flow-root;
  overflow-x: clip;
}

/* --- lead --- */
.p-price__lead {
  display: grid;
  width: 100%;
  max-width: var(--pc-layout-width);
  margin-top: -44px;
  margin-inline: auto;
}

.p-price__lead-photo {
  grid-area: 1 / 1;
  align-self: start;
  justify-self: end;
  width: 648px;
  height: 339.49px;
  overflow: hidden;
}

.p-price__lead-photo img {
  width: 654.02px;
  max-width: none;
  margin: -17.51px 0 0 -2.69px;
  filter: brightness(0.8383);
}

.p-price__catch {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  grid-area: 1 / 1;
  align-self: start;
  justify-self: start;
  gap: 14px;
  width: 650px;
  margin-top: 90px;
  color: var(--color-white);
  font-weight: 400;
  line-height: 1;
}

.p-price__bar {
  display: flex;
  align-items: center;
}

.p-price__bar--lead {
  min-width: 535px;
  min-height: 41px;
  padding-inline: 110px 8px;
  background-color: var(--color-text);
  font-size: 26.9948px;
}

.p-price__bar-em {
  font-weight: 700;
}

.p-price__bar--main {
  min-width: 508px;
  min-height: 85px;
  margin-left: 104px;
  padding-block: 12px 2.1px;
  padding-inline: 10.52px 11.58px;
  background-color: var(--color-accent);
  font-size: 70.8956px;
  font-weight: 700;
}

.p-price__bar--tail {
  min-width: 146px;
  min-height: 61px;
  margin-left: auto;
  padding-inline: 8px 6px;
  background-color: var(--color-text);
  font-size: 49.8185px;
  font-weight: 700;
}

.p-price__quote {
  flex-shrink: 0;
  width: 23.47px;
  height: 17.35px;
  margin-right: 9.61px;
}

.p-price__quote--close {
  margin-right: 0;
  margin-left: 3.45px;
}

.p-price__lead-text {
  margin-top: 38.51px;
}

.p-price__accent {
  color: var(--color-accent);
}

/* --- 3 ways --- */
.p-price__ways {
  display: grid;
  grid-template-columns: repeat(2, 424px);
  column-gap: 27px;
  row-gap: 29px;
  margin-top: 31px;
}

.p-price__way--ours {
  grid-column: 1 / -1;
}

.p-price__way-tab {
  display: flex;
  align-items: center;
  width: 167px;
  min-height: 26px;
  padding-left: 17px;
  background-color: var(--color-text);
  clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 100%, 0 100%);
  color: var(--color-white);
  font-size: 16px;
  line-height: 1;
}

.p-price__way--ours .p-price__way-tab {
  width: 290px;
  min-height: 36px;
  padding-left: 13px;
  background-color: var(--color-accent);
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 100%, 0 100%);
  font-size: 23px;
  font-weight: 700;
}

.p-price__way-list {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 119px;
  padding: 16px 0 16px 13px;
  background-color: var(--color-pale-blue);
  color: var(--color-ink);
  font-size: 16px;
  line-height: 1.8125;
}

.p-price__way--ours .p-price__way-list {
  min-height: 170px;
  padding: 21px 0 21px 17px;
  border: 2px solid var(--color-accent);
  background-color: var(--color-white);
  color: var(--color-text);
  font-size: 18px;
  line-height: 1.7222;
}

.p-price__way-list li {
  display: flex;
}

.p-price__way-list li::before {
  content: "";
  flex-shrink: 0;
  width: 4px;
  height: 4px;
  margin-top: 12.5px;
  margin-inline: 10px;
  border-radius: 50%;
  background-color: currentcolor;
}

.p-price__way--ours .p-price__way-list li::before {
  width: 5px;
  height: 5px;
  margin-top: 13px;
  margin-inline: 11px;
}

/* --- plan (PRICE) --- */
.p-price__plan {
  min-height: 381px;
  margin-top: 51px;
  background-color: var(--color-warm-gray);
  background-image:
    repeating-linear-gradient(to right, var(--price-line) 0 1px, transparent 1px 11px),
    repeating-linear-gradient(to bottom, var(--price-line) 0 1px, transparent 1px 11px);
  background-position: 1px 3px;
}

.p-price__plan-stage {
  display: grid;
  width: 100%;
  max-width: var(--pc-layout-width);
  margin-inline: auto;
}


.p-price__plan-inner {
  display: grid;
  grid-area: 1 / 1;
}

.p-price__plan-label {
  grid-area: 1 / 1;
  align-self: start;
  justify-self: start;
  margin: -5px 0 0 -37.6px;
  color: var(--color-accent);
  font-family: var(--font-en);
  font-size: 105px;
  font-weight: 900;
  line-height: 1.4053;
  writing-mode: vertical-rl;
}

.p-price__plan-content {
  display: grid;
  grid-area: 1 / 1;
  grid-template-areas:
    "title cards"
    "lead  cards"
    "note  cards";
  grid-template-columns: 341px 1fr;
  grid-template-rows: auto auto 1fr;
}

.p-price__plan-title {
  grid-area: title;
  margin-top: 61.5px;
  color: var(--color-ink);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.3929;
}

.p-price__kern {
  letter-spacing: -0.3em;
}

.p-price__plan-lead {
  grid-area: lead;
  width: 324px;
  margin-top: 15.5px;
  color: var(--color-ink);
  font-size: 14px;
  line-height: 1.6429;
}

.p-price__plan-note {
  grid-area: note;
  align-self: start;
  width: 341px;
  margin-top: 49px;
  color: var(--color-ink);
  font-family: Inter, var(--font-jp);
  font-size: 9.798px;
  line-height: 1.2102;
}

/* --- price cards --- */
.p-price__cards {
  grid-area: cards;
  align-self: start;
  justify-self: end;
  width: 656px;
  margin-top: 72.085px;
  margin-right: -271px;
}

@media (min-width: 769px) and (max-width: 1279.98px) {
  .p-price__cards {
    justify-self: start;
    margin-right: 0;
    margin-left: 150px;
    zoom: min(1, calc((55.390625vw - 53px) / 656px));
  }
}

.p-price__card {
  background-color: var(--color-white);
}

.p-price__card--market {
  --price-card-w: 589.4px;

  width: var(--price-card-w);
  min-height: 127.7px;
  margin-left: 34.3px;
  padding: 25px 40px 0 32.9px;
  border: 1.13px solid var(--color-gray);
  border-left-width: 7px;
  transform: rotate(2.272deg);
  transform-origin: calc(var(--price-card-w) / 2) center;
}

.p-price__card--ours {
  position: relative;
  z-index: 1;
  width: 656px;
  min-height: 146px;
  margin-top: -25.785px;
  padding: 28.1px 70px 0 23px;
  border: 1.2px solid var(--price-card-line);
  border-left: 7px solid var(--color-accent);
}

.p-price__card-label {
  width: fit-content;
  color: var(--color-ink);
  font-size: 16.3127px;
  line-height: 1.2103;
}

.p-price__card--market .p-price__card-label {
  margin-left: 1.1px;
}

.p-price__card--market .p-price__card-amount {
  margin-top: -1px;
}

.p-price__card--ours .p-price__card-label {
  color: var(--color-accent);
  font-size: 22.0105px;
  font-weight: 700;
}

.p-price__card-note {
  font-size: 0.857em;
}

.p-price__card--ours .p-price__card-note {
  font-size: 0.6352em;
}

.p-price__card-amount {
  width: fit-content;
  overflow-wrap: anywhere;
  color: var(--color-gray);
  font-size: 33.0333px;
  font-weight: 700;
  line-height: 1.2103;
}

.p-price__card--ours .p-price__card-amount {
  margin-top: 2.06px;
  background-image: linear-gradient(var(--color-yellow) 0 0);
  background-position: 0 47px;
  background-repeat: no-repeat;
  background-size: 100% 13px;
  color: var(--color-accent);
  font-family: Inter, var(--font-jp);
  font-size: 56.0342px;
  line-height: 1.2102;
}

.p-price__card-comma {
  font-size: 0.6436em;
}

.p-price__card--ours .p-price__card-comma {
  font-size: 0.6285em;
}

.p-price__card-yen {
  font-size: 0.5799em;
}

.p-price__card--ours .p-price__card-yen {
  font-size: 0.5714em;
}

.p-price__card-wave {
  font-family: var(--font-noto);
}

/* --- shops (comparison table) --- */
.p-price__shops {
  min-height: 569px;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
    url("../images/top-compare-bg.jpg");
  background-position: 0 0, calc(50% - 3.5px) -13px;
  background-repeat: no-repeat;
  background-size: auto, max(1373px, 100%) 589px;
}

.p-price__shops-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-block: 50px 29.3px;
  padding-right: 31px;
}

.p-price__shops-tag {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 138px;
  min-height: 20px;
  background-color: var(--color-text);
  color: var(--color-white);
  font-size: 16px;
  line-height: 1;
}

.p-price__shops-title {
  margin-top: 16px;
  font-size: 46px;
  font-weight: 400;
  line-height: 1;
}

.p-price__table-wrap {
  margin-top: 36px;
}

.p-price__table {
  width: 433px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 2px 0;
  text-align: center;
}

.p-price__col {
  width: 115px;
}

.p-price__col--head {
  width: 65px;
}

.p-price__col--ours {
  width: 128px;
}

.p-price__th {
  padding: 0;
  vertical-align: bottom;
  font-weight: 400;
}

.p-price__th-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 41px;
  background-color: var(--color-text);
  color: var(--color-white);
  font-size: 14px;
  line-height: 1.36;
  text-align: center;
}

.p-price__th--ours .p-price__th-box {
  min-height: 55px;
  background-color: var(--color-accent);
  font-size: 12px;
  line-height: 1.16;
}

.p-price__th-name {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.16;
}

.p-price__corner,
.p-price__rowhead,
.p-price__td {
  padding: 0;
  vertical-align: middle;
}

.p-price__rowhead {
  background-color: var(--price-head-bg);
  color: var(--color-white);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.38;
}

.p-price__rowhead--r1 { height: 81px; }
.p-price__rowhead--r2 { height: 58px; }
.p-price__rowhead--r3 { height: 66px; }
.p-price__rowhead--r4 { height: 74px; }

.p-price__rowhead--line {
  background-image: linear-gradient(to right, transparent 0 8.5px, var(--price-head-line) 8.5px calc(100% - 8.5px), transparent calc(100% - 8.5px));
  background-position: top;
  background-repeat: no-repeat;
  background-size: 100% 1px;
}

.p-price__td {
  background-color: var(--color-white);
}

.p-price__td--ours {
  background-color: var(--price-ours-bg);
  color: var(--color-accent);
  font-weight: 700;
}

.p-price__td--line {
  background-image: linear-gradient(to right, transparent 0 8.5px, var(--price-cell-line) 8.5px calc(100% - 8.5px), transparent calc(100% - 8.5px));
  background-position: top;
  background-repeat: no-repeat;
  background-size: 100% 1px;
}

.p-price__td--ours.p-price__td--line {
  background-image: linear-gradient(to right, transparent 0 15px, var(--color-accent) 15px calc(100% - 15px), transparent calc(100% - 15px));
}

.p-price__td-main,
.p-price__td-sub {
  display: block;
  font-size: 14px;
  line-height: 1;
}

.p-price__td-big {
  font-size: 20px;
}

.p-price__td-sub {
  margin-top: 3px;
  font-size: 11px;
}

.p-price__td-sub--gray {
  color: var(--price-sub);
}

.p-price__shops-note {
  width: 426px;
  margin-top: 14px;
  font-family: Inter, var(--font-jp);
  font-size: 9.798px;
  line-height: 1.2102;
}

/* =========================================
 * SP
 * ========================================= */
@media (max-width: 768px) {
  .p-price .global-inner {
    padding-inline: 0;
  }

  .p-price__lead {
    display: block;
    margin-top: calc(var(--spx) * -21);
  }

  .p-price__lead-photo {
    width: 100%;
    height: calc(var(--spx) * 252);
  }

  .p-price__lead-photo img {
    width: calc(var(--spx) * 485);
    margin: calc(var(--spx) * -13) 0 0 calc(var(--spx) * -2);
  }

  .p-price__catch {
    gap: calc(var(--spx) * 12);
    width: calc(var(--spx) * 482);
    margin-top: calc(var(--spx) * 37);
  }

  .p-price__bar--lead {
    min-width: calc(var(--spx) * 384);
    min-height: calc(var(--spx) * 35);
    padding-inline: calc(var(--spx) * 22) calc(var(--spx) * 8);
    font-size: clamp(16px, calc(var(--spx) * 23), 32px);
  }

  .p-price__bar--main {
    min-width: calc(var(--spx) * 433);
    min-height: calc(var(--spx) * 72);
    margin-left: calc(var(--spx) * 17);
    padding-block: calc(var(--spx) * 9.1) calc(var(--spx) * 2.5);
    padding-inline: calc(var(--spx) * 9) calc(var(--spx) * 10);
    font-size: clamp(38px, calc(var(--spx) * 60.4), 85px);
  }

  .p-price__bar--tail {
    min-width: calc(var(--spx) * 124);
    min-height: calc(var(--spx) * 52);
    padding-inline: calc(var(--spx) * 7) calc(var(--spx) * 6);
    font-size: clamp(27px, calc(var(--spx) * 42.45), 59px);
  }

  .p-price__quote {
    width: calc(var(--spx) * 20);
    height: calc(var(--spx) * 15);
    margin-right: calc(var(--spx) * 8.6);
  }

  .p-price__quote--close {
    margin-left: calc(var(--spx) * 3);
  }

  .p-price__lead-text {
    width: calc(var(--spx) * 429);
    margin-top: calc(var(--spx) * 29);
    margin-inline: auto;
    font-size: clamp(14px, calc(var(--spx) * 15), 21px);
  }

  .p-price__ways {
    grid-template-columns: minmax(0, 1fr);
    row-gap: calc(var(--spx) * 24);
    width: calc(var(--spx) * 424);
    margin-top: calc(var(--spx) * 50);
    margin-inline: auto;
  }

  .p-price__way--ours {
    order: 1;
  }

  .p-price__way--gym {
    order: 2;
  }

  .p-price__way-tab {
    width: calc(var(--spx) * 167);
    min-height: calc(var(--spx) * 26);
    padding-left: calc(var(--spx) * 13);
    font-size: clamp(14px, calc(var(--spx) * 16), 22px);
  }

  .p-price__way--ours .p-price__way-tab {
    width: calc(var(--spx) * 290);
    min-height: calc(var(--spx) * 36);
    padding-left: calc(var(--spx) * 13);
    font-size: clamp(18px, calc(var(--spx) * 23), 32px);
  }

  .p-price__way-list {
    min-height: calc(var(--spx) * 116);
    padding: calc(var(--spx) * 14) 0 calc(var(--spx) * 14) calc(var(--spx) * 13);
    font-size: clamp(14px, calc(var(--spx) * 16), 22px);
  }

  .p-price__way--ours .p-price__way-list {
    min-height: calc(var(--spx) * 170);
    padding: calc(var(--spx) * 21) 0 calc(var(--spx) * 21) calc(var(--spx) * 17);
    font-size: clamp(15px, calc(var(--spx) * 18), 25px);
  }

  .p-price__way-list li::before {
    width: calc(var(--spx) * 4);
    height: calc(var(--spx) * 4);
    margin-top: calc(var(--spx) * 12.5);
    margin-inline: calc(var(--spx) * 10);
  }

  .p-price__way--ours .p-price__way-list li::before {
    width: calc(var(--spx) * 5);
    height: calc(var(--spx) * 5);
    margin-top: calc(var(--spx) * 13);
    margin-inline: calc(var(--spx) * 11);
  }

  .p-price__plan {
    min-height: calc(var(--spx) * 544);
    padding-bottom: calc(var(--spx) * 20);
    margin-top: calc(var(--spx) * 58);
    background-position: 7px 2px;
  }

  .p-price__plan-label {
    margin: calc(var(--spx) * -5) 0 0 calc(var(--spx) * -40);
    font-size: clamp(75px, calc(var(--spx) * 122.3), 172px);
  }

  .p-price__plan-content {
    display: block;
    margin-left: calc(var(--spx) * 124);
  }

  .p-price__plan-title {
    margin-top: calc(var(--spx) * 24.5);
    font-size: clamp(20px, calc(var(--spx) * 28), 39px);
  }

  .p-price__plan-lead {
    width: calc(var(--spx) * 324);
    margin-top: calc(var(--spx) * 15.5);
    font-size: clamp(15px, calc(var(--spx) * 14), 20px);
  }

  .p-price__plan-note {
    width: calc(var(--spx) * 341);
    margin-top: calc(var(--spx) * 17);
    font-size: clamp(11px, calc(var(--spx) * 9.798), 14px);
  }

  .p-price__cards {
    width: calc(var(--spx) * 384);
    margin-top: calc(var(--spx) * 40.5);
    margin-right: 0;
  }

  .p-price__card--market {
    --price-card-w: calc(var(--spx) * 358.2);

    width: var(--price-card-w);
    min-height: calc(var(--spx) * 111);
    margin-left: calc(var(--spx) * 28.9);
    padding: calc(var(--spx) * 20) calc(var(--spx) * 33) 0 calc(var(--spx) * 27.1);
    border-width: 0.97px;
    border-left-width: calc(var(--spx) * 6);
    transform: rotate(2.09deg);
  }

  .p-price__card--ours {
    width: calc(var(--spx) * 384);
    min-height: calc(var(--spx) * 125);
    margin-top: calc(var(--spx) * -20.5);
    padding: calc(var(--spx) * 24) calc(var(--spx) * 30) 0 calc(var(--spx) * 19);
    border-width: 1.03px;
    border-left: calc(var(--spx) * 6) solid var(--color-accent);
  }

  .p-price__card-label {
    font-size: clamp(12px, calc(var(--spx) * 14), 20px);
  }

  .p-price__card--market .p-price__card-label {
    margin-left: calc(var(--spx) * 3);
  }

  .p-price__card--ours .p-price__card-label {
    font-size: clamp(15px, calc(var(--spx) * 18.89), 27px);
  }

  .p-price__card-note {
    font-size: 0.857em;
  }

  .p-price__card--ours .p-price__card-note {
    font-size: 0.6352em;
  }

  .p-price__card-amount {
    font-size: clamp(21px, calc(var(--spx) * 28.35), 40px);
  }

  .p-price__card--ours .p-price__card-amount {
    margin-top: calc(var(--spx) * 0.14);
    background-position: 0 calc(var(--spx) * 42);
    background-size: 100% calc(var(--spx) * 11);
    font-size: clamp(33px, calc(var(--spx) * 48.09), 68px);
  }

  .p-price__shops {
    min-height: calc(var(--spx) * 567);
    background-position: 0 0, calc(var(--spx) * -420.9) 0;
    background-size: auto, calc(var(--spx) * 955.8) calc(var(--spx) * 567);
  }

  .p-price__shops-inner {
    padding-block: calc(var(--spx) * 50) calc(var(--spx) * 27.3);
    padding-right: 0;
  }

  .p-price__shops-tag {
    width: calc(var(--spx) * 138);
    min-height: calc(var(--spx) * 20);
    font-size: clamp(14px, calc(var(--spx) * 16), 22px);
  }

  .p-price__shops-title {
    margin-top: calc(var(--spx) * 16);
    font-size: clamp(32px, calc(var(--spx) * 46), 64px);
  }

  .p-price__table-wrap {
    max-width: 100%;
    margin-top: calc(var(--spx) * 36);
    overflow-x: auto;
  }

  .p-price__table {
    width: calc(var(--spx) * 433);
    border-spacing: calc(var(--spx) * 2) 0;
  }

  .p-price__col {
    width: calc(var(--spx) * 115);
  }

  .p-price__col--head {
    width: calc(var(--spx) * 65);
  }

  .p-price__col--ours {
    width: calc(var(--spx) * 128);
  }

  .p-price__th-box {
    min-height: calc(var(--spx) * 41);
    font-size: clamp(12px, calc(var(--spx) * 14), 20px);
  }

  .p-price__th--ours .p-price__th-box {
    min-height: calc(var(--spx) * 55);
    font-size: clamp(11px, calc(var(--spx) * 12), 17px);
  }

  .p-price__th-name {
    font-size: clamp(14px, calc(var(--spx) * 16), 22px);
  }

  .p-price__rowhead {
    font-size: clamp(11px, calc(var(--spx) * 12), 17px);
  }

  .p-price__rowhead--r1 { height: calc(var(--spx) * 81); }
  .p-price__rowhead--r2 { height: calc(var(--spx) * 58); }
  .p-price__rowhead--r3 { height: calc(var(--spx) * 66); }
  .p-price__rowhead--r4 { height: calc(var(--spx) * 74); }

  .p-price__rowhead--line,
  .p-price__td--line {
    background-size: 100% 1px;
  }

  .p-price__td-main,
  .p-price__td-sub {
    font-size: clamp(12px, calc(var(--spx) * 14), 20px);
  }

  .p-price__td-big {
    font-size: clamp(16px, calc(var(--spx) * 20), 28px);
  }

  .p-price__td-sub {
    margin-top: calc(var(--spx) * 3);
    font-size: clamp(10px, calc(var(--spx) * 11), 16px);
  }

  .p-price__shops-note {
    width: calc(var(--spx) * 426);
    margin-top: calc(var(--spx) * 14);
    font-size: clamp(11px, calc(var(--spx) * 9.798), 14px);
  }
}

/* =========================================
 * 04. Reasons
 * ========================================= */
.p-reasons {
  overflow-x: clip;
  padding-block: 82px 75px;
  color: var(--color-ink);
}

.p-reasons__grid {
  --reasons-half: clamp(500px, 50vw, 640px);
  --reasons-photo-w: min(500.775px, calc(var(--reasons-half) - 139.225px));

  display: grid;
  grid-template-columns: var(--reasons-photo-w) 522px;
  grid-template-rows: minmax(193.77px, auto) minmax(247.8px, auto) minmax(247px, auto) minmax(214.43px, auto);
  column-gap: calc(var(--reasons-half) - 73px - var(--reasons-photo-w));
  margin-left: calc(426px - var(--reasons-half));
}

/* --- 見出し --- */
.p-reasons__title {
  display: grid;
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  margin-top: 27px;
}

.p-reasons__stamp {
  grid-area: 1 / 1;
  align-self: start;
  justify-self: start;
  width: 121.526px;
  height: 124px;
}

.p-reasons__title-text {
  grid-area: 1 / 1;
  margin-top: 32.524px;
  margin-left: 39.782px;
  font-size: 49.346px;
  line-height: 1.5993em;
}

.p-reasons__title-lead {
  font-size: 1.3215em;
}

/* --- 本文カラム --- */
.p-reasons__text {
  display: grid;
  grid-column: 2;
  grid-template-columns: 111px 411px;
  grid-template-rows: 59.23px auto auto;
  row-gap: 12px;
  align-self: start;
}

.p-reasons__text--1 {
  grid-row: 2;
}

.p-reasons__text--2 {
  grid-row: 3;
}

.p-reasons__text--3 {
  grid-row: 4;
}

.p-reasons__text::before {
  content: "";
  grid-column: 2;
  grid-row: 1;
  margin-top: 44.48px;
  box-shadow: inset 0 1.5px 0 var(--color-accent);
}

.p-reasons__num {
  position: relative;
  display: grid;
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  color: var(--color-accent);
  font-family: var(--font-en);
  font-weight: 600;
  font-style: italic;
  line-height: 1.4053;
}

.p-reasons__num::before {
  content: "";
  position: absolute;
  top: 33.52px;
  left: 7.97px;
  width: 27.17px;
  height: 16.65px;
  background-color: var(--color-white);
}

.p-reasons__num-figure {
  grid-area: 1 / 1;
  margin-top: 6px;
  margin-left: 19.67px;
  font-size: 54px;
}

.p-reasons__num-label {
  position: relative;
  z-index: 1;
  grid-area: 1 / 1;
  margin-top: 32.5px;
  font-size: 13.15px;
}

.p-reasons__heading {
  grid-column: 1 / -1;
  grid-row: 2;
  font-size: 24px;
}

.p-reasons__desc {
  grid-column: 1 / -1;
  grid-row: 3;
  font-size: 14px;
  line-height: 1.8571;
}

/* --- 写真（左端ブリード） --- */
.p-reasons__photo {
  overflow: hidden;
  grid-column: 1;
  grid-row: 1 / -1;
  align-self: start;
  aspect-ratio: 500.775 / 292.677;
  border-radius: 13.84px;
}

.p-reasons__photo img {
  max-width: none;
}

.p-reasons__photo--1 img {
  width: 119.109181%;
  margin-top: -10.110728%;
  margin-left: -8.460886%;
}

.p-reasons__photo--2 {
  margin-top: 303.709px;
}

.p-reasons__photo--2 img {
  width: 107.765364%;
  margin-top: -3.945684%;
  margin-left: -3.035695%;
}

.p-reasons__photo--3 {
  aspect-ratio: 500.775 / 295.365;
  margin-top: 607.635px;
}

.p-reasons__photo--3 img {
  width: 125.677999%;
  margin-left: -12.443313%;
}

/* =========================================
 * SP
 * ========================================= */
@media (max-width: 768px) {
  .p-reasons {
    padding-block: calc(var(--spx) * 53) calc(var(--spx) * 80);
  }

  .p-reasons__grid {
    display: block;
    margin-left: 0;
  }

  .p-reasons__title {
    margin-top: 0;
  }

  .p-reasons__stamp {
    width: calc(var(--spx) * 93.14);
    margin-left: calc(var(--spx) * 9);
  }

  .p-reasons__title-text {
    margin-top: calc(var(--spx) * 24.93);
    margin-left: calc(var(--spx) * 39.49);
    font-size: clamp(28.5px, calc(var(--spx) * 37.82), 60.5px);
  }

  .p-reasons__text {
    grid-template-columns: calc(var(--spx) * 103.5) 1fr;
    grid-template-rows: calc(var(--spx) * 59.23) auto auto;
    row-gap: calc(var(--spx) * 12);
    margin-top: calc(var(--spx) * 19.27);
  }

  .p-reasons__text--1 {
    margin-top: calc(var(--spx) * 19.68);
  }

  .p-reasons__text::before {
    margin-top: calc(var(--spx) * 44.48);
    margin-right: calc(var(--spx) * -30);
  }

  .p-reasons__num::before {
    top: calc(var(--spx) * 33.52);
    left: calc(var(--spx) * 7.97);
    width: calc(var(--spx) * 27.17);
    height: calc(var(--spx) * 16.65);
  }

  .p-reasons__num-figure {
    margin-top: calc(var(--spx) * 6);
    margin-left: calc(var(--spx) * 19.67);
    font-size: clamp(39.8px, calc(var(--spx) * 54), 86.4px);
  }

  .p-reasons__num-label {
    margin-top: calc(var(--spx) * 32.5);
    font-size: clamp(11.2px, calc(var(--spx) * 13.15), 21px);
  }

  .p-reasons__heading {
    font-size: clamp(20.8px, calc(var(--spx) * 24), 38.4px);
  }

  .p-reasons__desc {
    font-size: clamp(13.8px, calc(var(--spx) * 14), 22.4px);
  }

  .p-reasons__photo {
    width: calc(var(--spx) * 401.82);
    height: calc(var(--spx) * 237);
    margin-top: calc(var(--spx) * 25);
    margin-left: calc(var(--spx) * -30);
    border-radius: 0 calc(var(--spx) * 10) calc(var(--spx) * 10) 0;
  }

  .p-reasons__photo--1 img {
    width: calc(var(--spx) * 483);
    margin-top: calc(var(--spx) * -41);
    margin-left: calc(var(--spx) * -38);
  }

  .p-reasons__photo--2 img {
    width: calc(var(--spx) * 437);
    margin-top: calc(var(--spx) * -16);
    margin-left: calc(var(--spx) * -16);
  }

  .p-reasons__photo--3 img {
    width: calc(var(--spx) * 505);
    margin-left: calc(var(--spx) * -50);
  }
}

/* =========================================
 * 05. CTA band A / B / C（ページ差分）
 * ========================================= */
.p-cta-band-c {
  --cta-pad-bottom: 40.385px;
  --cta-gap-lead: 13.942px;
  --cta-gap-note: 23.158px;
  --cta-gap-btn: 35.282px;
  --cta-lead-lh: 1.5015;
}

@media (max-width: 768px) {

  .p-cta-band-b {
    --cta-pad-bottom: calc(var(--spx) * 42.24);
    --cta-gap-btn: calc(var(--spx) * 18.13);
  }

  .p-cta-band-c {
    --cta-band-h: calc(var(--spx) * 349);
    --cta-pad-top: calc(var(--spx) * 27);
    --cta-pad-bottom: calc(var(--spx) * 41.24);
    --cta-gap-lead: calc(var(--spx) * 17.491);
    --cta-gap-note: calc(var(--spx) * 10);
    --cta-gap-btn: calc(var(--spx) * 26.94);
    --cta-lead-lh: 1.4381;
    --cta-bg-x: calc(var(--spx) * -64.4);
    --cta-bg-top: calc(var(--spx) * -7.02);
    --cta-bg-w: calc(var(--spx) * 613);
  }
}

/* =========================================
 * 06. Flow
 * ========================================= */
.p-flow {
  --u: 1px;
  --grid-line: color-mix(in srgb, var(--color-warm-gray) 25%, transparent);
  position: relative;
  overflow: clip;
  padding-block: calc(var(--u) * 48.5) calc(var(--u) * 64);
  background-color: var(--color-warm-white);
  color: var(--color-ink);
}

.p-flow__deco {
  position: absolute;
  top: calc(var(--u) * -1);
  left: max(calc(50% - 653px), -13px);
  z-index: var(--z-deco);
  color: var(--color-white);
  font-family: var(--font-en);
  font-size: calc(var(--u) * 110.139);
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
  writing-mode: vertical-rl;
  opacity: 0.7;
  transform: scale(0.9388, 0.8885);
  transform-origin: left top;
}

.p-flow__band {
  position: relative;
  z-index: var(--z-content);
  display: flex;
  align-items: center;
  min-height: calc(var(--u) * 51);
  background-color: var(--color-accent);
}

.p-flow__title {
  margin-inline: calc(var(--u) * 217) calc(var(--u) * 228);
  color: var(--color-white);
  font-size: calc(var(--u) * 37.82);
  font-weight: 700;
  line-height: 1.2163;
  text-align: center;
}

.p-flow__title-particle {
  font-size: 0.7932em;
}

.p-flow__grid {
  position: relative;
  z-index: var(--z-content);
  margin-top: calc(var(--u) * 34);
}

.p-flow__list {
  display: flex;
  flex-direction: column;
  gap: calc(var(--u) * 11);
  width: calc(var(--u) * 431);
  margin-inline: calc(var(--u) * 217) calc(var(--u) * 228);
}

.p-flow__item {
  display: flex;
  min-height: calc(var(--u) * 114);
  background-color: var(--color-white);
  background-image:
    linear-gradient(to right, var(--grid-line) 0 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid-line) 0 1px, transparent 1px);
  background-position: calc(var(--u) * 3) calc(var(--u) * 2);
  background-size: calc(var(--u) * 11) calc(var(--u) * 11);
}

.p-flow__item--01 {
  --img-w: 291;
  --img-h: 194;
  --img-x: -93;
  --img-y: -32;
}

.p-flow__item--02 {
  --img-w: 289;
  --img-h: 193;
  --img-x: -76;
  --img-y: -55;
}

.p-flow__item--03 {
  --img-w: 232;
  --img-h: 131;
  --img-x: -19;
  --img-y: -10;
}

.p-flow__item--04 {
  --img-w: 273;
  --img-h: 182;
  --img-x: -70;
  --img-y: -34;
}

.p-flow__item--05 {
  --img-w: 290;
  --img-h: 193;
  --img-x: -64;
  --img-y: -56;
}

.p-flow__thumb {
  position: relative;
  flex-shrink: 0;
  width: calc(var(--u) * 152);
  overflow: hidden;
}

.p-flow__photo {
  position: absolute;
  top: calc(var(--img-y) / 114 * 100%);
  left: calc(var(--img-x) / 152 * 100%);
  width: calc(var(--img-w) / 152 * 100%);
  max-width: none;
  height: calc(var(--img-h) / 114 * 100%);
}

.p-flow__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: calc(var(--u) * 14) calc(var(--u) * 24) calc(var(--u) * 22) calc(var(--u) * 23);
}

.p-flow__step-title {
  font-size: calc(var(--u) * 19);
  font-weight: 700;
}

.p-flow__step-text {
  max-width: 15.69em;
  font-size: calc(var(--u) * 14);
  line-height: 1.4286;
}

@media (max-width: 768px) {
  .p-flow {
    --u: var(--spx);
    padding-block: calc(var(--spx) * 57) calc(var(--spx) * 89);
  }

  .p-flow__deco {
    top: calc(var(--spx) * -8.51);
    left: calc(var(--spx) * -16);
    font-size: calc(var(--spx) * 86.69);
  }

  .p-flow__title {
    margin-inline: 0 calc(var(--spx) * 7);
    font-size: clamp(28px, calc(var(--spx) * 37.82), 42px);
  }

  .p-flow__grid {
    margin-top: calc(var(--spx) * 32);
    padding-inline: 0;
  }

  .p-flow__list {
    width: auto;
    margin-inline: calc(var(--spx) * 49) 0;
  }

  .p-flow__step-title {
    font-size: clamp(17px, calc(var(--spx) * 19), 24px);
  }

  .p-flow__step-text {
    font-size: clamp(13px, calc(var(--spx) * 14), 18px);
  }
}

/* =========================================
 * 07. Voice
 * ========================================= */
.p-voice {
  --voice-fade: 56, 56, 56;
  --voice-rule: #B5B5B6;
  --voice-grid-line: rgba(255, 255, 255, 0.168);
  --voice-grid-pitch: 10.74px;

  position: relative;
  display: flow-root;
  isolation: isolate;
  background-color: rgb(var(--voice-fade));
}

.p-voice__bg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: var(--z-deco);
  width: 100%;
  height: 781px;
  overflow: hidden;
}

.p-voice__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(
    to bottom,
    rgba(var(--voice-fade), 0) 246px,
    rgba(var(--voice-fade), 0.37) 343px,
    rgba(var(--voice-fade), 0.64) 427px,
    rgba(var(--voice-fade), 0.84) 492px,
    rgba(var(--voice-fade), 0.96) 544px,
    rgb(var(--voice-fade)) 569px
  );
}

.p-voice__bg-photo {
  width: 100%;
  height: 854px;
  margin-top: -73px;
  object-fit: cover;
}

.p-voice__title {
  position: relative;
  z-index: var(--z-content);
  margin-top: -35px;
  color: var(--color-ink);
  font-size: 47.33px;
  font-weight: 700;
}

.p-voice__title-line {
  display: block;
  width: fit-content;
  min-width: 569.59px;
  padding-inline: 0.96em 0.08em;
  background-color: var(--color-white);
  line-height: 1.4667;
}

.p-voice__title-line--wide {
  min-width: 298.2px;
  padding-right: 0.36em;
}

.p-voice__slider {
  position: relative;
  z-index: var(--z-content);
  margin-top: 383.37px;
  padding-top: 47px;
  padding-bottom: 55px;
  border-top: 1px solid var(--voice-rule);
  background-image:
    linear-gradient(to right, var(--voice-grid-line) 0 1px, transparent 1px),
    linear-gradient(to bottom, var(--voice-grid-line) 0 1px, transparent 1px);
  background-position: 6px 1px;
  background-size: var(--voice-grid-pitch) var(--voice-grid-pitch);
}

.p-voice__stage {
  position: relative;
}

.p-voice__track {
  display: flex;
  gap: 10px;
  padding-inline: calc((100% - var(--content-width)) / 2 + 8px) 20px;
  overflow-x: auto;
  scrollbar-width: none;
  scroll-behavior: smooth;
  scroll-padding-left: calc((100% - var(--content-width)) / 2 + 8px);
  scroll-snap-type: x mandatory;
}

.p-voice__track::-webkit-scrollbar {
  display: none;
}

.p-voice__card {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  width: 191px;
  min-height: 286px;
  padding: 16px 13px 15px;
  border-radius: 9.93px;
  background-color: var(--color-white);
  box-shadow: inset 0 0 0 1.5px var(--color-accent);
  scroll-snap-align: start;
}

.p-voice__quote {
  min-height: 186px;
  margin-top: 17px;
  color: var(--color-ink);
  font-size: 12px;
  line-height: 1.9167;
}

.p-voice__author {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 22px;
}

.p-voice__avatar {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background-color: var(--color-blue);
}

.p-voice__name {
  min-width: 0;
  color: var(--color-accent);
  font-size: 10px;
  line-height: 2;
}

.p-voice__arrow {
  position: absolute;
  top: 50%;
  right: max(calc(50% - 585px), 40px);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 45px;
  height: 54px;
  transform: translateY(-50%);
}

.p-voice__arrow-icon {
  width: 25px;
  height: 54px;
  background-color: var(--color-accent);
  filter: drop-shadow(3px 2px 4px rgba(0, 0, 0, 0.3));
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

@media (prefers-reduced-motion: reduce) {
  .p-voice__track {
    scroll-behavior: auto;
  }
}

@media (max-width: 768px) {
  .p-voice__bg {
    height: calc(var(--spx) * 421);
  }

  .p-voice__bg::after {
    background-image: linear-gradient(
      to bottom,
      rgba(var(--voice-fade), 0) calc(var(--spx) * 156),
      rgba(var(--voice-fade), 0.37) calc(var(--spx) * 218),
      rgba(var(--voice-fade), 0.64) calc(var(--spx) * 271),
      rgba(var(--voice-fade), 0.84) calc(var(--spx) * 312),
      rgba(var(--voice-fade), 0.96) calc(var(--spx) * 345),
      rgb(var(--voice-fade)) calc(var(--spx) * 362)
    );
  }

  .p-voice__bg-photo {
    width: calc(var(--spx) * 689);
    max-width: none;
    height: calc(var(--spx) * 460);
    margin-top: calc(var(--spx) * -39);
    margin-left: calc(var(--spx) * -73);
    filter: saturate(0.7);
  }

  .p-voice__title {
    margin-top: calc(var(--spx) * -16);
    margin-left: calc(var(--spx) * -30);
    font-size: clamp(22px, calc(var(--spx) * 30), 42px);
  }

  .p-voice__title-line {
    min-width: calc(var(--spx) * 361);
  }

  .p-voice__title-line--wide {
    min-width: calc(var(--spx) * 189);
  }

  .p-voice__slider {
    margin-top: calc(var(--spx) * 229);
    padding-top: calc(var(--spx) * 39);
    padding-bottom: calc(var(--spx) * 45);
    background-position: 2.5px -1px;
  }

  .p-voice__track {
    padding-inline: calc(var(--spx) * 28) calc(var(--spx) * 20);
    scroll-padding-left: calc(var(--spx) * 28);
  }

  .p-voice__arrow {
    right: calc(var(--spx) * 11);
  }
}

/* =========================================
 * 09. Philosophy
 * ========================================= */
.p-philosophy {
  --philosophy-muted: #717171;
  --philosophy-shade: #D0D0D0;
  --philosophy-pill: rgb(255 255 255 / 0.6);

  position: relative;
  overflow-x: clip;
  padding-top: 54px;
}

.p-philosophy .global-inner {
  position: relative;
  z-index: var(--z-content);
}

/* --- 装飾英字 --- */
.p-philosophy__deco {
  position: absolute;
  inset: 0;
  color: var(--color-mist);
  font-family: var(--font-en);
  font-weight: 900;
  line-height: 1.405;
  white-space: nowrap;
}

.p-philosophy__deco-our {
  position: absolute;
  top: -100.36px;
  left: calc(50% - 112.01px);
  font-size: 279.11px;
  letter-spacing: -0.04em;
}

.p-philosophy__deco-philosophy {
  position: absolute;
  top: -6.908px;
  left: calc(50% + 687.36px);
  font-size: 133.01px;
  letter-spacing: -0.03em;
  transform: rotate(90deg);
  transform-origin: 0 0;
}

/* --- 写真 --- */
.p-philosophy__photo {
  position: absolute;
  top: 97px;
  right: calc(50% - 640px);
  left: calc(50% - 126.57px);
  height: 403.49px;
  overflow: hidden;
}

.p-philosophy__photo img {
  width: max(780.37px, 101.8015%);
  max-width: none;
  margin-top: min(-9.32px, -1.2158%);
}

/* --- 見出し --- */
.p-philosophy__heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-left: -2px;
  color: var(--color-white);
  font-size: 46.845703px;
  font-weight: 700;
  line-height: 1.537;
}

.p-philosophy__heading-line {
  padding-inline: 45.5px 12px;
  background-color: var(--color-text);
}

.p-philosophy__heading-line--a {
  min-width: 406px;
}

.p-philosophy__heading-line--b {
  min-width: 532px;
}

.p-philosophy__heading-line--c {
  min-width: 342px;
}

.p-philosophy__heading-txt {
  position: relative;
}

.p-philosophy__heading-line--a .p-philosophy__heading-txt {
  top: 6.85px;
}

.p-philosophy__heading-line--c .p-philosophy__heading-txt {
  top: -7.16px;
}

/* --- リード --- */
.p-philosophy__quote {
  margin-top: 51px;
  color: var(--philosophy-muted);
  font-size: 16px;
  font-weight: 700;
}

.p-philosophy__lead {
  margin-top: 14px;
  color: var(--color-ink);
  font-size: 14px;
  line-height: 2.0714;
}

.p-philosophy__emphasis {
  display: flex;
  gap: 12.84px;
  margin-top: 25px;
  color: var(--color-accent);
  font-size: 18px;
  font-weight: 700;
}

.p-philosophy__emphasis-line {
  min-width: 0;
}

.p-philosophy__body {
  max-width: 872px;
  min-height: 87px;
  margin-top: 14px;
  color: var(--color-ink);
  font-size: 14px;
  line-height: 2.0714;
}

/* --- 写真ギャラリー --- */
.p-philosophy__gallery {
  position: relative;
  height: 997px;
  margin-top: 45px;
}

.p-philosophy__shot {
  position: absolute;
  isolation: isolate;
  overflow: hidden;
}

.p-philosophy__shot img {
  position: absolute;
  max-width: none;
  object-fit: cover;
}

.p-philosophy__shot--left,
.p-philosophy__shot--right {
  top: 306.08px;
  width: 724.85px;
  height: 690.92px;
}

.p-philosophy__shot--left::after,
.p-philosophy__shot--right::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--philosophy-shade);
  mix-blend-mode: multiply;
}

.p-philosophy__shot--left {
  left: calc(50% - 723.72px);
}

.p-philosophy__shot--left img {
  top: -93.08px;
  left: -205.06px;
  width: 1188.69px;
  height: 792.56px;
}

.p-philosophy__shot--right {
  left: calc(50% + 1.13px);
}

.p-philosophy__shot--right img {
  top: -36.08px;
  left: -157.91px;
  width: 1115.3px;
  height: 743.63px;
}

.p-philosophy__shot--narrow {
  top: 0;
  left: calc(50% + 247px);
  width: 233.52px;
  height: 347.43px;
}

.p-philosophy__shot--narrow img {
  top: -28.48px;
  left: -3.8px;
  width: 919.56px;
  height: 613.12px;
}

.p-philosophy__shot--wide {
  top: 45.56px;
  left: calc(50% - 430.78px);
  width: 611.33px;
  height: 347.43px;
}

.p-philosophy__shot--wide img {
  top: -70.25px;
  left: -53.16px;
  width: 678.69px;
  height: 452.52px;
}

/* --- 変化リスト --- */
.p-philosophy__panel {
  position: absolute;
}

.p-philosophy__panel--body {
  --panel-accent: var(--color-accent);

  top: 456px;
  left: calc(50% - 212.78px);
  width: 205px;
  color: var(--color-text);
}

.p-philosophy__panel--mind {
  --panel-accent: var(--color-red-deep);

  top: 626px;
  left: calc(50% + 33.22px);
  width: 276px;
  color: var(--color-ink);
}

.p-philosophy__panel-label {
  position: relative;
  color: var(--color-white);
  font-size: 17px;
  font-weight: 700;
}

.p-philosophy__panel-label::before {
  content: "";
  position: absolute;
  background-color: var(--color-text);
}

.p-philosophy__panel-label-txt {
  position: relative;
}

.p-philosophy__panel-label-lead {
  font-size: 27px;
}

.p-philosophy__panel--body .p-philosophy__panel-label {
  margin-left: 18px;
}

.p-philosophy__panel--body .p-philosophy__panel-label::before {
  top: 10px;
  left: -18px;
  width: 132px;
  height: 33px;
}

.p-philosophy__panel--mind .p-philosophy__panel-label {
  margin-left: 13px;
}

.p-philosophy__panel--mind .p-philosophy__panel-label::before {
  top: 9px;
  left: -13px;
  width: 102px;
  height: 34px;
}

.p-philosophy__panel-list {
  display: flex;
  flex-direction: column;
}

.p-philosophy__panel--body .p-philosophy__panel-list {
  gap: 12.5px;
  margin-top: 8px;
}

.p-philosophy__panel--mind .p-philosophy__panel-list {
  gap: 15px;
  margin-top: 7px;
}

.p-philosophy__panel-item {
  display: flex;
  align-items: center;
  min-height: 49px;
  background-color: var(--philosophy-pill);
  font-size: 14px;
}

.p-philosophy__panel--body .p-philosophy__panel-item {
  gap: 12px;
  padding-left: 18px;
  line-height: 1.4286;
}

.p-philosophy__panel--mind .p-philosophy__panel-item {
  gap: 11.2px;
  padding-left: 13px;
}

.p-philosophy__panel-icon {
  flex-shrink: 0;
  width: 25px;
  height: 25px;
}


.p-philosophy__panel-text {
  min-width: 0;
}

.p-philosophy__panel-mark {
  color: var(--panel-accent);
}

/* --- 結び --- */
.p-philosophy__outro {
  position: relative;
  min-height: 252px;
  margin-top: 59px;
}

.p-philosophy__closing {
  color: var(--color-white);
  font-size: 45.19px;
  font-weight: 700;
}

.p-philosophy__closing-line {
  display: block;
  width: 391.63px;
  min-height: 69.83px;
  padding-top: 3.68px;
  padding-left: 45.44px;
  background-color: var(--color-accent);
  line-height: 1.4415;
}

.p-philosophy__closing-line--b {
  width: 513.51px;
  margin-top: -1.36px;
  padding-top: 0.35px;
}

.p-philosophy__note {
  position: absolute;
  top: 188px;
  left: 0;
  width: 418px;
  color: var(--color-ink);
  font-size: 14px;
  line-height: 2.0714;
}

/* =========================================
 * PHILOSOPHY / SP
 * ========================================= */
@media (max-width: 768px) {
  .p-philosophy {
    padding-top: calc(var(--spx) * 60.57);
    padding-bottom: calc(var(--spx) * 40);
  }

  .p-philosophy__deco-our {
    top: calc(var(--spx) * -62.82);
    left: calc(var(--spx) * -1.294);
    font-size: calc(var(--spx) * 180.06);
  }

  .p-philosophy__deco-philosophy {
    top: calc(var(--spx) * -2.217);
    left: calc(100% + var(--spx) * 33.82);
    font-size: calc(var(--spx) * 85.79);
  }

  .p-philosophy__photo {
    top: calc(var(--spx) * 177);
    right: 0;
    left: 0;
    height: calc(var(--spx) * 259);
  }

  .p-philosophy__photo img {
    width: 104.36%;
    margin-top: -1.15833%;
    margin-left: -1.35833%;
  }

  .p-philosophy__heading {
    margin-left: calc(var(--spx) * -30);
    font-size: clamp(21.39px, calc(var(--spx) * 29.83), 41.76px);
    line-height: 1.5454;
  }

  .p-philosophy__heading-line {
    padding-inline: 0 calc(var(--spx) * 7.62);
  }

  .p-philosophy__heading-line {
    padding-left: calc(var(--spx) * 28);
  }

  .p-philosophy__heading-line--a {
    min-width: calc(var(--spx) * 257.54);
  }

  .p-philosophy__heading-line--b {
    min-width: calc(var(--spx) * 338);
  }

  .p-philosophy__heading-line--c {
    min-width: calc(var(--spx) * 216.86);
  }

  .p-philosophy__heading-line--a .p-philosophy__heading-txt {
    top: calc(var(--spx) * 3.83);
  }

  .p-philosophy__heading-line--c .p-philosophy__heading-txt {
    top: calc(var(--spx) * -5.17);
  }

  .p-philosophy__quote {
    margin-top: calc(var(--spx) * 274.13);
    font-size: clamp(14.4px, calc(var(--spx) * 16), 22.4px);
  }

  .p-philosophy__lead {
    margin-top: calc(var(--spx) * 14);
    font-size: clamp(13.1px, calc(var(--spx) * 14), 19.6px);
  }

  .p-philosophy__emphasis {
    flex-direction: column;
    gap: 0;
    margin-top: calc(var(--spx) * 25);
    font-size: clamp(15.7px, calc(var(--spx) * 18), 25.2px);
    line-height: 1.8889;
  }

  .p-philosophy__body {
    max-width: none;
    min-height: calc(var(--spx) * 145);
    margin-top: calc(var(--spx) * 26);
    font-size: clamp(13.1px, calc(var(--spx) * 14), 19.6px);
  }

  .p-philosophy__gallery {
    height: calc(var(--spx) * 1104);
    margin-top: calc(var(--spx) * 13);
  }

  .p-philosophy__shot--left,
  .p-philosophy__shot--right {
    top: auto;
    width: calc(var(--spx) * 485);
  }

  .p-philosophy__shot--left {
    top: calc(var(--spx) * 162);
    left: calc(var(--spx) * -30);
    height: calc(var(--spx) * 518);
    clip-path: polygon(0 0, 98.868% 0, 100% 96.286%, 0 100%);
  }

  .p-philosophy__shot--left img {
    top: calc(var(--spx) * -37);
    left: 0;
    width: calc(var(--spx) * 866);
    height: calc(var(--spx) * 577);
  }

  .p-philosophy__shot--right {
    top: calc(var(--spx) * 569);
    left: calc(var(--spx) * -30);
    height: calc(var(--spx) * 535);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 94.486%);
  }

  .p-philosophy__shot--right img {
    top: calc(var(--spx) * -20);
    left: calc(var(--spx) * -318);
    width: calc(var(--spx) * 832);
    height: calc(var(--spx) * 555);
  }

  .p-philosophy__shot--narrow {
    left: calc(var(--spx) * 327);
    width: calc(var(--spx) * 123);
    height: calc(var(--spx) * 183);
  }

  .p-philosophy__shot--narrow img {
    top: calc(var(--spx) * -15);
    left: calc(var(--spx) * -2);
    width: calc(var(--spx) * 484.35);
    height: calc(var(--spx) * 322.94);
  }

  .p-philosophy__shot--wide {
    top: calc(var(--spx) * 24);
    left: calc(var(--spx) * -30);
    width: calc(var(--spx) * 322);
    height: calc(var(--spx) * 183);
  }

  .p-philosophy__shot--wide img {
    top: calc(var(--spx) * -37);
    left: calc(var(--spx) * -28);
    width: calc(var(--spx) * 358);
    height: calc(var(--spx) * 238);
  }

  .p-philosophy__panel {
    --pu: max(var(--spx), calc(12px / 14));
  }

  .p-philosophy__panel--body {
    top: calc(var(--spx) * 257);
    left: calc(var(--spx) * -30);
    width: calc(var(--pu) * 218);
  }

  .p-philosophy__panel--mind {
    top: calc(var(--spx) * 713);
    right: calc(var(--spx) * -30);
    left: auto;
    width: calc(var(--pu) * 276);
  }

  .p-philosophy__panel-label {
    font-size: calc(var(--pu) * 17);
  }

  .p-philosophy__panel-label-lead {
    font-size: calc(var(--pu) * 27);
  }

  .p-philosophy__panel--body .p-philosophy__panel-label {
    margin-left: calc(var(--pu) * 31);
  }

  .p-philosophy__panel--body .p-philosophy__panel-label::before {
    top: calc(var(--pu) * 10);
    left: calc(var(--pu) * -31);
    width: calc(var(--pu) * 145);
    height: calc(var(--pu) * 33);
  }

  .p-philosophy__panel--mind .p-philosophy__panel-label {
    margin-left: 0;
    padding-right: calc(var(--pu) * 11);
    text-align: right;
  }

  .p-philosophy__panel--mind .p-philosophy__panel-label::before {
    top: calc(var(--pu) * 9);
    right: 0;
    left: auto;
    width: calc(var(--pu) * 102);
    height: calc(var(--pu) * 34);
  }

  .p-philosophy__panel--body .p-philosophy__panel-list {
    gap: calc(var(--pu) * 12.5);
    margin-top: calc(var(--pu) * 8);
  }

  .p-philosophy__panel--mind .p-philosophy__panel-list {
    gap: calc(var(--pu) * 15);
    margin-top: calc(var(--pu) * 7);
  }

  .p-philosophy__panel-item {
    min-height: calc(var(--pu) * 49);
    font-size: calc(var(--pu) * 14);
  }

  .p-philosophy__panel--body .p-philosophy__panel-item {
    gap: calc(var(--pu) * 12);
    padding-left: calc(var(--pu) * 31);
  }

  .p-philosophy__panel--mind .p-philosophy__panel-item {
    gap: calc(var(--pu) * 11.2);
    padding-left: calc(var(--pu) * 13);
  }

  .p-philosophy__panel-icon {
    width: calc(var(--pu) * 25);
    height: calc(var(--pu) * 25);
  }


  .p-philosophy__outro {
    min-height: 0;
    margin-top: calc(var(--spx) * 15);
  }

  .p-philosophy__closing {
    font-size: calc(var(--spx) * 29.83);
  }

  .p-philosophy__closing-line {
    width: calc(var(--spx) * 259);
    min-height: calc(var(--spx) * 46);
    margin-left: calc(var(--spx) * -30);
    padding-top: calc(var(--spx) * 2);
    padding-left: calc(var(--spx) * 30);
  }

  .p-philosophy__closing-line--b {
    width: calc(var(--spx) * 339);
    margin-top: calc(var(--spx) * -1);
    padding-top: 0;
  }

  .p-philosophy__note {
    position: static;
    width: auto;
    margin-top: calc(var(--spx) * 28);
    font-size: clamp(13px, calc(var(--spx) * 14), 19.6px);
  }
}

/* =========================================
 * 10. Access / FAQ
 * ========================================= */
.p-access-faq {
  --label-bg: #211815;

  margin-top: -5px;
  color: var(--color-ink);
}

.p-access-faq__photo {
  position: relative;
  z-index: var(--z-deco);
  display: flex;
  justify-content: flex-end;
}

.p-access-faq__photo-frame {
  position: relative;
  isolation: isolate;
  width: 571px;
  max-width: calc(50% + 30px);
  margin-right: max(calc(50% - 640px), 0px);
}

.p-access-faq__photo-frame::after {
  position: absolute;
  inset: 0;
  background-color: var(--color-silver);
  mix-blend-mode: multiply;
  opacity: 0.7;
  content: "";
}

.p-access-faq__photo-img {
  width: 100%;
  height: 319px;
  object-fit: cover;
}

.p-access-faq__body {
  margin-top: -193px;
  padding-bottom: 40px;
  background-color: var(--color-warm-white);
}

/* --- 見出し（ACCESS / FAQ 共通） --- */
.p-access-faq__head {
  display: flex;
  align-items: center;
}

.p-access-faq__head-en {
  color: var(--color-accent);
  font-family: var(--font-en);
  font-size: 50px;
  font-weight: 900;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.p-access-faq__head-ja {
  min-width: 0;
  font-size: 16px;
}

/* --- ACCESS --- */
.p-access-faq__access > .global-inner {
  padding-top: 62px;
}

.p-access-faq__access .p-access-faq__head {
  gap: 20px;
}

.p-access-faq__info {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 42px;
}

.p-access-faq__info-row {
  display: flex;
  gap: 20px;
}

.p-access-faq__info-label {
  display: flex;
  flex-shrink: 0;
  align-self: flex-start;
  align-items: center;
  justify-content: center;
  min-width: 87px;
  min-height: 21px;
  margin-top: 3.5px;
  padding-right: 6px;
  padding-left: calc(6px + 0.26em);
  background-color: var(--label-bg);
  color: var(--color-white);
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.26em;
}

.p-access-faq__info-body {
  min-width: 0;
  font-size: 16px;
  line-height: 1.75;
}

.p-access-faq__map {
  height: 278px;
  margin-top: 70px;
  overflow: hidden;
}

.p-access-faq__map-embed {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* --- FAQ --- */
.p-access-faq__faq > .global-inner {
  padding-top: 32px;
}

.p-access-faq__faq .p-access-faq__head {
  gap: 16px;
}

.p-access-faq__list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  max-width: 855px;
  margin-top: 8px;
}

.p-access-faq__item {
  background-color: var(--color-white);
}

.p-access-faq__trigger {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  min-height: 43px;
  padding-right: 16px;
  padding-left: 12px;
  text-align: left;
}

.p-access-faq__q {
  flex-shrink: 0;
  min-width: 22px;
  color: var(--color-warm-gray);
  font-family: var(--font-en);
  font-size: 28.58px;
  font-weight: 900;
  line-height: 1.4;
}

.p-access-faq__question {
  min-width: 0;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.p-access-faq__arrow {
  flex-shrink: 0;
  width: 19.5px;
  height: 11px;
  margin-left: auto;
  transform: rotate(180deg);
  transition: transform 0.3s ease;
}

.p-access-faq__trigger[aria-expanded="true"] .p-access-faq__arrow {
  transform: none;
}

.p-access-faq__answer {
  display: grid;
  grid-template-rows: 0fr;
  visibility: hidden;
  transition: grid-template-rows 0.3s ease, visibility 0.3s;
}

.p-access-faq__answer.is-open {
  grid-template-rows: 1fr;
  visibility: visible;
}

.p-access-faq__answer-inner {
  min-height: 0;
  overflow: hidden;
}

.p-access-faq__answer-text {
  padding: 13px 16px 21px;
  font-size: 14px;
  line-height: 1.7143;
}

/* =========================================
 * 10. ACCESS + FAQ / SP
 * ========================================= */
@media (max-width: 768px) {
  .p-access-faq {
    margin-top: 0;
  }

  .p-access-faq__photo-frame {
    width: 100%;
    max-width: none;
  }

  .p-access-faq__photo-img {
    height: calc(var(--spx) * 269);
  }

  .p-access-faq__body {
    margin-top: calc(var(--spx) * -27);
    padding-bottom: calc(var(--spx) * 67);
  }

  .p-access-faq__head-en {
    font-size: clamp(34px, calc(var(--spx) * 50), 60px);
  }

  .p-access-faq__head-ja {
    font-size: clamp(15px, calc(var(--spx) * 16), 19px);
  }

  .p-access-faq__access > .global-inner {
    padding-top: calc(var(--spx) * 59);
  }

  .p-access-faq__access .p-access-faq__head {
    gap: calc(var(--spx) * 20);
  }

  .p-access-faq__info {
    gap: calc(var(--spx) * 18);
    margin-top: calc(var(--spx) * 9);
  }

  .p-access-faq__info-row {
    gap: calc(var(--spx) * 20);
  }

  .p-access-faq__info-label {
    min-width: calc(var(--spx) * 87);
    min-height: calc(var(--spx) * 21);
    margin-top: calc(var(--spx) * 3.5);
    padding-right: calc(var(--spx) * 6);
    padding-left: calc(var(--spx) * 6 + 0.26em);
    font-size: clamp(14px, calc(var(--spx) * 14), 17px);
  }

  .p-access-faq__info-body {
    font-size: clamp(15px, calc(var(--spx) * 16), 19px);
  }

  .p-access-faq__map {
    height: calc(var(--spx) * 245);
    margin-top: calc(var(--spx) * 28);
  }


  .p-access-faq__faq > .global-inner {
    padding-top: calc(var(--spx) * 75);
  }

  .p-access-faq__faq .p-access-faq__head {
    gap: calc(var(--spx) * 16);
  }

  .p-access-faq__list {
    gap: calc(var(--spx) * 7);
    width: calc(var(--spx) * 424);
    max-width: none;
    margin-top: calc(var(--spx) * 8);
    margin-inline: calc(50% - var(--spx) * 212);
  }

  .p-access-faq__trigger {
    gap: calc(var(--spx) * 11);
    min-height: calc(var(--spx) * 43);
    padding-right: calc(var(--spx) * 16);
    padding-left: calc(var(--spx) * 12);
  }

  .p-access-faq__q {
    min-width: calc(var(--spx) * 22);
    font-size: clamp(22px, calc(var(--spx) * 28.58), 34px);
  }

  .p-access-faq__question {
    font-size: clamp(14px, calc(var(--spx) * 14), 17px);
  }

  .p-access-faq__arrow {
    width: calc(var(--spx) * 19.5);
    height: calc(var(--spx) * 11);
    filter: drop-shadow(1.2px 0.8px 3.2px rgba(0, 0, 0, 0.3));
  }

  .p-access-faq__answer-text {
    padding: calc(var(--spx) * 13) calc(var(--spx) * 16) calc(var(--spx) * 21);
    font-size: clamp(14px, calc(var(--spx) * 14), 17px);
  }
}

/* =========================================
 * 12. Footer
 * ========================================= */
.p-footer {
  min-height: 208px;
  padding-block: 51px;
  border-bottom: 5px solid var(--color-accent);
  background-color: var(--color-text);
}

.p-footer__brand {
  display: flex;
  align-items: flex-end;
  gap: 27.23px;
  padding-left: 235px;
}

.p-footer__logo {
  flex-shrink: 0;
  width: 356.1px;
}

.p-footer__branch {
  margin-bottom: 9.2px;
  color: var(--color-white);
  font-size: 14px;
  line-height: 1.2143;
}

@media (max-width: 768px) {
  .p-footer {
    min-height: calc(var(--spx) * 168);
    padding-block: calc(var(--spx) * 52.71);
    border-bottom-width: calc(var(--spx) * 5);
  }

  .p-footer__brand {
    gap: calc(var(--spx) * 17.13);
    padding-left: calc(var(--spx) * 52);
  }

  .p-footer__logo {
    width: calc(var(--spx) * 224.07);
  }

  .p-footer__branch {
    margin-bottom: calc(var(--spx) * -1);
    font-size: clamp(13px, calc(var(--spx) * 14), 18px);
  }
}


@media (prefers-reduced-motion: reduce) {
  .p-access-faq__answer,
  .p-access-faq__arrow {
    transition: none;
  }
}

/* =========================================
 * 07. Voice / 5件を中央配置（横スクロール無し）
 * ========================================= */
.p-voice__more {
  margin-top: 32px;
  text-align: center;
}

.p-voice__more-link {
  display: inline-block;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--color-accent);
  color: var(--color-accent);
  font-size: 14px;
  font-weight: 700;
}

.p-voice__track--static {
  flex-wrap: wrap;
  justify-content: center;
  overflow-x: visible;
  padding-inline: 20px;
  scroll-snap-type: none;
}

.c-tax-note {
  display: inline-block;
  margin-left: 0.4em;
  font-size: 11px;
  font-weight: 400;
  opacity: 0.7;
}

.p-hero__stat-value {
  position: relative;
}
.c-tax-note--hero {
  position: absolute;
  left: 0;
  top: 100%;
  margin-left: 0;
  white-space: nowrap;
}
