/* Corvina Enoteca, design v2 ("Valvet" + the printed wine list). Hand-written, no engine.
   Display: Bodoni Moda. Text: DM Sans. Both OFL, local files in /fonts. */
@font-face{font-family:"Bodoni Moda";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/bodoni-moda-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-weight:400;font-style:italic;font-display:swap;src:url(../fonts/bodoni-moda-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/dm-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/dm-sans-latin-500-normal.woff2) format("woff2")}
:root{
  --cellar:#140d09; --cellar-2:#1d120c; --cream:#f1e6d0; --muted:#c4b399; --copper:#e0a066;
  --wine:#7e1b20; --wine-h:#962228; --oxblood:#3a0f14;
  --paper:#f3ead8; --paper-2:#e9dec6; --sheet:#fbf7ed; --ink:#26160f; --ink-muted:#66503f; --rule:#c9b595; --wine-ink:#7e1b20;
  --f-d:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif;
  --f-b:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gut:20px; --lp-reveal-dur-hero:.4s;
}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:72px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{background:var(--cellar);color:var(--cream);font:400 17px/1.55 var(--f-b);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--copper);outline-offset:3px}
.paper :focus-visible,.paper2 :focus-visible{outline-color:var(--wine-ink)}
.skip{position:absolute;left:8px;top:-120px;background:var(--cream);color:var(--ink);padding:12px 16px;z-index:40}
.skip:focus{top:8px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}

/* ---------- header ---------- */
.hdr{position:absolute;inset:0 0 auto 0;z-index:5;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:0 var(--gut);height:64px}
.hdr--in{position:relative;background:var(--cellar);border-bottom:1px solid rgba(241,230,208,.18);justify-content:space-between}
.hdr__brand{display:inline-flex;align-items:center;min-height:56px}
.hdr__brand img{width:104px;height:auto}
.hdr__brand--home{display:none}
.nav{display:none;align-items:center;gap:0}
.nav a,.lang{font:500 14px/1 var(--f-b);letter-spacing:.01em;text-decoration:none;min-height:44px;display:inline-flex;align-items:center;padding:0 12px}
.nav a,.lang{transition:color var(--d-base) var(--ease-out)}
.nav a:hover,.lang:hover{color:var(--copper)}
.nav a[aria-current=page]{color:var(--copper)}
.hdr__r{display:flex;align-items:center;gap:4px}
.burger{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 6px;background:none;border:0;color:inherit;font:500 14px/1 var(--f-b);letter-spacing:.01em;cursor:pointer}
.burger i{display:block;width:22px;height:2px;background:currentColor;box-shadow:0 7px 0 currentColor;margin-bottom:7px}

/* ---------- phone menu ---------- */
.ov{position:fixed;inset:0;z-index:30;background:var(--cellar);overflow:auto;display:flex;flex-direction:column;padding:0 var(--gut) 28px}
.ov__top{display:flex;align-items:center;justify-content:space-between;min-height:64px}
.ov__top img{width:104px;height:auto}
.ov__x{min-height:44px;min-width:44px;background:none;border:0;color:inherit;font:500 14px/1 var(--f-b);letter-spacing:.01em;cursor:pointer;padding:0 6px}
.ov__links{display:flex;flex-direction:column;margin:12px 0 24px;border-top:1px solid rgba(241,230,208,.25)}
.ov__links a{font:400 36px/1.1 var(--f-d);letter-spacing:-.02em;text-decoration:none;padding:14px 0;border-bottom:1px solid rgba(241,230,208,.25);min-height:56px}
.ov__links a:hover{color:var(--copper)}
.ov__info{font-size:16px;color:var(--muted);margin-bottom:18px}
.ov__info a{color:var(--cream)}
.ov .cta{margin-top:auto}

/* ---------- buttons, small bits ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 26px;font:500 16px/1 var(--f-b);letter-spacing:.01em;text-decoration:none;border:1px solid transparent;flex:0 1 auto;white-space:nowrap;transition:background-color var(--d-base) var(--ease-out),color var(--d-base) var(--ease-out),border-color var(--d-base) var(--ease-out)}
.btn--fill{background:var(--wine);color:var(--cream);border-color:var(--wine)}
.btn--fill:hover{background:var(--wine-h);border-color:var(--wine-h)}
.btn--line{border-color:rgba(241,230,208,.6)}
.btn--line:hover{background:var(--cream);color:var(--ink)}
.paper .btn--line,.paper2 .btn--line{border-color:var(--ink);color:var(--ink)}
.paper .btn--line:hover,.paper2 .btn--line:hover{background:var(--ink);color:var(--paper)}
.cta{display:flex;flex-wrap:wrap;gap:10px}
.hdr .book{display:none}
.k{font:500 12px/1.3 var(--f-b);letter-spacing:.14em;text-transform:uppercase;color:var(--copper);margin-bottom:14px}
.paper .k,.paper2 .k{color:var(--wine-ink)}
.more{display:inline-flex;align-items:center;min-height:44px;font:500 16px/1.2 var(--f-b);letter-spacing:.01em;text-underline-offset:6px;text-decoration-thickness:1px;transition:text-decoration-color var(--d-base) var(--ease-out),color var(--d-base) var(--ease-out)}
.paper .more,.paper2 .more{color:var(--wine-ink)}
.more:hover{text-decoration-color:transparent}
h1,h2,h3{font-weight:400}
h2{font:400 clamp(36px,9.4vw,44px)/.98 var(--f-d);letter-spacing:-.025em;text-wrap:balance}
h2 em,h1 em{font-style:italic}
.lede{color:var(--muted);max-width:34ch}
.paper .lede,.paper2 .lede{color:var(--ink-muted)}

/* ---------- hero ---------- */
/* the vault photo fills the whole first screen. Phone: the words sit on the dim ceiling at the top, on a dark fade that
   follows the text block, so the wine racks and the laid table stay clear at the bottom. Desktop: words on the left. */
.hero{position:relative;background:var(--cellar);min-height:100vh;min-height:100svh;display:flex;flex-direction:column;overflow:hidden}
.hero__photo{position:absolute;inset:0;overflow:hidden;background:var(--cellar-2)}
.hero__photo picture{display:block;height:100%}
.hero__photo img{width:100%;height:100%;object-fit:cover;object-position:56% 50%}
.hero__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,13,9,0) 78%,rgba(20,13,9,.55) 100%)}
/* phone: the dark band stays solid down past the buttons; the fade into the photo starts below them (4 Nov) */
.hero__in{position:relative;z-index:2;padding:84px var(--gut) 88px;background:linear-gradient(180deg,rgba(20,13,9,.96) 0,rgba(20,13,9,.96) calc(100% - 72px),rgba(20,13,9,.5) calc(100% - 30px),rgba(20,13,9,0) 100%)}
.hero__logo img{width:220px;height:auto}
.hero__line{font:400 clamp(36px,9.4vw,44px)/.98 var(--f-d);letter-spacing:-.025em;margin-top:18px;text-wrap:balance}
.hero__line em{font-style:italic}
.strip{padding:22px 0 0}
/* short phones: a smaller name and line, so the laid table still shows under the buttons */
@media (max-width:899px) and (max-height:700px){
  .hero__in{padding-top:76px}
  .hero__logo img{width:176px}
  .hero__line{font-size:32px;margin-top:12px}
  .strip{padding-top:14px}
}
.today{font:500 16px/1.4 var(--f-b);margin-bottom:4px}
.today--wait{visibility:hidden}
.today .tk{display:inline-block;margin-right:10px;font:500 12px/1 var(--f-b);letter-spacing:.14em;text-transform:uppercase;color:var(--copper)}
.week{font-size:14px;line-height:1.5;color:var(--muted);margin-bottom:20px;max-width:38ch}
.week span{white-space:nowrap}
.addr{display:inline-flex;align-items:center;min-height:44px;font-size:16px;text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(224,160,102,.7)}
.strip .cta{margin-bottom:10px;align-items:center;gap:6px 22px}
.cta .tlink{display:inline-flex;align-items:center;min-height:48px;font:500 16px/1 var(--f-b);letter-spacing:.01em;text-underline-offset:6px;text-decoration-thickness:1px;transition:text-decoration-color var(--d-base) var(--ease-out)}
.cta .tlink:hover{text-decoration-color:transparent}
.paper .cta .tlink,.paper2 .cta .tlink{color:var(--ink)}
@media (prefers-reduced-motion:no-preference){
  .hero__copy,.strip{animation:cvin var(--d-slow) var(--ease-out) both}
}
@keyframes cvin{from{opacity:0}to{opacity:1}}

/* ---------- paper sections ---------- */
.paper{background:var(--paper);color:var(--ink)}
.paper2{background:var(--paper-2);color:var(--ink)}
.sec{padding:64px var(--gut) 72px}
.sec__in{max-width:1312px;margin:0 auto}
.sec__hd h2{margin-bottom:16px}
.sec__hd .lede{margin-bottom:28px}

/* the printed wine sheet */
.wsheet{background:var(--sheet);color:var(--ink);border:1px solid var(--ink);padding:18px 16px 6px;margin-bottom:22px}
.wsheet__hd{display:grid;grid-template-columns:1fr 54px 60px;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:10px}
.wsheet__hd h3{font:400 italic 28px/1 var(--f-d)}
.wsheet__hd span{font:500 12px/1 var(--f-b);letter-spacing:.04em;color:var(--wine-ink);text-align:right}
.wl{list-style:none;padding:0}
.wl li{display:grid;grid-template-columns:1fr 54px 60px;grid-template-areas:"n g b" "p g b";align-items:start;padding:9px 0;border-bottom:1px dotted var(--rule)}
.wl li:last-child{border-bottom:0}
.wn{grid-area:n;font:400 16px/1.3 var(--f-b)}
.wn small{display:block;font:400 14px/1.3 var(--f-b);color:var(--ink-muted)}
.wp{grid-area:p;font:italic 400 14px/1.3 var(--f-b);color:var(--ink-muted)}
.wg,.wb{text-align:right;font:400 16px/1.3 var(--f-b);font-variant-numeric:lining-nums tabular-nums}
.wg{grid-area:g}.wb{grid-area:b}
.sheet-more{margin:4px 0 10px}

/* full-bleed photo band on the home page (their 1500 px original: never wider than 1500, the sides fade into the cellar black above that) */
.pband{background:var(--cellar);overflow:hidden}
.pband picture{display:block;max-width:1500px;margin:0 auto}
.pband img{width:100%;height:clamp(260px,44vw,640px);object-fit:cover;object-position:50% 62%}
@media (min-width:1501px){.pband picture{-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}}

/* tastings */
.tast{background:var(--cellar-2);color:var(--cream)}
.tast__pic{margin-top:28px}
.tast__pic img{width:100%;max-width:520px;aspect-ratio:16/10;object-fit:cover}
.rows{list-style:none;padding:0;border-top:2px solid var(--copper);margin-top:36px}
.row{display:grid;grid-template-columns:64px 1fr;gap:0 16px;padding:20px 0;border-bottom:1px solid rgba(241,230,208,.25)}
.row__d{font:400 44px/1 var(--f-d);color:var(--copper);font-variant-numeric:lining-nums}
.row__d small{display:block;font:500 12px/1.4 var(--f-b);letter-spacing:.04em;color:var(--muted);margin-top:6px}
.row h3{font:400 22px/1.15 var(--f-d);letter-spacing:-.01em}
.row .who{font-size:14px;color:var(--muted);margin-top:4px}
.row .pr{grid-column:2;font:500 16px/1 var(--f-b);margin-top:10px;font-variant-numeric:lining-nums tabular-nums}
.tast__none{margin-top:36px;border-top:2px solid var(--copper);padding-top:20px;color:var(--muted)}
.tast .more{margin-top:18px}

/* about + menu index */
.about p{max-width:34em;margin-bottom:16px}
.about p:last-of-type{margin-bottom:0}
.index{list-style:none;padding:0;border-top:2px solid var(--ink);margin:28px 0 0}
.index li{border-bottom:1px solid var(--rule)}
.index a{display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-height:64px;padding:16px 0;text-decoration:none}
.index a:hover .index__n{color:var(--wine-ink);text-decoration:underline;text-underline-offset:5px}
.index__n{font:400 28px/1.1 var(--f-d);letter-spacing:-.015em}
.index__c{font:400 14px/1 var(--f-b);letter-spacing:.01em;color:var(--ink-muted);white-space:nowrap}
.room{margin:0 calc(var(--gut) * -1)}
.room img{width:100%;aspect-ratio:1500/700;object-fit:cover}
.room__t{padding:28px var(--gut) 0}
.room__t h2{margin-bottom:14px}
.room__t p:last-child{max-width:36em}
.sec__in--stack{display:block}
.sheet-top{margin-bottom:28px}
.sheet-top .lede{margin:14px 0 4px}
.sheet-grid .wsheet:last-child{margin-bottom:0}
@media (max-width:899px){.sheet-grid .wl li:nth-child(n+3){display:none}.sheet-grid .wl li:nth-child(2){border-bottom:0}}
.unit{font-size:14px;color:var(--ink-muted);margin-top:6px}
.intro{margin-top:18px;max-width:36em}
.about .sec__body{margin-top:36px}
.vp__hd h1{font:400 clamp(44px,13vw,64px)/.96 var(--f-d);letter-spacing:-.03em;margin-bottom:40px}

/* chambre separee band */
.ch{background:var(--oxblood);color:var(--cream)}
.ch.sec{padding:48px var(--gut) 56px}
.ch__no{display:flex;align-items:flex-end;gap:16px;font:400 112px/.8 var(--f-d);letter-spacing:-.03em;color:var(--copper);font-variant-numeric:lining-nums;margin-bottom:24px}
.ch__no small{display:block;font:500 14px/1.4 var(--f-b);letter-spacing:.01em;color:var(--cream);max-width:9em;padding-bottom:4px}
.ch .lede{color:var(--cream)}
.ch .k{color:var(--copper)}
.ch .more{color:var(--cream);margin-top:8px}

/* visit strip + footer */
.visit{background:var(--cellar);padding:64px var(--gut) 56px}
.visit__addr{font:400 clamp(36px,10vw,52px)/.98 var(--f-d);letter-spacing:-.03em;margin:8px 0 6px}
.visit__addr a{text-decoration:none}
.visit__sub{color:var(--muted);margin-bottom:22px}
.visit__hours{color:var(--cream);margin-bottom:22px}
.visit__hours span{white-space:nowrap}
.visit .rules{color:var(--muted);font-size:14px;max-width:44ch;margin:22px 0 0}
.visit__pic{margin-top:32px}
.visit__pic img{width:100%;max-width:460px;aspect-ratio:1;object-fit:cover}
.ftr{background:var(--cellar);border-top:1px solid rgba(241,230,208,.18);padding:36px var(--gut) 40px;font-size:16px}
.ftr__in{max-width:1312px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
.ftr__in>a:first-child{grid-column:1/-1}
.ftr__in>div:last-child{grid-column:1/-1}
.ftr a{overflow-wrap:anywhere}
.ftr img{width:170px;height:auto}
.ftr h2{font:500 12px/1.3 var(--f-b);letter-spacing:.14em;text-transform:uppercase;color:var(--copper);margin-bottom:8px}
.ftr p{color:var(--muted);display:flex;flex-direction:column}
.ftr__h span{display:flex;align-items:center;min-height:32px}
.visit__hrs{display:none}
.ftr a{display:inline-flex;align-items:center;min-height:44px;color:var(--cream)}
.ftr__nav{display:flex;flex-wrap:wrap;gap:0 6px}
.ftr__nav a{min-width:44px;justify-content:center;padding:0 8px}
.lnk{display:inline-flex;align-items:center;min-height:44px}

/* ---------- inner pages ---------- */
.ph{padding:44px var(--gut) 8px}
.ph__in{max-width:1312px;margin:0 auto}
.ph h1{font:400 clamp(44px,13vw,64px)/.96 var(--f-d);letter-spacing:-.03em;margin-bottom:16px}
.ph .lede{margin-bottom:8px}
.band{margin:28px 0 0}
.band img{width:100%;max-width:1500px;margin:0 auto;aspect-ratio:1500/700;object-fit:cover}
.chips{display:flex;gap:4px;overflow-x:auto;padding:14px var(--gut);background:var(--cellar);border-bottom:1px solid rgba(241,230,208,.18);position:sticky;top:0;z-index:4;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chips a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font:500 16px/1 var(--f-b);letter-spacing:.01em;text-decoration:none;white-space:nowrap;color:var(--muted);transition:color var(--d-base) var(--ease-out)}
.chips a:hover{color:var(--copper)}
.course{padding:56px var(--gut) 8px}
.course__in{max-width:1312px;margin:0 auto}
.course h2{margin-bottom:6px}
.course .cnt{font:400 14px/1 var(--f-b);letter-spacing:.01em;color:var(--ink-muted);margin-bottom:24px}
.course .note{color:var(--ink-muted);font-size:14px;margin:-8px 0 20px;max-width:38ch}
.dishes{border-top:1px solid var(--ink);padding-top:10px}
.dish{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:16px 0}
.dish__b{min-width:0}
.dn{font:400 22px/1.15 var(--f-d);letter-spacing:-.01em;text-wrap:balance;overflow-wrap:anywhere}
.dd{font-size:16px;color:var(--ink-muted);margin-top:6px;max-width:46ch}
.price{font:400 22px/1.15 var(--f-d);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.wine{padding:64px var(--gut) 72px}
.wine__tools{display:flex;align-items:center;gap:12px;min-height:48px;margin:6px 0 26px;font:500 16px/1.2 var(--f-b);letter-spacing:.01em}
.wine__tools input{width:22px;height:22px;accent-color:var(--wine)}
.wine__tools label{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer}
.wine .wsheet{padding:0;margin-bottom:14px}
.wine details>summary{list-style:none;display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:64px;padding:18px 16px;cursor:pointer}
.wine details>summary::-webkit-details-marker{display:none}
.wine details>summary h3{font:400 italic 28px/1 var(--f-d)}
.wine details>summary span{font:500 14px/1.3 var(--f-b);letter-spacing:.01em;color:var(--wine-ink);text-align:right}
.wine details[open]>summary{border-bottom:2px solid var(--ink)}
.wine details:not([open])>:not(summary){display:none}
.wine details>summary:hover h3{text-decoration:underline;text-underline-offset:6px}
.wgroup{padding:0 16px}
.wgroup h4,.wgroup .wcols{font:500 14px/1.3 var(--f-b);letter-spacing:.04em;color:var(--wine-ink);padding:22px 0 6px;display:grid;grid-template-columns:1fr 54px 60px;align-items:baseline}
.wgroup h4 span,.wgroup .wcols span{text-align:right;font-size:12px;letter-spacing:.04em}
.wgroup h4 .wgn{text-align:left;font-size:14px;letter-spacing:.04em}
.wgroup .wl li:last-child{border-bottom:1px dotted var(--rule)}
.wgroup:last-child{padding-bottom:10px}
.wine .wsheet__colhd{display:none}
.wine__note{font-size:14px;color:var(--ink-muted);margin-top:22px}
.wine__orig{display:inline-flex;align-items:center;min-height:44px;margin-right:28px}
.wine:has(#glass-only:checked) .wl li:not([data-glass]){display:none}
.wine:has(#glass-only:checked) .wgroup:not(:has(li[data-glass])){display:none}
.wine:has(#glass-only:checked) details:not(:has(li[data-glass])){display:none}
.menu-end{padding:56px var(--gut) 64px;background:var(--cellar)}
.menu-end .cta{margin-top:20px}

/* visit page */
.vp{padding:36px var(--gut) 0}
.vp__in{max-width:1312px;margin:0 auto}
.hours{list-style:none;padding:0;border-top:2px solid var(--copper);margin:20px 0 0;max-width:520px}
.hours li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid rgba(241,230,208,.25);font-variant-numeric:lining-nums tabular-nums}
.hours li.is-today{color:var(--copper)}
.vp h2{margin-bottom:14px}
.vp section{padding:0 0 56px}
.vp .lede{margin-bottom:20px}
.pk{border-top:2px solid var(--ink);margin-top:24px}
.pk div{padding:20px 0;border-bottom:1px solid var(--rule)}
.pk h3{font:400 28px/1.1 var(--f-d);letter-spacing:-.015em;margin-bottom:8px}
.pk h3 span{font-family:var(--f-b);font-size:14px;color:var(--wine-ink);margin-left:6px}
.pk p{max-width:46ch;font-size:16px;color:var(--ink-muted)}
.facts{list-style:none;padding:0;border-top:1px solid rgba(241,230,208,.35);margin:24px 0}
.facts li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid rgba(241,230,208,.35)}
.facts li span:last-child{text-align:right}
.facts--paper,.facts--paper li{border-color:var(--rule)}
.e404{min-height:60vh;padding:72px var(--gut) 64px}
.vp__contact{margin-top:28px}
@media (max-width:899px){.vp__contact{display:none}}   /* phones: the footer right below has the same contact lines */
.vp__contact p{display:flex;flex-direction:column;align-items:flex-start}
.vp__contact a{display:inline-flex;align-items:center;min-height:44px}
.vk .facts{margin:28px 0 8px}

/* ---------- phone: a tighter home page (about 4 500 px at 390) ---------- */
@media (max-width:899px){
  .sec{padding:48px var(--gut) 52px}
  .sheet-top{margin-bottom:22px}
  .wsheet{margin-bottom:14px;padding:16px 16px 4px}
  .tast__pic{display:none}
  .tast--short .row.is-more{display:none}
  .rows{margin-top:28px}
  .row{padding:16px 0}
  .about .sec__body{margin-top:28px}
  .index{margin-top:20px}
  .index a{min-height:52px;padding:12px 0}
  .ch.sec{padding:44px var(--gut) 48px}
  .ch__no{font-size:72px;margin-bottom:18px}
  .visit{padding:48px var(--gut) 48px}
  .visit__hours{display:none}
  .visit__sub{margin-bottom:20px}
  .ftr{padding:32px var(--gut) 32px}
  .ftr img{width:128px}
  .ftr__h span{min-height:28px}
  .ftr__in{gap:12px 24px}
  .sheet-top .more{display:none}
}
/* the footer link row repeats the phone menu, so phones skip it */
@media (max-width:599px){.ftr__in>div:last-child{display:none}}
.e404 h1{font:400 clamp(44px,13vw,72px)/.96 var(--f-d);letter-spacing:-.03em;margin:8px 0 16px}
.e404 p{color:var(--muted);margin-bottom:24px}
.e404 .cta{max-width:420px}

/* ---------- desktop ---------- */
@media (min-width:600px){
  .chips{flex-wrap:wrap;overflow:visible}
}
@media (min-width:900px){
  :root{--gut:64px}
  body{font-size:18px}
  .hdr{height:88px;padding-left:max(var(--gut),calc((100% - 1312px) / 2));padding-right:max(var(--gut),calc((100% - 1312px) / 2))}
  .hdr--in{height:88px}
  .hdr__brand img{width:128px}
  .burger{display:none}
  .nav{display:flex;margin-right:auto}
  .hdr .book{display:inline-flex;min-height:44px;flex:0 0 auto;margin-left:8px;padding:0 20px;font-size:14px;border:1px solid rgba(241,230,208,.55)}
  .hdr .book:hover{background:var(--cream);color:var(--ink)}
  .hdr--home{justify-content:flex-end}
  /* first screen: the photo at full width and height (capped so the 700 px original is not blown up too far), words on the left */
  .hero{min-height:min(100svh,1200px);justify-content:center}
  .hero__in{flex:0 0 auto}
  .hero__photo img{object-position:62% 50%}
  .hero__photo::after{background:linear-gradient(90deg,rgba(20,13,9,.95) 0,rgba(20,13,9,.86) 34%,rgba(20,13,9,.45) 50%,rgba(20,13,9,0) 64%),linear-gradient(180deg,rgba(20,13,9,.8) 0,rgba(20,13,9,0) 18%,rgba(20,13,9,0) 82%,rgba(20,13,9,.7) 100%)}
  .hero__in{width:100%;max-width:calc(1312px + 2 * var(--gut));margin:0 auto;padding:120px var(--gut) 64px;background:none}
  .hero__copy{width:min(600px,46vw)}
  .hero__logo img{width:clamp(220px,22vw,320px)}
  .hero__line{font-size:clamp(36px,3.9vw,60px);line-height:.98;margin-top:clamp(18px,2vw,28px)}
  /* narrow enough that the hours and buttons end before the wine rack and the table (4 Nov: they ran into them at 1280 and 2560) */
  .strip{width:min(460px,38vw);padding:clamp(22px,2.2vw,32px) 0 0}
  .strip .cta{margin:22px 0 0;flex-wrap:nowrap}
  .strip .btn{min-width:168px}
  .week{margin:0;max-width:none}
  .today{font-size:18px;margin-bottom:8px}
  .sec{padding:88px var(--gut) 96px}
  .ch.sec{padding:72px var(--gut) 80px}
  .sec__in{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px}
  .sec__in.sec__in--stack{display:block}
  .sec__hd{grid-column:1/5;align-self:start;position:sticky;top:48px}
  .sec__hd h2{font-size:56px;margin-bottom:22px;letter-spacing:-.03em}
  .sec__body{grid-column:6/13}
  /* wine sheet */
  .sheet-top{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:end;margin-bottom:56px}
  .sheet-top>div:first-child{grid-column:1/8}
  .sheet-top>div:last-child{grid-column:8/13}
  .sheet-top h2{margin:0;font-size:72px}
  .sheet-top .lede{margin:0 0 8px;max-width:30ch}
  .sheet-grid .wl li:nth-child(n+4){display:grid}
  .wsheet{padding:24px 28px 8px}
  .wsheet__hd,.wl li,.wgroup h4,.wgroup .wcols{grid-template-columns:1fr 170px 56px 66px}
  .wsheet__hd h3{grid-column:1/3;font-size:36px}
  .wsheet__hd span:nth-of-type(1){grid-column:3}
  .wl li{padding:8px 0;grid-template-areas:"n p g b";align-items:baseline}
  .wp{font-size:16px}
  .wn{font-size:18px}
  /* tastings */
  .tast .sec__hd{position:sticky}
  .tast__pic{margin-top:36px}
  .tast .sec__body{grid-column:7/13}
  .tast .sec__hd{grid-column:1/6}
  .rows{margin-top:0}
  .row{grid-template-columns:104px 1fr auto;gap:0 28px;align-items:baseline;padding:30px 0}
  .row__d{font-size:56px}
  .row h3{font-size:36px}
  .row .pr{margin:0;font-size:18px}
  .row .who{font-size:16px}
  .tast__none{margin-top:0}
  /* about: the tall quiet band */
  .about.sec{padding-top:176px;padding-bottom:184px}
  .about .sec__hd{grid-column:1/6}
  .about .sec__body{grid-column:7/13}
  .about .sec__body>.k{display:none}
  .about .sec__body{margin-top:0}
  .index{margin-top:0}
  .index__n{font-size:36px}
  .room{margin:0;display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:center}
  .room picture{grid-column:1/9}
  .room__t{grid-column:9/13;padding:0}
  .room__t h2{font-size:44px}
  .vp__hd{grid-column:1/-1}
  /* chambre band */
  .ch .sec__hd{grid-column:1/7;position:static}
  .ch .sec__body{grid-column:8/13;align-self:end}
  .ch__no{font-size:clamp(120px,11vw,168px);margin-bottom:0}
  /* visit strip */
  .visit{padding:112px var(--gut) 96px}
  .visit__in{max-width:1312px;margin:0 auto;display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:end}
  .visit__main{grid-column:1/8}
  .visit__hrs{display:block;grid-column:9/13}
  .visit__hrs .hours{margin-top:0}
  .visit__hours{display:none}
  .visit__in{align-items:start}
  .visit__addr{font-size:clamp(56px,6vw,88px)}
  .ftr{padding:48px var(--gut) 52px}
  .ftr__in{grid-template-columns:auto 1fr 1fr 1fr;gap:48px;align-items:start}
  .ftr__in>a:first-child,.ftr__in>div:last-child{grid-column:auto}
  /* inner pages */
  .ph{padding:80px var(--gut) 16px}
  .ph h1{font-size:clamp(72px,8vw,112px)}
  .course{padding:96px var(--gut) 16px}
  .course__in{display:block}
  .course__hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 28px;margin-bottom:28px}
  .course h2{font-size:64px;margin:0}
  .course .cnt{margin:0}
  .course .note{flex-basis:100%;margin:12px 0 0;max-width:52ch}
  .dish{padding:20px 0}
  .dn,.price{font-size:28px}
  .dd{font-size:18px}
  .chips{padding:14px var(--gut);justify-content:flex-start}
  .wine{padding:112px var(--gut) 120px}
  .wine h2{font-size:64px;margin-bottom:12px}
  .wine__in{max-width:1312px;margin:0 auto}
  .vp{padding:64px var(--gut) 0}
  .vp__in{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px}
  .vp__main{grid-column:1/8}
  .vp__side{grid-column:9/13}
  .menu-end{padding:96px var(--gut) 104px}
  .menu-end__in{max-width:1312px;margin:0 auto}
  .menu-end .cta{max-width:560px}
  .wgroup h4 .wgn,.wgroup .wcols .wgn{grid-column:1/3}
  /* visit page: the facade photo at its column width, contact under it */
  .vp__side .visit__pic img{max-width:none}
}
/* 900-1199: the text column reaches half the width, onto the lit brick, so the fade goes further (pixel contrast 3.2 to 4.5+) */
@media (min-width:900px) and (max-width:1199px){
  .hero__photo::after{background:linear-gradient(90deg,rgba(20,13,9,.95) 0,rgba(20,13,9,.86) 40%,rgba(20,13,9,.62) 56%,rgba(20,13,9,0) 74%),linear-gradient(180deg,rgba(20,13,9,.8) 0,rgba(20,13,9,0) 18%,rgba(20,13,9,0) 82%,rgba(20,13,9,.7) 100%)}
}
@media (min-width:1200px){
  .dishes{columns:2;column-gap:72px}
  .dishes .dish{break-inside:avoid}
  .sec{padding:120px var(--gut) 128px}
  .ch.sec{padding:96px var(--gut) 104px}
  /* the three glass sheets side by side, each laid out like the phone: name over producer, two prices */
  .sheet-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:24px;align-items:start}
  .sheet-grid .wsheet{margin:0;padding:22px 20px 6px}
  .sheet-grid .wsheet__hd,.sheet-grid .wl li{grid-template-columns:1fr 54px 60px}
  .sheet-grid .wsheet__hd h3{grid-column:1;font-size:36px}
  .sheet-grid .wsheet__hd span:nth-of-type(1){grid-column:auto}
  .sheet-grid .wl li{grid-template-areas:"n g b" "p g b";align-items:start;padding:10px 0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* ---- engine feel kit (5 Nov 2026, from runs/2026-11-05-quality-bar.md: the "smoother" layer) ----
   On when site/design.py says FEEL = True (default from the engine version that turns it on for all).
   - expo easing tokens for every state change (no plain "ease", no .2 s colour flips)
   - page transitions between our own pages (cross-document View Transitions; browsers without them just navigate)
   - text links draw their underline away and back; buttons fill on the same slow curve
   - the glide on wheel scroll lives in feel.js; this file only hands scroll-behavior over to it
   Patterns may read html.lp-scrolled (page moved past 80 px) and html.lp-down (scrolling down) for a header that behaves. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-io:cubic-bezier(.625,.05,0,1);--d-fast:.25s;--d-base:.55s;--d-slow:1.1s;
 --rv-ease:var(--ease-out)}
html.lp-smooth{scroll-behavior:auto}
@media (prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 ::view-transition-old(root){animation:lp-vt-out .32s var(--ease-io) both}
 ::view-transition-new(root){animation:lp-vt-in .6s var(--ease-out) both}
 .btn{transition:background-color var(--d-base) var(--ease-out),color var(--d-base) var(--ease-out),border-color var(--d-base) var(--ease-out)}
 .tl{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 calc(100% - 10px)/100% 1px no-repeat;
  transition:background-size var(--d-base) var(--ease-io),color var(--d-base) var(--ease-out)}
 .tl:hover{background-size:0 1px;background-position:100% calc(100% - 10px)}
 .fold>summary::after{transition:transform var(--d-base) var(--ease-out)}
}
@keyframes lp-vt-out{to{opacity:0;transform:translate3d(0,-10px,0)}}
@keyframes lp-vt-in{from{opacity:0;transform:translate3d(0,18px,0)}}
