/* ==========================================================================
   Vacanze nel Borgo — Tema "Manifesto" (coerente col poster ufficiale)
   Sfondo turchese/ciano · logo Sole · accenti vivaci:
   Verde Borgo #8A1E38 · Sole #FFC828 · Corallo #EC4326 · Magenta #E5199A
   Blu #1E8FD4 · Cielo #E7C0CB · Verde scuro #16310F
   Estende style.css: cambia solo colori e sfondi.
   ========================================================================== */

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

/* --- Festival del Vino: pulsanti coordinati bordeaux (non oro/verde) --- */
.btn-primary{ background:#8A1E38 !important; color:#fff !important; }
.btn-primary:hover{ background:#5E1226 !important; }
.nav .cta{ background:#8A1E38 !important; color:#fff !important; }
.nav .cta:hover{ background:#5E1226 !important; color:#fff !important; }
.btn-secondary{ border-color:#8A1E38 !important; color:#8A1E38 !important; }
.btn-secondary:hover{ background:#8A1E38 !important; color:#fff !important; }

/* Menù San Lorenzo con foto */
.sl-piatto{ margin-top:20px; }
.sl-foto{ display:grid; grid-template-columns:1fr; gap:8px; }
.sl-foto.sl-foto-2{ grid-template-columns:1fr 1fr; }
.sl-foto img{ width:100%; height:190px; object-fit:cover; display:block; border-radius:12px; box-shadow:0 6px 16px rgba(12,90,104,.16); }
.sl-nome{ display:flex; align-items:center; gap:10px; margin-top:11px; font-size:17px; font-weight:800; line-height:1.25; color:#16310F; }
.sl-nome .sl-n{ flex:none; width:28px; height:28px; border-radius:50%; background:#8A1E38; color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:15px; font-weight:800; }
@media (max-width:520px){ .sl-foto img{ height:140px; } .sl-nome{ font-size:15.5px; } }

/* Richiamo "notte delle stelle" — Menù San Lorenzo (home + ristorante) */
.sl-cta{ position:relative; display:block; overflow:hidden; border-radius:26px; padding:40px 44px; text-decoration:none; color:#fff;
  background:radial-gradient(1100px 340px at 82% -30%, #2c4a86 0%, rgba(124,42,62,0) 60%), linear-gradient(135deg,#2A0810 0%, #112a5e 55%, #1a2f5c 100%);
  box-shadow:0 22px 55px rgba(8,20,50,.38); border:1px solid rgba(255,255,255,.08); transition:transform .18s ease, box-shadow .18s ease; }
.sl-cta:hover{ transform:translateY(-3px); box-shadow:0 30px 66px rgba(8,20,50,.46); }
.sl-cta-sky{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.sl-cta-body{ position:relative; max-width:660px; }
.sl-cta-kick{ font-family:var(--font-display,'Anton'); letter-spacing:.06em; text-transform:uppercase; font-size:14px; color:#FFD54A; }
.sl-cta-title{ font-family:var(--font-display,'Anton'); font-weight:400; font-size:clamp(30px,4.8vw,54px); line-height:.98; margin:10px 0 12px; text-shadow:0 2px 24px rgba(0,0,0,.45); }
.sl-cta-sub{ font-size:15.5px; line-height:1.55; color:#dce6ff; margin:0 0 22px; max-width:580px; }
.sl-cta-btn{ display:inline-flex; align-items:center; gap:8px; background:#FFC828; color:#16310F; font-weight:800; padding:13px 24px; border-radius:32px; text-transform:uppercase; letter-spacing:.04em; font-size:14px; box-shadow:0 8px 22px rgba(255,200,40,.32); }
.sl-cta:hover .sl-cta-btn{ background:#FFD86A; }
.sl-cta-sub b{ color:#FFDD6B; }
@media (max-width:560px){ .sl-cta{ padding:30px 24px; border-radius:20px; } .sl-cta-sub{ font-size:14.5px; } }

/* Citazione + firma dello Chef */
.chef-quote{ margin:12px 0 6px; max-width:560px; font-size:16px; line-height:1.6; font-style:italic; color:#33474b; border-left:3px solid var(--gold,#FFC828); padding-left:16px; }
.chef-firma{ display:block; width:186px; height:auto; margin:4px 0 2px; }
.reg-lead .chef-firma{ width:150px; margin-top:8px; }
.sl-firma{ margin-top:16px; display:flex; align-items:center; gap:12px; }
.sl-firma img{ width:158px; height:auto; }
.sl-firma span{ font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted-3); font-weight:800; }

/* Card San Lorenzo (Menù del giorno) con cielo notturno stellato */
.hl-card.sl-night{ position:relative; overflow:hidden;
  background:radial-gradient(700px 240px at 82% -25%, #2c4a86 0, rgba(124,42,62,0) 60%), linear-gradient(140deg,#2A0810 0%, #122a5e 60%, #1a2f5c 100%); }
.hl-card.sl-night .sl-card-sky{ position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
.hl-card.sl-night > :not(.sl-card-sky){ position:relative; z-index:1; }

/* Popup "prenotazioni in arrivo" — Menù San Lorenzo */
.sl-modal{ position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(8,16,40,.72); }
.sl-modal.is-hidden{ display:none; }
.sl-modal-box{ position:relative; max-width:440px; width:100%; text-align:center; border-radius:22px; padding:34px 30px; color:#fff;
  background:radial-gradient(600px 240px at 80% -30%, #2c4a86 0, rgba(124,42,62,0) 60%), linear-gradient(135deg,#2A0810 0%, #122a5e 60%, #1a2f5c 100%);
  box-shadow:0 30px 70px rgba(8,20,50,.5); border:1px solid rgba(255,255,255,.1); }
.sl-modal-box .sl-modal-star{ font-size:40px; color:#FFD54A; line-height:1; }
.sl-modal-box h3{ font-family:var(--font-display); font-weight:400; font-size:28px; margin:10px 0 8px; }
.sl-modal-box p{ font-size:15.5px; line-height:1.55; color:#dce6ff; margin:0 0 22px; }
.sl-modal-box h3, .sl-modal-box p, .sl-modal-box b{ color:#fff; }
.sl-modal-box p{ color:#dce6ff; }
.sl-modal-box b{ color:#FFD54A; }
.sl-modal-box .btn{ min-width:150px; }

/* 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:#FFE08A; 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,#E5199A); 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,#E5199A); 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); }

/* Intestazione pagina San Lorenzo — cielo stellato con sfumatura (virata) */
.page-hero.sl-hero{ position:relative; overflow:hidden; padding-bottom:100px;
  background:
    linear-gradient(180deg, rgba(251,246,241,0) 66%, var(--bg) 100%),
    radial-gradient(1100px 360px at 82% -20%, #2c4a86 0%, rgba(124,42,62,0) 60%),
    linear-gradient(135deg,#2A0810 0%, #112a5e 55%, #1a2f5c 100%); }
.page-hero.sl-hero .glow{ display:none; }
.page-hero.sl-hero .inner{ position:relative; z-index:1; padding-left:40px; padding-right:40px; }
@media (max-width:640px){ .page-hero.sl-hero .inner{ padding-left:26px; padding-right:26px; } }
.sl-hero-sky{ position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
.page-hero.sl-hero .kicker{ color:#FFD54A; }
.page-hero.sl-hero .h-page{ color:#fff; text-shadow:0 3px 26px rgba(0,0,0,.5); }
.page-hero.sl-hero .lead{ color:#e6ecff; }
.page-hero.sl-hero .lead b{ color:#FFDD6B; }
@media (max-width:640px){ .page-hero.sl-hero{ padding-bottom:72px; } }

/* ===== 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(251,246,241,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(251,246,241,0) 66%, var(--bg) 100%),
  linear-gradient(120deg,#14622a 0%, #2f6a3f 38%, #7a5a3f 60%, #9c2f1c 100%); }
.th-reg .kicker{ color:#EAF7D6; }

/* Animazione bimbi — festa giocosa (palloncini/coriandoli) */
.th-bimbi{ background:
  linear-gradient(180deg, rgba(251,246,241,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:#FFE08A; }

/* Parcheggi — mappa/strade (turchese) */
.th-park{ background:
  linear-gradient(180deg, rgba(251,246,241,0) 64%, var(--bg) 100%),
  linear-gradient(135deg,#083f49 0%, #5A1223 55%, #12808f 100%); }
.th-park .kicker{ color:#CFEFF4; }

/* Arena della musica — notte concerto (magenta/viola, riflettori) */
.th-arena{ background:
  linear-gradient(180deg, rgba(251,246,241,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(251,246,241,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(251,246,241,0) 66%, var(--bg) 100%),
  radial-gradient(800px 300px at 82% -18%, #B0475C 0%, rgba(176,71,92,0) 60%),
  linear-gradient(135deg,#3F0E1A 0%, #6E1428 52%, #8A1E38 100%); }
.th-prenota .kicker{ color:#F3D9E0; }
.th-prenota .badge{ background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.55); color:#fff; }

:root{
  --bg:            #FBF6F1;   /* crema chiara */
  --bg-strip:      #5A1223;   /* teal scuro (barra/footer) */
  --ink:           #3A0E18;   /* testo (teal scuro) */
  --muted:         #6E3A45;
  --muted-2:       #7C4651;
  --muted-3:       #9A6771;
  --muted-4:       #B58C94;
  --muted-5:       #D3B4BA;

  /* Accenti del manifesto */
  --gold:          #A9761A;   /* Sole (CTA) */
  --orange:        #FAB200;   /* Sole scuro (hover) */
  --red:           #EC4326;   /* Corallo */
  --green:         #8A1E38;   /* Verde Borgo */
  --magenta:       #E5199A;   /* Rosa/magenta Arena */
  --blue:          #1E8FD4;   /* Blu Ristorante */
  --sky:           #E7C0CB;   /* Cielo */
  --ink-on-gold:   #16310F;

  --surface:       #FFFFFF;
  --surface-2:     #FFFFFF;
  --border:        rgba(58,14,24,.14);
  --border-soft:   rgba(58,14,24,.10);
  --border-strong: rgba(58,14,24,.22);
}

/* ----- Sfondo turchese come il manifesto -------------------------------- */
body{
  background:radial-gradient(120% 80% at 50% 0%, #FFFFFF 0%, #FBF6F1 55%, #F5E9E2 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(255,200,40,.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:#3A0E18; border-color:var(--gold); background:#FFF3D0; }
.marquee{ background:rgba(58,14,24,.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,#E4EFF1 0 16px,#EEF6F7 16px 32px);
}
.tag{ background:#FFFFFF; color:#7C4651; border:1px solid var(--border); }
.chef .avatar{ background:repeating-linear-gradient(45deg,#CFEAF0 0 12px,#E1F2F6 12px 24px); }
.org .logo.comune{ background:repeating-linear-gradient(45deg,#BFE0F2 0 8px,#D2ECF7 8px 16px); }
.org .logo.borgo{  background:repeating-linear-gradient(45deg,#FFE08A 0 8px,#FFEBB0 8px 16px); }

/* Header chiaro, strip teal scuro */
.site-header{ background:rgba(255,255,255,.92); border-bottom-color:var(--border); }
.nav a{ color:#20565F; }
.strip{ background:var(--bg-strip); color:#F3E4D8; 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:#1877b3; }
.tile.gold{ background:var(--magenta); color:#fff; } .tile.gold:hover{ background:#c5127f; }
.tile.green{ background:var(--green); color:#fff; }  .tile.green:hover{ background:#268a2e; }
.tile p{ opacity:.95; }

/* Arena preview in magenta (come il box del poster) */
.arena-panel{
  background:radial-gradient(120% 120% at 80% 0%, #E5199A, #b5107a);
  border-color:rgba(255,255,255,.25); color:#FFFFFF;
}
.arena-panel .link-gold{ color:#FFE08A; }
.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:#FFE08A; }

/* ----- Accenti come testo (leggibili) ----------------------------------- */
.kicker.gold{ color:#C68A00; }
.kicker.red{ color:#D23A20; }
.kicker.green{ color:#8A1E38; }
.link-gold, .nav a.active, .nav a:hover{ color:var(--green); }
.nav a.active{ background:rgba(47,158,55,.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:#F0C87A; 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,#cfe3e6); 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:#20565F; line-height:1; }
.lang-switch a:hover{ color:var(--green,#8A1E38); }
.lang-switch a.on{ background:var(--green,#8A1E38); 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:#5E1226; border-bottom:1px solid rgba(255,255,255,.12); box-shadow:0 12px 26px rgba(63,14,26,.30); }
  .site-header .nav a{ color:#F3E4D8; }
  .site-header .nav a.active{ color:#F3D9A0; background:rgba(255,255,255,.10); }
  .site-header .nav .cta{ color:var(--ink-on-gold); }
}
.step-card .n, .mini-gig .d, .gig .d, .stat .big{ color:var(--red); }
.brand .name .yr{ color:var(--red); }
.site-footer .brand-blk .nm .yr{ color:var(--gold); }

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

/* ----- Footer teal scuro ------------------------------------------------- */
.site-footer{ background:#4E1020; color:#EAD9C6; border-top-color:rgba(255,255,255,.12); }
.site-footer .brand-blk .nm{ color:#FFFFFF; }
.site-footer a{ color:#EAD9C6; }
.site-footer .col .hd{ color:#F0C87A; }
.site-footer .col a:hover, .site-footer .bottom a:hover{ color:var(--gold); }

/* ==========================================================================
   Mappa tavoli sul tema chiaro
   ========================================================================== */
.map-svg{ background:#FBF3EE; border-color:var(--border); }
.map-palco{ fill:rgba(58,14,24,.05); stroke:rgba(58,14,24,.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(58,14,24,.18); }
.tavolo:hover rect{ stroke:var(--ink); }
.tavolo.is-occupied rect{ fill:#CDE9D3 !important; stroke:rgba(58,14,24,.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:#8A1E38 !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, #37C4D2 0%, #37C4D2 32%, rgba(55,196,210,.80) 46%, rgba(55,196,210,.38) 66%, rgba(55,196,210,.10) 84%, rgba(55,196,210,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(12,90,104,.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(12,90,104,.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) */
.page-hero.arena-hero{ position:relative; overflow:hidden; padding-bottom:120px; }
.page-hero.arena-hero .glow{ display:none; }
.page-hero.arena-hero::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    linear-gradient(180deg, #37C4D2 0%, #37C4D2 34%, rgba(55,196,210,.80) 48%, rgba(55,196,210,.36) 68%, rgba(55,196,210,.10) 85%, rgba(55,196,210,0) 100%),
    linear-gradient(0deg, rgba(229,25,154,.42) 0%, rgba(229,25,154,.14) 46%, rgba(229,25,154,0) 80%),
    url("img/arena-hero.webp") center 52%/cover no-repeat;
}
.page-hero.arena-hero .inner{ position:relative; z-index:1; }
@media (max-width:640px){ .page-hero.arena-hero{ padding-bottom:90px; } }

/* 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,#E4EFF1 0 16px,#EEF6F7 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:#FBF3F5; border:2px solid #E3C58A; color:#8A1E38; 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:#8A1E38; border-color:#8A1E38; 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(58,14,24,.1); }
.tavolo-off .tnum{ fill:#B58C94; }
.map-legend .sw{ border-color:rgba(58,14,24,.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(58,14,24,.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:#8A1E38; 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 #E3C58A; background:#FBF3F5; color:var(--ink);
  box-shadow:0 1px 0 rgba(58,14,24,.04);
  transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.input::placeholder, textarea.input::placeholder{ color:#B39AA0; }
.input:hover, .select:hover, textarea.input:hover{ border-color:#E4B3C0; }
.input:focus, .select:focus, textarea.input:focus{
  outline:none; border-color:#8A1E38; background:#FFFFFF;
  box-shadow:0 0 0 4px rgba(138,30,56,.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:#FBF3F5; color:var(--ink); font-size:16px; padding:10px; }
.select option:checked{ background:#8A1E38; color:#fff; }
/* Consenso privacy / caselle */
.check{ border:2px solid #E3C58A; background:#FBF3F5; }
.check:hover{ border-color:#E4B3C0; }
.check input[type="checkbox"]{ width:20px; height:20px; accent-color:#8A1E38; }
/* 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:#E5199A; 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(58,14,24,.08); transition:transform .12s ease, box-shadow .12s ease; }
.menu-pdf-banner:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(58,14,24,.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(58,14,24,.18); background:#f3f7f8; }
.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:#16310F;
  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(58,14,24,.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(58,14,24,.14); border-color:var(--green); }
.dmenu-tab.is-active{ background:var(--green); border-color:var(--green); color:#fff;
  box-shadow:0 10px 22px rgba(47,158,55,.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-wgrp .dmenu-sec-note{ color:rgba(255,255,255,.85); font-weight:700; margin-left:6px; }
.dmenu-baby{ display:flex; align-items:center; gap:16px; margin-top:14px; background:#EAF7EC;
  border:1.5px solid rgba(47,158,55,.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(58,14,24,.2); padding:0; background:#e8f1f3;
  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; } }
/* Piatti in rotazione: placeholder immagine nel tono caldo del sito (non azzurro) */
.food-card{ box-shadow:0 8px 24px rgba(95,18,38,.08); }
.food-card .ph{ background:#F6E7EC; }
.food-card .ph.noimg{ background:linear-gradient(135deg,#F0D9DF,#FBF6F1); }
.food-card .bd .nm{ color:var(--ink); }

.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:#e8f1f3; }
.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 VINI — Elenco vini / Produttori / Scheda / Casette
   Tema bordeaux coerente col manifesto (verde/rosso restano solo alla mappa tavoli)
   ========================================================================== */

/* Hero delle pagine catalogo (bordeaux profondo → vinaccia) */
.th-vini{ background:
  linear-gradient(180deg, rgba(251,246,241,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,#3E0A1A 0%, #6E1329 52%, #8A1E38 100%); }
.th-vini .kicker{ color:#F3D9A0; }

/* Hero catalogo con foto vera sfumata in bordeaux (attiva con .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(251,246,241,0) 74%, var(--bg) 100%),
    linear-gradient(102deg, rgba(50,8,20,.82) 0%, rgba(84,15,32,.50) 38%, rgba(120,24,48,.16) 74%, rgba(120,24,48,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; }

/* Contatori (Etichette / 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 #EBD9C6; 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:#8A1E38; }
.cat-count .l{ margin-top:4px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:#9A7418; }

/* 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 vini */
.table-scroll{ width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;
  border:1px solid #EBD9C6; border-radius:16px; background:#fff; }
.vini-table{ width:100%; border-collapse:collapse; min-width:660px; font-size:14.5px; }
.vini-table thead th{ position:sticky; top:0; background:#8A1E38; color:#fff; text-align:left;
  font-size:12px; text-transform:uppercase; letter-spacing:.05em; padding:12px 14px; white-space:nowrap; }
.vini-table th.ta-c, .vini-table td.ta-c{ text-align:center; }
.vini-table tbody td{ padding:11px 14px; border-bottom:1px solid #F0E4D6; vertical-align:middle; }
.vini-table tbody tr:nth-child(even){ background:#FBF4EE; }
.vini-table tbody tr:hover{ background:#F7E9EE; }
.vini-table td.v-nome a{ color:#2A0810; font-weight:700; text-decoration:none; }
.vini-table td.v-nome a:hover{ color:#8A1E38; text-decoration:underline; }
.v-prod{ color:#6E4A18; text-decoration:none; }
.v-prod:hover{ color:#8A1E38; 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:#8A1E38; text-decoration:none; font-weight:800; }
.v-go:hover{ background:#8A1E38; 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:#8A1E38; color:#fff; }
.tok{ display:inline-flex; align-items:center; justify-content:center; min-width:26px; height:26px;
  padding:0 7px; border-radius:14px; background:#8A1E38; 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:#2A0810; }
.prod-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.prod-reg{ font-size:12.5px; color:var(--muted); }
.prod-vini{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.prod-vini li{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.prod-vini a{ color:#2A0810; text-decoration:none; font-size:14px; line-height:1.3; }
.prod-vini a:hover{ color:#8A1E38; 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:#8A1E38; }
.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 vino — festosa, tema chiaro coordinato */
.scheda-vino{ 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%, #A2274A 0%, #8A1E38 55%, #6E1329 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:#F3D9A0; 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:#9A7418; font-weight:800; font-size:13px; text-transform:uppercase; letter-spacing:.06em; text-decoration:none; }
.sv-prod a:hover{ color:#8A1E38; }
.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:#2A0810; 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:#8A1E38; border-color:#8A1E38; 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 #EBD9C6; 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:#8A1E38;
  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:#9A7418; }
.sv-box .v{ font-size:15.5px; color:#2A0810; line-height:1.45; word-wrap:break-word; }
a.v{ color:#2A0810; text-decoration:none; }
a.v:hover{ color:#8A1E38; 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-vino{ 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; }
}

/* ==========================================================================
   SOMMELIER VIRTUALE — quiz + risultati
   ========================================================================== */
.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:#8A1E38; }

.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:#9A7418; }
.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:#2A0810; }
.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:#2A0810; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease; }
.som-opt:hover{ border-color:#8A1E38; background:#8A1E38; color:#fff; transform:translateY(-2px); box-shadow:0 12px 26px rgba(138,30,56,.18); }
.som-back{ margin-top:22px; background:none; border:0; cursor:pointer; color:#9A7418; font-weight:800; font-size:14px; }
.som-back:hover{ color:#8A1E38; }

.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 #EBD9C6; 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%,#A2274A,#8A1E38 60%,#6E1329); 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:#9A7418; }
.som-rc-nome{ font-size:16px; font-weight:800; color:#2A0810; 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:#8A1E38; }

/* ==========================================================================
   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; }
}

/* ---- Fascia loghi partner (footer + testa) ---- */
.ft-partners{ background:#fff; border-top:1px solid #EADED7; padding:32px 0 34px; }
.ft-partners--top{ border-top:0; border-bottom:1px solid #EADED7; 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:#8A1E38; 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 brand nella barra menu ---- */
.brand-inst{ display:inline-flex; align-items:center; gap:14px; margin-left:16px; padding-left:16px; border-left:1px solid rgba(58,14,24,.15); }
.brand-inst img{ height:40px; width:auto; display:block; }
@media(max-width:980px){ .brand-inst{ display:none; } }

/* ---- Rullo scorrevole associazioni cittadine ---- */
.assoc-ticker{ background:#5E1226; color:#F3E4D8; 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:#F3D9A0; 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ù razionalizzato: gruppi a tendina ---- */
.nav-grp{ position:relative; }
.nav-grp > .nav-top{ display:inline-flex; align-items:center; gap:5px; cursor:pointer; padding:8px 11px; border-radius:8px;
  color:#20565F; 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:var(--green); }
.nav-caret{ font-style:normal; font-size:.72em; opacity:.8; }
.nav-sub{ position:absolute; top:100%; left:0; margin-top:6px; min-width:212px; background:#fff; border:1px solid var(--border);
  border-radius:12px; box-shadow:0 18px 38px rgba(63,14,26,.16); padding:8px; display:none; flex-direction:column; gap:2px; z-index:70; }
.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:#20565F; font-weight:600; }
.nav-sub a:hover{ background:rgba(47,158,55,.12); color:var(--green); }
@media (max-width:680px){
  .nav-grp{ width:100%; }
  .nav-grp > .nav-top{ color:#F3D9A0; opacity:.9; font-size:12px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; 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:#F3E4D8; padding:10px 12px; }
  .nav-sub a:hover{ background:rgba(255,255,255,.10); color:#fff; }
}

/* ---- Tendine: elimina il gap che chiudeva il menu + tipografia ---- */
.nav-sub{ margin-top:0; padding-top:10px; }                 /* nessun buco tra voce e tendina */
.nav-sub::before{ content:""; position:absolute; left:0; right:0; top:-14px; height:14px; } /* ponte hover */
.nav-grp{ padding-bottom:2px; }
/* Voci principali: TUTTE MAIUSCOLE, grassetto, stessa dimensione */
.nav > a, .nav-top, .nav .cta{ text-transform:uppercase; font-variant:normal; font-weight:800; font-size:15px; letter-spacing:.045em; }
/* Sottovoci: grassetto */
.nav-sub a{ font-variant:normal; font-weight:700; font-size:15px; }
@media (max-width:680px){
  .nav > a, .nav .cta{ font-size:16px; }
  .nav-sub a{ font-size:16px; }
}

/* ---- Embed Google My Maps: nasconde la barra teal, intestazione bordeaux ---- */
.map-embed{ border-radius:18px !important; overflow:hidden !important; border:1px solid #EADED7; box-shadow:0 16px 40px rgba(95,18,38,.10); background:#fff; }
.map-embed .map-embed-hd{ background:#8A1E38; color:#F3E4D8; 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; }
@media (max-width:640px){ .map-embed .map-embed-frame{ height:380px; } .map-embed .map-embed-frame iframe{ height:442px !important; } }

/* ---- Sommelier virtuale: figura accanto al quiz + decorazioni ---- */
.som-layout{ display:flex; gap:28px; align-items:flex-end; justify-content:center; max-width:1060px; margin:0 auto; }
.som-figure{ position:relative; flex:0 0 320px; align-self:flex-end; }
.som-figure img{ position:relative; z-index:2; width:100%; height:auto; display:block; filter:drop-shadow(0 22px 38px rgba(95,18,38,.28)); }
.som-deco-blob{ position:absolute; z-index:0; left:50%; bottom:6%; width:300px; height:300px; transform:translateX(-50%);
  background:radial-gradient(circle at 50% 45%, rgba(138,30,56,.20), rgba(138,30,56,.09) 55%, rgba(138,30,56,0) 72%); border-radius:50%; }
.som-figure .som-deco{ position:absolute; z-index:1; border-radius:50%; }
.som-figure .d1{ width:16px; height:16px; background:#C0954A; top:10%; right:4%; opacity:.85; }
.som-figure .d2{ width:10px; height:10px; background:#8A1E38; top:28%; left:0; opacity:.7; }
.som-figure .d3{ width:24px; height:24px; border:3px solid #C0954A; bottom:26%; right:-2%; opacity:.6; }
.som-layout .som-card{ flex:1 1 auto; max-width:640px; margin:0; align-self:stretch; }
@media(max-width:820px){
  .som-layout{ flex-direction:column; align-items:center; gap:0; }
  .som-figure{ flex-basis:auto; width:200px; margin-bottom:-6px; }
  .som-deco-blob{ width:200px; height:200px; }
  .som-layout .som-card{ width:100%; max-width:640px; }
}
