:root {
  --cream: #f6f1e8;
  --cream-deep: #efe6d8;
  --paper: #fbf7f0;
  --ink: #2f2b26;
  --ink-soft: #5c564c;
  --gold: #b08d57;
  --gold-deep: #8f7040;
  --forest: #2f3c34;
  --forest-deep: #24302a;
  --sage: #6d7b6a;
  --line: rgba(47, 43, 38, 0.12);
  --shadow: 0 18px 50px rgba(47, 43, 38, 0.12);
  --serif: "Cormorant Garamond", "Times New Roman", serif;
  --sans: "Outfit", "Segoe UI", sans-serif;
  --header: 116px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header); }
body {
  font-family: var(--sans);
  font-weight: 300;
  color: var(--ink);
  background: var(--cream);
  line-height: 1.65;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
button, input, textarea, select { font-family: inherit; }
a { color: inherit; }
::selection { background: var(--gold); color: var(--cream); }

.wrap {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
}

.kicker {
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold-deep);
  margin-bottom: 14px;
}
.kicker.center, .center { text-align: center; }
.section-title {
  font-family: var(--serif);
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 400;
  line-height: 1.2;
}
.section-title.center-title { text-align: center; max-width: 22ch; margin: 0 auto 44px; }
.section-title.left { text-align: left; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--forest);
  color: var(--cream);
  border: 0;
  padding: 15px 22px;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
  max-width: 100%;
  white-space: normal;
  text-align: center;
  line-height: 1.35;
}
.btn:hover { background: var(--forest-deep); }
.btn svg { width: 14px; height: 14px; flex-shrink: 0; }
.cta-short { display: none; }
.fine-print {
  margin-top: 12px;
  font-size: 13px;
  color: var(--ink-soft);
  font-style: italic;
  font-family: var(--serif);
}
.fine-print.light { color: #d7c39a; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(251, 247, 240, 0.94);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.hero, .intro, .band, .close, .method, .site-footer, .modal-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.section-fade {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.section-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  pointer-events: none;
}
.section-backdrop iframe {
  width: 100%;
  height: 100%;
  border: 0;
}
.hero > *:not(.section-backdrop):not(.section-fade),
.intro > *:not(.section-backdrop):not(.section-fade),
.band > *:not(.section-backdrop):not(.section-fade),
.close > *:not(.section-backdrop):not(.section-fade),
.method > *:not(.section-backdrop):not(.section-fade),
.site-header > *:not(.section-backdrop):not(.section-fade),
.site-footer > *:not(.section-backdrop):not(.section-fade),
.modal-card > *:not(.section-backdrop):not(.section-fade) {
  position: relative;
  z-index: 1;
}
.header-inner {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 8px max(16px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left));
}
.logo.nk-logo { display: flex; line-height: 0; min-width: 0; justify-self: start; }
.logo.nk-logo svg, .logo.nk-logo img { height: 96px; width: auto; max-width: min(220px, 48vw); }
.logo.nk-logo img { object-fit: contain; }
.logo.nk-logo .logo-nk { fill: #c4a056; }
.logo.nk-logo .logo-sub { fill: #5a6848; }
.desk-nav {
  display: none;
  justify-self: center;
  gap: 26px;
  font-size: 13px;
  letter-spacing: 0.08em;
}
.desk-nav a { text-decoration: none; }
.desk-nav a:hover { color: var(--gold-deep); }
.header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--forest);
  color: var(--cream);
  border: 0;
  padding: 11px 16px;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
  justify-self: end;
}
.header-cta:hover { background: var(--forest-deep); }

html.scroll-lock, body.scroll-lock, body:has(.modal.open) { overflow: hidden; }
.band { padding: 88px 0; scroll-margin-top: var(--header); }
.band-paper { background: var(--paper); }
.band-cream { background: var(--cream); }
.band-deep { background: var(--cream-deep); }

.hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--cream);
  border-bottom: 1px solid var(--line);
}
.hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 64px 7vw 64px 8vw;
}
.hero h1 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(34px, 4.4vw, 56px);
  line-height: 1.1;
  color: var(--gold-deep);
}
.hero h1 em { font-style: italic; color: var(--ink); }
.hero-lead { margin-top: 22px; max-width: 420px; font-size: 15px; color: var(--ink-soft); }
.hero-extras, .intro-extras, .close-extras { margin: 12px 0 0; padding: 0; }
.hero-extras-item, .intro-extras-item, .close-extras-item { list-style: none; margin: 12px 0 0; padding: 0; }
.hero-extras { max-width: 420px; }
.hero-extras-item > li { margin-top: 0; font-size: 15px; }
.intro-extras-item { margin-left: auto; margin-right: auto; }
.intro-extras-item[data-marker]:not([data-marker="none"]) {
  width: fit-content;
  max-width: 100%;
  text-align: left;
}
.intro-extras-item > li { margin-top: 0; }
.intro-extras-item.mark-list[data-marker]:not([data-marker="none"]) > li,
.hero-extras-item.mark-list[data-marker]:not([data-marker="none"]) > li,
.close-extras-item.mark-list[data-marker]:not([data-marker="none"]) > li { padding-left: 32px; }
.section-media {
  width: min(520px, 90vw);
  height: 180px;
  margin: 28px auto 0;
  overflow: hidden;
  background: #ece4d6;
}
.section-media img,
.section-media video,
.section-media iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.section-media.is-empty {
  display: grid;
  place-items: center;
  border: 1px dashed rgba(176, 141, 87, 0.55);
  color: var(--gold-deep);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  background: rgba(246, 241, 232, 0.45);
}
.intro .section-media {
  width: min(520px, 90vw);
  height: 180px;
}
.faq-wrap .section-media,
.band .section-media {
  width: 100%;
  max-width: 720px;
  height: 180px;
}
.hero-visual { min-height: 460px; overflow: hidden; background: #e7ddd0; }
.hero-visual img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; object-position: 62% 50%; }
.mobile-break { display: none; }

.split {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 64px;
  align-items: center;
}
.more-copy h2 {
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 50px);
  font-weight: 400;
  line-height: 1.12;
  color: var(--forest);
}
.more-sub {
  margin-top: 16px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 22px;
  color: var(--gold-deep);
}
.more-body { margin-top: 22px; color: var(--ink-soft); }
.more-lead { margin-top: 18px; }
.more-questions {
  margin: 16px 0 22px;
  padding-left: 18px;
  border-left: 2px solid var(--gold);
  list-style: none;
}
.more-questions li {
  font-family: var(--serif);
  font-style: italic;
  font-size: 20px;
  margin: 6px 0;
}
.more-under { color: var(--ink-soft); }
.more-deeper {
  margin-top: 8px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 24px;
  color: var(--gold-deep);
}
.more-close {
  margin-top: 18px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 18px;
  color: var(--gold-deep);
}
.more-visual { position: relative; background: #ece4d6; }
.more-visual img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; }
.more-badge {
  position: absolute;
  right: 16px;
  bottom: 20px;
  background: var(--forest);
  color: var(--cream);
  padding: 12px 16px;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.recog-grid { display: grid; grid-template-columns: 1fr 1fr; }
.recog-col { padding: 0 32px; }
.recog-col + .recog-col { border-left: 1px solid rgba(176, 141, 87, 0.35); }
.recog-col h3 {
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold-deep);
  margin-bottom: 22px;
  font-weight: 500;
}
.check-list, .dot-list, .work-on, .mark-list { list-style: none; }
.mark-list > li { position: relative; }
.check-list li, .dot-list li, .work-on li {
  position: relative;
  padding-left: 32px;
  margin-bottom: 16px;
  font-size: 16px;
  line-height: 1.45;
}
.mark-list[data-marker="none"] > li { padding-left: 0; }
.mark-list[data-marker="check"] > li::before,
.mark-list[data-marker="disc"] > li::before,
.mark-list[data-marker="filled"] > li::before,
.mark-list[data-marker="dash"] > li::before,
.mark-list[data-marker="arrow"] > li::before,
.mark-list[data-marker="diamond"] > li::before,
.mark-list[data-marker="number"] > li::before,
.mark-list[data-marker="plus"] > li::before {
  position: absolute;
  left: 0;
  top: 0.2em;
  color: var(--gold);
  box-sizing: border-box;
}
.mark-list[data-marker="check"] > li::before,
.work-on[data-marker="check"] > li::before {
  content: "";
  width: 16px;
  height: 16px;
  border: 1.5px solid var(--gold);
  border-radius: 50%;
}
.mark-list[data-marker="check"] > li::after,
.work-on[data-marker="check"] > li::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 0.38em;
  width: 5px;
  height: 8px;
  border-right: 1.5px solid var(--gold);
  border-bottom: 1.5px solid var(--gold);
  transform: rotate(45deg);
}
.mark-list[data-marker="disc"] > li::before {
  content: "";
  top: 0.45em;
  left: 3px;
  width: 10px;
  height: 10px;
  border: 1.5px solid var(--gold);
  border-radius: 50%;
}
.mark-list[data-marker="filled"] > li::before {
  content: "";
  top: 0.5em;
  left: 4px;
  width: 8px;
  height: 8px;
  background: var(--gold);
  border-radius: 50%;
}
.mark-list[data-marker="dash"] > li::before {
  content: "";
  top: 0.7em;
  left: 0;
  width: 12px;
  height: 1.5px;
  background: var(--gold);
}
.mark-list[data-marker="arrow"] > li::before {
  content: "→";
  font-size: 14px;
  top: 0.05em;
  left: 0;
}
.mark-list[data-marker="diamond"] > li::before {
  content: "";
  top: 0.5em;
  left: 4px;
  width: 8px;
  height: 8px;
  border: 1.5px solid var(--gold);
  transform: rotate(45deg);
}
.mark-list[data-marker="number"] { counter-reset: nkitem; }
.mark-list[data-marker="number"] > li { counter-increment: nkitem; padding-left: 28px; }
.mark-list[data-marker="number"] > li::before {
  content: counter(nkitem);
  font-family: var(--serif);
  font-size: 13px;
  letter-spacing: 0.08em;
  color: var(--gold-deep);
  top: 0.15em;
}
.mark-list[data-marker="plus"] > li::before {
  content: "+";
  font-size: 18px;
  color: var(--gold-deep);
  top: 0;
}
.more-questions.mark-list[data-marker]:not([data-marker="none"]) {
  padding-left: 0;
  border-left: 0;
}
.more-questions.mark-list[data-marker]:not([data-marker="none"]) > li { padding-left: 32px; }

.steps[data-marker="none"] .step-num { display: none; }
.steps[data-marker="check"] .step-num,
.steps[data-marker="disc"] .step-num,
.steps[data-marker="filled"] .step-num,
.steps[data-marker="dash"] .step-num,
.steps[data-marker="arrow"] .step-num,
.steps[data-marker="diamond"] .step-num,
.steps[data-marker="plus"] .step-num {
  font-size: 0;
  line-height: 0;
  min-height: 18px;
  position: relative;
}
.steps[data-marker="check"] .step-num::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 1.5px solid #d7c39a;
  border-radius: 50%;
}
.steps[data-marker="check"] .step-num::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 3px;
  width: 5px;
  height: 8px;
  border-right: 1.5px solid #d7c39a;
  border-bottom: 1.5px solid #d7c39a;
  transform: rotate(45deg);
}
.steps[data-marker="disc"] .step-num::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  border: 1.5px solid #d7c39a;
  border-radius: 50%;
}
.steps[data-marker="filled"] .step-num::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  background: #d7c39a;
  border-radius: 50%;
}
.steps[data-marker="dash"] .step-num::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 1.5px;
  background: #d7c39a;
}
.steps[data-marker="arrow"] .step-num::before { content: "→"; font-size: 18px; color: #d7c39a; }
.steps[data-marker="diamond"] .step-num::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border: 1.5px solid #d7c39a;
  transform: rotate(45deg);
}
.steps[data-marker="plus"] .step-num::before { content: "+"; font-size: 20px; color: #d7c39a; }

.faq[data-marker="plus"] summary::after { content: "+"; }
.faq[data-marker="plus"] details[open] summary::after { content: "×"; }
.faq[data-marker="arrow"] summary::after { content: "→"; }
.faq[data-marker="arrow"] details[open] summary::after { content: "↓"; }
.faq[data-marker="disc"] summary::after {
  content: "";
  width: 10px;
  height: 10px;
  border: 1.5px solid var(--gold);
  border-radius: 50%;
  top: 22px;
}
.faq[data-marker="check"] summary::after { content: "✓"; font-size: 16px; }
.faq[data-marker="dash"] summary::after { content: "–"; }
.faq[data-marker="diamond"] summary::after { content: "◆"; font-size: 12px; }
.faq[data-marker="filled"] summary::after { content: "●"; font-size: 10px; }
.faq[data-marker="number"] { counter-reset: faq; }
.faq[data-marker="number"] details { counter-increment: faq; }
.faq[data-marker="number"] summary::after { content: counter(faq, decimal-leading-zero); font-size: 12px; letter-spacing: 0.12em; }
.faq[data-marker="none"] summary::after { content: none; }

.aside-card[data-marker="check"] .aside-mark {
  width: 16px;
  height: 16px;
  border: 1.5px solid var(--gold);
  border-radius: 50%;
  background: transparent;
  position: relative;
}
.aside-card[data-marker="check"] .aside-mark::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 2px;
  width: 5px;
  height: 8px;
  border-right: 1.5px solid var(--gold);
  border-bottom: 1.5px solid var(--gold);
  transform: rotate(45deg);
}
.aside-card[data-marker="filled"] .aside-mark { background: var(--gold); border-color: var(--gold); }
.aside-card[data-marker="dash"] .aside-mark {
  width: 12px;
  height: 1.5px;
  border: 0;
  border-radius: 0;
  background: var(--gold);
  margin-top: 10px;
}
.aside-card[data-marker="arrow"] .aside-mark {
  border: 0;
  background: none;
  width: auto;
  height: auto;
  font-size: 14px;
  color: var(--gold);
}
.aside-card[data-marker="arrow"] .aside-mark::before { content: "→"; }
.aside-card[data-marker="diamond"] .aside-mark {
  border-radius: 0;
  transform: rotate(45deg);
}
.aside-card[data-marker="number"] .aside-mark { display: none; }
.aside-card[data-marker="none"] .aside-mark { display: none; }
.aside-card[data-marker="plus"] .aside-mark {
  border: 0;
  background: none;
  width: auto;
  font-size: 16px;
  color: var(--gold);
}
.aside-card[data-marker="plus"] .aside-mark::before { content: "+"; }
.recog-close {
  margin: 48px auto 0;
  text-align: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: 22px;
  color: var(--gold-deep);
  max-width: 36ch;
  padding: 18px 22px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.method {
  background: var(--forest);
  color: var(--cream);
  padding: 0 0 88px;
  scroll-margin-top: var(--header);
}
.method-photo {
  position: relative;
  margin: 0;
  width: 100%;
  overflow: hidden;
  background: var(--forest);
}
.method-photo img {
  width: 100%;
  height: clamp(220px, 36vw, 420px);
  object-fit: cover;
  object-position: center 42%;
  display: block;
}
.method-photo::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 90px;
  background: linear-gradient(transparent, var(--forest));
}
.method .wrap { padding-top: 56px; }
.method .kicker { color: #d7c39a; text-align: center; }
.method .section-title { color: var(--cream); text-align: center; }
.method .sub { text-align: center; margin-top: 10px; color: rgba(246, 241, 232, 0.72); }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; margin-top: 56px; }
.step { border-top: 1px solid rgba(215, 195, 154, 0.35); padding-top: 22px; }
.step-num { font-family: var(--serif); letter-spacing: 0.28em; color: #d7c39a; font-size: 13px; }
.step h3 { font-family: var(--serif); font-size: 28px; font-weight: 500; margin: 12px 0 14px; }
.step p { color: rgba(246, 241, 232, 0.78); }
.step em { display: block; margin-top: 18px; font-family: var(--serif); color: #d7c39a; }

.coaching-grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 48px; }
.coaching-grid h2 {
  font-family: var(--serif);
  font-size: clamp(32px, 3.4vw, 44px);
  font-weight: 400;
  margin: 8px 0 18px;
}
.coaching-intro { color: var(--ink-soft); margin-bottom: 22px; }
.work-label { font-weight: 500; margin-bottom: 12px; }
.work-on { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 20px; margin-bottom: 22px; }
.work-on li { margin-bottom: 8px; font-size: 15px; }
.coaching-note { font-family: var(--serif); font-style: italic; font-size: 18px; color: var(--gold-deep); }
.aside-card {
  background: var(--cream);
  padding: 28px 24px 0;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.aside-card h3 {
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 24px;
  color: var(--gold-deep);
  font-weight: 500;
}
.aside-item { display: grid; grid-template-columns: 18px 1fr; gap: 14px; }
.aside-item + .aside-item { margin-top: 22px; }
.aside-mark {
  width: 10px;
  height: 10px;
  margin-top: 6px;
  border: 1.5px solid var(--gold);
  border-radius: 50%;
}
.aside-item strong { display: block; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 4px; }
.aside-item p { font-size: 14px; color: var(--ink-soft); }
.aside-photo {
  display: block;
  width: calc(100% + 48px);
  max-width: none;
  margin: 28px -24px 0;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.why { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 64px; align-items: center; }
.why h2 {
  font-family: var(--serif);
  font-size: clamp(32px, 3.8vw, 48px);
  font-weight: 400;
  line-height: 1.15;
  margin-bottom: 22px;
}
.why h2 em { font-style: italic; }
.why p { color: var(--ink-soft); }
.why p + p { margin-top: 16px; }
.polaroids { position: relative; min-height: 340px; }
.polaroid {
  position: absolute;
  width: 210px;
  background: #fff;
  padding: 12px 12px 36px;
  box-shadow: var(--shadow);
}
.polaroid img { width: 100%; height: 168px; object-fit: cover; }
.polaroid:nth-child(1) { left: 10px; top: 28px; transform: rotate(-8deg); }
.polaroid:nth-child(2) { right: 8px; top: 78px; transform: rotate(7deg); }

.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; margin-top: 28px; }
.quotes blockquote { font-family: var(--serif); font-style: italic; font-size: 20px; line-height: 1.45; }
.quotes footer {
  margin-top: 18px;
  font-family: var(--sans);
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-deep);
}

.faq-wrap { max-width: 760px; }
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary {
  list-style: none;
  cursor: pointer;
  padding: 18px 28px 18px 0;
  font-size: 16px;
  position: relative;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 16px;
  color: var(--gold-deep);
  font-size: 22px;
}
.faq details[open] summary::after { content: "×"; }
.faq details p { padding: 0 0 18px; color: var(--ink-soft); font-size: 15px; }

.close {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--forest-deep);
  color: var(--cream);
}
.close-copy {
  padding: 64px 8vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.close-copy h2 {
  font-family: var(--serif);
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: 400;
  max-width: 12ch;
  line-height: 1.15;
}
.close-copy p { margin: 14px 0 22px; font-family: var(--serif); font-style: italic; font-size: 18px; color: rgba(246,241,232,.8); }
.close-extras-item > li { margin: 14px 0; font-family: var(--serif); font-style: italic; font-size: 18px; color: rgba(246,241,232,.8); }
.close .btn { background: var(--cream); color: var(--forest); width: fit-content; }
.close .btn:hover { background: #fff; }
.close-visual { position: relative; min-height: 280px; }
.close-visual img { width: 100%; height: 100%; min-height: 280px; object-fit: cover; }
.close-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, var(--forest-deep), transparent 46%);
  pointer-events: none;
}

.site-footer {
  background: #1c2621;
  color: rgba(246, 241, 232, 0.55);
  padding: 28px 0 calc(28px + env(safe-area-inset-bottom));
  text-align: center;
  font-size: 12px;
}
.footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px 26px;
  margin-bottom: 16px;
  font-size: 13px;
  letter-spacing: 0.08em;
}
.footer-nav a { color: var(--cream); text-decoration: none; }
.footer-nav a:hover { color: #d7c39a; }
.legal-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 18px;
  margin-top: 14px;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.legal-nav a, .legal-change {
  color: #d7c39a;
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
  text-decoration: none;
}
.legal-nav a:hover, .legal-change:hover { color: var(--cream); }

.legal-copy { max-width: 720px; padding: 12px 0 8px; }
.legal-copy .section-title.left { margin-bottom: 8px; }
.legal-updated {
  margin: 0 0 28px;
  font-size: 13px;
  color: var(--ink-soft);
  font-style: italic;
  font-family: var(--serif);
}
.legal-copy h2 {
  font-family: var(--serif);
  font-weight: 500;
  font-size: 26px;
  margin: 32px 0 12px;
}
.legal-item { margin: 0 0 28px; }
.legal-item-body { white-space: pre-wrap; }

.field-placeholder-edit {
  font-size: 13px;
  font-style: italic;
  color: var(--ink-soft);
  margin: 0 0 8px;
}
.booking-times-edit {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--line);
  background: #fff;
}
.booking-times-edit li {
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
}
.booking-times-edit li:last-child { border-bottom: 0; }

body.cookies-preview .consent-bar {
  position: relative;
  box-shadow: none;
}

.ghost-consent span, .modal-card .btn span { pointer-events: auto; }

.consent-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 90;
  background: var(--paper);
  border-top: 1px solid var(--line);
  box-shadow: 0 -12px 40px rgba(47, 43, 38, 0.12);
  padding: 16px 16px calc(16px + env(safe-area-inset-bottom));
}
.consent-bar[hidden] { display: none !important; }
.consent-inner {
  width: min(1120px, 100%);
  margin: 0 auto;
  display: grid;
  gap: 14px;
}
.consent-inner p {
  font-size: 14px;
  color: var(--ink-soft);
  max-width: 70ch;
}
.consent-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}
.ghost-consent {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--line);
  padding: 15px 22px;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
}
.ghost-consent:hover { background: var(--cream); }
.consent-actions a {
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
body.consent-pending { padding-bottom: 180px; }

@media (min-width: 800px) {
  .consent-inner {
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 24px;
  }
  .consent-actions { justify-content: flex-end; }
}

.mobile-dock {
  display: none;
}

.modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: none;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: max(12px, env(safe-area-inset-top)) 12px max(16px, env(safe-area-inset-bottom));
}
.modal.open, .modal:target { display: block; }
.modal-backdrop { position: fixed; inset: 0; background: rgba(36, 48, 42, 0.55); }
.modal-card {
  position: relative;
  width: min(520px, 100%);
  margin: 16px auto;
  background: var(--paper);
  padding: 36px 28px 28px;
  box-shadow: var(--shadow);
}
.modal-card h2 { font-family: var(--serif); font-size: 32px; font-weight: 400; margin-bottom: 6px; }
.modal-card p { color: var(--ink-soft); margin-bottom: 22px; }
.modal-card .btn { width: 100%; margin-top: 8px; }
.field { margin-bottom: 14px; }
.field label {
  display: block;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 6px;
  color: var(--ink-soft);
}
.field input, .field textarea, .field select {
  width: 100%;
  border: 1px solid var(--line);
  background: #fff;
  padding: 12px;
  font-size: 16px;
  color: var(--ink);
}
.field textarea { min-height: 96px; resize: vertical; }
.close-modal {
  position: absolute;
  top: 12px;
  right: 14px;
  border: 0;
  background: none;
  font-size: 28px;
  cursor: pointer;
  color: var(--ink-soft);
}
.form-success { display: none; text-align: center; padding: 24px 8px; }
.form-success.is-on { display: block; }
.form-success h3 { font-family: var(--serif); font-size: 30px; font-weight: 400; margin-bottom: 8px; }

.intro {
  min-height: calc(100svh - var(--header));
  display: grid;
  place-items: center;
  padding: 28px max(28px, env(safe-area-inset-right)) 48px max(28px, env(safe-area-inset-left));
  background: var(--cream);
}
.intro-main { text-align: center; }
.intro-line {
  font-family: var(--serif);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(32px, 5.4vw, 64px);
  line-height: 1.15;
  color: var(--ink);
}
.intro .line2,
.intro-main .line2 {
  margin-top: 10px;
  font-family: var(--sans);
  font-style: normal;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.band .intro-main { max-width: 40rem; margin-left: auto; margin-right: auto; }
.not-found-copy { max-width: 640px; padding: 24px 0 8px; }
.not-found-copy .section-title.left { max-width: none; margin: 0; }
.not-found-body { margin: 18px 0 28px; color: var(--ink-soft); }
.not-found-copy .intro-extras { margin: 0 0 20px; }
.not-found-copy .intro-extras-item { margin-left: 0; margin-right: auto; }
.not-found-copy .section-media { margin: 0 0 28px 0; }
.not-found-copy .btn { margin-top: 4px; }
.more-visual .section-media {
  width: 100%;
  height: 100%;
  min-height: 420px;
  margin: 0;
}

@media (min-width: 900px) {
  .header-inner { grid-template-columns: 1fr auto 1fr; }
  .desk-nav { display: flex; }
}

[data-scroll-start] { scroll-margin-top: calc(var(--header) + 16px); }

@media (max-width: 899px) {
  .mobile-dock {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 49;
    align-items: center;
    justify-content: space-around;
    gap: 6px 10px;
    padding: 12px 10px calc(12px + env(safe-area-inset-bottom));
    background: rgba(251, 247, 240, 0.96);
    backdrop-filter: blur(10px);
    border-top: 1px solid var(--line);
    font-size: 12px;
    letter-spacing: 0.06em;
    transform: translateY(100%);
    transition: transform 0.28s ease;
    pointer-events: none;
  }
  .mobile-dock a {
    text-decoration: none;
    text-align: center;
    white-space: nowrap;
    color: var(--ink);
  }
  .mobile-dock a:hover,
  .mobile-dock a:focus-visible { color: var(--gold-deep); }
  body.past-intro .mobile-dock {
    transform: translateY(0);
    pointer-events: auto;
  }
  body.past-intro { padding-bottom: calc(52px + env(safe-area-inset-bottom)); }
  body.past-intro .site-footer { padding-bottom: calc(20px + env(safe-area-inset-bottom)); }
  body.scroll-lock .mobile-dock,
  body:has(.modal.open) .mobile-dock {
    transform: translateY(100%);
    pointer-events: none;
  }
  .site-footer .footer-nav { display: none; }
}

@media (max-width: 980px) {
  .hero, .split, .why, .quotes, .steps, .recog-grid, .coaching-grid, .work-on, .close {
    grid-template-columns: 1fr;
  }
  .hero { grid-template-areas: "visual" "copy"; }
  .hero-visual { grid-area: visual; min-height: 0; }
  .hero-visual img { min-height: 0; height: 42vw; min-height: 220px; max-height: 320px; }
  .hero-copy { grid-area: copy; padding: 32px 20px 36px; }
  .close .btn { width: 100%; }
  .wrap { width: calc(100% - 28px); }
  .band { padding: 52px 0; }
  .more-visual img,
  .more-visual .section-media { min-height: 240px; }
  .recog-col { padding: 0; }
  .recog-col + .recog-col { border-left: 0; margin-top: 32px; padding-top: 28px; border-top: 1px solid rgba(176, 141, 87, 0.35); }
  .polaroids { min-height: 260px; margin-top: 12px; }
  .close-copy { padding: 40px 24px; }
  .close-visual img, .close-visual { min-height: 200px; max-height: 220px; }
  .close-visual::after { background: linear-gradient(180deg, var(--forest-deep), transparent 50%); }
  .header-cta {
    white-space: normal;
    line-height: 1.35;
    text-align: center;
    max-width: min(220px, 54vw);
  }
  .logo.nk-logo svg, .logo.nk-logo img { height: 72px; max-width: min(168px, 40vw); }
  .mobile-break { display: block; }
  .method { padding-bottom: 56px; }
  .method-photo img { height: 38vh; max-height: 280px; min-height: 180px; }
  .method .wrap { padding-top: 40px; }
  :root { --header: 96px; }
}

@media (max-width: 640px) {
  :root { --header: 88px; }
  .logo.nk-logo svg, .logo.nk-logo img { height: 64px; max-width: min(148px, 38vw); }
  .hero h1 { font-size: 30px; }
  .polaroid { width: 46%; }
  .header-cta { padding: 10px 12px; font-size: 10px; }
  .modal-card { padding: 28px 18px 22px; }
  .footer-nav { gap: 16px 22px; font-size: 13px; }
  .mobile-dock {
    font-size: 11px;
    letter-spacing: 0.04em;
    padding: 11px 8px calc(11px + env(safe-area-inset-bottom));
  }
}

.hero-visual video, .more-visual video, .method-photo video, .close-visual video,
.hero-visual img, .more-visual img, .method-photo img, .close-visual img {
  width: 100%;
  display: block;
  object-fit: cover;
}
.hero-visual video { min-height: 460px; height: 100%; }
.media-embed {
  position: relative;
  width: 100%;
  min-height: 240px;
  background: #1c2621;
}
.media-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.method-photo .media-embed, .hero-visual .media-embed { min-height: 320px; }

body.preview [data-edit],
body.preview [data-edit-section] { cursor: pointer; }
body.preview [data-edit]:hover {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
body.preview [data-edit-section].is-picked {
  outline: 2px dashed var(--gold);
  outline-offset: -3px;
}
body.preview [data-edit].is-picked {
  outline: 2px solid var(--gold-deep);
  outline-offset: 3px;
}
body.preview .preview-mobile-nav {
  display: block;
  margin-top: 22px;
  padding: 16px 14px 14px;
  border: 1px dashed rgba(215, 195, 154, 0.45);
  background: rgba(246, 241, 232, 0.06);
}
body.preview .preview-nav-kicker {
  margin: 0 0 10px;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #d7c39a;
}
body.preview .preview-mobile-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 18px;
}
body.preview .preview-mobile-links a {
  color: var(--cream);
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 0.08em;
}
body.preview-view [data-edit],
body.preview-view [data-edit-section] { cursor: default; }
.nk-chrome {
  position: fixed;
  z-index: 120;
  pointer-events: none;
  box-sizing: border-box;
  border: 1px solid var(--gold-deep);
}
.nk-handle {
  position: absolute;
  width: 12px;
  height: 12px;
  background: var(--cream);
  border: 2px solid var(--gold-deep);
  pointer-events: auto;
  box-sizing: border-box;
}
.nk-handle-nw { left: -6px; top: -6px; cursor: nwse-resize; }
.nk-handle-ne { right: -6px; top: -6px; cursor: nesw-resize; }
.nk-handle-sw { left: -6px; bottom: -6px; cursor: nesw-resize; }
.nk-handle-se { right: -6px; bottom: -6px; cursor: nwse-resize; }


