/* ==========================================================================
   Sagra della Patata — Tema chiaro (palette PROVVISORIA terra & oro)
   TODO: rifare i colori sul manifesto ufficiale della sagra.
   Base ereditata da Vacanze nel Borgo / Festival del Vino
   Sfondo turchese/ciano · logo Sole · accenti vivaci:
   Verde Borgo #9E1218 · Sole #F5BD1A · Corallo #CD231E · Magenta #CD231E
   Rosso vivo #CD231E · Crema #FFF8EE · Rosso profondo #6C1012
   Estende style.css: cambia solo colori e sfondi.
   ========================================================================== */

@import url("style.css?v=59");

/* --- Sagra della Patata: pulsanti coordinati terra/oro (palette PROVVISORIA) --- */
.btn-primary{ background:#9E1218 !important; color:#fff !important; }
.btn-primary:hover{ background:#6C1012 !important; }
.nav .cta{ background:#9E1218 !important; color:#fff !important; }
.nav .cta:hover{ background:#6C1012 !important; color:#fff !important; }
.btn-secondary{ border-color:#9E1218 !important; color:#9E1218 !important; }
.btn-secondary:hover{ background:#9E1218 !important; color:#fff !important; }

/* Citazione + firma dello Chef */
.chef-quote{ margin:12px 0 6px; max-width:560px; font-size:16px; line-height:1.6; font-style:italic; color:#4A3B3F; border-left:3px solid var(--gold,#F5BD1A); padding-left:16px; }
.chef-firma{ display:block; width:186px; height:auto; margin:4px 0 2px; }
.reg-lead .chef-firma{ width:150px; margin-top:8px; }

/* Banner bar / cocktail a bordo pista (Arena) */
.bar-banner{ position:relative; overflow:hidden; display:flex; align-items:center; gap:22px; border-radius:20px; padding:22px 26px; color:#fff;
  background:linear-gradient(135deg,#5a1150 0%, #b8188a 50%, #ff6fae 100%); box-shadow:0 16px 40px rgba(120,20,90,.3); }
.bar-banner .bb-icons{ flex:none; display:flex; gap:8px; align-items:center; }
.bar-banner .bb-icons svg{ width:50px; height:50px; }
.bar-banner .bb-k{ font-family:var(--font-display); letter-spacing:.05em; text-transform:uppercase; color:#F7D98A; font-size:13px; }
.bar-banner .bb-h{ font-family:var(--font-display); font-weight:400; font-size:clamp(21px,2.6vw,30px); line-height:1.03; margin:2px 0 6px; text-transform:uppercase; }
.bar-banner p{ margin:0; font-size:14.5px; line-height:1.5; color:rgba(255,255,255,.94); max-width:660px; }
.bar-banner p b{ color:#fff; }
@media (max-width:600px){ .bar-banner{ flex-direction:column; align-items:flex-start; gap:14px; } .bar-banner .bb-icons svg{ width:42px; height:42px; } }

/* Manifesto della serata (miniatura + lightbox) */
.gig-manifesto{ flex:none; display:inline-flex; align-items:center; gap:8px; text-decoration:none; color:var(--magenta,#CD231E); font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.gig-manifesto img{ width:34px; height:48px; object-fit:cover; border-radius:6px; border:2px solid var(--magenta,#CD231E); box-shadow:0 4px 10px rgba(0,0,0,.18); }
.poster-lightbox{ position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; padding:24px; background:rgba(8,10,30,.82); cursor:zoom-out; }
.poster-lightbox.open{ display:flex; }
.poster-lightbox img{ max-width:min(92vw,520px); max-height:90vh; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.5); }

/* ===== Intestazioni a tema con titolo in rilievo (menu, regionali, bimbi, parcheggi, arena) ===== */
.page-hero.themed{ position:relative; overflow:hidden; padding-bottom:100px; }
.page-hero.themed .glow{ display:none; }
.page-hero.themed .inner{ position:relative; z-index:1; padding-left:40px; padding-right:40px; }
.page-hero.themed .h-page, .page-hero.themed .h-hero{ color:#fff; text-shadow:0 3px 26px rgba(0,0,0,.5); }
.page-hero.themed .h1-accent{ color:#FFC83D; }
.page-hero.themed .kicker{ color:#fff; }
.page-hero.themed .lead{ color:rgba(255,255,255,.92); }
.page-hero.themed .lead b{ color:#fff; }
.page-hero.themed .badge{ background:rgba(255,255,255,.16); color:#fff; border-color:rgba(255,255,255,.55); }
.ph-sky{ position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
@media (max-width:640px){ .page-hero.themed{ padding-bottom:72px; } .page-hero.themed .inner{ padding-left:26px; padding-right:26px; } }

/* Menù del giorno — sera calda in piazza (luci/festoni) */
.th-menu{ background:
  linear-gradient(180deg, rgba(253,248,239,0) 66%, var(--bg) 100%),
  radial-gradient(900px 320px at 82% -20%, #F0A83A 0%, rgba(240,168,58,0) 60%),
  linear-gradient(135deg,#6e2410 0%, #b0431a 46%, #E06A22 100%); }
.th-menu .kicker{ color:#FFE3A6; }

/* Piatti regionali — tre regioni d'Italia (verde→rosso) */
.th-reg{ background:
  linear-gradient(180deg, rgba(253,248,239,0) 66%, var(--bg) 100%),
  linear-gradient(120deg,#4E0B0D 0%, #9E1218 50%, #CD231E 100%); }
.th-reg .kicker{ color:#F5BD1A; }

/* Animazione bimbi — festa giocosa (palloncini/coriandoli) */
.th-bimbi{ background:
  linear-gradient(180deg, rgba(253,248,239,0) 70%, var(--bg) 100%),
  radial-gradient(700px 280px at 14% -10%, rgba(255,122,176,.75) 0%, rgba(255,122,176,0) 60%),
  linear-gradient(135deg,#3f2ea0 0%, #6a3fce 55%, #8a54e0 100%); }
.th-bimbi .kicker{ color:#F7D98A; }

/* Parcheggi — mappa/strade (rossi della sagra) */
.th-park{ background:
  linear-gradient(180deg, rgba(253,248,239,0) 64%, var(--bg) 100%),
  radial-gradient(720px 300px at 84% -22%, rgba(245,189,26,.30) 0%, rgba(245,189,26,0) 62%),
  linear-gradient(135deg,#4E0B0D 0%, #9E1218 52%, #CD231E 100%); }
.th-park .kicker{ color:#F5BD1A; }

/* Arena della musica — notte concerto (magenta/viola, riflettori) */
.th-arena{ background:
  linear-gradient(180deg, rgba(253,248,239,0) 66%, var(--bg) 100%),
  radial-gradient(560px 300px at 28% -12%, rgba(140,60,170,.75) 0%, rgba(140,60,170,0) 60%),
  radial-gradient(560px 300px at 76% -12%, rgba(229,25,154,.6) 0%, rgba(229,25,154,0) 60%),
  linear-gradient(135deg,#26093b 0%, #4a0f52 55%, #7a1857 100%); }
.th-arena .badge{ background:rgba(255,213,74,.2); border-color:rgba(255,213,74,.7); color:#FFE9A6; }

/* Ristorante in piazza — cena in festa (colori caldi e vivaci) */
.th-rist{ background:
  linear-gradient(180deg, rgba(253,248,239,0) 68%, var(--bg) 100%),
  radial-gradient(880px 340px at 82% -25%, rgba(255,201,92,.85) 0%, rgba(255,201,92,0) 60%),
  linear-gradient(135deg,#8a0f3c 0%, #d0342f 40%, #ef6c2e 72%, #f7a52a 100%); }
.th-rist .kicker{ color:#FFE9A6; }
.th-rist .lead b{ color:#FFE9A6; }

/* Prenota un tavolo — verde festa (tavoli prenotati) */
.th-prenota{ background:
  linear-gradient(180deg, rgba(253,248,239,0) 66%, var(--bg) 100%),
  radial-gradient(800px 300px at 82% -18%, #A9761A 0%, rgba(176,71,92,0) 60%),
  linear-gradient(135deg,#4E0B0D 0%, #8A1013 52%, #9E1218 100%); }
.th-prenota .kicker{ color:#F7D98A; }
.th-prenota .badge{ background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.55); color:#fff; }

:root{
  --bg:            #FFF8EE;   /* crema chiara */
  --bg-strip:      #6C1012;   /* terra scura (barra/footer) */
  --ink:           #3A1210;   /* testo (terra scura) */
  --muted:         #6A4A46;
  --muted-2:       #7A5652;
  --muted-3:       #93706A;
  --muted-4:       #B79A93;
  --muted-5:       #DCC5BE;

  /* Accenti del manifesto */
  --gold:          #A9761A;   /* Sole (CTA) */
  --orange:        #FAB200;   /* Sole scuro (hover) */
  --red:           #CD231E;   /* Corallo */
  --green:         #9E1218;   /* Terra (accento principale) */
  --magenta:       #CD231E;   /* Rosa/magenta Arena */
  --blue:          #CD231E;   /* Blu Ristorante */
  --sky:           #F6DFB6;   /* Cielo */
  --ink-on-gold:   #6C1012;

  --surface:       #FFFFFF;
  --surface-2:     #FFFFFF;
  --border:        rgba(42,30,16,.14);
  --border-soft:   rgba(42,30,16,.10);
  --border-strong: rgba(42,30,16,.22);
}

/* ----- Sfondo crema (palette provvisoria) ------------------------------- */
body{
  background:radial-gradient(120% 80% at 50% 0%, #FFFFFF 0%, #FFF8EE 55%, #FCF0E2 100%);
  background-color:var(--bg);
  color:var(--ink);
}
.hero{
  background:radial-gradient(120% 120% at 50% 0%, #B23A52 0%, #97283F 55%, #7C1A30 100%);
  border-color:rgba(255,255,255,.45);
}
.hero .glow{
  opacity:.55;
  background:radial-gradient(circle at 50% 6%, rgba(245,189,26,.45), transparent 46%),
            radial-gradient(circle at 15% 90%, rgba(236,67,38,.18), transparent 46%);
}
/* Testo dell'hero chiaro (sul turchese) */
.hero h1{ color:#FFFFFF; }
.hero h1 .stroke{ -webkit-text-stroke:2px var(--red); }
.hero h1 .orange, .h1-accent{ color:var(--gold); }
.hero .lead, .hero p{ color:#FBE9EE; }
.badge{ color:#3A1210; border-color:var(--gold); background:#FFF3D0; }
.marquee{ background:rgba(42,30,16,.28); border-top-color:rgba(255,255,255,.3); }
.marquee span{ color:#FFFFFF; }

/* Bottone secondario chiaro sull'hero */
.btn-secondary{ border-color:#FFFFFF; color:#FFFFFF; }
.btn-secondary:hover{ background:#FFFFFF; color:var(--ink); }

/* ----- Contenuti su card bianche (leggibili sul turchese) --------------- */
.panel{ background:#FFFFFF; }
.card, .step-card, .kid-card, .stat, .chef, .region-card, .mini-gig, .gig,
.form-card, .picked, .menu-row{ background:#FFFFFF; }
.placeholder, .dish-card .photo{
  background:repeating-linear-gradient(45deg,#F2E3CC 0 16px,#FBF3EE 16px 32px);
}
.tag{ background:#FFFFFF; color:#7A5652; border:1px solid var(--border); }
.chef .avatar{ background:repeating-linear-gradient(45deg,#F2E3CC 0 12px,#FBF3EE 12px 24px); }
.org .logo.comune{ background:repeating-linear-gradient(45deg,#BFE0F2 0 8px,#D2ECF7 8px 16px); }
.org .logo.borgo{  background:repeating-linear-gradient(45deg,#F7D98A 0 8px,#FFEBB0 8px 16px); }

/* Header chiaro, strip teal scuro */
/* Bianco pieno, non semitrasparente: con l'opacità il rosso della pagina filtrava
   sotto la barra e si vedeva il bordo dei loghi. Senza trasparenza il blur è inutile. */
.site-header{ background:#FFFFFF; backdrop-filter:none; -webkit-backdrop-filter:none;
  border-bottom-color:var(--border); }
.nav a{ color:#6C1012; }
.strip{ background:var(--bg-strip); color:#F5BD1A; border-bottom-color:rgba(255,255,255,.1); }

/* Campi form chiari */
.input, .select, textarea.input{ background:#FFFFFF; color:var(--ink); border-color:var(--border-strong); }
.select option{ color:var(--ink); }

/* ----- Tessere come il manifesto: Ristorante blu, Arena magenta, Bimbi verde */
.tile.red{ background:var(--blue); color:#fff; }   .tile.red:hover{ background:#A5121A; }
.tile.gold{ background:var(--magenta); color:#fff; } .tile.gold:hover{ background:#A5121A; }
.tile.green{ background:var(--green); color:#fff; }  .tile.green:hover{ background:#8A1013; }
.tile p{ opacity:.95; }

/* Arena preview in magenta (come il box del poster) */
.arena-panel{
  background:radial-gradient(120% 120% at 80% 0%, #CD231E, #b5107a);
  border-color:rgba(255,255,255,.25); color:#FFFFFF;
}
.arena-panel .link-gold{ color:#F7D98A; }
.mini-gig{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.3); }
.mini-gig .nm{ color:#fff; } .mini-gig .g{ color:#FCE3F1; } .mini-gig .d{ color:#F7D98A; }

/* ----- Accenti come testo (leggibili) ----------------------------------- */
.kicker.gold{ color:#C68A00; }
.kicker.red{ color:#D23A20; }
.kicker.green{ color:#9E1218; }
.link-gold, .nav a.active, .nav a:hover{ color:var(--green); }
.nav a.active{ background:rgba(205,35,30,.14); }
/* Nota raccolta fondi in fondo al footer */
.foot-legal{ margin-top:16px; padding-top:14px; border-top:1px solid rgba(255,255,255,.14); font-size:14px; line-height:1.7; color:rgba(255,255,255,.68); max-width:960px; margin-left:auto; margin-right:auto; text-align:center; }
.foot-legal a{ color:#F5BD1A; text-decoration:underline; }

/* Selettore lingua IT / EN con bandierine */
.lang-switch{ display:inline-flex; align-items:center; gap:3px; margin-left:10px; border:1.5px solid var(--border,#EBD9C0); border-radius:22px; padding:3px; background:#fff; }
.lang-switch a{ display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:800; letter-spacing:.03em; padding:4px 9px; border-radius:18px; text-decoration:none; color:#6C1012; line-height:1; }
.lang-switch a:hover{ color:var(--green,#9E1218); }
.lang-switch a.on{ background:var(--green,#9E1218); color:#fff; }
.lang-switch .flag{ width:20px; height:14px; border-radius:3px; box-shadow:0 0 0 1px rgba(0,0,0,.12); display:block; flex:none; }
.lang-switch a.on .flag{ box-shadow:0 0 0 1px rgba(255,255,255,.6); }
@media (max-width:680px){ .lang-switch{ margin:10px 0 0; align-self:flex-start; } }

/* Menù mobile: sfondo azzurro chiaro (era troppo scuro) */
@media (max-width:680px){
  .site-header .nav{ background:#FFF6E4; border-bottom:1px solid rgba(42,30,16,.12); box-shadow:0 12px 26px rgba(84,48,15,.16); }
  .site-header .nav a{ color:#6C1012; }
  .site-header .nav a.active{ color:var(--green); background:rgba(205,35,30,.12); }
  .site-header .nav .cta{ color:var(--ink-on-gold); }
}
.step-card .n, .mini-gig .d, .gig .d, .stat .big{ color:var(--red); }
.site-footer .brand-blk .nm .yr, .brand .name .yr{ color:var(--red); }

::selection{ background:var(--gold); color:var(--ink-on-gold); }

/* ----- Footer teal scuro ------------------------------------------------- */
.site-footer{ background:#5A0D0F; color:#F3DCC0; border-top-color:rgba(255,255,255,.12); }
.site-footer .brand-blk .nm{ color:#FFFFFF; }
.site-footer .col .hd{ color:#F5BD1A; }
.site-footer .col a:hover{ color:var(--gold); }

/* ==========================================================================
   Mappa tavoli sul tema chiaro
   ========================================================================== */
.map-svg{ background:#FBF3EE; border-color:var(--border); }
.map-palco{ fill:rgba(42,30,16,.05); stroke:rgba(42,30,16,.16); }
.map-palco.is-palco{ fill:rgba(214,158,46,.15); stroke:var(--gold,#D69E2E); stroke-width:2; }
.map-palco-txt{ fill:var(--muted-3); }
#mapPalcoShape.is-palco ~ #mapPalcoTxt{ fill:var(--gold,#B7791F); }
.map-palco-sub{ fill:var(--muted-3); }
.tavolo rect{ stroke:rgba(42,30,16,.18); }
.tavolo:hover rect{ stroke:var(--ink); }
.tavolo.is-occupied rect{ fill:#CDE9D3 !important; stroke:rgba(42,30,16,.16); } /* base = posti liberi (verde chiaro) */
.tavolo.is-occupied rect.seatfill{ fill:#E2451E !important; }                   /* overlay = posti occupati (rosso) */
.tavolo.is-occupied{ cursor:default; }
.tavolo.is-occupied .tnum{ fill:#1F6E2E; }
.seatfill{ pointer-events:none; }
.tavolo.is-selected rect{ fill:#9E1218 !important; stroke:#fff; stroke-width:2.5; }
.tavolo.is-selected .tnum{ fill:#fff; }
.bench{ fill:#CBA26A; opacity:.92; }

/* Cruscotto posti serata (sopra la mappa) */
.posti-dash{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.posti-dash .pd{ background:#FFFFFF; border:1px solid var(--border); border-radius:14px; padding:12px 14px; text-align:center; }
.posti-dash .pd-n{ font-family:var(--font-display); font-size:30px; line-height:1; color:var(--ink); }
.posti-dash .pd-l{ font-size:12px; color:var(--muted-3); font-weight:700; margin-top:4px; text-transform:uppercase; letter-spacing:.03em; line-height:1.3; }
.posti-dash .pd-ingresso{ background:#EAF7ED; border:2px solid #9AD3A6; box-shadow:0 6px 16px rgba(46,139,58,.20); }
@media (max-width:820px){ .posti-dash{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:460px){ .posti-dash{ grid-template-columns:1fr; } }

/* Didascalie / legenda sotto la mappa: un po' più grandi e leggibili */
.map-wrap .map-legend{ font-size:14.5px; gap:12px 20px; }
.map-wrap .map-legend .k{ font-weight:600; }
.map-wrap .map-legend .sw{ width:16px; height:16px; border-radius:4px; }
.map-wrap .note{ font-size:16px; line-height:1.65; color:var(--muted); font-weight:600; }

/* Intestazione Ristorante con foto sfumata come sfondo */
.page-hero.rist-hero{ position:relative; overflow:hidden; padding-bottom:120px; }
.page-hero.rist-hero .glow{ display:none; }
.page-hero.rist-hero::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    linear-gradient(180deg, #CD231E 0%, #CD231E 32%, rgba(205,35,30,.80) 46%, rgba(205,35,30,.38) 66%, rgba(205,35,30,.10) 84%, rgba(205,35,30,0) 100%),
    linear-gradient(0deg, rgba(236,67,38,.42) 0%, rgba(236,67,38,.14) 45%, rgba(236,67,38,0) 78%),
    url("img/ristorante/sala-in-piazza.webp") center 68%/cover no-repeat;
}
.page-hero.rist-hero .inner{ position:relative; z-index:1; }
@media (max-width:640px){ .page-hero.rist-hero{ padding-bottom:90px; } }

/* Social wall (#vacanzenelborgo) */
.sw-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-top:24px; }
.sw-tile{ position:relative; aspect-ratio:1/1; border-radius:12px; overflow:hidden; display:block; border:1px solid var(--border); }
.sw-tile img{ width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.sw-tile:hover img{ transform:scale(1.07); }
.sw-tile::after{ content:""; position:absolute; top:8px; right:8px; width:20px; height:20px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Crect x='2' y='2' width='20' height='20' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='1' fill='white' stroke='none'/%3E%3C/svg%3E") center/contain no-repeat;
  opacity:.92; filter:drop-shadow(0 1px 3px rgba(0,0,0,.5)); }
@media (max-width:820px){ .sw-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:480px){ .sw-grid{ grid-template-columns:repeat(2,1fr); } }

/* Striscia delle 3 regioni con divisione diagonale (pagina Ristorante) */
.reg-strip{ display:flex; height:180px; border-radius:16px; overflow:hidden; box-shadow:0 10px 26px rgba(84,48,15,.14); }
.reg-strip .seg{ flex:1; position:relative; display:flex; align-items:center; justify-content:center; margin-left:-30px;
  clip-path:polygon(30px 0, 100% 0, calc(100% - 30px) 100%, 0 100%); }
.reg-strip .seg:first-child{ margin-left:0; clip-path:polygon(0 0, 100% 0, calc(100% - 30px) 100%, 0 100%); }
.reg-strip .seg:last-child{ clip-path:polygon(30px 0, 100% 0, 100% 100%, 0 100%); }
.reg-strip .seg img{ height:74%; width:auto; max-width:76%; object-fit:contain; filter:drop-shadow(0 6px 12px rgba(0,0,0,.32)); }
.reg-strip .seg .rn{ position:absolute; bottom:10px; color:#fff; font-weight:800; font-size:13px; letter-spacing:.3px; text-shadow:0 1px 4px rgba(0,0,0,.55); }
@media (max-width:640px){ .reg-strip{ height:132px; } .reg-strip .seg img{ height:70%; } }
/* Trapezio bianco sotto la striscia, per il contrasto del testo dei menù */
.reg-menus{ background:#FFFFFF; margin-top:22px; padding:30px 46px 34px;
  clip-path:polygon(32px 0, calc(100% - 32px) 0, 100% 100%, 0 100%);
  box-shadow:0 12px 30px rgba(84,48,15,.12); }
.reg-menus .li span:last-child{ color:var(--ink); }
/* Riquadro centrale con frase a effetto */
.stat.stat-claim{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.stat-claim .claim{ font-family:var(--font-display); font-size:clamp(22px,2.4vw,28px); line-height:1.12; text-transform:uppercase; color:var(--ink); }
.stat-claim .claim .hl-mark{ font-family:inherit; }
.stat-claim .claim-sub{ margin-top:12px; font-size:14px; font-weight:800; color:var(--red); line-height:1.3; }
@media (max-width:640px){ .reg-menus{ padding:24px 30px 26px; clip-path:polygon(18px 0, calc(100% - 18px) 0, 100% 100%, 0 100%); } }

/* Intestazione Arena della Musica con foto sfumata (virata magenta) */

/* Galleria foto Ristorante */
.rist-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.rg-photo{ position:relative; height:220px; border-radius:16px; overflow:hidden;
  background:repeating-linear-gradient(45deg,#F2E3CC 0 16px,#FBF3EE 16px 32px);
  border:1px solid var(--border); }
.rg-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.rg-photo:hover img{ transform:scale(1.05); }
.rg-photo .cap{ position:absolute; left:14px; bottom:14px; z-index:2;
  color:#181818; font-weight:800; font-size:14px; letter-spacing:.2px; padding:3px 13px 5px;
  transform:rotate(-1.4deg);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 26' preserveAspectRatio='none'%3E%3Cpath d='M1.6,7 C18,3.4 39,5.4 60,4.2 C77,3.3 92,6.2 98.6,7.4 C99.6,12 98.4,18 97.2,20.6 C79,22.6 54,20.8 34,21.8 C19,22.6 7.5,20.4 1.8,19.2 C0.6,14.6 0.6,10.6 1.6,7 Z' fill='%23EEFF00'/%3E%3C/svg%3E") no-repeat;
  background-size:100% 100%; }
.rg-photo:hover .cap{ transform:rotate(-1.4deg) scale(1.02); }

/* Evidenziatore su testo multi-riga (frase sotto il titolo Ristorante) */
.hl-mark{
  display:inline; color:#181818 !important; font-weight:700;
  -webkit-box-decoration-break:clone; box-decoration-break:clone;
  padding:2px 10px; line-height:2.05;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 26' preserveAspectRatio='none'%3E%3Cpath d='M1.6,7 C18,3.4 39,5.4 60,4.2 C77,3.3 92,6.2 98.6,7.4 C99.6,12 98.4,18 97.2,20.6 C79,22.6 54,20.8 34,21.8 C19,22.6 7.5,20.4 1.8,19.2 C0.6,14.6 0.6,10.6 1.6,7 Z' fill='%23EEFF00'/%3E%3C/svg%3E") no-repeat;
  background-size:100% 100%;
}
.hl-mark b{ color:#181818; }
.rg-photo.noimg .cap{ display:none; }
.rg-photo.noimg::after{ content:"📷 foto in arrivo"; position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center; color:#7FA0A6; font-weight:700; font-size:14px; }
@media (max-width:820px){ .rist-gallery{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .rist-gallery{ grid-template-columns:1fr; } .rg-photo{ height:200px; } }

/* Link social/sito dello Chef */
.chef-link{ display:inline-flex; align-items:center; gap:8px; text-decoration:none;
  background:#FFF8EE; border:2px solid #EBC98A; color:#9E1218; font-weight:800;
  font-size:14px; padding:8px 14px; border-radius:24px; transition:background .15s ease, border-color .15s ease, color .15s ease; }
.chef-link:hover{ background:#9E1218; border-color:#9E1218; color:#fff; }
.chef-link svg{ flex:none; }

/* Descrizioni dei passi "Come funziona": più grandi e con più contrasto */
.step-inline .d{ font-size:15.5px; color:var(--muted); font-weight:500; line-height:1.5; }
.step-inline .t{ font-size:16.5px; }
.tavolo-off rect{ fill:#D2E3E6; stroke:rgba(42,30,16,.1); }
.tavolo-off .tnum{ fill:#B79A93; }
.map-legend .sw{ border-color:rgba(42,30,16,.15); }
.cauzione-box{ background:#FFF3D0; border-color:var(--gold); }

/* ==========================================================================
   Admin
   ========================================================================== */
.admin-table th{ color:var(--muted-3); }
.admin-table th, .admin-table td{ border-bottom-color:var(--border); }
.admin-table tr:hover td{ background:rgba(42,30,16,.03); }
.state.nuova{ background:#FFF3D0; color:#C68A00; }
.state.confermata{ background:#DFF3E1; color:#257D2C; }
.state.annullata{ background:#FBE0D9; color:#C4331B; }

/* ==========================================================================
   Moduli prenotazione — campi grandi, colorati e accattivanti
   (vale per data, ora, persone e tutti i campi di prenota.php e san-lorenzo.php)
   ========================================================================== */
.field-label{
  font-size:14px; font-weight:800; letter-spacing:.03em; text-transform:uppercase;
  color:#9E1218; margin:18px 0 7px;   /* verde più scuro per contrasto */
}
.input, .select, textarea.input{
  font-size:17px; padding:16px 18px; border-radius:14px;
  border:2px solid #EBC98A; background:#FFF8EE; color:var(--ink);
  box-shadow:0 1px 0 rgba(42,30,16,.04);
  transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.input::placeholder, textarea.input::placeholder{ color:#A98A78; }
.input:hover, .select:hover, textarea.input:hover{ border-color:#F5BD1A; }
.input:focus, .select:focus, textarea.input:focus{
  outline:none; border-color:#9E1218; background:#FFFFFF;
  box-shadow:0 0 0 4px rgba(122,74,33,.18);
}
/* Menù a tendina: niente stile "di sistema", freccia verde scura personalizzata */
.select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none; cursor:pointer; padding-right:48px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238A1E38' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat; background-position:right 18px center;
}
/* Voci della tendina aperta (colore dove il browser lo consente) */
.select option{ background:#FFF8EE; color:var(--ink); font-size:16px; padding:10px; }
.select option:checked{ background:#9E1218; color:#fff; }
/* Consenso privacy / caselle */
.check{ border:2px solid #EBC98A; background:#FFF8EE; }
.check:hover{ border-color:#F5BD1A; }
.check input[type="checkbox"]{ width:20px; height:20px; accent-color:#9E1218; }
/* Pulsante invio più grande */
.form-card .btn-block{ font-size:18px; padding:18px; border-radius:16px; letter-spacing:.02em; }
/* Riquadro "tavoli scelti" coerente */
.picked{ font-size:15px; border-radius:14px; }

/* Due feed Instagram affiancati (home) */
.sw-feeds{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:22px; margin-top:24px; }
.sw-feed{ background:#fff; border:1px solid var(--border); border-radius:16px; padding:12px; }
.sw-feed-h{ display:inline-block; font-weight:800; color:#CD231E; text-decoration:none; margin:0 0 10px; font-size:15px; }
.sw-feed-embed{ min-height:40px; }

/* Bottone "Menù del giorno" in home */
.btn-menu{ background:var(--green); color:#fff; border:2px solid var(--green); }
.btn-menu:hover{ background:#26892d; border-color:#26892d; color:#fff; }

/* ===== Menù della cena (menu.php) ======================================= */
.menu-pdf-banner{ display:flex; align-items:center; gap:18px; margin-top:14px; padding:14px 18px;
  background:#fff; border:1px solid var(--border); border-radius:18px; text-decoration:none;
  box-shadow:0 6px 20px rgba(42,30,16,.08); transition:transform .12s ease, box-shadow .12s ease; }
.menu-pdf-banner:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(42,30,16,.14); }
.mpb-thumb{ flex:none; width:78px; height:110px; object-fit:cover; object-position:top; border-radius:10px;
  border:1px solid var(--border); box-shadow:0 3px 10px rgba(42,30,16,.18); background:#FBF3EE; }
.mpb-body{ flex:1; min-width:0; }
.mpb-k{ font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--red); }
.mpb-h{ font-size:18px; font-weight:800; color:var(--ink); line-height:1.25; margin:3px 0 8px; }
.mpb-go{ display:inline-block; font-size:14px; font-weight:800; color:var(--green); }
@media (max-width:560px){ .menu-pdf-banner{ gap:14px; padding:12px 14px; } .mpb-thumb{ width:64px; height:90px; } .mpb-h{ font-size:16px; } }

.dmenu-avviso{ margin-top:14px; background:#FFF3D0; border:1.5px solid var(--gold); color:#6C1012;
  border-radius:14px; padding:12px 16px; font-size:15px; line-height:1.5; }
.dmenu-tabs{ display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
.dmenu-tab{ position:relative; overflow:hidden; border:2px solid var(--border-strong); background:#fff;
  color:var(--ink); font-weight:800; font-size:15px; padding:12px 20px 12px 24px; border-radius:12px;
  cursor:pointer; letter-spacing:.01em; box-shadow:0 3px 10px rgba(42,30,16,.08);
  transition:transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease; }
.dmenu-tab::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--gold); }
.dmenu-tab:hover{ transform:translateY(-2px); box-shadow:0 8px 18px rgba(42,30,16,.14); border-color:var(--green); }
.dmenu-tab.is-active{ background:var(--green); border-color:var(--green); color:#fff;
  box-shadow:0 10px 22px rgba(205,35,30,.32); transform:translateY(-2px); }
.dmenu-tab.is-active::before{ background:var(--gold); }
.dmenu{ margin-top:16px; padding:24px 26px 26px; }
.dmenu[hidden]{ display:none; }
.dmenu-head{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.dmenu-day{ font-weight:800; font-size:22px; color:var(--ink); letter-spacing:.01em; }
.dmenu-theme{ background:var(--red); color:#fff; font-weight:800; font-size:12px; letter-spacing:.04em;
  padding:4px 12px; border-radius:20px; text-transform:uppercase; }
.dmenu-intro{ color:var(--muted); font-size:15px; line-height:1.5; margin:8px 0 18px; }
.dmenu-cols{ display:grid; grid-template-columns:1fr 1fr; gap:2px 44px; }
@media (max-width:720px){ .dmenu-cols{ grid-template-columns:1fr; gap:0 0; } .dmenu{ padding:20px 18px; } }
.dmenu-sec{ margin-bottom:18px; break-inside:avoid; }
.dmenu-sec-t{ font-size:17px; font-weight:800; color:var(--ink); margin:0 0 8px; padding-bottom:6px;
  border-bottom:2px solid var(--border); display:flex; align-items:baseline; gap:8px; }
.dmenu-sec-t::before{ content:"●"; color:var(--green); font-size:11px; line-height:1; }
.dmenu-sec-note{ font-weight:800; font-size:13px; color:var(--red); margin-left:auto; }
.dmenu-list{ list-style:none; margin:0; padding:0; }
.dm-row{ display:flex; align-items:baseline; gap:6px; padding:5px 0; }
.dm-nm{ font-size:15px; font-weight:600; color:var(--ink); }
.dm-sub{ font-size:12.5px; font-weight:600; color:var(--muted-3); }
.dm-tag{ display:inline-block; margin-left:6px; background:var(--red); color:#fff; font-size:10px;
  font-weight:800; letter-spacing:.03em; padding:2px 8px; border-radius:10px; text-transform:uppercase; vertical-align:middle; }
.dm-dots{ flex:1 1 auto; border-bottom:2px dotted var(--border-strong); transform:translateY(-4px); min-width:12px; }
.dm-pr{ font-weight:800; font-size:15px; color:var(--ink); white-space:nowrap; }
.dmenu-note{ font-size:13px; color:var(--muted-3); font-weight:600; margin:0 0 16px; }
.dmenu-wgrp{ font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#fff;
  background:var(--green); display:inline-block; padding:3px 11px; border-radius:8px; margin:12px 0 6px; }
.dmenu-wgrp.is-star{ background:var(--red); }
.dmenu-baby{ display:flex; align-items:center; gap:16px; margin-top:14px; background:#EAF7EC;
  border:1.5px solid rgba(205,35,30,.3); border-radius:16px; padding:14px 18px; }
.dmenu-baby-pr{ flex:none; width:46px; height:46px; border-radius:50%; background:var(--green); color:#fff;
  font-weight:800; display:inline-flex; align-items:center; justify-content:center; font-size:16px; }
.dmenu-baby-t{ font-weight:800; color:var(--ink); font-size:16px; }
.dmenu-baby-d{ color:var(--muted); font-size:14px; line-height:1.4; }

/* Tondo foto piatto + lightbox */
.dm-row.has-thumb{ align-items:center; }
.dm-row.has-thumb .dm-dots{ transform:none; }
.dm-thumb{ flex:none; width:44px; height:44px; margin-right:2px; border-radius:50%; overflow:hidden;
  border:2px solid #fff; box-shadow:0 2px 8px rgba(42,30,16,.2); padding:0; background:#FBF3EE;
  cursor:pointer; transition:transform .12s ease; }
.dm-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.dm-thumb:hover{ transform:scale(1.06); }
.dm-thumb.noimg{ visibility:hidden; }
.dm-thumb--empty{ visibility:hidden; border:0; box-shadow:none; background:none; cursor:default; }
@media (max-width:720px){ .dm-thumb{ width:40px; height:40px; } }

.dm-lightbox{ position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center;
  padding:22px; background:rgba(8,30,34,.74); }
.dm-lightbox[hidden]{ display:none; }
.dm-lb-card{ position:relative; background:#fff; border-radius:20px; max-width:460px; width:100%;
  overflow:hidden; box-shadow:0 24px 64px rgba(0,0,0,.4); }
.dm-lb-imgwrap{ aspect-ratio:4/3; background:#FBF3EE; }
.dm-lb-imgwrap img{ width:100%; height:100%; object-fit:cover; display:block; }
.dm-lb-body{ padding:18px 22px 22px; }
.dm-lb-body h4{ margin:0 0 8px; font-size:20px; font-weight:800; color:var(--ink); }
.dm-lb-body p{ margin:0; font-size:15px; line-height:1.55; color:var(--muted); }
.dm-lb-close{ position:absolute; top:10px; right:10px; width:38px; height:38px; border-radius:50%; border:0;
  background:rgba(8,30,34,.55); color:#fff; font-size:24px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center; }
.dm-lb-close:hover{ background:rgba(8,30,34,.85); }

/* ==========================================================================
   CATALOGO PRODOTTI — Elenco / Produttori / Scheda / Casette
   Tema bordeaux coerente col manifesto (verde/rosso restano solo alla mappa tavoli)
   ========================================================================== */

/* Hero delle pagine catalogo (bordeaux profondo → vinaccia) */
.th-prodotti{ background:
  linear-gradient(180deg, rgba(253,248,239,0) 66%, var(--bg) 100%),
  radial-gradient(720px 320px at 82% -22%, rgba(169,118,26,.55) 0%, rgba(169,118,26,0) 60%),
  linear-gradient(135deg,#4E0B0D 0%, #8A1013 52%, #9E1218 100%); }
.th-prodotti .kicker{ color:#F7D98A; }

/* Contatori (Prodotti / Produttori) */
.cat-counts{ display:flex; gap:14px; flex-wrap:wrap; margin:0 0 20px; }
.cat-count{ flex:1 1 160px; background:#fff; border:1px solid #EBD9C0; border-radius:16px;
  padding:16px 20px; box-shadow:0 8px 22px rgba(138,30,56,.06); display:flex; flex-direction:column; }
.cat-count .n{ font-family:var(--font-display,'Anton'); font-size:38px; line-height:1; color:#9E1218; }
.cat-count .l{ margin-top:4px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:#A5121A; }

/* Blocco filtri */
.cat-filters{ padding:18px 20px !important; margin-top:4px; }
.cf-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px 14px; }
.cf-field{ display:flex; flex-direction:column; }
.cf-field .field-label{ margin-bottom:6px; }
.cf-wide{ grid-column:span 2; }
.cf-actions{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:14px; }
.cf-actions .btn{ padding:11px 22px; }
.cf-hint{ font-size:12.5px; color:var(--muted); flex:1 1 220px; }
@media (max-width:860px){ .cf-grid{ grid-template-columns:repeat(2,1fr); } .cf-wide{ grid-column:span 2; } }
@media (max-width:520px){ .cf-grid{ grid-template-columns:1fr; } .cf-wide{ grid-column:span 1; } }

/* Tabella prodotti */
.table-scroll{ width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;
  border:1px solid #EBD9C0; border-radius:16px; background:#fff; }
.cat-table{ width:100%; border-collapse:collapse; min-width:660px; font-size:14.5px; }
.cat-table thead th{ position:sticky; top:0; background:#9E1218; color:#fff; text-align:left;
  font-size:12px; text-transform:uppercase; letter-spacing:.05em; padding:12px 14px; white-space:nowrap; }
.cat-table th.ta-c, .cat-table td.ta-c{ text-align:center; }
.cat-table tbody td{ padding:11px 14px; border-bottom:1px solid #F0E4D6; vertical-align:middle; }
.cat-table tbody tr:nth-child(even){ background:#FBF4EE; }
.cat-table tbody tr:hover{ background:#F7E9EE; }
.cat-table td.v-nome a{ color:#3A0A0C; font-weight:700; text-decoration:none; }
.cat-table td.v-nome a:hover{ color:#9E1218; text-decoration:underline; }
.v-prod{ color:#6E4A18; text-decoration:none; }
.v-prod:hover{ color:#9E1218; text-decoration:underline; }
.v-reg{ white-space:nowrap; }
.v-stato{ display:block; font-size:11.5px; color:var(--muted); }
.v-go{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px;
  border-radius:50%; background:#F2E3CC; color:#9E1218; text-decoration:none; font-weight:800; }
.v-go:hover{ background:#9E1218; color:#fff; }

/* Chip casetta + gettoni */
.casetta-chip{ display:inline-block; padding:4px 10px; border-radius:20px; background:#F2E3CC;
  color:#6E4A18; font-weight:800; font-size:12.5px; text-decoration:none; white-space:nowrap; }
.casetta-chip:hover{ background:#9E1218; color:#fff; }
.tok{ display:inline-flex; align-items:center; justify-content:center; min-width:26px; height:26px;
  padding:0 7px; border-radius:14px; background:#9E1218; color:#fff; font-weight:800; font-size:13px; }
.tok-sm{ min-width:22px; height:22px; font-size:12px; }
.tok-lg{ min-width:52px; height:52px; border-radius:16px; font-size:24px; flex:none; }

/* Griglia produttori */
.prod-grid{ grid-template-columns:repeat(3,1fr); }
@media (max-width:920px){ .prod-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .prod-grid{ grid-template-columns:1fr; } }
.prod-card{ padding:18px 20px; display:flex; flex-direction:column; }
.prod-head{ border-bottom:1px solid #F0E4D6; padding-bottom:12px; margin-bottom:12px; }
.prod-name{ font-family:var(--font-display,'Anton'); font-weight:400; font-size:22px; line-height:1.05; margin:0 0 8px; color:#3A0A0C; }
.prod-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.prod-reg{ font-size:12.5px; color:var(--muted); }
.prod-lista{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.prod-lista li{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.prod-lista a{ color:#3A0A0C; text-decoration:none; font-size:14px; line-height:1.3; }
.prod-lista a:hover{ color:#9E1218; text-decoration:underline; }
.prod-all{ margin-top:14px; }

/* Griglia casette */
.casette-grid{ grid-template-columns:repeat(4,1fr); }
@media (max-width:920px){ .casette-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:620px){ .casette-grid{ grid-template-columns:repeat(2,1fr); } }
.casetta-card{ padding:16px 18px; text-decoration:none; color:inherit; display:flex; flex-direction:column;
  transition:transform .15s ease, box-shadow .15s ease; }
a.casetta-card:hover{ transform:translateY(-3px); box-shadow:0 16px 34px rgba(138,30,56,.16); }
.cc-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.cc-num{ font-family:var(--font-display,'Anton'); font-size:30px; line-height:1; color:#9E1218; }
.cc-badge{ font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em;
  background:#F2E3CC; color:#6E4A18; border-radius:20px; padding:4px 9px; }
.cc-soon{ background:#EFE6DC; color:#9a8f80; }
.cc-prod{ font-size:13.5px; line-height:1.4; color:#3a2a2e; }
.cc-muted{ color:var(--muted); font-style:italic; }
.casetta-card.is-empty{ opacity:.8; }

/* Scheda singola prodotto — tema chiaro coordinato */
.scheda-prodotto{ padding:0; overflow:hidden; }

/* Testata decorata (grappoli + scintille, gettoni nel cerchio vinaccia) */
.sv-hero{ position:relative; overflow:hidden; padding:30px 30px 26px;
  background:
    radial-gradient(520px 200px at 88% -30%, rgba(169,118,26,.20) 0%, rgba(169,118,26,0) 60%),
    linear-gradient(135deg,#FFFFFF 0%, #FDF4E7 55%, #F6E7CE 100%);
  border-bottom:3px solid var(--gold,#A9761A); }
.sv-deco{ position:absolute; top:-8px; right:-6px; width:200px; height:auto; pointer-events:none; }
@media (max-width:560px){ .sv-deco{ width:132px; } }

.sv-hero-row{ position:relative; z-index:1; display:flex; align-items:center; gap:22px; }
@media (max-width:560px){ .sv-hero-row{ gap:16px; } }

.tok-circle{ flex:none; width:96px; height:96px; border-radius:50%;
  background:radial-gradient(120% 120% at 30% 25%, #CD231E 0%, #9E1218 55%, #8A1013 100%);
  color:#FBEFE3; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  box-shadow:0 10px 26px rgba(138,30,56,.34), inset 0 0 0 3px rgba(255,255,255,.14), 0 0 0 4px rgba(169,118,26,.35); }
.tok-circle .tc-n{ font-family:var(--font-display,'Anton'); font-weight:400; font-size:40px; line-height:.9; }
.tok-circle .tc-l{ font-size:10.5px; text-transform:uppercase; letter-spacing:.09em; color:#F7D98A; margin-top:3px; }
@media (max-width:560px){ .tok-circle{ width:78px; height:78px; } .tok-circle .tc-n{ font-size:31px; } }

.sv-hero-txt{ min-width:0; }
.sv-prod{ margin:0 0 4px; }
.sv-prod a{ color:#A5121A; font-weight:800; font-size:13px; text-transform:uppercase; letter-spacing:.06em; text-decoration:none; }
.sv-prod a:hover{ color:#9E1218; }
.sv-nome{ font-family:var(--font-display,'Anton'); font-weight:400; font-size:clamp(24px,4.4vw,42px);
  line-height:1.0; margin:0; color:#3A0A0C; text-transform:uppercase; }
.sv-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.sv-chip{ display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:20px; font-size:12.5px; font-weight:700;
  background:#fff; border:1px solid #E7D0AE; color:#6E4A18; text-decoration:none; }
.sv-chip:hover{ background:#9E1218; border-color:#9E1218; color:#fff; }
.sv-chip svg{ width:13px; height:13px; }

.sv-actions{ position:relative; z-index:1; display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
.btn.btn-sm{ padding:9px 16px; font-size:13.5px; }

/* Box informativi con icona dorata */
.sv-boxes{ display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:24px 30px 30px; }
.sv-box{ border:1px solid #EBD9C0; border-radius:14px; padding:14px 16px; background:#fff;
  display:flex; gap:12px; min-width:0; box-shadow:0 6px 16px rgba(138,30,56,.05); }
.sv-fi{ flex:none; width:34px; height:34px; border-radius:50%; background:#F6E8CF; color:#9E1218;
  display:flex; align-items:center; justify-content:center; }
.sv-fi svg{ width:18px; height:18px; }
.sv-box .bd{ min-width:0; display:flex; flex-direction:column; gap:4px; }
.sv-box .k{ font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:#A5121A; }
.sv-box .v{ font-size:15.5px; color:#3A0A0C; line-height:1.45; word-wrap:break-word; }
a.v{ color:#3A0A0C; text-decoration:none; }
a.v:hover{ color:#9E1218; text-decoration:underline; }
.sv-wide{ grid-column:1 / -1; }
@media (max-width:560px){ .sv-boxes{ grid-template-columns:1fr; padding:18px 18px 22px; } .sv-hero{ padding:24px 18px 20px; } }

/* Stampa scheda: solo la scheda, senza barre/footer del sito */
@media print{
  .site-header, .site-footer, .strip, .no-print, .foot-legal{ display:none !important; }
  body{ background:#fff !important; }
  main .section{ padding-top:0 !important; }
  .scheda-prodotto{ box-shadow:none !important; border:1px solid #ccc; max-width:100% !important; }
  .sv-hero{ background:#fff !important; }
  .sv-deco{ display:none; }
  .sv-box{ break-inside:avoid; }
}

/* ==========================================================================
   QUIZ (non usato in questo sito) — stili conservati per riuso
   ========================================================================== */
.som-card{ padding:26px 28px 30px; }
.som-prog{ display:flex; gap:8px; justify-content:center; margin-bottom:24px; }
.som-dot{ width:34px; height:5px; border-radius:3px; background:#EAD9C2; transition:background .2s ease; }
.som-dot.on{ background:#9E1218; }

.som-step{ text-align:center; max-width:660px; margin:0 auto; }
.som-qn{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:#A5121A; }
.som-q{ font-family:var(--font-display,'Anton'); font-weight:400; font-size:clamp(24px,4vw,38px); line-height:1.06; margin:8px 0 24px; color:#3A0A0C; }
.som-opts{ display:grid; grid-template-columns:1fr 1fr; gap:12px; text-align:left; }
@media (max-width:560px){ .som-opts{ grid-template-columns:1fr; } }
.som-opt{ appearance:none; cursor:pointer; text-align:left; padding:16px 18px; border-radius:14px; border:2px solid #EAD9C2;
  background:#fff; font-size:16px; font-weight:700; color:#3A0A0C; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease; }
.som-opt:hover{ border-color:#9E1218; background:#9E1218; color:#fff; transform:translateY(-2px); box-shadow:0 12px 26px rgba(122,74,33,.18); }
.som-back{ margin-top:22px; background:none; border:0; cursor:pointer; color:#A5121A; font-weight:800; font-size:14px; }
.som-back:hover{ color:#9E1218; }

.som-res-head{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.som-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:640px){ .som-grid{ grid-template-columns:1fr; } }
.som-rc{ display:flex; gap:14px; align-items:center; text-decoration:none; border:1px solid #EBD9C0; border-radius:16px;
  padding:16px 18px; background:#fff; box-shadow:0 6px 16px rgba(138,30,56,.05); transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.som-rc:hover{ transform:translateY(-3px); box-shadow:0 16px 34px rgba(138,30,56,.16); border-color:#E0C7A0; }
.som-tok{ flex:none; width:52px; height:52px; border-radius:50%;
  background:radial-gradient(120% 120% at 30% 25%,#CD231E,#9E1218 60%,#8A1013); color:#FBEFE3;
  display:flex; align-items:center; justify-content:center; font-family:var(--font-display,'Anton'); font-size:22px;
  box-shadow:0 6px 16px rgba(138,30,56,.3), 0 0 0 3px rgba(169,118,26,.3); }
.som-rc-b{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.som-rc-prod{ font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:#A5121A; }
.som-rc-nome{ font-size:16px; font-weight:800; color:#3A0A0C; line-height:1.2; }
.som-type{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:#6E4A18; }
.som-type i{ width:10px; height:10px; border-radius:50%; display:inline-block; flex:none; }
.som-rc-where{ font-size:12.5px; color:#3a2a2e; margin-top:3px; }
.som-rc-where b{ color:#9E1218; }

/* ==========================================================================
   Più margine ai lati su tablet/telefono (il contenuto non tocca i bordi)
   ========================================================================== */
@media (max-width:820px){
  :root{ --pad-x: 26px; }
  .fv .fvwrap{ padding-left:26px; padding-right:26px; }
}
@media (max-width:400px){
  :root{ --pad-x: 22px; }
  .fv .fvwrap{ padding-left:22px; padding-right:22px; }
}

/* ==========================================================================
   SAGRA DELLA PATATA — marchio in testata (fallback testuale se manca il PNG)
   ========================================================================== */
.brand-sp{ display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand-sp .sp-word{ flex-direction:column; line-height:1.02; }
.brand-sp .sp-w1{ font-family:var(--font-display,'Anton'); font-size:15px; letter-spacing:.02em; color:#CD231E; text-transform:uppercase; }
.brand-sp .sp-w2{ font-family:var(--font-display,'Anton'); font-size:27px; letter-spacing:.01em; color:#9E1218; text-transform:uppercase; }
.brand-sp .sp-w3{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-3); font-weight:800; margin-top:2px; }

/* Bottone primario: oro del manifesto con testo rosso profondo */
.btn-primary{ background:#F5BD1A !important; color:#6C1012 !important; }
.btn-primary:hover{ background:#FFD34F !important; color:#6C1012 !important; }
.nav .cta{ background:#CD231E !important; color:#fff !important; }
.nav .cta:hover{ background:#9E1218 !important; color:#fff !important; }
.strip{ color:#F5BD1A; font-weight:800; letter-spacing:.04em; }

/* ==========================================================================
   PORTATI DAL SITO DEL FESTIVAL DEL VINO (settembre 2026), ricolorati
   sulla palette del manifesto della sagra: rosso #6C1012 · #CD231E · oro #F5BD1A
   ========================================================================== */

/* ---- Fascia loghi partner (piè di pagina + testa) ---- */
.ft-partners{ background:#fff; border-top:1px solid #EBD9C0; padding:32px 0 34px; }
.ft-partners--top{ border-top:0; border-bottom:1px solid #EBD9C0; padding:20px 0 22px; }
.ft-partners .wrap{ display:flex; flex-wrap:wrap; gap:26px 54px; justify-content:center; align-items:flex-start; }
.ftp-grp{ text-align:center; }
.ftp-lbl{ font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#9E1218; margin-bottom:14px; }
.ftp-logos{ display:flex; gap:26px; align-items:center; justify-content:center; flex-wrap:wrap; }
.ftp-logos img{ height:58px; width:auto; display:block; }
.ft-partners--top .ftp-logos img{ height:46px; }
.ft-partners--top .ftp-lbl{ margin-bottom:10px; }
@media(max-width:600px){ .ft-partners .wrap{ gap:22px 30px; } .ftp-logos img{ height:44px; } .ft-partners--top .ftp-logos img{ height:38px; } }

/* ---- Loghi istituzionali accanto al marchio nella barra menu ---- */
.brand-inst{ display:inline-flex; align-items:center; gap:12px; margin-left:16px; padding-left:16px; border-left:1px solid rgba(42,30,16,.15); }
.brand-inst img{ height:38px; width:auto; display:block; }
.brand-inst .bi-sep{ width:1px; height:26px; background:rgba(42,30,16,.15); display:block; }
.brand-inst .bi-pat img{ height:30px; opacity:.92; }
.brand-inst .bi-pat:hover img{ opacity:1; }
@media(max-width:1240px){ .brand-inst .bi-pat, .brand-inst .bi-sep{ display:none; } }
@media(max-width:980px){ .brand-inst{ display:none; } }

/* ---- Rullo scorrevole delle associazioni cittadine ---- */
.assoc-ticker{ background:#6C1012; color:#F3DCC0; overflow:hidden; white-space:nowrap; border-top:1px solid rgba(255,255,255,.08); }
.assoc-track{ display:inline-flex; will-change:transform; animation:assocScroll 55s linear infinite; }
.assoc-seq{ display:inline-block; padding:8px 0; font-size:13px; font-weight:500; letter-spacing:.01em; padding-right:40px; }
.assoc-seq b{ color:#F5BD1A; font-weight:800; }
.assoc-ticker:hover .assoc-track{ animation-play-state:paused; }
@keyframes assocScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media(max-width:600px){ .assoc-seq{ font-size:12px; padding-right:28px; } .assoc-track{ animation-duration:42s; } }
@media (prefers-reduced-motion: reduce){ .assoc-track{ animation:none; } .assoc-ticker{ white-space:normal; } .assoc-seq[aria-hidden]{ display:none; } }

/* ---- Menù con gruppi a tendina ---- */
.nav-grp{ position:relative; padding-bottom:2px; }
.nav-grp > .nav-top{ display:inline-flex; align-items:center; gap:5px; cursor:pointer; padding:8px 11px; border-radius:8px;
  color:#6C1012; font-weight:800; font-size:15px; text-transform:uppercase; letter-spacing:.045em; white-space:nowrap; line-height:1; user-select:none; }
.nav-grp:hover > .nav-top, .nav-grp:focus-within > .nav-top, .nav-grp.is-active > .nav-top{ color:#CD231E; }
.nav-caret{ font-style:normal; font-size:.72em; opacity:.8; }
.nav-sub{ position:absolute; top:100%; left:0; min-width:212px; background:#fff; border:1px solid var(--border);
  border-radius:12px; box-shadow:0 18px 38px rgba(108,16,18,.16); padding:10px 8px 8px; display:none; flex-direction:column; gap:2px; z-index:70; }
.nav-sub::before{ content:""; position:absolute; left:0; right:0; top:-14px; height:14px; }
.nav-grp:hover .nav-sub, .nav-grp:focus-within .nav-sub{ display:flex; }
.nav-sub a{ padding:9px 12px; border-radius:8px; white-space:nowrap; color:#6C1012; font-weight:700; font-size:15px; }
.nav-sub a:hover{ background:rgba(205,35,30,.12); color:#CD231E; }
.nav > a, .nav-top, .nav .cta{ text-transform:uppercase; font-weight:800; font-size:15px; letter-spacing:.045em; }
@media (max-width:680px){
  .nav-grp{ width:100%; }
  .nav-grp > .nav-top{ color:#F7D98A; opacity:.9; font-size:12px; font-weight:800; letter-spacing:.09em; cursor:default; padding:12px 12px 4px; }
  .nav-caret{ display:none; }
  .nav-sub{ position:static; display:flex; margin:0; min-width:0; background:transparent; border:0; box-shadow:none; padding:0 0 6px 8px; }
  .nav-sub a{ color:#F3DCC0; padding:10px 12px; font-size:16px; }
  .nav-sub a:hover{ background:rgba(255,255,255,.10); color:#fff; }
  .nav > a, .nav .cta{ font-size:16px; }
}

/* ---- Hero di pagina con foto vera sfumata nel rosso (.has-foto + --hero-img) ---- */
.page-hero.themed.has-foto{ position:relative; overflow:hidden; }
.page-hero.themed.has-foto .hero-bg{ position:absolute; inset:0; z-index:0; pointer-events:none;
  background-position:center var(--hero-y,42%); background-size:cover; background-repeat:no-repeat; }
.page-hero.themed.has-foto .hero-bg::after{ content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(255,248,238,0) 74%, var(--bg) 100%),
    linear-gradient(102deg, rgba(60,8,10,.82) 0%, rgba(108,16,18,.50) 38%, rgba(158,18,24,.16) 74%, rgba(158,18,24,0) 100%); }
.page-hero.themed.has-foto .glow,
.page-hero.themed.has-foto .ph-sky{ display:none; }
.page-hero.themed.has-foto .inner{ position:relative; z-index:1; }

/* ---- Riquadro mappa (Google My Maps o immagine) ---- */
.map-embed{ border-radius:18px !important; overflow:hidden !important; border:1px solid #EBD9C0; box-shadow:0 16px 40px rgba(108,16,18,.10); background:#fff; }
.map-embed .map-embed-hd{ background:#9E1218; color:#F3DCC0; font-weight:800; letter-spacing:.05em; text-transform:uppercase; font-size:13px; padding:12px 18px; }
.map-embed .map-embed-frame{ position:relative; height:500px; overflow:hidden; }
.map-embed .map-embed-frame iframe{ position:absolute !important; top:-62px !important; left:0 !important; width:100% !important; height:562px !important; border:0 !important; display:block !important; }
.map-embed .map-embed-frame img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:640px){ .map-embed .map-embed-frame{ height:440px; } .map-embed .map-embed-frame iframe{ height:502px !important; } }

/* ---- Scelta del giorno a bottoni (prenotazione) ---- */
.day-picker{ display:flex; gap:10px; flex-wrap:wrap; }
.day-btn{ flex:1 1 150px; min-width:140px; text-align:center; cursor:pointer; background:#fff;
  border:2px solid #EBD9C0; border-radius:14px; padding:12px 14px; transition:.16s; }
.day-btn:hover{ border-color:#CD231E; }
.day-btn.is-on{ border-color:#9E1218; background:#FDF1D8; box-shadow:0 8px 20px rgba(108,16,18,.12); }
.day-btn .dd{ font-family:var(--font-display,'Anton'); font-size:20px; color:#9E1218; line-height:1.1; }
.day-btn .tt{ font-size:13px; font-weight:700; color:var(--muted-2); margin-top:3px; text-transform:uppercase; letter-spacing:.05em; }
.day-btn.is-on .tt{ color:#CD231E; }
@media(max-width:520px){ .day-btn{ flex:1 1 100%; } }

/* ---- Magliette dei volontari (pagina ristorante) ---- */
.rist-slogan{ display:grid; grid-template-columns:1fr 1.25fr 1fr; gap:18px; align-items:center; margin-top:22px; }
.rist-slogan figure{ margin:0; border-radius:16px; overflow:hidden; border:1px solid #EBD9C0; background:#fff;
  box-shadow:0 12px 30px rgba(108,16,18,.08); }
.rist-slogan figure img{ width:100%; height:240px; object-fit:cover; display:block; }
.rist-slogan .txt{ text-align:center; padding:4px 10px; }
.rist-slogan .txt p{ margin:8px 0 0; font-size:15.5px; line-height:1.7; color:#4A3B3F; }
@media (max-width:820px){ .rist-slogan{ grid-template-columns:1fr 1fr; }
  .rist-slogan .txt{ grid-column:1 / -1; order:-1; } }
@media (max-width:520px){ .rist-slogan{ grid-template-columns:1fr; } .rist-slogan figure img{ height:220px; } }

/* ---- Tessere dei piatti in rotazione (foto) ---- */
.food-card{ border:1px solid #EBD9C0; box-shadow:0 10px 26px rgba(108,16,18,.08); }
.food-card .ph{ background:#FDF1D8; }
.food-card .ph.noimg{ background:linear-gradient(135deg,#F2E3CC,#FBF3EE); }
.food-card .ph.noimg::after{ content:""; }
.food-card .bd .nm{ color:#3A1210; }
.food-card .bd p{ color:#6A4A46; }
.food-card .badge-poss{ position:absolute; top:10px; left:10px; z-index:2; background:#FFF8EE; color:#9E1218;
  border:1px dashed #CD231E; font-weight:800; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase;
  padding:3px 9px; border-radius:20px; }

/* Il piatto della storia (crema Parmentier): tessera in evidenza */
.food-card.is-storia{ border:2px solid #F5BD1A; box-shadow:0 16px 36px rgba(108,16,18,.16); }
.food-card.is-storia .ph{ height:auto; aspect-ratio:3/2; }
.food-card .badge-storia{ position:absolute; top:10px; right:10px; z-index:2; background:#9E1218; color:#FFF8EE;
  font-weight:800; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase;
  padding:4px 10px; border-radius:20px; box-shadow:0 4px 12px rgba(108,16,18,.28); }
.food-card .fc-link{ display:inline-block; margin-top:9px; font-size:12.5px; font-weight:800; color:#9E1218;
  text-transform:uppercase; letter-spacing:.04em; text-decoration:none; border-bottom:2px solid #F5BD1A; }
.food-card .fc-link:hover{ color:#6C1012; }

/* ---- Fascia "il piatto della storia": crema Parmentier ---- */
.parm-band{ display:grid; grid-template-columns:minmax(0,360px) minmax(0,1fr); gap:0;
  background:#FFF8EE; border:1px solid #EBD9C0; border-radius:20px; overflow:hidden;
  box-shadow:0 16px 40px rgba(108,16,18,.10); }
.parm-band .ph{ margin:0; position:relative; min-height:270px; background:#F3E6D0; }
.parm-band .ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.parm-band .tx{ padding:28px 32px 26px; }
.parm-band .k{ display:inline-block; font-size:11px; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:#9E1218; background:#FDF1D8; border:1px solid #EBD9C0;
  border-radius:20px; padding:4px 12px; }
.parm-band h2{ font-family:var(--font-display,'Anton'); font-weight:400; text-transform:uppercase;
  font-size:clamp(24px,2.8vw,34px); line-height:1.03; color:#9E1218; margin:12px 0 0; }
.parm-band .claim{ font-size:17.5px; line-height:1.45; color:#3A1210; margin:12px 0 14px;
  padding-left:15px; border-left:4px solid #F5BD1A; }
.parm-band .claim b{ color:#9E1218; }
.parm-band p{ margin:0 0 10px; font-size:14.8px; line-height:1.65; color:#4A3B3F; }
.parm-band .go{ display:inline-block; margin-top:6px; font-size:13px; font-weight:800; color:#9E1218;
  text-transform:uppercase; letter-spacing:.04em; text-decoration:none; border-bottom:2px solid #F5BD1A; }
.parm-band .go:hover{ color:#6C1012; }
.parm-band.rev{ grid-template-columns:minmax(0,1fr) minmax(0,360px); }
.parm-band.rev .ph{ order:2; }
.parm-band.rev .tx{ order:1; }
@media(max-width:820px){ .parm-band, .parm-band.rev{ grid-template-columns:1fr; }
  .parm-band .ph{ min-height:0; aspect-ratio:3/2; } .parm-band .tx{ padding:24px 22px 22px; }
  .parm-band.rev .ph{ order:1; } .parm-band.rev .tx{ order:2; } }

/* ---- Blocco "Tradizione e gusto sotto il grande tendone" ---- */
.rt-trad{ display:grid; grid-template-columns:220px 1fr; gap:30px; align-items:start;
  background:#fff; border:1px solid #EBD9C0; border-radius:20px; padding:30px 34px;
  box-shadow:0 16px 40px rgba(108,16,18,.08); }
.rt-trad .rt-num{ background:#6C1012; border-radius:16px; padding:24px 18px; text-align:center; }
.rt-trad .rt-num .n{ font-family:var(--font-display,'Anton'); font-size:56px; line-height:.95; color:#F5BD1A; }
.rt-trad .rt-num .n span{ font-size:32px; vertical-align:super; }
.rt-trad .rt-num .l{ color:#F3DCC0; font-size:13px; line-height:1.4; margin-top:8px;
  letter-spacing:.04em; text-transform:uppercase; font-weight:700; }
.rt-trad .rt-tx p{ font-size:15.5px; line-height:1.72; color:#4A3B3F; margin:0 0 14px; }
@media (max-width:760px){ .rt-trad{ grid-template-columns:1fr; padding:24px 22px; }
  .rt-trad .rt-num{ display:flex; align-items:center; justify-content:center; gap:14px; padding:16px; }
  .rt-trad .rt-num .n{ font-size:42px; } .rt-trad .rt-num .l{ margin-top:0; text-align:left; } }

/* ---- Respiro in fondo alle pagine ----------------------------------------
   Senza questo il contenuto finisce incollato alla fascia dei patrocini.
   La home (main.fv) è fatta di fasce colorate che si toccano di proposito,
   quindi lì resta a zero. */
main{ padding-bottom:76px; }
main.fv{ padding-bottom:0; }
@media (max-width:640px){ main{ padding-bottom:54px; } }
/* L'ultima riga di pulsanti non deve mai sembrare incollata alla fascia patrocini. */
main .center:last-child, main .mk-cta:last-child, main .cf-actions:last-child{ margin-bottom:10px; }

/* Con la voce «La storia» in più la barra è più affollata: sotto i 1120px il
   selettore di lingua tiene solo le bandierine (l'etichetta resta per i lettori
   di schermo tramite aria-label), così tutto resta su una riga sola. */
@media (max-width:1120px){
  .lang-switch a span{ position:absolute; width:1px; height:1px; overflow:hidden;
    clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
  .lang-switch a{ padding-left:8px; padding-right:8px; }
}

/* ---- Banner del consenso ai cookie ---------------------------------------
   In basso, sopra tutto. I due pulsanti hanno lo stesso peso visivo: il
   Garante chiede che rifiutare sia facile quanto accettare. */
.vb-cookie{ position:fixed; left:0; right:0; bottom:0; z-index:1200;
  display:flex; gap:22px; align-items:center; flex-wrap:wrap;
  background:#FFF8EE; border-top:3px solid #9E1218;
  box-shadow:0 -10px 40px rgba(58,10,16,.22);
  padding:18px clamp(16px,4vw,44px); }
.vb-cookie[hidden]{ display:none; }
.vb-cookie-bd{ flex:1 1 420px; min-width:0; }
.vb-cookie-t{ font-family:var(--font-display,'Anton'); font-weight:400; text-transform:uppercase;
  font-size:19px; line-height:1.1; color:#9E1218; margin-bottom:6px; }
.vb-cookie p{ margin:0; font-size:14px; line-height:1.6; color:#4A3B3F; max-width:820px; }
.vb-cookie p b{ color:#3A1210; }
.vb-cookie-pp{ margin-top:7px !important; font-size:13px !important; }
.vb-cookie-pp a{ color:#9E1218; font-weight:700; }
.vb-cookie-btns{ flex:none; display:flex; gap:10px; flex-wrap:wrap; }
.vb-cookie-btns .btn{ min-width:140px; padding:11px 22px; }
@media (max-width:760px){
  .vb-cookie{ gap:14px; padding:16px 18px; max-height:80vh; overflow-y:auto; }
  .vb-cookie-btns{ width:100%; }
  .vb-cookie-btns .btn{ flex:1 1 0; min-width:0; }
}

/* Indirizzi e-mail lunghi: vanno a capo invece di toccare il bordo */
.link-gold, a[href^="mailto:"]{ overflow-wrap:anywhere; }
