:root {
  color-scheme: light;
  --paper: #e4dfd9;
  --ink: #1a1817;
  --gold: #8b742d;
  --line: rgba(139, 116, 45, 0.62);
  --serif: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", serif;
  --sans: "Helvetica Neue", Helvetica, Arial, "Hiragino Kaku Gothic ProN", sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--paper);
}

body {
  margin: 0;
  min-width: min(320px, 100%);
  color: var(--ink);
  background: var(--paper);
  font-family: var(--serif);
  text-rendering: optimizeLegibility;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

.site-shell {
  container-type: inline-size;
  width: min(100%, 520px);
  margin: 0 auto;
  overflow: hidden;
  background: var(--paper);
}

.desktop-rail {
  display: none;
}

.section-frame {
  --paper-texture: url("./assets/optimized/textures/paper-mottle-a.q90.webp");
  --paper-texture-position: 50% 50%;
  --paper-texture-size: cover;
  position: relative;
  width: 100%;
  overflow: hidden;
  isolation: isolate;
  background-color: var(--paper);
}

.section-frame::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  content: "";
  pointer-events: none;
  background-image: var(--paper-texture);
  background-position: var(--paper-texture-position);
  background-size: var(--paper-texture-size);
  background-repeat: no-repeat;
  mix-blend-mode: multiply;
  opacity: 0.22;
}

.section-frame:nth-of-type(6n + 2) {
  --paper-texture: url("./assets/optimized/textures/paper-mottle-b.q90.webp");
  --paper-texture-position: 42% 30%;
  --paper-texture-size: cover;
}

.section-frame:nth-of-type(6n + 3) {
  --paper-texture: url("./assets/optimized/textures/paper-mottle-c.q90.webp");
  --paper-texture-position: 58% 64%;
  --paper-texture-size: cover;
}

.section-frame:nth-of-type(6n + 4) {
  --paper-texture-position: 57% 71%;
  --paper-texture-size: cover;
}

.section-frame:nth-of-type(6n + 5) {
  --paper-texture: url("./assets/optimized/textures/paper-mottle-c.q90.webp");
  --paper-texture-position: 39% 35%;
  --paper-texture-size: cover;
}

.section-frame:nth-of-type(6n) {
  --paper-texture: url("./assets/optimized/textures/paper-mottle-b.q90.webp");
  --paper-texture-position: 61% 74%;
  --paper-texture-size: cover;
}

.art-parts {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.art-part {
  position: absolute;
  max-width: none;
  width: 100%;
  height: auto;
  object-fit: fill;
}

.art-parts > img.art-part:not(.client-photo-part) {
  mix-blend-mode: darken;
}

.blended-art {
  display: block;
  background-color: var(--paper);
  background-position: center;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-blend-mode: darken;
}

.background-art {
  display: none;
}

.trim-top-art {
  clip-path: inset(12% 0 0);
}

.trim-map-shadow {
  clip-path: inset(0 0 12%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, transparent 7%, #000 20%, #000 100%);
  mask-image: linear-gradient(to right, transparent 0%, transparent 7%, #000 20%, #000 100%);
}

.client-photo-part {
  object-fit: cover;
}

.client-photo-frame {
  overflow: hidden;
}

.client-photo-frame > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-photo-main {
  z-index: 1;
  object-position: center center;
  -webkit-mask: url("./assets/parts/s01-photo-main-mask.svg") 0 0 / 100% 100% no-repeat;
  mask: url("./assets/parts/s01-photo-main-mask.svg") 0 0 / 100% 100% no-repeat;
}

.hero-photo-side {
  z-index: 2;
  object-position: center center;
  -webkit-mask: url("./assets/parts/s01-photo-side-mask.svg?v=2") 0 0 / 100% 100% no-repeat;
  mask: url("./assets/parts/s01-photo-side-mask.svg?v=2") 0 0 / 100% 100% no-repeat;
}

.method-photo {
  object-position: center top;
  mix-blend-mode: normal;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 48%, rgb(0 0 0 / 72%) 57%, transparent 74%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 48%, rgb(0 0 0 / 72%) 57%, transparent 74%);
}

.trainer-photo-frame {
  -webkit-mask: url("./assets/parts/s08-portrait-mask.svg") 0 0 / 100% 100% no-repeat;
  mask: url("./assets/parts/s08-portrait-mask.svg") 0 0 / 100% 100% no-repeat;
}

.trainer-photo-frame > img {
  object-position: center 53%;
}

.trainer-side-photo {
  object-position: center 53%;
  filter: none;
  -webkit-mask: url("./assets/parts/s08-studio-mask.svg") 0 0 / 100% 100% no-repeat;
  mask: url("./assets/parts/s08-studio-mask.svg") 0 0 / 100% 100% no-repeat;
}

.access-photo {
  object-position: center 58%;
  -webkit-clip-path: polygon(0 6%, 100% 0, 100% 100%, 0 100%);
  clip-path: polygon(0 6%, 100% 0, 100% 100%, 0 100%);
  -webkit-mask: url("./assets/parts/s13-photo-mask.svg") 0 0 / 100% 100% no-repeat;
  mask: url("./assets/parts/s13-photo-mask.svg") 0 0 / 100% 100% no-repeat;
}

.final-photo {
  object-position: center 48%;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 78%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 78%, transparent 100%);
}

.hero {
  aspect-ratio: 941 / 1672;
  background-color: var(--paper);
}

.hero-brand {
  position: absolute;
  top: 4.15%;
  left: 6.1%;
  width: 44%;
  font-family: var(--sans);
}

.hero-logo,
.hero-logo-sub,
.hero-manifesto,
.hero-open p,
.hero-message p {
  margin: 0;
}

.hero-logo,
.hero-logo-sub,
.hero-manifesto {
  text-shadow:
    0 1px 1px rgb(255 255 255 / 90%),
    0 0 7px rgb(248 245 239 / 66%);
}

.hero-logo {
  font-size: min(7.8vw, 2.54rem);
  font-weight: 300;
  letter-spacing: 0.22em;
  line-height: 0.95;
  white-space: nowrap;
}

.hero-logo-sub {
  margin-top: 0.18rem;
  font-size: min(1.55vw, 0.5rem);
  font-weight: 500;
  letter-spacing: 0.32em;
  white-space: nowrap;
}

.hero-manifesto {
  position: relative;
  margin-top: 0.45rem;
  padding-bottom: 0.42rem;
  font-size: min(1.55vw, 0.5rem);
  letter-spacing: 0.2em;
  line-height: 1.65;
}

.hero-manifesto::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 1.1rem;
  height: 1px;
  content: "";
  background: var(--ink);
}

.hero-open {
  position: absolute;
  top: 2.2%;
  right: 4.5%;
  width: 37.5%;
  text-align: right;
  font-family: "Bodoni 72", Didot, Georgia, var(--serif);
}

.hero-open-date {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 0.35rem;
  font-size: min(5.5vw, 1.79rem);
  line-height: 1;
  letter-spacing: 0.08em;
  white-space: nowrap;
  transform: scaleX(1.12);
  transform-origin: right center;
}

.hero-open-date small {
  margin-top: 0.2rem;
  font-family: var(--sans);
  font-size: 0.42em;
  letter-spacing: 0.18em;
  writing-mode: vertical-rl;
}

.hero-open-title {
  margin-top: 0.28rem !important;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--ink);
  font-size: min(9.1vw, 2.96rem);
  line-height: 0.88;
  letter-spacing: 0.01em;
  transform: scaleX(1.14);
  transform-origin: right center;
}

.hero-open-copy {
  margin-top: 0.55rem !important;
  font-size: min(2.25vw, 0.73rem);
  line-height: 1.55;
  letter-spacing: 0.1em;
}

.hero-message {
  position: absolute;
  top: 51.5%;
  left: 4.5%;
  width: 91%;
  isolation: isolate;
}

.hero-message::before {
  position: absolute;
  z-index: -1;
  inset: -0.55rem -0.35rem -0.4rem;
  content: "";
  pointer-events: none;
  background: radial-gradient(ellipse 55% 55% at center, rgb(248 245 239 / 58%) 0%, rgb(248 245 239 / 28%) 56%, transparent 100%);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  -webkit-mask-image: radial-gradient(ellipse 50% 50% at center, #000 30%, transparent 100%);
  mask-image: radial-gradient(ellipse 50% 50% at center, #000 30%, transparent 100%);
}

.hero-message h1 {
  margin: 0;
  font-size: min(6.9vw, 2.25rem);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.055em;
  text-shadow:
    0 1px 1px rgb(255 255 255 / 88%),
    0 0 6px rgb(248 245 239 / 68%);
}

.hero-message h1 span {
  display: block;
  white-space: nowrap;
}

.hero-message h1 span:first-child {
  letter-spacing: -0.025em;
  text-shadow:
    0 1px 1px rgb(255 255 255 / 96%),
    0 0 8px rgb(248 245 239 / 82%);
}

.hero-services {
  margin-top: 0.28rem !important;
  margin-left: 0.65rem !important;
  font-size: min(2.25vw, 0.73rem);
  letter-spacing: 0.18em;
  white-space: nowrap;
}

.hero-trial-offer {
  position: absolute;
  top: 66.9%;
  left: 5.4%;
  width: 89%;
  margin: 0;
  color: #4c401e;
  line-height: 1.2;
  text-align: center;
}

.hero-trial-offer > span,
.hero-trial-offer > strong {
  display: block;
}

.hero-trial-offer > span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: min(3.2cqw, 1.05rem);
  letter-spacing: 0.12em;
}

.hero-trial-offer small {
  margin-left: 0.8em;
  font-size: 0.83em;
}

.hero-trial-offer strong {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.4em;
  margin-top: 0.12em;
  font-size: min(3.2cqw, 1.05rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  white-space: nowrap;
}

.hero-trial-price {
  font-size: calc(1.82em * var(--ground-price-scale, 1));
  font-weight: 700;
  letter-spacing: -0.035em;
}

.hero-trial-tax {
  font-size: 1.22em;
}

.hero-trial-offer del {
  color: #6d6655;
  font-size: calc(1em * var(--ground-price-scale, 1));
  text-decoration-thickness: 1px;
}

.hero-facts {
  position: absolute;
  top: 74.4%;
  left: 4%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.2cqw;
  width: 92%;
  min-height: 6.3%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.hero-facts li {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8cqw;
  min-width: 0;
  padding: 0 0.8cqw;
  border: 1px solid rgb(128 108 43 / 85%);
  border-radius: 1.6cqw;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 60%);
  text-align: center;
  font-size: min(2.5cqw, 0.81rem);
  line-height: 1.2;
}

.hero-fact-icon {
  flex: 0 0 4.4cqw;
  width: 4.4cqw;
  height: 4.84cqw;
  color: #806c2b;
}

.hero-fact-copy {
  display: block;
  min-width: 0;
  letter-spacing: 0;
}

.hero-facts li:nth-child(2) {
  font-size: min(2.35cqw, 0.77rem);
}

.hero-facts li:nth-child(2) .hero-fact-copy {
  max-width: 9em;
}

.hero-facts li:nth-child(3) {
  font-size: min(2.45cqw, 0.8rem);
  line-height: 1.18;
}

.hero-hours-text {
  display: inline-block;
  transform: translateX(0.25rem);
}

.hero-trainer-title {
  display: inline-block;
  transform: translateY(0.12rem);
}

.hero-access {
  position: absolute;
  top: 81.9%;
  left: 12%;
  width: 84%;
  margin: 0;
  text-align: center;
  font-size: min(4vw, 1.3rem);
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
}

.hero-access span {
  margin: 0 0.24em;
  color: #77716a;
}

.hero-actions {
  position: absolute;
  top: 86.35%;
  left: 4.5%;
  display: grid;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: clamp(0.55rem, 2.2vw, 0.72rem);
  width: 91%;
  height: 12.15%;
}

.hero-action {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 0 3rem 0 1rem;
  font-size: min(3.65vw, 1.19rem);
  letter-spacing: 0.04em;
}

.hero-action-primary {
  color: #fffdf8;
}

.hero-action-secondary {
  color: #fff;
  border: 1px solid #05b94e;
  border-radius: 0.25rem;
  background: #06c755;
  box-shadow: inset 0 0 0.8rem rgb(0 107 43 / 12%);
}

.hero-action-secondary::after {
  position: absolute;
  top: 50%;
  right: 5.2%;
  content: "→";
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.7em;
  line-height: 1;
  transform: translateY(-54%);
}

.hero-line-button-art {
  display: none;
}

.line-cta-icon {
  flex: 0 0 auto;
  width: 2.35em;
  height: 2.35em;
  margin-right: 0.58em;
  object-fit: contain;
}

.issues {
  aspect-ratio: 941 / 1672;
  background-color: var(--paper);
}

.issues-photo-woman {
  -webkit-clip-path: polygon(31.2% 0, 100% 0, 100% 87.7%, 4.1% 95.6%);
  clip-path: polygon(31.2% 0, 100% 0, 100% 87.7%, 4.1% 95.6%);
  object-position: 72% center;
  mix-blend-mode: normal;
}

.issues-photo-golf {
  -webkit-clip-path: polygon(0 31.6%, 89.8% 12.2%, 97% 84.7%, 0 95.1%);
  clip-path: polygon(0 31.6%, 89.8% 12.2%, 97% 84.7%, 0 95.1%);
}

.issues-photo-golf > img {
  position: absolute;
  top: 8%;
  left: 0;
  width: 100%;
  height: 110%;
  object-position: center center;
}

.issues-kicker {
  position: absolute;
  top: 4.9%;
  left: 5.6%;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: min(3vw, 0.98rem);
  letter-spacing: 0.17em;
}

.issues-kicker::after {
  position: absolute;
  top: 50%;
  left: calc(100% + min(3vw, 15.6px));
  width: min(37vw, 192px);
  height: 1px;
  content: "";
  background: #b29c69;
}

.issues h2 {
  position: absolute;
  top: 7.8%;
  left: 5.4%;
  width: 61%;
  margin: 0;
  font-size: clamp(1.22rem, 5.2vw, 1.72rem);
  font-weight: 500;
  line-height: 1.42;
  letter-spacing: -0.06em;
}

.issues-list {
  position: absolute;
  top: 21.7%;
  left: 10.5%;
  display: grid;
  grid-template-rows: repeat(6, 1fr);
  width: 46.5%;
  height: 39.6%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.issues-list li {
  position: relative;
  display: flex;
  align-items: center;
  font-size: min(3.13vw, 1.02rem);
  line-height: 1.42;
  letter-spacing: -0.035em;
}

.issues-list li::before {
  position: absolute;
  top: 50%;
  left: max(-4.7vw, -24.44px);
  width: min(1.45vw, 7.54px);
  height: min(1.45vw, 7.54px);
  border-radius: 50%;
  background: #b09a69;
  content: "";
  transform: translateY(-50%);
}

.issues-list li:not(:last-child)::after {
  position: absolute;
  bottom: 0;
  left: max(-4.7vw, -24.44px);
  right: 0;
  height: 1px;
  background: rgb(176 154 105 / 72%);
  content: "";
}

.issues-list li:last-child {
  transform: none;
}

.issues-closing {
  position: absolute;
  top: 82.8%;
  left: 4.5%;
  width: 91%;
  margin: 0;
  text-align: center;
  font-size: min(5.35vw, 1.74rem);
  line-height: 1.55;
  letter-spacing: -0.05em;
}

.issues-closing > span {
  display: block;
  white-space: nowrap;
}

.issues-closing-emphasis {
  position: relative;
  isolation: isolate;
}

.issues-closing-emphasis::after {
  position: absolute;
  z-index: -1;
  left: 8%;
  right: 3%;
  top: 78%;
  height: 0.48em;
  background: url("./assets/optimized/parts/s02-brush.webp") center / 100% 100% no-repeat;
  content: "";
}

.philosophy {
  aspect-ratio: 941 / 1960;
  background-color: var(--paper);
}

.philosophy-title-line {
  position: absolute;
  top: calc(100% - 0.15em);
  left: -1.217%;
  width: 50.434%;
  height: auto;
  mix-blend-mode: multiply;
  pointer-events: none;
}

.philosophy-photo-assess {
  height: 28%;
  clip-path: polygon(26.5% 0, 100% 0, 100% 100%, 5.5% 88%);
  object-position: center 78%;
  mix-blend-mode: normal;
}

.philosophy-photo-golf {
  top: 48.969%;
  height: 39.519%;
  clip-path: polygon(0 18%, 14% 15%, 97% 6%, 80% 100%, 0 100%);
  object-position: 47% center;
  mix-blend-mode: normal;
}

.philosophy-highlights-art {
  display: none;
  top: 62.714%;
  height: 26.919%;
}

.philosophy-cta-art {
  top: 89.664%;
  height: 7.446%;
  -webkit-clip-path: inset(14% 0 0 0);
  clip-path: inset(14% 0 0 0);
}

.philosophy-copy {
  position: absolute;
  top: 3.445%;
  left: 5.5%;
  width: 59%;
}

.philosophy-copy h2 {
  position: relative;
  margin: 0;
  font-size: min(9.5vw, 3.09rem);
  font-weight: 500;
  line-height: 1.17;
  letter-spacing: -0.04em;
}

.philosophy-copy p {
  margin: min(2vw, 0.65rem) 0 0;
  font-size: clamp(0.75rem, 3vw, 1rem);
  line-height: 1.6;
  letter-spacing: -0.045em;
}

.philosophy-soap span {
  display: block;
}

.philosophy-description span {
  display: block;
}

.philosophy-copy .philosophy-description {
  width: 151%;
  margin-top: min(4vw, 20.8px);
  line-height: 1.75;
}

.philosophy-copy .philosophy-lead {
  margin-top: min(3.54vw, 1.15rem);
  font-size: min(5.35vw, 1.74rem);
  line-height: 1.42;
}

.philosophy-keywords {
  position: absolute;
  top: 62.962%;
  right: 0;
  z-index: 1;
  display: grid;
  gap: 0.45rem;
  width: 48%;
  margin: 0;
  font-size: min(5.5cqw, 1.8rem);
  font-weight: 500;
  line-height: 1.16;
  letter-spacing: -0.045em;
}

.philosophy-keywords span {
  display: block;
  width: max-content;
  max-width: 100%;
  background-image: linear-gradient(90deg, rgb(189 165 106 / 60%), rgb(238 218 171 / 53%) 74%, transparent);
  background-position: 0 82%;
  background-size: 100% 0.34em;
  background-repeat: no-repeat;
  white-space: nowrap;
}



.philosophy-cta {
  position: absolute;
  top: 90.866%;
  left: 4.7%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 90.6%;
  height: 6.412%;
  padding-right: 2.7rem;
  color: #fffdf8;
  font-size: min(4vw, 1.3rem);
  letter-spacing: 0.02em;
}

@media (min-width: 1000px) {
  .philosophy {
    aspect-ratio: 941 / 1960;
  }

  .philosophy-photo-assess {
    height: 28%;
  }

  .philosophy-photo-golf {
    top: 46.679%;
    height: 41.293%;
  }

  .philosophy-highlights-art {
    top: 61.041%;
    height: 28.127%;
  }

  .philosophy-cta-art {
    top: 89.2%;
    height: 7.780%;
  }

  .philosophy-copy {
    top: 3.6%;
  }

  .philosophy-keywords {
    top: 61.3%;
  }

  .philosophy-cta {
    top: 90.456%;
    height: 6.7%;
  }
}

.method {
  --paper-texture: url("./assets/optimized/textures/paper-mottle-b.q90.webp");
  --paper-texture-position: 50% 50%;
  --paper-texture-size: cover;
  padding-top: 51.91%;
  padding-bottom: 1.2%;
  background-color: #fff;
}

.method .method-photo {
  height: min(61.6vw, 320.32px) !important;
}

.method::before {
  opacity: 0.36;
}

.method > h2 {
  position: absolute;
  top: min(31.98vw, 166.3px);
  left: 6.5%;
  display: grid;
  margin: 0;
  font-size: min(8.5vw, 2.76rem);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: 0.11em;
}

.method > h2 span:last-child {
  color: #806d31;
}

.method-list {
  position: relative;
  display: grid;
  grid-template-rows: auto;
  width: 88%;
  margin: 0 5.6% 0 6.4%;
  padding: 0;
  list-style: none;
}

.method-list li {
  position: relative;
  display: grid;
  grid-template-columns: 20% 80%;
  align-items: start;
  min-height: min(37vw, 192.4px);
  padding: min(1.5vw, 7.8px) 0 min(4vw, 20.8px);
}

.method-list li:not(:last-child)::after {
  position: absolute;
  bottom: min(1.2vw, 6.24px);
  left: 17%;
  right: 21%;
  height: 1px;
  content: "";
  background: linear-gradient(to right, transparent, #cec9bf 10% 90%, transparent);
}

.method-list li:nth-child(2) {
  transform: none;
}

.method-list li:nth-child(3) {
  transform: none;
}

.method-list li:nth-child(4) {
  transform: none;
  min-height: 0;
  padding-bottom: 0;
}

.method-number {
  position: relative;
  z-index: 1;
  color: #806d31;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.65rem, 11.2vw, 3.7rem);
  line-height: 1;
  align-self: stretch;
}

.method-list li:not(:last-child) .method-number::after {
  position: absolute;
  top: calc(1em + 0.28rem);
  left: 0.63em;
  width: 1px;
  height: calc(100% - 1em - 0.28rem);
  background: rgb(128 109 49 / 72%);
  content: "";
  transform: translateX(-50%);
}

.method-list li:not(:last-child) .method-number::before {
  position: absolute;
  bottom: 0;
  left: 0.63em;
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 50%;
  background: #806d31;
  content: "";
  transform: translate(-50%, -50%);
}

.method-list li > div {
  width: 74%;
}

/* Clip each original illustration to its own source region; neighboring
   drawings in the old raster exports must never enter the visible frame. */
.method-figure {
  position: absolute;
  right: -5.6%;
  top: min(4vw, 20.8px);
  width: 25%;
  overflow: hidden;
  mix-blend-mode: multiply;
}

.method-figure img {
  position: absolute;
  left: 0;
  width: 100%;
  max-width: none;
  height: auto;
}

.method-figure--assess { aspect-ratio: 260 / 226; }
.method-figure--assess img { top: -15.044%; }
.method-figure--condition { aspect-ratio: 320 / 200; }
.method-figure--condition img { top: -30%; }
.method-figure--move { aspect-ratio: 320 / 211; }
.method-figure--move img { top: -35.545%; }
.method-figure--perform { aspect-ratio: 300 / 215; }
.method-figure--perform img { top: -40%; }

.method-list p,
.method-list h3 {
  margin: 0;
}

.method-en {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1rem, 4.5vw, 1.45rem);
  letter-spacing: 0.05em;
}

.method-list h3 {
  margin-top: 0.3rem;
  color: #806d31;
  font-size: min(4.45vw, 1.45rem);
  font-weight: 500;
  letter-spacing: -0.04em;
}

.method-list li > div > p:last-child {
  margin-top: 0.58rem;
  font-size: min(2.75vw, 0.9rem);
  line-height: 1.55;
  letter-spacing: -0.04em;
}

.method-closing {
  position: relative;
  width: 89%;
  margin: min(10vw, 52px) auto min(3vw, 15.6px);
  text-align: center;
  font-size: clamp(1.05rem, 4.5vw, 1.5rem);
  line-height: 1.45;
  letter-spacing: -0.05em;
}

.method-closing strong {
  color: #806d31;
  font-size: 1.18em;
  font-weight: 500;
}

.method-cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 88.11%;
  height: min(8.327vw, 43.3px);
  margin: 0 auto;
  background: url("./assets/optimized/parts/s04-cta.webp") center / 100% 100% no-repeat;
  padding-right: 2.7rem;
  color: #fffdf8;
  font-size: min(3.6vw, 1.17rem);
}

@media (max-width: 340px) {
  .method-closing {
    left: 2.5%;
    width: 95%;
    font-size: 4.2vw;
    letter-spacing: -0.06em;
  }
}

.session-flow {
  aspect-ratio: 853 / 1900;
  background-color: var(--paper);
}

.session-flow::after {
  position: absolute;
  inset: 0 0 auto;
  z-index: 0;
  height: 8.347%;
  content: "";
  pointer-events: none;
  background-color: #fff;
  background-image:
    linear-gradient(rgb(255 255 255 / 68%), rgb(255 255 255 / 68%)),
    url("./assets/optimized/textures/paper-mottle-b.q90.webp");
  background-position: center, 50% 100%;
  background-size: 100% 100%, cover;
  background-repeat: no-repeat;
  background-blend-mode: normal, multiply;
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.session-flow > h2 {
  position: absolute;
  top: 8.201%;
  left: 7%;
  width: 86%;
  margin: 0;
  text-align: center;
  font-size: min(8.3vw, 2.75rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  white-space: nowrap;
}

.session-tab-path {
  position: absolute;
  top: 14.995%;
  left: 4.5%;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.4%;
  width: 91%;
  height: 2.378%;
  pointer-events: none;
}

.session-tab-path::before {
  position: absolute;
  top: 50%;
  right: 2.6%;
  left: 11.975%;
  height: 1px;
  background: #94751f;
  content: "";
  transform: translateY(-50%);
}

.session-tab-path::after {
  position: absolute;
  top: 50%;
  right: 2.65%;
  width: 0.62rem;
  height: 0.62rem;
  border-top: 1px solid #94751f;
  border-right: 1px solid #94751f;
  content: "";
  transform: translateY(-50%) rotate(45deg);
  transform-origin: center;
}

.session-tab-path span {
  z-index: 1;
  align-self: center;
  justify-self: center;
  width: 0.72rem;
  height: 0.72rem;
  border-radius: 50%;
  background: #94751f;
}

.session-tabs {
  position: absolute;
  top: 18.197%;
  left: 4.5%;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.4%;
  width: 91%;
  height: 4.513%;
}

.session-tabs button {
  min-width: 0;
  padding: 0 0.2rem;
  border: 0;
  border-radius: 0.48rem;
  color: var(--ink);
  background-color: #fff;
  background-image:
    url("./assets/generated/section-05-tab-idle.png?v=4"),
    linear-gradient(rgb(255 255 255 / 62%), rgb(255 255 255 / 62%)),
    url("./assets/optimized/textures/paper-mottle-b.q90.webp");
  background-position: center, center, 50% 42%;
  background-size: 100% 100%, 100% 100%, cover;
  background-repeat: no-repeat;
  font-family: Georgia, var(--serif);
  font-size: clamp(0.58rem, 2.75vw, 0.92rem);
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 0.12rem 0.45rem rgb(64 53 28 / 5%);
  mix-blend-mode: normal;
  touch-action: manipulation;
}

.session-tabs button[aria-selected="true"] {
  color: #fffdf8;
  border-radius: 0;
  background-color: transparent;
  background-image: url("./assets/generated/section-05-tab-active.png?v=4");
  background-position: center;
  background-size: 100% 100%;
  box-shadow: none;
  mix-blend-mode: darken;
}

.session-card-scroll {
  position: absolute;
  top: 25.156%;
  left: 4.57%;
  z-index: 1;
  display: flex;
  gap: 2.35%;
  width: 95.43%;
  height: 38.268%;
  overflow-x: auto;
  overflow-y: hidden;
  background: transparent;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.session-card-scroll::after {
  content: "";
  flex: 0 0 24%;
}

.session-card-scroll::-webkit-scrollbar,
.service-card-scroll::-webkit-scrollbar {
  display: none;
}

.session-card {
  position: relative;
  flex: 0 0 73.75%;
  height: 100%;
  background-color: #fff;
  background-image:
    linear-gradient(rgb(255 255 255 / 58%), rgb(255 255 255 / 58%)),
    url("./assets/optimized/textures/paper-mottle-b.q90.webp");
  background-position: center, 50% 40%;
  background-size: 100% 100%, cover;
  background-repeat: no-repeat;
  border: 1px solid rgb(155 130 60 / 42%);
  border-radius: 0.72rem;
  box-shadow: 0 0.2rem 0.85rem rgb(64 53 28 / 6%);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  mix-blend-mode: normal;
}

.session-card-icon {
  position: absolute;
  top: 6.5%;
  left: 50%;
  width: 45%;
  height: 29%;
  object-fit: contain;
  mix-blend-mode: multiply;
  transform: translateX(-50%) scale(1.28);
  transform-origin: center;
}

.session-card-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.session-card .card-icon,
.service-card .card-icon {
  position: absolute;
  left: 50%;
  max-width: none;
  object-fit: contain;
  transform: translateX(-50%);
}

.session-card .card-icon {
  top: 17.5%;
  width: 31%;
  height: 24%;
}

.session-card h3,
.session-card p {
  position: absolute;
  left: 6%;
  width: 88%;
  margin: 0;
  text-align: center;
}

.session-card h3 {
  top: 45.2%;
  font-size: clamp(1.65rem, 7.1vw, 2.35rem);
  font-weight: 500;
  letter-spacing: -0.06em;
}

.session-card p {
  top: 66.2%;
  font-size: clamp(1rem, 4.25vw, 1.4rem);
  line-height: 1.72;
  letter-spacing: -0.04em;
}

.session-card h3 small {
  display: block;
  margin-top: 0.2em;
  font-size: 0.5em;
  line-height: 1.2;
  letter-spacing: 0;
}

.session-card:nth-child(2) h3 {
  top: 42%;
}

.session-card:nth-child(2) p {
  left: 2%;
  width: 96%;
  white-space: nowrap;
}

.session-note {
  position: absolute;
  top: 70.363%;
  left: 8.5%;
  width: 83%;
  margin: 0;
  text-align: center;
  font-size: clamp(0.98rem, 4.2vw, 1.38rem);
  line-height: 1.85;
  letter-spacing: -0.04em;
}

.session-cta {
  position: absolute;
  top: 87.432%;
  left: 5.1%;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 89.8%;
  height: 7.182%;
  padding-right: 2.6rem;
  color: #fffdf8;
  font-size: clamp(1.05rem, 4.55vw, 1.5rem);
}

.session-service-transition {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  height: 7.958%;
  pointer-events: none;
}

.session-service-transition::before,
.session-service-transition::after {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 17.5%;
  content: "";
  background-color: #f8f6f1;
  background-image:
    linear-gradient(rgb(248 246 241 / 84%), rgb(248 246 241 / 84%)),
    url("./assets/optimized/textures/paper-mottle-b.q90.webp");
  background-position: center, 61% 74%;
  background-size: 100% 100%, cover;
  background-repeat: no-repeat;
  background-blend-mode: normal, multiply;
}

.session-service-transition::before {
  left: 0;
  clip-path: polygon(0 0, 100% 100%, 0 100%);
}

.session-service-transition::after {
  right: 0;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.services {
  aspect-ratio: 941 / 1715;
  background-color: #f8f6f1;
}

.services::before {
  display: block;
  opacity: 0.16;
}

.services::after {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 1;
  width: 1px;
  height: 97%;
  content: "";
  background: rgba(155, 130, 60, 0.82);
  pointer-events: none;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.service-concept-heading {
  position: absolute;
  top: 7.36%;
  left: 4.2%;
  z-index: 3;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: min(8vw, 2.62rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.12em;
  white-space: nowrap;
}

.service-concept-heading::before {
  display: none;
}

.service-concept-heading::after {
  position: absolute;
  top: calc(100% + 0.78rem);
  left: 0;
  width: 2.65rem;
  height: 1px;
  content: "";
  background: #9b823c;
}

.service-timeline {
  position: absolute;
  inset: 0;
  z-index: 2;
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: none;
}

.service-item {
  position: absolute;
  inset: 0;
}

.service-item::before {
  position: absolute;
  top: var(--node-y);
  left: 50%;
  width: clamp(0.42rem, 1.8vw, 0.58rem);
  aspect-ratio: 1;
  content: "";
  background: #9b823c;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.service-item-number,
.service-item-name {
  position: absolute;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.service-item-number {
  top: var(--node-y);
  color: #9b823c;
  font-size: min(6.4vw, 2.1rem);
  line-height: 1;
  transform: translateY(-50%);
}

.service-item--right .service-item-number {
  left: calc(50% + clamp(0.65rem, 2.8vw, 0.9rem));
}

.service-item--left .service-item-number {
  right: calc(50% + clamp(0.65rem, 2.8vw, 0.9rem));
}

.service-item-name {
  top: var(--name-y);
  left: var(--content-x);
  width: var(--content-w);
  color: #272522;
  font-size: min(4vw, 1.3rem);
  line-height: 1.35;
  letter-spacing: 0.2em;
  text-align: center;
  white-space: nowrap;
}

.service-item-figure {
  position: absolute;
  top: var(--figure-y);
  left: var(--figure-x);
  width: var(--figure-w);
  height: var(--figure-h);
  object-fit: contain;
}

.service-item-name-ja {
  display: block;
  margin-top: 0.12em;
  font-family: var(--serif);
  font-size: 0.8em;
  letter-spacing: 0.12em;
}

.service-item-description {
  position: absolute;
  top: var(--description-y);
  left: var(--description-x);
  width: var(--description-w);
  margin: 0;
  color: #282725;
  font-size: min(2.45vw, 0.8rem);
  line-height: 1.5;
  letter-spacing: -0.055em;
  text-align: center;
  white-space: nowrap;
}

.service-item--01 {
  --node-y: 13.55%;
  --name-y: 15.15%;
  --content-x: 55%;
  --content-w: 42%;
  --figure-y: 17.55%;
  --figure-x: 57%;
  --figure-w: 38%;
  --figure-h: 13.2%;
  --description-y: 30.15%;
  --description-x: 52%;
  --description-w: 47%;
}

.service-item--02 {
  --node-y: 30.55%;
  --name-y: 32.55%;
  --content-x: 5%;
  --content-w: 34%;
  --figure-y: 35.15%;
  --figure-x: 4.5%;
  --figure-w: 43%;
  --figure-h: 9.9%;
  --description-y: 45.45%;
  --description-x: 0.5%;
  --description-w: 48%;
}

.service-item--03 {
  --node-y: 47.65%;
  --name-y: 47.8%;
  --content-x: 56%;
  --content-w: 42%;
  --figure-y: 53.05%;
  --figure-x: 59.5%;
  --figure-w: 35%;
  --figure-h: 12.8%;
  --description-y: 66.35%;
  --description-x: 52%;
  --description-w: 47%;
}

.service-item--04 {
  --node-y: 64.85%;
  --name-y: 65.9%;
  --content-x: 4%;
  --content-w: 34%;
  --figure-y: 68.75%;
  --figure-x: 8%;
  --figure-w: 36%;
  --figure-h: 15.2%;
  --description-y: 84.55%;
  --description-x: 1%;
  --description-w: 47%;
}

.service-item--05 {
  --node-y: 80.4%;
  --name-y: 79.95%;
  --content-x: 62%;
  --content-w: 36%;
  --figure-y: 82.6%;
  --figure-x: 59.5%;
  --figure-w: 34%;
  --figure-h: 12.4%;
  --description-y: 95.35%;
  --description-x: 51%;
  --description-w: 49%;
}

.service-item--05 .service-item-name {
  font-size: min(3.1vw, 1.05rem);
  letter-spacing: 0.16em;
}

.service-item--03 .service-item-figure {
  top: 54.1%;
  left: 58%;
  width: 38%;
  height: 12.4%;
}

.golf {
  aspect-ratio: 941 / 1995;
  background-color: var(--paper);
}

.golf-service-transition {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: 9.686%;
  pointer-events: none;
}

.golf-service-transition::before,
.golf-service-transition::after {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 24%;
  content: "";
  background-color: #f8f6f1;
  background-image:
    linear-gradient(rgb(248 246 241 / 84%), rgb(248 246 241 / 84%)),
    url("./assets/optimized/textures/paper-mottle-b.q90.webp");
  background-position: center, 61% 74%;
  background-size: 100% 100%, cover;
  background-repeat: no-repeat;
  background-blend-mode: normal, multiply;
}

.golf-service-transition::before {
  left: 0;
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.golf-service-transition::after {
  right: 0;
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}

.golf-copy {
  position: absolute;
  top: 2.860%;
  left: 0;
  z-index: 2;
  width: 100%;
  text-align: center;
}

.golf-photo-swing {
  clip-path: polygon(17.5% 0, 100% 0, 100% 87%, 18.9% 96%, 3.5% 92%, 3.5% 48%);
  z-index: 4;
}

.golf-photo-swing-club {
  mix-blend-mode: normal;
  z-index: 5;
}

.golf-photo-coach {
  clip-path: polygon(8.2% 15%, 100% 4.6%, 100% 100%, 0 76%);
  z-index: 3;
}

.golf-photo-medball {
  clip-path: polygon(0 4.5%, 100% 16.6%, 92% 93%, 0 93%);
  object-position: center center;
  mix-blend-mode: normal;
  z-index: 1;
}

.golf-photo-gear {
  clip-path: polygon(24% 0, 100% 5%, 100% 94%, 3% 94%);
  z-index: 2;
}

.golf-photo-client-4d > img {
  position: absolute;
  left: -23.6%;
  top: -3.7%;
  width: 123.6%;
  max-width: none;
  height: auto;
}

/* Keep the supplied person and machine over the edited poster background. */
.golf-photo-client-4d > .golf-4d-original {
  clip-path: polygon(53% 0, 100% 0, 100% 80%, 77% 80%, 77% 83%, 64% 83%, 62% 80%, 35% 80%, 35% 38%, 39% 31%, 53% 31%);
}

.golf-kicker {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(0.95rem, 4.1vw, 1.35rem);
  letter-spacing: 0.19em;
}

.golf-copy h2 {
  position: relative;
  margin: 0.75rem 0 0;
  font-size: min(10.5vw, 3.45rem);
  font-weight: 500;
  line-height: 1.28;
  letter-spacing: -0.07em;
}

.golf-copy h2::after {
  position: absolute;
  bottom: -0.72rem;
  left: 20.245%;
  width: 59.511%;
  height: 0.5rem;
  content: "";
  background: url("./assets/parts/s08-title-line.png?v=3") center / 100% 100% no-repeat;
  pointer-events: none;
}

.golf-copy h2 span {
  display: block;
  white-space: nowrap;
}

.golf-copy h2 span:first-child {
  transform: scaleX(1.12);
  transform-origin: center;
}

.golf-copy h2 span:last-child {
  text-shadow: none;
}

.golf-copy > p:not(.golf-kicker) {
  margin: 0.92rem 0 0;
  font-size: min(3.35vw, 1.08rem);
  line-height: 1.62;
  letter-spacing: -0.04em;
}

.golf-copy-lines span {
  display: block;
  white-space: nowrap;
}

.golf-bottom-stack {
  position: absolute;
  z-index: 6;
  bottom: 0.3%;
  left: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  align-items: center;
  width: 100%;
}

.golf-closing {
  position: static;
  width: 88%;
  margin: 0;
  text-align: center;
  font-size: min(5.55vw, 1.85rem);
  line-height: 1.55;
  letter-spacing: -0.05em;
}

.golf-badge {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 76.514%;
  aspect-ratio: 722 / 86;
  margin: 0;
  background: url("./assets/optimized/parts/s07-badge.webp?v=3") center / 100% 100% no-repeat;
  font-size: clamp(0.73rem, 3.12vw, 1.02rem);
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.golf-badge span {
  line-height: 1;
  transform: translateY(0.32em);
}

.golf-cta {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 91.392%;
  aspect-ratio: 860 / 130;
  padding-right: 2.5rem;
  background: url("./assets/optimized/parts/s07-cta.webp?v=3") center / 100% 100% no-repeat;
  color: #fffdf8;
  font-size: min(3.45vw, 1.12rem);
}

.trainer {
  aspect-ratio: 941 / 1722;
  background-color: var(--paper);
}

.reasons {
  padding: 40.4cqw 0 14cqw;
  background-color: var(--paper);
}

.recommended {
  aspect-ratio: 941 / 1670;
  background-color: var(--paper);
}

.recommended-approved-art {
  display: block;
  object-fit: fill;
  mix-blend-mode: normal !important;
}

.recommended-edge-blend {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}

.recommended-edge-blend::before,
.recommended-edge-blend::after {
  position: absolute;
  right: -1%;
  left: -1%;
  height: 4.2%;
  content: "";
  background-color: rgb(228 223 217 / 30%);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
}

.recommended-edge-blend::before {
  top: 0;
  background-image: linear-gradient(to bottom, rgb(228 223 217 / 82%) 0%, rgb(228 223 217 / 30%) 48%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgb(0 0 0 / 76%) 54%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, rgb(0 0 0 / 76%) 54%, transparent 100%);
}

.recommended-edge-blend::after {
  bottom: 0;
  background-image: linear-gradient(to top, rgb(228 223 217 / 82%) 0%, rgb(228 223 217 / 30%) 48%, transparent 100%);
  -webkit-mask-image: linear-gradient(to top, #000 0%, rgb(0 0 0 / 76%) 54%, transparent 100%);
  mask-image: linear-gradient(to top, #000 0%, rgb(0 0 0 / 76%) 54%, transparent 100%);
}

.price {
  padding: 9cqw 5.2cqw;
  background-color: var(--paper);
}

.faq {
  aspect-ratio: 941 / 1670;
  background-color: var(--paper);
}

.access {
  padding-top: 80.68%;
  padding-bottom: 11.82%;
  background-color: var(--paper);
}

.access .access-photo {
  height: 80.68cqw !important;
}

.final-cta {
  aspect-ratio: 942 / 1669;
  background-color: var(--paper);
}

.trainer-heading {
  position: absolute;
  top: 3.301%;
  left: 0;
  width: 100%;
  text-align: center;
}

.trainer-heading p,
.trainer-heading h2 {
  margin: 0;
}

.trainer-kicker {
  font-family: Georgia, "Times New Roman", serif;
  font-size: min(10.8vw, 3.51rem);
  letter-spacing: 0.04em;
}

.trainer-heading h2 {
  margin-top: 1.1rem;
  font-size: min(4.45vw, 1.45rem);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: -0.055em;
}

.trainer-profile-card {
  position: absolute;
  top: 23.294%;
  left: 5%;
  z-index: 1;
  width: 90%;
  height: 72.822%;
  overflow: hidden;
  background-color: #fffefa;
  background-image:
    linear-gradient(rgb(255 255 255 / 72%), rgb(255 255 255 / 72%)),
    url("./assets/optimized/textures/paper-mottle-b.q90.webp");
  background-position: center, 50% 40%;
  background-size: auto, 132% auto;
  border: 1px solid rgb(155 130 60 / 38%);
  border-radius: 0.9rem;
  box-shadow: 0 0.55rem 1.6rem rgb(64 53 28 / 9%);
}

.trainer-card-photo {
  width: 100%;
  height: 48%;
  overflow: hidden;
  border-bottom: 1px solid rgb(155 130 60 / 26%);
}

.trainer-card-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 10%;
}

.trainer-credentials {
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  width: 86%;
  height: 22%;
  margin: 4.2% 7% 0;
  padding: 0 0 0 1.05rem;
  border-top: 1px solid rgb(26 24 23 / 28%);
  list-style: none;
}

.trainer-credentials li {
  position: relative;
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgb(26 24 23 / 28%);
  font-size: min(3.2vw, 1.04rem);
  line-height: 1.3;
  letter-spacing: -0.035em;
  white-space: nowrap;
}

.trainer-credentials li::before {
  position: absolute;
  top: 20%;
  bottom: 20%;
  left: -0.82rem;
  width: 2px;
  content: "";
  background: #9a8034;
}

.trainer-credentials li:last-child {
  font-size: min(2.85vw, 0.93rem);
}

.trainer-body {
  width: 86%;
  margin: 3.2% 7% 0;
  text-align: center;
  font-size: min(2.8vw, 0.9rem);
  line-height: 1.6;
  letter-spacing: -0.055em;
}

.trainer-tpi-logo {
  position: absolute;
  right: 4%;
  bottom: 4%;
  width: 17.4%;
  height: auto;
}

.reasons > h2 {
  position: absolute;
  top: 14cqw;
  left: 5.5%;
  margin: 0;
  font-size: min(13vw, 4.23rem);
  font-weight: 500;
  letter-spacing: -0.07em;
  transform: scaleX(1.08);
  transform-origin: left center;
}

.reasons-list {
  position: relative;
  left: 7.3%;
  display: grid;
  width: 88%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.reasons-list li {
  position: relative;
  display: grid;
  grid-template-columns: 22% 78%;
  align-items: center;
  min-height: 28cqw;
  padding: 3.6cqw 0;
}

.reasons-list li > div {
  align-self: center;
  padding: 0.1rem 0.2rem 0.15rem 1.1rem;
}

.reasons-row-guide {
  display: none;
}

.reasons .art-part[src*="s09-header-line"] {
  top: 29.75cqw !important;
  height: 3.72cqw !important;
}

.reasons-list li::before {
  position: absolute;
  top: 13%;
  left: 24.2%;
  width: 1px;
  height: 74%;
  content: "";
  background-color: #9b8237;
  transform: translateX(-50%) rotate(16deg);
  transform-origin: center;
  pointer-events: none;
}

.reasons-list li::after {
  position: absolute;
  top: 94%;
  right: -5.34%;
  left: 25.5%;
  height: 1px;
  content: "";
  background-color: rgba(155, 130, 55, 0.72);
  pointer-events: none;
}

.reasons-list span {
  position: relative;
  left: -5.5cqw;
  color: #8a7537;
  font-family: Georgia, "Times New Roman", serif;
  font-size: min(18vw, 5.85rem);
  font-style: italic;
  line-height: 1;
  letter-spacing: -0.08em;
}

.reasons-list p {
  position: relative;
  margin: 0;
  padding: 0;
  font-size: 4.05cqw;
  line-height: 1.3;
  letter-spacing: -0.055em;
  transform: none;
}

.reasons-list li:last-child p {
  padding: 0;
  font-size: 4.05cqw;
  transform: none;
}

.reasons-list small {
  display: block;
  margin-top: 0.25em;
  font-size: max(11px, 3.1cqw);
  line-height: 1.65;
  letter-spacing: -0.02em;
}

.reasons-list .reasons-copy-balanced {
  font-size: max(11px, 3cqw);
}

.recommended > h2 {
  position: absolute;
  top: 4.2%;
  left: 5.7%;
  margin: 0;
  font-size: clamp(2.1rem, 9.05vw, 3rem);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: -0.065em;
}

.recommended > h2 em {
  color: #806d31;
  font-style: normal;
}

.recommended-list {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: none;
}

.recommended-list li {
  position: absolute;
  z-index: 2;
  margin: 0;
  padding: 0;
  background: transparent;
  font-size: min(4vw, 1.3rem);
  line-height: 1.35;
  letter-spacing: -0.05em;
  white-space: nowrap;
}

.recommended-list li::before {
  content: none;
}

.recommended-list li:nth-child(1) {
  top: 18.45%;
  left: 82.47%;
}

.recommended-list li:nth-child(2) {
  top: 27.72%;
  left: 7.23%;
}

.recommended-list li:nth-child(3) {
  top: 59.44%;
  left: 56.43%;
}

.recommended-list li:nth-child(4) {
  top: 68.7%;
  left: 7.2%;
  isolation: isolate;
  padding-left: 0.78rem;
  color: var(--ink);
}

.recommended-list li:nth-child(4)::before {
  position: absolute;
  top: 0.08rem;
  bottom: 0.08rem;
  left: 0;
  display: block;
  width: 2px;
  content: "";
  background: #9b823c;
}

.recommended-list li:nth-child(4)::after {
  position: absolute;
  z-index: -1;
  inset: -0.35rem -0.7rem -0.35rem -0.45rem;
  content: "";
  background: radial-gradient(ellipse at 45% 50%, rgb(244 241 235 / 88%) 0%, rgb(244 241 235 / 66%) 56%, transparent 82%);
  filter: blur(7px);
}

.recommended > h2.recommended-reference-copy {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.recommended-clean-label {
  position: absolute;
  z-index: 1;
  background-image: url("./assets/optimized/generated/recommended-labels-clean.q95.webp");
  background-repeat: no-repeat;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 4% 96%, transparent), linear-gradient(to bottom, transparent, #000 5% 95%, transparent);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to right, transparent, #000 4% 96%, transparent), linear-gradient(to bottom, transparent, #000 5% 95%, transparent);
  mask-composite: intersect;
}

.recommended-clean-label--1 {
  background-image: url("./assets/optimized/generated/recommended-labels-clean-v2.q95.webp");
  top: 19.7605%;
  left: 75.0266%;
  width: 24.9734%;
  height: 8.0838%;
  background-size: 400.4255% 1237.037%;
  background-position: 100% 21.4984%;
}

.recommended-clean-label--2 {
  top: 29.6407%;
  left: 2.6567%;
  width: 26.0361%;
  height: 10.479%;
  background-size: 384.0816% 954.2857%;
  background-position: 3.592% 33.1104%;
}

.recommended-clean-label--3 {
  top: 62.2754%;
  left: 51.0096%;
  width: 34.0064%;
  height: 7.7844%;
  background-size: 294.0625% 1284.6154%;
  background-position: 77.2947% 67.5325%;
}

.recommended-list li {
  isolation: isolate;
  padding: 0.08em 0 0.08em 0.7em;
  background: none;
  box-shadow: none;
  font-size: min(4vw, 1.3rem);
  text-shadow: none;
}

.recommended-list li::before {
  position: absolute;
  top: 0.08em;
  bottom: 0.08em;
  left: 0.15em;
  display: block;
  width: 2px;
  content: "";
  background: #9b823c;
}

.recommended-list li::after {
  content: none;
}

.recommended-list li:nth-child(1) {
  top: 20.5%;
  left: 76.2%;
}

.recommended-list li:nth-child(2) {
  top: 31.1%;
  left: 4%;
}

.recommended-list li:nth-child(3) {
  top: 63.3%;
  left: 52.6%;
}

.recommended-list li:nth-child(4) {
  position: absolute;
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.price > h2,
.faq > h2,
.access > h2 {
  position: absolute;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: 0.15em;
}

.price > h2 {
  position: relative;
  margin: 0 0 6cqw;
  font-size: 12.7cqw;
}

.price-admission {
  position: relative;
  margin: 0 0 7cqw;
  font-size: max(14px, 4.6cqw);
  white-space: nowrap;
}

.price-admission strong {
  font-family: var(--serif);
  font-size: 1.72em;
  font-weight: 400;
  font-variant-numeric: lining-nums tabular-nums;
}

.price small {
  font-size: 0.56em;
}

.price-group-heading {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 1.8cqw;
  margin: 0;
  font-family: var(--sans);
  font-size: max(11px, 2.9cqw);
  font-weight: 500;
  letter-spacing: 0.06em;
}

.price-group-heading span {
  padding-left: 1.8cqw;
  border-left: 1px solid var(--line);
  font-family: var(--serif);
  font-size: max(11px, 2.6cqw);
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.price-subscription {
  position: relative;
  margin: 1cqw 0 3cqw;
  color: #746029;
  font-size: max(11.5px, 3cqw);
}

.price-group-heading--ticket {
  margin: 6cqw 0 2cqw;
}

.price-list {
  position: relative;
  display: grid;
  grid-auto-rows: minmax(18.5cqw, auto);
  width: 100%;
  margin: 0;
}

.price-list > div {
  position: relative;
  display: grid;
  grid-template-columns: 45.5% 54.5%;
  align-items: center;
  border-top: 1px solid rgba(26, 24, 23, 0.28);
}

.price-list > div:last-child {
  border-bottom: 1px solid rgba(26, 24, 23, 0.28);
}

.price-list > div::after {
  position: absolute;
  top: 20%;
  bottom: 20%;
  left: 45.5%;
  width: 1px;
  content: "";
  background: rgba(26, 24, 23, 0.26);
}

.price-list .is-featured::before {
  content: none;
}

.price-list dt,
.price-list dd {
  margin: 0;
}

.price-list dt {
  padding-left: 3.8%;
  font-family: Georgia, "Times New Roman", serif;
  font-size: max(14px, 4.1cqw);
  white-space: nowrap;
}

.price-list dd {
  display: grid;
  grid-template-columns: 3.5em 1fr;
  column-gap: 0.35em;
  align-items: center;
  padding: 0 3.2% 0 6.5%;
  font-family: var(--serif);
  font-size: max(10px, 2.8cqw);
  white-space: nowrap;
}

.price-list dd strong {
  font-family: var(--serif);
  font-size: calc(1.78em * var(--ground-price-scale, 1));
  font-weight: 400;
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1;
}

.price-frequency,
.price-amount {
  white-space: nowrap;
}

.price-amount {
  display: inline-flex;
  align-items: baseline;
}

.price-list:not(.price-list--ticket) .price-frequency {
  grid-row: 1 / 3;
}

.price-per-month {
  font-size: 1em;
}

.price-list dd > small {
  grid-column: 2;
  justify-self: start;
  margin-top: 0.5cqw;
  font-size: 0.75em;
}

.price-list--ticket {
  grid-auto-rows: minmax(21cqw, auto);
}

.price-list .is-ticket dd {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.7cqw;
  align-items: center;
  padding: 0 3.2% 0 6.5%;
  line-height: 1;
}

.price-list .is-ticket dd::after {
  content: none;
}

.ticket-price {
  display: grid;
  align-content: center;
  gap: 0.5cqw;
}

.ticket-sessions {
  font-size: 0.9em;
  line-height: 1.1;
}

.ticket-amount {
  display: flex;
  align-items: baseline;
  white-space: nowrap;
}

.ticket-amount strong {
  font-size: calc(1.66em * var(--ground-price-scale, 1)) !important;
}

.ticket-amount small {
  margin-left: 0.1em;
  font-size: 0.58em;
}

.price-list .is-ticket dd em {
  z-index: 1;
  justify-self: start;
  font-size: max(10px, 2.5cqw);
  font-style: normal;
  white-space: nowrap;
}

.price-trial {
  position: relative;
  display: grid;
  grid-template-columns: 53.4% 46.6%;
  align-items: center;
  width: 100%;
  height: 20cqw;
  margin-top: 6cqw;
  border: 1px solid rgba(110, 91, 38, 0.72);
  overflow: hidden;
}

.price-trial::after {
  position: absolute;
  top: 20%;
  bottom: 20%;
  left: 53.4%;
  width: 1px;
  content: "";
  background: rgba(110, 91, 38, 0.72);
}

.price-trial p {
  margin: 0;
  text-align: center;
  font-size: min(4.1vw, 1.35rem);
  white-space: nowrap;
}

.price-trial-amount {
  display: flex;
  align-items: baseline;
  justify-content: center;
  font-size: min(3vw, 0.98rem) !important;
}

.price-trial strong {
  font-family: var(--serif);
  font-size: calc(2.85em * var(--ground-price-scale, 1));
  font-weight: 400;
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1;
}

.price-trial-amount small {
  margin-left: 0.18em;
  font-size: 0.62em;
}

.price-cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 14.2cqw;
  margin-top: 5cqw;
  padding-right: 2.8rem;
  color: #fffdf8;
  border: 1px solid #75601d;
  border-radius: 0.28rem;
  background: linear-gradient(90deg, #856d25, #a38932 52%, #7c6725);
  font-size: min(4.2vw, 1.37rem);
}

.junior-price {
  position: relative;
  background: #f7f4ee;
}

.access-map-link {
  text-decoration: underline;
  text-decoration-color: rgb(139 116 45 / 45%);
  text-underline-offset: 0.18em;
}

.junior-price-cover[hidden] {
  display: none !important;
}

.junior-price-cover {
  position: absolute;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.6cqw;
  white-space: nowrap;
  font-family: "Didot", "Bodoni 72", "Times New Roman", serif;
  line-height: 1.12;
}

.junior-price-cover--normal {
  top: 65.9%;
  width: 21%;
  height: 3.8%;
  align-items: center;
  color: #80817f;
  background: #e9e6df url("./assets/optimized/client/revision-20261008/junior-athlete-pricing.webp") 26.96% 99.3% / 476.1905% auto;
  font-size: 4.85cqw;
}

.junior-price-cover--normal del {
  position: relative;
  text-decoration: none;
}

.junior-price-cover--normal del::after {
  position: absolute;
  top: 58%;
  left: -2%;
  width: 104%;
  border-top: 0.23cqw solid #e37f82;
  content: "";
  transform: rotate(-11deg);
}

.junior-price-cover--normal [data-ground-price] {
  font-size: calc(1em * var(--ground-price-scale, 1));
}

.junior-price-cover--normal.junior-price-cover--two { left: 21.3%; }
.junior-price-cover--normal.junior-price-cover--four { left: 70.4%; background-position-x: 89.06%; }

.junior-price-cover--offer {
  top: 75.91%;
  width: 41.5%;
  height: 7.36%;
  padding-top: 1cqw;
  color: #fff;
  background: #272825;
  font-size: 8.6cqw;
}

.junior-price-cover--offer [data-ground-price] {
  font-size: calc(1em * var(--ground-price-scale, 1));
}

.junior-price-cover--offer .junior-price-yen { font-size: 4cqw; }
.junior-price-cover--offer small { font-family: var(--serif); font-size: 1.65cqw; }
.junior-price-cover--offer.junior-price-cover--two { left: 5.6%; }
.junior-price-cover--offer.junior-price-cover--four { left: 53.6%; }

.junior-price img {
  display: block;
  width: 100%;
  height: auto;
}

.executive-price {
  --paper-texture: url("./assets/optimized/textures/paper-mottle-a.q90.webp");
  padding: 4cqw 0;
  background-color: var(--paper);
}

.executive-artwork {
  position: relative;
  z-index: 1;
  width: 79.32%;
  min-height: 88.86cqw;
  margin: 0 auto;
  padding: 6.2cqw 5.8cqw 4.3cqw;
  color: #f0ebe3;
  isolation: isolate;
}

.executive-background {
  position: absolute;
  z-index: -1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  pointer-events: none;
}

.executive-heading h2 {
  position: static;
  margin: 0;
  color: #b9a17a;
  font-family: "Didot", "Bodoni 72", "Times New Roman", serif;
  font-size: 5cqw;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.12em;
}

.executive-heading p {
  margin: 3.2cqw 0 0;
  font-size: 4.15cqw;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.02em;
}

.executive-divider {
  width: 100%;
  height: 1px;
  margin: 3.2cqw 0 0;
  object-fit: fill;
}

.executive-rate {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 1.6cqw;
  margin-top: 2.5cqw;
  color: #f0ebe3;
  white-space: nowrap;
}

.executive-rate p {
  margin: 0;
}

.executive-frequency {
  font-size: 3.6cqw;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.executive-amount {
  display: flex;
  align-items: baseline;
  gap: 0.6cqw;
}

.executive-amount strong {
  font-family: "Didot", "Bodoni 72", "Times New Roman", serif;
  font-size: calc(8.4cqw * var(--ground-price-scale, 1));
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.035em;
}

.executive-amount span {
  font-size: 2.7cqw;
  line-height: 1;
  letter-spacing: 0;
}

.executive-tax {
  font-size: 2.65cqw;
  line-height: 1.2;
  letter-spacing: -0.025em;
}

.executive-benefits {
  padding: 0;
  margin: 3.2cqw 0 0;
  list-style: none;
  font-size: max(11px, 3.15cqw);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.01em;
}

.executive-benefits li {
  position: relative;
  padding-left: 4.5cqw;
}

.executive-benefits li::before {
  position: absolute;
  top: 0.52em;
  left: 0.65cqw;
  width: 1.25cqw;
  height: 1.25cqw;
  content: "";
  background: url("./assets/client/executive-20261006/brass-dot.png") center / contain no-repeat;
}

.executive-benefit-note {
  display: block;
  font-size: max(10px, 2.8cqw);
  line-height: 1.45;
  letter-spacing: 0;
}

.faq > h2 {
  top: 10.25%;
  left: 7.2%;
  font-size: clamp(3.05rem, 13.2vw, 4.35rem);
}

.faq-list {
  position: absolute;
  top: 23.8%;
  left: 5.5%;
  width: 88.8%;
  margin: 0;
}

.faq-list details {
  position: relative;
  border-bottom: 1px solid rgba(26, 24, 23, 0.28);
}

.faq-list details::before {
  position: absolute;
  top: 16%;
  bottom: 16%;
  left: 13.5%;
  width: 1px;
  content: "";
  background: rgba(26, 24, 23, 0.32);
}

.faq-list summary,
.faq-answer {
  display: grid;
  grid-template-columns: 18% 82%;
  align-items: center;
  margin: 0;
  font-size: min(3.62vw, 1.18rem);
  line-height: 1.35;
  letter-spacing: -0.045em;
  white-space: normal;
}

.faq-list summary {
  position: relative;
  min-height: clamp(3.85rem, 16vw, 5.2rem);
  padding-right: 2rem;
  list-style: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::after {
  position: absolute;
  right: 0.42rem;
  width: 0.72rem;
  height: 0.72rem;
  content: "";
  border-right: 1px solid #806d31;
  border-bottom: 1px solid #806d31;
  transform: translateY(-22%) rotate(45deg);
  transition: transform 180ms ease;
}

.faq-list details[open] summary::after {
  transform: translateY(22%) rotate(225deg);
}

.faq-list summary:focus-visible {
  outline: 2px solid rgba(128, 109, 49, 0.72);
  outline-offset: -2px;
}

.faq-answer {
  min-height: clamp(3.4rem, 13vw, 4.35rem);
  padding: 0 2rem 0.55rem 0;
}

.faq-mark {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.78em;
  line-height: 1;
}

.faq-list summary .faq-mark {
  color: #806d31;
}

.faq-copy {
  min-width: 0;
}

.access > h2 {
  top: 7.63cqw;
  left: 7.2%;
  font-size: clamp(2.55rem, 11vw, 3.65rem);
  text-shadow:
    0 0 2px rgb(255 255 255 / 100%),
    0 0 5px rgb(250 248 244 / 96%),
    0 0 11px rgb(248 245 239 / 84%),
    0 0 17px rgb(248 245 239 / 58%);
}

.access-details {
  position: relative;
  left: 7.1%;
  width: 85.8%;
}

.access-details p {
  margin: 0;
}

.access-name {
  padding-bottom: 0.3em;
  border-bottom: 1px solid rgb(128 109 49 / 30%);
  font-size: min(3.7cqw, 1.2rem);
  letter-spacing: 0.035em;
  white-space: nowrap;
}

.access-name strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18em;
  font-weight: 400;
  letter-spacing: 0.12em;
}

.access-address {
  margin-top: 1rem !important;
  font-size: clamp(0.78rem, 3.33vw, 1.08rem);
  line-height: 1.55;
  letter-spacing: -0.045em;
  white-space: normal;
}

.access-stations {
  margin-top: 1rem !important;
  font-size: min(3.65cqw, 1.19rem);
  white-space: nowrap;
}

.access-stations span {
  margin: 0 0.35em;
  color: #77716a;
}

.access-hours {
  margin-top: 0.75rem !important;
  font-size: clamp(0.98rem, 4.2vw, 1.38rem);
}

.access-map-embed {
  position: relative;
  z-index: 3;
  margin-top: 4cqw;
  left: 5.3%;
  width: 89.2%;
  height: 26.24cqw;
  overflow: hidden;
  border: 1px solid rgb(128 109 49 / 38%);
  border-radius: 0.6rem;
  background: var(--paper);
}

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

.access-cta {
  position: relative;
  margin-top: 4.17cqw;
  left: 7.15%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 85.7%;
  height: 12.05cqw;
  padding-right: 2.6rem;
  color: #fff;
  border: 1px solid #05b94e;
  border-radius: 0.25rem;
  background: #06c755;
  box-shadow: inset 0 0 0.8rem rgb(0 107 43 / 12%);
  font-size: min(4.2vw, 1.37rem);
}

.access-cta::after {
  position: absolute;
  right: 5.5%;
  content: "→";
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.65em;
  line-height: 1;
}

.final-copy {
  position: absolute;
  top: 43.5%;
  left: 8.6%;
  width: 83%;
}

.final-copy h2,
.final-copy p {
  margin: 0;
}

.final-copy h2 {
  font-size: clamp(2.08rem, 9vw, 2.98rem);
  font-weight: 500;
  line-height: 1.44;
  letter-spacing: -0.075em;
}

.final-copy h2 em {
  color: #806d31;
  font-style: normal;
}

.final-copy p {
  margin-top: 3.3cqw;
  font-size: min(4cqw, 1.3rem);
  letter-spacing: -0.04em;
  white-space: nowrap;
}

.final-actions {
  position: absolute;
  top: 76.093%;
  left: 6.369%;
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: clamp(0.42rem, 2.1vw, 0.7rem);
  width: 87.049%;
  height: 15.9%;
}

.final-actions a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding-right: 2.5rem;
  border: 1px solid rgba(85, 68, 27, 0.88);
  font-size: min(3.65vw, 1.19rem);
}

.final-actions a:first-child {
  color: #fffdf8;
  border-radius: 0.22rem;
  background:
    radial-gradient(circle at 18% 28%, rgb(255 255 255 / 9%), transparent 30%),
    radial-gradient(circle at 78% 72%, rgb(42 28 0 / 13%), transparent 37%),
    linear-gradient(102deg, #80641c 0%, #aa882f 52%, #80641d 100%);
  box-shadow: inset 0 0 0.9rem rgb(58 41 4 / 13%);
}

.final-actions a:last-child {
  color: #fff;
  border-color: #05b94e;
  border-radius: 0.22rem;
  background: #06c755;
  box-shadow: inset 0 0 0.8rem rgb(0 107 43 / 12%);
}

.final-actions a::after {
  position: absolute;
  right: 5.2%;
  top: 50%;
  transform: translateY(-54%);
  content: "→";
  color: #8a722d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.7em;
  font-weight: 400;
  line-height: 1;
}

.final-actions a:first-child::after {
  color: rgb(255 253 248 / 88%);
}

.final-actions a:last-child::after {
  color: #fff;
}

.final-button-art {
  display: none;
}

@media (min-width: 521px) {
  html,
  body {
    background: #fff;
  }
}

@media (min-width: 1000px) {
  html,
  body {
    background: #faf9f6;
  }

  body {
    position: relative;
  }

  .site-shell {
    position: relative;
    z-index: 2;
    box-shadow:
      0 0 0 1px rgb(99 84 54 / 8%),
      0 0 42px rgb(61 50 29 / 10%);
  }

  .desktop-rail {
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: 3;
    display: flex;
    width: calc((100% - 520px) / 2);
    min-width: 0;
    overflow: hidden;
    background: #faf9f6;
  }

  .desktop-rail::before {
    position: absolute;
    inset: -4%;
    content: "";
    pointer-events: none;
    background-image:
      radial-gradient(circle at 22% 18%, rgb(156 136 92 / 13%), transparent 36%),
      radial-gradient(circle at 76% 74%, rgb(105 89 57 / 10%), transparent 40%),
      url("./assets/optimized/textures/paper-mottle-a.q90.webp"),
      url("./assets/optimized/textures/paper-mottle-c.q90.webp");
    background-position: center, center, 34% 24%, 68% 72%;
    background-size: auto, auto, 780px auto, 520px auto;
    background-repeat: no-repeat, no-repeat, repeat-y, repeat-y;
    mix-blend-mode: multiply;
    opacity: 0.34;
  }

  .desktop-rail--left {
    left: 0;
    justify-content: flex-end;
    border-right: 1px solid rgb(139 116 45 / 18%);
  }

  .desktop-rail--right {
    right: 0;
    justify-content: flex-start;
    border-left: 1px solid rgb(139 116 45 / 18%);
  }

  .desktop-rail-inner {
    position: relative;
    z-index: 1;
    width: min(100%, 300px);
    min-width: 0;
    padding: clamp(2rem, 5vh, 4.2rem) clamp(1.1rem, 2.35vw, 2.6rem);
  }

  .desktop-rail-inner--left {
    display: flex;
    flex-direction: column;
  }

  .desktop-brand {
    display: block;
    width: fit-content;
    color: #1a1817;
    font-family: var(--sans);
  }

  .desktop-brand-name,
  .desktop-brand-sub,
  .desktop-brand-manifesto {
    display: block;
  }

  .desktop-brand-name {
    font-size: clamp(1.7rem, 2.35vw, 2.5rem);
    font-weight: 300;
    letter-spacing: 0.2em;
    line-height: 0.94;
    white-space: nowrap;
  }

  .desktop-brand-sub {
    margin-top: 0.42rem;
    font-size: clamp(0.38rem, 0.48vw, 0.53rem);
    font-weight: 500;
    letter-spacing: 0.26em;
    white-space: nowrap;
  }

  .desktop-brand-manifesto {
    position: relative;
    margin-top: 1.1rem;
    padding-bottom: 0.9rem;
    font-size: 0.56rem;
    letter-spacing: 0.2em;
    line-height: 1.65;
  }

  .desktop-brand-manifesto::after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 2rem;
    height: 1px;
    content: "";
    background: #1a1817;
  }

  .desktop-nav {
    width: 100%;
    margin-top: clamp(2.8rem, 7vh, 5.4rem);
    font-family: var(--sans);
  }

  .desktop-nav a {
    display: grid;
    grid-template-columns: 1.8rem 1fr;
    align-items: center;
    gap: 0.5rem;
    min-height: 3.3rem;
    border-top: 1px solid rgb(34 30 23 / 12%);
    transition: color 180ms ease, padding-left 180ms ease;
  }

  .desktop-nav a:last-child {
    border-bottom: 1px solid rgb(34 30 23 / 12%);
  }

  .desktop-nav a:hover,
  .desktop-nav a:focus-visible {
    padding-left: 0.35rem;
    color: var(--gold);
  }

  .desktop-nav a > span {
    color: var(--gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 0.63rem;
  }

  .desktop-nav strong {
    font-size: clamp(0.67rem, 0.78vw, 0.82rem);
    font-weight: 500;
    letter-spacing: 0.16em;
    line-height: 1.2;
  }

  .desktop-nav small {
    display: block;
    margin-top: 0.22rem;
    font-family: var(--serif);
    font-size: 0.62rem;
    font-weight: 400;
    letter-spacing: 0.04em;
  }

  .desktop-rail-inner--right {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.35rem;
  }

  .desktop-cta-lead {
    margin: 0;
    font-size: clamp(0.88rem, 1.14vw, 1.08rem);
    line-height: 1.75;
    letter-spacing: 0.06em;
  }

  .desktop-cta-lead span {
    display: block;
    margin-bottom: 0.45rem;
    color: var(--gold);
    font-family: var(--sans);
    font-size: 0.58rem;
    letter-spacing: 0.22em;
  }

  .desktop-cta-stack {
    display: grid;
    gap: 0.8rem;
  }

  .desktop-cta {
    position: relative;
    display: flex;
    min-height: 7.5rem;
    align-items: center;
    border-radius: 3px;
    padding: 1.2rem 2.6rem 1.2rem 1.35rem;
    box-shadow: 0 10px 26px rgb(39 31 14 / 13%);
    color: #fff;
  }

  .desktop-cta small,
  .desktop-cta strong {
    display: block;
  }

  .desktop-cta-copy {
    display: block;
    min-width: 0;
  }

  .desktop-cta small {
    margin-bottom: 0.48rem;
    font-family: var(--sans);
    font-size: 0.54rem;
    font-weight: 500;
    letter-spacing: 0.2em;
  }

  .desktop-cta strong {
    font-size: clamp(0.91rem, 1.16vw, 1.08rem);
    font-weight: 500;
    line-height: 1.65;
    letter-spacing: 0.04em;
  }

  .desktop-cta--trial {
    background:
      linear-gradient(120deg, rgb(188 157 68 / 88%), rgb(89 70 20 / 96%)),
      url("./assets/optimized/textures/paper-mottle-b.q90.webp") center / cover;
  }

  .desktop-cta--line {
    gap: 0.75rem;
    min-height: 6.1rem;
    background: #06c755;
  }

  .desktop-cta--line img {
    flex: 0 0 auto;
    width: 2.8rem;
    height: 2.8rem;
  }

  .desktop-cta-arrow {
    position: absolute;
    top: 50%;
    right: 1.15rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.7rem;
    font-weight: 400;
    transform: translateY(-52%);
  }

  .desktop-rail-access {
    margin: 0;
    color: rgb(26 24 23 / 82%);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.05em;
  }
}

@media (min-width: 1000px) and (max-height: 760px) {
  .desktop-rail-inner {
    padding-top: 1.7rem;
    padding-bottom: 1.7rem;
  }

  .desktop-nav {
    margin-top: 2.2rem;
  }

  .desktop-nav a {
    min-height: 2.8rem;
  }

  .desktop-cta {
    min-height: 6.4rem;
  }
}

@media (max-width: 359px) {
  .hero-message {
    top: 50.9%;
  }

  .hero-logo-sub {
    letter-spacing: 0.23em;
  }

  .hero-services {
    font-size: 0.66rem;
    letter-spacing: 0.12em;
  }

}

@media (max-width: 374px) {
  .access-address,
  .access-stations,
  .access-hours {
    margin-top: 0.5rem !important;
  }
}

/* Gentle page motion ----------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  .motion-enabled .recommended .art-parts {
    opacity: 0;
    transition: opacity 680ms ease-out;
  }

  .motion-enabled .recommended.motion-visible .art-parts {
    opacity: 1;
  }

  .motion-enabled .recommended .recommended-approved-art {
    opacity: 1;
    transition: none;
  }

  .motion-enabled .motion-section .motion-copy,
  .motion-enabled .motion-section .motion-item,
  .motion-enabled .motion-section .motion-part,
  .motion-enabled .motion-section .motion-cta-art,
  .motion-enabled .motion-section .motion-photo,
  .motion-enabled .motion-section .motion-line {
    opacity: 0;
    will-change: opacity;
  }

  .motion-enabled .motion-section .motion-copy,
  .motion-enabled .motion-section .motion-item,
  .motion-enabled .motion-section .motion-part,
  .motion-enabled .motion-section .motion-cta-art,
  .motion-enabled .motion-section .motion-photo {
    transition: opacity 680ms ease-out var(--motion-delay, 0ms);
  }

  .motion-enabled .motion-section .motion-line {
    transition: opacity 560ms ease-out var(--motion-delay, 0ms);
  }

  .motion-enabled .motion-section.motion-visible .motion-copy,
  .motion-enabled .motion-section.motion-visible .motion-item,
  .motion-enabled .motion-section.motion-visible .motion-part,
  .motion-enabled .motion-section.motion-visible .motion-cta-art,
  .motion-enabled .motion-section.motion-visible .motion-photo,
  .motion-enabled .motion-section.motion-visible .motion-line {
    opacity: 1;
  }

  .motion-enabled .services.motion-section::after {
    transform: scaleY(0);
    transform-origin: 50% 0;
    transition: transform 1450ms cubic-bezier(0.22, 1, 0.36, 1) 80ms;
  }

  .motion-enabled .services.motion-section.motion-visible::after {
    transform: scaleY(1);
  }

  .motion-enabled .service-concept-heading::after {
    transform: scaleX(0);
    transform-origin: 0 50%;
    transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1) 260ms;
  }

  .motion-enabled .motion-visible .service-concept-heading::after {
    transform: scaleX(1);
  }

  .motion-enabled .method-list li:not(:last-child) .method-number::after {
    transform: translateX(-50%) scaleY(0);
    transform-origin: 50% 0;
    transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1) var(--motion-delay, 0ms);
  }

  .motion-enabled .motion-visible .method-list li:not(:last-child) .method-number::after {
    transform: translateX(-50%) scaleY(1);
  }

  .motion-enabled .method-list li:not(:last-child) .method-number::before {
    opacity: 0;
    transition: opacity 300ms ease-out calc(var(--motion-delay, 0ms) + 520ms);
  }

  .motion-enabled .motion-visible .method-list li:not(:last-child) .method-number::before {
    opacity: 1;
  }

  .motion-enabled .reasons-list li::before {
    transform: translateX(-50%) rotate(16deg) scaleY(0);
    transform-origin: 50% 0;
    transition: transform 640ms cubic-bezier(0.22, 1, 0.36, 1) var(--motion-delay, 0ms);
  }

  .motion-enabled .reasons-list li::after {
    transform: scaleX(0);
    transform-origin: 0 50%;
    transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1) calc(var(--motion-delay, 0ms) + 110ms);
  }

  .motion-enabled .motion-visible .reasons-list li::before {
    transform: translateX(-50%) rotate(16deg) scaleY(1);
  }

  .motion-enabled .motion-visible .reasons-list li::after {
    transform: scaleX(1);
  }

  .motion-enabled .service-item::before {
    opacity: 0;
    transition: opacity 300ms ease-out var(--motion-delay, 0ms);
  }

  .motion-enabled .motion-visible .service-item::before {
    opacity: 1;
  }

  .motion-enabled .motion-section.motion-visible .motion-cta,
  .motion-enabled .desktop-rail.motion-visible .motion-cta {
    animation: motion-cta-breathe 5.6s ease-in-out var(--motion-pulse-delay, 0s) infinite;
  }

  .motion-enabled .motion-section.motion-visible .motion-cta::after,
  .motion-enabled .desktop-rail.motion-visible .motion-cta::after,
  .motion-enabled .desktop-rail.motion-visible .desktop-cta-arrow {
    animation: motion-arrow-pass 4.6s cubic-bezier(0.22, 1, 0.36, 1) var(--motion-pulse-delay, 0s) infinite;
  }

  .motion-enabled .desktop-rail-inner {
    opacity: 0;
    animation: motion-rail-enter 760ms cubic-bezier(0.22, 1, 0.36, 1) 180ms forwards;
  }

  @keyframes motion-rail-enter {
    to {
      opacity: 1;
    }
  }

  @keyframes motion-cta-breathe {
    0%, 72%, 100% {
      filter: brightness(1);
    }
    79% {
      filter: brightness(1.045);
    }
    86% {
      filter: brightness(1);
    }
  }

  @keyframes motion-arrow-pass {
    0%, 67%, 100% {
      opacity: 1;
      translate: 0 0;
    }
    72% {
      opacity: 0;
      translate: -0.65rem 0;
    }
    78% {
      opacity: 1;
      translate: 0.18rem 0;
    }
    84% {
      translate: 0 0;
    }
  }
}

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