/* Novalife v2. Loads after base.css (the v1 stylesheet) and calms it down:
   larger reading type, visible navigation, sticky header, fades only (150 to 600 ms). */

body { font-size: 1.125rem; line-height: 1.7; }
.lede { font-size: clamp(1.15rem, 1.5vw, 1.35rem); max-width: 46ch; }
.label { font-size: .78rem; letter-spacing: .2em; }
.h1 { font-size: clamp(2.8rem, 6vw, 5.6rem); line-height: 1; }
.h2 { font-size: clamp(2.1rem, 4vw, 3.6rem); line-height: 1.05; }
.h3 { font-size: clamp(1.35rem, 1.8vw, 1.7rem); }
.note { font-size: .98rem; color: var(--ink-soft); max-width: 70ch; }
.note a, .stack2 p a, .ticks a { text-underline-offset: .2em; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.section-tight { padding-block: clamp(40px, 6vw, 88px); }
.section { padding-block: clamp(72px, 9vw, 136px); }
body::after { opacity: .04; }

/* buttons: same pill as v1, a quicker, quieter hover, and bigger targets */
.btn { min-height: 54px; font-size: 1rem; }
.btn::before { transition-duration: .35s; }
.btn > .icon { transition-duration: .3s; }
.btn:hover > .icon:last-child { transform: translateX(2px); }
.btn-big { min-height: 60px; font-size: 1.05rem; }

/* ---------- pre-launch bar + header ---------- */
.prelaunch-bar { background: var(--bone); color: var(--deep); font-size: .95rem; text-align: center; padding: 10px var(--gutter); }
.prelaunch-bar p { margin: 0; }
.prelaunch-bar a { font-weight: 600; }
.site-header {
  position: sticky; top: 0; background: var(--canvas);
  border-bottom: 1px solid var(--line); transition: background-color .2s ease;
}
.site-header.is-scrolled { background: color-mix(in srgb, var(--canvas) 92%, transparent); }
.page-home .site-header:not(.is-scrolled) .brand-lockup { opacity: 1; }
.brand-lockup { height: 44px; }
.nav ul { gap: clamp(14px, 1.6vw, 28px); }
.nav a { font-size: .98rem; opacity: .88; }
.nav a::after { transition-duration: .25s !important; }
.nav .nav-cta { padding: 0 24px; min-height: 48px; font-weight: 600; }
@media (max-width: 1180px) { .nav { display: none; } .menu-toggle { display: inline-flex; } }
.menu { top: 0; padding-top: calc(var(--header-h) + 64px); justify-content: flex-start; }
.menu-links a { font-size: clamp(1.9rem, 7vw, 3rem); padding-block: 6px; }
.menu.is-open .menu-links li { animation: menu-fade .25s ease both; }
@keyframes menu-fade { from { opacity: 0; } }
.menu-cta { align-self: flex-start; }
.menu-foot { margin-top: auto; }
.page-hero, .doc-hero, .post-hero { padding-top: clamp(56px, 8vw, 120px); }
.ppl-hero { min-height: auto; }

/* ---------- fades ---------- */


/* ---------- notice ---------- */
.notice { margin-top: clamp(32px, 4vw, 56px); }
.notice-in {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: clamp(20px, 3vw, 48px); align-items: center;
  padding: clamp(24px, 3vw, 40px); border: 1px solid var(--line-strong); border-radius: 2px;
}
.notice-in > div { display: grid; gap: 8px; }
.notice-in p:not(.label) { color: var(--ink-soft); max-width: 62ch; }
@media (max-width: 900px) { .notice-in { grid-template-columns: minmax(0, 1fr); } .notice-in .btn { justify-self: start; } }

/* ---------- layout helpers ---------- */
.stack2 { display: grid; gap: 22px; justify-items: start; align-content: start; }
.stack2 > p:not(.label):not(.lede) { max-width: 60ch; }
.head2 { display: grid; gap: 18px; justify-items: start; margin-bottom: clamp(36px, 5vw, 64px); max-width: 900px; }
.split2 { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 96px); align-items: center; }
.split2--top { align-items: start; }
@media (max-width: 900px) { .split2 { grid-template-columns: minmax(0, 1fr); } }

/* film card */
.film-card { position: relative; display: block; width: 100%; padding: 0; border: 0; cursor: pointer; aspect-ratio: 16 / 9; overflow: clip; background: var(--obsidian); border-radius: 2px; }
.film-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease, opacity .3s ease; opacity: .85; }
.film-card:hover img { transform: scale(1.02); opacity: 1; }
.film-play { position: absolute; left: 24px; bottom: 24px; display: inline-flex; align-items: center; gap: 14px; padding: 8px 22px 8px 8px; border-radius: 999px; background: var(--bone); color: var(--deep); font-weight: 600; font-size: 1rem; }
.film-play .icon { width: 44px; height: 44px; padding: 13px; border-radius: 50%; background: var(--deep); color: var(--bone); }
.muted-in { opacity: .65; font-weight: 400; margin-left: 4px; }

/* mission and vision */
.mv { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: center; }
.mv-photo img, .about2-photo img, .feature2-photo img, .page-hero2-photo img { width: 100%; height: 100%; object-fit: cover; }
.mv-photo { aspect-ratio: 4 / 5; overflow: clip; }
.mv-text { display: grid; gap: clamp(36px, 5vw, 64px); }
.mv-text > div { display: grid; gap: 16px; }
.statement { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.5rem, 2.4vw, 2.2rem); line-height: 1.3; letter-spacing: -.02em; max-width: 30ch; }
.statement--sm { font-size: clamp(1.3rem, 2vw, 1.8rem); margin-top: 32px; }
@media (max-width: 900px) { .mv { grid-template-columns: minmax(0, 1fr); } .mv-photo { aspect-ratio: 4 / 3; } }

/* numbered steps / phases / principles */
.steps, .phases, .principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.5vw, 40px); }
.steps li, .phases li, .principles li { display: grid; gap: 12px; align-content: start; padding-top: 24px; border-top: 1px solid var(--line-strong); }
.steps p, .phases p, .principles p { color: var(--ink-soft); }
.step-num { font-family: var(--font-display); font-weight: 300; font-size: 1rem; color: var(--ink-soft); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.phases { margin-bottom: clamp(40px, 5vw, 64px); }
@media (max-width: 900px) { .steps, .phases, .principles { grid-template-columns: minmax(0, 1fr); } }

/* domains */
.domains { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 24px); margin-bottom: 48px; }
.domains a { display: grid; gap: 8px; text-decoration: none; }
.domain-img { display: block; aspect-ratio: 3 / 4; overflow: clip; margin-bottom: 10px; background: var(--deep); }
.domain-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease, opacity .3s ease; opacity: .9; }
.domains a:hover .domain-img img { transform: scale(1.03); opacity: 1; }
.domain-num { font-size: .9rem; color: var(--ink-soft); }
.domain-name { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.6rem, 2.2vw, 2.1rem); letter-spacing: -.02em; line-height: 1.1; }
.domain-line { color: var(--ink-soft); font-size: 1rem; }
.domains a:hover .domain-name { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
@media (max-width: 900px) { .domains { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* price list */
.pricelist { display: grid; border-top: 1px solid var(--line-strong); }
.pricelist li { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.pl-name { display: grid; gap: 2px; font-size: 1.15rem; font-weight: 500; }
.pl-name small, .pl-price small, .offer-price small { font-size: .92rem; font-weight: 400; color: var(--ink-soft); }
.pl-price { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.5rem, 2.2vw, 2rem); letter-spacing: -.02em; white-space: nowrap; text-align: right; display: grid; font-variant-numeric: tabular-nums; }
.pl-feature { background: color-mix(in srgb, var(--ink) 6%, transparent); padding-inline: 20px !important; margin-top: 8px; border: 1px solid var(--line-strong) !important; }

/* about teaser */
.about2 { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: center; }
.about2-photo { aspect-ratio: 4 / 5; overflow: clip; }
.quote2 { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.3; letter-spacing: -.02em; max-width: 28ch; padding-left: 24px; border-left: 1px solid var(--olive); }
.quote2--big { font-size: clamp(1.8rem, 3.6vw, 3.2rem); max-width: 24ch; }
.quote2 cite { display: block; margin-top: 16px; font-family: var(--font-text); font-style: normal; font-size: .95rem; color: var(--ink-soft); letter-spacing: 0; }
.quals { display: grid; gap: 10px; }
.quals li { padding-left: 22px; position: relative; color: var(--ink-soft); }
.quals li::before { content: ""; position: absolute; left: 0; top: .75em; width: 10px; height: 1px; background: currentColor; }
@media (max-width: 900px) { .about2 { grid-template-columns: minmax(0, 1fr); } .about2-photo { aspect-ratio: 4 / 3; } }

/* gallery */
.gallery2 { display: grid; grid-template-columns: 1fr 1.4fr 1fr; gap: clamp(12px, 1.6vw, 24px); align-items: end; }
.gallery2 figure { overflow: clip; }
.gallery2 img { width: 100%; height: 100%; object-fit: cover; }
.gallery2 figure:nth-child(1), .gallery2 figure:nth-child(3) { aspect-ratio: 3 / 4; }
.gallery2 figure:nth-child(2) { aspect-ratio: 4 / 3; }
.gallery2--two { grid-template-columns: 1fr 1.6fr; margin-top: 24px; }
.gallery2--two figure:nth-child(1) { aspect-ratio: 3 / 4; }
.caption { margin-top: 20px; color: var(--ink-soft); }
@media (max-width: 700px) { .gallery2, .gallery2--two { grid-template-columns: minmax(0, 1fr); } .gallery2 figure { aspect-ratio: 4 / 3 !important; } }

/* closing call */
.final { padding-block: clamp(72px, 9vw, 136px); }
.final-in { display: grid; gap: 22px; justify-items: center; text-align: center; padding: clamp(40px, 6vw, 96px) clamp(20px, 4vw, 64px); border: 1px solid var(--line-strong); border-radius: 2px; }
.final-in .h2 { max-width: 22ch; }
.final-in .lede { max-width: 48ch; }
.final-in .actions { justify-content: center; }
.center-sm { justify-content: flex-start; }

/* ---------- inner page hero ---------- */
.page-hero2 { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 96px); align-items: center; padding-block: clamp(48px, 7vw, 112px) clamp(24px, 4vw, 56px); }
.page-hero2 .h1 { max-width: 13ch; }
.page-hero2-photo { aspect-ratio: 4 / 3; overflow: clip; }
.page-hero2-photo--tall { aspect-ratio: 4 / 5; max-height: 76vh; }
@media (max-width: 900px) { .page-hero2 { grid-template-columns: minmax(0, 1fr); } .page-hero2-photo { order: -1; aspect-ratio: 4 / 3; } }

/* in-page jump links */
.jump { display: flex; flex-wrap: wrap; gap: 10px; padding-block: clamp(28px, 4vw, 48px) 0; }
.jump a { padding: 10px 20px; border: 1px solid var(--line-strong); border-radius: 999px; text-decoration: none; font-size: .98rem; transition: background-color .2s ease, color .2s ease; }
.jump a:hover { background: var(--ink); color: var(--canvas); }
:target { scroll-margin-top: 100px; }
html { scroll-behavior: smooth; }


/* ---------- offers ---------- */
.cards2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2vw, 32px); }
.cards3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); }
.cards2--text { gap: clamp(32px, 6vw, 112px); }
@media (max-width: 1000px) { .cards3 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 800px) { .cards2 { grid-template-columns: minmax(0, 1fr); } }
.offer { display: grid; gap: 18px; align-content: start; justify-items: start; padding: clamp(24px, 3vw, 44px); border: 1px solid var(--line-strong); border-radius: 2px; }
.offer > p { color: var(--ink-soft); }
.offer--lead { background: color-mix(in srgb, var(--ink) 5%, transparent); }
.offer-top { display: grid; gap: 10px; width: 100%; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.offer-price { display: grid; gap: 2px; font-family: var(--font-display); font-weight: 300; font-size: clamp(2rem, 3vw, 2.6rem); line-height: 1.05; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.offer-price small { font-family: var(--font-text); letter-spacing: 0; }
.offer-price--big { font-size: clamp(2.6rem, 4.4vw, 3.8rem); }
.offer .btn { margin-top: auto; }
.ticks { display: grid; gap: 12px; }
.ticks li { position: relative; padding-left: 30px; }
.ticks li::before {
  content: ""; position: absolute; left: 0; top: .55em; width: 14px; height: 8px;
  border-left: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; rotate: -45deg; translate: 0 -40%; opacity: .7;
}
.ticks--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; }
@media (max-width: 800px) { .ticks--cols { grid-template-columns: minmax(0, 1fr); } }

.hour { margin-top: clamp(40px, 5vw, 72px); display: grid; gap: 24px; }
.hour-steps { display: grid; gap: 0; border-top: 1px solid var(--line-strong); }
.hour-steps li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.hour-steps span { font-family: var(--font-display); color: var(--ink-soft); }
.hour-steps strong { font-weight: 600; }

.feature2 { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(32px, 6vw, 112px); align-items: center; }
.feature2-photo { aspect-ratio: 4 / 5; overflow: clip; }
.feature2--flip .feature2-photo { order: 2; }
@media (max-width: 900px) { .feature2 { grid-template-columns: minmax(0, 1fr); } .feature2-photo { aspect-ratio: 4 / 3; } .feature2--flip .feature2-photo { order: 0; } }

/* membership */
.member { background: var(--obsidian); color: var(--bone); --canvas: var(--obsidian); --ink: var(--bone); --ink-soft: var(--sage); --line: rgb(231 224 214 / .14); --line-strong: rgb(231 224 214 / .32); }
.member-head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(32px, 5vw, 96px); align-items: end; margin-bottom: clamp(48px, 6vw, 88px); }
.member-price { display: grid; gap: 24px; justify-items: start; padding: 32px; border: 1px solid var(--line-strong); border-radius: 2px; }
.member-incl { display: grid; gap: 24px; padding-top: 40px; border-top: 1px solid var(--line-strong); }
@media (max-width: 900px) { .member-head { grid-template-columns: minmax(0, 1fr); } }

.routes { margin-top: clamp(40px, 5vw, 72px); display: grid; gap: 20px; }
.routes ol { display: grid; border-top: 1px solid var(--line-strong); }
.routes li { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.routes li > span:last-child { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.routes .icon { width: 16px; height: 16px; opacity: .5; }
@media (max-width: 700px) { .routes li { grid-template-columns: minmax(0, 1fr); gap: 6px; } }

.ptable { width: 100%; border-collapse: collapse; font-size: 1.02rem; }
.ptable th, .ptable td { text-align: left; padding: 18px 16px 18px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.ptable thead th { font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-soft); font-weight: 600; border-bottom-color: var(--line-strong); }
.ptable tbody th { font-weight: 600; }
.ptable td:nth-child(2) { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }
#summary .note { margin-top: 24px; }

/* ---------- system ---------- */
.principles { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: clamp(32px, 4vw, 56px); }
@media (max-width: 900px) { .principles { grid-template-columns: minmax(0, 1fr); } }
.domain-sec { padding-block: clamp(56px, 7vw, 112px); border-top: 1px solid var(--line); }
.trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 32px); margin-top: clamp(40px, 5vw, 72px); }
.trio--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.trio--five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.trio li { display: grid; gap: 10px; align-content: start; padding-top: 20px; border-top: 1px solid var(--line-strong); }
.trio li > p:last-child { color: var(--ink-soft); font-size: 1.02rem; }
@media (max-width: 1100px) { .trio--four, .trio--five { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .trio, .trio--four, .trio--five { grid-template-columns: minmax(0, 1fr); } }

.more { margin-top: clamp(32px, 4vw, 48px); border: 1px solid var(--line-strong); border-radius: 2px; }
.more summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px clamp(20px, 3vw, 32px); font-weight: 600; font-size: 1.1rem; }
.more summary::-webkit-details-marker { display: none; }
.more summary::after { content: "+"; font-family: var(--font-display); font-weight: 300; font-size: 1.8rem; line-height: 1; }
.more[open] summary::after { content: "\2212"; }
.more > :not(summary) { padding-inline: clamp(20px, 3vw, 32px); }
.more > .ticks { padding-bottom: 8px; }
.more > .note { padding-bottom: 24px; padding-top: 12px; }

.earned { margin-top: clamp(40px, 5vw, 72px); padding: clamp(24px, 4vw, 56px); border: 1px solid var(--line-strong); border-radius: 2px; }
.earned-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 48px); margin-top: 20px; color: var(--ink-soft); }
@media (max-width: 900px) { .earned-cols { grid-template-columns: minmax(0, 1fr); } }
.tools-title { margin-top: clamp(48px, 6vw, 88px); margin-bottom: 24px; }
.tools2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 4vw, 64px); border-top: 1px solid var(--line-strong); }
.tools2 li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 12px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.tools2 h4 { margin: 0 0 6px; font-size: 1.2rem; font-weight: 600; }
.tools2 p { color: var(--ink-soft); }
.domain-sec > .note { margin-top: 24px; }
@media (max-width: 800px) { .tools2 { grid-template-columns: minmax(0, 1fr); } }

.journey2 { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-bottom: clamp(40px, 5vw, 64px); }
.journey2 li { display: grid; gap: 6px; padding: 18px 16px; border: 1px solid var(--line-strong); border-radius: 2px; font-weight: 600; }
.journey2 span { font-weight: 400; color: var(--ink-soft); font-size: .9rem; }
@media (max-width: 900px) { .journey2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- about ---------- */
.quals-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 2vw, 32px); }
.quals-grid li { display: grid; gap: 10px; align-content: start; padding-top: 20px; border-top: 1px solid var(--line-strong); }
.quals-grid p { color: var(--ink-soft); }
@media (max-width: 1000px) { .quals-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .quals-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- forms ---------- */
.contact-lines { display: grid; gap: 28px; margin-top: 8px; }
.contact-lines > div { display: grid; gap: 6px; }
.big-link { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.4rem, 2.4vw, 2rem); letter-spacing: -.02em; overflow-wrap: anywhere; }
.form-card { max-width: 860px; padding: clamp(24px, 4vw, 56px); border: 1px solid var(--line-strong); border-radius: 2px; background: color-mix(in srgb, #fff 35%, transparent); display: grid; gap: 14px; }
.form2 { display: grid; gap: 26px; margin-top: 12px; }
.field { display: grid; gap: 10px; border: 0; padding: 0; margin: 0; min-width: 0; }
.field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
@media (max-width: 700px) { .field-row { grid-template-columns: minmax(0, 1fr); } }
.field label, .field legend { font-weight: 600; font-size: 1.02rem; padding: 0; }
.field legend { margin-bottom: 12px; }
.field .muted { font-weight: 400; }
.form2 input:not([type="checkbox"]), .form2 textarea {
  width: 100%; font: inherit; font-size: 1.1rem; color: var(--ink);
  padding: 14px 16px; min-height: 56px; background: #fff; border: 1px solid var(--line-strong); border-radius: 2px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.form2 textarea { resize: vertical; min-height: 120px; }
.form2 input:focus, .form2 textarea:focus { outline: none; border-color: var(--olive); box-shadow: 0 0 0 3px rgb(118 120 93 / .35); }
.checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 700px) { .checks { grid-template-columns: minmax(0, 1fr); } }
.checks label, .consent { display: flex; gap: 14px; align-items: flex-start; cursor: pointer; }
.checks label { padding: 14px 16px; border: 1px solid var(--line-strong); border-radius: 2px; background: #fff; font-weight: 500; transition: border-color .15s ease, background-color .15s ease; }
.checks label:has(input:checked) { border-color: var(--deep); background: color-mix(in srgb, var(--olive) 14%, #fff); }
.checks span { display: grid; gap: 2px; }
.checks small { color: var(--ink-soft); font-size: .92rem; font-weight: 400; }
.form2 input[type="checkbox"] { width: 22px; height: 22px; margin: 3px 0 0; flex: none; accent-color: var(--deep); }
.consent { font-size: 1rem; color: var(--ink-soft); }
.form2 .btn { justify-self: start; }
.form-error { color: #7a2a1a; font-weight: 600; }
.form-done { padding: 24px; border: 1px solid var(--deep); border-radius: 2px; display: grid; gap: 8px; }

/* ---------- resets for v1 rules that share a class name ---------- */
.steps li, .phases li, .principles li { grid-template-columns: none; padding-block: 24px 0; }
.steps li:last-child { border-bottom: 0; }
.principles { grid-auto-flow: row; grid-auto-columns: auto; overflow: visible; }
.step-num { padding-top: 0; color: var(--ink-soft); }
.quals { background: none; color: inherit; --ink: inherit; }
.routes { grid-template-columns: none; margin-top: clamp(40px, 5vw, 72px); }
.trio { align-items: stretch; }
.earned { align-items: initial; }
.ticks li { color: inherit; }
.ticks li::before { height: 8px; background: none; top: .55em; }
.consent { display: flex; }
.pricelist li { display: flex; transition: none; }
.pricelist li:hover { background: none; padding-inline: 0; }
.pl-feature:hover { padding-inline: 20px !important; }
.statement { font-size: clamp(1.5rem, 2.4vw, 2.2rem); line-height: 1.3; letter-spacing: -.02em; text-wrap: pretty; }
.statement--sm { font-size: clamp(1.3rem, 2vw, 1.8rem); }
.form-card { background: #fff; border-color: var(--line-strong); }

/* =========================================================
   Premium pass (31 Oct): hero composition, glass, fade-ups, signature sections
   ========================================================= */

/* ---------- glass: a web approximation of frosted glass, not Apple's Liquid Glass ---------- */
.glass {
  background: linear-gradient(135deg, rgb(231 224 214 / .14), rgb(231 224 214 / .04)), rgb(18 21 10 / .28);
  -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%);
  border: 1px solid rgb(231 224 214 / .2);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .16), 0 24px 60px -24px rgb(0 0 0 / .55);
}

/* buttons: frosted pills with a light sheen on hover */
.btn {
  --glass: color-mix(in srgb, var(--ink) 9%, transparent);
  background: var(--glass); color: var(--btn-ink);
  border: 1px solid color-mix(in srgb, var(--ink) 28%, transparent);
  -webkit-backdrop-filter: blur(16px) saturate(150%); backdrop-filter: blur(16px) saturate(150%);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .18), inset 0 -1px 0 rgb(255 255 255 / .04), 0 14px 34px -18px rgb(0 0 0 / .5);
  transition: background-color .25s ease, border-color .25s ease, box-shadow .25s ease, transform .2s ease;
}
.btn-solid {
  --glass: color-mix(in srgb, var(--ink) 93%, transparent);
  border-color: color-mix(in srgb, #fff 40%, transparent);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .55), inset 0 -1px 0 rgb(0 0 0 / .08), 0 18px 40px -18px rgb(0 0 0 / .6);
}
.btn::before {
  inset: 0; background: linear-gradient(105deg, transparent 30%, rgb(255 255 255 / .32) 50%, transparent 70%);
  transform: translateX(-130%); transition: transform .8s cubic-bezier(.16, 1, .3, 1);
}
.btn:hover::before, .btn:focus-visible::before { transform: translateX(130%); }
.btn:hover { --glass: color-mix(in srgb, var(--ink) 15%, transparent); border-color: color-mix(in srgb, var(--ink) 45%, transparent); }
.btn-solid:hover { --glass: var(--ink); --btn-ink: var(--canvas); }
[data-theme="light"] .btn-solid:hover, .theme-light .btn-solid:hover { --btn-ink: var(--canvas); }
.btn-ghost:hover, .btn-ghost:focus-visible { --btn-ink: var(--ink); --chip: var(--ink); --chip-ink: var(--canvas); }
.btn:hover > .icon:last-child { transform: translateX(3px); }
.btn:active { transform: translateY(1px) scale(.985); }
.nav .nav-cta, .jump a, .social a, .film-play {
  -webkit-backdrop-filter: blur(16px) saturate(150%); backdrop-filter: blur(16px) saturate(150%);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .3);
}
.nav .nav-cta { background: color-mix(in srgb, var(--ink) 88%, transparent); border: 1px solid rgb(255 255 255 / .35); }
.jump a { background: color-mix(in srgb, var(--ink) 6%, transparent); }
.film-play { background: rgb(231 224 214 / .82); border: 1px solid rgb(255 255 255 / .5); }
.site-header.is-scrolled { -webkit-backdrop-filter: blur(18px) saturate(140%); backdrop-filter: blur(18px) saturate(140%); background: color-mix(in srgb, var(--canvas) 72%, transparent); }
@media (prefers-reduced-transparency: reduce) {
  .glass, .btn, .nav .nav-cta, .jump a, .film-play { -webkit-backdrop-filter: none; backdrop-filter: none; }
  .glass { background: var(--deep-2); }
}

/* ---------- fade-ups (v2.js tags the elements; nothing hides without JS) ---------- */
.rise { opacity: 0; transform: translateY(28px); transition: opacity .9s cubic-bezier(.16, 1, .3, 1), transform .9s cubic-bezier(.16, 1, .3, 1); transition-delay: calc(var(--i, 0) * 90ms); }
.rise.is-in { opacity: 1; transform: none; }
figure.rise, .film-card.rise { transform: translateY(40px) scale(.98); }
figure.rise.is-in, .film-card.rise.is-in { transform: none; }

/* ---------- home hero: headline left, figure centre, invitation right ---------- */
.hero2 { position: relative; min-height: max(640px, min(calc(100svh - 112px), 940px)); overflow: clip; isolation: isolate; display: grid; }
.hero2 .hero-bg { inset: 0; translate: none; }
.hero2-mark { position: absolute; z-index: 1; left: 50%; top: clamp(24px, 5vh, 64px); width: min(92vw, 1640px); translate: -50% 0; color: var(--bone); opacity: .96; }
.hero2-mark svg { width: 100%; height: auto; }
.hero2-figure { position: absolute; z-index: 2; bottom: 0; left: 54%; translate: -50% 0; height: min(88%, 1000px); aspect-ratio: 927 / 1800; }
.hero2-figure img { width: 100%; height: 100%; object-fit: contain; object-position: bottom; }
.hero2-haze { position: absolute; z-index: 3; inset: auto 0 0 0; height: 34%; background: linear-gradient(180deg, transparent, rgb(18 21 10 / .55) 55%, var(--deep)); pointer-events: none; }
.hero2-grid {
  position: relative; z-index: 4; align-self: stretch;
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr);
  grid-template-rows: 1fr auto auto; grid-template-areas: ". . ." ". . tag" "lead . side";
  row-gap: 28px; padding-block: 0 clamp(40px, 7vh, 88px);
}
.hero2-lead { grid-area: lead; display: grid; gap: 20px; align-self: end; }
.hero2-lead .display { font-size: clamp(2.6rem, 4.4vw, 4.9rem); line-height: 1.02; }
.hero2-lead .display span { display: block; white-space: nowrap; }
.hero2-side { grid-area: side; display: grid; gap: 24px; align-self: end; justify-items: start; padding-left: clamp(8px, 2vw, 32px); }
.hero2 .hero-sub { font-size: clamp(1.1rem, 1.35vw, 1.3rem); color: var(--bone); opacity: .86; max-width: 26ch; line-height: 1.5; }
.hero2-tag { grid-area: tag; justify-self: start; margin-left: clamp(8px, 2vw, 32px); display: grid; gap: 6px; padding: 18px 22px; border-radius: 18px; max-width: 300px; }
.tag-name { font-family: var(--font-display); font-size: 1.25rem; letter-spacing: -.01em; }
.tag-role { font-size: .95rem; color: var(--sage); line-height: 1.45; }
.js .hero2-mark { animation: fadein 1.4s ease-out both; }
.js .hero2-figure { animation: rise-in 1.1s cubic-bezier(.16, 1, .3, 1) .1s both; }
.js .hero2-lead > *, .js .hero2-side > *, .js .hero2-tag { animation: rise-in 1s cubic-bezier(.16, 1, .3, 1) both; }
.js .hero2-lead > :nth-child(2) { animation-delay: .12s; }
.js .hero2-tag { animation-delay: .45s; }
.js .hero2-side > :nth-child(1) { animation-delay: .25s; }
.js .hero2-side > :nth-child(2) { animation-delay: .35s; }
@keyframes rise-in { from { opacity: 0; transform: translateY(24px); } }
@keyframes fadein { from { opacity: 0; } }
@media (max-width: 1100px) {
  .hero2-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: ". ." ". tag" "lead side"; }
  .hero2-figure { left: 50%; }
}
@media (max-width: 760px) {
  /* stacked: wordmark, then him, then the words underneath him */
  .hero2 { min-height: 0; }
  .hero2-mark { top: 20px; width: 90vw; }
  .hero2-figure { top: 52px; bottom: auto; left: 50%; height: 64svh; }
  .hero2-haze { inset: calc(52px + 40svh) 0 auto 0; height: 26svh; background: linear-gradient(180deg, transparent, var(--deep)); }
  .hero2-haze::after { content: ""; position: absolute; top: 100%; left: 0; right: 0; height: 200vh; background: var(--deep); }
  .hero2-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; grid-template-areas: "tag" "lead" "side"; padding-top: calc(52px + 50svh); row-gap: 22px; padding-bottom: 40px; }
  .hero2-tag { margin-left: 0; padding: 14px 18px; border-radius: 16px; max-width: 100%; }
  .hero2-lead .display { font-size: clamp(2.5rem, 11.5vw, 3.4rem); max-width: none; }
  .hero2-side { padding-left: 0; }
  .hero2-side .actions { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr); }
  .hero2-side .btn { justify-content: space-between; }
  .hero2-side .btn:not(:has(.icon)) { justify-content: center; }
}

/* ---------- gallery: the wordmark sits above the centre photograph ---------- */
.g-mid { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
.g-mark { flex: 1; display: grid; place-items: center; color: var(--bone); padding-inline: 2%; }
.gallery2 > figure:first-child, .gallery2 > figure:last-child { aspect-ratio: 3 / 4.6; }
.g-mark svg { width: 100%; height: auto; }
.gallery2 .g-mid figure { aspect-ratio: 4 / 3; }
@media (max-width: 700px) { .g-mid { order: -1; } .g-mark { padding: 8px 4% 16px; } }

/* ---------- services: membership over a photograph ---------- */
.member { position: relative; isolation: isolate; overflow: clip; }
.member-bg { position: absolute; inset: 0; z-index: -1; }
.member-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .38; }
.member-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--obsidian) 0%, rgb(10 10 10 / .55) 30%, rgb(10 10 10 / .75) 65%, var(--obsidian) 100%); }
.member-price { border-radius: 22px; padding: clamp(24px, 3vw, 40px); }
.member .phases li { border-top-color: rgb(231 224 214 / .4); }
.member .h2 { font-size: clamp(2.6rem, 5vw, 4.6rem); }

/* ---------- system: Enhancers as a dark chapter, and the journey as a rail ---------- */
.enh2 { background: var(--obsidian); color: var(--bone); padding-block: clamp(72px, 9vw, 136px);
  --canvas: var(--obsidian); --ink: var(--bone); --ink-soft: var(--sage); --line: rgb(231 224 214 / .14); --line-strong: rgb(231 224 214 / .32); }
.enh2 .earned { background: linear-gradient(135deg, rgb(231 224 214 / .07), rgb(231 224 214 / .02)); border-radius: 22px; }
.enh2 .tools2 li:hover h4 { text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.journey2 { position: relative; gap: 0; }
.journey2::before { content: ""; position: absolute; left: 0; right: 0; top: 23px; height: 1px; background: var(--line-strong); }
.journey2 li { position: relative; border: 0; padding: 48px 16px 0 0; font-size: 1.15rem; }
.journey2 li::before { content: ""; position: absolute; top: 16px; left: 0; width: 15px; height: 15px; border-radius: 50%; background: var(--canvas); border: 1px solid var(--ink); }
.journey2 li:last-child::before { background: var(--ink); }
@media (max-width: 900px) {
  .journey2 { grid-template-columns: minmax(0, 1fr); padding-left: 32px; }
  .journey2::before { left: 7px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
  .journey2 li { padding: 10px 0 18px; }
  .journey2 li::before { left: -32px; top: 14px; }
}

/* ---------- about: magazine-cover hero ---------- */
.page-hero2--cover { position: relative; max-width: none; min-height: min(calc(100svh - 112px), 960px); padding: 0; display: block; overflow: clip; isolation: isolate; }
.page-hero2--cover .page-hero2-photo { position: absolute; inset: 0 0 0 auto; width: min(58%, 900px); max-height: none; aspect-ratio: auto; z-index: -1; }
.page-hero2--cover .page-hero2-photo img { object-position: 50% 20%; }
.page-hero2--cover .page-hero2-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--deep) 0%, rgb(18 21 10 / .2) 35%, transparent 60%), linear-gradient(0deg, var(--deep), transparent 30%); }
.page-hero2--cover > .stack2 { max-width: var(--max); margin-inline: auto; padding: clamp(80px, 14vh, 160px) var(--gutter) clamp(56px, 9vh, 112px); min-height: inherit; align-content: end; }
.page-hero2--cover .h1 { font-size: clamp(3.4rem, 8vw, 8rem); max-width: 8ch; line-height: .95; }
@media (max-width: 900px) {
  .page-hero2--cover { display: flex; flex-direction: column; }
  .page-hero2--cover .page-hero2-photo { position: relative; order: -1; width: 100%; height: 62svh; flex: none; }
  .page-hero2--cover .page-hero2-photo::after { background: linear-gradient(0deg, var(--deep), transparent 45%); }
  .page-hero2--cover > .stack2 { min-height: 0; padding-top: 0; margin-top: -72px; }
}

/* ---------- forms over a photograph ---------- */
.form-stage { position: relative; isolation: isolate; overflow: clip; padding-block: clamp(56px, 8vw, 120px); }
.form-stage-bg { position: absolute; inset: 0; z-index: -1; }
.form-stage-bg img { width: 100%; height: 100%; object-fit: cover; }
.form-stage-bg::after { content: ""; position: absolute; inset: 0; background: rgb(18 21 10 / .62); }
.form-stage .form-card {
  margin-inline: auto; border-radius: 24px; border: 1px solid rgb(255 255 255 / .6);
  background: rgb(231 224 214 / .84); -webkit-backdrop-filter: blur(22px) saturate(140%); backdrop-filter: blur(22px) saturate(140%);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .7), 0 40px 90px -40px rgb(0 0 0 / .7);
}
.form-stage .checks label, .form-stage .form2 input:not([type="checkbox"]), .form-stage .form2 textarea { border-radius: 12px; }
@media (prefers-reduced-transparency: reduce) { .form-stage .form-card { background: var(--bone); backdrop-filter: none; } }

/* ---------- small refinements ---------- */
.offer, .notice-in, .final-in, .more, .earned, .film-card, .journey2 li { border-radius: 18px; }
.offer--lead { background: linear-gradient(160deg, color-mix(in srgb, var(--ink) 9%, transparent), transparent 70%); }
.final-in { background: radial-gradient(80% 120% at 50% 0%, color-mix(in srgb, var(--ink) 8%, transparent), transparent 70%); }
.domain-img, .mv-photo, .about2-photo, .feature2-photo, .page-hero2-photo:not(.page-hero2--cover *), .gallery2 figure, .pl-feature { border-radius: 14px; }
.pl-feature { overflow: clip; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rise { opacity: 1; transform: none; transition: none; }
  .js .hero2-mark, .js .hero2-figure, .js .hero2-lead > *, .js .hero2-side > *, .js .hero2-tag { animation: none; }
}

/* =========================================================
   Mobile pass (30 Oct): menu contrast, centred hero, swipe rows
   ========================================================= */
.menu { --canvas: var(--deep); --line-strong: rgb(231 224 214 / .32); }
.menu-cta { color: var(--deep); }

@media (max-width: 760px) {
  .hero2-grid { justify-items: center; text-align: center; }
  .hero2-lead, .hero2-side { justify-items: center; }
  .hero2-lead .display { justify-self: center; }
  .hero2 .hero-sub { margin-inline: auto; }
  .hero2-tag { justify-self: stretch; text-align: center; }
}

/* swipe rows: lists that would stack into a wall of text become a horizontal row on phones */
.rail-dots { display: none; }
@media (max-width: 760px) {
  .rail {
    display: flex !important; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scrollbar-width: none;
    margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter);
    grid-template-columns: none !important; border-top: 0 !important;
  }
  .rail::-webkit-scrollbar { display: none; }
  .rail > * { flex: 0 0 86%; min-width: 0; scroll-snap-align: start; }
  .rail > p { color: var(--ink-soft); }
  .rail > li, .rail > p, .rail > .stack2 { border: 1px solid var(--line-strong) !important; border-radius: 18px; padding: 22px !important; background: color-mix(in srgb, var(--ink) 4%, transparent); }
  .rail:focus-visible { outline: 2px solid var(--olive); outline-offset: 4px; }
  .rail-dots { display: flex; justify-content: center; gap: 2px; margin-top: 14px; }
  .rail-dots button { width: 28px; height: 28px; padding: 0; border: 0; background: none; cursor: pointer; display: grid; place-items: center; }
  .rail-dots button::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ink); opacity: .25; transition: opacity .2s ease, width .2s ease; }
  .rail-dots button[aria-current="true"]::after { opacity: .9; width: 22px; border-radius: 6px; }
  .domain-sec .trio, .phases, .principles, .tools2, .quals-grid, .cards3 { margin-bottom: 0; }

  /* in-page links: one swipeable strip that stays under the header */
  .jump { position: sticky; top: 76px; z-index: 5; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; gap: 8px; padding-block: 12px; background: color-mix(in srgb, var(--canvas) 88%, transparent); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
  .jump::-webkit-scrollbar { display: none; }
  .jump a { flex: none; padding: 9px 16px; font-size: .95rem; }

  /* price table becomes one card per service */
  .table-wrap:has(.ptable) { overflow: visible; }
  .ptable thead { display: none; }
  .ptable, .ptable tbody { display: block; }
  .ptable tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; padding: 18px 0; border-bottom: 1px solid var(--line); }
  .ptable th, .ptable td { padding: 0; border: 0; }
  .ptable td:nth-child(2) { text-align: right; }
  .ptable td:nth-child(3), .ptable td:nth-child(4) { grid-column: 1 / -1; color: var(--ink-soft); font-size: .95rem; }

  /* tighter rhythm on phones */
  .section { padding-block: 64px; }
  .domain-sec { padding-block: 56px; }
  .head2 { margin-bottom: 28px; }
  .h2 { font-size: clamp(2rem, 8.6vw, 2.6rem); }
  .offer { padding: 22px; }
  .hour-steps li { grid-template-columns: 40px minmax(0, 1fr); }
  .routes li { padding: 16px 0; }
  .earned { padding: 22px; }
  .member-price { padding: 22px; }
  .final-in { padding: 40px 22px; }
}

.incl-toggle {
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px; border-radius: 999px; cursor: pointer;
  font: inherit; font-size: .98rem; font-weight: 600; color: var(--ink);
  background: color-mix(in srgb, var(--ink) 7%, transparent); border: 1px solid var(--line-strong);
}
.incl-toggle::after { content: "+"; font-family: var(--font-display); font-weight: 300; font-size: 1.4rem; line-height: 1; }
.incl-toggle[aria-expanded="true"]::after { content: "\2212"; }
@media (max-width: 760px) { .page-hero2 .stack2 > .muted { display: none; } }

.social--big a { width: 52px; height: 52px; background: color-mix(in srgb, var(--ink) 6%, transparent); }
.social--big .icon { width: 22px; height: 22px; }
@media (max-width: 760px) { .rail.tools > li { grid-template-columns: minmax(0, 1fr); gap: 10px; } }

/* About: the icon holds the space above the portrait, like the wordmark on the home gallery */
.gallery2--two > figure:last-child { aspect-ratio: 4 / 3.3; }
.g-side > figure { aspect-ratio: 4 / 4.4 !important; flex: none; position: relative; }
.g-side > figure img { position: absolute; inset: 0; }
.g-icon { color: var(--bone); padding: 0; }
.g-icon svg { width: clamp(88px, 9vw, 140px); height: auto; opacity: .92; }
@media (max-width: 700px) { .g-icon { display: none; } }

/* a statement that closes the room, set large and light (the brand never sets headlines bold) */
.statement-band { padding-block: clamp(48px, 7vw, 112px) clamp(16px, 3vw, 48px); text-align: center; }
.big-statement {
  font-family: var(--font-display); font-weight: 300; letter-spacing: -.035em; line-height: 1.04;
  font-size: clamp(2.4rem, 6.4vw, 6.4rem); text-wrap: balance; max-width: 16ch; margin-inline: auto;
}
.big-statement span { display: block; }
.big-statement span + span { color: var(--sage); }

/* Journal: Hot Topic fills the last row instead of leaving two empty cells */
.j-feature { grid-column: span 2; }
.j-feature a { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); height: 100%; text-decoration: none; border-radius: 18px; overflow: clip; background: var(--deep); color: var(--bone); --ink: var(--bone); --ink-soft: var(--sage); --canvas: var(--deep); }
.j-feature-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.16, 1, .3, 1); }
.j-feature a:hover .j-feature-media img { transform: scale(1.04); }
.j-feature-copy { display: grid; align-content: center; justify-items: start; gap: 16px; padding: clamp(24px, 3vw, 48px); }
.j-feature-title { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.9rem, 2.8vw, 2.8rem); line-height: 1.05; letter-spacing: -.03em; }
.j-feature-text { color: var(--sage); max-width: 34ch; }
@media (max-width: 960px) and (min-width: 701px) { .j-feature { grid-column: 1 / -1; } }
@media (max-width: 700px) { .j-feature { grid-column: auto; } .j-feature a { grid-template-columns: minmax(0, 1fr); } .j-feature-media { aspect-ratio: 4 / 3; } }

/* =========================================================
   Client feedback pass (30 Oct): less text, tiered detail, Membership page
   ========================================================= */
/* Welcome: short intro, then the film */
.welcome-hero { padding-block: clamp(56px, 8vw, 120px) clamp(28px, 4vw, 48px); display: grid; gap: 22px; }
.welcome-hero .h1 { font-size: clamp(3rem, 7vw, 6.8rem); }
.welcome-hero .lede { max-width: 40ch; }
.film-card--wide { aspect-ratio: 21 / 9; border-radius: 22px; }
.film-card--wide .film-play { left: clamp(20px, 3vw, 40px); bottom: clamp(20px, 3vw, 40px); }
@media (max-width: 760px) { .film-card--wide { aspect-ratio: 4 / 3; } }

/* Enhancers: eight one-liners */
.tools3 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 18px; overflow: clip; }
.tools3 li { background: var(--canvas); padding: clamp(20px, 2.4vw, 32px); display: grid; gap: 8px; align-content: start; transition: background-color .25s ease; }
.tools3 li:hover { background: color-mix(in srgb, var(--ink) 5%, var(--canvas)); }
.tools3 h4 { margin: 0; font-family: var(--font-display); font-weight: 300; font-size: clamp(1.3rem, 1.7vw, 1.6rem); letter-spacing: -.02em; }
.tools3 p { color: var(--ink-soft); font-size: 1rem; line-height: 1.5; }
@media (max-width: 1000px) { .tools3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Services */
.svc-hero { padding-block: clamp(56px, 8vw, 120px) 0; display: grid; gap: 22px; }
.svc-hero .h1 { max-width: 14ch; font-size: clamp(3rem, 7vw, 6.6rem); }
.hour summary { font-size: 1.15rem; }
.ls { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 6vw, 112px); align-items: center; }
.ls-photo { aspect-ratio: 5 / 4; overflow: clip; border-radius: 14px; }
.ls-photo img { width: 100%; height: 100%; object-fit: cover; }
.ls-points { display: grid; gap: 12px; padding: 20px 22px; border-radius: 18px; background: color-mix(in srgb, var(--ink) 6%, transparent); border: 1px solid var(--line-strong); }
.ls-points strong { font-weight: 600; }
@media (max-width: 900px) { .ls { grid-template-columns: minmax(0, 1fr); } }
.member-teaser { position: relative; isolation: isolate; overflow: clip; background: var(--obsidian); color: var(--bone); --canvas: var(--obsidian); --ink: var(--bone); --ink-soft: var(--sage); --line-strong: rgb(231 224 214 / .32); padding-block: clamp(96px, 13vw, 200px); }
.member-teaser-in { display: grid; gap: 22px; justify-items: start; }
.member-teaser .h2 { font-size: clamp(2.8rem, 6vw, 5.6rem); }
.entry { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); }
.entry a { display: grid; gap: 10px; text-decoration: none; height: 100%; padding-bottom: 8px; }
.entry-img { aspect-ratio: 4 / 3; overflow: clip; border-radius: 14px; margin-bottom: 8px; }
.entry-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.16, 1, .3, 1); }
.entry a:hover .entry-img img { transform: scale(1.04); }
.entry-name { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.5rem, 2vw, 1.9rem); letter-spacing: -.02em; }
.entry-line { color: var(--ink-soft); }
.entry-price { font-variant-numeric: tabular-nums; font-weight: 600; }
.entry a:hover .entry-name { text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; }

/* ---------- Membership: the private room of the site ---------- */
.page-membership { --canvas: var(--obsidian); background: var(--obsidian); }
.page-membership .site-header { background: var(--obsidian); }
.mem-cover { position: relative; isolation: isolate; overflow: clip; min-height: min(calc(100svh - 112px), 920px); display: grid; align-items: end; }
.mem-cover-bg { position: absolute; inset: 0; z-index: -1; }
.mem-cover-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; opacity: .5; filter: saturate(.75); }
.mem-cover-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--obsidian) 0%, rgb(10 10 10 / .7) 45%, rgb(10 10 10 / .25) 100%), linear-gradient(0deg, var(--obsidian) 0%, transparent 45%); }
.mem-cover-in { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(32px, 5vw, 96px); align-items: end; padding-block: clamp(80px, 12vh, 140px) clamp(56px, 9vh, 104px); }
.mem-cover-copy { display: grid; gap: 24px; justify-items: start; }
.mem-title { font-family: var(--font-display); font-weight: 300; font-size: clamp(3.4rem, 8.4vw, 8.4rem); line-height: .94; letter-spacing: -.05em; max-width: 9ch; }
.mem-card {
  aspect-ratio: 85.6 / 54; border-radius: 22px; padding: clamp(20px, 2.4vw, 30px); display: grid; grid-template-rows: auto 1fr auto; color: var(--bone);
  background: linear-gradient(135deg, rgb(118 120 93 / .5), rgb(18 21 10 / .7) 55%, rgb(69 71 49 / .45)), rgb(18 21 10 / .5);
  -webkit-backdrop-filter: blur(20px) saturate(140%); backdrop-filter: blur(20px) saturate(140%);
  border: 1px solid rgb(231 224 214 / .28);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .22), 0 40px 80px -30px rgb(0 0 0 / .8);
}
.mem-card-top { display: flex; justify-content: space-between; align-items: center; font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; color: var(--sage); }
.mem-card-top svg { width: 52px; height: auto; color: var(--bone); }
.mem-card-price { align-self: center; display: grid; font-family: var(--font-display); font-weight: 300; font-size: clamp(2.4rem, 3.6vw, 3.4rem); letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.mem-card-price small { font-family: var(--font-text); font-size: .95rem; letter-spacing: 0; color: var(--sage); margin-top: 6px; }
.mem-card-meta { display: flex; gap: 32px; margin: 0; }
.mem-card-meta dt { font-size: .74rem; letter-spacing: .18em; text-transform: uppercase; color: var(--sage); }
.mem-card-meta dd { margin: 2px 0 0; font-size: 1rem; }
@media (max-width: 900px) {
  .mem-cover-in { grid-template-columns: minmax(0, 1fr); padding-top: 40vh; }
  .mem-cover-bg::after { background: linear-gradient(0deg, var(--obsidian) 35%, rgb(10 10 10 / .5) 70%, rgb(10 10 10 / .2)); }
  .mem-card { max-width: 420px; }
}

.mem-month { padding-block: clamp(80px, 10vw, 160px) clamp(48px, 6vw, 96px); display: grid; gap: 20px; }
.mem-month .lede { margin-bottom: clamp(20px, 3vw, 40px); }
.weeks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 20px); }
.weeks li { display: grid; gap: 6px; align-content: start; }
.weeks-img { aspect-ratio: 3 / 4; overflow: clip; border-radius: 14px; margin-bottom: 12px; }
.weeks-img img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.85); }
.weeks-n { font-size: .8rem; letter-spacing: .18em; text-transform: uppercase; color: var(--sage); }
.weeks-d { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.8rem, 2.6vw, 2.5rem); letter-spacing: -.03em; line-height: 1.05; }
.weeks-l { color: var(--sage); font-size: 1rem; }

.mem-phases { padding-block: clamp(72px, 9vw, 144px); background: linear-gradient(180deg, var(--obsidian), var(--deep) 40%, var(--obsidian)); }
.mem-phases .h2 { max-width: 18ch; margin-bottom: clamp(40px, 5vw, 72px); }
.phase-rail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 48px); position: relative; }
.phase-rail li { display: grid; gap: 14px; align-content: start; padding-top: 28px; border-top: 1px solid rgb(231 224 214 / .32); }
.phase-n { font-family: var(--font-display); font-weight: 300; font-size: clamp(4rem, 7vw, 6.5rem); line-height: .9; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1px rgb(231 224 214 / .55); }
.phase-rail p { color: var(--sage); }
.phase-grad { margin-top: clamp(40px, 5vw, 64px); font-family: var(--font-display); font-weight: 300; font-size: clamp(1.3rem, 2vw, 1.8rem); letter-spacing: -.02em; color: var(--bone); }

.mem-incl { padding-block: clamp(80px, 10vw, 160px) 0; display: grid; gap: clamp(32px, 4vw, 56px); }
.incl-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(200px, auto); gap: 14px; }
.incl-grid li { border-radius: 18px; padding: clamp(22px, 2.4vw, 32px); display: grid; gap: 8px; align-content: end; background: linear-gradient(160deg, rgb(231 224 214 / .08), rgb(231 224 214 / .02)); border: 1px solid rgb(231 224 214 / .16); }
.incl-big { grid-column: span 2; grid-row: span 2; position: relative; overflow: clip; isolation: isolate; padding: 0 !important; }
.incl-big .incl-img { position: absolute; inset: 0; z-index: -1; }
.incl-big .incl-img img { width: 100%; height: 100%; object-fit: cover; }
.incl-big .incl-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgb(10 10 10 / .92) 10%, transparent 60%); }
.incl-big .incl-copy { display: grid; gap: 8px; padding: clamp(22px, 3vw, 40px); align-self: end; }
.incl-wide { grid-column: span 2; }
.incl-name { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.5rem, 2.2vw, 2.1rem); letter-spacing: -.02em; line-height: 1.1; }
.incl-big .incl-name { font-size: clamp(2rem, 3vw, 2.8rem); }
.incl-line { color: var(--sage); }
.incl-worth { font-size: .9rem; color: var(--sage); opacity: .8; margin-top: 6px; }
@media (max-width: 900px) { .incl-grid { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; } .incl-big, .incl-wide { grid-column: auto; grid-row: auto; } .incl-big { min-height: 340px; } }

.mem-invite { padding-block: 0 clamp(40px, 5vw, 80px); }
.mem-invite-in { display: grid; gap: clamp(28px, 3vw, 44px); padding: clamp(28px, 5vw, 72px); border-radius: 24px; border: 1px solid rgb(231 224 214 / .22); background: radial-gradient(90% 120% at 100% 0%, rgb(118 120 93 / .22), transparent 60%), rgb(231 224 214 / .03); }
.invite-path { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; position: relative; }
.invite-path::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 1px; background: rgb(231 224 214 / .3); }
.invite-path li { position: relative; display: grid; gap: 4px; padding-top: 32px; }
.invite-path li::before { content: ""; position: absolute; top: 0; left: 0; width: 15px; height: 15px; border-radius: 50%; background: var(--obsidian); border: 1px solid var(--bone); }
.invite-path li:last-child::before { background: var(--bone); }
.invite-path span { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.4rem, 2vw, 1.9rem); letter-spacing: -.02em; }
.invite-path small { color: var(--sage); font-size: .95rem; }
@media (max-width: 700px) {
  .invite-path { grid-template-columns: minmax(0, 1fr); padding-left: 30px; gap: 18px; }
  .invite-path::before { left: 7px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
  .invite-path li { padding-top: 0; }
  .invite-path li::before { left: -30px; top: 8px; }
}
@media (max-width: 760px) {
  .rail.weeks > li, .rail.phase-rail > li, .rail.entry > li { background: none; border: 0 !important; padding: 0 !important; }
  .rail.phase-rail > li { border-top: 1px solid rgb(231 224 214 / .32) !important; padding-top: 22px !important; }
}
@media (prefers-reduced-transparency: reduce) { .mem-card { background: var(--deep-2); backdrop-filter: none; } }
.tools3 + .note { margin-top: 20px; }

/* Membership, "Everything is included": frosted cards over a soft photograph.
   Same material as the price card on the cover. Web approximation of frosted glass. */
.mem-incl { position: relative; isolation: isolate; overflow: clip; padding-block: clamp(96px, 12vw, 180px); }
.mem-incl-in { display: grid; gap: clamp(32px, 4vw, 56px); }
.incl-ambient { position: absolute; inset: 0; z-index: -1; }
.incl-ambient img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; opacity: .55; filter: blur(28px) saturate(.9); transform: scale(1.15); }
.incl-ambient::after { content: ""; position: absolute; inset: 0;
  background: radial-gradient(60% 50% at 75% 40%, rgb(118 120 93 / .28), transparent 70%), linear-gradient(180deg, var(--obsidian) 0%, rgb(10 10 10 / .35) 22%, rgb(10 10 10 / .45) 78%, var(--obsidian) 100%); }
.incl-grid li {
  position: relative; isolation: isolate; overflow: clip; border-radius: 22px; color: var(--bone);
  background: linear-gradient(135deg, rgb(118 120 93 / .34), rgb(18 21 10 / .52) 55%, rgb(69 71 49 / .3)), rgb(18 21 10 / .28);
  -webkit-backdrop-filter: blur(22px) saturate(150%); backdrop-filter: blur(22px) saturate(150%);
  border: 1px solid rgb(231 224 214 / .24);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .2), inset 0 -1px 0 rgb(255 255 255 / .04), 0 30px 70px -36px rgb(0 0 0 / .85);
  transition: transform .5s cubic-bezier(.16, 1, .3, 1), border-color .3s ease;
}
.incl-grid li::before { /* a thin light catching the top edge */
  content: ""; position: absolute; inset: 0 0 auto; height: 1px; z-index: 1;
  background: linear-gradient(90deg, transparent 8%, rgb(255 255 255 / .55) 50%, transparent 92%); opacity: .6;
}
@media (hover: hover) { .incl-grid li:hover { transform: translateY(-4px); border-color: rgb(231 224 214 / .4); } }
.incl-worth {
  justify-self: start; margin-top: 14px; padding: 7px 14px; border-radius: 999px; font-size: .88rem; opacity: 1; color: var(--bone);
  background: rgb(231 224 214 / .1); border: 1px solid rgb(231 224 214 / .24); box-shadow: inset 0 1px 0 rgb(255 255 255 / .18);
}
.incl-big { padding: 0 !important; background: var(--obsidian) !important; }
.incl-big .incl-img::after { background: linear-gradient(0deg, rgb(10 10 10 / .45), transparent 55%); }
.incl-big .glass-panel {
  margin: clamp(12px, 1.6vw, 20px); padding: clamp(20px, 2.4vw, 32px); border-radius: 16px;
  background: linear-gradient(135deg, rgb(231 224 214 / .16), rgb(18 21 10 / .38)); border: 1px solid rgb(231 224 214 / .26);
  -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .22);
}
.incl-big .incl-line { color: rgb(231 224 214 / .82); }
@media (max-width: 900px) {
  .incl-grid { gap: 12px; }
  .incl-grid li:not(.incl-big) { padding: 24px !important; min-height: 0; }
  .incl-big { min-height: 420px; }
  .incl-ambient img { object-position: 50% 20%; }
}
@media (prefers-reduced-transparency: reduce) {
  .incl-grid li, .incl-big .glass-panel { background: var(--deep-2); backdrop-filter: none; }
}

/* Membership refinements (31 Oct): one frosted material across the page, no new content */
.page-membership .mem-card-price small { color: rgb(231 224 214 / .78); }
.page-membership .mem-card::after { /* light catching the card's top edge */
  content: ""; position: absolute; inset: 0 12% auto; height: 1px; background: linear-gradient(90deg, transparent, rgb(255 255 255 / .6), transparent); opacity: .55;
}
.page-membership .mem-card { position: relative; }

.page-membership .weeks li {
  padding: 10px 10px 22px; border-radius: 22px; position: relative;
  background: linear-gradient(160deg, rgb(118 120 93 / .26), rgb(18 21 10 / .5) 60%), rgb(18 21 10 / .3);
  border: 1px solid rgb(231 224 214 / .18);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .16), 0 30px 60px -36px rgb(0 0 0 / .9);
  transition: transform .5s cubic-bezier(.16, 1, .3, 1), border-color .3s ease;
}
.page-membership .weeks li > span:not(.weeks-img) { padding-inline: 12px; }
.page-membership .weeks-img { border-radius: 14px; margin-bottom: 16px; }
@media (hover: hover) { .page-membership .weeks li:hover { transform: translateY(-4px); border-color: rgb(231 224 214 / .34); } }

.page-membership .mem-invite-in {
  position: relative; isolation: isolate; overflow: clip;
  background: linear-gradient(135deg, rgb(118 120 93 / .3), rgb(18 21 10 / .55) 55%, rgb(69 71 49 / .25)), rgb(18 21 10 / .4);
  border-color: rgb(231 224 214 / .24);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .18), 0 40px 90px -40px rgb(0 0 0 / .9);
}
.page-membership .invite-path li:last-child::before { box-shadow: 0 0 0 6px rgb(231 224 214 / .1), 0 0 24px rgb(231 224 214 / .35); }
.page-membership .mem-invite .more { background: rgb(231 224 214 / .04); }

.page-membership .final { position: relative; overflow: clip; padding-block: clamp(96px, 12vw, 180px); }
.page-membership .final-in { border: 0; background: none; padding: 0; position: relative; }
.page-membership .final-in::before {
  content: ""; position: absolute; z-index: -1; left: 50%; top: 50%; width: min(900px, 120%); aspect-ratio: 2 / 1; translate: -50% -50%;
  background: radial-gradient(closest-side, rgb(118 120 93 / .32), transparent); filter: blur(20px);
}
.page-membership .final-in .h2 { font-size: clamp(2.6rem, 5.6vw, 5rem); max-width: 14ch; }
@media (max-width: 760px) {
  .page-membership .rail.weeks > li { padding: 10px 10px 22px !important; border: 1px solid rgb(231 224 214 / .18) !important; background: linear-gradient(160deg, rgb(118 120 93 / .26), rgb(18 21 10 / .5) 60%), rgb(18 21 10 / .3); }
}

/* Client changes (31 Oct) */
.welcome-shot { aspect-ratio: 21 / 9; overflow: clip; border-radius: 22px; }
.welcome-shot img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
@media (max-width: 760px) { .welcome-shot { aspect-ratio: 4 / 3; } }
.hero2-lead .hero-sub { max-width: 24ch; }
.page-membership .big-statement { max-width: 24ch; font-size: clamp(2rem, 4.4vw, 4.4rem); line-height: 1.08; }
.page-membership .big-statement span + span { margin-top: .35em; }
.hero2-lead .hero-sub { max-width: 34ch; }
.hero2-lead .display { font-size: clamp(2.8rem, 5.4vw, 5.8rem); }
.welcome-shot img { object-position: 50% 45%; }

/* Home hero: the promise line, set as a quiet second voice of the headline */
.hero2-lead .hero-sub {
  display: flex; align-items: center; gap: 18px; max-width: none; margin-top: 4px;
  font-family: var(--font-display); font-weight: 300; font-size: clamp(1.35rem, 2vw, 2rem);
  letter-spacing: -.015em; line-height: 1.2; color: var(--bone); opacity: .9;
}
.hero2-lead .hero-sub::before { content: ""; flex: none; width: clamp(32px, 4vw, 56px); height: 1px; background: linear-gradient(90deg, var(--sage), rgb(179 180 162 / 0)); }
@media (max-width: 760px) {
  .hero2-lead .hero-sub { justify-content: center; font-size: 1.3rem; gap: 12px; }
  .hero2-lead .hero-sub::before { width: 24px; }
}
@media (max-width: 760px) { .hero2-lead .hero-sub::before { display: none; } }

/* faces first: portraits keep the head in frame at every size */
.about2-photo img, .feature2-photo img, .mv-photo img, .ls-photo img { object-position: 50% 6%; }
@media (max-width: 900px) { .about2-photo, .feature2-photo { aspect-ratio: 1 / 1; } .about2-photo img, .feature2-photo img { object-position: 50% 4%; } }
.pl-price { white-space: nowrap; }
.offer-price { font-size: clamp(1.5rem, 2.2vw, 1.9rem); }

/* journal: portrait photos keep the head in frame, and show more of the picture on phones */
.j-media img { object-position: 50% 12%; }
@media (max-width: 700px) { .j-card .j-media { aspect-ratio: 5 / 4; } }

/* faces in frame, everywhere: crop points chosen per photo, and phones show portraits uncropped */
.page-hero2-photo img { object-position: 50% 12%; }
.form-stage-bg img { object-position: 68% 40%; }
.gallery2 img { object-position: 50% 15%; }
.entry-img img { object-position: 50% 12%; }
.incl-big .incl-img img { object-position: 70% 50%; }
.domain-img img, .weeks-img img { object-position: 66% 50%; }
@media (max-width: 900px) {
  .feature2-photo, .about2-photo, .mv-photo { aspect-ratio: auto; }
  .feature2-photo img, .about2-photo img, .mv-photo img { height: auto; }
}
.mv-photo img { object-position: 62% 6%; }
.gallery2 > figure:last-child img { object-position: 40% 15%; }
.feature2-photo img[src*="DSC09146"] { object-position: 66% 50%; }
.post-figure { aspect-ratio: 4 / 3; max-width: min(calc(100% - 2 * var(--gutter, 20px)), 920px); margin-inline: auto; }
.post-figure img { object-position: 50% 12%; }
img[src*="DSC08993"] { object-position: 50% 58% !important; }

/* 1 Nov, second pass: crops the client flagged */
.gallery2 > figure:last-child img { object-position: 50% 15%; }
.entry-img img[src*="DSC08964"] { object-position: 50% 40%; }
.entry-img img[src*="DSC09276"] { object-position: 50% 30%; }

/* membership cover, phones: the photograph sits clear above the words and melts into the page,
   instead of a dimmed picture hidden behind the title */
@media (max-width: 760px) {
  .mem-cover { display: block; min-height: 0; }
  .mem-cover-bg { position: relative; inset: auto; z-index: 0; aspect-ratio: 4 / 5; }
  .mem-cover-bg img { opacity: 1; filter: saturate(.85) contrast(1.04); object-position: 77% 50%; }
  .mem-cover-bg::after { background: linear-gradient(180deg, rgb(10 10 10 / .35) 0%, transparent 22%, transparent 55%, var(--obsidian) 100%); }
  .mem-cover-in { position: relative; z-index: 1; margin-top: -22vw; padding-top: 0; padding-bottom: 56px; gap: 36px; }
  .mem-title { font-size: clamp(3rem, 14vw, 4.2rem); }
}
/* desktop: the photograph is the subject, not a texture */
@media (min-width: 761px) {
  .mem-cover-bg img { opacity: .78; object-position: 70% 30%; }
  .mem-cover-bg::after { background: linear-gradient(90deg, var(--obsidian) 0%, rgb(10 10 10 / .62) 40%, rgb(10 10 10 / .05) 75%), linear-gradient(0deg, var(--obsidian) 0%, transparent 40%); }
}

/* Safari: a photo with an aspect ratio inside a grid card can push past the card's edge; hold it to the card's width */
.weeks li, .entry a { grid-template-columns: minmax(0, 1fr); }
.weeks-img, .entry-img { width: 100%; min-width: 0; }
.weeks-img img, .entry-img img { display: block; }
/* the outdoor PPL photo: keep both the coach and the man catching the ball, wherever it is cropped */
img[src*="DSC08964"] { object-position: 50% 40% !important; }

/* "Personalised" in place of a price: the display face's light italic, so it reads as a deliberate answer, not a missing number */
.tailored { font-family: var(--font-display); font-style: italic; font-weight: 300; letter-spacing: -.02em; font-size: 1.12em; line-height: 1.1; padding-right: .06em; }
.offer-price .tailored { font-size: 1em; }

/* Contact: portrait photo stays portrait on phones, so the desk and pen stay in frame */
@media (max-width: 900px) { .page-hero2-photo--tall { aspect-ratio: 4 / 5; max-height: none; } }

/* Footer: company and HPCSA details, emergency line */
.footer-copy { display: grid; gap: 6px; }
.footer-copy p { max-width: 72ch; }
.form2 .hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
