/* ============================================================
   COMMONS PLATFORM — base layout
   Design tokens, reset, header nav and footer, ported from the
   Commons Platform redesign reference (Inter, warm brown ink,
   sage green primary, gold CTAs, flat square panels).
   ============================================================ */
:root{
  --ink:#4a423e; --ink-2:#5a514c; --ink-3:#3b3531;
  --green:#4e7c59; --green-d:#3f6549; --green-soft:#edf3ee; --green-line:#cfe0d4;
  --cta:#d4a24c; --cta-h:#4e7c59; --cta-ink:#fff;
  --card:#f3e8dc; --chip:#f2e9dc;
  --muted:#6f6f6f; --muted-2:#7b746e; --faint:#9a938d;
  --line:#ece7e0; --line-2:#ddd6cc; --bg-soft:#faf8f3; --white:#fff;
  --amber:#d4a24c; --amber-soft:#fbf4e7; --amber-line:#ecd9b4; --amber-d:#8a6520;
  --red:#c46a4a;
  --t-forest:#3f6549; --t-forest-s:#edf3ee;
  --t-pasture:#d4a24c; --t-pasture-s:#fbf4e7;
  --t-water:#3d7b8c; --t-water-s:#eaf2f4;
  --t-coastal:#4a8f86; --t-coastal-s:#eaf4f2;
  --t-cultural:#c46a4a; --t-cultural-s:#fbeee9;
  --sans:'Inter','Helvetica Neue',Helvetica,'Segoe UI',Roboto,system-ui,Arial,sans-serif;
  --mono:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;
  --shadow-float:0 16px 36px -12px rgba(74,66,62,.24);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
img,svg{max-width:100%;display:block}
h1{font-size:clamp(2rem,4.2vw,2.6rem);font-weight:800;color:var(--ink);line-height:1.12;margin:0}
h2{font-weight:800;color:var(--ink);margin:0}
h3,h4,h5{font-weight:700;color:var(--ink);margin:0}
p{margin:0}
em{font-style:normal;color:var(--green)}
:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.mx{max-width:90rem;margin:0 auto;padding:0 2rem}
@media(max-width:560px){.mx{padding:0 1.15rem}}
.ic{width:1rem;height:1rem;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- nav (from the Commons Platform redesign header) ---------- */
nav.top{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line);box-shadow:none;transition:box-shadow .2s ease}
nav.top.scrolled{box-shadow:0 1px 14px -8px rgba(74,66,62,.35)}
nav.top .bar{display:flex;align-items:center;gap:1.75rem;height:5rem;max-width:90rem;margin:0 auto;padding:0 2rem}
.brand{display:inline-flex;align-items:center;flex:none}
.brand .logo{height:4.1rem;width:auto;display:block}
nav.top .links{display:flex;align-items:center;gap:2rem;flex:1;justify-content:flex-end;min-width:0}
nav.top .links a{color:var(--muted);font-size:.90rem;font-weight:500;padding:.35rem 0;white-space:nowrap;transition:color .15s;display:inline-flex;align-items:center;gap:.3rem}
nav.top .links a:hover{color:var(--ink);background:none}
nav.top .links a.active{color:var(--green-d);background:none;font-weight:700}
.subbar{border-top:1px solid var(--line);background:#fff}
.subbar-in{max-width:90rem;margin:0 auto;padding:0 2rem;height:3.5rem;display:flex;align-items:center;justify-content:center;gap:.35rem}
.subbar-label{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-right:.75rem;flex:none}
.subbar a{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .7rem;border-radius:8px;font-size:.84rem;font-weight:600;color:var(--ink-2);white-space:nowrap;transition:background .15s,color .15s}
.subbar a:hover{background:var(--bg-soft);color:var(--green-d)}
.subbar a img,.subbar a .ic,.subbar a [data-lucide]{width:2rem;height:2rem;object-fit:contain}
@media(max-width:1400px){.subbar a{font-size:.8rem;padding:.35rem .55rem;gap:.4rem}}
@media(max-width:1220px){.subbar a img,.subbar a .ic,.subbar a [data-lucide]{width:1.7rem;height:1.7rem}.subbar a{font-size:.76rem}}
@media(max-width:980px){.subbar{display:none}}
.navright{display:flex;align-items:center;gap:1rem;flex:none}
.navdiv{width:1px;height:1.6rem;background:var(--line-2);flex:none}
.nav-ic{border:0;background:none;padding:.25rem;color:var(--ink);display:grid;place-items:center;transition:color .15s;cursor:pointer}
.nav-ic:hover{color:var(--green-d)}
.nav-ic .ic{width:1.25rem;height:1.25rem;stroke-width:2.4}
/* header search — the icon expands into a field in place */
.navsearch{display:flex;align-items:center;gap:.5rem}
.ns-field{display:none;position:relative;align-items:center}
.ns-field input{width:min(26rem,32vw);min-width:0;padding:.5rem 2.4rem .5rem .85rem;border:1px solid var(--line-2);border-radius:0;background:#fff;font:inherit;font-size:.9rem;color:var(--ink);outline:none;transition:.15s}
.ns-field input::placeholder{color:var(--faint)}
.ns-field input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(78,124,89,.12)}
.ns-go{position:absolute;right:.5rem;border:0;background:none;padding:0;display:grid;place-items:center;color:var(--muted);cursor:pointer;transition:color .15s}
.ns-go:hover{color:var(--green-d)}
.ns-go .ic{width:1.1rem;height:1.1rem;stroke-width:2.4}
.ns-x{display:none;border:0;background:none;padding:.25rem;color:var(--muted);cursor:pointer;transition:color .15s}
.ns-x:hover{color:var(--ink)}
.ns-x .ic{width:1.15rem;height:1.15rem;stroke-width:2.4}
.navsearch.open .nav-ic.s{display:none}
.navsearch.open .ns-field{display:flex}
.navsearch.open .ns-x{display:grid;place-items:center}
/* the nav links step aside while the field is open */
.bar:has(.navsearch.open) .links{display:none}
.bar:has(.navsearch.open) .navright{flex:1;min-width:0}
.navsearch.open{flex:1;justify-content:flex-end}
.navsearch.open .ns-field{flex:1;max-width:34rem}
.navsearch.open .ns-field input{width:100%}
/* language */
.langw{position:relative}
.langbtn{display:inline-flex;align-items:center;gap:.3rem;border:0;background:none;padding:.25rem;font:inherit;font-size:.92rem;font-weight:600;color:var(--ink);transition:color .15s;cursor:pointer}
.langbtn:hover{color:var(--green-d)}
.langbtn .ic{width:.95rem;height:.95rem;color:var(--faint);transition:transform .15s}
.langw.open .langbtn .ic{transform:rotate(180deg)}
.lang-menu{position:absolute;right:0;top:calc(100% + .6rem);min-width:12rem;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-float);padding:.3rem;display:none;z-index:70;max-height:24rem;overflow:auto}
.langw.open .lang-menu{display:block}
.lang-opt{display:block;width:100%;text-align:left;border:0;background:none;padding:.55rem .7rem;font:inherit;font-size:.9rem;font-weight:600;color:var(--ink);cursor:pointer}
.lang-opt:hover{background:var(--bg-soft)}
.lang-opt.on{color:var(--green-d)}
.navtoggle{display:none;width:2.4rem;height:2.4rem;border-radius:0;border:1px solid var(--line-2);background:#fff;color:var(--ink);place-items:center;cursor:pointer}
.navtoggle .ic{width:1.2rem;height:1.2rem}
@media(max-width:1400px){nav.top .links{gap:1.5rem}nav.top .links a,nav.top .links summary{font-size:.88rem}}
@media(max-width:1220px){nav.top .bar{gap:1rem}nav.top .links{gap:1.05rem}nav.top .links a,nav.top .links summary{font-size:.82rem}}
@media(max-width:980px){nav.top .links{display:none}.navtoggle{display:grid}.navdiv,.langw{display:none}}
@media(max-width:700px){nav.top .bar{gap:.5rem;padding:0 1.15rem;justify-content:space-between;}.navright{gap:.5rem}.brand .logo{height:3rem}}
.mobnav{display:none;border-top:1px solid var(--line);background:#fff;padding:.75rem 1.15rem 1.15rem;box-shadow:0 12px 20px -14px rgba(74,66,62,.4)}
.mobnav.open{display:block}
.mobnav a{display:flex;align-items:center;gap:.65rem;padding:.7rem .75rem;border-radius:.6rem;font-size:.95rem;font-weight:600;color:var(--muted)}
.mobnav a.active{background:var(--green-soft);color:var(--green-d)}
.mobnav .grp{padding:.7rem .75rem .2rem;font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}
.mobnav a.sub{padding-left:1.6rem;font-weight:500}

/* pages held back for now — visible, not clickable */
.soon{pointer-events:none;opacity:.5;cursor:default}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:0;font-size:.92rem;font-weight:600;padding:.65rem 1.35rem;border:1px solid transparent;white-space:nowrap;transition:transform .12s,box-shadow .2s,background .2s,border-color .15s,color .15s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--cta);color:var(--cta-ink);box-shadow:0 8px 18px -8px rgba(212,162,76,.55)}
.btn-primary:hover{background:var(--cta-h);transform:translateY(-1px);box-shadow:0 12px 26px -8px rgba(78,124,89,.55)}
.btn-outline{background:#fff;border-color:var(--line-2);color:var(--cta)}
.btn-outline:hover{background:var(--cta);color:#fff;border-color:var(--cta)}
.btn-white{background:var(--cta);color:var(--cta-ink);font-weight:700;border:none}
.btn-white:hover{background:#c8963f;color:#fff}
.btn.sm{padding:.45rem .9rem;font-size:.82rem}

/* ---------- newsletter form (footer) ---------- */
.nl-form{display:flex;gap:.5rem}
.nl-form input{flex:1;min-width:0;padding:.7rem .9rem;border:1px solid var(--line-2);background:#fff;font:inherit;font-size:.92rem;color:var(--ink)}
.nl-form input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(78,124,89,.12)}

/* ---------- footer ---------- */
footer.site{position:relative;z-index:1;background:#fff;color:var(--muted);border-top:1px solid var(--line-2)}
footer.site .cols{max-width:90rem;margin:0 auto;padding:3.75rem 2rem 2.5rem;display:grid;grid-template-columns:minmax(0,1.1fr) repeat(3,minmax(0,1fr));gap:2.5rem}
footer.site .fname{font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:0}
footer.site p{font-size:.87rem;color:var(--muted);max-width:19rem;margin-top:1rem;line-height:1.7}
footer.site .nl-form{margin-top:.9rem;max-width:22rem}
footer.site .nl-form input{padding:.55rem .8rem;font-size:.88rem}
footer.site h5{font-size:.95rem;font-weight:800;color:var(--ink);margin:0 0 1rem}
footer.site ul{list-style:none;margin:0;padding:0}
footer.site li{padding:.42rem 0;font-size:.92rem;color:var(--muted);transition:color .15s}
footer.site li a:hover{color:var(--cta)}
footer.site .bar{max-width:90rem;margin:0 auto;padding:1.35rem 2rem 2rem;border-top:1px solid var(--line-2);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.85rem;color:var(--muted-2)}
footer.site .bar a{text-decoration:underline;text-underline-offset:3px}
footer.site .bar a:hover{color:var(--cta)}
footer.site .bar .legal{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
footer.site .social{display:flex;align-items:center;gap:1.1rem}
footer.site .social a{color:var(--green);display:grid;place-items:center;text-decoration:none;transition:color .15s}
footer.site .social a:hover{color:var(--green-d)}
footer.site .social svg{width:1.4rem;height:1.4rem;display:block}
@media(max-width:900px){footer.site .cols{grid-template-columns:1fr 1fr}}
@media(max-width:560px){footer.site .cols{grid-template-columns:1fr;padding:2.5rem 1.15rem 1.5rem}footer.site .bar{padding-left:1.15rem;padding-right:1.15rem}}
