/* Native Fluency — tokens */
:root, [data-theme="light"]{--surface:#f7f3ec;--surface-raised:#fffdf9;--surface-sunken:#efe8dc;--ink:#26282a;--ink-muted:#5b5e60;--line:#ddd4c6;--line-strong:#8a8478;--brand:#1e4636;--brand-deep:#15332a;--brand-ink:#1e4636;--brand-soft:#dce6df;--on-brand:#f7f3ec;--on-brand-muted:#c9dccf;--accent:#b4532f;--accent-hover:#9c4526;--accent-ink:#9c4526;--accent-soft:#f3e1d6;--on-accent:#ffffff;--focus-ring:#1e4636;--shadow-card:0 1px 2px rgba(38,40,42,0.06), 0 12px 32px rgba(38,40,42,0.07);--shadow-header:0 1px 0 rgba(38,40,42,0.08);}
[data-theme="dark"]{--surface:#121a16;--surface-raised:#1a241f;--surface-sunken:#0e1411;--ink:#eee8de;--ink-muted:#b4b0a6;--line:#2e3a33;--line-strong:#6f7c74;--brand:#1f4536;--brand-deep:#16322a;--brand-ink:#9cc5ae;--brand-soft:#1e2d26;--on-brand:#eee8de;--on-brand-muted:#b9cfc2;--accent:#d9784f;--accent-hover:#e8906a;--accent-ink:#e39470;--accent-soft:#3a251c;--on-accent:#1a0f0a;--focus-ring:#9cc5ae;--shadow-card:0 1px 2px rgba(0,0,0,0.4), 0 12px 32px rgba(0,0,0,0.35);--shadow-header:0 1px 0 rgba(0,0,0,0.5);}
:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-24:112px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-pill:999px;--container-max:1180px;--measure:62ch;--breakpoint-mobile:760px;--font-serif:"Cormorant Garamond", "Cormorant", Garamond, "Times New Roman", serif;--font-sans:"Instrument Sans", "Helvetica Neue", Arial, system-ui, sans-serif;}
.display{font-family:var(--font-serif);font-size:68px;line-height:70px;font-weight:500;letter-spacing:-0.01em;}
.h1{font-family:var(--font-serif);font-size:52px;line-height:58px;font-weight:500;letter-spacing:-0.005em;}
.h2{font-family:var(--font-serif);font-size:40px;line-height:46px;font-weight:500;}
.h3{font-family:var(--font-serif);font-size:26px;line-height:32px;font-weight:600;}
.price{font-family:var(--font-serif);font-size:48px;line-height:52px;font-weight:600;}
.quote{font-family:var(--font-serif);font-size:24px;line-height:34px;font-weight:500;font-style:italic;}
.body-lg{font-family:var(--font-sans);font-size:19px;line-height:30px;font-weight:400;}
.body{font-family:var(--font-sans);font-size:16px;line-height:26px;font-weight:400;}
.small{font-family:var(--font-sans);font-size:14px;line-height:21px;font-weight:400;}
.label{font-family:var(--font-sans);font-size:15px;line-height:20px;font-weight:600;letter-spacing:0.01em;}
.eyebrow{font-family:var(--font-sans);font-size:12px;line-height:16px;font-weight:600;letter-spacing:0.16em;}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/CormorantGaramond-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/CormorantGaramond-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/CormorantGaramond-MediumItalic.woff2") format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/InstrumentSans-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/InstrumentSans-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/InstrumentSans-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

/* Native Fluency — component styles. Every value comes from tokens.css (var(--…));
   the few literals below are mobile type sizes listed in each style's usage note. */

/* ---------- base ---------- */
.nf-page { container: page / inline-size; background: var(--surface); color: var(--ink); font-family: var(--font-sans); font-size: 16px; line-height: 26px; -webkit-font-smoothing: antialiased; }
.nf-page *, .nf-page *::before, .nf-page *::after { box-sizing: border-box; }
:where(.nf-page) :where(h1, h2, h3, p, ul, ol, figure, blockquote, dl, dd) { margin: 0; }
:where(.nf-page) :where(ul, ol) { padding: 0; list-style: none; }
:where(.nf-page) :where(a) { color: inherit; }
.nf-container { width: 100%; max-width: var(--container-max); margin: 0 auto; padding: 0 var(--space-8); }
.nf-section { padding: var(--space-24) 0; position: relative; }
.nf-section--sunken { background: var(--surface-sunken); }
.nf-section__head { max-width: 640px; margin-bottom: var(--space-12); }
.nf-section__head--center { margin-left: auto; margin-right: auto; text-align: center; }
.nf-eyebrow { display: block; color: var(--accent-ink); text-transform: uppercase; margin-bottom: var(--space-3); }
.nf-title { font-family: var(--font-serif); color: var(--ink); }
.nf-lead { color: var(--ink-muted); margin-top: var(--space-4); max-width: var(--measure); }
.nf-section__head--center .nf-lead { margin-left: auto; margin-right: auto; }
.nf-muted { color: var(--ink-muted); }
.nf-mark { color: var(--brand-ink); display: block; }

/* ---------- button ---------- */
.nf-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: 48px; padding: var(--space-3) var(--space-6); border-radius: var(--radius-md); border: 1.5px solid transparent; font-family: var(--font-sans); text-decoration: none; cursor: pointer; white-space: nowrap; transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.nf-btn:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; box-shadow: 0 0 0 2px var(--surface); }
.nf-btn--primary { background: var(--accent); color: var(--on-accent); }
.nf-btn--primary:hover, .nf-btn--primary.is-hover { background: var(--accent-hover); }
.nf-btn--secondary { background: transparent; color: var(--brand-ink); border-color: var(--brand-ink); }
.nf-btn--secondary:hover, .nf-btn--secondary.is-hover { background: var(--brand-soft); }
.nf-btn--quiet { background: transparent; color: var(--brand-ink); padding-left: 0; padding-right: 0; min-height: 0; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.nf-btn--on-brand { background: var(--on-brand); color: var(--brand); }
.nf-btn--sm { min-height: 40px; padding: var(--space-2) var(--space-4); }
.nf-btn--block { width: 100%; }
.nf-btn__arrow { width: 16px; height: 16px; flex: none; }

/* ---------- header ---------- */
.nf-header { background: var(--surface); box-shadow: var(--shadow-header); position: relative; z-index: 2; }
.nf-header__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); height: 84px; }
.nf-header__logo { color: var(--brand-ink); display: inline-flex; }
.nf-header__logo svg { height: 46px; width: auto; display: block; }
.nf-nav { display: flex; align-items: center; gap: var(--space-8); }
.nf-nav a { text-decoration: none; color: var(--ink); padding: var(--space-2) 0; border-bottom: 1.5px solid transparent; }
.nf-nav a[aria-current="page"] { color: var(--brand-ink); border-bottom-color: var(--brand-ink); }
.nf-header__actions { display: flex; align-items: center; gap: var(--space-4); }
.nf-menu-btn { display: none; width: 44px; height: 44px; border-radius: var(--radius-sm); border: 1.5px solid var(--line-strong); background: transparent; color: var(--ink); align-items: center; justify-content: center; }
.nf-menu-btn svg { width: 20px; height: 20px; }

/* ---------- footer ---------- */
.nf-footer { background: var(--brand); color: var(--on-brand); }
.nf-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: var(--space-8); padding-top: var(--space-16); padding-bottom: var(--space-12); }
.nf-footer__brand svg { width: 220px; height: auto; color: var(--on-brand); display: block; }
.nf-footer__tagline { color: var(--on-brand-muted); margin-top: var(--space-4); max-width: 280px; }
.nf-footer h3 { font-family: var(--font-sans); text-transform: uppercase; color: var(--on-brand-muted); margin-bottom: var(--space-4); }
.nf-footer li { margin-bottom: var(--space-2); }
.nf-footer a { color: var(--on-brand); text-decoration: none; }
.nf-social { display: flex; gap: var(--space-3); margin-top: var(--space-2); }
.nf-social a { width: 40px; height: 40px; border-radius: var(--radius-pill); border: 1.5px solid var(--on-brand-muted); display: inline-flex; align-items: center; justify-content: center; color: var(--on-brand); }
.nf-social svg { width: 18px; height: 18px; }
.nf-footer__bottom { background: var(--brand-deep); color: var(--on-brand-muted); }
.nf-footer__bottom .nf-container { display: flex; justify-content: space-between; gap: var(--space-4); padding-top: var(--space-4); padding-bottom: var(--space-4); }

/* ---------- photo placeholder ---------- */
.nf-photo { position: relative; border-radius: var(--radius-lg); background: var(--accent-soft); overflow: hidden; display: flex; align-items: flex-end; min-height: 200px; }
.nf-photo--green { background: var(--brand-soft); }
.nf-photo__shape { position: absolute; inset: 0; color: var(--brand-ink); opacity: .08; }
.nf-photo__shape svg { position: absolute; right: -10%; top: -12%; width: 70%; height: auto; }
.nf-photo__label { position: relative; margin: var(--space-4); padding: var(--space-1) var(--space-3); border-radius: var(--radius-sm); background: var(--surface-raised); color: var(--ink-muted); }

/* ---------- hero ---------- */
.nf-hero { position: relative; overflow: hidden; padding: var(--space-16) 0 var(--space-24); }
.nf-hero__watermark { position: absolute; right: -140px; top: -60px; width: 640px; color: var(--brand-ink); opacity: .05; pointer-events: none; }
.nf-hero__watermark svg { width: 100%; height: auto; display: block; }
.nf-hero__grid { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: var(--space-12); align-items: center; }
.nf-hero__title { font-family: var(--font-serif); color: var(--ink); }
.nf-hero__title em { font-style: italic; color: var(--brand-ink); }
.nf-hero__sub { color: var(--ink-muted); margin-top: var(--space-6); max-width: 30em; }
.nf-hero__ctas { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-8); }
.nf-hero__trust { display: flex; gap: var(--space-6); margin-top: var(--space-8); color: var(--ink-muted); }
.nf-hero__trust li { display: flex; align-items: center; gap: var(--space-2); }
.nf-hero__trust svg { width: 18px; height: 18px; color: var(--brand-ink); flex: none; }
.nf-hero__photos { display: grid; grid-template-columns: 1fr .72fr; grid-template-rows: 1fr 1fr; gap: var(--space-4); height: 500px; }
.nf-hero__photos .nf-photo:first-child { grid-row: 1 / 3; }

/* ---------- benefit card ---------- */
.nf-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
.nf-benefit { background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-8); }
.nf-benefit__icon { width: 56px; height: 56px; border-radius: var(--radius-pill); background: var(--brand-soft); color: var(--brand-ink); display: flex; align-items: center; justify-content: center; margin-bottom: var(--space-6); }
.nf-benefit__icon svg { width: 26px; height: 26px; }
.nf-benefit h3 { font-family: var(--font-serif); color: var(--ink); margin-bottom: var(--space-2); }
.nf-benefit p { color: var(--ink-muted); }

/* ---------- steps ---------- */
.nf-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-8); counter-reset: step; position: relative; }
.nf-step { position: relative; padding-top: var(--space-2); }
.nf-step__num { font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: 64px; line-height: 64px; color: var(--accent-ink); display: block; margin-bottom: var(--space-4); }
.nf-step__rule { position: absolute; top: 34px; left: 64px; right: calc(-1 * var(--space-8) + 8px); height: 1px; background: var(--line); }
.nf-step:last-child .nf-step__rule { display: none; }
.nf-step h3 { font-family: var(--font-serif); margin-bottom: var(--space-2); }
.nf-step p { color: var(--ink-muted); }

/* ---------- lesson formats ---------- */
.nf-formats { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-12); align-items: center; }
.nf-format-list { display: grid; gap: var(--space-4); }
.nf-format { display: grid; grid-template-columns: 48px 1fr; gap: var(--space-4); padding: var(--space-6); background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.nf-format svg { width: 28px; height: 28px; color: var(--brand-ink); margin-top: 2px; }
.nf-format h3 { font-family: var(--font-serif); }
.nf-format p { color: var(--ink-muted); margin-top: var(--space-1); }
.nf-freq-chips { display: flex; gap: var(--space-2); margin-top: var(--space-3); flex-wrap: wrap; }
.nf-chip { display: inline-flex; align-items: center; height: 32px; padding: 0 var(--space-3); border-radius: var(--radius-pill); border: 1px solid var(--line-strong); color: var(--ink); }

/* ---------- package teaser ---------- */
.nf-teaser { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
.nf-teaser__item { background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-8); text-align: center; }
.nf-teaser__item.is-best { border-color: var(--brand-ink); background: var(--brand-soft); }
.nf-teaser__freq { font-family: var(--font-serif); color: var(--ink); }
.nf-teaser__from { color: var(--ink-muted); margin-top: var(--space-4); }
.nf-teaser__price { font-family: var(--font-serif); color: var(--brand-ink); }
.nf-teaser__price small { font-family: var(--font-sans); font-size: 16px; font-weight: 400; color: var(--ink-muted); }
.nf-teaser__foot { text-align: center; margin-top: var(--space-12); }

/* ---------- testimonial ---------- */
.nf-quote { background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-8); display: flex; flex-direction: column; gap: var(--space-6); }
.nf-quote__mark { width: 36px; height: 28px; color: var(--accent-ink); }
.nf-quote blockquote { font-family: var(--font-serif); color: var(--ink); flex: 1; }
.nf-quote figcaption { display: flex; align-items: center; gap: var(--space-3); }
.nf-quote__avatar { width: 44px; height: 44px; border-radius: var(--radius-pill); background: var(--brand-soft); color: var(--brand-ink); display: flex; align-items: center; justify-content: center; font-family: var(--font-serif); font-weight: 600; font-size: 18px; }
.nf-quote__who strong { display: block; font-weight: 600; color: var(--ink); }
.nf-quote__who span { color: var(--ink-muted); }
.nf-placeholder-tag { display: inline-flex; align-self: flex-start; padding: 2px var(--space-2); border-radius: var(--radius-sm); border: 1px dashed var(--line-strong); color: var(--ink-muted); text-transform: uppercase; }

/* ---------- CTA band ---------- */
.nf-cta { background: var(--brand); color: var(--on-brand); border-radius: var(--radius-lg); padding: var(--space-16) var(--space-12); position: relative; overflow: hidden; text-align: center; }
.nf-cta__mark { position: absolute; left: -60px; bottom: -90px; width: 320px; color: var(--on-brand); opacity: .07; }
.nf-cta__mark--r { left: auto; right: -60px; top: -90px; bottom: auto; }
.nf-cta__mark svg { width: 100%; height: auto; display: block; }
.nf-cta h2 { font-family: var(--font-serif); color: var(--on-brand); position: relative; }
.nf-cta p { color: var(--on-brand-muted); margin: var(--space-4) auto 0; max-width: 34em; position: relative; }
.nf-cta .nf-btn { margin-top: var(--space-8); position: relative; }
.nf-cta .nf-btn--primary:focus-visible { box-shadow: 0 0 0 2px var(--brand); outline-color: var(--on-brand); }

/* ---------- monogram divider ---------- */
.nf-divider { display: flex; align-items: center; gap: var(--space-4); color: var(--brand-ink); max-width: 360px; margin: 0 auto; }
.nf-divider::before, .nf-divider::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.nf-divider svg { width: 32px; height: 32px; flex: none; }

/* ---------- frequency toggle ---------- */
.nf-toggle { display: inline-flex; padding: var(--space-1); gap: var(--space-1); border-radius: var(--radius-pill); background: var(--surface-raised); border: 1.5px solid var(--line-strong); }
.nf-toggle button { appearance: none; border: 0; background: transparent; color: var(--ink); font-family: var(--font-sans); min-height: 44px; padding: 0 var(--space-6); border-radius: var(--radius-pill); cursor: pointer; }
.nf-toggle button[aria-selected="true"] { background: var(--brand); color: var(--on-brand); }
.nf-toggle button:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.nf-toggle__short { display: none; }
.nf-toggle__wrap { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); margin-bottom: var(--space-12); }

/* ---------- pricing card ---------- */
.nf-prices { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); align-items: stretch; }
.nf-prices[hidden] { display: none; }
.nf-price { position: relative; background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-8); display: flex; flex-direction: column; }
.nf-price.is-best { border: 2px solid var(--brand-ink); box-shadow: var(--shadow-card); }
.nf-price__badge { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); background: var(--accent); color: var(--on-accent); padding: var(--space-1) var(--space-4); border-radius: var(--radius-pill); text-transform: uppercase; white-space: nowrap; }
.nf-price__dur { font-family: var(--font-serif); color: var(--ink); }
.nf-price__freq { color: var(--ink-muted); margin-top: var(--space-1); }
.nf-price__amount { display: flex; align-items: baseline; gap: var(--space-2); margin-top: var(--space-6); }
.nf-price__amount .price { font-family: var(--font-serif); color: var(--brand-ink); }
.nf-price__amount span:last-child { color: var(--ink-muted); }
.nf-price__approx { color: var(--ink-muted); }
.nf-price__rows { margin: var(--space-6) 0 var(--space-8); border-top: 1px solid var(--line); }
.nf-price__rows div { display: flex; justify-content: space-between; padding: var(--space-3) 0; border-bottom: 1px solid var(--line); }
.nf-price__rows dt { color: var(--ink-muted); }
.nf-price__rows dd { font-weight: 600; color: var(--ink); }
.nf-price__save { color: var(--accent-ink); font-weight: 600; }
.nf-price .nf-btn { margin-top: auto; }

/* ---------- pricing table ---------- */
.nf-table-wrap { border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: var(--surface-raised); }
.nf-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.nf-table th { text-align: left; color: var(--ink-muted); text-transform: uppercase; padding: var(--space-4) var(--space-6); background: var(--surface-sunken); border-bottom: 1px solid var(--line); }
.nf-table td { padding: var(--space-4) var(--space-6); border-bottom: 1px solid var(--line); color: var(--ink); }
.nf-table tr:last-child td { border-bottom: 0; }
.nf-table .num { text-align: right; }
.nf-table tbody tr.group-start td { border-top: 2px solid var(--line); }
.nf-table td.freq { font-family: var(--font-serif); font-weight: 600; font-size: 20px; color: var(--brand-ink); }
.nf-table tr.is-best td { background: var(--brand-soft); }
.nf-table .nf-tag { display: inline-block; margin-left: var(--space-2); padding: 0 var(--space-2); border-radius: var(--radius-pill); background: var(--accent); color: var(--on-accent); font-size: 12px; line-height: 20px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.nf-table-note { color: var(--ink-muted); margin-top: var(--space-4); }
.nf-table-cards { display: none; }

/* ---------- FAQ ---------- */
.nf-faq { max-width: 820px; margin: 0 auto; border-top: 1px solid var(--line); }
.nf-faq details { border-bottom: 1px solid var(--line); }
.nf-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: var(--space-6); padding: var(--space-6) 0; cursor: pointer; font-family: var(--font-serif); color: var(--ink); }
.nf-faq summary::-webkit-details-marker { display: none; }
.nf-faq summary svg { width: 22px; height: 22px; color: var(--brand-ink); flex: none; transition: transform .2s ease; }
.nf-faq details[open] summary svg { transform: rotate(45deg); }
.nf-faq summary:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 4px; border-radius: var(--radius-sm); }
.nf-faq details p { color: var(--ink-muted); padding: 0 var(--space-12) var(--space-6) 0; max-width: var(--measure); }

/* ---------- page header (inner pages) ---------- */
.nf-pagehead { position: relative; overflow: hidden; padding: var(--space-16) 0 var(--space-12); text-align: center; }
.nf-pagehead .nf-hero__watermark { right: 50%; transform: translateX(50%); top: -180px; width: 560px; }
.nf-pagehead h1 { font-family: var(--font-serif); color: var(--ink); position: relative; }
.nf-pagehead p { color: var(--ink-muted); margin: var(--space-4) auto 0; max-width: 34em; position: relative; }

/* ---------- mobile (container width ≤ breakpoint-mobile, 760px) ---------- */
@container page (max-width: 760px) {
  .nf-container { padding: 0 var(--space-4); }
  .nf-section { padding: var(--space-16) 0; }
  .nf-section__head { margin-bottom: var(--space-8); }
  .nf-header__bar { height: 68px; gap: var(--space-4); }
  .nf-header__logo svg { height: 38px; }
  .nf-nav, .nf-header__actions .nf-btn { display: none; }
  .nf-menu-btn { display: inline-flex; }
  .nf-hero { padding: var(--space-8) 0 var(--space-16); }
  .nf-hero__grid, .nf-formats { grid-template-columns: 1fr; gap: var(--space-8); }
  .nf-hero__title.display { font-size: 44px; line-height: 48px; }
  .nf-hero__sub.body-lg { font-size: 17px; line-height: 27px; }
  .nf-hero__ctas .nf-btn { width: 100%; }
  .nf-hero__trust { flex-direction: column; gap: var(--space-2); }
  .nf-hero__photos { height: 300px; }
  .nf-hero__photos .nf-photo:not(:first-child) .nf-photo__label { display: none; }
  .nf-hero__watermark { width: 420px; right: -170px; top: -40px; }
  .nf-title.h2, .nf-cta h2.h2 { font-size: 32px; line-height: 38px; }
  .nf-pagehead h1.h1 { font-size: 38px; line-height: 44px; }
  .nf-grid-3, .nf-steps, .nf-teaser, .nf-prices { grid-template-columns: 1fr; }
  .nf-steps { gap: var(--space-6); }
  .nf-step { display: grid; grid-template-columns: 56px 1fr; column-gap: var(--space-4); }
  .nf-step__num { font-size: 48px; line-height: 48px; margin: 0; grid-row: 1 / 3; }
  .nf-step__rule { display: none; }
  .nf-benefit, .nf-teaser__item, .nf-quote, .nf-price { padding: var(--space-6); }
  .nf-prices { gap: var(--space-8); }
  .nf-cta { padding: var(--space-12) var(--space-6); border-radius: var(--radius-lg); }
  .nf-cta .nf-btn { width: 100%; }
  .nf-toggle { width: 100%; }
  .nf-toggle button { flex: 1; padding: 0 var(--space-2); }
  .nf-toggle__long { display: none; }
  .nf-toggle__short { display: inline; }
  .nf-table-wrap { display: none; }
  .nf-table-cards { display: grid; gap: var(--space-4); }
  .nf-table-cards section { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface-raised); overflow: hidden; }
  .nf-table-cards h3 { padding: var(--space-3) var(--space-4); background: var(--surface-sunken); font-family: var(--font-serif); color: var(--brand-ink); border-bottom: 1px solid var(--line); }
  .nf-table-cards dl > div { display: grid; grid-template-columns: 1fr auto auto; gap: var(--space-4); padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--line); font-variant-numeric: tabular-nums; }
  .nf-table-cards dl > div:last-child { border-bottom: 0; }
  .nf-table-cards dl > div.is-best { background: var(--brand-soft); }
  .nf-table-cards dt { color: var(--ink); font-weight: 600; }
  .nf-table-cards dd { color: var(--ink-muted); text-align: right; }
  .nf-table-cards dd strong { color: var(--ink); }
  .nf-faq summary.h3 { font-size: 22px; line-height: 28px; padding: var(--space-4) 0; }
  .nf-faq details p { padding-right: 0; }
  .nf-footer__grid { grid-template-columns: 1fr 1fr; gap: var(--space-6); padding-top: var(--space-12); padding-bottom: var(--space-8); }
  .nf-footer__brand { grid-column: 1 / -1; }
  .nf-footer__bottom .nf-container { flex-direction: column; gap: var(--space-1); }
  .nf-pagehead { padding: var(--space-12) 0 var(--space-8); }
}

/* ---------- site extras ---------- */
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--surface); }
.nf-skip { position: absolute; left: -999px; top: 8px; background: var(--surface-raised); color: var(--ink); padding: var(--space-2) var(--space-4); border-radius: var(--radius-sm); z-index: 10; }
.nf-skip:focus { left: var(--space-4); }
.nf-header { position: sticky; top: 0; }
.nf-mobile-menu { display: none; border-top: 1px solid var(--line); background: var(--surface); }
.nf-mobile-menu nav { display: flex; flex-direction: column; padding: var(--space-4) 0 var(--space-6); }
.nf-mobile-menu nav a { text-decoration: none; color: var(--ink); padding: var(--space-3) 0; border-bottom: 1px solid var(--line); }
.nf-mobile-menu .nf-btn { margin-top: var(--space-6); width: 100%; }
.nf-header.is-open .nf-mobile-menu { display: block; }
[id] { scroll-margin-top: 96px; }
/* about */
.nf-about { display: grid; grid-template-columns: .9fr 1.1fr; gap: var(--space-12); align-items: center; }
.nf-about .nf-photo { min-height: 440px; }
.nf-about p + p { margin-top: var(--space-4); }
.nf-about__sign { display: flex; align-items: center; gap: var(--space-4); margin-top: var(--space-8); color: var(--brand-ink); }
.nf-about__sign svg { width: 56px; height: 56px; flex: none; }
/* contact form */
.nf-contact { display: grid; grid-template-columns: 1fr 1.1fr; gap: var(--space-12); align-items: start; }
.nf-contact__list { margin-top: var(--space-8); display: grid; gap: var(--space-4); }
.nf-contact__list li { display: flex; gap: var(--space-3); align-items: center; color: var(--ink); }
.nf-contact__list svg { width: 22px; height: 22px; color: var(--brand-ink); flex: none; }
.nf-form { background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-8); display: grid; gap: var(--space-4); box-shadow: var(--shadow-card); }
.nf-form .row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.nf-field { display: grid; gap: var(--space-1); }
.nf-field label { color: var(--ink); }
.nf-field input, .nf-field select, .nf-field textarea { font: inherit; font-size: 16px; color: var(--ink); background: var(--surface); border: 1.5px solid var(--line-strong); border-radius: var(--radius-sm); padding: var(--space-3); min-height: 48px; }
.nf-field textarea { min-height: 110px; resize: vertical; }
.nf-field :is(input, select, textarea):focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.nf-form__note { color: var(--ink-muted); }
.nf-form__ok { display: none; padding: var(--space-4); border-radius: var(--radius-sm); background: var(--brand-soft); color: var(--ink); }
.nf-form.is-sent .nf-form__ok { display: block; }
/* services: format cards */
.nf-service { background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; }
.nf-service .nf-photo { border-radius: 0; min-height: 190px; }
.nf-service__body { padding: var(--space-8); display: flex; flex-direction: column; gap: var(--space-3); flex: 1; }
.nf-service__body h3 { font-family: var(--font-serif); color: var(--ink); display: flex; gap: var(--space-3); align-items: center; }
.nf-service__body h3 svg { width: 26px; height: 26px; color: var(--brand-ink); }
.nf-service__body p { color: var(--ink-muted); }
.nf-ticks { display: grid; gap: var(--space-2); margin-top: var(--space-2); }
.nf-ticks li { display: flex; gap: var(--space-2); color: var(--ink); }
.nf-ticks svg { width: 18px; height: 18px; color: var(--brand-ink); flex: none; margin-top: 4px; }
.nf-included { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-6); }
.nf-included div { border-top: 1.5px solid var(--brand-ink); padding-top: var(--space-4); }
.nf-included h3 { font-family: var(--font-serif); color: var(--ink); margin-bottom: var(--space-2); }
.nf-included p { color: var(--ink-muted); }
@container page (max-width: 760px) {
  .nf-header__bar .nf-header__actions .nf-btn { display: none; }
  .nf-about, .nf-contact, .nf-form .row { grid-template-columns: 1fr; gap: var(--space-8); }
  .nf-form .row { gap: var(--space-4); }
  .nf-about .nf-photo { min-height: 280px; }
  .nf-form { padding: var(--space-6); }
  .nf-included { grid-template-columns: 1fr 1fr; }
  .nf-service__body { padding: var(--space-6); }
}
@container page (max-width: 420px) { .nf-included { grid-template-columns: 1fr; } }
@media (min-width: 761px) { .nf-mobile-menu { display: none !important; } }

/* ---------- additions after the Claude Design export (see docs/adjustments.md) ---------- */
.nf-section--tight { padding-top: var(--space-8); }
.nf-pagehead__eyebrow { position: relative; }
.nf-photo--img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nf-format--outline { background: transparent; border-style: dashed; }
.nf-about__name { display: block; color: var(--ink); }
.nf-teaser__note { text-align: center; color: var(--ink-muted); margin-top: var(--space-8); }
.nf-teaser__note + .nf-teaser__foot { margin-top: var(--space-6); }
.nf-btn__icon { width: 20px; height: 20px; flex: none; }
.nf-nav .nf-lang { border: 1.5px solid var(--line-strong); border-radius: var(--radius-pill); padding: var(--space-1) var(--space-3); }
.nf-nav .nf-lang:hover { border-color: var(--brand-ink); color: var(--brand-ink); }
.nf-footer__bottom a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.nf-contact-card { background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-8); display: grid; gap: var(--space-4); box-shadow: var(--shadow-card); }
.nf-contact-card h3 { font-family: var(--font-serif); color: var(--ink); }
.nf-contact-card__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.nf-contact__list a { color: inherit; }
.nf-single { text-align: center; color: var(--ink-muted); margin-top: var(--space-8); }
.nf-single strong { color: var(--ink); }
.nf-couples { display: grid; grid-template-columns: 1fr 1.1fr; gap: var(--space-12); align-items: center; }
.nf-couples .nf-section__head { margin-bottom: 0; }
.nf-couples__btn { margin-top: var(--space-8); }
.nf-prose { max-width: 720px; margin: 0 auto; color: var(--ink); }
.nf-prose h2 { font-family: var(--font-serif); font-size: 28px; line-height: 34px; font-weight: 500; color: var(--ink); margin: var(--space-12) 0 var(--space-4); }
.nf-prose h2:first-child { margin-top: 0; }
.nf-prose p, .nf-prose li { font-size: 17px; line-height: 28px; color: var(--ink-muted); }
.nf-prose p + p, .nf-prose ul + p, .nf-prose p + ul { margin-top: var(--space-4); }
.nf-prose ul { padding-left: var(--space-6); list-style: disc; display: grid; gap: var(--space-2); }
.nf-prose strong { color: var(--ink); }
.nf-prose a { color: var(--brand-ink); }
.nf-notfound { min-height: 60vh; display: flex; align-items: center; }
.nf-notfound__ctas { display: flex; flex-wrap: wrap; gap: var(--space-4); justify-content: center; margin-top: var(--space-8); position: relative; }

@container page (max-width: 1080px) {
  .nf-nav { gap: var(--space-6); }
  .nf-header__bar { gap: var(--space-6); }
}
@container page (min-width: 761px) and (max-width: 980px) {
  .nf-header__actions .nf-btn { display: none; }
}
@container page (max-width: 760px) {
  .nf-contact-card { padding: var(--space-6); }
  .nf-contact-card__row { grid-template-columns: 1fr; }
  .nf-couples { grid-template-columns: 1fr; gap: var(--space-8); }
  .nf-table-wrap--keep { display: block; }
  .nf-table--compact th, .nf-table--compact td { padding: var(--space-3) var(--space-3); }
  .nf-prose h2 { font-size: 24px; line-height: 30px; margin-top: var(--space-8); }
}
