:root{
  /* palette */
  --paper:#efe6d3;
  --paper-deep:#e7dbc2;
  --paper-warm:#ddd0b2;
  --oxblood:#6b2a23;
  --oxblood-deep:#4a1c17;
  --oxblood-bright:#a2402f;
  --olive:#54512d;
  --ink:#232a38;
  --ink-soft:#2c3446;
  --tan:#e3c49b;
  --body:#2f2a20;
  --body-soft:#5a5140;
  --rule:#c9b990;

  --display:"hwt-aetna", Georgia, serif;
  --display-cond:"hwt-aetna-condensed","hwt-aetna",Georgia,serif;
  --serif:"freight-text-pro", Georgia, serif;
  --sans:"freight-sans-pro",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;

  --wrap:1080px;
}

*{box-sizing:border-box}
h1,h2,h3,h4{text-wrap:balance}
p{text-wrap:pretty}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--body);
  font-family:var(--serif);
  font-size:18px;
  line-height:1.62;
  position:relative;
}

/* pure-CSS paper grain via SVG turbulence, above content & multiplied */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:3;
  opacity:.55;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E");
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:1;
  background:radial-gradient(120% 90% at 50% 0%, transparent 60%, rgba(80,55,30,.10) 100%);
}
.layer{position:relative;z-index:2}

a{color:inherit}
:focus-visible{outline:2.5px solid var(--oxblood-bright);outline-offset:3px;border-radius:2px}
img{max-width:100%;display:block}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 28px}

/* eyebrow label */
.eyebrow-label{
  font-family:var(--display-cond);text-transform:capitalize;letter-spacing:.22em;
  font-weight:400;color:var(--oxblood);font-size:14px;line-height:1.25;display:block;
}
.eyebrow-label.on-dark{color:var(--tan)}

/* ---------- announcement bar ---------- */
.announce-spacer{height:42px;background:var(--oxblood)}
.announce{
  background:var(--oxblood-deep);
  color:var(--paper);
  font-family:var(--sans);
  font-size:14.5px;
  letter-spacing:.01em;
  text-align:center;
  padding:9px 16px;
}
.announce strong{font-family:var(--display-cond);font-weight:400;letter-spacing:.12em;text-transform:uppercase;font-size:14px}

/* ---------- masthead ---------- */
header.mast{
  background:var(--oxblood);
  color:var(--paper);
  position:sticky;top:0;z-index:100;
  filter:drop-shadow(0 4px 6px rgba(74,28,23,.4));
}
.mast-inner{
  display:flex;flex-direction:column;align-items:center;
  position:relative;
  gap:16px;padding:24px 28px 26px;
  max-width:var(--wrap);margin:0 auto;
}
.brand{display:inline-block;line-height:0}
.brand .n{
  font-family:var(--display);font-weight:400;
  font-size:clamp(28px,7vw,42px);letter-spacing:.02em;text-transform:uppercase;
  display:block;
}
.brand .n b{color:var(--tan);font-weight:400}
.brand .sub{
  font-family:var(--display-cond);text-transform:uppercase;letter-spacing:.26em;
  font-size:12px;color:var(--tan);margin-top:7px;padding-left:.26em;
}
nav.top{display:none;gap:26px;font-family:var(--sans);text-transform:uppercase;
  letter-spacing:.14em;font-size:15px}
nav.top a{color:var(--paper);text-decoration:none;opacity:.85;padding:4px 0;border-bottom:2px solid transparent}
nav.top a:hover{opacity:1;border-color:var(--tan)}

/* hamburger button */
.nav-toggle{
  display:flex;flex-direction:column;justify-content:center;gap:5px;
  background:none;border:none;cursor:pointer;padding:6px;
  position:absolute;right:16px;top:30px;
}
.nav-toggle span{
  display:block;width:24px;height:2px;background:var(--paper);border-radius:2px;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* mobile nav panel */
.mobile-nav{
  background:var(--oxblood);border-top:1px solid rgba(227,196,155,.2);
  display:flex;flex-direction:column;
  padding:12px 0 20px;
}
.mobile-nav a{
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.14em;font-size:16px;
  color:var(--paper);text-decoration:none;opacity:.85;
  padding:14px 28px;border-bottom:1px solid rgba(227,196,155,.1);
}
.mobile-nav a:last-child{border-bottom:none}
.mobile-nav a:hover{opacity:1;color:var(--tan)}
.mobile-nav[hidden]{display:none}

.mast-sub{
  text-align:center;padding:0 28px 14px;
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.1em;
  font-size:15px;color:var(--tan);opacity:.8;
}

/* scalloped edge: red bumps hanging DOWN into cream */
.scallop{height:13px;
  background:radial-gradient(circle at 12px 0, var(--oxblood) 0 12px, transparent 12.5px) 0 0/24px 13px repeat-x;
}
header.mast::after{
  content:"";display:block;
  position:absolute;bottom:-13px;left:0;right:0;
  height:13px;
  background:radial-gradient(circle at 12px 0, var(--oxblood) 0 12px, transparent 12.5px) 0 0/24px 13px repeat-x;
  pointer-events:none;
}

/* anchor offset for sticky header */
#week,#special-section,#signup{scroll-margin-top:140px}
#visit{scroll-margin-top:170px}

/* ---------- hero ---------- */
.hero{padding-top:52px;padding-bottom:40px;text-align:center}
.hero .eyebrow-label{margin:0 0 12px}
.hero h1{
  font-family:var(--display);font-weight:400;
  font-size:clamp(28px,7.5vw,50px);line-height:.96;letter-spacing:.01em;
  text-transform:uppercase;color:var(--olive);margin:.05em 0 .2em;
  text-wrap:auto;
}
.hero h1 .amp{color:var(--oxblood)}
.lede{max-width:46ch;margin:52px auto 22px;color:var(--body-soft);font-size:clamp(16px,2.6vw,19px)}
.est{font-family:var(--display-cond);letter-spacing:.2em;text-transform:uppercase;
  font-size:13px;color:var(--olive);margin-bottom:26px}

.hero-photo-band{line-height:0;overflow:hidden;aspect-ratio:16/9;border-top:5px solid var(--oxblood);border-bottom:5px solid var(--oxblood)}
.hero-photo-band img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}

.btn{
  display:inline-block;font-family:var(--sans);text-transform:uppercase;
  letter-spacing:.12em;font-size:16px;font-weight:400;
  padding:12px 28px;border:1.5px solid var(--oxblood);
  color:var(--oxblood);text-decoration:none;border-radius:2px;background:transparent;cursor:pointer;
}
.btn:hover{background:var(--oxblood);color:var(--paper)}
.btn.solid{background:var(--oxblood);color:var(--paper)}
.btn.solid:hover{background:var(--olive);border-color:var(--olive)}
.btn.light{border-color:var(--tan);color:var(--paper);font-size:18px;padding:14px 36px}
.btn.light:hover{background:var(--tan);color:var(--ink)}

.squiggle{display:block;width:180px;max-width:60%;height:12px;margin:30px auto;color:var(--rule)}

/* ---------- about ---------- */
.about{padding:40px 28px;max-width:680px}
.about p{font-family:var(--serif);font-size:clamp(16px,2.2vw,19px);line-height:1.65;color:var(--body);margin:0;font-style:italic}
.fork-sig{display:block;width:min(62vw,260px);height:auto;margin:18px auto 0;fill:var(--rule);opacity:.7}

/* ---------- daily special — the signature element ---------- */
.special-wrap{padding-top:8px;padding-bottom:8px}
.special-wrap .eyebrow-label{text-align:center;margin-bottom:10px}
.cartouche{
  position:relative;max-width:560px;margin:0 auto;
  background-color:var(--ink);background-image:url('/images/cartouche-background.webp');
  background-size:cover;background-position:center;color:var(--tan);
  padding:38px 30px 34px;text-align:center;
  clip-path:polygon(
    0 14px, 14px 14px, 14px 0, calc(100% - 14px) 0, calc(100% - 14px) 14px, 100% 14px,
    100% calc(100% - 14px), calc(100% - 14px) calc(100% - 14px), calc(100% - 14px) 100%,
    14px 100%, 14px calc(100% - 14px), 0 calc(100% - 14px)
  );
}
.cartouche::before{
  content:"";position:absolute;inset:10px;border:1px solid rgba(227,196,155,.4);
  clip-path:inherit;pointer-events:none;
}
.cartouche .day{font-family:var(--display-cond);text-transform:uppercase;letter-spacing:.24em;
  font-size:13px;color:rgba(227,196,155,.75);margin-bottom:12px}
.cartouche h3{font-family:var(--display);font-weight:400;text-transform:uppercase;
  letter-spacing:.02em;font-size:clamp(27px,6vw,36px);line-height:1.02;color:var(--paper);margin:0 0 12px}
.cartouche p{margin:0 auto;max-width:38ch;font-size:16px;color:var(--tan)}
.cartouche .gf{display:inline-block;margin-top:16px;font-family:var(--display-cond);
  font-size:13px;letter-spacing:.06em;text-transform:uppercase;
  border:1px solid rgba(227,196,155,.45);border-radius:999px;padding:5px 14px;color:var(--tan)}
.special-note{text-align:center;font-family:var(--sans);font-size:12.5px;color:var(--body-soft);
  margin-top:16px;max-width:46ch;margin-left:auto;margin-right:auto}

.special-closed{
  max-width:560px;margin:0 auto;text-align:center;
  border:1.5px dashed var(--rule);border-radius:4px;padding:30px 24px;color:var(--body-soft);
}
.special-closed .k{font-family:var(--display-cond);text-transform:uppercase;letter-spacing:.18em;
  color:var(--oxblood);font-size:16px;display:block;margin-bottom:8px}

/* ---------- this week's specials ---------- */
.week{background:var(--paper-deep);padding:44px 0;margin-top:36px;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.sec-head{text-align:center;margin-bottom:26px}
.sec-head .eyebrow-label{margin-bottom:6px}
.sec-head h1,.sec-head h2{font-family:var(--display);text-transform:uppercase;letter-spacing:.03em;
  font-weight:400;color:var(--olive);font-size:clamp(26px,5vw,36px);margin:2px 0 0}
.week-grid{display:grid;grid-template-columns:1fr;gap:12px;max-width:720px;margin:0 auto}
.week-day{display:flex;align-items:flex-start;gap:14px;padding:12px 4px;border-bottom:1px dotted var(--rule)}
.week-day:last-child{border-bottom:0}
.week-day .d{font-family:var(--display-cond);text-transform:uppercase;letter-spacing:.14em;font-size:13px;
  color:var(--oxblood);width:58px;flex:0 0 58px;padding-top:4px}
.week-day .dish{font-family:var(--display);font-weight:400;font-size:21px;color:var(--body);line-height:1.15}
.week-day.today{background:rgba(107,42,35,.06);border-radius:4px;padding-left:10px;padding-right:10px}
.week-day.today .d{color:var(--oxblood-bright)}

/* ---------- menu ---------- */
.menu-intro{padding:52px 28px 20px}
.menu-content{padding:32px 28px 44px}

/* photo bands */
.menu-photo{position:relative;overflow:hidden;aspect-ratio:16/9}
.menu-photo img{width:100%;height:100%;object-fit:cover;display:block}
.menu-photo.wave-top{clip-path:url(#menu-wave-top)}
.menu-photo.wave-bottom{clip-path:url(#menu-wave-bottom)}
.gf-line{max-width:640px;margin:0 auto 16px;text-align:center;
  font-family:var(--serif);font-style:italic;font-size:clamp(14px,2vw,16px);color:var(--body-soft)}
.gf-line b{color:var(--oxblood)}
/* ---------- menu tile system ---------- */
.menu-section{margin-top:44px}
.menu-section:first-of-type{margin-top:0}
.menu-section-head{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.03em;
  color:var(--olive);font-size:clamp(19px,3vw,24px);margin:0;
  padding-bottom:10px;border-bottom:1.5px solid var(--rule)}
.cat-note{font-family:var(--sans);font-size:13px;color:var(--body-soft);margin:8px 0 0;font-style:italic}
.cat-hours{font-family:var(--sans);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--oxblood);margin-left:10px;font-weight:400}
.tile-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:14px}
.tile{background-color:var(--paper-deep);background-image:url('/images/tile-background.webp');
  background-size:800px 800px;background-position:0 0;
  border:1px solid var(--rule);border-radius:4px;padding:16px 18px;
  position:relative;z-index:4}
.tile:nth-child(6n+2){background-position:-220px -180px}
.tile:nth-child(6n+3){background-position:-460px -280px}
.tile:nth-child(6n+4){background-position:-120px -420px}
.tile:nth-child(6n+5){background-position:-350px -80px}
.tile:nth-child(6n+6){background-position:-540px -340px}
.tile-name{font-family:var(--display);font-weight:400;font-size:18px;color:var(--body);
  display:block;line-height:1.15;margin-bottom:6px}
.gf-mark{display:inline-block;font-family:var(--display-cond);font-size:11px;font-weight:400;
  letter-spacing:.06em;border:1px solid var(--olive);color:var(--olive);border-radius:3px;
  padding:1px 5px;margin-left:7px;vertical-align:middle;transform:translateY(-2px)}
.tile-desc{font-size:14px;color:var(--body);line-height:1.45;margin:0}

/* remove display:none below when prices are finalized */
.pr{display:none}

/* BYO steps */
.byo-tile{text-align:center;display:flex;flex-direction:column;align-items:center;padding:20px 14px}
.byo-num{width:30px;height:30px;border-radius:50%;background:var(--oxblood);color:var(--paper);
  font-family:var(--display-cond);font-size:15px;
  display:flex;align-items:center;justify-content:center;margin-bottom:10px;flex-shrink:0}
.byo-label{font-family:var(--display-cond);text-transform:uppercase;letter-spacing:.14em;
  font-size:12px;color:var(--oxblood);display:block;margin-bottom:8px}
.byo-tile p{font-size:14px;color:var(--body-soft);line-height:1.6;margin:0}
.byo-premium{margin-top:8px;font-size:13px;opacity:.8}

.catering-offerings{padding-top:20px}
.catering-tiles{max-width:720px;margin-left:auto;margin-right:auto}
.craft.catering-cta{margin-bottom:64px;max-width:560px;width:calc(100% - 56px)}

.craft{margin:64px auto 0;max-width:760px;background-color:var(--ink);
  background-image:url('/images/cartouche-background.webp');background-size:cover;
  background-position:center;color:var(--tan);
  border-radius:5px;padding:30px 28px;text-align:center;position:relative}
.craft-fleur{width:min(34vw,110px);fill:var(--tan);opacity:.6;margin:0 auto 10px}
.craft h2{font-family:var(--display);font-weight:400;text-transform:uppercase;color:var(--paper);letter-spacing:.03em;
  font-size:clamp(21px,4vw,27px);margin:0 0 16px}
.craft p{margin:0 auto;max-width:56ch;font-size:16px;text-align:left;line-height:1.5}
.craft p+p{margin-top:12px}

/* ---------- email capture ---------- */
.signup{padding-top:20px;padding-bottom:20px;text-align:center}
.signup .eyebrow-label{margin-bottom:8px}
.signup h2{font-family:var(--display);text-transform:uppercase;letter-spacing:.03em;
  color:#8a7e63;font-weight:400;font-size:clamp(18px,3vw,24px);margin:2px 0 8px}
.signup h2 .hl{color:var(--oxblood)}
.signup p{max-width:46ch;margin:0 auto 22px;color:var(--body-soft)}
.form{display:flex;gap:10px;max-width:440px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.form input{flex:1 1 220px;font-family:var(--serif);font-size:16px;
  padding:13px 15px;border:1.5px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--body)}
.form input:focus-visible{outline:2px solid var(--oxblood);outline-offset:1px;border-color:var(--oxblood)}
.note{font-family:var(--sans);font-size:12px;color:var(--body-soft);margin-top:12px}

/* ---------- visit / map ---------- */
.visit{margin-top:44px}
.map-wrap{max-width:640px;margin:0 auto;padding:0 28px}
.map-link{display:block;line-height:0;border-top:5px solid var(--oxblood);border-bottom:5px solid var(--oxblood);overflow:hidden}
.map-img{width:100%;height:auto;display:block}
.map-btn{display:block;margin:18px auto 0;width:fit-content}
.visit-info{
  display:flex;flex-wrap:wrap;justify-content:center;gap:22px 48px;
  margin:64px auto;width:calc(100% - 56px);max-width:760px;
  background:var(--paper-warm);color:var(--body);
  border-radius:5px;padding:30px 28px;text-align:center;
  font-family:var(--serif);font-size:16px;
}
.v-block .eyebrow-label{margin-bottom:4px}

/* ---------- footer ---------- */
footer{background:var(--oxblood);color:var(--paper)}
.footer-arc{display:block;width:100%;height:60px;margin-top:44px;margin-bottom:-1px}
.footer-arc-fill{fill:var(--oxblood)}
.footer-arc-line{fill:none;stroke:rgba(239,230,211,.55);stroke-width:2}
.foot-inner{max-width:var(--wrap);margin:0 auto;padding:24px 20px 30px;text-align:center}
.foot-inner .n{font-family:var(--display);font-weight:400;text-transform:uppercase;
  font-size:32px;letter-spacing:.03em}
.foot-inner .n b{color:var(--tan);font-weight:400}
.foot-inner .sub{font-family:var(--display-cond);text-transform:uppercase;letter-spacing:.26em;
  font-size:12px;color:var(--tan);margin:7px 0 22px}
.foot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 40px;
  font-family:var(--serif);font-size:15px;color:var(--paper);
  max-width:520px;margin-left:auto;margin-right:auto;text-align:center}
.foot-grid .h{font-family:var(--display-cond);text-transform:uppercase;letter-spacing:.14em;
  font-size:12px;color:var(--tan);display:block;margin-bottom:4px}
.foot-burst{width:34px;height:34px;color:var(--tan);margin:24px auto 0}
.social{display:flex;justify-content:center;gap:12px;margin:24px 0 8px}
.social a{color:var(--tan);opacity:.92;line-height:0}
.social a:hover{opacity:1}

@media(max-width:759px){
  .tile-desc{font-size:15px}
  .byo-tile p{font-size:15px}
  .cat-note{font-size:14px}
}

@media(min-width:480px){
  .tile-grid--2{grid-template-columns:1fr 1fr}
  .tile-grid--3{grid-template-columns:1fr 1fr}
}

@media(min-width:760px){
  nav.top{display:flex}
  .nav-toggle{display:none}
  .mast-inner{flex-direction:row;justify-content:space-between;align-items:center}
  .hero-photo-band{aspect-ratio:235/100}
  .menu-photo{aspect-ratio:235/100}
  .menu-wave{height:78px}
  .tile-grid--2{grid-template-columns:1fr 1fr}
  .tile-grid--3{grid-template-columns:1fr 1fr 1fr}
  .tile-grid--4{grid-template-columns:repeat(4,1fr)}
  .tile-grid--5{grid-template-columns:repeat(5,1fr)}
  .week-grid{grid-template-columns:1fr 1fr;gap:0 40px}
}

@media(prefers-reduced-motion:no-preference){
  .cartouche,.special-closed{animation:rise .5s ease both}
  @keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}

/* SVG logo + fleur sizing and fill colours */
.brand-logo{display:block;width:min(62vw,290px);height:auto;fill:var(--paper)}
.foot-logo{width:min(44vw,180px);margin:0 auto 22px;fill:var(--paper)}
.fleur{display:block;margin:0 auto;width:min(54vw,210px);height:auto;fill:var(--olive)}
.hero-fleur{margin-bottom:20px;width:min(44vw,170px)}
.foot-fleur{width:min(38vw,140px);fill:var(--tan);opacity:.92;margin-top:22px}

/* ---------- promo card (homepage teaser) ---------- */
.promo-card-wrap{padding:36px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper-deep)}
.promo-card{display:flex;align-items:center;gap:32px;max-width:780px;margin:0 auto}
.promo-card-text{flex:1}
.promo-card-title{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(22px,4vw,32px);color:var(--olive);margin:8px 0 20px;line-height:1.05}
.promo-card-btn{display:inline-block}
.promo-card-img{flex:0 0 auto;width:min(38vw,280px)}
.promo-card-img img{width:100%;height:auto;border-radius:3px;border:1px solid var(--rule)}

/* ---------- promotion landing page ---------- */
.promo-page{padding:52px 0 72px}
.promo-page-inner{max-width:720px;margin:0 auto}
.promo-title{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(28px,6vw,48px);color:var(--olive);margin:.15em 0 .5em;line-height:1}
.promo-image{margin:0 0 36px;border-radius:3px;overflow:hidden;border:1px solid var(--rule)}
.promo-image img{width:100%;height:auto;display:block}
.promo-body{font-size:clamp(16px,2.2vw,19px);line-height:1.7;color:var(--body)}
.promo-body h2{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.03em;
  font-size:clamp(20px,3.5vw,28px);color:var(--olive);margin-top:1.4em}
.promo-body h3{font-family:var(--display-cond);font-weight:400;text-transform:uppercase;
  letter-spacing:.14em;font-size:15px;color:var(--oxblood);margin-top:1.2em}
.promo-body a{color:var(--oxblood-bright);text-decoration:underline}
.promo-cta{margin-top:40px}

@media(max-width:600px){
  .promo-card{flex-direction:column-reverse;gap:20px}
  .promo-card-img{width:100%}
}

/* ---------- newsletter signup feedback ---------- */
.signup-msg{margin-top:16px;font-size:20px;font-family:var(--serif);font-style:italic}
.signup-msg--ok{color:var(--ink);font-weight:600}
.signup-msg--err{color:var(--oxblood-bright)}
.btn.solid:disabled{opacity:0.5;cursor:default}

/* ---------- subscription landing pages ---------- */
.sub-page{padding:72px 0 80px;text-align:center;min-height:38vh}
.sub-page h1{margin-bottom:16px}
.sub-page .lede{margin-bottom:32px}
.sub-page-back{margin-top:24px}
.sub-page-skip{margin-top:16px;font-family:var(--display-cond);font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--body-soft)}

/* ---------- preferences form ---------- */
.pref-form{display:flex;flex-direction:column;gap:10px;max-width:400px;margin:32px auto 0;text-align:left}
.pref-label{font-family:var(--display-cond);text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(--body-soft)}
.pref-input{font-family:var(--serif);font-size:16px;padding:10px 14px;border:1px solid var(--rule);background:var(--paper);color:var(--body);border-radius:3px}
.pref-input:focus-visible{outline:2px solid var(--oxblood);outline-offset:1px;border-color:var(--oxblood)}
.pref-row{display:flex;gap:10px}
.pref-row>.pref-input{flex:1}
select.pref-input{cursor:pointer}
.unsub-form{margin-top:32px;text-align:center}
.unsub-btn{background:none;border:none;padding:0;font-family:var(--display-cond);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--body-soft);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.unsub-btn:hover{color:var(--oxblood-bright)}

/* ---------- 404 error page ---------- */
.error-page{padding:72px 0 80px;text-align:center;min-height:42vh}
.error-page .cartouche{max-width:520px}
.error-num{font-family:var(--display);font-weight:400;font-size:clamp(72px,18vw,116px);
  line-height:.85;letter-spacing:.04em;color:var(--paper);margin:4px 0 8px}
.error-label{font-family:var(--display-cond);text-transform:uppercase;letter-spacing:.2em;
  font-size:14px;color:var(--tan);display:block;margin:0 0 16px}
.error-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:36px}

/* ---------- legal pages ---------- */
.legal-page{padding:64px 0 88px;max-width:700px;margin:0 auto}
.legal-page h1{margin-bottom:6px}
.legal-meta{font-family:var(--display-cond);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--body-soft);margin-bottom:36px}
.legal-page h2{font-size:1.6rem;margin-top:40px;margin-bottom:8px}
.legal-page p{margin-bottom:1em;line-height:1.7}
.legal-back{margin-top:48px}

/* ---------- soup display ---------- */
.cartouche-soup{
  font-family:var(--display-cond);text-transform:uppercase;letter-spacing:.14em;
  font-size:13px;color:rgba(227,196,155,.8);
  margin:14px auto 0;padding-top:12px;
  border-top:1px solid rgba(227,196,155,.2);
  max-width:38ch;
}
.week-day-info{display:flex;flex-direction:column;gap:2px}
.week-soup{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--body-soft)}

@media (prefers-reduced-motion: no-preference) {
  .nav-toggle span{transition:transform .2s,opacity .2s}
  .btn{transition:background .15s ease,color .15s ease}
  .social a{transition:opacity .15s ease}
}
