:root{
  --paper:    #EDE4D2;
  --paper-2:  #E4D8BF;
  --paper-3:  #D9CCAF;
  --cream-warm: #EDE4D2;
  --forest:   #2D3F33;
  --forest-deep: #1F2D24;
  --moss:     #4F6A52;
  --ink:      #2A2520;
  --ink-soft: #4A4239;
  --ink-muted:#8A7F6E;
  --blood:    #B8542C;
  --blood-2:  #D26B3A;
  --peach:    #E8A87C;
  --rule:     #CFC2A6;
  --rule-soft:#DCD0B5;
  --serif: "Cormorant Garamond", "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, Menlo, monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans);
  background:var(--paper);color:var(--ink);
  font-weight:400;line-height:1.55;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
::selection{background:var(--blood);color:var(--paper)}

/* Typographic richness — small caps treatment for serif marks */
.smcp{
  font-family:var(--serif);font-weight:500;
  font-variant:small-caps;letter-spacing:.08em;
}
.practice-lead::first-letter,
.hero .lede::first-letter{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:3.6em;line-height:.85;
  float:left;margin:.08em .14em -.05em 0;color:var(--blood);
}
.talk .venue{position:relative;display:inline-block;padding-bottom:6px}
.talk .venue::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--blood);opacity:.5;
}
.talk.featured .venue::after{background:var(--peach);opacity:.55}

.wrap{
  width:100%;max-width:min(1440px, 92vw);
  margin:0 auto;padding:0 clamp(24px, 4vw, 72px);
}
@media (min-width:2200px){.wrap{max-width:1680px}}
@media (min-width:3000px){.wrap{max-width:1880px}}

.eyebrow{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.28em;
  text-transform:uppercase;color:var(--ink-muted);font-weight:500;
}
.eyebrow .dot{display:inline-block;width:5px;height:5px;border-radius:50%;
  background:var(--blood);margin-right:12px;vertical-align:2px;}

/* ── Nav ─────────────────────────────────────────────── */
.nav{
  position:sticky;top:0;z-index:50;
  background:var(--forest);color:var(--paper);
  border-bottom:1px solid rgba(245,239,230,.14);
}
.nav.scrolled{background:var(--forest-deep)}
.nav-row{display:flex;align-items:center;justify-content:space-between;height:80px}
.brand{
  display:flex;align-items:center;gap:0;
  color:var(--paper);line-height:1;
}
.brand .wordmark{
  display:flex;flex-direction:column;align-items:flex-start;gap:5px;
  padding:4px 0 5px;
  border-top:1px solid rgba(245,239,230,.30);
  border-bottom:1px solid rgba(245,239,230,.30);
}
.brand .wordmark .top{
  font-family:var(--serif);font-weight:500;
  font-size:24px;letter-spacing:.005em;
  color:var(--paper);line-height:1;
  display:flex;align-items:baseline;gap:8px;
}
.brand .wordmark .top em{
  font-family:var(--serif);font-style:italic;font-weight:400;
  color:var(--peach);font-size:26px;letter-spacing:0;
  margin:0 -1px;
}
.brand .wordmark .sub{
  font-family:var(--serif);font-weight:500;font-variant:small-caps;
  font-size:10px;letter-spacing:.36em;
  color:rgba(245,239,230,.78);line-height:1;
}
@media (max-width:640px){
  .brand .wordmark .top{font-size:18px}
  .brand .wordmark .top em{font-size:20px}
  .brand .wordmark .sub{font-size:8.5px;letter-spacing:.28em}
}
.nav-links{display:flex;gap:38px;align-items:center}
.nav-links a{font-size:13px;color:rgba(245,239,230,.78);transition:color .2s;letter-spacing:.02em}
.nav-links a:hover{color:var(--peach)}
.nav-links a.cta{
  color:var(--paper);border:1px solid rgba(245,239,230,.45);
  padding:10px 20px;border-radius:0;
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  transition:all .2s;
}
.nav-links a.cta:hover{background:var(--blood);border-color:var(--blood);color:var(--paper)}
@media (max-width:820px){.nav-links a{display:none}.nav-links a:last-child{display:inline-block}}

/* ── Hero ────────────────────────────────────────────── */
.hero{
  position:relative;overflow:hidden;
  background:var(--paper);
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 56% 70% at 92% 12%, rgba(184,84,44,.10), transparent 62%),
    radial-gradient(ellipse 48% 55% at -6% 95%, rgba(45,63,51,.10), transparent 60%);
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(to right, rgba(42,37,32,.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(42,37,32,.045) 1px, transparent 1px);
  background-size:calc(100%/12) 100%, 100% 96px;
  background-position:24px 0, 0 0;
  opacity:.7;mask-image:linear-gradient(180deg, rgba(0,0,0,.6), rgba(0,0,0,0) 88%);
}
.hero-deco{
  position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden;
}
.hero-deco svg{position:absolute;display:block}
.hero-deco .ring{
  top:-180px;right:-160px;width:520px;height:520px;color:rgba(184,84,44,.20);
}
.hero-deco .ring-2{
  top:60px;right:-260px;width:680px;height:680px;color:rgba(42,37,32,.07);
}
.hero-deco .arc{
  bottom:-220px;left:-180px;width:560px;height:560px;color:rgba(45,63,51,.10);
}
/* Lower-right counter-ring */
.hero-deco .ring-3{
  bottom:-220px;right:-180px;width:560px;height:560px;color:rgba(184,84,44,.10);
}
/* Compass / diagram mid-left */
.hero-deco .compass{
  top:38%;left:-80px;width:280px;height:280px;color:rgba(42,37,32,.07);
  transform:translateY(-50%);
}
/* Diagonal blueprint line crossing hero */
.hero-deco .blueprint{
  top:0;left:0;width:100%;height:100%;color:rgba(184,84,44,.08);
}
/* Tick marks down the left edge */
.hero-deco .ticks{
  position:absolute;left:14px;top:18%;bottom:14%;width:1px;
  background:linear-gradient(to bottom,
    rgba(42,37,32,.18) 0,rgba(42,37,32,.18) 1px,transparent 1px,transparent 32px);
  background-size:1px 32px;
}
.hero-deco .ticks::before,.hero-deco .ticks::after{
  content:"";position:absolute;left:-3px;width:8px;height:1px;background:rgba(42,37,32,.30);
}
.hero-deco .ticks::before{top:0}
.hero-deco .ticks::after{bottom:0}
/* Tiny ampersand top-left */
.hero-deco .glyph-2{
  position:absolute;top:80px;left:6vw;
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:120px;line-height:1;color:rgba(184,84,44,.08);
  user-select:none;pointer-events:none;
}
/* Diamond cluster bottom-right */
.hero-deco .diamond{
  bottom:18%;right:6vw;width:140px;height:140px;color:rgba(45,63,51,.18);
}
/* 5-pointed star (Texas / pointe) — small, above portrait card */
.hero-deco .star{
  top:34px;right:8vw;width:54px;height:54px;color:rgba(184,84,44,.45);
}
/* Arabesque sweep — thin curve arcing across the top of the hero */
.hero-deco .arabesque{
  top:0;left:0;width:100%;height:240px;
  color:rgba(45,63,51,.22);
}
/* Protractor diagram top-right of hero */
.hero-deco .protractor{
  top:120px;right:10vw;width:240px;height:144px;color:rgba(184,84,44,.18);
}
/* Section glyph bottom-left */
.hero-deco .glyph-3{
  position:absolute;left:8vw;top:46%;
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:84px;color:rgba(45,63,51,.16);line-height:1;letter-spacing:-.02em;
  user-select:none;
}
@media (max-width:820px){
  .hero-deco .protractor,.hero-deco .glyph-3{display:none}
  .hero-deco .ring,.hero-deco .ring-2{width:340px;height:340px;top:-120px;right:-120px}
  .hero-deco .compass,.hero-deco .ring-3,.hero-deco .glyph-2,.hero-deco .diamond{display:none}
  .hero-deco .ticks{display:none}
  .hero-deco .star,.hero-deco .arabesque{display:none}
}
.hero-inner{
  display:grid;grid-template-columns:1.05fr .95fr;gap:0;
  min-height:720px;align-items:stretch;position:relative;z-index:2;
}
@media (max-width:920px){.hero-inner{grid-template-columns:1fr;min-height:auto}}

.hero-text{
  padding:clamp(80px,8vw,140px) clamp(32px,4vw,72px) clamp(80px,8vw,140px) 0;
  display:flex;flex-direction:column;justify-content:center;
  position:relative;z-index:2;
}
@media (max-width:920px){.hero-text{padding:90px 0 56px}}
.hero h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(56px,8vw,128px);
  line-height:.96;letter-spacing:-.02em;
  margin:0 0 32px;color:var(--ink);text-wrap:balance;
}
.hero h1 em{font-style:italic;color:var(--blood);font-weight:400;position:relative}
.hero h1 em::after{
  content:"";position:absolute;left:0;right:0;bottom:.08em;
  height:.16em;background:rgba(232,168,124,.42);z-index:-1;
}
.hero .lede{
  font-size:clamp(17px,1.4vw,21px);line-height:1.6;color:var(--ink-soft);
  max-width:560px;margin:0 0 40px;font-weight:400;text-wrap:pretty;
}
.hero .lede em{
  font-family:var(--serif);font-style:italic;color:var(--ink);
  font-weight:400;
}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:14px;
  padding:16px 26px;font-family:var(--mono);
  font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;
  cursor:pointer;border:1px solid;transition:all .2s;
}
.btn-primary{background:var(--forest);border-color:var(--forest);color:var(--paper)}
.btn-primary:hover{background:var(--ink);border-color:var(--ink)}
.btn-ghost{background:transparent;border-color:var(--rule);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink)}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(4px)}

/* Portrait */
.hero-portrait{
  position:relative;align-self:stretch;
  background:var(--ink);
  overflow:hidden;min-height:580px;
}
.hero-portrait img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center top;
}
.hero-portrait::before{
  content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg, transparent 75%, rgba(31,45,36,.30) 100%);
  pointer-events:none;
}
.hero-portrait::after{
  content:"";position:absolute;inset:14px;z-index:3;
  border:1px solid rgba(245,239,230,.20);pointer-events:none;
}
.portrait-tag{
  position:absolute;left:32px;top:32px;z-index:4;
  font-family:var(--mono);font-size:10px;letter-spacing:.26em;
  color:var(--paper);text-transform:uppercase;line-height:1.5;
  background:rgba(31,45,36,.45);padding:8px 12px 8px 14px;
  border-left:2px solid var(--peach);backdrop-filter:blur(4px);
}
.portrait-tag b{font-weight:500;color:var(--paper)}

/* Speaking credentials strip */
.speak-creds{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  margin-bottom:48px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
}
@media (max-width:720px){.speak-creds{grid-template-columns:1fr}}
.speak-creds > div{
  padding:24px 28px;border-right:1px solid var(--rule);
  display:flex;align-items:baseline;gap:18px;
}
.speak-creds > div:last-child{border-right:none}
.speak-creds .c-num{
  font-family:var(--serif);font-size:34px;line-height:1;color:var(--ink);font-weight:400;letter-spacing:-.01em;flex-shrink:0;
}
.speak-creds .c-num em{font-style:italic;color:var(--blood)}
.speak-creds .c-lbl{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
  color:var(--ink-muted);text-transform:uppercase;line-height:1.5;
}

/* ── Marquee ─────────────────────────────────────────── */
.strip{background:var(--forest);color:var(--paper);overflow:hidden}
.strip-row{
  display:flex;gap:64px;align-items:center;padding:18px 0;white-space:nowrap;
  font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:rgba(245,239,230,.82);animation:scroll 42s linear infinite;
}
.strip-row span{display:inline-flex;align-items:center;gap:64px}
.strip-row .star{color:var(--peach);font-family:var(--serif);font-size:18px}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── Sections ────────────────────────────────────────── */
section{padding:clamp(90px,11vw,160px) 0;border-bottom:1px solid var(--rule)}
.sec-head{
  display:grid;grid-template-columns:.4fr 1fr;gap:64px;
  align-items:end;margin-bottom:clamp(56px,7vw,100px);
}
@media (max-width:820px){.sec-head{grid-template-columns:1fr;gap:24px}}
.sec-head h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(40px,5vw,84px);
  line-height:1.02;letter-spacing:-.015em;
  margin:14px 0 0;color:var(--ink);text-wrap:balance;
}
.sec-head h2 em{font-style:italic;color:var(--blood);font-weight:400}
.sec-head .kicker{display:flex;align-items:center;gap:14px}
.sec-head .num{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--ink-muted)}

/* ── Practice ────────────────────────────────────────── */
.practice{background:var(--paper-2)}
.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;margin-top:8px}
@media (max-width:820px){.practice-grid{grid-template-columns:1fr;gap:32px}}
.practice-lead{
  font-family:var(--serif);font-size:clamp(26px,2.4vw,36px);line-height:1.22;font-weight:400;
  color:var(--ink);margin:0;text-wrap:balance;
}
.practice-lead em{font-style:italic;color:var(--blood)}
.practice p{margin:0 0 20px;color:var(--ink-soft);font-size:16px;line-height:1.7}

.creds{
  margin-top:80px;display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--rule);
}
@media (max-width:720px){.creds{grid-template-columns:1fr 1fr}}
.creds > div{padding:32px 28px;border-right:1px solid var(--rule)}
.creds > div:last-child{border-right:none}
.creds dt{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;
  color:var(--blood);text-transform:uppercase;margin:0 0 12px;
}
.creds dd{
  font-family:var(--serif);font-size:21px;color:var(--ink);margin:0;line-height:1.3;font-weight:400;
}

/* ── Services ────────────────────────────────────────── */
.services{background:var(--paper)}
.services-list{border-top:1px solid var(--rule)}
.svc{
  display:grid;grid-template-columns:80px 1.1fr 1fr; /* arrow column (was 70px) removed */
  gap:48px;align-items:start;padding:46px 0;
  border-bottom:1px solid var(--rule);
  transition:padding .25s ease,background .25s;
  position:relative;cursor:pointer;
}
@media (max-width:820px){.svc{grid-template-columns:60px 1fr;gap:24px}}
.svc::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:0;
  background:var(--blood);transition:width .25s ease;
}
.svc:hover{padding-left:24px;padding-right:24px;background:var(--paper-2)}
.svc:hover::before{width:3px}
.svc .n{font-family:var(--serif);font-style:italic;font-size:32px;color:var(--ink-muted);font-weight:400}
.svc h3{
  font-family:var(--serif);font-weight:400;font-size:30px;
  line-height:1.15;margin:0 0 10px;letter-spacing:-.005em;color:var(--ink);
}
.svc .tags{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;
  color:var(--ink-muted);text-transform:uppercase;
}
.svc p{font-size:15px;line-height:1.65;color:var(--ink-soft);margin:0;text-wrap:pretty}
@media (max-width:820px){.svc p{display:none}}
/* Arrow indicator — hidden until services link somewhere.
   To restore: uncomment this block, restore `70px` in .svc grid-template-columns above,
   re-add `.svc .arrow` to the 820px media query, and uncomment the <div class="arrow">→</div>
   in each .svc element below.
.svc .arrow{
  justify-self:end;align-self:center;
  width:46px;height:46px;border:1px solid var(--rule);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-muted);transition:all .2s;
}
.svc:hover .arrow{background:var(--blood);color:var(--paper);border-color:var(--blood)}
*/

/* ── Approach (forest band) ──────────────────────────── */
.approach{background:var(--forest);color:var(--paper);position:relative;overflow:hidden;border-bottom:none}
.approach::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 90% 60% at 80% 30%, rgba(184,84,44,.16), transparent 60%);
  pointer-events:none;
}
.approach .wrap{position:relative;z-index:1}
.approach .sec-head h2{color:var(--paper)}
.approach .sec-head h2 em{color:var(--peach)}
.approach .sec-head .num{color:rgba(245,239,230,.55)}
.approach .sec-head .eyebrow{color:rgba(245,239,230,.7)}
.approach .sec-head .eyebrow .dot{background:var(--peach)}
.pillars{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:rgba(245,239,230,.18);border:1px solid rgba(245,239,230,.18);
}
@media (max-width:820px){.pillars{grid-template-columns:1fr}}
.pillar{
  background:var(--forest);padding:48px 36px 56px;
  display:flex;flex-direction:column;gap:18px;min-height:300px;
}
.pillar:hover{background:var(--forest-deep)}
.pillar .num{
  font-family:var(--serif);font-style:italic;font-size:42px;
  color:var(--peach);line-height:1;
}
.pillar h4{font-family:var(--serif);font-weight:400;font-size:28px;margin:0;line-height:1.15;color:var(--paper)}
.pillar p{font-size:15px;line-height:1.6;color:rgba(245,239,230,.84);margin:0;text-wrap:pretty}
.pillar .meta{
  margin-top:auto;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.22em;color:rgba(245,239,230,.55);text-transform:uppercase;
}

/* ── Speaking ────────────────────────────────────────── */
.speaking{background:var(--paper)}
.speak-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--rule);border:1px solid var(--rule);
}
@media (max-width:820px){.speak-grid{grid-template-columns:1fr}}
.talk{
  background:var(--paper);padding:46px 40px;
  display:flex;flex-direction:column;gap:14px;min-height:340px;
  transition:background .25s;
}
.talk:hover{background:var(--paper-2)}
.talk .venue{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;
  color:var(--blood);text-transform:uppercase;font-weight:500;
}
.talk h4{
  font-family:var(--serif);font-weight:400;font-size:28px;
  line-height:1.15;margin:0;letter-spacing:-.005em;color:var(--ink);text-wrap:balance;
}
.talk p{font-size:14.5px;line-height:1.65;color:var(--ink-soft);margin:0;text-wrap:pretty}
.talk .meta{
  margin-top:auto;display:flex;gap:24px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
  color:var(--ink-muted);text-transform:uppercase;
  padding-top:18px;border-top:1px solid var(--rule);
}
.talk.featured{background:var(--forest);color:var(--paper)}
.talk.featured h4{color:var(--paper)}
.talk.featured p{color:rgba(245,239,230,.84)}
.talk.featured .venue{color:var(--peach)}
.talk.featured .meta{color:rgba(245,239,230,.6);border-top-color:rgba(245,239,230,.18)}
.talk.featured:hover{background:var(--forest-deep)}

.upcoming{
  margin-top:80px;padding:48px;
  background:var(--paper-2);border:1px solid var(--rule);
  display:grid;grid-template-columns:.6fr 1.4fr;gap:48px;align-items:center;
}
@media (max-width:820px){.upcoming{grid-template-columns:1fr;gap:24px;padding:32px}}
.upcoming .label{
  font-family:var(--mono);font-size:11px;letter-spacing:.24em;
  color:var(--blood);text-transform:uppercase;font-weight:500;margin-bottom:14px;
}
.upcoming h3{
  font-family:var(--serif);font-weight:400;font-size:36px;
  line-height:1.1;margin:0;color:var(--ink);text-wrap:balance;
}
.upcoming h3 em{font-style:italic;color:var(--blood)}
.upcoming-sessions{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:720px){.upcoming-sessions{grid-template-columns:1fr}}
.session{padding:18px 20px;background:var(--paper);border:1px solid var(--rule)}
.session .ses-meta{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;
  color:var(--ink-muted);text-transform:uppercase;margin-bottom:10px;
}
.session h5{font-family:var(--serif);font-weight:500;font-size:17px;line-height:1.25;margin:0;color:var(--ink)}

/* ── Topics ──────────────────────────────────────────── */
.topics{background:var(--paper-2)}
.topic-cols{columns:2;column-gap:64px}
@media (max-width:720px){.topic-cols{columns:1}}
.topic-cols ul{margin:0;padding:0}
.topic-cols li{
  list-style:none;padding:20px 0;border-bottom:1px solid var(--rule);
  display:flex;align-items:baseline;gap:18px;break-inside:avoid;
  font-family:var(--serif);font-size:22px;font-weight:400;color:var(--ink);
}
.topic-cols li .n{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;
  color:var(--blood);font-weight:500;flex-shrink:0;
}

/* ── Contact ─────────────────────────────────────────── */
.contact{
  background:var(--paper);position:relative;overflow:hidden;
  border-bottom:none;padding:clamp(110px,12vw,180px) 0 110px;
}
.contact::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 50% at 90% 20%, rgba(45,63,51,.10), transparent 60%),
    radial-gradient(ellipse 60% 60% at 10% 90%, rgba(184,84,44,.10), transparent 60%);
  pointer-events:none;
}
.contact .wrap{position:relative;z-index:1}
.contact h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(56px,8vw,128px);
  line-height:.96;letter-spacing:-.02em;
  margin:24px 0 56px;max-width:14ch;color:var(--ink);text-wrap:balance;
}
.contact h2 em{font-style:italic;color:var(--blood)}
.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:start}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;gap:48px}}
.contact .lede{
  font-size:17px;line-height:1.65;color:var(--ink-soft);
  max-width:480px;margin:0 0 36px;text-wrap:pretty;
}
.contact-form{
  background:var(--paper-2);border:1px solid var(--rule);padding:36px;
}
.contact-form label{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;
  color:var(--ink-muted);text-transform:uppercase;display:block;margin-bottom:8px;
}
.contact-form input,.contact-form textarea,.contact-form select{
  width:100%;background:transparent;border:none;
  border-bottom:1px solid var(--rule);
  padding:8px 0 14px;color:var(--ink);
  font-family:var(--sans);font-size:15px;
  margin-bottom:24px;outline:none;transition:border-color .2s;
}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{
  border-bottom-color:var(--blood);
}
.contact-form select option{background:var(--paper);color:var(--ink)}
.contact-form textarea{min-height:80px;resize:vertical}
.contact-form button{
  width:100%;padding:18px;background:var(--forest);color:var(--paper);
  border:none;font-family:var(--mono);font-weight:500;font-size:11.5px;
  letter-spacing:.24em;text-transform:uppercase;cursor:pointer;
  transition:background .2s;
}
.contact-form button:hover{background:var(--ink)}
.contact-form .sent{
  text-align:center;padding:24px;
  font-family:var(--serif);font-style:italic;font-size:22px;color:var(--blood);
}

.contact-meta{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  margin-top:80px;border-top:1px solid var(--rule);
}
@media (max-width:720px){.contact-meta{grid-template-columns:1fr}}
.contact-meta > div{padding:28px 28px;border-right:1px solid var(--rule)}
.contact-meta > div:last-child{border-right:none}
.contact-meta dt{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;
  color:var(--ink-muted);text-transform:uppercase;margin-bottom:10px;
}
.contact-meta dd{margin:0;font-family:var(--serif);font-size:20px;color:var(--ink);font-weight:400}
.contact-meta dd a{border-bottom:1px solid var(--rule)}

/* ── Booking action (contact) ────────────────────────
   Moved out of contact.html's inline <style>. Type, spacing and color
   all resolve from the tokens above: the serif/sans come from --serif /
   --sans, and the button inherits currentColor rather than a hex, so it
   can't drift out of the palette. */
.booking{margin-top:clamp(2.5rem,6vw,4rem)}
.book-btn{
  display:inline-flex;align-items:baseline;gap:.7rem;max-width:100%;
  font-family:var(--serif);font-weight:400;
  font-size:clamp(1.9rem,1.2rem + 3vw,3rem);line-height:1.05;
  color:inherit;background:none;border:0;border-bottom:1px solid currentColor;
  padding:0 0 .35rem;cursor:pointer;text-align:left;
  transition:opacity .25s ease;
}
.book-btn .arrow{
  font-family:var(--sans);font-size:.42em;
  transform:translateY(-.4em);transition:transform .25s ease;flex:none;
}
.book-btn:hover{opacity:.62}
.book-btn:hover .arrow{transform:translate(.35em,-.4em)}
.book-btn:focus-visible{outline:2px solid currentColor;outline-offset:6px}
@media (prefers-reduced-motion:reduce){
  .book-btn,.book-btn .arrow{transition:none}
}

/* ── Footer ──────────────────────────────────────────── */
footer{
  background:var(--forest-deep);color:rgba(245,239,230,.6);
  padding:36px 0;border-top:1px solid rgba(245,239,230,.14);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
}
footer .row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px}
footer .star{color:var(--peach)}
