:root{
  /* Estate colours */
  --brand:#7F8C7A;          /* estate green */
  --cream:#F4F2E7;          /* estate cream */

  /* Darker greens, derived from the estate green (same hue) */
  --moss-900:#1C231A;
  --moss-800:#2B3527;
  --moss-700:#3F4A3A;
  --moss-500:#7F8C7A;

  /* Creams, warmed toward the green */
  --stone-50:#F4F2E7;
  --stone-100:#E6E6DA;
  --stone-200:#D7D9CC;

  --ink:#1B2119;
  --ink-60:rgba(27,33,25,.64);
  --paper:#F4F2E7;
  --paper-60:rgba(244,242,231,.68);

  --accent:#506647;         /* estate green, darkened for legible links on cream */
  --accent-light:#9EB096;   /* estate green, lightened for legible text on green */
  --amber:#835F1C;          /* working marker only — not a brand colour */
  --amber-light:#C9A055;    /* the same marker, legible on green */

  --line:rgba(27,33,25,.18);
  --line-dark:rgba(244,242,231,.22);
  --head-h:68px;
  --max:1240px;
  --gut:clamp(20px,5vw,64px);
  --r:2px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--stone-50);color:var(--ink);
  font-family:"Karla",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.62;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:"Fraunces",Georgia,serif;font-weight:500;font-variation-settings:"SOFT" 30,"WONK" 1;margin:0;line-height:1.06;letter-spacing:-.015em}
h1{font-size:clamp(2.6rem,7vw,5.4rem)}
h2{font-size:clamp(2rem,4.4vw,3.4rem)}
h3{font-size:clamp(1.35rem,2.2vw,1.85rem);line-height:1.14}
p{margin:0 0 1.1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.skip{position:absolute;left:-9999px;top:0;background:var(--moss-900);color:var(--paper);padding:12px 18px;z-index:99}
.skip:focus{left:12px;top:12px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

/* ---------- shared bits ---------- */
.eyebrow{
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;
  display:flex;align-items:center;gap:.7em;margin:0 0 1.4rem;color:var(--accent);
}
.eyebrow::after{content:"";flex:1;height:1px;background:currentColor;opacity:.4}
.on-dark .eyebrow{color:var(--accent-light)}
.lede{font-size:clamp(1.05rem,1.6vw,1.32rem);line-height:1.55;max-width:44ch;color:var(--ink-60)}
.on-dark .lede{color:var(--paper-60)}
.plate{
  font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  display:flex;flex-wrap:wrap;gap:.55em;align-items:center;color:var(--ink-60);
}
.plate span{white-space:nowrap}
.plate span+span::before{content:"·";margin-right:.55em;opacity:.5}
.on-dark .plate{color:var(--paper-60)}
.chip{
  display:inline-block;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;padding:.4em .7em;border:1px solid currentColor;border-radius:99px;
}
.chip-new{color:var(--accent)}
.chip-draft{color:var(--amber)}
.btn{
  display:inline-flex;align-items:center;gap:.7em;text-decoration:none;
  font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  padding:1.05em 1.7em;border-radius:99px;border:1px solid var(--ink);
  background:var(--ink);color:var(--stone-50);transition:background .25s,color .25s,border-color .25s;
  cursor:pointer;
}
.btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--stone-50);border-color:var(--ink)}
.on-dark .btn{background:var(--paper);border-color:var(--paper);color:var(--moss-900)}
.on-dark .btn:hover{background:var(--accent-light);border-color:var(--accent-light);color:var(--moss-900)}
.on-dark .btn-ghost{background:transparent;color:var(--paper);border-color:rgba(234,231,219,.5)}
.on-dark .btn-ghost:hover{background:var(--paper);color:var(--moss-900)}
.tlink{
  text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px;
  font-weight:500;transition:border-color .2s,color .2s;
}
.tlink:hover{color:var(--accent)}

/* contour signature */
.contour{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.contour path{fill:none;stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke;opacity:.55}
.contour-draw path{stroke-dasharray:2600;stroke-dashoffset:2600;animation:draw 2.6s cubic-bezier(.22,.61,.36,1) forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* ---------- header ---------- */
.site-head{
  position:sticky;top:0;z-index:50;background:rgba(244,242,231,.93);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:var(--head-h)}
.brand-mark{height:34px;width:auto;flex:0 0 auto;margin-right:.1em;transform:translateY(3px)}
.foot-logo{width:min(240px,70%);height:auto;margin-bottom:1.2rem}
.logo-block{display:grid;place-items:center;padding:clamp(3.5rem,8vw,6rem) 0 clamp(3.5rem,8vw,6rem)}
.logo-block img{width:min(300px,62vw);height:auto;opacity:.92}
@media(max-width:700px){.brand-mark{height:28px}}
.brand{
  font-family:"Fraunces",serif;font-size:1.18rem;letter-spacing:-.01em;text-decoration:none;
  display:flex;align-items:baseline;gap:.5em;font-weight:500;white-space:nowrap;flex-shrink:0;
}
.brand small{font-family:"Karla",sans-serif;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--ink-60)}
.nav{display:flex;align-items:center;gap:clamp(.85rem,1.4vw,1.6rem)}
.nav a{
  text-decoration:none;font-size:.73rem;letter-spacing:.13em;text-transform:uppercase;
  font-weight:700;padding:.4em 0;border-bottom:1px solid transparent;white-space:nowrap;
}
.nav a:hover{border-color:var(--accent)}
.nav a[aria-current="page"]{border-color:var(--ink)}
.nav .btn{padding:.75em 1.25em;border-bottom:1px solid var(--ink)}
.nav .btn:hover{border-bottom-color:var(--accent)}
.nav-item{position:relative}
.nav-item>a{display:inline-flex;align-items:center;gap:.4em}
.nav-item>a::after{
  content:"";width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;
  transform:rotate(45deg) translate(-1px,-1px);opacity:.55;transition:transform .25s;
}
.nav-item:hover>a::after,.nav-item:focus-within>a::after{transform:rotate(225deg) translate(-2px,-2px)}
.dropdown{
  position:absolute;top:calc(100% + 10px);left:-1rem;min-width:250px;z-index:60;
  background:var(--stone-50);border:1px solid var(--line);border-radius:var(--r);
  padding:.5rem;box-shadow:0 18px 40px -22px rgba(28,35,26,.45);
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s,visibility .2s;
}
.nav-item::after{content:"";position:absolute;top:100%;left:0;right:0;height:12px}
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{opacity:1;visibility:visible;transform:none}
.dropdown a{
  display:block;padding:.6em .8em;border-bottom:0;border-radius:2px;
  font-size:.7rem;letter-spacing:.1em;line-height:1.35;text-transform:uppercase;font-weight:700;
}
.dropdown a:hover{background:var(--moss-900);color:var(--stone-50)}
.dropdown .dd-all{border-top:1px solid var(--line);margin-top:.35rem;padding-top:.7em;color:var(--accent)}
.dropdown .dd-all:hover{color:var(--stone-50)}
.dropdown .dd-ext::after{content:" \2197";opacity:.6}
.nav a.nav-ext::after{content:" \2197";font-size:.85em;opacity:.6;margin-left:.15em}
/* the tower mark adds a little width, so tighten the menu slightly on laptops */
@media(max-width:1500px){ .nav{gap:clamp(.8rem,1.15vw,1.35rem)} }
.burger{display:none;background:none;border:1px solid var(--line);border-radius:99px;padding:.6em 1em;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;cursor:pointer}
@media(max-width:1400px){
  .burger{display:block}
  .nav{
    position:fixed;left:0;right:0;top:var(--head-h);background:var(--stone-50);flex-direction:column;
    align-items:flex-start;gap:0;padding:1rem var(--gut) 2.5rem;border-bottom:1px solid var(--line);
    display:none;
    /* the menu is taller than a phone screen, so let it scroll on its own */
    max-height:calc(100dvh - var(--head-h));
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  @supports not (height:100dvh){ .nav{max-height:calc(100vh - var(--head-h))} }
  .nav.open{display:flex}
  .nav a{padding:.95em 0;width:100%;border-bottom:1px solid var(--line)}
  .nav .btn{margin-top:1rem;justify-content:center;width:100%}
  .nav-item{width:100%}
  .nav-item>a{border-bottom:1px solid var(--line)}
  .nav-item>a::after{display:none}
  .nav-item::after{display:none}
  .dropdown{
    position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    border:0;background:transparent;padding:.2rem 0 .6rem .9rem;min-width:0;
  }
  .dropdown a{padding:.55em 0;border-bottom:0;font-size:.66rem;opacity:.8}
  .dropdown a:hover{background:transparent;color:var(--accent)}
  .dropdown .dd-all{border-top:0;margin-top:0;padding-top:.55em}
}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--moss-900);color:var(--paper);overflow:hidden}
.hero .contour{color:var(--brand);opacity:.5}
.hero-in{position:relative;padding:clamp(4rem,11vw,8.5rem) var(--gut) clamp(3rem,6vw,4.5rem)}
.hero h1{max-width:15ch;font-weight:300;letter-spacing:-.03em}
.hero h1 em{font-style:normal;color:var(--accent-light)}
.hero-lede{margin-top:2rem;max-width:52ch;font-size:clamp(1.05rem,1.5vw,1.28rem);line-height:1.5;color:var(--paper-60)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.6rem}

/* photograph behind a heading band */
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.hero-bg-scrim{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to right,
    rgba(28,35,26,.90) 0%, rgba(28,35,26,.86) 55%, rgba(28,35,26,.70) 80%, rgba(28,35,26,.60) 100%);
}

/* home page — photographic hero
   Dark text sits directly on the open sky at top left, with no overlay, so the
   photograph is shown exactly as taken. The crop is anchored near the top of
   the picture (object-position y 10%) to keep that sky clear of the urn and
   roses. Measured: accent green on the sky 5.8:1, body text 8:1 or better.
   On narrow screens the text moves below the picture instead. */
.hero-photo{background:var(--stone-50);color:var(--ink);min-height:clamp(580px,94vh,920px)}
.hero-photo .hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 10%}
.hero-photo .hero-in{position:relative;max-width:none;padding:clamp(40px,7vh,72px) 0 0 clamp(24px,7vw,140px)}
.hero-copy{max-width:min(460px,34vw)}
.hero-photo .eyebrow{color:var(--accent)}
.hero-photo h1{font-size:clamp(2.4rem,4vw,3.8rem);max-width:12ch;color:var(--ink)}
.hero-photo h1 em{color:var(--accent)}
.hero-photo .hero-lede{color:var(--moss-700);font-size:clamp(1rem,1.25vw,1.12rem);margin-top:1.4rem}
.hero-photo .hero-cta{margin-top:1.8rem}
@media(max-width:900px){
  .hero-photo{min-height:0}
  .hero-photo .hero-img{position:relative;height:62vh;min-height:340px;object-position:52% 42%}
  .hero-photo .hero-in{padding:2.2rem var(--gut) 3rem}
  .hero-copy{max-width:none}
}

/* region index — the signature block */
.regions{position:relative;background:var(--moss-800);color:var(--paper);border-top:1px solid var(--line-dark)}
.region{
  display:grid;grid-template-columns:5.5rem 1fr auto;align-items:center;gap:clamp(1rem,3vw,2.5rem);
  padding:clamp(1.6rem,3vw,2.4rem) 0;border-bottom:1px solid var(--line-dark);
  text-decoration:none;position:relative;overflow:hidden;transition:padding-left .35s ease;
}
.region:last-child{border-bottom:0}
.region:hover,.region:focus-visible{padding-left:clamp(.6rem,2vw,1.6rem)}
.region-bg{position:absolute;inset:0;color:var(--brand);opacity:0;transition:opacity .45s ease}
.region:hover .region-bg{opacity:.55}
.region-no{
  font-family:"Fraunces",serif;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--paper-60);position:relative;
}
.region-body{position:relative}
.region-body h3{font-weight:300;font-size:clamp(1.6rem,3.4vw,2.6rem)}
.region-body p{margin:.5rem 0 0;color:var(--paper-60);font-size:.95rem;max-width:52ch}
.region-county{font-size:.66rem!important;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--accent-light)!important;margin-top:.5rem!important}
.region-list{margin-top:.55rem!important}
.region-go{
  position:relative;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  color:var(--paper-60);white-space:nowrap;
}
.region:hover .region-go{color:var(--accent-light)}
@media(max-width:700px){
  .region{grid-template-columns:1fr;gap:.7rem}
  .region-go{justify-self:start}
}

/* ---------- sections ---------- */
.sec{padding:clamp(3.5rem,8vw,6.5rem) 0}
.sec-tight{padding:clamp(2.5rem,5vw,4rem) 0}
.sec-dark{background:var(--moss-900);color:var(--paper)}
.sec-mid{background:var(--stone-100)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(1.5rem,5vw,4rem);align-items:end;margin-bottom:clamp(2rem,4vw,3.2rem)}
.sec-head h2{font-weight:300}
@media(max-width:820px){.sec-head{grid-template-columns:1fr;align-items:start}}

/* property grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:clamp(1.4rem,2.6vw,2.4rem)}
.card{text-decoration:none;display:block;position:relative}
.card-media{
  position:relative;aspect-ratio:4/3.1;overflow:hidden;background:var(--moss-700);
  border-radius:var(--r);
}
.card-media img{
  position:relative;z-index:1;width:100%;height:100%;object-fit:cover;
  transition:transform .7s cubic-bezier(.22,.61,.36,1);
}
.card:hover .card-media img{transform:scale(1.045)}
.card-ph{position:absolute;inset:0;color:var(--brand);display:grid;place-items:center}
.card-ph .contour{opacity:.35}
.card-ph span{
  position:relative;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;
  font-weight:700;color:var(--paper-60);border:1px solid var(--line-dark);padding:.5em .85em;border-radius:99px;
}
.card-flag{position:absolute;z-index:2;top:.9rem;left:.9rem;background:var(--stone-50);border-radius:99px}
.card-body{padding-top:1rem}
.card-body h3{font-weight:500;margin-bottom:.4rem}
.card:hover h3{color:var(--accent)}
.card-body p{font-size:.94rem;color:var(--ink-60);margin:.55rem 0 .7rem}

/* filters */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2.2rem;align-items:center}
.filter{
  background:transparent;border:1px solid var(--line);border-radius:99px;cursor:pointer;
  padding:.6em 1.05em;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  transition:background .2s,border-color .2s,color .2s;
}
.filter:hover{border-color:var(--ink)}
.filter[aria-pressed="true"]{background:var(--moss-900);border-color:var(--moss-900);color:var(--stone-50)}
.filter-label{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--ink-60);margin-right:.4rem}

/* two-col feature */
.feature{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(1.8rem,5vw,4.5rem);align-items:center}
.feature.flip .feature-media{order:2}
.feature-media{position:relative;aspect-ratio:5/4;overflow:hidden;background:var(--moss-800);border-radius:var(--r)}
.feature-media img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover}
@media(max-width:820px){.feature{grid-template-columns:1fr}.feature.flip .feature-media{order:0}}

/* route list (hanging stones) */
.route{list-style:none;margin:2.2rem 0 0;padding:0;position:relative}
.route::before{content:"";position:absolute;left:6px;top:.6rem;bottom:.6rem;width:1px;background:var(--line-dark)}
.route li{position:relative;padding:.62rem 0 .62rem 2.2rem;display:flex;flex-wrap:wrap;gap:.6rem;align-items:baseline}
.route li::before{
  content:"";position:absolute;left:0;top:1.05rem;width:13px;height:13px;border-radius:99px;
  border:1px solid var(--brand);background:var(--moss-900);
}
.route li[data-state="wip"]::before{border-style:dashed;opacity:.6}
.route .name{font-family:"Fraunces",serif;font-size:1.12rem}
.route .note{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--paper-60)}

/* facts */
.facts{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.on-dark .facts{border-color:var(--line-dark)}
.facts li{display:grid;grid-template-columns:11rem 1fr;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line)}
.on-dark .facts li{border-color:var(--line-dark)}
.facts dt,.facts .k{font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;color:var(--ink-60);padding-top:.22rem}
.on-dark .facts .k{color:var(--paper-60)}
@media(max-width:560px){.facts li{grid-template-columns:1fr;gap:.15rem}}

/* callout */
.callout{
  border:1px solid var(--line);border-left:3px solid var(--amber);padding:1.3rem 1.5rem;
  border-radius:var(--r);background:rgba(131,95,28,.07);font-size:.95rem;
}
.callout strong{display:block;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin-bottom:.4rem}
.callout p:last-child{margin-bottom:0}
.on-dark .callout{border-color:var(--line-dark);border-left-color:var(--amber-light);background:rgba(201,160,85,.12)}
.on-dark .callout strong{color:var(--amber-light)}
.on-dark .chip-draft{color:var(--amber-light)}

/* full-bleed location photograph */
.place-banner{margin:0;position:relative;background:var(--moss-900)}
.place-banner img{width:100%;height:clamp(260px,46vw,560px);object-fit:cover;display:block}
.place-banner figcaption{
  padding:.9rem var(--gut) 0;max-width:var(--max);margin:0 auto;
  font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--ink-60);
}

/* location hub offerings */
.offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
.offer{
  position:relative;overflow:hidden;text-decoration:none;display:block;
  border:1px solid var(--line);border-radius:var(--r);padding:1.6rem 1.5rem 1.4rem;
  background:var(--stone-50);transition:border-color .3s,transform .3s;
}
.offer:hover{border-color:var(--moss-900);transform:translateY(-2px)}
.offer-bg{position:absolute;inset:0;color:var(--brand);opacity:0;transition:opacity .4s}
.offer:hover .offer-bg{opacity:.4}
.offer-body{position:relative}
.offer-body h3{font-weight:500;font-size:1.3rem;margin-bottom:.5rem}
.offer-body .chip{margin-bottom:.6rem}
.offer-body p{font-size:.94rem;color:var(--ink-60);margin:.2rem 0 1rem}
.offer-go{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--accent)}

/* misc */
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(1.5rem,3vw,2.8rem)}
.col h3{font-weight:500;font-size:1.25rem;margin-bottom:.6rem}
.col p{font-size:.95rem;color:var(--ink-60);margin:0}
.on-dark .col p{color:var(--paper-60)}
.back{
  display:inline-flex;gap:.6em;align-items:center;text-decoration:none;font-size:.68rem;
  letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--ink-60);margin-bottom:1.6rem;
}
.back:hover{color:var(--accent)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.7rem;margin-top:.7rem}
.gallery div{aspect-ratio:1;background:var(--moss-800);position:relative;color:var(--brand);border-radius:var(--r);overflow:hidden}
.gallery .shot{display:block;aspect-ratio:1;overflow:hidden;border-radius:var(--r);background:var(--moss-800)}
.gallery .shot img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.gallery .shot:hover img{transform:scale(1.05)}
.stat-row{display:flex;flex-wrap:wrap;gap:2.4rem;margin-top:2.4rem}
.stat{min-width:7rem}
.stat b{display:block;font-family:"Fraunces",serif;font-weight:300;font-size:clamp(2rem,4vw,2.9rem);line-height:1}
.stat span{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--ink-60)}
.on-dark .stat span{color:var(--paper-60)}

/* photo viewer */
[data-lb]{cursor:zoom-in}
.lb{position:fixed;inset:0;z-index:200;background:#161C15;display:flex;align-items:center;justify-content:center;padding:4.5rem 4.5rem 3.5rem}
.lb[hidden]{display:none}
.lb-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:.9rem;max-width:100%;max-height:100%}
.lb-img{max-width:100%;max-height:calc(100vh - 9rem);object-fit:contain;display:block;border-radius:2px}
.lb-count{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--paper-60)}
.lb-btn{
  position:absolute;background:transparent;border:1px solid var(--line-dark);color:var(--cream);
  width:48px;height:48px;border-radius:99px;font-size:1.6rem;line-height:1;cursor:pointer;
  display:grid;place-items:center;transition:background .2s,border-color .2s;
}
.lb-btn:hover{background:rgba(244,242,231,.12);border-color:var(--cream)}
.lb-close{top:1rem;right:1rem}
.lb-prev{left:1rem;top:50%;transform:translateY(-50%)}
.lb-next{right:1rem;top:50%;transform:translateY(-50%)}
.lb.single .lb-prev,.lb.single .lb-next{display:none}
@media(max-width:700px){
  .lb{padding:4rem .75rem 3rem}
  .lb-prev,.lb-next{top:auto;bottom:.6rem;transform:none}
}

/* footer */
.site-foot{background:var(--moss-900);color:var(--paper);padding:clamp(3rem,6vw,4.5rem) 0 2rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(1.6rem,4vw,3rem)}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}
.foot-brand h3{font-weight:300;font-size:1.9rem;margin-bottom:.7rem}
.foot-brand p{color:var(--paper-60);font-size:.95rem;max-width:32ch}
.foot-col h4{font-family:"Karla",sans-serif;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--accent-light);margin:0 0 1rem}
.foot-col a{display:block;text-decoration:none;font-size:.95rem;padding:.28rem 0;color:var(--paper-60)}
.foot-col a:hover{color:var(--paper)}
.foot-base{
  margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--line-dark);
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-60);
}
.foot-base a{text-decoration:none}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .contour-draw path{stroke-dashoffset:0}
}