@import url("/assets/fonts/fonts.css");

/* ============================================================
   PALETTE
   ============================================================ */
:root{
  /* Taken from the society's crest: deep teal and copper. */
  --pine:#0C2A33;
  --forest:#16414E;
  --moss:#245E6D;
  --clay:#C87B34;
  --clay-ink:#96530F;
  --clay-soft:#E08A5B;
  --clay-bright:#EFA469;
  --oat:#F2EDE2;
  --sand:#E7E0CE;
  --paper:#FFFFFF;
  --blush:#F8E5D3;
  --mint:#DDE9EB;
  --ochre:#E8B46C;

  --ink:#0C2A33;
  --body:#26363B;
  --muted:#516065;
  --ink-dark:#FFFFFF;
  --body-dark:#D3DFE1;
  --muted-dark:#B4C6CA;

  --r-xl:40px; --r-lg:28px; --r-md:18px; --r-sm:12px; --pill:999px;
  --shadow-s:0 2px 8px rgba(12,42,51,.06);
  --shadow-m:0 10px 30px rgba(12,42,51,.09);
  --shadow-l:0 22px 60px rgba(12,42,51,.14);
  --pad:clamp(1.35rem, 1.05rem + .9vw, 2.1rem);
  --gap:clamp(1rem, .7rem + 1vw, 1.6rem);
  --wrap:1180px;
  --sec:clamp(3.6rem, 2.4rem + 4.2vw, 6.6rem);
}

/* ============================================================
   BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
/* author display rules outrank the browser default for [hidden], so make it explicit */
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--oat); color:var(--body);
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:clamp(1.02rem,.98rem + .18vw,1.12rem);
  line-height:1.68; font-weight:400;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Poppins',system-ui,sans-serif;
  color:var(--ink); font-weight:600; line-height:1.14;
  letter-spacing:-.022em; margin:0 0 .55em;
  text-wrap:balance;
}
h1{font-size:clamp(2.25rem,1.5rem + 3.3vw,3.9rem);letter-spacing:-.032em}
h2{font-size:clamp(1.72rem,1.25rem + 2.1vw,2.7rem);letter-spacing:-.028em}
h3{font-size:clamp(1.14rem,1.04rem + .45vw,1.38rem);letter-spacing:-.016em}
h4{font-size:1.02rem;letter-spacing:0;text-transform:uppercase;font-weight:600}
p{margin:0 0 1.05em}
p,li,h1,h2,h3,h4,blockquote,dd,figcaption{overflow-wrap:break-word}
p:last-child,ul:last-child,ol:last-child{margin-bottom:0}
a{color:var(--clay-ink);text-underline-offset:.22em;text-decoration-thickness:.08em}
a:hover{color:var(--pine)}
strong,b{font-weight:600;color:var(--ink)}
img{max-width:100%;height:auto;display:block}
svg{flex:none;width:1em;height:1em}
:focus-visible{outline:3px solid var(--clay-ink);outline-offset:3px;border-radius:6px}
.band-forest :focus-visible,.band-pine :focus-visible,.band-clay :focus-visible{outline-color:var(--ochre)}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1rem,.6rem + 1.6vw,2rem)}
.narrow{max-width:760px}
.skip{position:absolute;left:0;top:-200px;z-index:200;background:var(--pine);color:#fff;padding:.85rem 1.3rem;border-radius:0 0 var(--r-md) 0;font-weight:500;text-decoration:none}
.skip:focus{top:0}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ============================================================
   HEADER  (floating rounded pill)
   ============================================================ */
.site-header{position:sticky;top:0;z-index:90;padding:.7rem 0 .2rem}
.bar{
  display:flex;align-items:center;gap:.7rem;
  background:rgba(255,255,255,.9);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  backdrop-filter:saturate(160%) blur(14px);
  border-radius:var(--pill);
  padding:.55rem .6rem .55rem 1.05rem;
  box-shadow:var(--shadow-m);
}
.brand{display:flex;align-items:center;gap:.62rem;text-decoration:none;color:var(--ink);flex:0 1 auto;min-width:0;overflow:hidden}
.brand-mark{width:42px;height:42px;border-radius:9px;flex:none;display:block;object-fit:contain}
.brand-text{display:flex;flex-direction:column;line-height:1.1;min-width:0}
.brand-name{font-weight:600;font-size:.98rem;letter-spacing:-.022em;line-height:1.16;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.bn-short{display:none}
.brand-sub{font-size:.64rem;letter-spacing:.13em;margin-top:.12rem;text-transform:uppercase;color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav{margin-left:auto;display:flex;gap:.12rem;align-items:center}
.nav a{
  display:block;padding:.52rem .68rem;border-radius:var(--pill);
  color:var(--body);text-decoration:none;font-size:.925rem;font-weight:500;white-space:nowrap;
  transition:background .16s,color .16s;
}
.nav a:hover{background:var(--mint);color:var(--pine)}
.nav a[aria-current="page"]{background:var(--forest);color:#fff}
.header-cta{flex:none;margin-left:.3rem;white-space:nowrap}
.nav-toggle{display:none}

@media (max-width:1140px){
  .bar{border-radius:var(--r-lg);padding:.6rem .7rem;flex-wrap:wrap;row-gap:0}
  .nav-toggle{
    display:inline-flex;align-items:center;gap:.42rem;margin-left:auto;order:3;
    background:var(--mint);color:var(--pine);border:0;border-radius:var(--pill);
    padding:.6rem .95rem;font:inherit;font-size:.9rem;font-weight:500;cursor:pointer;
  }
  .nav-toggle:hover{background:var(--sand)}
  .header-cta{order:2;margin-left:auto}
  .nav{
    order:4;flex-basis:100%;margin-left:0;flex-direction:column;align-items:stretch;
    gap:.12rem;padding:.5rem .1rem 0;
  }
  .nav[hidden]{display:none}
  .nav a{padding:.72rem .95rem;border-radius:var(--r-md);font-size:1rem}
}
@media (max-width:620px){
  .bn-full{display:none}
  .bn-short{display:inline}
  .cta-tail{display:none}
  .header-cta{padding:.7rem 1.05rem;font-size:.9rem}
}
@media (max-width:470px){
  .brand-sub{display:none}
  .bar{padding:.5rem .55rem;gap:.42rem}
  .brand-mark{width:36px;height:36px}
  .brand-name{font-size:.95rem}
  .nav-toggle span{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .nav-toggle{padding:.62rem .72rem}
  .header-cta{padding:.62rem .9rem;font-size:.86rem}
}
@media (max-width:360px){
  .brand-name{max-width:8.4rem}
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.82rem 1.5rem;border-radius:var(--pill);
  font:inherit;font-size:.95rem;font-weight:500;line-height:1.2;
  text-decoration:none;border:2px solid transparent;cursor:pointer;
  transition:transform .14s ease,box-shadow .16s ease,background .16s,color .16s;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn.btn-primary{background:var(--forest);color:#fff;box-shadow:0 6px 18px rgba(22,65,78,.30)}
.btn.btn-primary:hover{background:var(--pine);color:#fff;box-shadow:0 12px 26px rgba(12,42,51,.34)}
.btn.btn-clay{background:var(--clay-ink);color:#fff;box-shadow:0 6px 18px rgba(150,83,15,.30)}
.btn.btn-clay:hover{background:#7A4109;color:#fff}
.btn.btn-ghost{background:transparent;color:var(--forest);border-color:var(--forest)}
.btn.btn-ghost:hover{background:var(--forest);color:#fff}
.btn.btn-light{background:var(--oat);color:var(--pine);box-shadow:0 6px 20px rgba(0,0,0,.2)}
.btn.btn-light:hover{background:#fff;color:var(--pine)}
.btn.btn-outline-light{background:transparent;color:var(--oat);border-color:rgba(241,237,226,.55)}
.btn.btn-outline-light:hover{background:var(--oat);color:var(--pine);border-color:var(--oat)}
.btn svg{width:1.05em;height:1.05em}
.btn-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}

.tlink{
  display:inline-flex;align-items:center;gap:.42rem;font-weight:500;font-size:.93rem;
  color:var(--clay-ink);text-decoration:none;
}
.tlink:hover{color:var(--pine)}
.tlink span{border-bottom:2px solid currentColor;padding-bottom:1px}
.tlink svg{width:1.05em;height:1.05em;transition:transform .16s}
.tlink:hover svg{transform:translateX(3px)}

/* ============================================================
   SECTIONS AND BANDS
   ============================================================ */
.section{padding-block:var(--sec);position:relative}
.section.tight{padding-block:calc(var(--sec) * .62)}
.band{position:relative}
.band-sand{background:var(--sand)}
.band-blush{background:var(--blush)}
.band-mint{background:var(--mint)}
.band-paper{background:var(--paper)}
.band-forest{background:var(--forest);color:var(--body-dark)}
.band-pine{background:var(--pine);color:var(--body-dark)}
.band-clay{background:var(--clay-ink);color:#FCF1E6}
.band-forest h1,.band-forest h2,.band-forest h3,.band-forest h4,
.band-pine h1,.band-pine h2,.band-pine h3,.band-pine h4,
.band-clay h1,.band-clay h2,.band-clay h3,.band-clay h4{color:#fff}
.band-forest strong,.band-pine strong,.band-clay strong{color:#fff}
.band-forest .eyebrow,.band-pine .eyebrow{color:var(--ochre)}
.band-clay .eyebrow{color:#F7DCC2}
.band-forest .lede,.band-pine .lede,.band-clay .lede{color:var(--body-dark)}
.band-clay .lede{color:#F7E1CE}
.band-forest a:not(.btn),.band-pine a:not(.btn),.band-clay a:not(.btn){color:var(--ochre)}
.band-forest a:not(.btn):hover,.band-pine a:not(.btn):hover{color:#fff}

/* rounded top / bottom so bands read as soft slabs */
.round-t{border-radius:var(--r-xl) var(--r-xl) 0 0}
.round-b{border-radius:0 0 var(--r-xl) var(--r-xl)}
.round-all{border-radius:var(--r-xl)}

/* playful arc divider */
.arc{display:block;width:100%;height:clamp(34px,5vw,68px)}
.arc path{fill:currentColor}

.eyebrow{
  display:inline-block;font-size:.74rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--clay-ink);margin:0 0 1rem;
}
.lede{font-size:clamp(1.06rem,1rem + .35vw,1.24rem);color:var(--muted);line-height:1.62;max-width:58ch}
.band-paper .lede,.band-sand .lede,.band-blush .lede,.band-mint .lede{color:var(--muted)}
.section-head{max-width:64ch;margin-bottom:clamp(2rem,1.3rem + 2vw,3.2rem)}
.section-head.center{margin-inline:auto;text-align:center}
.section-head.center .lede{margin-inline:auto}

/* ============================================================
   HERO
   ============================================================ */
.hero{padding:.4rem 0 0}
.hero-panel{
  position:relative;overflow:hidden;border-radius:var(--r-xl);
  background:var(--forest);color:var(--body-dark);
  padding:clamp(2.2rem,1.4rem + 4vw,4.4rem) clamp(1.4rem,1rem + 2.4vw,3.4rem);
  display:grid;gap:clamp(1.8rem,1rem + 3vw,3.4rem);align-items:center;
}
.hero-panel h1{color:#fff}
.hero-panel .eyebrow{color:var(--ochre)}
.hero-panel .lede{color:var(--body-dark)}
.hero-blob{
  position:absolute;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 34% 34%,rgba(200,123,52,.40),rgba(200,123,52,0) 70%);
}
.hero-blob.b1{width:min(60vw,560px);aspect-ratio:1;right:-14%;top:-34%}
.hero-blob.b2{width:min(46vw,420px);aspect-ratio:1;left:-16%;bottom:-38%;
  background:radial-gradient(circle at 50% 50%,rgba(232,180,108,.32),rgba(232,180,108,0) 66%)}
.hero-copy{position:relative;z-index:1}
.hero-media{position:relative;z-index:1}
.hero-media img{border-radius:var(--r-lg);box-shadow:var(--shadow-l);width:100%}
@media (min-width:900px){
  .hero-panel{grid-template-columns:1.06fr .94fr}
}
.hero-sm{
  position:relative;overflow:hidden;border-radius:var(--r-xl);
  background:var(--forest);color:var(--body-dark);
  padding:clamp(2rem,1.3rem + 3vw,3.4rem) clamp(1.4rem,1rem + 2.2vw,3rem);
  margin-top:.4rem;
}
.hero-sm .eyebrow{color:var(--ochre)}
.hero-sm h1{color:#fff;margin-bottom:.4em}
.hero-sm .lede{color:var(--body-dark)}
.hero-sm .hero-copy{max-width:62ch}
.hero-sm .hero-media img{width:100%;max-height:min(56vh,440px);object-fit:cover}

/* ============================================================
   GRIDS
   ============================================================ */
.grid{display:grid;gap:var(--gap)}
/* grid and flex children default to min-width:auto, which lets one long
   word (an email address, a domain) push the whole page sideways */
.grid>*,.splitlist>*,.steps>*,.split>*,.fields>*,.footer-top>*{min-width:0}
@media (min-width:640px){.g2{grid-template-columns:repeat(2,1fr)}}
@media (min-width:700px){.g3{grid-template-columns:repeat(2,1fr)}}
@media (min-width:980px){.g3{grid-template-columns:repeat(3,1fr)}}
@media (min-width:600px){.g4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.g4{grid-template-columns:repeat(4,1fr)}}

/* ============================================================
   TILES  (chunky rounded colour blocks)
   ============================================================ */
.tile{
  background:var(--paper);border-radius:var(--r-lg);padding:var(--pad);
  box-shadow:var(--shadow-s);
  transition:transform .18s ease,box-shadow .18s ease;
}
.tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-m)}
.tile h3{margin-bottom:.42em}
.tile p{color:var(--muted);font-size:.965rem}
.tile-ico{
  width:52px;height:52px;border-radius:var(--r-md);
  display:grid;place-items:center;margin-bottom:1.05rem;
  background:var(--mint);color:var(--forest);
}
.tile-ico svg{width:26px;height:26px}
.tile.t-clay .tile-ico{background:var(--blush);color:var(--clay-ink)}
.tile.t-sand{background:var(--sand)}
.tile.t-sand .tile-ico{background:var(--paper)}
.tile.t-blush{background:var(--blush)}
.tile.t-blush .tile-ico{background:var(--paper);color:var(--clay-ink)}
.tile.t-mint{background:var(--mint)}
.tile.t-mint .tile-ico{background:var(--paper)}
.band-forest .tile,.band-pine .tile{background:rgba(255,255,255,.07);box-shadow:none}
.band-forest .tile p,.band-pine .tile p{color:var(--muted-dark)}
.band-forest .tile-ico,.band-pine .tile-ico{background:rgba(233,184,114,.16);color:var(--ochre)}
.band-forest .tile:hover,.band-pine .tile:hover{background:rgba(255,255,255,.11)}
.band-clay .tile{background:rgba(255,255,255,.1);box-shadow:none}
.band-clay .tile p{color:#FBF2E8}
.band-clay .tile-ico{background:rgba(255,255,255,.16);color:#FBEFE7}

/* big numbered pillar cards on the home page */
.pillar{
  background:var(--paper);border-radius:var(--r-lg);padding:calc(var(--pad) * 1.05);
  box-shadow:var(--shadow-s);position:relative;overflow:hidden;
}
.pillar::after{
  content:"";position:absolute;right:-38px;bottom:-38px;width:130px;height:130px;
  border-radius:50%;background:var(--mint);opacity:.55;
}
.pillar:nth-child(2)::after{background:var(--blush)}
.pillar:nth-child(3)::after{background:var(--sand)}
.pillar > *{position:relative;z-index:1}
.pillar p{color:var(--muted)}

/* ============================================================
   PHOTO CARDS
   ============================================================ */
.pcard{
  background:var(--paper);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--shadow-s);display:flex;flex-direction:column;
  transition:transform .18s ease,box-shadow .18s ease;
}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-m)}
.pcard-media{aspect-ratio:4/3;overflow:hidden;background:var(--sand)}
.pcard-media img{width:100%;height:100%;object-fit:cover}
.pcard-body{padding:var(--pad);display:flex;flex-direction:column;gap:.55rem;flex:1}
.pcard-body h3{margin:0}
.pcard-body p{color:var(--muted);font-size:.965rem;margin:0;flex:1}
.pcard-body .tlink{margin-top:.3rem}

/* soft framed photo used in split sections */
.photo-soft{border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-m)}
.photo-soft img{width:100%}
.split{display:grid;gap:clamp(1.6rem,1rem + 3vw,3.4rem);align-items:center}
@media (min-width:900px){
  .split{grid-template-columns:1fr 1fr}
  .split.wide-left{grid-template-columns:1.15fr .85fr}
  .split.wide-right{grid-template-columns:.85fr 1.15fr}
  .split.flip .split-media{order:2}
}

/* ============================================================
   QUOTE BAND
   ============================================================ */
.quote-band{text-align:center}
.quote{
  font-family:'Lora',Georgia,serif;font-style:italic;font-weight:500;
  font-size:clamp(1.4rem,1.05rem + 1.8vw,2.35rem);
  line-height:1.34;color:#fff;margin:0 auto;max-width:22ch;text-wrap:balance;
}
.quote-mark{display:block;color:var(--clay-bright);font-size:2.6rem;line-height:.6;margin-bottom:1.1rem;font-family:'Lora',serif}
.quote-attrib{margin-top:1.5rem;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-dark);font-weight:500}

/* ============================================================
   STEPS / TIMELINE
   ============================================================ */
.steps{display:grid;gap:1rem;counter-reset:s}
@media (min-width:820px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{
  background:var(--paper);border-radius:var(--r-lg);padding:var(--pad);
  box-shadow:var(--shadow-s);position:relative;
}
.step-n{
  display:grid;place-items:center;width:40px;height:40px;border-radius:var(--pill);
  background:var(--clay-ink);color:#fff;font-weight:600;font-size:1rem;margin-bottom:1rem;
}
.step h3{font-size:1.06rem;margin-bottom:.38em}
.step p{color:var(--muted);font-size:.94rem;margin:0}

/* ============================================================
   YES / NO SPLIT LISTS
   ============================================================ */
.splitlist{display:grid;gap:var(--gap)}
@media (min-width:760px){.splitlist{grid-template-columns:1fr 1fr}}
.sl{border-radius:var(--r-lg);padding:calc(var(--pad) * 1.02)}
.sl.yes{background:var(--mint)}
.sl.no{background:var(--blush)}
.sl h3{display:flex;align-items:center;gap:.55rem;margin-bottom:.9em}
.sl h3 svg{width:1.25em;height:1.25em}
.sl.yes h3{color:var(--forest)}
.sl.no h3{color:var(--clay-ink)}
.sl ul{list-style:none;margin:0;padding:0;display:grid;gap:.72rem}
.sl li{display:flex;gap:.62rem;align-items:flex-start;font-size:.965rem;line-height:1.55}
.sl li svg{width:1.15em;height:1.15em;margin-top:.28em;flex:none}
.sl.yes li svg{color:var(--forest)}
.sl.no li svg{color:var(--clay-ink)}
.band-forest .sl.yes,.band-pine .sl.yes{background:rgba(255,255,255,.08)}
.band-forest .sl.no,.band-pine .sl.no{background:rgba(194,101,60,.16)}
.band-forest .sl.yes h3,.band-pine .sl.yes h3{color:#fff}
.band-forest .sl.no h3,.band-pine .sl.no h3{color:var(--clay-bright)}
.band-forest .sl.yes li svg,.band-pine .sl.yes li svg{color:var(--ochre)}
.band-forest .sl.no li svg,.band-pine .sl.no li svg{color:var(--clay-bright)}

/* ============================================================
   NOTE CALLOUT
   ============================================================ */
.note{
  background:var(--paper);border-radius:var(--r-lg);padding:var(--pad);
  display:flex;gap:.95rem;align-items:flex-start;box-shadow:var(--shadow-s);
  border-left:6px solid var(--clay);
}
.note svg{width:1.4rem;height:1.4rem;color:var(--clay-ink);flex:none;margin-top:.15rem}
.note p{margin:0;font-size:.95rem;color:var(--muted)}
.note.big{border-left-width:8px}
.note.big p{font-size:1rem;color:var(--body)}
.band-forest .note,.band-pine .note{background:rgba(255,255,255,.07);box-shadow:none;border-left-color:var(--ochre)}
.band-forest .note p,.band-pine .note p{color:var(--body-dark)}
.band-forest .note svg,.band-pine .note svg{color:var(--ochre)}

/* ============================================================
   STREAMS (what we do)
   ============================================================ */
.stream{scroll-margin-top:100px}
.stream-label{
  display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1rem;
  font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--clay-ink);
}
.stream-label b{
  display:grid;place-items:center;min-width:30px;height:30px;padding-inline:.5rem;
  border-radius:var(--pill);background:var(--clay-ink);color:#fff;
  font-size:.72rem;letter-spacing:.1em;
}
.band-forest .stream-label,.band-pine .stream-label{color:var(--ochre)}
.band-forest .stream-label b,.band-pine .stream-label b{background:var(--ochre);color:var(--pine)}

/* ============================================================
   EVENTS
   ============================================================ */
.evt{
  background:var(--paper);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-s);
  display:grid;
}
@media (min-width:780px){.evt{grid-template-columns:.82fr 1.18fr}}
.evt-media{background:var(--sand);min-height:200px}
.evt-media img{width:100%;height:100%;object-fit:cover}
.evt-body{padding:calc(var(--pad) * 1.05);display:flex;flex-direction:column;gap:.7rem}
.evt-body h3{margin:0;font-size:clamp(1.2rem,1.08rem + .6vw,1.5rem)}
.evt-body p{margin:0;color:var(--muted);font-size:.965rem}
.evt-meta{display:flex;flex-wrap:wrap;gap:.5rem .95rem;font-size:.9rem;color:var(--body)}
.evt-meta span{display:inline-flex;align-items:center;gap:.42rem}
.evt-meta svg{width:1.05em;height:1.05em;color:var(--clay-ink)}
.badge{
  align-self:flex-start;display:inline-flex;align-items:center;gap:.4rem;
  padding:.34rem .8rem;border-radius:var(--pill);
  font-size:.74rem;letter-spacing:.11em;text-transform:uppercase;font-weight:600;
}
.badge.confirmed{background:var(--mint);color:var(--forest)}
.badge.planning{background:var(--blush);color:var(--clay-ink)}
.badge.full{background:var(--sand);color:var(--muted)}
.evt-needs{font-size:.9rem;color:var(--body);padding-top:.3rem;border-top:1px solid var(--sand);margin-top:.2rem}
.evt-needs b{color:var(--ink)}
.empty-state{
  background:var(--paper);border-radius:var(--r-lg);padding:clamp(2rem,1.4rem + 2vw,3rem);
  text-align:center;box-shadow:var(--shadow-s);
}
.empty-state p{color:var(--muted);max-width:46ch;margin-inline:auto}

/* ============================================================
   FORMS
   ============================================================ */
.form-card{
  background:var(--paper);border-radius:var(--r-xl);padding:clamp(1.5rem,1.1rem + 2vw,2.6rem);
  box-shadow:var(--shadow-m);
}
.band-forest .form-card,.band-pine .form-card{background:var(--oat)}
.band-forest .form-card h2,.band-pine .form-card h2,
.band-forest .form-card h3,.band-pine .form-card h3{color:var(--ink)}
.band-forest .form-card p,.band-pine .form-card p{color:var(--muted)}
.fields{display:grid;gap:1rem;margin-top:1.5rem}
@media (min-width:640px){.fields.two{grid-template-columns:1fr 1fr}.field.full{grid-column:1/-1}}
.field{display:flex;flex-direction:column;gap:.42rem}
.field label{font-size:.9rem;font-weight:500;color:var(--ink)}
.field input,.field textarea{
  font:inherit;font-size:1rem;color:var(--body);background:var(--oat);
  border:2px solid transparent;border-radius:var(--r-md);padding:.82rem 1rem;
  width:100%;transition:border-color .16s,background .16s;
}
.field textarea{min-height:130px;resize:vertical;border-radius:var(--r-md)}
.field input:hover,.field textarea:hover{background:var(--sand)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--forest);background:var(--paper)}
.req{color:var(--clay-ink)}
.honeypot{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{margin-top:1.2rem;font-size:.88rem;color:var(--muted)}
.form-actions{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center;margin-top:1.5rem}
.form-status{
  border-radius:var(--r-md);padding:.9rem 1.15rem;margin-top:1.2rem;font-size:.95rem;
  display:flex;gap:.62rem;align-items:flex-start;
}
.form-status svg{width:1.2em;height:1.2em;flex:none;margin-top:.2em}
.form-status.ok{background:var(--mint);color:var(--forest)}
.form-status.bad{background:var(--blush);color:var(--clay-ink)}
button[disabled]{opacity:.6;cursor:progress}

/* ============================================================
   CONTACT DETAIL CARDS
   ============================================================ */
.dcard{
  background:var(--paper);border-radius:var(--r-lg);padding:var(--pad);
  box-shadow:var(--shadow-s);display:flex;gap:1rem;align-items:flex-start;
}
.dcard .tile-ico{margin-bottom:0;width:46px;height:46px}
.dcard-body{min-width:0}
.dcard h3{font-size:1.02rem;margin-bottom:.25em}
.dcard p{margin:0;color:var(--muted);font-size:.93rem}
.dcard a{font-weight:500;font-size:1.02rem;overflow-wrap:anywhere}
.urgent{background:var(--paper);border-radius:var(--r-lg);padding:var(--pad);box-shadow:var(--shadow-s)}
.urgent .num{
  font-size:1.5rem;font-weight:600;color:var(--clay-ink);letter-spacing:-.02em;
  display:block;margin:.1rem 0 .35rem;
}
.urgent h3{font-size:.96rem;margin-bottom:0}
.urgent p{margin:0;color:var(--muted);font-size:.9rem}

/* ============================================================
   PROSE (privacy)
   ============================================================ */
.prose h2{font-size:clamp(1.25rem,1.12rem + .6vw,1.6rem);margin-top:2.4rem}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--body)}
.prose-updated{margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid var(--sand);font-size:.9rem;color:var(--muted)}

/* ============================================================
   CTA BAND
   ============================================================ */
.cta-panel{
  position:relative;overflow:hidden;border-radius:var(--r-xl);
  background:var(--clay-ink);color:#FCF1E6;
  padding:clamp(2.2rem,1.5rem + 3vw,3.8rem) clamp(1.4rem,1rem + 2.4vw,3.2rem);
  display:grid;gap:clamp(1.4rem,1rem + 2vw,3rem);align-items:center;
}
.cta-panel h2{color:#fff}
.cta-panel p{color:#F7E1CE;max-width:50ch}
.cta-panel::before{
  content:"";position:absolute;width:min(52vw,440px);aspect-ratio:1;border-radius:50%;
  right:-12%;top:-46%;background:radial-gradient(circle at 40% 60%,rgba(255,255,255,.16),rgba(255,255,255,0) 70%);
  pointer-events:none;
}
.cta-panel > *{position:relative;z-index:1}
@media (min-width:900px){
  .cta-panel.with-media{grid-template-columns:1.1fr .9fr}
}
.cta-panel .photo-soft img{border-radius:var(--r-lg)}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--pine);color:var(--muted-dark);padding-block:clamp(3rem,2rem + 3vw,4.6rem) 0;border-radius:var(--r-xl) var(--r-xl) 0 0;margin-top:clamp(2rem,1rem + 3vw,4rem)}
.footer-top{display:grid;gap:clamp(1.8rem,1.2rem + 2vw,3rem)}
@media (min-width:620px){.footer-top{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.footer-top{grid-template-columns:1.6fr 1fr 1fr 1.35fr}}
.footer-brand{display:flex;align-items:center;gap:.7rem;margin-bottom:1.1rem}
.footer-brand img{width:52px;height:52px;border-radius:13px;object-fit:contain;background:var(--oat);padding:4px}
.footer-brand-name{color:#fff;font-weight:600;font-size:1.1rem;letter-spacing:-.02em}
.site-footer p{color:var(--muted-dark);font-size:.94rem}
.site-footer h2{color:#fff;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;margin-bottom:1.05rem}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.site-footer a{color:var(--body-dark);text-decoration:none;font-size:.94rem}
.site-footer a:hover{color:var(--ochre);text-decoration:underline}
.footer-contact a{display:inline-flex;align-items:flex-start;gap:.5rem}
.footer-contact a span{overflow-wrap:anywhere;min-width:0}
.footer-contact svg{color:var(--ochre);width:1.05em;height:1.05em;margin-top:.3em}
.footer-bottom{
  margin-top:clamp(2.2rem,1.6rem + 2vw,3.4rem);padding-block:1.5rem;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;flex-wrap:wrap;gap:.7rem 1.6rem;align-items:center;justify-content:space-between;
  font-size:.85rem;
}
.footer-legal{color:var(--muted-dark);max-width:62ch;margin-top:1.6rem;font-size:.86rem;line-height:1.6}
.land{margin-top:1.2rem;font-size:.86rem;color:var(--muted-dark);max-width:70ch;line-height:1.62}
.social{display:flex;gap:.6rem;margin-top:1.1rem}
.social a{
  width:40px;height:40px;border-radius:var(--pill);display:grid;place-items:center;
  background:rgba(255,255,255,.08);color:var(--body-dark);
}
.social a:hover{background:var(--ochre);color:var(--pine)}
.social svg{width:20px;height:20px}

/* ============================================================
   404
   ============================================================ */
.nf{text-align:center;padding-block:clamp(4rem,3rem + 5vw,8rem)}
.nf .big{font-family:'Poppins',sans-serif;font-size:clamp(4.5rem,3rem + 10vw,9rem);font-weight:600;color:#A75E18;line-height:.9;letter-spacing:-.05em;margin:0 0 1.2rem}
.nf p{max-width:46ch;margin-inline:auto;color:var(--muted)}

/* ============================================================
   MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .btn:hover,.tile:hover,.pcard:hover{transform:none}
}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ============================================================
   ARC DIVIDERS
   ============================================================ */
.arc-wrap{line-height:0;position:relative;z-index:1}
.arc-wrap .arc{display:block;width:100%;height:clamp(28px,4.2vw,58px);flex:none}
.fill-oat path{fill:var(--oat)}
.fill-sand path{fill:var(--sand)}
.fill-blush path{fill:var(--blush)}
.fill-mint path{fill:var(--mint)}
.fill-paper path{fill:var(--paper)}
.fill-forest path{fill:var(--forest)}
.fill-pine path{fill:var(--pine)}
.fill-clay path{fill:var(--clay-ink)}
.mt-lg{margin-top:1.6rem}
.mt-md{margin-top:1.2rem}
.center{text-align:center}
.splitlist.one-col{grid-template-columns:1fr}
.auto-x{margin-inline:auto}
.btn-row.center-row{justify-content:center}

/* ============================================================
   VERY SMALL SCREENS: keep brand, action and menu on one row.
   flex-wrap makes items wrap before they shrink, so the brand
   needs a zero basis here or the bar grows to two rows.
   ============================================================ */
@media (max-width:420px){
  .bar{gap:.36rem}
  .brand{flex:1 1 0}
  .header-cta{padding:.58rem .82rem;font-size:.82rem}
  .nav{flex-basis:100%}
}
