/* Plated Dreams — site styles
   Palette and type are drawn from the room itself: blush plaster walls,
   emerald velvet, brass fixtures, crystal, and the neon script on the flower walls. */

:root{
  --blush:#F2D8DA;
  --blush-deep:#E7B4BE;
  --petal:#F7E6E7;
  --ivory:#FBF7F3;
  --emerald:#1E5745;
  --forest:#12382E;
  --brass:#C6A15B;
  --brass-soft:#E3CC9A;
  --ink:#2B2325;
  --ink-soft:#5E5053;
  --line:rgba(43,35,37,.14);
  --neon:#FFF3F6;

  --font-display:"Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --font-body:"Jost", "Futura", "Avenir Next", system-ui, sans-serif;
  --font-script:"Pinyon Script", "Snell Roundhand", cursive;

  --step--1:clamp(.84rem,.8rem + .2vw,.95rem);
  --step-0:clamp(1rem,.95rem + .25vw,1.125rem);
  --step-1:clamp(1.2rem,1.1rem + .5vw,1.5rem);
  --step-2:clamp(1.5rem,1.3rem + 1vw,2.1rem);
  --step-3:clamp(2rem,1.6rem + 2vw,3.2rem);
  --step-4:clamp(2.6rem,1.8rem + 4vw,5.2rem);
  --step-5:clamp(3.2rem,2rem + 6vw,7rem);

  --gutter:clamp(16px,4vw,48px);
  --measure:62ch;
  --arch:999px 999px 0 0;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html,body{overflow-x:clip}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--ivory);color:var(--ink);
  font-family:var(--font-body);font-size:var(--step-0);line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.05;margin:0;letter-spacing:-.01em;text-wrap:balance}
h1 + p,h2 + p{margin-top:.55em}
.kicker,.quote blockquote{text-wrap:balance}
h1{font-size:var(--step-5)}
h2{font-size:var(--step-3)}
h3{font-size:var(--step-2)}
h4{font-size:var(--step-1)}
p{margin:0 0 1em;max-width:var(--measure)}
.lede{font-size:var(--step-1);line-height:1.45;color:var(--ink)}
.muted{color:var(--ink-soft)}
.script{font-family:var(--font-script);font-weight:400;letter-spacing:0}
em.display{font-style:italic}

:focus-visible{outline:3px solid var(--brass);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:8px;background:var(--forest);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:8px}

.wrap{width:min(1240px,100% - 2*var(--gutter));margin-inline:auto}
.wrap-narrow{width:min(820px,100% - 2*var(--gutter));margin-inline:auto}
section{padding-block:clamp(56px,8vw,120px)}
.tight{padding-block:clamp(32px,5vw,64px)}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(251,247,243,.86);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:72px}
.brand{font-family:var(--font-display);font-size:1.45rem;letter-spacing:.02em;text-decoration:none;display:flex;align-items:center;gap:.6rem;white-space:nowrap}
.brand svg{width:30px;height:30px}
.nav{display:flex;gap:clamp(.8rem,1.6vw,1.6rem);align-items:center;list-style:none;margin:0;padding:0}
.nav a{text-decoration:none;font-size:.95rem;padding:.3rem 0;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--ink)}
.nav .cta{border:1px solid var(--emerald);color:var(--emerald);padding:.55rem 1.1rem;border-radius:999px}
.nav .cta:hover{background:var(--emerald);color:#fff;border-bottom-color:var(--emerald)}
.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:999px;padding:.5rem .9rem;font:inherit;font-size:.9rem;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none}
@media (max-width:1040px){
  .nav{display:none;position:absolute;left:0;right:0;top:72px;flex-direction:column;align-items:stretch;gap:0;background:var(--ivory);border-bottom:1px solid var(--line);padding:.5rem var(--gutter) 1rem}
  .nav.open{display:flex}
  .nav li{border-top:1px solid var(--line)}
  .nav a{display:block;padding:.9rem 0;font-size:1.05rem;border-bottom:0}
  .nav .cta{margin-top:.8rem;text-align:center}
  .menu-toggle{display:inline-block}
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.85rem 1.6rem;border-radius:999px;text-decoration:none;font-size:.98rem;
  border:1px solid var(--emerald);background:var(--emerald);color:#fff;cursor:pointer;font-family:inherit;
  transition:background .2s var(--ease),color .2s var(--ease),transform .2s var(--ease);
}
.btn:hover{background:var(--forest);border-color:var(--forest)}
.btn.ghost{background:transparent;color:var(--emerald)}
.btn.ghost:hover{background:var(--emerald);color:#fff}
.btn.light{background:#fff;color:var(--forest);border-color:#fff}
.btn.light:hover{background:var(--petal);border-color:var(--petal)}
.btn.outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.btn.outline-light:hover{background:#fff;color:var(--forest)}
.btn-row{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
.textlink{text-decoration:none;border-bottom:1px solid var(--brass);padding-bottom:.1rem}
.textlink:hover{border-bottom-color:var(--ink)}

/* ---------- Hero ---------- */
.hero{
  position:relative;min-height:min(92vh,880px);display:grid;align-items:end;
  color:#fff;padding:0;overflow:hidden;background:var(--forest);
}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,56,46,.18) 0%,rgba(18,56,46,.32) 40%,rgba(18,56,46,.9) 100%)}
.hero .wrap{position:relative;z-index:1;padding-block:clamp(40px,6vw,80px)}
@media (max-width:900px){.hero .wrap{padding-bottom:calc(clamp(40px,6vw,80px) + 56px)}}
.hero .neon{
  font-size:clamp(2.4rem,1.6rem + 5vw,6rem);line-height:1.1;color:var(--neon);margin:0 0 1rem .1em;
  text-shadow:0 0 6px rgba(255,255,255,.9),0 0 18px rgba(255,190,210,.85),0 0 42px rgba(255,120,170,.6);
}
.hero h1{font-size:var(--step-4);max-width:14ch;text-shadow:0 2px 24px rgba(18,56,46,.45)}
.hero p{max-width:46ch;font-size:var(--step-1);margin-top:1rem;color:rgba(255,255,255,.92)}
.hero .btn-row{margin-top:1.6rem}
.hero .meta{margin-top:2rem;display:flex;flex-wrap:wrap;gap:1.2rem 2.4rem;font-size:.95rem;color:rgba(255,255,255,.85)}
.hero .meta span{display:block}
.hero .meta strong{color:#fff;font-weight:500}

/* Page hero (interior pages) */
.page-hero{position:relative;min-height:min(56vh,520px);display:grid;align-items:end;color:#fff;background:var(--forest);overflow:hidden;padding:0}
.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,56,46,.25),rgba(18,56,46,.85))}
.page-hero h1,.page-hero p{text-shadow:0 2px 20px rgba(18,56,46,.45)}
.page-hero .wrap{position:relative;z-index:1;padding-block:clamp(32px,5vw,64px)}
.page-hero h1{font-size:var(--step-4)}
.page-hero p{font-size:var(--step-1);color:rgba(255,255,255,.9);margin-top:.8rem}

/* ---------- Arches ---------- */
.arch{border-radius:var(--arch);overflow:hidden;background:var(--blush)}
.arch img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4}
.arch.wide img{aspect-ratio:4/3}
.arch.tall img{aspect-ratio:2/3}
.arch-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,2vw,28px);align-items:end}
.arch-row .arch:nth-child(2){transform:translateY(-6%)}
@media (max-width:700px){.arch-row{grid-template-columns:repeat(3,1fr);gap:8px}.arch-row .arch:nth-child(2){transform:none}}

/* ---------- Sections ---------- */
.band-blush{background:var(--blush)}
.band-petal{background:var(--petal)}
.band-emerald{background:var(--emerald);color:#fff}
.band-forest{background:var(--forest);color:#fff}
.band-emerald .muted,.band-forest .muted{color:rgba(255,255,255,.75)}
.band-emerald h2,.band-forest h2{color:#fff}

.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}
.split.reverse > :first-child{order:2}
@media (max-width:860px){.split{grid-template-columns:1fr}.split.reverse > :first-child{order:0}.split .arch.tall{max-width:520px;margin-inline:auto}.split .arch.tall img{aspect-ratio:4/5}}

.intro{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,6vw,96px);align-items:start}
@media (max-width:860px){.intro{grid-template-columns:1fr}}
.intro h2{font-size:var(--step-4);max-width:12ch}
.intro .script{font-size:var(--step-3);color:var(--emerald);display:block;margin-bottom:.2em}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
@media (max-width:860px){.three{grid-template-columns:1fr}}
.three h3{font-size:var(--step-1);margin-bottom:.4rem}
.three h3 .script{font-size:1.5em;color:var(--emerald);display:inline-block;margin-right:.1em}

.kicker{font-family:var(--font-display);font-style:italic;font-size:var(--step-1);color:var(--emerald);margin-bottom:.6rem}
.band-emerald .kicker,.band-forest .kicker{color:var(--brass-soft)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:clamp(24px,4vw,48px);flex-wrap:wrap}
.section-head p{margin:0}

/* ---------- The placemat ----------
   The scalloped blush placemat with its emerald piped edge and the small white
   printed card that sits on every table. One object per fact, never a grid of cells.
   Scallops are a row of ringed discs along each edge; "round" keeps a whole number
   of them at any width. */
.placemat{
  --r:14px;--d:calc(2*var(--r));--pipe:2px;--mat:var(--blush);--edge:var(--emerald);
  --scallop:radial-gradient(closest-side,var(--mat) calc(100% - var(--pipe) - 1px),var(--edge) calc(100% - var(--pipe)),var(--edge) calc(100% - .7px),transparent 100%);
  padding:calc(var(--r) + clamp(16px,2.2vw,28px));
  background-image:linear-gradient(var(--mat),var(--mat)),var(--scallop),var(--scallop),var(--scallop),var(--scallop);
  background-size:calc(100% - var(--d)) calc(100% - var(--d)),var(--d) var(--d),var(--d) var(--d),var(--d) var(--d),var(--d) var(--d);
  background-position:center,left top,left bottom,left top,right top;
  background-repeat:no-repeat,round no-repeat,round no-repeat,no-repeat round,no-repeat round;
  display:flex;
}
.card{
  flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;
  background:#fff;color:var(--ink);padding:clamp(22px,3vw,36px) clamp(18px,2.5vw,30px);
  box-shadow:0 1px 1px rgba(43,35,37,.05),0 18px 34px -20px rgba(43,35,37,.35);
}
.card > *{max-width:40ch}
.card-title{font-family:var(--font-body);font-weight:400;font-size:var(--step--1);color:var(--ink-soft);margin:0 0 .6rem;letter-spacing:0}
.card-head{font-size:var(--step-1);margin:0 0 .5rem;line-height:1.1}
.card-note{font-family:var(--font-display);font-style:italic;font-size:clamp(1.05rem,1rem + .35vw,1.3rem);line-height:1.35;margin:0;text-wrap:pretty}
.card-note b{font-style:normal;font-weight:500}
.card-text{font-size:var(--step--1);color:var(--ink-soft);line-height:1.5;margin:0}
.card-date{font-family:var(--font-display);font-size:var(--step-3);line-height:1;margin:0 0 .7rem;white-space:nowrap}
.card-date small{display:block;font-family:var(--font-body);font-size:.85rem;color:var(--ink-soft);margin-top:.4rem;white-space:normal}
.card-date.range{font-size:var(--step-1);white-space:normal}
.card-tag{font-family:var(--font-display);font-style:italic;color:var(--emerald);font-size:var(--step-0);margin:0 0 .6rem}
.card-price{font-family:var(--font-display);font-style:italic;font-size:var(--step-0);line-height:1.2;margin:.1rem 0 1rem}
.card-price small{display:block;font-family:var(--font-body);font-style:normal;font-size:.85rem;color:var(--ink-soft);margin-top:.3rem}
.card-list{list-style:none;margin:0 0 1rem;padding:0;font-size:var(--step--1);line-height:1.5;color:var(--ink-soft)}
.card-list li + li{margin-top:.45rem}
.card a{color:inherit;text-decoration:none;border-bottom:1px solid var(--brass);padding-bottom:.04em}
.card a:hover{border-bottom-color:var(--ink)}
.card a.card-link{margin-top:auto;padding-top:1rem;font-weight:500;color:var(--emerald);border-bottom:0;text-decoration:underline;text-decoration-color:var(--emerald);text-decoration-thickness:1px;text-underline-offset:.22em}
.card a.card-link:hover{color:var(--forest);text-decoration-color:var(--forest)}
a[href^="tel:"]{white-space:nowrap}
.band-emerald .placemat{--edge:var(--brass-soft)}
.mats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2.2vw,28px);align-items:stretch}
@media (max-width:900px){.mats{grid-template-columns:1fr;max-width:560px;margin-inline:auto}}
@media (max-width:560px){.placemat{--r:11px;padding:calc(var(--r) + 14px)}.card{padding:22px 18px}}

/* Menu highlights */
.dishes{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,28px)}
@media (max-width:1000px){.dishes{grid-template-columns:repeat(2,1fr)}}
.dish .arch img{aspect-ratio:3/4}
.dish h3{font-size:var(--step-1);margin-top:1rem}
.dish p{font-size:var(--step--1);color:var(--ink-soft);margin:.3rem 0 0}

/* Gallery (mosaic) */
.mosaic{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(140px,16vw);gap:clamp(8px,1.2vw,16px)}
.mosaic figure{margin:0;overflow:hidden;background:var(--blush)}
.mosaic img{width:100%;height:100%;object-fit:cover}
.mosaic .a{grid-column:span 2;grid-row:span 2;border-radius:var(--arch)}
.mosaic .b{grid-column:span 2}
.mosaic .c{grid-column:span 2;grid-row:span 2;border-radius:var(--arch)}
.mosaic .d{grid-column:span 1}
.mosaic .e{grid-column:span 1}
.mosaic .f{grid-column:span 2;grid-row:span 2;border-radius:var(--arch)}
.mosaic .g{grid-column:span 2;grid-row:span 2;border-radius:var(--arch)}
.mosaic .h{grid-column:span 2;grid-row:span 2;border-radius:var(--arch)}
@media (max-width:700px){
  .mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:38vw}
  .mosaic .a,.mosaic .c{grid-column:span 1;grid-row:span 2}
  .mosaic .b,.mosaic .f,.mosaic .g,.mosaic .h{grid-column:span 1;grid-row:span 1;border-radius:0}
}

/* Quote */
.quote{text-align:center}
.quote blockquote{margin:0 auto;max-width:28ch;font-family:var(--font-display);font-size:var(--step-3);line-height:1.15;font-style:italic}
.quote cite{display:block;margin-top:1.2rem;font-style:normal;font-size:.95rem;color:var(--ink-soft)}
.band-emerald.quote cite,.band-forest.quote cite,.band-emerald .quote cite{color:rgba(255,255,255,.75)}
.awards{display:flex;flex-wrap:wrap;gap:2.5rem;justify-content:center;align-items:center;margin-top:2.5rem}
.award{display:flex;align-items:center;gap:.8rem;font-size:.95rem}
.award svg{width:36px;height:36px;flex:none}

/* Instagram grid */
.insta{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.insta a{display:block;aspect-ratio:1;overflow:hidden;background:var(--blush)}
.insta img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.insta a:hover img{transform:scale(1.04)}
@media (max-width:700px){.insta{grid-template-columns:repeat(3,1fr)}}

/* Newsletter */
.newsletter form{display:flex;gap:.6rem;flex-wrap:wrap;max-width:560px}
.newsletter input{flex:1 1 220px;padding:.85rem 1.1rem;border-radius:999px;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.08);color:#fff;font:inherit}
.newsletter input::placeholder{color:rgba(255,255,255,.6)}

/* ---------- Footer ---------- */
.site-footer{background:var(--forest);color:#fff;padding-block:clamp(48px,6vw,80px) 2rem}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
@media (max-width:860px){.site-footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.site-footer .cols{grid-template-columns:1fr}}
.site-footer h4{font-family:var(--font-body);font-size:.9rem;font-weight:500;color:var(--brass-soft);margin-bottom:.8rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin:.35rem 0}
.site-footer a{text-decoration:none;color:rgba(255,255,255,.88)}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer .brand{color:#fff;font-size:1.8rem;margin-bottom:.6rem}
.site-footer .script{font-size:1.9rem;color:var(--brass-soft);display:block;margin-bottom:1rem}
.site-footer .legal{margin-top:3rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.18);display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;font-size:.85rem;color:rgba(255,255,255,.65)}
.social{display:flex;gap:.8rem;margin-top:1rem}
.social a{display:inline-flex;width:40px;height:40px;border:1px solid rgba(255,255,255,.35);border-radius:50%;align-items:center;justify-content:center}
.social svg{width:18px;height:18px;fill:currentColor}

/* ---------- Mobile reserve bar ---------- */
.reserve-bar{display:none}
@media (max-width:900px){
  .reserve-bar{position:fixed;bottom:0;left:0;right:0;z-index:45;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line)}
  .reserve-bar a{background:var(--ivory);text-align:center;padding:.9rem;text-decoration:none;font-size:.95rem}
  .reserve-bar a.primary{background:var(--emerald);color:#fff}
  body{padding-bottom:56px}
}

/* ---------- Menu page ---------- */
.menu-tabs{position:sticky;top:72px;z-index:40;background:var(--ivory);border-bottom:1px solid var(--line)}
.menu-tabs ul{list-style:none;margin:0;padding:0 2.5rem 0 0;display:flex;gap:.2rem;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent)}
.menu-tabs ul::-webkit-scrollbar{display:none}
.menu-tabs a{display:block;padding:.95rem .9rem;text-decoration:none;white-space:nowrap;font-size:.95rem;border-bottom:2px solid transparent}
.menu-tabs a.active{border-bottom-color:var(--emerald);color:var(--emerald)}
@media (hover:hover){.menu-tabs a:hover{border-bottom-color:var(--emerald);color:var(--emerald)}}
.menu-section{padding-block:clamp(40px,5vw,72px);scroll-margin-top:152px}
.menu-section + .menu-section{border-top:1px solid var(--line)}
.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem clamp(32px,5vw,80px)}
@media (max-width:760px){.menu-grid{grid-template-columns:1fr}}
.item{padding-bottom:1.1rem;border-bottom:1px dotted var(--line)}
.item h4{font-family:var(--font-display);font-size:var(--step-1);display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.item p{margin:.25rem 0 0;font-size:var(--step--1);color:var(--ink-soft)}
.diet{font-family:var(--font-body);font-size:.72rem;letter-spacing:.06em;color:var(--emerald);border:1px solid currentColor;border-radius:999px;padding:.05rem .45rem;white-space:nowrap}
.menu-side{display:grid;grid-template-columns:1fr 320px;gap:clamp(32px,5vw,80px);align-items:start}
@media (max-width:960px){.menu-side{grid-template-columns:1fr}.menu-side .arch{display:none}}
.menu-note{font-size:var(--step--1);color:var(--ink-soft);margin-top:2rem;max-width:70ch}
.legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.85rem;color:var(--ink-soft);margin-top:.5rem}

/* ---------- Details / accordion ---------- */
details{border-top:1px solid var(--line)}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;padding:1.1rem 0;display:flex;justify-content:space-between;gap:1rem;align-items:center;font-family:var(--font-display);font-size:var(--step-1)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:var(--font-body);font-size:1.4rem;color:var(--emerald);flex:none;transition:transform .25s var(--ease)}
details[open] summary::after{transform:rotate(45deg)}
details .body{padding:0 0 1.4rem;max-width:var(--measure);color:var(--ink-soft)}
details .body p:last-child{margin-bottom:0}
.band-blush details{border-color:rgba(43,35,37,.18)}

/* Steps (a real sequence) */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px);counter-reset:step}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}
.step{counter-increment:step}
.step::before{content:counter(step);font-family:var(--font-display);font-size:var(--step-3);line-height:1;display:block;margin-bottom:.5rem;color:var(--emerald)}
.band-emerald .step::before{color:var(--brass-soft)}
.step h3{font-size:var(--step-1);margin-bottom:.4rem}
.step p{font-size:var(--step--1);color:var(--ink-soft);margin:0}
.band-emerald .step p{color:rgba(255,255,255,.8)}

/* Policy columns */
.policies{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem clamp(32px,5vw,80px)}
@media (max-width:760px){.policies{grid-template-columns:1fr}}
.policy h3{font-size:var(--step-1);margin-bottom:.4rem}
.policy p,.policy li{font-size:var(--step--1);color:var(--ink-soft)}
.policy ul{padding-left:1.1rem;margin:0}

/* Table */
table{width:100%;border-collapse:collapse;font-size:var(--step--1)}
th,td{text-align:left;padding:.7rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:500;color:var(--ink-soft)}

/* ---------- Forms ---------- */
.form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem 1.2rem}
.form > div{min-width:0}
.form .full{grid-column:1/-1}
@media (max-width:640px){.form{grid-template-columns:minmax(0,1fr)}}
label{display:block;font-size:.9rem;margin-bottom:.35rem;color:var(--ink-soft)}
input,select,textarea{width:100%;min-width:0;padding:.8rem .95rem;border:1px solid var(--line);background:#fff;border-radius:6px;font:inherit;color:var(--ink)}
input[type="date"]{-webkit-appearance:none;appearance:none;display:block}
input[type="date"]::-webkit-date-and-time-value{min-height:1.6em;text-align:left}
input:focus,select:focus,textarea:focus{outline:2px solid var(--emerald);outline-offset:1px;border-color:var(--emerald)}
textarea{min-height:140px;resize:vertical}
.form-note{font-size:.85rem;color:var(--ink-soft);grid-column:1/-1}
.form-status{grid-column:1/-1;font-size:.95rem;display:none}
.form-status.show{display:block}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(32px,5vw,80px)}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
.contact-grid dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.4rem;font-size:var(--step-0)}
.contact-grid dt{color:var(--ink-soft)}
.contact-grid dd{margin:0}
.contact-grid dd a{text-decoration:none;border-bottom:1px solid var(--brass)}
.map{aspect-ratio:4/3;border:0;width:100%;filter:saturate(.85);border-radius:12px}

/* Press / story */
.story p{max-width:var(--measure)}
.press-list{list-style:none;margin:0;padding:0;display:grid;gap:1.1rem}
.press-list li{display:grid;grid-template-columns:140px 1fr;gap:1.5rem;align-items:baseline}
.press-list .src{color:var(--ink-soft);font-size:.9rem}
.press-list a{text-decoration:none;border-bottom:1px solid var(--brass)}
@media (max-width:600px){.press-list li{grid-template-columns:1fr;gap:.2rem}}

/* Utilities */
.center{text-align:center}
.center p{margin-inline:auto}
.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}
.small{font-size:var(--step--1)}
.notice{border-left:3px solid var(--brass);padding:.6rem 1rem;background:rgba(198,161,91,.1);font-size:var(--step--1);max-width:70ch}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* One orchestrated reveal on the hero only */
@media (prefers-reduced-motion:no-preference){
  .hero .wrap > *{opacity:0;transform:translateY(14px);animation:rise .9s var(--ease) forwards}
  .hero .wrap > :nth-child(2){animation-delay:.12s}
  .hero .wrap > :nth-child(3){animation-delay:.22s}
  .hero .wrap > :nth-child(4){animation-delay:.32s}
  .hero .wrap > :nth-child(5){animation-delay:.42s}
  @keyframes rise{to{opacity:1;transform:none}}
}

/* 404 */
.notfound{min-height:60vh;display:grid;place-items:center;text-align:center}

/* Keep anchored sections clear of the sticky header */
:where(section[id],div[id],details[id]){scroll-margin-top:88px}
