/* ============================================================
   PONTI BISTROT, Famiglia Ponti
   Avorio dell'albergo, verde del logo, nero ferro.
   Titoli in Jost, testi in Hanken Grotesk, prezzi in Newsreader corsivo.
   ============================================================ */

@font-face{font-family:'Jost';src:url('../fonts/jost-normal.woff2') format('woff2');font-weight:300 500;font-style:normal;font-display:swap}
@font-face{font-family:'Hanken Grotesk';src:url('../fonts/hanken-grotesk-normal.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Newsreader';src:url('../fonts/newsreader-italic.woff2') format('woff2');font-weight:200 800;font-style:italic;font-display:swap}

:root{
  color-scheme:light;
  --ivory:#f4f0e8;
  --cream:#ece6d9;
  --ink:#1f2320;
  --ink-soft:#4d5248;
  --green:#789c4a;
  --green-deep:#3c5222;
  --line:rgba(31,35,32,.2);
  --line-light:rgba(244,240,232,.24);
  --error:#9a2b1c;
  --display:'Jost','Century Gothic','Futura',sans-serif;
  --text:'Hanken Grotesk','Helvetica Neue',Arial,sans-serif;
  --price:'Newsreader',Georgia,serif;
  --gutter:clamp(1.25rem,3.9vw,3.5rem);
  --space:clamp(4.5rem,9vw,9rem);
  --ease-out:cubic-bezier(.19,1,.22,1);
  --header-h:72px;
  --bar-h:0px;
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:1.5rem;scrollbar-color:var(--green-deep) var(--ivory);-webkit-text-size-adjust:100%}
body{font-family:var(--text);font-size:1.0625rem;line-height:1.6;color:var(--ink);background:var(--ivory);-webkit-font-smoothing:antialiased;padding-bottom:var(--bar-h)}
img{display:block;max-width:100%;height:auto}
ul{list-style:none}
a{color:inherit}
address{font-style:normal}
::selection{background:var(--green);color:var(--ink)}
:focus-visible{outline:2px solid var(--green-deep);outline-offset:3px}
.on-dark :focus-visible,.footer :focus-visible{outline-color:var(--ivory)}

.wrap{max-width:1440px;margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--ivory);padding:.75rem 1rem;z-index:30}
.skip:focus{left:0}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

.gap{margin-top:.75rem}
.gap-l{margin-top:1.75rem}
.sec.sec--flush{padding-top:0}

/* ---------- Tipografia ---------- */
h1,h2,h3{font-family:var(--display);font-weight:300}
.display{font-size:clamp(2.5rem,5.1vw,4.6rem);line-height:1.04;letter-spacing:-.015em;text-wrap:balance}
.h2{font-size:clamp(2rem,3.5vw,3.1rem);line-height:1.08;letter-spacing:-.012em;text-wrap:balance}
.caps{font-family:var(--display);font-weight:400;font-size:.9375rem;line-height:1.3;letter-spacing:.2em;text-transform:uppercase}
p{max-width:62ch;text-wrap:pretty}
.lede{font-size:clamp(1.0625rem,1.35vw,1.25rem);line-height:1.55;color:var(--ink-soft);max-width:42ch}
.stack > * + *{margin-top:1.5rem}
.price,.times dd{font-family:var(--price);font-style:italic;font-variant-numeric:lining-nums tabular-nums}

.link{display:inline-block;padding-block:.6rem;margin-block:-.6rem;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.32em;text-decoration-color:var(--green);transition:text-decoration-color 200ms ease}
.on-green .link{text-decoration-color:var(--ink)}
@media (hover:hover) and (pointer:fine){
  .link:hover{text-decoration-color:currentColor}
  .on-green .link:hover{text-decoration-color:var(--ivory)}
}

/* ---------- Bottoni ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;
  min-height:50px;padding:.75rem 1.9rem;border:1px solid var(--ink);
  background:var(--ink);color:var(--ivory);
  font:500 1rem/1 var(--text);letter-spacing:.01em;text-decoration:none;
  transition:transform 160ms var(--ease-out),background-color 220ms ease,color 220ms ease;
}
.btn:active{transform:scale(.97)}
.btn--line{background:transparent;color:var(--ink)}
.btn--ivory{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
@media (hover:hover) and (pointer:fine){
  .btn:hover{background:var(--green-deep);border-color:var(--green-deep);color:var(--ivory)}
  .btn--line:hover{background:var(--ink);border-color:var(--ink);color:var(--ivory)}
  .btn--ivory:hover{background:var(--green);border-color:var(--green);color:var(--ink)}
}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem}

/* ---------- Intestazione ---------- */
.header{border-bottom:1px solid var(--line)}
.header-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:var(--header-h)}
.brand{display:inline-flex;align-items:center;min-height:44px;font-family:var(--display);font-weight:400;font-size:1.0625rem;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.nav ul{display:flex;align-items:center;gap:clamp(1.1rem,2.6vw,2.5rem)}
.nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-size:1rem;white-space:nowrap}
.nav a:not(.btn){background:linear-gradient(var(--green),var(--green)) 0 calc(100% - 9px)/0 1px no-repeat;transition:background-size 260ms var(--ease-out)}
.nav a[aria-current="page"]:not(.btn){background-size:100% 1px}
@media (hover:hover) and (pointer:fine){.nav a:not(.btn):hover{background-size:100% 1px}}
.nav .btn{min-height:44px;padding:.6rem 1.4rem}
.lang{display:flex;align-items:center;gap:.15rem;font-size:.9375rem;color:var(--ink-soft)}
.lang a{min-width:32px;justify-content:center;color:var(--ink-soft);font-size:.9375rem}
.lang a[aria-current]{color:var(--ink);font-weight:600}
.lang abbr{text-decoration:none}

/* ---------- Hero home ---------- */
.hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:calc(100dvh - var(--header-h) - 1px)}
.hero-text{display:flex;flex-direction:column;justify-content:center;padding:clamp(2.5rem,5vw,5rem) clamp(1.5rem,4vw,4rem) clamp(2.5rem,5vw,5rem) var(--gutter)}
.hero-text .display{font-size:clamp(2.5rem,4.5vw,4.2rem)}
.hero-text .lede{margin-top:1.5rem}
.hero-text .actions{margin-top:2.25rem}
.hero-media{position:relative;min-height:26rem;background:var(--cream)}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:52% 60%}

/* ---------- Orari ---------- */
.hours{background:var(--green);color:var(--ink)}
.hours-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center}
.hours-head{padding:clamp(1.75rem,3vw,2.75rem) clamp(1.5rem,4vw,4rem) clamp(1.75rem,3vw,2.75rem) var(--gutter)}
.hours-now{margin-top:.5rem;font-size:1.0625rem;min-height:1.6em}
.times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem clamp(1.5rem,4vw,4rem);padding:clamp(1.75rem,3vw,2.75rem) var(--gutter) clamp(1.75rem,3vw,2.75rem) clamp(1.5rem,4vw,4rem)}
.times dt{font-size:.9375rem}
.times dt{margin-bottom:.3rem}
.times dd{font-size:clamp(1.3rem,1.75vw,1.65rem);line-height:1.25}
.times [data-oggi] dt{font-weight:600}
.times [data-oggi] dd{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.28em}

/* ---------- Sezioni ---------- */
.sec{padding-block:var(--space)}
.sec--cream{background:var(--cream)}
.sec--green{background:var(--green)}
.sec-head{margin-bottom:clamp(2.25rem,4vw,3.75rem)}
.sec-head .lede{margin-top:1.25rem}
.fig{overflow:hidden;background:var(--cream)}
.fig img{width:100%;height:100%;object-fit:cover}
.ar-23{aspect-ratio:2/3}.ar-34{aspect-ratio:3/4}.ar-32{aspect-ratio:3/2}.ar-45{aspect-ratio:4/5}

/* Carta in home */
.carta-home{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2rem,6vw,6.5rem);align-items:start}
.carta-home .fig{position:sticky;top:2rem}
.carta-more{margin-top:2.5rem}

/* ---------- Carta (voci di menu) ---------- */
.dishes{display:grid;gap:0}
.dish{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:1.5rem;align-items:baseline;align-content:start;padding-block:1.35rem;border-top:1px solid var(--line)}
.dish h3{font-family:var(--text);font-weight:600;font-size:1.0625rem;line-height:1.35;letter-spacing:.035em}
.alg{margin-left:.5rem;font-weight:400;font-size:.8125rem;letter-spacing:.02em;color:var(--ink-soft);white-space:nowrap}
.alg--star{margin-left:.1rem;font-size:1rem}
.dish--flag{grid-column:1/-1;background:var(--green);border-top:0;padding:1.5rem clamp(1.1rem,2.2vw,2rem) 1.6rem}
.dish--flag{margin-bottom:.25rem}
.dish.dish--flag .alg,.dish.dish--flag p{color:var(--ink)}
.dish .dish-flag{grid-column:1/-1;margin:0 0 .7rem;font-size:.8125rem;color:var(--ink)}
.dish .dish-note{font-family:var(--price);font-style:italic;font-size:1.125rem;margin-top:.6rem}
.dish .price{font-size:1.375rem;line-height:1.2;white-space:nowrap}
.dish p{grid-column:1;margin-top:.35rem;color:var(--ink-soft);font-size:1rem;line-height:1.5;max-width:52ch}

.menu-sec + .menu-sec{margin-top:clamp(3.5rem,6vw,5.5rem)}
.menu-sec > h2{padding-bottom:1.25rem;font-size:1.1875rem;letter-spacing:.18em}
.menu-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(2rem,5vw,5rem)}
.menu-cols,.dishes--closed{border-bottom:1px solid var(--line)}
.menu-note{margin-top:clamp(3rem,5vw,4.5rem);color:var(--ink-soft);font-size:.9375rem;max-width:62rem}
.menu-note p{max-width:none}
.menu-note p + p{margin-top:.6rem}
.menu-note h2{margin:2rem 0 .8rem;font-size:.875rem;color:var(--ink)}
.menu-note .menu-coperto{font-family:var(--display);font-size:1.1875rem;letter-spacing:.14em;color:var(--ink)}

/* ---------- Pagina interna: testata ---------- */
.page-head{padding-block:clamp(3rem,7vw,6.5rem) clamp(2rem,3.5vw,3rem)}
.page-head .lede{margin-top:1.5rem;max-width:48ch}
.strip{height:clamp(14rem,38vw,30rem);overflow:hidden;background:var(--cream)}
.strip img{width:100%;height:100%;object-fit:cover}

/* ---------- Fascia verde con il logo ---------- */
.family{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.family-logo{width:100%;max-width:27rem}
.family p{font-family:var(--display);font-weight:300;font-size:clamp(1.5rem,2.7vw,2.4rem);line-height:1.22;letter-spacing:-.008em;max-width:24em}
.family .more{font-family:var(--text);font-size:1.0625rem;font-weight:400;letter-spacing:0;margin-top:1.75rem}

/* ---------- Tre foto ---------- */
.trio{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,3fr);gap:clamp(1rem,2.2vw,2rem);align-items:end}
.trio .fig:nth-child(2){margin-bottom:clamp(2rem,6vw,6rem)}

/* ---------- Fornitori ---------- */
.makers{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2rem,6vw,6.5rem);align-items:start}
.rows > div{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:1.25rem;padding-block:1.05rem;border-top:1px solid var(--line)}
.rows > div:last-child{border-bottom:1px solid var(--line)}
.rows dt{color:var(--ink-soft)}
.rows dd{font-weight:500}

/* ---------- Testo e immagine ---------- */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,6vw,6.5rem);align-items:center}
.split--rev{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.split--rev .split-text{order:2}
.split-text p + p{margin-top:1.25rem}
.split-text .h2 + p{margin-top:1.5rem}

.duo{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(1rem,2.2vw,2rem);align-items:end}

/* ---------- Gruppo ---------- */
.group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.group > div{padding:2rem clamp(1rem,2.5vw,2.5rem) 0 0}
.group > div + div{padding-left:clamp(1rem,2.5vw,2.5rem);border-left:1px solid var(--line)}
.group h3{font-size:clamp(1.4rem,2vw,1.8rem);line-height:1.15}
.group p{margin-top:.75rem;color:var(--ink-soft);font-size:1rem}
.group .link{margin-top:.4rem}

/* ---------- Dove siamo / Prenota ---------- */
.info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,5vw,5rem)}
.info h2,.info h3{margin-bottom:1rem}
.info p + p{margin-top:.75rem}
.big-tel{font-family:var(--price);font-style:italic;font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.25;font-variant-numeric:lining-nums;text-decoration:none;white-space:nowrap}
.ways{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.ways > div{padding:2rem clamp(1rem,2.5vw,2.5rem) 0 0;display:flex;flex-direction:column;align-items:flex-start}
.ways > div + div{padding-left:clamp(1rem,2.5vw,2.5rem);border-left:1px solid var(--line)}
.ways h2{font-size:clamp(1.4rem,2vw,1.8rem);line-height:1.15}
.ways p{margin:-.5rem 0 1.5rem;color:var(--ink-soft);font-size:1rem}
.ways h2{margin-bottom:1.25rem}
.ways .btn,.ways .big-tel{margin-top:auto}
.ways .big-tel + .big-tel{margin-top:.35rem}
.info--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:56rem}
.times--page{padding:0}
.hours-page{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(2rem,6vw,6.5rem);align-items:start}
.hours-page .hours-now{margin-top:1rem}

.cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2rem}

/* ---------- Prenotazione ---------- */
.booking{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,3fr);gap:clamp(2.5rem,7vw,7rem);align-items:start}
.booking-main > .h2{margin-bottom:2rem}
.booking-aside{border-top:1px solid var(--ink);padding-top:1.75rem;position:sticky;top:2rem}
.booking-aside h2{font-size:clamp(1.4rem,2vw,1.8rem);line-height:1.15;margin-bottom:1.1rem}
.booking-aside p + p{margin-top:.2rem}

.bk fieldset{border:0;border-top:1px solid var(--line);padding:1.6rem 0 2rem;min-width:0}
.bk legend{float:left;width:100%;font-family:var(--display);font-weight:400;font-size:.9375rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:1.1rem}
.bk legend + *{clear:both}
.notice{padding:1rem 1.25rem;background:var(--cream);max-width:none}
.bk .notice{margin-bottom:1.5rem}
.bk fieldset .notice{margin:1.25rem 0 0}
.help{font-size:.9375rem;color:var(--ink-soft);margin-top:.45rem}
.err{font-size:.9375rem;font-weight:500;color:var(--error);margin-top:.5rem}
.err--form{margin:0 0 1.25rem;font-size:1rem}

.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{position:relative;display:block}
.chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.chip span{display:flex;align-items:center;justify-content:center;gap:.6rem;min-width:52px;min-height:48px;padding:.4rem .9rem;border:1px solid var(--ink);font-variant-numeric:tabular-nums;transition:background-color 160ms ease,color 160ms ease}
.chip--wide span{padding-inline:1.25rem}
.chip small{font-size:.875rem;color:var(--ink-soft)}
.chip em{font-style:normal;font-size:.875rem}
.chip input:checked + span{background:var(--ink);color:var(--ivory)}
.chip input:checked + span small{color:inherit}
.chip input:focus-visible + span{outline:2px solid var(--green-deep);outline-offset:3px}
.chip input:disabled{cursor:not-allowed}
.chip input:disabled + span{border-color:var(--line);color:var(--ink-soft)}
.chip input:active:not(:disabled) + span{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.chip input:not(:checked):not(:disabled):hover + span{background:var(--cream)}}

.cal{max-width:26rem}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.cal-title{font-family:var(--display);font-size:1.25rem;text-transform:capitalize}
.cal-nav{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}
.cal-nav:disabled{border-color:var(--line);color:var(--line);cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-wd{font-size:.8125rem;color:var(--ink-soft);text-align:center;padding-bottom:.35rem}
.cal-day{aspect-ratio:1;min-height:40px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color 160ms ease,color 160ms ease}
.cal-day:disabled{border-color:transparent;color:rgba(31,35,32,.38);cursor:default}
.cal-day[aria-pressed="true"]{background:var(--ink);color:var(--ivory)}
.cal-day:active:not(:disabled){transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.cal-day:not(:disabled):not([aria-pressed="true"]):hover,.cal-nav:not(:disabled):hover{background:var(--cream)}}

.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem 1.5rem}
.field--full{grid-column:1/-1}
.field label{display:block;font-weight:500;margin-bottom:.45rem}
.field input,.field textarea{display:block;width:100%;min-height:50px;padding:.7rem .9rem;border:1px solid var(--ink);border-radius:0;background:var(--ivory);color:var(--ink);font:inherit;caret-color:var(--green-deep);-webkit-appearance:none;appearance:none}
.field textarea{min-height:6.5rem;resize:vertical}
.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--green-deep);outline-offset:2px}
.field [aria-invalid="true"]{border-color:var(--error);box-shadow:inset 0 0 0 1px var(--error)}
.trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{border-top:1px solid var(--line);padding:1.6rem 0 2rem}
.check{display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:start;max-width:60ch;cursor:pointer}
.check input{width:22px;height:22px;margin:.15rem 0 0;accent-color:var(--ink)}
.bk-submit{min-width:16rem}
.bk-submit:disabled{opacity:.6;cursor:progress}
.bk-ok{background:var(--green);padding:clamp(1.75rem,4vw,3rem)}
.bk-ok:focus{outline:none}
.bk-ok p{margin-top:1rem}
.bk-ok .link{text-decoration-color:var(--ink)}
[hidden]{display:none !important}

/* ---------- Pagina legale ---------- */
.legal{max-width:48rem;margin-inline:0}
.legal section + section{margin-top:2.75rem}
.legal h2{font-size:clamp(1.4rem,2vw,1.75rem);line-height:1.2;margin-bottom:.9rem}
.legal p + p{margin-top:.9rem}
.footer-legal{display:flex;justify-content:space-between;gap:1.5rem}
.footer-legal a{display:inline-block;padding-block:.6rem;margin-block:-.6rem;color:inherit;text-decoration:underline;text-underline-offset:.3em}

/* ---------- Piè di pagina ---------- */
.footer{background:var(--ink);color:var(--ivory);padding-block:clamp(3.5rem,6vw,5.5rem) 2rem}
.footer-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,3fr) repeat(2,minmax(0,2fr));gap:2.5rem clamp(2rem,5vw,5rem)}
.footer .brand{font-size:1.25rem}
.footer-sub{margin-top:.6rem;color:rgba(244,240,232,.72)}
.footer h2{font-family:var(--text);font-weight:500;font-size:.9375rem;color:rgba(244,240,232,.72);margin-bottom:.9rem}
.footer li + li{margin-top:.45rem}
.footer a{text-decoration:none}
.footer li a,.footer address a{display:inline-block;padding-block:.15rem;background:linear-gradient(var(--green),var(--green)) 0 100%/0 1px no-repeat;transition:background-size 260ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.footer li a:hover,.footer address a:hover{background-size:100% 1px}}
.footer-legal{margin-top:clamp(2.5rem,5vw,4rem);padding-top:1.5rem;border-top:1px solid var(--line-light);font-size:.9375rem;color:rgba(244,240,232,.72)}

/* ---------- Barra mobile ---------- */
.bar{display:none}

/* ---------- Un solo movimento: la foto d'apertura ---------- */
@media (prefers-reduced-motion:no-preference){
  .hero-media img{animation:open 1100ms var(--ease-out) both}
  @keyframes open{from{clip-path:inset(0 0 0 100%);transform:scale(1.04)}to{clip-path:inset(0);transform:none}}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition-duration:.01ms !important}
}

/* ---------- Schermi medi e piccoli ---------- */
@media (max-width:980px){
  .hero,.hours-in{grid-template-columns:1fr}
  .hero{min-height:0}
  .hero-media{order:-1;min-height:0;aspect-ratio:3/2}
  .hero-text{padding:2.5rem var(--gutter) 3rem}
  .hours-head{padding:2rem var(--gutter) 0}
  .times{padding:1.25rem var(--gutter) 2rem}
  .carta-home,.makers,.family,.split,.split--rev,.hours-page,.booking{grid-template-columns:1fr}
  .booking-aside{position:static}
  .times{grid-template-columns:repeat(3,minmax(0,1fr))}
  .split--rev .split-text{order:0}
  .carta-home .fig{position:static;max-width:26rem}
  .family-logo{max-width:20rem}
  .menu-cols{grid-template-columns:1fr}
  .info{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid > :first-child{grid-column:1/-1}
}
@media (max-width:700px){
  :root{--header-h:60px;--bar-h:64px}
  body{font-size:1rem}
  .brand{font-size:.8125rem;letter-spacing:.16em}
  .header-in{gap:.5rem}
  .nav ul{gap:.9rem}
  .nav a{font-size:.9375rem}
  .nav .nav-cta{display:none}
  .times{grid-template-columns:1fr 1fr}
  .duo{grid-template-columns:1fr}
  .duo .ar-23{aspect-ratio:3/2}
  .lang a[aria-current]{display:none}
  .lang span{display:none}
  .trio{grid-template-columns:1fr 1fr}
  .trio .fig:nth-child(2){margin-bottom:0}
  .trio .fig:nth-child(3){grid-column:1/-1;aspect-ratio:3/2}
  .rows > div{grid-template-columns:1fr;gap:.15rem}
  .group,.ways,.info,.info--2{grid-template-columns:1fr}
  .group{border-top:0}
  .group > div,.group > div + div,.ways > div,.ways > div + div{padding:1.75rem 0;border-left:0;border-top:1px solid var(--line)}
  .ways{border-top:0}
  .ways > div:first-child,.group > div:first-child{border-top-color:var(--ink)}
  .ways .btn,.bk-submit{width:100%}
  .fields{grid-template-columns:1fr}
  .chip span{min-width:48px}
  .footer-grid{grid-template-columns:1fr}
  .dish .price{font-size:1.25rem}
  .bar{
    display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:20;
    height:var(--bar-h);background:var(--ink);padding-bottom:env(safe-area-inset-bottom);
  }
  .bar a{display:flex;align-items:center;justify-content:center;color:var(--ivory);text-decoration:none;font-weight:500}
  .bar a + a{background:var(--green);color:var(--ink)}
}

@media (max-width:380px){
  .brand{font-size:.75rem;letter-spacing:.1em}
  .nav ul{gap:.6rem}
  .nav a{font-size:.875rem}
  .lang a{min-width:26px}
}

/* ---------- Stampa (la carta) ---------- */
@media print{
  .header,.footer,.bar,.strip,.cta,.skip{display:none}
  body{background:#fff;font-size:11pt;padding:0}
  .sec,.page-head{padding-block:1rem}
  .dish{break-inside:avoid;padding-block:.6rem}
}
