/* ============================================================
   PrenotaTavoli — Foglio di stile unico
   Nessuna dipendenza esterna. Modifica solo le variabili qui sotto
   per cambiare colori, font e raggi degli angoli.
   ------------------------------------------------------------
   INDICE
   1.  Variabili e reset
   2.  Tipografia e utility
   3.  Layout (container, section)
   4.  Header (con ricerca fissa) / Footer / Icone
   5.  Bottoni
   6.  Form
   7.  Alert e badge
   8.  Home: hero, searchbar, cards, steps, CTA
   9.  Scheda locale (galleria, due colonne, recensioni, mappa)
   10. Pagina prenotazione (ticket)
   11. Pannelli: base · coperti · orari · contenuti · widget
   12. Responsive
   ============================================================ */

/* ---------- 1. VARIABILI E RESET ---------- */
:root{
  --c-primary:#c0392b;
  --c-primary-dark:#9c2c21;
  --c-dark:#1f2a37;
  --c-text:#2b2b2b;
  --c-muted:#7a7a7a;
  --c-bg:#ffffff;
  --c-bg-alt:#f7f5f2;
  --c-border:#e4e1dc;
  --c-success:#1f8a53;
  --c-warning:#b8860b;
  --c-danger:#c0392b;
  --c-info:#2b6cb0;

  --radius:10px;
  --radius-sm:6px;
  --shadow:0 2px 14px rgba(0,0,0,.07);
  --shadow-lg:0 10px 34px rgba(0,0,0,.12);

  --font-body:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-head:Georgia,"Times New Roman",serif;

  --container:1140px;
  --gap:24px;

  /* altezza della testata fissa: barra superiore (37) + menu (68) + barra di ricerca (61) */
  --header-h:166px;
  /* altezza della barra fissa in fondo allo schermo (solo telefono) */
  --tabbar-h:52px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  color:var(--c-text);
  background:var(--c-bg);
}
img{max-width:100%;display:block;}
a{color:var(--c-primary);text-decoration:none;}
a:hover{text-decoration:underline;}

/* ---------- 2. TIPOGRAFIA E UTILITY ---------- */
h1,h2,h3,h4{font-family:var(--font-head);line-height:1.25;color:var(--c-dark);margin:0 0 .5em;}
h1{font-size:2rem;}
h2{font-size:1.5rem;}
h3{font-size:1.15rem;}
p{margin:0 0 1em;}

.muted{color:var(--c-muted);}
.small{font-size:.86rem;}
.center{text-align:center;}
.nowrap{white-space:nowrap;}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;}
.inline{display:inline-block;}
.sep{border:0;border-top:1px solid var(--c-border);margin:32px 0;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
/* testo presente per screen reader e SEO ma non mostrato a video:
   es. un <h1> "vero" quando il design non prevede un titolo visibile */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

.prose h2{margin-top:1.4em;}
.prose ul,.prose ol{padding-left:1.2em;}
.prose blockquote{
  margin:1.4em 0;padding:.4em 0 .4em 18px;
  border-left:3px solid var(--c-primary);color:var(--c-muted);font-style:italic;
}

/* ---------- 3. LAYOUT ---------- */
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 20px;}
.container.narrow{max-width:720px;}
.site-main{min-height:60vh;}

.section{padding:56px 0;}
.section--alt{background:var(--c-bg-alt);}
/* stacco tenue: crema calda con un filo di rosa, in famiglia col resto */
.section--soft{
  background:linear-gradient(180deg,#fbf7f2 0%,#f6efe8 100%);
  border-top:1px solid #efe6dc;border-bottom:1px solid #efe6dc;
}
.section__head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:16px;flex-wrap:wrap;margin-bottom:28px;
}
.section__title{margin:0;font-size:1.7rem;}
.section__title--center{text-align:center;margin-bottom:36px;}
.link-more{font-weight:600;font-size:.92rem;}

.empty{
  text-align:center;padding:48px 20px;background:var(--c-bg-alt);
  border:1px dashed var(--c-border);border-radius:var(--radius);
}

/* ---------- 4. HEADER / FOOTER / ICONE ---------- */
.site-header{background:#fff;border-bottom:1px solid var(--c-border);position:sticky;top:0;z-index:50;}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px;}
.logo{
  display:flex;align-items:center;
  font-family:var(--font-head);font-size:1.35rem;font-weight:700;
  color:var(--c-dark);letter-spacing:-.02em;
}
.logo:hover{text-decoration:none;color:var(--c-primary);}
.logo__img{height:44px;width:auto;display:block;}
.main-nav{display:flex;align-items:center;gap:20px;}
.main-nav a{color:var(--c-dark);font-size:.95rem;font-weight:500;}
.main-nav a:hover{color:var(--c-primary);text-decoration:none;}

/* barra sottile sopra la testata: link secondari (ristorazione, FAQ,
   diventa partner) + lingua, per non affollare la riga del logo */
.top-bar{background:var(--c-bg-alt);border-bottom:1px solid var(--c-border);}
.top-bar__inner{display:flex;align-items:center;justify-content:flex-end;gap:20px;height:36px;}
.top-bar__links{display:flex;align-items:center;gap:18px;}
.top-bar__links a{color:var(--c-muted);font-size:.82rem;font-weight:500;}
.top-bar__links a:hover{color:var(--c-primary);text-decoration:none;}

/* icone SVG in linea */
.ico{width:1.05em;height:1.05em;flex:0 0 auto;vertical-align:-.15em;}
.ico--sm{width:16px;height:16px;color:var(--c-muted);}

/* barra di ricerca fissa sotto il menu */
.header-search{background:var(--c-bg-alt);border-top:1px solid var(--c-border);}
.header-search form{display:flex;align-items:center;gap:10px;padding:10px 0;}
.header-search__field{
  display:flex;align-items:center;gap:8px;flex:1;min-width:0;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-sm);
  padding:0 12px;height:40px;
}
.header-search__field:focus-within{border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(192,57,43,.1);}
.header-search input{
  border:0;outline:none;width:100%;min-width:0;height:100%;
  font-family:inherit;font-size:.92rem;color:var(--c-text);background:transparent;
}
.header-search .btn{flex:0 0 auto;height:40px;}
.header-search__standard,.header-search__actions{display:contents;}
.header-search .header-search__compact,.header-search .header-search__geo{display:none;}
/* su desktop la home ha già la ricerca nella hero: la barra sotto il menu è solo per mobile */
body.page-home .header-search{display:none;}
/* pagina risultati e amministrazione: campo di ricerca unico (città o nome), sempre visibile */
body.page-search .header-search__compact,
body.page-admin .header-search__compact{display:flex;}

.site-footer{
  position:relative;overflow:hidden;margin-top:40px;color:#cfd6df;
  background:
    radial-gradient(900px 420px at 18% 0%, rgba(192,57,43,.55) 0%, rgba(192,57,43,0) 62%),
    radial-gradient(700px 380px at 88% 100%, rgba(184,134,11,.32) 0%, rgba(184,134,11,0) 60%),
    linear-gradient(140deg, #24303f 0%, #1f2a37 45%, #2a1f24 100%);
}
.site-footer::after{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.16) 1px, transparent 1px);
  background-size:22px 22px;
}
.site-footer a{color:#fff;}
.site-footer__inner{
  position:relative;z-index:1;
  display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;padding-top:40px;padding-bottom:32px;
}
.site-footer__brand{max-width:280px;}
.site-footer__logo{height:48px;width:auto;display:block;margin-bottom:12px;}
.site-footer .muted{color:#b8c0cb;}
.site-footer__brand .muted{font-size:.9rem;margin:0;}
.site-footer__col{min-width:170px;}
.site-footer__heading{
  font-family:var(--font-head);font-size:1rem;font-weight:700;
  color:var(--c-primary);margin:0 0 14px;
}
.footer-nav{display:flex;flex-direction:column;gap:9px;font-size:.92rem;}
.footer-nav a:hover{color:var(--c-primary);text-decoration:none;}
.site-footer__revioo{
  position:relative;z-index:1;display:flex;align-items:center;gap:20px;
  margin-bottom:28px;padding:18px 20px;border:1px solid rgba(255,255,255,.14);
  border-radius:14px;background:rgba(10,18,27,.28);
}
.site-footer__revioo-logo{flex:0 0 auto;display:block;line-height:0;}
.site-footer__revioo-logo img{display:block;width:132px;height:auto;}
.site-footer__revioo-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px;}
.site-footer__revioo-copy strong{color:#fff;font-size:.95rem;}
.site-footer__revioo-copy span{color:#b8c0cb;font-size:.84rem;line-height:1.45;}
.site-footer__revioo-link{flex:0 0 auto;font-size:.84rem;font-weight:700;white-space:nowrap;}
.site-footer__revioo-link:hover{color:#ff8b58;text-decoration:none;}
.site-footer__rule{position:relative;z-index:1;height:1px;background:rgba(255,255,255,.15);}
.site-footer__bottom{
  position:relative;z-index:1;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;
  gap:12px;padding-top:16px;padding-bottom:16px;color:#9aa5b1;font-size:.85rem;
}
.site-footer__identity{flex:1 1 100%;min-width:0;line-height:1.7;color:#b8c0cb;}
.site-footer__identity p{margin:0 0 5px;}
.site-footer__identity p:last-child{margin-bottom:0;}
.site-footer__identity strong{color:#cfd6df;}
.site-footer__legal{display:flex;gap:20px;flex-wrap:wrap;}
.site-footer__legal a{color:#9aa5b1;}
.site-footer__legal a:hover{color:#fff;text-decoration:underline;}

/* ---------- 4bis. PROFILI SOCIAL ----------
   Un solo blocco riusabile (includes/functions.php -> social_links()):
   la variante decide solo i colori, misure e comportamento restano questi.
   L'area cliccabile è 40x40 anche se il segno ne occupa 18: sotto i 40px
   il dito manca il bersaglio.                                            */
.social-links{display:flex;gap:10px;flex-wrap:wrap;list-style:none;margin:0;padding:0;}
.social-links__item{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  color:#fff;background:rgba(255,255,255,.06);
  transition:background .15s,border-color .15s,color .15s,transform .15s;
}
.social-links__item:hover,.social-links__item:focus-visible{
  background:var(--c-primary);border-color:var(--c-primary);
  color:#fff;text-decoration:none;transform:translateY(-2px);
}
.social-links__ico{width:19px;height:19px;display:block;}
.site-footer__social-label{
  margin:16px 0 10px;font-size:.82rem;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;color:#9aa5b1;
}

/* su fondo chiaro (pagine interne) il cerchio diventa scuro su bianco */
.social-links--light .social-links__item{
  border-color:var(--c-border);background:#fff;color:var(--c-text);
}
.social-links--light .social-links__item:hover,
.social-links--light .social-links__item:focus-visible{
  background:var(--c-primary);border-color:var(--c-primary);color:#fff;
}

/* invito a seguirci dentro le pagine (conferma prenotazione, FAQ) */
.social-cta{
  margin:22px auto 0;max-width:520px;text-align:center;
  padding:20px 22px;border:1px solid var(--c-border);border-radius:var(--radius);
  background:var(--c-bg-alt);
}
.social-cta__title{
  margin:0 0 8px;font-size:.76rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--c-primary);
}
.social-cta__text{margin:0 0 14px;font-size:.95rem;line-height:1.55;}
.social-cta .social-links{justify-content:center;}

/* dentro le card dell'assistenza le icone stanno sotto al testo */
.support-card .social-links{margin-top:14px;}

@media (prefers-reduced-motion:reduce){
  .social-links__item{transition:none;}
  .social-links__item:hover,.social-links__item:focus-visible{transform:none;}
}

/* ---------- 5. BOTTONI ---------- */
.btn{
  display:inline-block;border:1px solid transparent;border-radius:var(--radius-sm);
  padding:12px 22px;font-size:.95rem;font-weight:600;font-family:inherit;
  cursor:pointer;text-align:center;transition:background .15s,color .15s,border-color .15s;
}
.btn:hover{text-decoration:none;}
.btn--primary{background:var(--c-primary);color:#fff;}
.btn--primary:hover{background:var(--c-primary-dark);color:#fff;}
.btn--outline{background:#fff;border-color:var(--c-border);color:var(--c-dark);}
.btn--outline:hover{border-color:var(--c-dark);color:var(--c-dark);}
.btn--ghost{background:transparent;border-color:transparent;color:var(--c-dark);text-decoration:underline;}
.btn--success{background:var(--c-success);color:#fff;}
.btn--success:hover{background:#166b40;color:#fff;}
.btn--danger{background:var(--c-danger);color:#fff;}
.btn--danger:hover{background:var(--c-primary-dark);color:#fff;}
.btn--sm{padding:7px 14px;font-size:.85rem;}
.btn--block{display:block;width:100%;}

/* ---------- 6. FORM ---------- */
.form__group{margin-bottom:16px;}
.form label{display:block;font-size:.88rem;font-weight:600;color:var(--c-dark);margin-bottom:6px;}
.form label small{font-weight:400;color:var(--c-muted);}
.form input[type=text],.form input[type=email],.form input[type=tel],
.form input[type=date],.form input[type=password],.form input[type=number],
.form input[type=file],
.form select,.form textarea,
.filters input,.filters select,
.searchbar input{
  width:100%;padding:11px 12px;border:1px solid var(--c-border);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.95rem;color:var(--c-text);background:#fff;
}
.form textarea{resize:vertical;}
.form input:focus,.form select:focus,.form textarea:focus,.searchbar input:focus{
  outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(192,57,43,.12);
}
.form__row{display:grid;gap:16px;}
.form__row--2{grid-template-columns:1fr 1fr;}
.form__row--3{grid-template-columns:repeat(3,1fr);}
.form__check{display:flex;align-items:flex-start;gap:10px;margin:14px 0 20px;}
.form__check input{margin-top:4px;}
.form__check label{font-weight:400;font-size:.9rem;margin:0;}
.form__note{font-size:.82rem;color:var(--c-muted);margin-top:12px;}

/* ---------- 7. ALERT E BADGE ---------- */
.alert{
  padding:14px 16px;border-radius:var(--radius-sm);margin:0 0 20px;
  font-size:.92rem;border-left:4px solid;
}
.alert ul{margin:8px 0 0;padding-left:18px;}
.alert--success{background:#e9f6ef;border-color:var(--c-success);color:#14603a;}
.alert--error  {background:#fdeceb;border-color:var(--c-danger); color:#8c2119;}
.alert--info   {background:#eaf2fb;border-color:var(--c-info);   color:#1d4f80;}
.alert--warning{background:#fdf5e3;border-color:var(--c-warning);color:#7a5b06;}

.badge{
  display:inline-block;padding:4px 10px;border-radius:100px;
  font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;
}
.badge--pending  {background:#fdf5e3;color:#7a5b06;}
.badge--confirmed{background:#e9f6ef;color:#14603a;}
.badge--rejected {background:#fdeceb;color:#8c2119;}
.badge--cancelled{background:#eeeeee;color:#5a5a5a;}

/* ---------- 8. HOME ---------- */
/* Hero ridotta alla sola barra di ricerca (data, orario, persone, città/
   locale/cucina): sfondo bianco, niente titolo, sottotitolo o pulsanti —
   solo il modulo, con i segnaposto al posto delle etichette. */
.hero{background:var(--c-bg);border-bottom:1px solid var(--c-border);padding:32px 0;text-align:center;}
.hero__inner{max-width:1040px;margin:0 auto;}

.searchbar{
  display:grid;grid-template-columns:minmax(200px,2fr) minmax(140px,1fr) minmax(120px,1fr) minmax(100px,.7fr) auto;
  gap:12px;align-items:center;
  background:#fff;padding:14px;border:1px solid var(--c-border);
  border-radius:var(--radius);box-shadow:var(--shadow);max-width:1000px;margin:0 auto;text-align:left;
}
.searchbar__field{min-width:0;}
.searchbar select{
  width:100%;padding:11px 12px;border:1px solid var(--c-border);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.95rem;color:var(--c-text);background:#fff;
}
.searchbar__submit .btn{width:100%;}

/* domanda sotto la barra, con la città dedotta dall'IP (visitor_city_guess) */
.hero__geo-hint{margin:14px 0 0;font-size:.9rem;color:var(--c-muted);}
.text-link-btn{
  background:none;border:0;padding:0;margin:0;cursor:pointer;
  font:inherit;color:var(--c-primary);text-decoration:underline;text-underline-offset:2px;
}
.text-link-btn:hover{color:var(--c-primary-dark);}

/* ---------- barra categorie orizzontale (home + pagina ricerca) ---------- */
.category-filter-section{padding:14px 0;border-bottom:1px solid var(--c-border);background:#fff;}
.category-filter-bar{
  display:flex;gap:8px;overflow-x:auto;padding:2px;
  scrollbar-width:none;
}
.category-filter-bar::-webkit-scrollbar{display:none;}
.category-filter-btn{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;
  padding:6px 14px 6px 6px;border:1px solid var(--c-border);border-radius:999px;
  background:transparent;color:var(--c-text);font-size:.83rem;font-weight:600;
  white-space:nowrap;transition:border-color .15s,color .15s,background .15s;
}
.category-filter-btn:hover{border-color:var(--c-primary);color:var(--c-primary);text-decoration:none;}
.category-filter-btn.is-active{border-color:var(--c-primary);color:var(--c-primary);background:rgba(192,57,43,.06);}
.category-filter-btn.is-active .category-filter-btn__ico{border-color:var(--c-primary);}
.category-filter-btn__ico{
  width:26px;height:26px;flex:0 0 auto;border-radius:50%;background:var(--c-bg-alt);
  display:flex;align-items:center;justify-content:center;font-size:.85rem;
  border:1px solid var(--c-border);
}
.category-filter-btn--special .category-filter-btn__ico{
  background:rgba(192,57,43,.1);border-color:rgba(192,57,43,.3);
}
.category-filter-btn__label{line-height:1.1;}

.mobile-only{display:none;}

.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.card{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .18s,transform .18s;
}
.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);}
.card__media{display:block;aspect-ratio:16/10;background:var(--c-bg-alt);overflow:hidden;}
.card__media img{width:100%;height:100%;object-fit:cover;}
.card__body{padding:16px;display:flex;flex-direction:column;gap:12px;flex:1;}
.card__meta{font-size:.7rem;letter-spacing:.02em;color:var(--c-muted);margin:0;}
.card__title{margin:0;font-size:1rem;line-height:1.3;}
.card__title a{color:var(--c-dark);}
.card__title a:hover{color:var(--c-primary);text-decoration:none;}
.card__hours{font-size:.78rem;color:var(--c-muted);margin:0;}
.card .btn{align-self:flex-start;margin-top:6px;}

/* orari liberi oggi (pranzo o cena, secondo l'ora): fino a 3 fasce cliccabili,
   riquadri rettangolari nel rosso del marchio */
.card__slots{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0;}
.card__slot{
  display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-sm);
  border:1px solid var(--c-primary);background:var(--c-primary);
  font-size:.76rem;font-weight:700;color:#fff;white-space:nowrap;
}
/* #cd6155: stessa tinta del marchio, schiarita un po' per l'hover */
.card__slot:hover{background:#cd6155;border-color:#cd6155;color:#fff;text-decoration:none;}

/* ---------- locali vicino a te ---------- */
.nearby .section__head{align-items:center;}
.nearby .section__title{display:flex;align-items:center;gap:9px;}
.nearby .section__title .ico{color:var(--c-primary);}
.nearby{scroll-margin-top:calc(var(--header-h) + 16px);}
.nearby__msg{margin:0;font-size:.9rem;color:var(--c-muted);min-height:1.2em;}
.nearby__msg:empty{min-height:0;}
.nearby__msg--loading{font-style:italic;}
.nearby__msg--error{color:var(--c-danger);}
.nearby [data-nearby-out]:empty{display:none;}
.nearby.is-loaded .nearby__msg{display:none;}

/* etichetta della distanza sulla foto */
.card__media{position:relative;}
.card__dist{
  position:absolute;left:10px;top:10px;
  background:rgba(255,255,255,.94);color:var(--c-dark);
  border-radius:100px;padding:3px 10px;font-size:.7rem;font-weight:700;
  box-shadow:var(--shadow);
}

/* ---------- barra criteri di ricerca + filtri (pagina risultati) ---------- */
.search-bar{background:#fff;border-bottom:1px solid var(--c-border);padding:12px 0;}
.search-bar__inner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.search-bar__criteria{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}

.search-bar__loc{position:relative;}
.search-bar__loc-btn{
  display:flex;align-items:center;gap:6px;cursor:pointer;
  border:1px solid var(--c-border);border-radius:100px;padding:8px 14px;
  background:var(--c-bg-alt);font-size:.92rem;font-weight:700;color:var(--c-dark);
}
.search-bar__loc-btn:hover{border-color:var(--c-primary);color:var(--c-primary);}
.search-bar__loc-list{
  position:absolute;top:calc(100% + 6px);left:0;z-index:30;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-sm);
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  max-height:280px;overflow-y:auto;min-width:200px;
  padding:6px;margin:0;list-style:none;
}
.search-bar__loc-list li{margin:0;}
.search-bar__loc-list a{display:block;padding:8px 10px;border-radius:6px;color:var(--c-dark);}
.search-bar__loc-list a:hover{background:var(--c-bg-alt);text-decoration:none;}
.search-bar__loc-list a.is-active{color:var(--c-primary);font-weight:700;}

.search-bar__chip{
  display:inline-flex;align-items:center;gap:6px;padding:7px 12px;
  border-radius:100px;background:var(--c-bg-alt);font-size:.85rem;color:var(--c-muted);
}
.search-bar__chip-x{
  display:inline-flex;align-items:center;justify-content:center;
  width:16px;height:16px;border-radius:50%;color:var(--c-muted);
  font-size:.95rem;line-height:1;background:rgba(0,0,0,.06);
}
.search-bar__chip-x:hover{background:var(--c-primary);color:#fff;text-decoration:none;}

.search-bar__filters{position:relative;}
.search-bar__filters-btn{display:flex;align-items:center;gap:6px;}
.search-bar__badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 5px;border-radius:100px;
  background:var(--c-primary);color:#fff;font-size:.7rem;font-weight:700;
}
.search-bar__filters-panel{
  position:absolute;top:calc(100% + 8px);right:0;z-index:30;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  padding:16px;width:360px;max-width:90vw;
}
.search-bar__filters-panel .filterbar__form{align-items:stretch;}
.search-bar__filters-panel .filterbar__group,
.search-bar__filters-panel .filterbar__group--wide{flex:1 1 100%;}
.search-bar__filters-panel .filterbar__actions{flex:1 1 100%;}
.search-bar__filters-panel .filterbar__actions .btn{flex:1;}
.search-bar__filters-panel .filterbar__toggle{flex:1 1 100%;justify-content:center;}

/* ---------- barra dei filtri (contenuto del pannello) ---------- */
.filterbar__form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;}
.filterbar__group{display:flex;flex-direction:column;gap:4px;flex:1 1 110px;min-width:0;}
.filterbar__group--wide{flex:1.6 1 160px;min-width:0;}
.filterbar__form label{
  font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--c-muted);font-weight:700;white-space:nowrap;
}
.filterbar__form select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  width:100%;padding:9px 28px 9px 10px;border:1px solid var(--c-border);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.83rem;font-weight:600;background-color:#fff;color:var(--c-text);
  text-overflow:ellipsis;cursor:pointer;transition:border-color .15s,box-shadow .15s;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a7a7a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 8px center;background-size:14px;
}
.filterbar__form select:hover{border-color:var(--c-primary);}
.filterbar__form select:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(192,57,43,.12);}
.filterbar__form select::-ms-expand{display:none;}
.filterbar__actions{display:flex;gap:8px;align-items:center;flex:0 0 auto;}

.filterbar__toggle{
  display:flex;align-items:center;gap:6px;cursor:pointer;flex:0 0 auto;white-space:nowrap;
  border:1px solid var(--c-border);border-radius:100px;padding:8px 12px;
  text-transform:none !important;letter-spacing:0 !important;font-size:.82rem !important;
  color:var(--c-dark) !important;font-weight:600 !important;background:#fff;
}
.filterbar__toggle.is-on{background:#e9f6ef;border-color:var(--c-success);color:#14603a !important;}

/* ---------- su desktop i filtri restano sempre aperti, tutti su una riga ---------- */
@media (min-width:721px){
  .search-bar__filters{position:static;flex:1 1 100%;}
  .search-bar__filters-btn{display:none;}
  .search-bar__filters-panel{
    position:static;display:block;
    background:transparent;border:none;box-shadow:none;
    padding:0;margin:12px 0 0;width:100%;max-width:none;
  }
  .search-bar__filters-panel .filterbar__form{
    align-items:flex-end;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;
  }
  .search-bar__filters-panel .filterbar__group,
  .search-bar__filters-panel .filterbar__group--wide{flex:0 0 auto;}
  .search-bar__filters-panel .filterbar__group{width:126px;}
  .search-bar__filters-panel .filterbar__group--wide{width:190px;}
  .search-bar__filters-panel .filterbar__toggle{flex:0 0 auto;justify-content:flex-start;}
  .search-bar__filters-panel .filterbar__actions{flex:0 0 auto;}
  .search-bar__filters-panel .filterbar__actions .btn{flex:0 0 auto;}
}

/* doppio cursore del prezzo */
.range{position:relative;height:42px;padding-top:8px;}
.range__track{
  position:absolute;left:0;right:0;top:14px;height:4px;
  background:#e2ded8;border-radius:100px;
}
.range__fill{position:absolute;top:0;height:100%;background:var(--c-primary);border-radius:100px;}
.range input[type=range]{
  position:absolute;left:0;top:6px;width:100%;margin:0;
  background:none;pointer-events:none;-webkit-appearance:none;appearance:none;
}
.range input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;pointer-events:auto;
  width:18px;height:18px;border-radius:50%;background:#fff;cursor:pointer;
  border:2px solid var(--c-primary);box-shadow:0 1px 4px rgba(0,0,0,.2);
}
.range input[type=range]::-moz-range-thumb{
  pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#fff;
  border:2px solid var(--c-primary);box-shadow:0 1px 4px rgba(0,0,0,.2);cursor:pointer;
}
.range__out{position:absolute;top:26px;left:0;margin:0;font-size:.82rem;color:var(--c-dark);font-weight:600;}

/* ---------- promozioni ---------- */
.badge--promo{background:#e9f6ef;color:#14603a;}

.card--promo{border-color:#bfe3ce;}
.card__promo{
  position:absolute;right:10px;top:10px;
  background:var(--c-success);color:#fff;border-radius:100px;
  padding:3px 11px;font-size:.76rem;font-weight:800;letter-spacing:.02em;
  box-shadow:var(--shadow);
}
.card__price{margin:0;font-size:.84rem;color:var(--c-muted);}

/* richiamo "eventi e cerimonie" sull'immagine della scheda */
.card__events{
  position:absolute;left:10px;bottom:10px;z-index:2;
  width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(31,42,55,.86);color:#ffd88a;
  box-shadow:var(--shadow);backdrop-filter:blur(2px);
}
.card__events .ico{width:19px;height:19px;}
.card__events__bubble{
  position:absolute;left:0;bottom:calc(100% + 10px);z-index:30;
  width:230px;padding:10px 12px;
  background:var(--c-dark);color:#fff;border-radius:var(--radius-sm);
  font-size:.78rem;line-height:1.45;box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(4px);
  transition:opacity .15s,transform .15s,visibility .15s;
}
.card__events__bubble strong{display:block;margin-bottom:3px;color:#ffd88a;}
.card__events__bubble::after{
  content:'';position:absolute;left:14px;top:100%;
  border:7px solid transparent;border-top-color:var(--c-dark);
}
.card__events:hover .card__events__bubble{opacity:1;visibility:visible;transform:translateY(0);}

/* richiamo nella testata della scheda locale */
.venue-facts__events .ico{color:#c8930f !important;}
.venue-facts__events a{font-weight:600;}
.chips--events li{background:#fdf5e3;border-color:#efe0b8;color:#7a5b06;}
/* richiamo compatto sulla scheda: il dettaglio appare al passaggio del mouse */
.promo-hint{
  position:relative;display:inline-flex;align-items:center;gap:6px;
  align-self:flex-start;cursor:help;outline:none;
  background:#e9f6ef;color:#14603a;border:1px solid #bfe3ce;
  border-radius:100px;padding:5px 12px;font-size:.78rem;font-weight:700;
}
.promo-hint .ico{color:var(--c-success);}
.promo-hint--soon{background:#eaf2fb;color:#1d4f80;border-color:#c6dbf1;}
.promo-hint--soon .ico{color:var(--c-info);}

.promo-hint__bubble{
  position:absolute;left:0;bottom:calc(100% + 10px);z-index:30;
  width:250px;padding:11px 13px;
  background:var(--c-dark);color:#fff;border-radius:var(--radius-sm);
  font-size:.8rem;font-weight:400;line-height:1.45;
  box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(4px);
  transition:opacity .15s,transform .15s,visibility .15s;
}
.promo-hint__bubble strong{display:block;margin-bottom:3px;color:#ffd88a;}
/* codina del fumetto */
.promo-hint__bubble::after{
  content:'';position:absolute;left:22px;top:100%;
  border:7px solid transparent;border-top-color:var(--c-dark);
}
.promo-hint:hover .promo-hint__bubble,
.promo-hint:focus .promo-hint__bubble,
.promo-hint:focus-within .promo-hint__bubble{
  opacity:1;visibility:visible;transform:translateY(0);
}

.promo-box{
  display:flex;align-items:center;gap:16px;
  background:linear-gradient(135deg,#e9f6ef 0%,#dff0e6 100%);
  border:1px solid #bfe3ce;border-radius:var(--radius);
  padding:16px 18px;margin-bottom:22px;
}
.promo-box__tag{
  background:var(--c-success);color:#fff;border-radius:var(--radius-sm);
  padding:8px 14px;font-size:1.05rem;font-weight:800;white-space:nowrap;
}
.promo-box__title{margin:0;font-weight:700;color:#14603a;font-size:1.05rem;}
.promo-box__meta{margin:2px 0 0;font-size:.86rem;color:#3d7a5b;}

/* promozione non ancora cominciata: stessa forma, tinta più fredda */
.card__promo--soon{background:var(--c-info);}
.promo-box--soon{
  background:linear-gradient(135deg,#eef4fc 0%,#e3edf9 100%);border-color:#c6dbf1;
}
.promo-box--soon .promo-box__tag{background:var(--c-info);}
.promo-box--soon .promo-box__title{color:#1d4f80;}
.promo-box--soon .promo-box__meta{color:#3f6f9e;}
.promo-box__soon{
  display:inline-block;margin-left:8px;background:rgba(43,108,176,.14);
  border-radius:100px;padding:1px 9px;font-size:.7rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;vertical-align:middle;
}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);}
.step{background:#fff;border-radius:var(--radius);padding:26px;text-align:center;border:1px solid var(--c-border);}
.step__n{
  display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;
  border-radius:50%;background:var(--c-primary);color:#fff;font-weight:700;margin-bottom:12px;
}
.step p{margin:0;color:var(--c-muted);font-size:.94rem;}

.cta-band{background:var(--c-dark);color:#fff;padding:44px 0;}
.cta-band h2{color:#fff;margin:0 0 6px;}
.cta-band p{margin:0;color:#c3ccd7;}
.cta-band__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}

/* ============================================================
   9. SCHEDA LOCALE
   ============================================================ */
.venue{padding:24px 0 64px;}
.breadcrumb{font-size:.8rem;color:var(--c-muted);margin-bottom:14px;}
.breadcrumb a{color:var(--c-muted);}
.breadcrumb a:hover{color:var(--c-primary);}

/* ---------- testata ---------- */
.venue-title{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:24px;flex-wrap:wrap;margin-bottom:22px;
}
.venue-title h1{margin:0 0 10px;font-size:2.1rem;letter-spacing:-.02em;}

/* città, categoria e cucina: città sola se non c'è spazio, categoria+cucina insieme sulla riga sotto */
.venue-subtitle{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;
  margin:0 0 14px;font-size:.9rem;
}
.venue-subtitle__tags{
  display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;
}

/* ogni termine in un contorno tondo, colore diverso per tipo */
.venue-subtitle__chip{
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  padding:5px 12px;border-radius:100px;border:1px solid transparent;
  font-size:.86rem;font-weight:600;
}
.venue-subtitle__chip .ico{color:currentColor;}

.venue-subtitle__chip--city{background:#e3eefb;border-color:#a9c8ee;color:#1f5490;}
.venue-subtitle__chip--category{background:#fdecc8;border-color:#e8bf6a;color:#8a5c08;}
.venue-subtitle__chip--cuisine{background:#d9f2e3;border-color:#8fd1ab;color:#186b40;}

/* dati pratici con icone, sotto il nome del locale */
.venue-facts{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:8px 22px;font-size:.92rem;color:var(--c-muted);
}
.venue-facts li{display:flex;align-items:center;gap:7px;}
.venue-facts .ico{color:var(--c-primary);}
.venue-facts a{color:var(--c-dark);}
.venue-facts a:hover{color:var(--c-primary);}

.score{display:flex;align-items:center;gap:10px;text-decoration:none;}
.score:hover{text-decoration:none;}
.score__n{
  background:var(--c-dark);color:#fff;border-radius:var(--radius-sm);
  padding:8px 12px;font-size:1.2rem;font-weight:700;line-height:1;
}
.score__txt{font-size:.82rem;color:var(--c-muted);line-height:1.35;}
.score__txt strong{display:block;color:var(--c-dark);}

/* ---------- griglia a due colonne ----------
   ATTENZIONE: niente align-items:start qui.
   Con "start" la colonna destra sarebbe alta quanto il modulo e
   position:sticky non avrebbe spazio in cui scorrere: il blocco
   sembrerebbe non agganciarsi affatto. Serve che la colonna si
   allunghi quanto quella dei contenuti (comportamento predefinito). */
.venue-grid{display:grid;grid-template-columns:1fr 380px;gap:44px;}
.venue-main{min-width:0;}
.venue-side{min-width:0;height:100%;}

/* ---------- galleria compatta (dentro la colonna) ---------- */
.gallery{margin:0 0 22px;}
.gallery figure{margin:0;background:var(--c-bg-alt);overflow:hidden;border-radius:var(--radius);}
.gallery__main img{width:100%;height:300px;object-fit:cover;cursor:zoom-in;}
.gallery__side{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;position:relative;
}
.gallery__side figure{border-radius:var(--radius-sm);}
.gallery__side img{width:100%;height:82px;object-fit:cover;cursor:zoom-in;}
.gallery__more{
  position:absolute;right:8px;bottom:8px;
  display:flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.94);border:0;border-radius:100px;
  padding:6px 12px;font-family:inherit;font-size:.78rem;font-weight:700;
  color:var(--c-dark);cursor:pointer;box-shadow:var(--shadow);
}
.gallery__more:hover{background:#fff;}
.gallery--single .gallery__main img{height:340px;}

/* ---------- navigazione interna ---------- */
.venue-nav{
  display:flex;gap:26px;border-bottom:1px solid var(--c-border);
  margin-bottom:28px;overflow-x:auto;
}
.venue-nav a{
  display:flex;align-items:center;gap:7px;
  padding:12px 0;font-size:.92rem;font-weight:600;color:var(--c-muted);
  white-space:nowrap;border-bottom:2px solid transparent;
}
.venue-nav a:hover{color:var(--c-dark);text-decoration:none;}
.venue-nav a:hover .ico{color:var(--c-primary);}
.venue-nav a.is-active{color:var(--c-primary);border-bottom-color:var(--c-primary);}
.venue-nav a.is-active .ico{color:var(--c-primary);}
.venue-nav__n{
  background:var(--c-bg-alt);border-radius:100px;padding:1px 8px;
  font-size:.75rem;color:var(--c-muted);
}
/* richiamo all'avviso, spinto a destra della barra */
.venue-nav__notice{
  margin-left:auto;color:var(--c-warning) !important;font-weight:700;
}
.venue-nav__notice .ico{color:var(--c-warning);}
.venue-nav__notice:hover{color:#8a6508 !important;}

.venue-nav__notice.is-open{color:#8a6508 !important;}

/* fumetto dell'avviso: si apre al clic e si chiude da solo dopo 15 secondi */
.notice-pop{
  position:relative;display:none;
  background:#fdf5e3;border:1px solid #efe0b8;border-left:4px solid var(--c-warning);
  border-radius:var(--radius-sm);padding:16px 44px 18px 16px;margin:-14px 0 24px;
  box-shadow:var(--shadow);overflow:hidden;
}
.notice-pop.is-open{display:block;animation:noticeIn .18s ease-out;}
@keyframes noticeIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}
.notice-pop__body .notice__title{margin:0 0 4px;font-weight:700;color:#7a5b06;}
.notice-pop__body .notice__text{margin:0;font-size:.92rem;color:#6b5514;}
.notice-pop__body .notice{background:none;border:0;padding:0;margin:0;}
.notice-pop__close{
  position:absolute;right:8px;top:8px;width:30px;height:30px;
  border:0;background:transparent;color:#8a6508;font-size:22px;line-height:1;
  cursor:pointer;border-radius:50%;
}
.notice-pop__close:hover{background:rgba(184,134,11,.15);}
/* barra che scorre: mostra quanto manca alla chiusura */
.notice-pop__bar{
  position:absolute;left:0;bottom:0;height:3px;width:100%;
  background:var(--c-warning);opacity:.75;
}

/* avviso del titolare */
.notice{
  position:relative;
  background:#fdf5e3;border:1px solid #efe0b8;border-left:4px solid var(--c-warning);
  border-radius:var(--radius-sm);padding:14px 44px 14px 16px;margin:0 0 20px;
  scroll-margin-top:calc(var(--header-h) + 16px);
}
.notice__close{
  position:absolute;right:8px;top:8px;width:30px;height:30px;
  border:0;background:transparent;color:#8a6508;font-size:22px;line-height:1;
  cursor:pointer;border-radius:50%;
}
.notice__close:hover{background:rgba(184,134,11,.15);}
.notice[hidden]{display:none;}
.notice__title{margin:0 0 4px;font-weight:700;color:#7a5b06;}
.notice__text{margin:0;font-size:.92rem;color:#6b5514;}

/* blocchi "Buono a sapersi" */
.info-row{
  display:grid;grid-template-columns:190px 1fr;gap:14px;align-items:start;
  padding:12px 0;border-bottom:1px solid var(--c-border);
}
.info-row:last-child{border-bottom:0;}
.info-row__label{
  display:flex;align-items:center;gap:7px;
  font-size:.82rem;font-weight:600;color:var(--c-muted);
}
.info-row__label .ico{color:var(--c-primary);}
.info-row .chips{margin:0;}
.chips--plain li{background:transparent;border-color:transparent;padding:2px 0;}
.chips--plain li:not(:last-child)::after{content:'·';margin-left:10px;color:var(--c-border);}

.v-block{
  padding-bottom:34px;margin-bottom:34px;border-bottom:1px solid var(--c-border);
  scroll-margin-top:calc(var(--header-h) + 16px);
}
.v-block:last-child{border-bottom:0;margin-bottom:0;}
.v-block h2{font-size:1.45rem;margin:0 0 14px;}
.v-block h3{margin:26px 0 10px;font-size:1.05rem;}

/* schede Menù / Recensioni: nessun bordo, nessuno sfondo,
   solo il contenuto che cambia sotto i due link */
.v-panel{padding-top:4px;scroll-margin-top:calc(var(--header-h) + 16px);}
.v-panel[hidden]{display:none;}
.v-panel h3{margin:26px 0 10px;font-size:1.05rem;}
.v-panel h3:first-child{margin-top:0;}

/* titolo della scheda aperta */
.panel-title{font-size:1.4rem;margin:0 0 16px;line-height:1.3;}

/* servizi */
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:16px 0 0;}
.chips li{
  background:var(--c-bg-alt);border:1px solid var(--c-border);border-radius:100px;
  padding:6px 14px;font-size:.82rem;color:var(--c-dark);
}

.week-table--wide th{width:130px;}
.week-table--wide td{text-align:left;}

/* ---------- menu ----------
   Piatto a sinistra, ingredienti sotto in piccolo, prezzo a destra
   collegato da una linea di puntini. */
/* separatore di sezione con immagine */
.menu-banner{
  position:relative;border-radius:var(--radius);overflow:hidden;
  margin:34px 0 14px;background:var(--c-dark);
}
.menu-banner:first-child{margin-top:6px;}
.menu-banner img{width:100%;height:130px;object-fit:cover;opacity:.72;}
.menu-banner__title{
  position:absolute;left:20px;bottom:14px;color:#fff;
  font-family:var(--font-head);font-size:1.5rem;font-weight:700;
  text-shadow:0 1px 12px rgba(0,0,0,.55);
}

/* titolo di sezione senza immagine */
.menu-section{
  font-size:1.35rem;margin:34px 0 6px;padding-bottom:8px;
  border-bottom:2px solid var(--c-dark);
}
.menu-section:first-child{margin-top:6px;}

.menu-cat{
  font-family:var(--font-body);font-size:.8rem;text-transform:uppercase;
  letter-spacing:.09em;color:var(--c-primary);margin:26px 0 4px;font-weight:700;
}
.menu-note{margin:0 0 10px;font-size:.86rem;color:var(--c-muted);font-style:italic;}

.menu-list{list-style:none;margin:0 0 6px;padding:0;}
.dish{padding:10px 0;}
.dish__line{
  display:flex;align-items:baseline;gap:6px;margin:0;
}
.dish__name{font-weight:600;color:var(--c-dark);}
.dish__lead{
  flex:1;min-width:18px;height:0;
  border-bottom:1px dotted #c9c4bc;transform:translateY(-3px);
}
.dish__price{font-weight:700;white-space:nowrap;}
.dish__price small,.dish__glass small{font-weight:400;font-size:.72rem;color:var(--c-muted);}
.dish__glass{white-space:nowrap;color:var(--c-muted);font-size:.9rem;margin-right:10px;}
.dish__desc{margin:3px 0 0;font-size:.85rem;color:var(--c-muted);line-height:1.45;}

/* ---------- recensioni ---------- */
.rating-box{
  display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:center;
  background:var(--c-bg-alt);border-radius:var(--radius);padding:22px;margin-bottom:18px;
}
.rating-box__score{text-align:center;}
.rating-box__n{font-size:2.6rem;font-weight:700;color:var(--c-dark);line-height:1;}
.rating-box__max{color:var(--c-muted);font-size:1rem;}
.rating-box__score p{margin:8px 0 0;font-size:.88rem;}
.rating-box__bars{display:flex;flex-direction:column;gap:9px;}
.rbar{display:grid;grid-template-columns:88px 1fr 34px;gap:12px;align-items:center;font-size:.84rem;}
.rbar__label{color:var(--c-muted);}
.rbar__track{height:6px;border-radius:100px;background:#e2ded8;overflow:hidden;}
.rbar__fill{display:block;height:100%;background:var(--c-success);border-radius:100px;}
.rbar__val{font-weight:700;text-align:right;}

/* ---------- stelle ---------- */
.stars{
  position:relative;display:inline-block;white-space:nowrap;
  font-size:1rem;line-height:1;letter-spacing:2px;color:#dcd6cc;
}
.stars__bg{color:inherit;}
.stars__fg{
  position:absolute;left:0;top:0;overflow:hidden;
  width:var(--pct,0%);color:#e8a52a;
}
.stars--lg{font-size:1.35rem;}
.stars--sm{font-size:.85rem;letter-spacing:1px;}
.stars__val{margin-left:8px;font-weight:700;font-size:.9rem;color:var(--c-dark);}

/* stelle nelle schede dei risultati */
.card__rating{display:flex;align-items:center;gap:8px;margin:0;font-size:.78rem;color:var(--c-muted);}
.card__rating__score{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--c-success);color:#fff;
  border-radius:6px;padding:2px 7px;
  font-weight:800;font-size:.82rem;line-height:1.3;
}
.card__rating__count{color:var(--c-muted);}

/* selettore a stelle nel modulo di recensione */
.rate-row{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:14px 0;border-bottom:1px solid var(--c-border);
}
.rate-row__label{font-size:.95rem;font-weight:600;color:var(--c-dark);}
.rate-row__label small{font-weight:400;color:var(--c-muted);font-size:.82rem;}

.star-input{display:inline-flex;flex-direction:row-reverse;gap:4px;}
.star-input input{position:absolute;left:-9999px;}
.star-input label{
  font-size:2rem;line-height:1;color:#dcd6cc;cursor:pointer;margin:0 !important;
  transition:color .12s,transform .12s;
}
.star-input label:hover{transform:scale(1.12);}
/* la stella scelta e tutte quelle alla sua sinistra (che nel DOM la seguono) */
.star-input input:checked ~ label,
.star-input label:hover,
.star-input label:hover ~ label{color:#e8a52a;}
.star-input input:focus-visible + label{outline:2px solid var(--c-primary);outline-offset:3px;border-radius:4px;}

.reviews{list-style:none;margin:18px 0 0;padding:0;}
.review{padding:18px 0;border-bottom:1px solid var(--c-border);}
.review:last-child{border-bottom:0;}
.review__head{display:flex;align-items:center;gap:12px;}
.review__score{
  background:var(--c-dark);color:#fff;border-radius:var(--radius-sm);
  padding:3px 9px;font-size:.82rem;font-weight:700;
}
.review__date{margin:2px 0 8px;}
.review__text{margin:0;font-size:.94rem;}
.review__reply{
  margin-top:12px;padding:12px 14px;background:var(--c-bg-alt);
  border-radius:var(--radius-sm);font-size:.88rem;
}
.review__reply strong{display:block;margin-bottom:4px;font-size:.78rem;text-transform:uppercase;
  letter-spacing:.05em;color:var(--c-muted);}
.review__reply p{margin:0;}

/* ---------- mappa ---------- */
.map{border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;}
.map iframe{width:100%;height:320px;border:0;display:block;}
.map-address{font-size:.92rem;margin:0;}

/* ---------- modulo di prenotazione ----------
   Scorre con la pagina e si blocca sotto la testata.
   max-height + overflow interno sono la parte importante: senza,
   un modulo più alto della finestra scorrerebbe via verso l'alto
   (position:sticky non trattiene ciò che non ci sta nello schermo). */
.booking-card{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:24px;box-shadow:var(--shadow-lg);

  position:sticky;
  top:calc(var(--header-h) + 16px);
  scroll-margin-top:calc(var(--header-h) + 16px);

  max-height:calc(100vh - var(--header-h) - 32px);
  overflow-y:auto;
  overscroll-behavior:contain;   /* la rotellina non "sfonda" sulla pagina */
}
/* barra di scorrimento discreta */
.booking-card::-webkit-scrollbar{width:8px;}
.booking-card::-webkit-scrollbar-thumb{background:#dcd8d2;border-radius:100px;}
.booking-card::-webkit-scrollbar-thumb:hover{background:#c9c4bc;}
.booking-card{scrollbar-width:thin;scrollbar-color:#dcd8d2 transparent;}
.booking-card__title{margin:0 0 4px;font-size:1.3rem;}
.booking-card__hint{font-size:.85rem;color:var(--c-muted);margin-bottom:18px;}

/* ---------- prenotazione rapida (prenota-ora.php) ----------
   Stessa .booking-card di sempre, ma sola in pagina: niente colonna
   affiancata da inseguire con lo scroll, quindi via sticky/max-height. */
.quick-booking{max-width:640px;}
.quick-booking__back{
  display:inline-block;margin-bottom:18px;font-size:.9rem;color:var(--c-muted);
}
.quick-booking__back:hover{color:var(--c-primary);}
.venue-title--compact{margin-bottom:18px;}
.venue-title--compact h1{font-size:1.6rem;margin-bottom:8px;}
/* etichette città/categoria/cucina più piccole e su una riga sola:
   qui c'è meno spazio che sulla scheda intera del locale, e con
   testi lunghi (es. "Pescato fresco") andavano a capo */
.venue-title--compact .venue-subtitle,
.venue-title--compact .venue-subtitle__tags{
  flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
}
.venue-title--compact .venue-subtitle::-webkit-scrollbar,
.venue-title--compact .venue-subtitle__tags::-webkit-scrollbar{display:none;}
.venue-title--compact .venue-subtitle__chip{
  flex:0 0 auto;font-size:.74rem;padding:3px 9px;gap:4px;
}
.venue-title--compact .venue-subtitle__chip .ico{width:12px;height:12px;}
.booking-card--standalone{
  position:static;max-height:none;overflow-y:visible;
}
.booking-card--standalone .alert--info{margin-bottom:18px;}

/* pulsanti orario */
.slot-picker{margin-bottom:14px;}
.slot-picker__label{
  display:block;font-size:.88rem;font-weight:600;color:var(--c-dark);margin-bottom:8px;
}
.slot-picker__list{display:flex;flex-wrap:wrap;gap:8px;}
.slot-picker__empty{margin:0;font-size:.85rem;color:var(--c-muted);}
.slot{
  border:1px solid var(--c-border);background:#fff;color:var(--c-dark);
  border-radius:var(--radius-sm);padding:9px 14px;
  font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;
  transition:border-color .12s,background .12s,color .12s;
}
.slot:hover{border-color:var(--c-primary);color:var(--c-primary);}
.slot.is-active{background:var(--c-primary);border-color:var(--c-primary);color:#fff;}
.slot--off{
  opacity:.45;cursor:not-allowed;text-decoration:line-through;
  background:var(--c-bg-alt);color:var(--c-muted);
}
.slot--off:hover{border-color:var(--c-border);color:var(--c-muted);}

.availability{font-size:.85rem;margin:-6px 0 14px;min-height:1.2em;color:var(--c-muted);}
.availability:empty{margin:0;min-height:0;}
.availability--loading{color:var(--c-muted);font-style:italic;}
.availability--ok{color:var(--c-success);}
.availability--error{color:var(--c-danger);font-weight:600;}
.form select option:disabled{color:#b0b0b0;}

/* ---------- barra fissa su telefono ---------- */
.mobile-cta{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:#fff;border-top:1px solid var(--c-border);
  padding:10px 16px;box-shadow:0 -4px 18px rgba(0,0,0,.09);
  align-items:center;justify-content:space-between;gap:16px;
}
.mobile-cta strong{display:block;font-size:.9rem;}

/* ---------- avviso cookie/privacy ---------- */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:90;
  background:var(--c-dark);color:#fff;
  box-shadow:0 -4px 18px rgba(0,0,0,.18);
}
.cookie-banner[hidden]{display:none;}
.cookie-banner__inner{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:14px;padding:16px 0;
}
.cookie-banner__text{margin:0;font-size:.85rem;line-height:1.5;color:#e6e6e6;flex:1 1 480px;}
.cookie-banner__text a{color:#fff;text-decoration:underline;}
.cookie-banner__actions{flex:0 0 auto;}
@media (max-width:640px){
  .cookie-banner__inner{padding:14px 16px;}
  .cookie-banner__actions{width:100%;}
  .cookie-banner__actions .btn{width:100%;}
}

/* ---------- visualizzatore foto ---------- */
.lightbox{
  position:fixed;inset:0;z-index:100;background:rgba(12,14,17,.94);
  display:flex;align-items:center;justify-content:center;
}
.lightbox[hidden]{display:none;}
.lightbox img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:6px;}
.lightbox__close,.lightbox__nav{
  position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;
  cursor:pointer;font-size:30px;line-height:1;border-radius:50%;
  width:48px;height:48px;display:flex;align-items:center;justify-content:center;
}
.lightbox__close:hover,.lightbox__nav:hover{background:rgba(255,255,255,.25);}
.lightbox__close{top:20px;right:20px;font-size:26px;}
.lightbox__nav--prev{left:16px;}
.lightbox__nav--next{right:16px;}
.lightbox__count{position:absolute;bottom:20px;color:#cfd3d8;font-size:.85rem;margin:0;}

/* ---------- 10. PAGINA PRENOTAZIONE ---------- */
.ticket{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:28px;box-shadow:var(--shadow);margin-bottom:20px;
}
.ticket__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;}
.ticket__code{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--c-muted);margin:0;}
.ticket__title{margin:2px 0 4px;}
.ticket__msg{background:var(--c-bg-alt);padding:12px 14px;border-radius:var(--radius-sm);font-size:.92rem;}
.ticket__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0;}
.ticket__grid dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--c-muted);}
.ticket__grid dd{margin:2px 0 0;font-weight:600;}
.ticket__notes{font-size:.92rem;background:var(--c-bg-alt);padding:12px 14px;border-radius:var(--radius-sm);}
.ticket__actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:22px;}

/* ---------- 11. PANNELLI ---------- */
.panel{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);}
.panel--form{max-width:520px;margin:0 auto;}
.panel-head{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:20px;flex-wrap:wrap;margin-bottom:26px;
}
.panel-head h1{margin:0 0 4px;font-size:1.5rem;}
.panel-head__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}

.filters-toggle{margin-bottom:24px;}
.filters-toggle summary{list-style:none;cursor:pointer;}
.filters-toggle summary::-webkit-details-marker{display:none;}
.filters-toggle[open] summary{margin-bottom:14px;}
.filters-toggle .filters{margin-bottom:0;}

.stats{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.stat{
  background:#fff;border:1px solid var(--c-border);border-radius:100px;
  padding:5px 12px;min-width:0;
  display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap;
}
.stat__n{font-size:1rem;font-weight:700;color:var(--c-primary);line-height:1.1;}
.stat span:last-child{font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;color:var(--c-muted);}

.filters{
  display:flex;gap:14px;align-items:end;flex-wrap:wrap;
  background:var(--c-bg-alt);padding:18px;border-radius:var(--radius);margin-bottom:24px;
}
.filters .form__group{margin:0;min-width:170px;}
.filters label{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;color:var(--c-muted);margin-bottom:6px;}

.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);}
.table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:760px;}
.table th{
  text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--c-muted);background:var(--c-bg-alt);padding:12px 14px;border-bottom:1px solid var(--c-border);
}
.table td{padding:14px;border-bottom:1px solid var(--c-border);vertical-align:top;}
.table tr:last-child td{border-bottom:0;}
.table td.center{text-align:center;}
.table input[type=text],.table input[type=number]{
  padding:7px 9px;border:1px solid var(--c-border);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.86rem;
}

.reject{display:inline-block;position:relative;margin-left:6px;}
.reject summary{list-style:none;cursor:pointer;}
.reject summary::-webkit-details-marker{display:none;}
.reject__form{
  position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:260px;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:14px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:10px;
}
.reject__form input[type=text]{
  width:100%;padding:9px 10px;border:1px solid var(--c-border);
  border-radius:var(--radius-sm);font-family:inherit;font-size:.88rem;
}

/* ---------- 11b. COPERTI PER FASCIA ORARIA ---------- */
.occupancy{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:20px;margin-bottom:24px;
}
.occupancy__head{margin-bottom:16px;}
.occupancy__head h2{margin:0 0 2px;font-size:1.15rem;}

.occ-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;}
.occ{
  position:relative;overflow:hidden;
  border:1px solid var(--c-border);border-radius:var(--radius-sm);
  padding:10px 12px 13px;display:flex;flex-direction:column;gap:2px;background:var(--c-bg-alt);
}
.occ__row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.occ__time{font-weight:700;color:var(--c-dark);}
.occ__n{font-size:1.1rem;font-weight:700;line-height:1;}
.occ__bar{
  display:block;position:absolute;left:0;right:0;bottom:0;
  height:4px;background:#e2ded8;overflow:hidden;
}
.occ__fill{display:block;height:100%;background:var(--c-success);}
.occ__left{
  font-size:.74rem;color:var(--c-muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.occ--ok   .occ__n{color:var(--c-success);}
.occ--high .occ__n{color:var(--c-warning);}
.occ--high .occ__fill{background:var(--c-warning);}
.occ--full{background:#fdeceb;border-color:#f3c9c5;}
.occ--full .occ__n{color:var(--c-danger);}
.occ--full .occ__fill{background:var(--c-danger);}
.occ--none .occ__n{color:var(--c-dark);}

/* ---------- 11c. ORARI SETTIMANALI ---------- */
.week-table{width:100%;border-collapse:collapse;font-size:.9rem;}
.week-table th{
  text-align:left;font-weight:600;color:var(--c-dark);
  padding:5px 12px 5px 0;white-space:nowrap;font-family:var(--font-body);
}
.week-table td{padding:5px 0;text-align:right;color:var(--c-text);}
.week-table tr.is-today th,.week-table tr.is-today td{color:var(--c-primary);font-weight:700;}
.closed-tag{
  display:inline-block;background:#eee;color:#666;border-radius:100px;
  padding:1px 10px;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;
}

.week-editor{border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;margin-bottom:8px;}
.week-editor__head,.week-row{
  display:grid;grid-template-columns:120px 70px 1fr 100px;gap:12px;align-items:center;padding:10px 14px;
}
.week-editor__head{
  background:var(--c-bg-alt);border-bottom:1px solid var(--c-border);
  font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--c-muted);font-weight:700;
}
.week-row{border-bottom:1px solid var(--c-border);}
.week-row:last-child{border-bottom:0;}
.week-row__day{font-weight:600;color:var(--c-dark);}
.week-row__closed{display:flex;align-items:center;justify-content:center;}
.week-row input[type=text],.week-row input[type=number]{
  width:100%;padding:8px 10px;border:1px solid var(--c-border);
  border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;
}
.sr-inline{position:absolute;left:-9999px;}

/* ---------- 11d. GESTIONE CONTENUTI (foto, menù, recensioni) ---------- */
.panel-nav{
  display:flex;gap:24px;border-bottom:1px solid var(--c-border);
  margin-bottom:24px;overflow-x:auto;
}
.panel-nav a{
  padding:0 0 12px;font-size:.92rem;font-weight:600;color:var(--c-muted);
  white-space:nowrap;border-bottom:2px solid transparent;
}
.panel-nav a:hover{color:var(--c-dark);text-decoration:none;}
.panel-nav a.is-active{color:var(--c-primary);border-bottom-color:var(--c-primary);}

/* pagina Informazioni del pannello */
.info-block{margin-bottom:22px;}
.info-block h2{font-size:1.15rem;margin:0 0 4px;}
.check-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:8px 18px;margin:16px 0 18px;
}
.check-grid--small{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));}
.check-item{
  display:flex;align-items:center;gap:9px;font-size:.9rem;
  font-weight:400 !important;color:var(--c-text);margin:0 !important;cursor:pointer;
}
.check-item input{flex:0 0 auto;}

.photo-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:16px;margin-bottom:20px;
}
.photo-item{
  position:relative;background:#fff;border:1px solid var(--c-border);
  border-radius:var(--radius);overflow:hidden;
}
.photo-item > img{width:100%;height:140px;object-fit:cover;display:block;}
.photo-item__badge{
  position:absolute;top:8px;left:8px;background:var(--c-primary);color:#fff;
  border-radius:100px;padding:3px 10px;font-size:.7rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;
}
.photo-item__fields{padding:12px;display:flex;flex-direction:column;gap:8px;}
.photo-item__fields label{font-size:.74rem;color:var(--c-muted);font-weight:600;}
.photo-item__fields input{
  width:100%;margin-top:3px;padding:7px 9px;border:1px solid var(--c-border);
  border-radius:var(--radius-sm);font-family:inherit;font-size:.85rem;
}

.photo-del{display:flex;flex-wrap:wrap;gap:14px;}
.photo-del form{
  display:flex;flex-direction:column;gap:6px;align-items:center;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-sm);padding:8px;
}
.photo-del img{width:110px;height:74px;object-fit:cover;border-radius:4px;}

/* ---------- editor del menù (pannello) ---------- */
.menu-new{margin-bottom:26px;}
.menu-new h2{font-size:1.15rem;margin:0 0 4px;}
.form--inline{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-top:14px;}
.form--inline .form__group{margin:0;flex:1;min-width:200px;}

.menu-editor-title{font-size:1.15rem;margin:0 0 14px;}

/* sezione nell'editor */
.menu-section-box{
  background:var(--c-bg-alt);border:1px solid var(--c-border);
  border-radius:var(--radius);padding:20px;margin-bottom:26px;
}
.menu-section-box__top{
  display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;
}
.menu-section-box__top h3{margin:0;font-size:1.3rem;}
.menu-section-box__kicker{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--c-muted);font-weight:700;
}
.menu-section-box__img{
  width:120px;height:70px;object-fit:cover;border-radius:var(--radius-sm);
  border:1px solid var(--c-border);
}
.menu-logo-current__img{
  width:110px;height:110px;object-fit:contain;border-radius:var(--radius-sm);
  border:1px solid var(--c-border);background:#fff;padding:6px;
}
.section-img-form{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  padding:10px 12px;background:#fff;border:1px dashed var(--c-border);
  border-radius:var(--radius-sm);margin-bottom:16px;font-size:.88rem;
}

.menu-cat-box--section{border-color:var(--c-dark);}
.menu-cat-box--child{margin-left:22px;border-left:3px solid var(--c-primary);}
.menu-cat-box__label{
  font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--c-muted);font-weight:700;margin:0 0 10px;
}
.cat-add{
  display:grid;grid-template-columns:1.4fr 1fr auto;gap:10px;align-items:center;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-sm);
  padding:12px;margin:0 0 12px 22px;
}
.cat-add input{
  padding:9px 11px;border:1px solid var(--c-border);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.9rem;
}

.menu-cat-box{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:20px;margin-bottom:20px;box-shadow:var(--shadow);
}
.menu-cat-box__head{
  display:grid;grid-template-columns:1.2fr 1.6fr 90px;gap:14px;
  padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--c-border);
}
.menu-cat-box__head .form__group{margin:0;}
.form__group--tiny{max-width:110px;}
.menu-cat-box__head input{
  width:100%;padding:9px 11px;border:1px solid var(--c-border);
  border-radius:var(--radius-sm);font-family:inherit;font-size:.95rem;
}
.menu-cat-box__head .form__group:first-child input{font-weight:700;}
.menu-cat-box__desc{margin-bottom:16px;}
.menu-cat-box__desc label{
  display:block;font-size:.88rem;font-weight:600;color:var(--c-dark);margin-bottom:6px;
}
.menu-cat-box__desc label small{font-weight:400;color:var(--c-muted);}
.menu-cat-box__desc textarea{
  width:100%;min-height:92px;padding:11px 12px;border:1px solid var(--c-border);
  border-radius:var(--radius-sm);font-family:inherit;font-size:.95rem;
  color:var(--c-text);resize:vertical;
}
.menu-cat-box__desc textarea:focus{
  outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(192,57,43,.12);
}
.menu-cat-box__actions{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;
}

/* righe dei piatti */
.dish-head,.dish-row{
  display:grid;grid-template-columns:1fr 100px 70px 60px 60px;gap:10px;align-items:center;
}
/* con i vini c'è una colonna in più: calice e bottiglia */
.dish-head--wine,.dish-row--wine{grid-template-columns:1fr 90px 90px 70px 60px 60px;}
.dish-add--wine{grid-template-columns:1.1fr 1.3fr 100px 100px auto;}
.dish-head{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--c-muted);font-weight:700;padding-bottom:6px;
}
.dish-head span:not(:first-child),
.dish-row > *:not(.dish-row__main){text-align:center;}
.dish-row{padding:7px 0;border-bottom:1px dashed var(--c-border);}
.dish-row:last-of-type{border-bottom:0;}
.dish-row__main{display:flex;flex-direction:column;gap:5px;}
.dish-row input[type=text],.dish-row input[type=number]{
  width:100%;padding:8px 10px;border:1px solid var(--c-border);
  border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;
}
.dish-row__main input:first-child{font-weight:600;}
.dish-row__main input:last-child{font-size:.85rem;color:var(--c-muted);}
.dish-row__price,.dish-row__sort{text-align:center;}
.dish-row__flag{display:flex;justify-content:center;}
.dish-row__flag--del input{accent-color:var(--c-danger);}

.dish-add{
  display:grid;grid-template-columns:1.1fr 1.4fr 100px auto;gap:10px;align-items:center;
  background:var(--c-bg-alt);border-radius:var(--radius-sm);padding:12px;margin-top:16px;
}
.dish-add input{
  padding:9px 11px;border:1px solid var(--c-border);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.9rem;
}
.cat-del{margin-top:12px;text-align:right;}

.review-reply{margin-top:12px;}
.review-reply label{display:block;font-size:.78rem;color:var(--c-muted);font-weight:600;margin-bottom:5px;}
.review-reply textarea{
  width:100%;padding:9px 11px;border:1px solid var(--c-border);border-radius:var(--radius-sm);
  font-family:inherit;font-size:.9rem;margin-bottom:8px;resize:vertical;
}

.pager{display:flex;gap:6px;flex-wrap:wrap;margin-top:24px;justify-content:center;}
.pager a{
  border:1px solid var(--c-border);border-radius:var(--radius-sm);
  padding:7px 13px;font-size:.88rem;color:var(--c-dark);
}
.pager a:hover{border-color:var(--c-primary);text-decoration:none;}
.pager a.is-active{background:var(--c-primary);border-color:var(--c-primary);color:#fff;}

/* ---------- 11e. PAGINA "IL TUO WIDGET" ---------- */
.share-layout{display:grid;grid-template-columns:1fr 380px;gap:32px;}
.share-blocks{display:flex;flex-direction:column;gap:20px;}
.share-block{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:22px;
}
.share-block h2{font-size:1.1rem;margin:0 0 6px;}

.code-box{
  display:flex;align-items:flex-start;gap:12px;
  background:var(--c-dark);border-radius:var(--radius-sm);padding:14px;margin:12px 0 8px;
}
.code-box code{
  flex:1;color:#e8eef5;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.8rem;line-height:1.55;word-break:break-all;
}
.code-box--multi code{white-space:pre-wrap;word-break:normal;}
.code-box .btn{flex:0 0 auto;background:#fff;}
.code-box .btn.is-copied{background:var(--c-success);color:#fff;border-color:var(--c-success);}

.tips{margin:10px 0 0;padding-left:18px;font-size:.9rem;color:var(--c-muted);}
.tips li{margin-bottom:6px;}
.tips strong{color:var(--c-dark);}

.share-preview{
  position:sticky;top:calc(var(--header-h) + 16px);background:var(--c-bg-alt);
  border:1px solid var(--c-border);border-radius:var(--radius);padding:20px;
}
.share-preview h2{font-size:1.1rem;margin:0 0 14px;}
.phone{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  overflow:hidden;margin-bottom:10px;
}
.phone iframe{width:100%;height:640px;border:0;display:block;}

/* Widget su telefono. Il codice da copiare contiene URL lunghi senza
   spazi: con word-break:normal non andavano a capo e allargavano la
   colonna della griglia (1fr non scende sotto il contenuto), portando
   la pagina a oltre 500px su uno schermo da 375. minmax(0,1fr) e
   min-width:0 tengono la colonna nella larghezza dello schermo,
   overflow-wrap:anywhere manda a capo gli URL. */
.share-layout{grid-template-columns:minmax(0,1fr) 380px;}
.share-blocks,.share-block,.share-preview{min-width:0;}
.code-box code{min-width:0;overflow-wrap:anywhere;}
@media (max-width:960px){
  .share-layout{grid-template-columns:minmax(0,1fr);gap:24px;}
}
@media (max-width:720px){
  .share-block{padding:16px;}
  .share-preview{padding:14px;}
  .code-box{flex-direction:column;align-items:stretch;gap:10px;padding:12px;}
  .code-box .btn{align-self:flex-end;}
  .code-box code{font-size:.76rem;}
  .filters{flex-direction:column;align-items:stretch;padding:14px;}
  .filters .form__group{min-width:0;}
  .filters .form__group input,.filters .form__group select{width:100%;}
  .filters .btn{width:100%;}
  .phone iframe{height:560px;}
}

/* ============================================================
   13. HOME: INVITO AI RISTORATORI (immagine + claim)
   ============================================================ */
.join__inner{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  gap:44px;align-items:center;
}
.join__media{margin:0;}
.join__media img{
  width:100%;aspect-ratio:4/3;object-fit:cover;
  border-radius:var(--radius);box-shadow:var(--shadow-lg);background:var(--c-bg-alt);
}
.join__kicker{
  margin:0 0 6px;font-size:.82rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--c-primary);
}
.join__title{font-size:2rem;margin:0 0 14px;}
.join__text{margin:0 0 18px;font-size:1.05rem;}
.join__points{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:8px;}
.join__points li{position:relative;padding-left:26px;}
.join__points li::before{
  content:"";position:absolute;left:4px;top:.55em;width:9px;height:9px;
  border-radius:50%;background:var(--c-primary);
}
.join__cta{margin:0 0 8px;}
.join__note{margin:0;}

/* ============================================================
   14. PAGINA ADESIONE PARTNER (diventa-partner.php)
   ============================================================ */
.partner-hero{
  position:relative;isolation:isolate;overflow:hidden;
  min-height:560px;display:flex;align-items:center;
  background:var(--c-dark);
}
.partner-hero__media{
  position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
}
.partner-hero__shade{
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(15,21,29,.88) 0%,rgba(15,21,29,.66) 50%,rgba(15,21,29,.3) 100%);
}
.partner-hero__content{padding:86px 0 150px;color:#fff;}
.partner-hero__kicker{
  margin:0 0 10px;font-size:.82rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--c-primary);
}
.partner-hero__title{
  max-width:760px;margin:0 0 18px;color:#fff;font-size:clamp(2.35rem,5vw,4.65rem);
  line-height:1.02;letter-spacing:-.035em;text-wrap:balance;
}
.partner-hero__lead{
  max-width:650px;margin:0 0 28px;color:rgba(255,255,255,.9);
  font-size:1.16rem;line-height:1.65;
}
.partner-hero__cta{box-shadow:0 12px 30px rgba(0,0,0,.22);}
.partner-content{
  position:relative;z-index:2;margin-top:-92px;padding:0 0 64px;
  background:linear-gradient(180deg,transparent 0,transparent 92px,#f7f2ec 92px,#fff 100%);
}
.partner-content__inner{
  display:grid;grid-template-columns:minmax(0,7fr) minmax(340px,5fr);
  gap:44px;align-items:start;
}
.partner-form{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow-lg);position:relative;
  scroll-margin-top:calc(var(--header-h) + 20px);
}
.partner-form__title{margin:0 0 4px;font-size:1.45rem;}
.partner-form__sub{margin:0 0 18px;color:var(--c-muted);font-size:.94rem;}
.partner-form .form__check{margin:14px 0 18px;}
.partner-form__done{text-align:center;padding:14px 0;}
.partner-form__done h2{margin:0 0 10px;}

.partner-pitch{
  position:relative;overflow:hidden;isolation:isolate;
  border-radius:var(--radius);box-shadow:var(--shadow-lg);
  padding:44px 40px;color:#fff;
  background:var(--c-dark);
}
.partner-pitch::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(circle at 92% 8%,rgba(238,120,67,.2),transparent 34%),
    linear-gradient(145deg,rgba(255,255,255,.04),transparent 55%);
}
.partner-pitch__kicker{
  margin:0 0 6px;font-size:.82rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--c-primary);
}
.partner-pitch__title{font-size:2.15rem;margin:0 0 14px;color:var(--c-primary);}
.partner-pitch__lead{font-size:1.08rem;margin:0 0 26px;color:rgba(255,255,255,.94);}
.partner-pitch__note{
  margin:24px 0 0;padding:14px 16px;background:rgba(255,255,255,.94);
  border-left:3px solid var(--c-primary);border-radius:var(--radius-sm);
  font-size:.94rem;color:var(--c-text);
}
.partner-benefits{list-style:none;margin:0;padding:0;display:grid;gap:18px;}
.partner-benefits li{display:flex;gap:14px;align-items:flex-start;}
.partner-benefits .ico{
  flex:0 0 auto;width:26px;height:26px;color:var(--c-primary);margin-top:2px;
}
.partner-benefits strong{display:block;color:#fff;margin-bottom:2px;}
.partner-benefits span{display:block;color:rgba(255,255,255,.78);font-size:.94rem;line-height:1.5;}

/* Stessa struttura di .partner-benefits, ma per uno sfondo chiaro (demo.php) */
.demo-benefits{list-style:none;margin:0;padding:0;display:grid;gap:18px;}
.demo-benefits li{display:flex;gap:14px;align-items:flex-start;}
.demo-benefits .ico{
  flex:0 0 auto;width:26px;height:26px;color:var(--c-primary);margin-top:2px;
}
.demo-benefits strong{display:block;color:var(--c-dark);margin-bottom:2px;}
.demo-benefits span{display:block;color:var(--c-muted);font-size:.94rem;line-height:1.5;}

/* ============================================================
   15-bis. FAQ (faq.php)
   ============================================================ */
.faq-group{margin-bottom:40px;}
.faq-group:last-child{margin-bottom:0;}
.faq-group__title{
  font-size:1.3rem;margin:0 0 18px;padding-bottom:10px;
  border-bottom:2px solid var(--c-primary);color:var(--c-dark);
}
.faq-item{
  border:1px solid var(--c-border);border-radius:var(--radius);
  margin-bottom:12px;background:#fff;overflow:hidden;
  transition:border-color .15s,box-shadow .15s;
}
.faq-item:hover{border-color:#d8d2c8;}
.faq-item[open]{border-color:var(--c-primary);box-shadow:var(--shadow);}

/* Domanda: serif, scura, in evidenza — netta differenza dalla risposta */
.faq-item summary{
  list-style:none;cursor:pointer;padding:16px 54px 16px 20px;
  font-family:var(--font-head);font-size:1.08rem;font-weight:700;
  color:var(--c-dark);position:relative;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);
  width:26px;height:26px;border-radius:50%;background:var(--c-bg-alt);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-body);font-size:1.15rem;line-height:1;font-weight:400;
  color:var(--c-primary);transition:background .15s,color .15s;
}
.faq-item[open] summary{color:var(--c-primary);border-bottom:1px solid var(--c-border);}
.faq-item[open] summary::after{content:"–";background:var(--c-primary);color:#fff;}

/* Risposta: sans-serif, più piccola e chiara, su sfondo tenue con accento */
.faq-item__body{
  padding:14px 20px 18px;background:var(--c-bg-alt);
  border-left:3px solid var(--c-primary);
}
.faq-item__body p{
  margin:0;font-family:var(--font-body);font-size:.92rem;
  line-height:1.65;color:var(--c-muted);
}
.faq-item__body a{color:var(--c-primary);font-weight:600;}

/* ============================================================
   15-ter. ASSISTENZA (supporto.php)
   ============================================================ */
.support-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:20px;margin-top:8px;
}
.support-card{display:block;color:inherit;transition:box-shadow .15s,border-color .15s;}
.support-card .ico{width:26px;height:26px;color:var(--c-primary);margin-bottom:10px;}
.support-card h2{margin:0 0 6px;font-size:1.05rem;}
.support-card p{margin:0;color:var(--c-muted);font-size:.9rem;line-height:1.55;}
.support-card p a{color:var(--c-primary);}
a.support-card:hover{border-color:var(--c-primary);box-shadow:var(--shadow-lg);text-decoration:none;}

/* ============================================================
   16. PAGINE LEGALI (privacy, cookie, termini)
   ============================================================ */
.legal-hero{
  background:var(--c-dark);color:#fff;padding:44px 0 38px;
}
.legal-hero__kicker{
  margin:0 0 6px;font-size:.78rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(255,255,255,.6);
}
.legal-hero__title{color:#fff;margin:0 0 10px;font-size:2rem;}
.legal-hero__intro{margin:0 0 10px;color:rgba(255,255,255,.86);max-width:60ch;}
.legal-hero__meta{margin:0;font-size:.85rem;color:rgba(255,255,255,.55);}

.legal-nav{background:#fff;border-bottom:1px solid var(--c-border);}
.legal-nav__inner{display:flex;flex-wrap:wrap;gap:8px;padding-top:12px;padding-bottom:12px;}
.legal-nav__link{
  display:inline-block;padding:6px 14px;border-radius:999px;
  border:1px solid var(--c-border);font-size:.88rem;font-weight:600;
  color:var(--c-text);background:#fff;
}
.legal-nav__link:hover{border-color:var(--c-primary);color:var(--c-primary);text-decoration:none;}
.legal-nav__link.is-current{
  background:var(--c-primary);border-color:var(--c-primary);color:#fff;
}

.legal{font-size:.98rem;}
.legal h2{
  margin-top:2em;padding-top:.6em;border-top:1px solid var(--c-border);font-size:1.25rem;
}
.legal h2:first-of-type{border-top:0;padding-top:0;margin-top:1em;}
.legal h3{margin-top:1.6em;font-size:1.05rem;}
.legal ul,.legal ol{padding-left:1.3em;margin:0 0 1.2em;}
.legal li{margin-bottom:.5em;}
.legal code{
  background:var(--c-bg-alt);border:1px solid var(--c-border);border-radius:4px;
  padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.85em;
}
.table--legal{min-width:0;margin:0 0 1.4em;border:1px solid var(--c-border);border-radius:var(--radius);}
.table--legal th,.table--legal td{font-size:.9rem;padding:10px 12px;vertical-align:top;}
.legal-contact{
  background:var(--c-bg-alt);border:1px solid var(--c-border);
  border-radius:var(--radius);padding:20px 22px;
}
.legal-contact h2{margin:0 0 10px;border-top:0;padding-top:0;font-size:1.1rem;}
.legal-contact p{margin:0;line-height:1.8;}

/* ============================================================
   13-bis. HOME: CLAIM PRENOTAZIONE (testo a sinistra, immagine a destra)
   L'immagine arriva da PHP (HOME_CLAIM_IMAGE in config.php), non da qui:
   per cambiarla non serve toccare questo file.
   ============================================================ */
.home-claim{padding:64px 0;}
.home-claim__inner{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  gap:44px;align-items:center;
}
/* Titolo (kicker), claim e testo: tre livelli distinti nei colori del sito */
.home-claim__kicker{
  margin:0 0 8px;font-size:.82rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--c-primary);
}
.home-claim__title{
  font-family:var(--font-head);font-size:2.1rem;margin:0 0 16px;color:var(--c-dark);
}
.home-claim__lead{font-size:1.08rem;margin:0;color:var(--c-muted);line-height:1.65;}

/* Immagine intera, mai ritagliata: si riduce per stare nell'altezza disponibile */
.home-claim__media{
  height:380px;display:flex;align-items:center;justify-content:center;
}
.home-claim__media img{
  max-width:100%;max-height:100%;width:auto;height:auto;
  object-fit:contain;border-radius:var(--radius);box-shadow:var(--shadow-lg);
}

/* ============================================================
   13-ter. HOME: TEASER RISTORATORI (immagine a sinistra, testo a destra)
   ============================================================ */
.partner-teaser{padding:64px 0;background:var(--c-dark);}
.partner-teaser__inner{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  gap:44px;align-items:center;
}
.partner-teaser__kicker{
  margin:0 0 8px;font-size:.82rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--c-primary);
}
.partner-teaser__title{
  font-family:var(--font-head);font-size:2.1rem;margin:0 0 16px;color:#fff;
}
.partner-teaser__lead{font-size:1.08rem;margin:0 0 28px;color:rgba(255,255,255,.82);line-height:1.65;}
.partner-teaser__actions{display:flex;gap:14px;flex-wrap:wrap;}
.partner-teaser__actions .btn--outline{background:transparent;border-color:rgba(255,255,255,.4);color:#fff;}
.partner-teaser__actions .btn--outline:hover{border-color:#fff;color:#fff;}

.partner-teaser__media{height:380px;display:flex;align-items:center;justify-content:center;}
.partner-teaser__media img{
  max-width:100%;max-height:100%;width:auto;height:auto;
  object-fit:contain;border-radius:var(--radius);box-shadow:var(--shadow-lg);
}

/* ---------- 11.b RECENSIONI IN UN TAP (pannello -> Reputazione) ---------- */
/* Pallino con i messaggi non letti, sulla voce di navigazione */
.panel-nav__dot{
  display:inline-block;min-width:18px;margin-left:6px;padding:0 5px;
  background:var(--c-primary);color:#fff;border-radius:9px;
  font-size:.7rem;line-height:18px;text-align:center;font-weight:600;
  vertical-align:1px;
}

/* Blocchi della pagina */
.tap-block{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:22px 24px;margin-bottom:18px;
}
.tap-block__head{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;margin-bottom:14px;
}
.tap-block__head h2{margin:0;font-size:1.15rem;}
.tap-block__foot{margin-top:14px;}
.tap-sub{margin:22px 0 12px;font-size:.95rem;color:var(--c-muted);font-weight:600;}

/* Messaggi privati */
.tap-msg{border-top:1px solid var(--c-border);padding:14px 0 4px;}
.tap-msg--new{border-left:3px solid var(--c-primary);padding-left:14px;}
.tap-msg--read{opacity:.72;}
.tap-msg__meta{margin:0 0 6px;font-size:.78rem;color:var(--c-muted);}
.tap-msg__text{margin:0 0 8px;line-height:1.65;white-space:pre-line;}
.tap-msg__contact{margin:0 0 10px;font-size:.88rem;}
.tap-archive{margin-top:22px;padding-top:8px;border-top:1px solid var(--c-border);}
.tap-archive h3{margin:0 0 4px;font-size:.9rem;color:var(--c-muted);}

/* Numeroni */
.tap-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;}
.tap-kpi{
  background:var(--c-bg-alt);border:1px solid var(--c-border);
  border-radius:var(--radius-sm);padding:14px 12px;text-align:center;
}
.tap-kpi__lbl{display:block;font-size:.74rem;text-transform:uppercase;
  letter-spacing:.04em;color:var(--c-muted);margin-bottom:4px;}
.tap-kpi__val{display:block;font-size:1.7rem;font-weight:700;line-height:1.1;}
.tap-kpi__sub{display:block;margin-top:3px;font-size:.78rem;color:var(--c-muted);}
.tap-kpi__sub.is-up{color:var(--c-success);}
.tap-kpi__sub.is-down{color:var(--c-danger);}

/* Grafico dell'andamento: SVG disegnato lato server, nessuna libreria */
.tap-chart{margin:0 0 12px;}
.tap-chart svg{width:100%;height:120px;display:block;}
.tap-chart figcaption{margin-top:6px;}

/* Google (ristretto) e andamento per social, affiancati: la scheda non
   cresce in altezza, si allarga in larghezza. Sotto i 720px tornano
   impilati, come il resto del pannello. */
.tap-split{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.tap-split__col > .tap-sub:first-child{margin-top:0;}
.tap-kpis--compact{grid-template-columns:repeat(3,1fr);gap:8px;}
.tap-kpis--compact .tap-kpi{padding:10px 6px;}
.tap-kpis--compact .tap-kpi__val{font-size:1.3rem;}
.tap-kpis--compact .tap-kpi__lbl{font-size:.66rem;letter-spacing:0;}
.tap-chart--compact svg{height:90px;}

/* Barre della ripartizione per portale */
.tap-bar{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:.88rem;}
.tap-bar__name{width:110px;color:var(--c-muted);}
.tap-bar__track{flex:1;height:8px;background:var(--c-bg-alt);
  border-radius:4px;overflow:hidden;}
.tap-bar__fill{display:block;height:100%;background:var(--c-primary);}
.tap-bar__pct{width:40px;text-align:right;}

.tap-link code{
  display:inline-block;background:var(--c-bg-alt);border:1px solid var(--c-border);
  border-radius:var(--radius-sm);padding:8px 12px;word-break:break-all;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88rem;
}

/* Pagina di presentazione per chi non ha il servizio */
.tap-promo{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:32px 30px;
}
.tap-promo__eyebrow{
  margin:0 0 6px;font-size:.74rem;text-transform:uppercase;
  letter-spacing:.12em;color:var(--c-muted);
}
.tap-promo h2{margin:0 0 10px;font-size:1.6rem;}
.tap-promo__lede{margin:0 0 26px;font-size:1.05rem;line-height:1.7;max-width:60ch;}
.tap-promo__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:28px;}
.tap-promo__item h3{margin:0 0 6px;font-size:1rem;}
.tap-promo__item p{margin:0;font-size:.92rem;line-height:1.65;color:var(--c-muted);}
.tap-promo__cta{margin:22px 0 0;display:flex;gap:10px;flex-wrap:wrap;}

/* ---------- LANDING OFFERTA FACEBOOK ---------- */
.fb-offer-hero{padding:72px 0;background:linear-gradient(135deg,#17202c 0%,#273b4f 62%,#314d5f 100%);color:#fff;}
.fb-offer-hero__inner{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:60px;align-items:center;}
.fb-offer-kicker{margin:0 0 12px;color:var(--c-primary);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.11em;}
.fb-offer-hero h1{max-width:820px;margin:0 0 20px;color:#fff;font-size:clamp(2.25rem,5vw,4.4rem);line-height:1.02;letter-spacing:-.035em;}
.fb-offer-lead{max-width:700px;margin:0 0 28px;color:#dce4eb;font-size:1.14rem;line-height:1.7;}
.fb-offer-quiet{margin:13px 0 0;color:#aebdca;font-size:.84rem;}
.fb-offer-code{padding:30px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(255,255,255,.08);box-shadow:0 24px 60px rgba(0,0,0,.18);text-align:center;}
.fb-offer-code span,.fb-offer-code small{display:block;color:#cbd7e1;}
.fb-offer-code strong{display:block;margin:12px 0;padding:14px;border:1px dashed rgba(255,255,255,.35);border-radius:10px;background:#fff;color:#17202c;font-size:1.65rem;letter-spacing:.11em;}
.fb-offer-section-head{max-width:720px;margin-bottom:32px;}
.fb-offer-section-head h2,.fb-offer-pricing h2,.fb-offer-form-intro h2{margin:0;font-size:clamp(1.7rem,3vw,2.55rem);line-height:1.16;}
.fb-offer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.fb-offer-grid article{padding:26px 23px;border:1px solid var(--c-border);border-radius:14px;background:#fff;box-shadow:0 10px 30px rgba(23,32,44,.06);}
.fb-offer-grid h3{margin:15px 0 9px;font-size:1.08rem;}
.fb-offer-grid p{margin:0;color:var(--c-muted);font-size:.91rem;line-height:1.65;}
.fb-offer-grid a{display:inline-block;margin-top:14px;font-size:.88rem;font-weight:700;}
.fb-offer-number{color:var(--c-primary);font-size:.78rem;font-weight:800;letter-spacing:.08em;}
.fb-offer-pricing{background:var(--c-bg-alt);}
.fb-offer-pricing__inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:start;}
.fb-offer-pricing__inner p{margin:0 0 12px;line-height:1.75;}
.fb-offer-form-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:55px;align-items:start;max-width:1040px;}
.fb-offer-form-intro{padding-top:18px;}
.fb-offer-form-intro>p:not(.fb-offer-kicker):not(.fb-offer-form-code){color:var(--c-muted);line-height:1.7;}
.fb-offer-form-code{display:inline-block;margin-top:14px;padding:10px 14px;border-radius:8px;background:#eef8f2;color:#14603a;}
.fb-offer-form{width:auto;box-shadow:0 16px 45px rgba(23,32,44,.09);}
.fb-offer-submit-note{margin:12px 0 0;text-align:center;color:var(--c-muted);font-size:.78rem;}

@media (max-width:900px){
  .fb-offer-hero__inner,.fb-offer-pricing__inner,.fb-offer-form-wrap{grid-template-columns:1fr;gap:32px;}
  .fb-offer-grid{grid-template-columns:repeat(2,1fr);}
  .fb-offer-code{max-width:440px;}
}
@media (max-width:560px){
  .fb-offer-hero{padding:50px 0;}
  .fb-offer-grid{grid-template-columns:1fr;}
  .fb-offer-code{padding:22px;}
  .fb-offer-code strong{font-size:1.25rem;}
}

/* ============================================================
   15-ter. FOOD & RISTORAZIONE (ristorazione.php)
   ============================================================ */

/* ----- Hero con video di sfondo (facoltativo) -----
   Stesso sfondo scuro/caldo della home: se il video non c'è ancora
   (basta caricare il file in assets/video/food-hero.mp4) la sezione
   resta comunque completa e leggibile con il solo sfondo. */
.food-hero{
  position:relative;overflow:hidden;color:#fff;text-align:center;
  display:flex;flex-direction:column;justify-content:center;
  min-height:70vh;
  background:
    radial-gradient(900px 420px at 18% 0%, rgba(192,57,43,.55) 0%, rgba(192,57,43,0) 62%),
    radial-gradient(700px 380px at 88% 100%, rgba(184,134,11,.32) 0%, rgba(184,134,11,0) 60%),
    linear-gradient(140deg, #24303f 0%, #1f2a37 45%, #2a1f24 100%);
  padding:100px 0 84px;
}
.food-hero__video{
  position:absolute;inset:0;z-index:0;width:100%;height:100%;
  object-fit:cover;opacity:.5;
}
.food-hero__overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(20,27,36,.25) 0%, rgba(20,27,36,.8) 100%);
}
.food-hero__inner{position:relative;z-index:2;max-width:760px;margin:0 auto;}
.food-hero__kicker{
  margin:0 0 12px;font-size:.8rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--c-primary);
}
.food-hero__title{font-size:2.8rem;margin:0 0 16px;letter-spacing:-.02em;color:#fff;}
.food-hero__lead{font-size:1.12rem;color:rgba(255,255,255,.86);max-width:640px;margin:0 auto 32px;}
.food-hero__cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.food-hero__cta .btn{padding:14px 26px;}
.food-hero__cta .btn--outline{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.4);color:#fff;}
.food-hero__cta .btn--outline:hover{background:rgba(255,255,255,.18);border-color:#fff;color:#fff;}

/* ----- Risultati concreti per il ristoratore ----- */
.food-outcomes{background:linear-gradient(180deg,#fff 0%,#fbf7f2 100%);}
.food-outcomes__head{max-width:820px;}
.food-outcomes__kicker{
  margin:0 0 8px;font-size:.78rem;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:var(--c-primary);
}
.food-outcomes__lead{margin:14px 0 0;font-size:1.06rem;line-height:1.7;color:var(--c-muted);}
.food-outcomes__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:34px;}
.food-outcome{
  position:relative;overflow:hidden;background:#fff;border:1px solid var(--c-border);
  border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow);
}
.food-outcome::after{
  content:"";position:absolute;right:-34px;bottom:-54px;width:130px;height:130px;
  border-radius:50%;background:rgba(192,57,43,.06);
}
.food-outcome__number{
  display:block;margin-bottom:18px;color:var(--c-primary);font-family:var(--font-head);
  font-size:1.4rem;font-weight:700;
}
.food-outcome h3{margin:0 0 10px;font-size:1.18rem;}
.food-outcome p{position:relative;z-index:1;margin:0;color:var(--c-muted);line-height:1.65;}

/* ----- Piani in abbonamento (teaser) ----- */
.food-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin:28px 0 30px;}
.food-plans__card{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:28px 24px;text-align:center;position:relative;
}
.food-plans__card--highlight{border-color:var(--c-primary);box-shadow:var(--shadow-lg);}
.food-plans__badge{
  display:inline-block;margin-bottom:10px;padding:3px 11px;border-radius:100px;
  background:var(--c-bg-alt);color:var(--c-muted);font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;
}
.food-plans__card--highlight .food-plans__badge{background:rgba(192,57,43,.1);color:var(--c-primary);}
.food-plans__name{margin:0 0 8px;font-size:1.2rem;}
.food-plans__desc{margin:0;color:var(--c-muted);font-size:.92rem;line-height:1.55;}
.food-plans__soon{margin:14px 0 0;font-size:.82rem;font-weight:700;color:var(--c-primary);}

/* confronto completo, aperto senza lasciare la landing */
.food-plans-compare{text-align:center;margin-top:8px;}
.food-plans-compare summary{display:inline-flex;cursor:pointer;list-style:none;}
.food-plans-compare summary::-webkit-details-marker{display:none;}
.food-plans-compare__close{display:none;}
.food-plans-compare[open] .food-plans-compare__open{display:none;}
.food-plans-compare[open] .food-plans-compare__close{display:inline;}
.food-plans-compare__body{
  margin-top:28px;padding:10px 24px 30px;text-align:left;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.food-plans-compare .plans-compare{margin-top:0;}
.plans-no{color:var(--c-primary);font-size:1.3rem;font-weight:800;}

/* Colonne Base e Pro distinguibili a colpo d'occhio nel confronto della landing */
.food-plans-compare .plans-table thead th:nth-child(2){
  background:#f4ead7;color:#6f4e1f;border-top:3px solid #c9943f;
}
.food-plans-compare .plans-table thead th:nth-child(3){
  background:#f6dfdc;color:#8f2f24;border-top:3px solid var(--c-primary);
}
.food-plans-compare .plans-table td:nth-child(2){background:#fcf8ef;}
.food-plans-compare .plans-table td:nth-child(3){background:#fdf1ef;}
.food-plans-compare .plans-table td:nth-child(2),
.food-plans-compare .plans-table th:nth-child(2){border-left:1px solid #ead9bb;border-right:1px solid #ead9bb;}
.food-plans-compare .plans-table td:nth-child(3),
.food-plans-compare .plans-table th:nth-child(3){border-right:1px solid #eccbc6;}
.food-plans-compare .plans-table tbody tr:hover td:nth-child(2){background:#f7edd9;}
.food-plans-compare .plans-table tbody tr:hover td:nth-child(3){background:#f8e2df;}

/* ----- Modulo di contatto esteso ----- */
.food-form{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);padding:32px;max-width:920px;margin:0 auto;
}
.food-form__fieldset{border:0;padding:0;margin:0 0 26px;}
.food-form__fieldset legend{
  padding:0 0 10px;margin-bottom:14px;width:100%;border-bottom:1px solid var(--c-border);
  font-family:var(--font-head);font-size:1.05rem;color:var(--c-dark);
}
.food-form__checks{
  display:grid;grid-template-columns:repeat(2,1fr);gap:10px 20px;
}
.food-check{
  display:flex;align-items:flex-start;gap:9px;padding:10px 12px;
  border:1px solid var(--c-border);border-radius:var(--radius-sm);
}
.food-check input{margin-top:3px;}
.food-check label{font-weight:400;font-size:.9rem;margin:0;}

/* modulo finale affiancato al pannello informativo */
.food-contact__inner{
  display:grid;grid-template-columns:minmax(0,7fr) minmax(340px,5fr);
  gap:44px;align-items:start;
}
.food-contact__form{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:30px;box-shadow:var(--shadow-lg);
}
.food-contact__form .food-form{
  max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;
}
.food-contact__form .alert{margin:0 0 20px !important;max-width:none !important;}
.food-contact__pitch{position:sticky;top:calc(var(--header-h) + 18px);}

/* Card riutilizzate nelle pagine dei singoli piani */
.food-features{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.food-feature{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:24px 20px;
}
.food-feature__ico{
  display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:50%;background:rgba(192,57,43,.09);color:var(--c-primary);margin-bottom:14px;
}
.food-feature__ico .ico{width:22px;height:22px;}
.food-feature__title{margin:0 0 6px;font-size:1.02rem;}
.food-feature__text{margin:0;color:var(--c-muted);font-size:.9rem;line-height:1.55;}

/* ----- Percorso del cliente: scoperta, conversione, ritorno ----- */
.food-journey{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch;margin-top:32px;}
.food-journey__phase{
  position:relative;background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:28px 24px;box-shadow:var(--shadow);overflow:hidden;
}
.food-journey__phase::before{
  content:"";position:absolute;left:0;right:0;top:0;height:4px;
  background:linear-gradient(90deg,var(--c-primary),#e09b54);
}
.food-journey__phase--focus{
  color:#fff;border-color:var(--c-dark);background:
    radial-gradient(circle at 100% 0,rgba(192,57,43,.24),transparent 42%),var(--c-dark);
  transform:translateY(-10px);box-shadow:var(--shadow-lg);
}
.food-journey__phase-head{display:flex;align-items:center;gap:14px;margin-bottom:26px;}
.food-journey__step{
  display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;
  border-radius:50%;background:rgba(192,57,43,.09);color:var(--c-primary);
  font-family:var(--font-head);font-size:1.05rem;font-weight:700;
}
.food-journey__phase--focus .food-journey__step{background:var(--c-primary);color:#fff;}
.food-journey__eyebrow{
  display:block;margin-bottom:2px;color:var(--c-muted);font-size:.7rem;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;
}
.food-journey__phase--focus .food-journey__eyebrow{color:rgba(255,255,255,.6);}
.food-journey__phase-head h3{margin:0;font-size:1.25rem;}
.food-journey__phase--focus .food-journey__phase-head h3{color:#fff;}
.food-journey__items{display:grid;gap:0;}
.food-journey__item{display:flex;gap:13px;padding:17px 0;border-top:1px solid var(--c-border);}
.food-journey__phase--focus .food-journey__item{border-color:rgba(255,255,255,.12);}
.food-journey__ico{
  display:flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;
  border-radius:10px;background:rgba(192,57,43,.09);color:var(--c-primary);
}
.food-journey__phase--focus .food-journey__ico{background:rgba(255,255,255,.1);color:#f0b84d;}
.food-journey__ico .ico{width:19px;height:19px;}
.food-journey__item strong{display:block;margin-bottom:4px;color:var(--c-dark);font-size:.94rem;}
.food-journey__phase--focus .food-journey__item strong{color:#fff;}
.food-journey__item p{margin:0;color:var(--c-muted);font-size:.85rem;line-height:1.5;}
.food-journey__phase--focus .food-journey__item p{color:rgba(255,255,255,.7);}

/* ----- Punti di forza (icone + descrizione) ----- */
.food-points{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:24px;
}
.food-point{text-align:center;}
.food-point__ico{
  display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;
  border-radius:50%;background:var(--c-dark);color:#fff;margin-bottom:14px;
}
.food-point__ico .ico{width:24px;height:24px;}
.food-point__title{margin:0 0 6px;font-size:.98rem;}
.food-point__text{margin:0;color:var(--c-muted);font-size:.88rem;line-height:1.55;}

/* ----- Chiusura persuasiva verso la pagina di adesione ----- */
.food-final-cta{
  position:relative;overflow:hidden;padding:82px 0;color:#fff;text-align:center;
  background:
    radial-gradient(620px 300px at 15% 0%,rgba(192,57,43,.48),transparent 68%),
    radial-gradient(540px 280px at 90% 100%,rgba(184,134,11,.28),transparent 68%),
    var(--c-dark);
}
.food-final-cta__inner{max-width:780px;}
.food-final-cta__kicker{
  margin:0 0 10px;color:#f0b84d;font-size:.78rem;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;
}
.food-final-cta h2{margin:0 0 16px;color:#fff;font-size:clamp(2rem,4vw,3.25rem);}
.food-final-cta p{max-width:680px;margin:0 auto 28px;color:rgba(255,255,255,.86);font-size:1.08rem;line-height:1.7;}
.food-final-cta .btn{padding:15px 30px;font-size:1.02rem;}
.food-final-cta__note{display:block;margin-top:14px;color:rgba(255,255,255,.62);font-size:.84rem;}

/* ----- Stacco chiaro prima del footer ----- */
.food-after-cta{padding:76px 0;background:linear-gradient(180deg,#fff 0%,#f8f3ed 100%);}
.food-after-cta__head{max-width:720px;margin:0 auto 42px;text-align:center;}
.food-after-cta__kicker{
  margin:0 0 8px;color:var(--c-primary);font-size:.76rem;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;
}
.food-after-cta__head h2{margin:0 0 14px;font-size:clamp(1.8rem,3.5vw,2.65rem);}
.food-after-cta__head > p:last-child{margin:0;color:var(--c-muted);font-size:1.02rem;line-height:1.7;}
.food-after-cta__steps{
  list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
  counter-reset:food-after;
}
.food-after-cta__steps li{display:flex;align-items:flex-start;gap:16px;position:relative;}
.food-after-cta__steps li:not(:last-child)::after{
  content:"";position:absolute;top:24px;left:calc(100% - 2px);width:30px;
  border-top:1px dashed #d9cfc5;
}
.food-after-cta__number{
  display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;
  border-radius:50%;background:#fff;border:1px solid rgba(192,57,43,.24);
  color:var(--c-primary);font-family:var(--font-head);font-size:1.1rem;font-weight:700;
  box-shadow:var(--shadow);
}
.food-after-cta__steps h3{margin:2px 0 7px;font-size:1.03rem;}
.food-after-cta__steps p{margin:0;color:var(--c-muted);font-size:.9rem;line-height:1.6;}
.food-after-cta__closing{
  max-width:760px;margin:40px auto 0;padding-top:24px;border-top:1px solid var(--c-border);
  text-align:center;color:var(--c-dark);font-weight:600;
}

/* ============================================================
   15-quater. PIANI IN ABBONAMENTO (piani.php)
   ============================================================ */

/* ----- Header: sfondo caldo "da sala", coerente col resto del sito ----- */
.plans-hero{
  position:relative;overflow:hidden;color:#fff;text-align:center;padding:76px 0 64px;
  background:
    radial-gradient(820px 460px at 82% -10%, rgba(184,134,11,.38) 0%, rgba(184,134,11,0) 60%),
    radial-gradient(760px 420px at 10% 110%, rgba(192,57,43,.42) 0%, rgba(192,57,43,0) 62%),
    linear-gradient(150deg, #241a14 0%, #2b1f1a 40%, #1f2a37 100%);
}
.plans-hero::after{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.45;
  background-image:radial-gradient(rgba(255,255,255,.14) 1px, transparent 1px);
  background-size:24px 24px;
}
.plans-hero__inner{position:relative;z-index:1;max-width:700px;margin:0 auto;}
.plans-hero__kicker{
  margin:0 0 12px;font-size:.8rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:#f0b84d;
}
.plans-hero__title{font-size:2.6rem;margin:0 0 14px;letter-spacing:-.02em;color:#fff;}
.plans-hero__lead{font-size:1.08rem;color:rgba(255,255,255,.86);max-width:600px;margin:0 auto;}

/* ----- Card di sintesi dei due piani ----- */
.plans-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap);max-width:760px;margin:0 auto;}
.plans-card{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:30px 26px;text-align:center;
}
.plans-card--pro{border-color:var(--c-primary);box-shadow:var(--shadow-lg);position:relative;}
.plans-card__flag{
  position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:var(--c-primary);color:#fff;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;padding:4px 14px;border-radius:100px;
}
.plans-card__name{margin:0 0 6px;font-size:1.3rem;}
.plans-card__price{margin:0 0 4px;font-size:2.3rem;font-weight:700;color:var(--c-dark);font-family:var(--font-head);}
.plans-card__price small{font-size:.95rem;font-weight:400;color:var(--c-muted);}
.plans-card__note{margin:0 0 20px;font-size:.86rem;color:var(--c-muted);min-height:2.6em;}
.plans-card__list{list-style:none;margin:0 0 24px;padding:0;text-align:left;display:grid;gap:9px;}
.plans-card__list li{position:relative;padding-left:24px;font-size:.92rem;}
.plans-card__list .ico{position:absolute;left:0;top:.15em;width:16px;height:16px;color:var(--c-success);}

/* ----- Tabella di confronto dettagliata ----- */
.plans-compare{max-width:920px;margin:48px auto 0;overflow-x:auto;}
.plans-table{width:100%;border-collapse:collapse;min-width:560px;}
.plans-table thead th{
  position:sticky;top:calc(var(--header-h) + 0px);background:var(--c-bg);
  padding:12px 10px;font-family:var(--font-head);font-size:1.05rem;color:var(--c-dark);
  border-bottom:2px solid var(--c-dark);text-align:center;
}
.plans-table thead th:first-child{text-align:left;}
.plans-table tbody th.plans-group-head{
  text-align:left;padding:26px 10px 10px;font-size:.78rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--c-primary);border-bottom:1px solid var(--c-border);
}
.plans-table td,.plans-table td.plans-feature{
  padding:13px 10px;border-bottom:1px solid var(--c-border);font-size:.92rem;
}
.plans-table td.plans-feature{color:var(--c-text);}
.plans-table td.plans-check,.plans-table td.plans-empty{text-align:center;width:110px;}
.plans-table .ico--check{width:19px;height:19px;color:var(--c-success);}
.plans-table td.plans-empty{color:var(--c-muted);}
.plans-table td.plans-empty::before{content:'—';}

.plans-cta{
  max-width:760px;margin:52px auto 0;text-align:center;padding:26px 24px;
  border-radius:var(--radius);background:var(--c-bg-alt);border:1px solid var(--c-border);
}
.plans-cta p{margin:0 0 14px;}

/* ============================================================
   15-quinquies. PAGINE SINGOLE DEI PIANI (piano-base.php, piano-pro.php)
   ============================================================ */

/* ----- Header con foto di un locale (piu' alto, prezzo nell'overlay in fondo) ----- */
.plan-hero{
  position:relative;overflow:hidden;color:#fff;text-align:center;
  min-height:680px;display:flex;flex-direction:column;justify-content:space-between;
  padding:100px 0 0;
}
.plan-hero__photo{
  position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;
}
.plan-hero__overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(20,27,36,.5) 0%, rgba(20,27,36,.6) 45%, rgba(15,19,25,.94) 100%);
}
.plan-hero__inner{position:relative;z-index:2;max-width:680px;margin:0 auto;padding:0 20px;}
.plan-hero__kicker{
  margin:0 0 12px;font-size:.8rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:#f0b84d;
}
.plan-hero__title{font-size:2.7rem;margin:0 0 10px;letter-spacing:-.02em;color:#fff;}
.plan-hero__lead{font-size:1.08rem;color:rgba(255,255,255,.88);max-width:600px;margin:0 auto 30px;}

/* ----- Fascia prezzo + cambio piano, in fondo alla foto ----- */
.plan-hero__pricebar{position:relative;z-index:2;padding:36px 20px 44px;}
.plan-hero__pricebar .plan-switch{display:flex;gap:.6rem;justify-content:center;margin-bottom:16px;}
.plan-hero__pricebar .btn--outline{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.45);color:#fff;}
.plan-hero__pricebar .btn--outline:hover{background:rgba(255,255,255,.18);border-color:#fff;color:#fff;}
.plans-hero__summary{
  margin:0 auto;max-width:520px;font-size:clamp(.88rem,2.6vw,1.02rem);
  line-height:1.6;color:rgba(255,255,255,.88);
}
.plans-hero__summary strong{color:#fff;}
.plans-hero__cta-row{display:flex;gap:.6rem;justify-content:center;margin-top:18px;flex-wrap:wrap;}
.plans-hero__cta-row .btn--outline{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.45);color:#fff;}
.plans-hero__cta-row .btn--outline:hover{background:rgba(255,255,255,.18);border-color:#fff;color:#fff;}
.plan-price{
  margin:0;font-size:clamp(1.2rem,5.5vw,1.9rem);font-weight:800;color:#fff;
}
.plan-price__note{
  margin:.5em auto 0;max-width:440px;font-size:clamp(.82rem,2.6vw,.95rem);
  font-weight:500;line-height:1.55;color:rgba(255,255,255,.85);
}
.plan-price__note strong{color:#fff;font-weight:700;}

/* ----- Galleria di locali gestiti con Divoroo ----- */
.plan-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:8px;}
.plan-gallery figure{
  margin:0;border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;background:var(--c-bg-alt);
}
.plan-gallery img{width:100%;height:200px;object-fit:cover;display:block;}
.plan-gallery figcaption{padding:10px 12px;font-size:.82rem;color:var(--c-muted);}

/* ----- Riquadro "solo con Pro" ----- */
.plan-exclusive{
  background:linear-gradient(180deg,#fff8ec 0%,#fdf1de 100%);
  border:1px solid #f0d9ae;border-radius:var(--radius);padding:30px 26px;margin:8px 0 0;
}
.plan-exclusive__tag{
  display:inline-block;margin-bottom:16px;padding:4px 12px;border-radius:100px;
  background:var(--c-primary);color:#fff;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;
}
.plan-exclusive .food-feature{border-color:#f0d9ae;}
/* poche voci, non sempre un multiplo di 4: le colonne si adattano al numero reale */
.plan-exclusive .food-features{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}

/* ----- Riquadro di rimando (Base -> Pro) ----- */
.plan-upsell{
  max-width:760px;margin:44px auto 0;text-align:center;padding:24px 22px;
  border-radius:var(--radius);background:var(--c-bg-alt);border:1px solid var(--c-border);
}
.plan-upsell p{margin:0 0 14px;}

/* ---------- 12. RESPONSIVE ---------- */
@media (max-width:960px){
  .join__inner,.partner-content__inner,.home-claim__inner,.partner-teaser__inner{grid-template-columns:1fr;gap:28px;}
  .partner-form{position:static;order:2;}
  .partner-pitch{order:1;}
  .join__media{order:1;}
  .join__body{order:2;}
  .home-claim__media{order:-1;height:260px;}
  .partner-teaser__media{order:-1;height:260px;}
  .partner-pitch__title{font-size:1.8rem;}
  .partner-teaser__title{font-size:1.8rem;}
  .venue-grid,.share-layout{grid-template-columns:1fr;}
  .share-preview{position:static;}
  .booking-card{position:static;box-shadow:var(--shadow);max-height:none;overflow:visible;}
  .venue-side{order:-1;}          /* su schermi stretti il modulo viene prima */
  .cards{grid-template-columns:repeat(3,1fr);}
  .steps{grid-template-columns:repeat(2,1fr);}
  .rating-box{grid-template-columns:1fr;gap:18px;}
  .food-journey{grid-template-columns:1fr;gap:16px;}
  .food-journey__phase--focus{transform:none;}
  .food-features{grid-template-columns:repeat(2,1fr);}
  .food-plans{grid-template-columns:1fr;}
  .food-outcomes__grid{grid-template-columns:1fr;}
  .food-after-cta__steps{grid-template-columns:1fr;gap:26px;max-width:620px;margin:0 auto;}
  .food-after-cta__steps li:not(:last-child)::after{
    top:48px;left:24px;width:0;height:27px;border-top:0;border-left:1px dashed #d9cfc5;
  }
  .food-form__checks{grid-template-columns:1fr;}
  .food-contact__inner{grid-template-columns:1fr;gap:28px;}
  .food-contact__pitch{position:static;order:1;}
  .food-contact__form{order:2;}
  .plans-cards{grid-template-columns:1fr;max-width:420px;}
  .plan-gallery{grid-template-columns:repeat(2,1fr);}
  .searchbar{grid-template-columns:1fr 1fr;}
  .searchbar__field--wide{grid-column:1 / -1;}
  .searchbar__submit{grid-column:1 / -1;}
}
@media (max-width:720px){
  /* Reputazione: i numeroni restano su una riga sola, il resto si impila */
  .tap-block{padding:18px 16px;}
  .tap-kpis{gap:8px;}
  .tap-kpi{padding:12px 6px;}
  .tap-kpi__val{font-size:1.35rem;}
  .tap-kpi__lbl{font-size:.68rem;letter-spacing:0;}
  .tap-split{grid-template-columns:1fr;gap:22px;}
  .tap-promo{padding:24px 18px;}
  .tap-promo__grid{grid-template-columns:1fr;gap:18px;}
  .tap-bar__name{width:84px;}

  /* coperti per fascia: due orari per riga anche su schermi stretti */
  .occ-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
  .occ{padding:8px 10px 11px;}
  .occ__n{font-size:1rem;}
  .occ__left{font-size:.68rem;}
  .site-footer__inner{row-gap:24px;column-gap:20px;}
  .site-footer__brand{flex:1 1 100%;max-width:none;}
  .site-footer__col{flex:1 1 0;min-width:0;}
  .site-footer__revioo{align-items:flex-start;flex-wrap:wrap;gap:12px 18px;padding:16px;}
  .site-footer__revioo-logo img{width:112px;}
  .site-footer__revioo-copy{flex-basis:calc(100% - 130px);}
  .site-footer__revioo-link{margin-left:130px;}
  .join__title{font-size:1.65rem;}
  .join__text{font-size:1rem;}
  .join__cta .btn{width:100%;text-align:center;}
  .partner-hero{min-height:500px;align-items:flex-end;}
  .partner-hero__content{padding:70px 0 118px;}
  .partner-hero__shade{background:linear-gradient(0deg,rgba(15,21,29,.9),rgba(15,21,29,.38));}
  .partner-hero__lead{font-size:1rem;line-height:1.55;}
  .partner-content{margin-top:-58px;padding-bottom:42px;background:linear-gradient(180deg,transparent 0,transparent 58px,#f7f2ec 58px,#fff 100%);}
  .partner-form{padding:20px;}
  .partner-pitch{padding:28px 24px;}
  .partner-pitch__title{font-size:1.6rem;}
  .partner-pitch__lead{font-size:1rem;}
  .food-hero{padding:56px 0;min-height:60vh;}
  .food-hero__title{font-size:1.9rem;}
  .food-hero__lead{font-size:1rem;}
  .food-form{padding:22px;}
  .food-features{grid-template-columns:1fr;}
  .food-outcome{padding:24px 22px;}
  .food-final-cta{padding:62px 0;}
  .food-after-cta{padding:56px 0;}
  .food-contact__form{padding:20px;}
  .food-plans-compare__body{padding:6px 12px 22px;}
  .plans-hero{padding:48px 0;}
  .plans-hero__title{font-size:1.9rem;}
  .plans-table thead th{position:static;}
  .plans-table{min-width:480px;}
  .plan-hero{min-height:auto;padding:56px 0 0;}
  .plan-hero__title{font-size:1.9rem;}
  .plan-hero__lead{font-size:1rem;}
  .plan-hero__pricebar{padding:28px 16px 32px;}
  .plan-gallery{grid-template-columns:1fr;}
  .plan-exclusive{padding:22px 18px;}
  .home-claim{padding:40px 0;}
  .home-claim__title{font-size:1.6rem;}
  .home-claim__lead{font-size:1rem;}
  .home-claim__media{height:200px;}
  .legal-hero{padding:32px 0 28px;}
  .legal-hero__title{font-size:1.6rem;}
  .legal-nav__inner{gap:6px;}
  .legal-nav__link{font-size:.82rem;padding:5px 11px;}
  .table--legal{display:block;overflow-x:auto;}
  .hero{display:none;}
  /* ricerca in testata: campo unico al posto dei due (vedi header.php).
     Vale per la home e per le pagine dove cercare un altro locale ha senso;
     il pulsante "intorno a me" resta però solo sulla home. */
  body.page-home .header-search{display:block;}
  body.search-compact .header-search__standard{display:none;}
  body.search-compact .header-search__compact{display:flex;flex:1 1 100%;}
  body.search-compact .header-search__actions{
    display:flex;flex:1 1 100%;gap:8px;
  }
  body.search-compact .header-search__actions .btn{width:auto;}
  body.search-compact .header-search__actions .btn[type=submit]{flex:0 0 auto;}
  /* fuori dalla home non c'è il pulsante "intorno a me": campo e "Cerca"
     stanno sulla stessa riga, così la testata resta su una riga sola */
  body.search-compact:not(.page-home) .header-search__actions{display:contents;}
  body.search-compact:not(.page-home) .header-search__compact{flex:1 1 auto;}
  body.search-compact:not(.page-home) .header-search .btn{width:auto;}
  /* pagine informative, legali e rivolte ai ristoratori: nessuna ricerca in
     cima. Chi vuole cercare tocca Home nella barra in fondo. Qui la testata
     non contiene più niente, quindi sparisce tutta: nascondere la sola
     ricerca lascerebbe il filo del bordo inferiore. */
  body.search-off .site-header{display:none;}
  body.page-home .header-search__geo{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    flex:1 1 auto;font-size:.82rem;padding:0 10px;white-space:nowrap;
  }
  .searchbar{grid-template-columns:1fr;}
  .cards,.steps{grid-template-columns:1fr;}
  .cards--scroll{
    display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
    margin:0 -20px;padding:2px 20px 10px;gap:14px;
  }
  .cards--scroll::-webkit-scrollbar{display:none;}
  .cards--scroll .card{flex:0 0 78%;scroll-snap-align:start;}
  .form__row--2,.form__row--3{grid-template-columns:1fr;}
  .ticket__grid{grid-template-columns:repeat(2,1fr);}
  .site-header__inner{height:auto;padding:12px 0;flex-direction:column;gap:10px;}
  .main-nav{flex-wrap:wrap;justify-content:center;gap:14px;}
  .cta-band__inner{flex-direction:column;align-items:flex-start;}
  .reject__form{position:static;width:100%;box-shadow:none;}
  .week-editor__head{display:none;}
  .week-row{grid-template-columns:1fr 1fr;gap:8px;padding:12px 14px;}
  .week-row__slots,.week-row__seats{grid-column:1 / -1;}

  /* editor del menù su schermi stretti */
  .menu-cat-box__head{grid-template-columns:1fr;}
  .dish-head,.dish-head--wine{display:none;}
  .dish-row,.dish-row--wine{grid-template-columns:1fr 1fr;gap:8px;padding:12px 0;}
  .dish-row__main{grid-column:1 / -1;}
  .dish-add,.dish-add--wine,.cat-add{grid-template-columns:1fr;}
  .menu-cat-box--child,.cat-add{margin-left:0;}
  .menu-banner img{height:100px;}
  .menu-banner__title{font-size:1.2rem;left:14px;bottom:10px;}
  .info-row{grid-template-columns:1fr;gap:6px;}
  .rate-row{flex-direction:column;align-items:flex-start;gap:8px;}
  .filterbar__form{gap:12px;}
  .filterbar__group,.filterbar__group--wide{min-width:0;flex:1 1 45%;}
  .filterbar__toggle{flex:1 1 100%;justify-content:center;}
  .filterbar__actions{flex:1 1 100%;}
  .filterbar__actions .btn{flex:1;}
  .search-bar__inner{gap:10px;position:relative;}
  .search-bar__filters{position:static;display:flex;align-items:center;gap:8px;flex:1 1 auto;}
  .search-bar__go-btn{flex:1 1 auto;}
  .search-bar__filters-btn{flex:0 0 auto;white-space:nowrap;}
  .search-bar__filters-panel{
    position:absolute;top:100%;left:16px;right:16px;
    width:auto;max-width:none;margin-top:8px;
  }
  /* sulla pagina di ricerca il bottone "Cerca" della testata si sposta qui accanto a Filtri */
  body.page-search .header-search__actions .btn[type="submit"]{display:none;}
  .promo-box{flex-direction:column;align-items:flex-start;gap:10px;}
  .star-input label{font-size:2.4rem;}
  .venue-nav__notice{margin-left:0;}
  .check-grid,.check-grid--small{grid-template-columns:1fr 1fr;}

  /* su telefono la testata non resta fissa: mangerebbe mezzo schermo */
  .site-header{position:static;}
  .header-search form{flex-wrap:wrap;gap:8px;}
  .header-search__field{flex:1 1 100%;}
  .header-search .btn{width:100%;}
  .venue-title h1{font-size:1.6rem;}
  .venue-subtitle{gap:4px 12px;font-size:.86rem;}
  .venue-facts{gap:6px 16px;font-size:.86rem;}
  .gallery__main img{height:220px;}
  .gallery__side img{height:62px;}
  .venue-nav{gap:18px;}
  .v-block,.booking-card{scroll-margin-top:16px;}
  .mobile-cta{display:flex;}
  .mobile-only{display:block;}
  .venue{padding-bottom:96px;}   /* spazio per la barra fissa */
  .lightbox__nav{width:40px;height:40px;font-size:24px;}
}

/* ============================================================
   SELETTORE LINGUA (testata)
   ============================================================ */
.lang-switch{position:relative;}
.lang-switch__btn{
  background:none;border:1px solid var(--c-border);border-radius:6px;
  padding:6px 10px;font-size:.85rem;font-weight:600;color:var(--c-dark);
  cursor:pointer;letter-spacing:.02em;
}
.lang-switch__btn:hover{border-color:var(--c-primary);color:var(--c-primary);}
.lang-switch__list{
  position:absolute;top:calc(100% + 6px);right:0;z-index:60;
  background:#fff;border:1px solid var(--c-border);border-radius:8px;
  box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:140px;padding:6px;list-style:none;margin:0;
}
.lang-switch__list li{margin:0;}
.lang-switch__list a{
  display:block;padding:8px 10px;border-radius:6px;font-size:.9rem;color:var(--c-dark);
}
.lang-switch__list a:hover{background:var(--c-bg-alt);text-decoration:none;}
.lang-switch__list a.is-active{color:var(--c-primary);font-weight:600;}

/* ============================================================
   BARRA FISSA IN FONDO ALLO SCHERMO (solo telefono)
   Fondo chiaro, icone bianche dentro una pastiglia del colore scuro
   del sito, etichetta piccola in grigio scuro. Compare solo sotto i
   720px: sul desktop resta la navigazione della testata.
   ============================================================ */
.tabbar{display:none;}

@media (max-width:720px){
  .tabbar{
    display:block;position:fixed;left:0;right:0;bottom:0;z-index:80;
    background:#fff;border-top:1px solid var(--c-border);
    box-shadow:0 -4px 18px rgba(0,0,0,.10);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .tabbar__list{
    display:flex;align-items:stretch;
    margin:0;padding:0;list-style:none;
  }
  .tabbar__item{flex:1 1 0;min-width:0;margin:0;}
  .tabbar__link{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    width:100%;height:var(--tabbar-h);padding:5px 1px;
    background:none;border:0;font:inherit;color:inherit;cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .tabbar__link:hover{text-decoration:none;}
  .tabbar__ico{
    --ico-bg:var(--c-dark);
    display:flex;align-items:center;justify-content:center;
    width:25px;height:25px;border-radius:8px;flex:0 0 auto;
    background:var(--ico-bg);color:#fff;
    transition:background .15s ease;
  }
  .tabbar__ico .ico{width:15px;height:15px;}
  /* marchio Divoroo: cerchio rosso e anelli bianchi; l'anello è pieno del
     colore della pastiglia, così copre il cerchio dove i due si sovrappongono,
     esattamente come nel logo esteso */
  .tabbar__ico--mark .ico{width:17px;height:17px;}
  .tabbar__ico .ico__disc{fill:var(--c-primary);}
  .tabbar__ico .ico__ring{fill:var(--ico-bg);}
  .tabbar__label{
    font-size:.6rem;line-height:1.1;font-weight:600;color:#4b5563;
    letter-spacing:-.01em;
    max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .tabbar__link.is-active .tabbar__ico,
  .tabbar__link.is-open .tabbar__ico{--ico-bg:var(--c-primary);}
  /* sulla pastiglia rossa il cerchio del marchio passa al bianco, altrimenti sparirebbe */
  .tabbar__link.is-active .tabbar__ico .ico__disc{fill:#fff;}
  .tabbar__link.is-active .tabbar__label{color:var(--c-primary);}
  .tabbar__link:focus-visible{outline:2px solid var(--c-primary);outline-offset:-3px;border-radius:8px;}

  /* elenco lingue, si apre sopra la barra */
  .tabbar-sheet{
    position:absolute;bottom:calc(100% + 8px);right:12px;left:auto;
    min-width:170px;max-width:calc(100vw - 24px);
    background:#fff;border:1px solid var(--c-border);border-radius:12px;
    box-shadow:var(--shadow-lg);padding:8px;
  }
  .tabbar-sheet[hidden]{display:none;}
  .tabbar-sheet__title{
    margin:2px 8px 6px;font-size:.72rem;font-weight:700;letter-spacing:.04em;
    text-transform:uppercase;color:var(--c-muted);
  }
  .tabbar-sheet__list{margin:0;padding:0;list-style:none;}
  .tabbar-sheet__list li{margin:0;}
  .tabbar-sheet__list a{
    display:flex;align-items:center;gap:10px;
    padding:9px 10px;border-radius:8px;font-size:.92rem;color:var(--c-dark);
  }
  .tabbar-sheet__list a:hover{background:var(--c-bg-alt);text-decoration:none;}
  .tabbar-sheet__list a.is-active{color:var(--c-primary);font-weight:600;}
  .tabbar-sheet__code{
    flex:0 0 auto;min-width:28px;text-align:center;
    padding:2px 5px;border-radius:5px;background:var(--c-bg-alt);
    font-size:.7rem;font-weight:700;letter-spacing:.03em;
  }

  /* fumetto per le voci non ancora attive (Preferiti, Profilo) */
  .tabbar-toast{
    position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
    margin:0;padding:7px 14px;border-radius:999px;
    background:var(--c-dark);color:#fff;font-size:.8rem;white-space:nowrap;
    box-shadow:var(--shadow-lg);
  }
  .tabbar-toast[hidden]{display:none;}

  /* menu a comparsa: i link istituzionali che sul desktop stanno nel
     top-bar (Rewards, FAQ, Per le aziende, Diventa un Divoroo) */
  /* Il pannello si ferma sopra la barra in basso, che resta visibile:
     la voce «Menu» diventa «Chiudi» (×) e chiude da lì, a portata di
     pollice. Si chiude anche toccando fuori, scorrendo verso destra, Esc. */
  .menu-canvas{position:fixed;left:0;right:0;top:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));z-index:90;}
  .menu-canvas[hidden]{display:none;}
  .menu-canvas__backdrop{position:absolute;inset:0;background:rgba(31,42,55,.45);}
  .menu-canvas__panel{
    position:absolute;top:0;right:0;bottom:0;width:min(84vw,320px);
    background:#fff;box-shadow:-8px 0 24px rgba(0,0,0,.18);
    padding:max(12px, env(safe-area-inset-top)) 16px 10px;overflow-y:auto;
    overscroll-behavior:contain;touch-action:pan-y;
    transition:transform .18s ease;
  }
  /* maniglia sul bordo sinistro: suggerisce che il pannello si trascina via */
  .menu-canvas__grip{
    position:absolute;left:5px;top:50%;width:4px;height:44px;margin-top:-22px;
    border-radius:4px;background:var(--c-border);
  }
  .menu-canvas__logo{display:block;width:max-content;margin:2px auto 12px;}
  .menu-canvas__logo img{display:block;width:105px;height:auto;}
  .menu-canvas__links{display:flex;flex-direction:column;}
  .menu-canvas__links a{
    display:block;padding:9px 4px;font-size:.98rem;font-weight:600;line-height:1.25;
    color:var(--c-primary);border-bottom:1px solid var(--c-border);
  }
  .menu-canvas__links a:last-child{border-bottom:0;}
  .menu-canvas__links a:hover{font-weight:700;color:var(--c-primary);text-decoration:none;}
  .menu-canvas__hint{
    display:block;margin-top:1px;font-size:.74rem;font-weight:400;color:var(--c-muted);
  }

  /* voce «Menu» della barra: a pannello aperto mostra × e «Chiudi» */
  .tabbar__ico > .tabbar__when-closed{display:flex;}
  [data-tab-menu] .tabbar__when-open,
  [data-tab-menu].is-open .tabbar__when-closed{display:none;}
  [data-tab-menu].is-open .tabbar__when-open{display:block;}
  [data-tab-menu].is-open .tabbar__label{color:var(--c-primary);}
  .tabbar__x{font-size:1.3rem;line-height:1;font-weight:400;}

  /* piani Base e Pro in cima al menu: due schede compatte (una riga con
     nome, mesi gratis e «Attiva», una riga col prezzo); il Pro è pieno */
  .menu-plans{margin:0 0 8px;padding:10px;border-radius:var(--radius);background:var(--c-bg-alt);}
  .menu-plans__head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 8px;}
  .menu-plans__kicker{
    font-size:.72rem;font-weight:700;letter-spacing:.06em;
    text-transform:uppercase;color:var(--c-dark);
  }
  .menu-plans__compare{font-size:.78rem;font-weight:600;color:var(--c-dark);text-decoration:underline;white-space:nowrap;}
  .menu-plan{
    display:block;padding:8px 12px;border:2px solid var(--c-primary);border-radius:var(--radius);
    background:#fff;color:var(--c-dark);text-decoration:none;
  }
  .menu-plan + .menu-plan{margin-top:8px;}
  .menu-plan:hover,.menu-plan:focus-visible{text-decoration:none;box-shadow:var(--shadow);}
  .menu-plan__row{display:flex;align-items:center;gap:8px;}
  .menu-plan__name{font-family:var(--font-head);font-size:1.05rem;font-weight:700;}
  .menu-plan__free{
    padding:1px 7px;border-radius:999px;
    background:var(--c-success);color:#fff;font-size:.68rem;font-weight:700;white-space:nowrap;
  }
  .menu-plan__cta{margin-left:auto;font-size:.88rem;font-weight:700;color:var(--c-primary);white-space:nowrap;}
  .menu-plan__price{display:block;margin-top:2px;font-size:.76rem;line-height:1.3;color:var(--c-muted);}
  .menu-plan--pro{background:var(--c-primary);color:#fff;}
  .menu-plan--pro .menu-plan__price{color:rgba(255,255,255,.88);}
  .menu-plan--pro .menu-plan__cta{color:#fff;}
  .menu-plan--pro .menu-plan__free{background:#fff;color:var(--c-primary);}

  /* Testata ridotta alla sola ricerca: logo, Home, Area ristoratori e
     selettore lingua vivono ora nella barra in fondo. Vale solo per il sito
     pubblico (.has-tabbar): pannello e amministrazione tengono la loro
     intestazione, perché lì la barra in fondo non c'è. */
  body.has-tabbar .site-header__inner{display:none;}
  body.has-tabbar .top-bar{display:none;}

  /* spazio in fondo alla pagina: la barra non deve coprire i contenuti */
  body.has-tabbar{padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));}
  /* le altre barre fisse salgono sopra a quella di navigazione */
  body.has-tabbar .mobile-cta,
  body.has-tabbar .cookie-banner{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));}
  /* scheda locale: sotto ha già la sua barra «Prenota», che ora è più in alto */
  body.has-tabbar .venue{padding-bottom:calc(96px + var(--tabbar-h));}
}

/* ============================================================
   RTL — layout di base per l'arabo (dir="rtl" su <html>)
   Non è una rispecchiatura completa di ogni regola del foglio di
   stile: copre testata, navigazione, ricerca, filtri, card e form,
   cioè le zone dove l'ordine visivo conta davvero. Il resto segue
   automaticamente perché il testo è già in flusso bidirezionale.
   ============================================================ */
html[dir="rtl"] body{text-align:right;}
html[dir="rtl"] .site-header__inner,
html[dir="rtl"] .top-bar__inner,
html[dir="rtl"] .header-search form,
html[dir="rtl"] .breadcrumb,
html[dir="rtl"] .venue-facts li,
html[dir="rtl"] .card__meta,
html[dir="rtl"] .filterbar__actions,
html[dir="rtl"] .ticket__head,
html[dir="rtl"] .mobile-cta,
html[dir="rtl"] .info-row{
  flex-direction:row-reverse;
}
html[dir="rtl"] .lang-switch__list{right:auto;left:0;}
html[dir="rtl"] .tabbar-sheet{right:auto;left:12px;}
html[dir="rtl"] .tabbar__list{flex-direction:row-reverse;}
html[dir="rtl"] .menu-canvas__panel{right:auto;left:0;box-shadow:8px 0 24px rgba(0,0,0,.18);}
html[dir="rtl"] .menu-canvas__grip{left:auto;right:5px;}
html[dir="rtl"] .header-search__field,
html[dir="rtl"] .filterbar__group{
  text-align:right;
}
html[dir="rtl"] .search-bar__inner{flex-direction:row-reverse;}
html[dir="rtl"] .search-bar__loc-list{left:auto;right:0;}
html[dir="rtl"] .search-bar__filters-panel{right:auto;left:0;}
html[dir="rtl"] .form__check{flex-direction:row-reverse;text-align:right;}
html[dir="rtl"] .ticket__code,
html[dir="rtl"] .venue-nav{flex-direction:row-reverse;}
html[dir="rtl"] .step__n,
html[dir="rtl"] .rbar{direction:ltr;}  /* numeri e barre di avanzamento restano LTR */
html[dir="rtl"] .lightbox__nav--prev{transform:scaleX(-1);}
html[dir="rtl"] .lightbox__nav--next{transform:scaleX(-1);}


/* ============================================================
   14. AREA RISERVATA CLIENTE — DIVOROO REWARDS
   Account di chi prenota: Punti gusto, livelli, storico,
   preferiti. Vale per accedi/registrati e per le pagine /area.
   ============================================================ */

/* ---------- menu utente in testata (desktop) ---------- */
.user-menu{position:relative;}
.user-menu__btn{
  display:inline-flex;align-items:center;gap:7px;
  background:transparent;border:1px solid var(--c-border);border-radius:999px;
  padding:6px 14px 6px 11px;font:inherit;font-size:.9rem;font-weight:600;
  color:var(--c-dark);cursor:pointer;line-height:1.2;
}
.user-menu__btn:hover{border-color:var(--c-dark);color:var(--c-dark);text-decoration:none;}
.user-menu__btn .ico{width:19px;height:19px;flex:0 0 auto;}
.user-menu__name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* versione a tinta piena, per farla notare in testata.
   Selettore con .main-nav davanti: ".main-nav a" (riga sopra) ha
   specificità più alta di una singola classe e vincerebbe sul colore. */
.main-nav .user-menu__btn--cta{background:var(--c-primary);border-color:var(--c-primary);color:#fff;}
.main-nav .user-menu__btn--cta:hover{background:var(--c-primary-dark);border-color:var(--c-primary-dark);color:#fff;}

/* invito a Divoroo Rewards accanto al bottone account: stessa forma a
   pillola, contorno invece di tinta piena così i due restano distinti
   pur restando una coppia coerente */
.nav-rewards-btn{
  display:inline-flex;align-items:center;gap:7px;
  border:1px solid var(--c-primary);border-radius:999px;
  padding:6px 14px;font-size:.9rem;font-weight:600;
  background:#fff;line-height:1.2;
}
.main-nav .nav-rewards-btn{color:var(--c-primary);}
.main-nav .nav-rewards-btn:hover{background:var(--c-primary);color:#fff;text-decoration:none;}
.nav-rewards-btn .ico{width:16px;height:16px;flex:0 0 auto;}
.user-menu__panel{
  position:absolute;top:calc(100% + 8px);right:0;z-index:60;min-width:224px;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);padding:8px;
}
.user-menu__head{
  margin:0 0 6px;padding:10px 12px;border-radius:var(--radius-sm);
  background:var(--c-bg-alt);font-size:.85rem;color:var(--c-muted);
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.user-menu__head strong{color:var(--c-dark);font-size:1rem;}
.user-menu__panel a{
  display:block;padding:9px 12px;border-radius:var(--radius-sm);
  font-size:.94rem;color:var(--c-dark);
}
.user-menu__panel a:hover{background:var(--c-bg-alt);text-decoration:none;}
.user-menu__out{border-top:1px solid var(--c-border);margin-top:6px;padding-top:12px !important;color:var(--c-primary) !important;}

/* ---------- pagine di accesso e registrazione ---------- */
.auth-card{max-width:560px;}
.auth-card__kicker{
  margin:0 0 6px;font-size:.76rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--c-primary);
}
.auth-card h1{margin:0 0 6px;font-size:1.7rem;}
.auth-card__links{margin:14px 0 0;text-align:center;font-size:.92rem;}
.auth-card__sep{
  display:flex;align-items:center;gap:12px;margin:22px 0 14px;
  color:var(--c-muted);font-size:.88rem;
}
.auth-card__sep::before,.auth-card__sep::after{
  content:"";flex:1;height:1px;background:var(--c-border);
}
.auth-perks{
  list-style:none;margin:0 0 22px;padding:16px 18px;
  background:var(--c-bg-alt);border-radius:var(--radius);
  display:grid;gap:9px;font-size:.92rem;
}
.auth-perks li{display:flex;align-items:flex-start;gap:9px;}
.auth-perks .ico{color:var(--c-primary);flex:0 0 auto;margin-top:2px;}
.form__hint{display:block;margin-top:5px;font-size:.82rem;color:var(--c-muted);}
.verified{color:var(--c-success);font-weight:600;}

/* ---------- testata dell'area ---------- */
.account-head{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:20px;flex-wrap:wrap;margin-bottom:18px;
}
.account-head__kicker{
  margin:0 0 4px;font-size:.76rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--c-primary);
}
.account-head__title{margin:0 0 8px;font-size:1.9rem;}
.account-head__meta{margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--c-muted);}
.account-head__meta strong{color:var(--c-dark);font-size:1.05rem;}

.account-nav{
  display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px;
  border-bottom:1px solid var(--c-border);
}
.account-nav__link{
  display:inline-flex;align-items:center;gap:7px;
  padding:10px 14px;border-bottom:2px solid transparent;
  font-size:.94rem;font-weight:600;color:var(--c-muted);
}
.account-nav__link:hover{color:var(--c-dark);text-decoration:none;}
.account-nav__link.is-active{color:var(--c-primary);border-bottom-color:var(--c-primary);}

.account-verify{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.account-verify form{margin:0;}

/* ---------- carta punti ---------- */
.account-grid{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:22px;margin-bottom:24px;align-items:stretch;
}
.rewards-card{
  background:linear-gradient(135deg,#1f2a37,#141b24);
  color:#fff;border-radius:var(--radius);padding:26px 28px;box-shadow:var(--shadow-lg);
  position:relative;overflow:hidden;
}
.rewards-card::after{
  content:"";position:absolute;top:-70px;right:-70px;width:230px;height:230px;
  border-radius:50%;background:radial-gradient(circle,rgba(192,57,43,.55),transparent 70%);
}
.rewards-card--gourmet::after{background:radial-gradient(circle,rgba(184,134,11,.55),transparent 70%);}
.rewards-card--ambassador::after{background:radial-gradient(circle,rgba(31,138,83,.5),transparent 70%);}
.rewards-card__label{
  margin:0;font-size:.76rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:rgba(255,255,255,.65);
}
.rewards-card__points{margin:2px 0 6px;font-family:var(--font-head);font-size:3rem;line-height:1;}
.rewards-card__level{margin:0 0 16px;}
.rewards-card__next{margin:10px 0 0;font-size:.9rem;color:rgba(255,255,255,.8);}
.rewards-progress{
  height:8px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden;
}
.rewards-progress__bar{display:block;height:100%;border-radius:999px;background:#fff;}

.level-badge{
  display:inline-block;padding:4px 12px;border-radius:999px;
  font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  background:#e7ebf0;color:#40506a;
}
.level-badge--explorer{background:#dce6f5;color:#2b4f80;}
.level-badge--gourmet{background:#f6ecd2;color:#7a5b06;}
.level-badge--ambassador{background:#dff0e5;color:#14603a;}

/* ---------- numeri ---------- */
.account-stats{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
.account-stats li{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:18px 16px;text-align:center;box-shadow:var(--shadow);
  display:flex;flex-direction:column;justify-content:center;gap:4px;
}
.account-stats strong{font-family:var(--font-head);font-size:1.7rem;color:var(--c-dark);line-height:1;}
.account-stats span{font-size:.82rem;color:var(--c-muted);}

/* ---------- colonne e pannelli ---------- */
.account-cols{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:22px;margin-bottom:24px;}
.account-cols .panel,
.page-account .panel{margin-bottom:0;}
.page-account .panel + .panel{margin-top:22px;}
.panel__head{
  display:flex;justify-content:space-between;align-items:center;
  gap:14px;flex-wrap:wrap;margin-bottom:16px;
}
.panel__head h2{margin:0;font-size:1.25rem;}
.panel--danger{border-color:#f0c8c4;}
.panel--danger h2{color:var(--c-danger);}
.empty--inline{padding:26px 10px;}

/* filtro prossime/passate/tutte */
.seg{display:inline-flex;border:1px solid var(--c-border);border-radius:999px;overflow:hidden;}
.seg__item{
  padding:7px 16px;font-size:.87rem;font-weight:600;color:var(--c-muted);background:#fff;
}
.seg__item:hover{color:var(--c-dark);text-decoration:none;}
.seg__item.is-active{background:var(--c-dark);color:#fff;}

/* ---------- elenco prenotazioni ---------- */
.booking-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
.booking-row{
  display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:16px;align-items:center;
  padding:14px 16px;border:1px solid var(--c-border);border-radius:var(--radius);background:#fff;
}
.booking-row__when{display:flex;flex-direction:column;line-height:1.35;}
.booking-row__when strong{font-size:.92rem;color:var(--c-dark);}
.booking-row__when span{font-size:1.15rem;font-weight:700;color:var(--c-primary);}
.booking-row__what a{font-weight:600;color:var(--c-dark);}
.booking-row__what a:hover{color:var(--c-primary);text-decoration:none;}
.booking-row__what p{margin:2px 0 0;font-size:.86rem;}
.booking-row__pts{margin:6px 0 0 !important;font-size:.82rem !important;font-weight:700;color:var(--c-success);}
.booking-row__side{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.booking-row__done{font-size:.84rem;}

/* ---------- movimenti punti ---------- */
.points-list{list-style:none;margin:0;padding:0;}
.points-row{
  display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:14px;align-items:center;
  padding:11px 0;border-bottom:1px solid var(--c-border);font-size:.93rem;
}
.points-row:last-child{border-bottom:0;}
.points-row__pts{
  font-weight:700;color:var(--c-success);background:#e9f6ef;
  border-radius:999px;padding:3px 0;text-align:center;font-size:.92rem;
}
.points-row__pts.is-neg{color:#8c2119;background:#fdeceb;}
.points-row__when{color:var(--c-muted);font-size:.84rem;white-space:nowrap;}

/* ---------- come si guadagnano i punti ---------- */
.rewards-how{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:11px;font-size:.93rem;}
.rewards-how li{display:flex;align-items:flex-start;gap:11px;}
.rewards-how__pts{
  flex:0 0 auto;min-width:46px;text-align:center;font-weight:700;
  background:var(--c-bg-alt);border-radius:999px;padding:3px 9px;color:var(--c-dark);
}
.rewards-levels__title{margin:0 0 12px;font-size:1.05rem;}
.rewards-levels{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:9px;font-size:.9rem;}
.rewards-levels li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.rewards-levels li.is-current{font-weight:600;}

/* ---------- invito al programma (pagina prenotazione) ---------- */
.rewards-cta{
  margin:22px 0 0;padding:20px 22px;border-radius:var(--radius);
  background:var(--c-bg-alt);border:1px solid var(--c-border);
  display:flex;flex-direction:column;align-items:flex-start;gap:10px;
}
.rewards-cta__title{
  margin:0;font-size:.76rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--c-primary);
}
.rewards-cta__text{margin:0;font-size:.95rem;}
.rewards-cta .btn + .btn{margin-left:8px;}

/* ---------- cuore dei preferiti ---------- */
.fav-form{margin:0;}
.fav-btn{
  display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  background:#fff;border:1px solid var(--c-border);border-radius:999px;
  padding:8px 15px;font:inherit;font-size:.88rem;font-weight:600;color:var(--c-muted);
  line-height:1.2;transition:color .15s,border-color .15s,background .15s;
}
.fav-btn:hover{border-color:var(--c-primary);color:var(--c-primary);text-decoration:none;}
.fav-btn .ico{width:19px;height:19px;flex:0 0 auto;}
.fav-btn.is-on{border-color:var(--c-primary);color:var(--c-primary);}
.fav-btn.is-on .ico{fill:var(--c-primary);}
.fav-btn[disabled]{opacity:.6;cursor:default;}

/* nella scheda locale sta accanto al voto */
.venue-title__side{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.fav-btn--venue{padding:9px 17px;}

/* sulle card dei preferiti galleggia sull'immagine */
.card-wrap{position:relative;transition:opacity .2s,transform .2s;}
.card-wrap.is-removing{opacity:0;transform:scale(.97);}
.card-wrap .fav-form{position:absolute;top:10px;right:10px;z-index:3;}
.fav-btn--card{
  padding:7px 12px;background:rgba(255,255,255,.94);
  box-shadow:0 2px 10px rgba(0,0,0,.16);border-color:transparent;
}
.fav-btn--card .fav-btn__txt{display:none;}

/* accenno al programma dentro al modulo di prenotazione */
.booking-card__rewards{
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 8px;margin:0 0 16px;
  font-size:.85rem;color:var(--c-muted);
}
.booking-card__rewards .ico{margin-right:-2px;}
.booking-card__rewards .ico{color:var(--c-primary);flex:0 0 auto;margin-top:2px;}

/* ---------- schermi stretti ---------- */
@media (max-width:960px){
  .account-grid,.account-cols{grid-template-columns:1fr;}
  .account-stats{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:720px){
  /* su telefono il profilo sta nella barra in fondo: in testata sarebbe un doppione */
  .user-menu{display:none;}
  .nav-rewards-btn{display:none;}
  .account-head{gap:12px;}
  .account-head__title{font-size:1.5rem;}
  .account-nav{
    flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
    margin:0 -20px 20px;padding:0 20px;
  }
  .account-nav::-webkit-scrollbar{display:none;}
  .account-nav__link{white-space:nowrap;padding:10px 12px;}
  .booking-row{grid-template-columns:84px minmax(0,1fr);gap:12px;}
  .booking-row__side{grid-column:1 / -1;justify-content:flex-start;}
  .points-row{grid-template-columns:64px minmax(0,1fr);row-gap:2px;}
  .points-row__when{grid-column:2;justify-self:start;}
  .rewards-card__points{font-size:2.5rem;}
  .cards--fav{grid-template-columns:1fr;}
}

/* ---------- lingue da destra a sinistra ---------- */
html[dir="rtl"] .user-menu__panel{right:auto;left:0;}
html[dir="rtl"] .card-wrap .fav-form{right:auto;left:10px;}
html[dir="rtl"] .booking-row__side{justify-content:flex-start;}
html[dir="rtl"] .rewards-cta .btn + .btn{margin-left:0;margin-right:8px;}
html[dir="rtl"] .rewards-card::after{right:auto;left:-70px;}

/* amministrazione: elenco dei clienti registrati */
.admin-search{margin-bottom:20px;align-items:flex-end;}
.inline-form{display:inline-flex;align-items:center;gap:6px;margin:0;}
.points-form input[type="number"]{width:82px;}
.points-form input[type="text"]{width:120px;}
.points-form input{padding:6px 9px;font-size:.85rem;}

/* ============================================================
   GUIDA AL PANNELLO (pannello/guida.php)
   Testo lungo da leggere: colonna stretta, sommario appiccicato
   a sinistra sul desktop, in cima su telefono.
   ============================================================ */
.guida-hero{
  display:flex;gap:28px;align-items:flex-start;justify-content:space-between;
  margin-bottom:26px;
}
.guida-hero__testo{max-width:62ch;}
.guida-hero__testo h2{font-size:1.6rem;margin:0 0 10px;}
.guida-hero__lead{color:var(--c-primary);font-size:1.02rem;margin:0;}
.guida-hero__pdf{
  flex:0 0 232px;background:var(--c-bg-alt);border:1px solid var(--c-border);
  border-radius:var(--radius);padding:16px;text-align:center;
}
.guida-hero__pdf p{margin:0 0 12px;}
.guida-hero__pdf .btn{width:100%;margin-bottom:8px;}

.guida-kicker{
  font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--c-primary);margin:0 0 6px;
}

.guida-layout{display:grid;grid-template-columns:236px minmax(0,1fr);gap:40px;align-items:start;}

/* ---------- sommario ---------- */
.guida-toc{
  position:sticky;top:calc(var(--header-h) - 46px);
  border-left:2px solid var(--c-border);padding-left:18px;
}
.guida-toc__t{
  font-family:var(--font-head);font-size:.95rem;color:var(--c-dark);
  margin:0 0 10px;font-weight:700;
}
.guida-toc ol{list-style:none;margin:0 0 16px;padding:0;}
.guida-toc li{margin-bottom:7px;}
.guida-toc a{
  display:flex;gap:8px;font-size:.86rem;line-height:1.35;color:var(--c-muted);
}
.guida-toc__n{flex:0 0 auto;min-width:1.3em;font-weight:700;color:var(--c-primary);}
.guida-toc a:hover{color:var(--c-primary);text-decoration:none;}
.guida-toc__pdf{width:100%;text-align:center;}

/* ---------- corpo ---------- */
.guida-body{max-width:74ch;}
.guida-sez{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:30px 32px;margin-bottom:22px;box-shadow:var(--shadow);
  scroll-margin-top:calc(var(--header-h) + 12px);
}
.guida-sez h2{font-size:1.42rem;margin:0 0 10px;}
.guida-sez h3{
  font-size:1.06rem;margin:26px 0 8px;padding-top:2px;color:var(--c-dark);
}
.guida-sez p{line-height:1.68;}
.guida-lead{color:var(--c-muted);font-style:italic;margin:0 0 20px;}
.guida-sez--fine{background:var(--c-bg-alt);}

.guida-list,.guida-steps{margin:0 0 18px;padding-left:0;list-style:none;}
.guida-list li,.guida-steps li{
  position:relative;padding-left:30px;margin-bottom:10px;line-height:1.62;
}
.guida-list li::before{
  content:"";position:absolute;left:8px;top:.62em;
  width:7px;height:7px;border-radius:50%;background:var(--c-primary);
}
.guida-steps{counter-reset:passo;}
.guida-steps li{counter-increment:passo;}
.guida-steps li::before{
  content:counter(passo);position:absolute;left:0;top:.05em;
  width:21px;height:21px;border-radius:50%;
  background:var(--c-primary);color:#fff;
  font-size:.74rem;font-weight:700;line-height:21px;text-align:center;
}

/* riquadri: consiglio (scuro) e attenzione (rosso) */
.guida-nota{
  background:var(--c-bg-alt);border-left:3px solid var(--c-dark);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  padding:15px 18px;margin:0 0 20px;
}
.guida-nota--warn{background:#fdf4f2;border-left-color:var(--c-primary);}
.guida-nota p{margin:0;font-size:.93rem;line-height:1.6;color:#4e4e4e;}
.guida-nota__t{font-weight:700;color:var(--c-dark) !important;margin:0 0 5px !important;}
.guida-nota--warn .guida-nota__t{color:var(--c-primary) !important;}

/* tabella a due colonne */
.guida-dl{
  display:grid;grid-template-columns:170px minmax(0,1fr);
  gap:0;margin:0 0 20px;border-top:1px solid var(--c-border);
}
.guida-dl dt{
  font-weight:700;color:var(--c-dark);font-size:.92rem;
  padding:12px 16px 12px 0;border-bottom:1px solid var(--c-border);
}
.guida-dl dd{
  margin:0;font-size:.92rem;line-height:1.6;
  padding:12px 0;border-bottom:1px solid var(--c-border);
}

/* lista da spuntare */
.guida-check{list-style:none;margin:0;padding:0;}
.guida-check li{
  border-bottom:1px solid var(--c-border);padding:11px 2px;
}
.guida-check li:last-child{border-bottom:0;}
.guida-check .check-item{align-items:flex-start;font-size:.95rem;gap:11px;}
.guida-check .check-item input{margin-top:3px;width:17px;height:17px;accent-color:var(--c-primary);}
.guida-check li.is-done span{color:var(--c-muted);text-decoration:line-through;}

.guida-contatti{
  background:var(--c-dark);color:#fff;border-radius:var(--radius);
  padding:22px 24px;margin-top:26px;
}
.guida-contatti h3{color:#fff;margin:0 0 8px;font-size:1.12rem;}
.guida-contatti p{color:#d6dae0;font-size:.94rem;margin:0 0 14px;}
.guida-contatti a{color:#fff;text-decoration:underline;}
.guida-contatti .btn{text-decoration:none;}

@media (max-width:960px){
  .guida-layout{grid-template-columns:1fr;gap:22px;}
  .guida-toc{
    position:static;border-left:0;padding-left:0;
    background:var(--c-bg-alt);border:1px solid var(--c-border);
    border-radius:var(--radius);padding:18px 20px;
  }
  .guida-toc ol{columns:2;column-gap:24px;}
  .guida-hero{flex-direction:column;}
  .guida-hero__pdf{flex:1 1 auto;width:100%;text-align:left;}
}
@media (max-width:720px){
  .guida-sez{padding:22px 20px;}
  .guida-sez h2{font-size:1.24rem;}
  .guida-toc ol{columns:1;}
  .guida-dl{grid-template-columns:1fr;}
  .guida-dl dt{padding-bottom:2px;border-bottom:0;}
  .guida-dl dd{padding-top:0;}
}

/* ============================================================
   SFONDO DELLA PAGINA "SITO IN COSTRUZIONE" (solo amministrazione)
   Anteprima dell'immagine scelta, con sopra il riquadro in piccolo
   così si vede subito quanto resta leggibile.
   ============================================================ */
.bg-pick{display:grid;grid-template-columns:280px 1fr;gap:22px;align-items:start;}
.bg-pick__prev{
  position:relative;aspect-ratio:16/10;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--c-border);background:var(--c-bg-alt);
  background-size:cover;background-position:center;
}
.bg-pick__prev::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,14,12,.34),rgba(20,14,12,.52));
}
.bg-pick__prev--empty{
  background-image:
    radial-gradient(circle at 15% 10%,rgba(192,57,43,.10),transparent 45%),
    radial-gradient(circle at 85% 90%,rgba(31,42,55,.10),transparent 45%);
}
.bg-pick__prev--empty::after{background:none;}
.bg-pick__card{
  position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);
  width:64%;padding:12px 10px;border-radius:8px;text-align:center;
  background:var(--card-bg);backdrop-filter:blur(6px);
  border:1px solid var(--line);
  font-family:var(--font-head);font-size:.9rem;color:var(--ink);
  box-shadow:0 8px 22px rgba(0,0,0,.28);
}
.bg-pick__card img{display:block;width:66%;height:auto;margin:0 auto 8px;}
/* marchi con lo sfondo pieno: angoli arrotondati come sulla pagina vera */
.bg-pick__card img.is-boxed{border-radius:5px;}
.bg-pick__card span{display:block;line-height:1.25;}

/* colore + copertura del riquadro */
.bg-pick__color{margin-top:18px;padding-top:18px;border-top:1px solid var(--c-border);}
.color-field{display:flex;align-items:center;gap:12px;}
.color-field input[type=color]{
  flex:0 0 auto;width:52px;height:40px;padding:2px;cursor:pointer;
  border:1px solid var(--c-border);border-radius:var(--radius-sm);background:#fff;
}
.color-field input[type=text]{flex:1;min-width:0;font-family:monospace;text-transform:lowercase;}
.color-field input[type=range]{flex:1;min-width:0;accent-color:var(--c-primary);}
.color-field output{
  flex:0 0 auto;min-width:46px;text-align:right;
  font-size:.9rem;font-weight:600;color:var(--c-dark);
}
.bg-pick__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;}
.bg-pick__actions form{margin:0;}
@media (max-width:720px){
  .bg-pick{grid-template-columns:1fr;}
}

/* ============================================================
   CONTRATTI — editor A4 e archivio riservato in amministrazione
   ============================================================ */
.contract-workspace{
  display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start;
}
.contract-editor{min-width:0;}
.contract-toolbar{
  position:sticky;top:10px;z-index:30;display:flex;align-items:end;gap:14px;flex-wrap:wrap;
  margin-bottom:18px;padding:15px 16px;background:#fff;border:1px solid var(--c-border);
  border-radius:var(--radius);box-shadow:var(--shadow);
}
.contract-toolbar .form__note{flex-basis:100%;margin:0;}
.contract-toolbar__actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto;}
.contract-prefill{display:flex;flex-direction:column;gap:5px;min-width:250px;}
.contract-prefill span{font-size:.78rem;font-weight:700;color:var(--c-muted);}
.contract-prefill select{padding:9px 34px 9px 10px;border:1px solid var(--c-border);border-radius:var(--radius-sm);background:#fff;}
.contract-paper{
  max-width:210mm;margin:0 auto;background:#fff;color:#171717;padding:17mm 16mm;
  border:1px solid #d9d9d9;box-shadow:0 12px 34px rgba(31,42,55,.12);
  font-family:Arial,sans-serif;font-size:10.5pt;line-height:1.48;
}
.contract-logo{text-align:center;margin:0 0 12px;}
.contract-logo img{display:inline-block;width:180px;max-width:48mm;height:auto;}
.contract-logo--text{font-size:22pt;letter-spacing:.04em;}
.contract-paper h1{text-align:center;font-size:18pt;line-height:1.2;margin:0 0 6px;color:#000;}
.contract-paper .contract-subtitle{text-align:center;color:#555;margin:0 0 25px;}
.contract-paper h2{font-size:11.5pt;line-height:1.3;color:#000;margin:19px 0 7px;}
.contract-paper p{margin:0 0 10px;text-align:justify;}
.contract-paper ul{margin:6px 0 12px;padding-left:22px;}
.contract-paper li{margin:0 0 4px;}
.contract-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px;margin:8px 0 12px;}
.contract-field{display:flex;flex-direction:column;gap:3px;}
.contract-field > span:first-child{font-size:8.5pt;font-weight:700;color:#4c4c4c;}
.contract-field--client_name,.contract-field--business_name,.contract-field--representative,.contract-field--address{grid-column:1/-1;}
.contract-field input,.contract-inline-field input{
  width:100%;min-width:0;border:0;border-bottom:1px solid #777;border-radius:0;
  padding:3px 2px;background:#fff;color:#111;font:inherit;
}
.contract-field input:focus,.contract-inline-field input:focus{
  outline:2px solid rgba(192,57,43,.2);outline-offset:1px;border-color:var(--c-primary);
}
.contract-static-clause{margin-bottom:10px;}
.contract-plan-option{display:grid;grid-template-columns:24px minmax(0,1fr);gap:7px;align-items:start;margin:10px 0;cursor:pointer;}
.contract-plan-option > input{position:absolute;opacity:0;pointer-events:none;}
.contract-check{width:18px;height:18px;margin-top:3px;border:1.5px solid #555;display:flex;align-items:center;justify-content:center;}
.contract-plan-option > input:checked + .contract-check::after{content:'✓';font-size:15px;font-weight:800;line-height:1;}
.contract-plan-copy{display:block;min-width:0;}
.contract-plan-copy > strong{display:block;margin-bottom:4px;}
.contract-clause-text{display:block;text-align:justify;}
.contract-price-table{width:100%;border-collapse:collapse;margin:10px 0 14px;font-size:9.2pt;}
.contract-price-table th,.contract-price-table td{border:1px solid #bbb;padding:6px;text-align:left;vertical-align:middle;}
.contract-price-table th{background:#eee;color:#111;}
.contract-summary{border:2px solid #111;border-radius:4px;padding:14px 16px;margin:26px 0 18px;background:#fcfbf9;break-inside:avoid;page-break-inside:avoid;}
.contract-summary[hidden]{display:none!important;}
.contract-paper .contract-summary h2{margin:0 0 10px;text-transform:uppercase;letter-spacing:.02em;}
.contract-summary__facts{display:grid;grid-template-columns:34mm 1fr;gap:4px 10px;margin:0 0 10px;font-size:10pt;}
.contract-summary__facts dt{font-weight:700;}
.contract-summary__facts dd{margin:0;}
.contract-summary__table{width:100%;border-collapse:collapse;margin:6px 0 12px;font-size:9.4pt;}
.contract-summary__table th,.contract-summary__table td{border:1px solid #bbb;padding:6px;text-align:left;vertical-align:middle;}
.contract-summary__table thead th{background:#eee;color:#111;}
.contract-summary__table td:nth-child(n+2),.contract-summary__table tfoot td{text-align:right;white-space:nowrap;}
.contract-summary__table small{color:#666;}
.contract-summary__total th,.contract-summary__total td{font-weight:700;background:#eee;font-size:10.5pt;}
.contract-paper .contract-summary__sign{margin-top:16px;}
.contract-paper .contract-summary__note{font-size:8.5pt;color:#555;margin:0;}
@media print{.contract-summary{background:none;}}
.contract-inline-field{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:end;margin:8px 0 13px;}
.contract-place-date{max-width:145mm;margin-top:19px;}
.contract-signatures{display:grid;grid-template-columns:1fr 1fr;gap:30mm;margin:26px 0;text-align:left;}
.contract-disclaimer{margin-top:20px!important;font-size:8.5pt;color:#555;}
.contract-print-value{display:none;}
.contract-archive{
  position:sticky;top:10px;background:#fff;border:1px solid var(--c-border);
  border-radius:var(--radius);box-shadow:var(--shadow);padding:19px;
}
.contract-archive h2{font-size:1.15rem;margin:0 0 5px;}
.contract-archive-list{list-style:none;margin:14px 0 0;padding:0;max-height:72vh;overflow:auto;}
.contract-archive-list li{padding:12px 4px;border-top:1px solid var(--c-border);}
.contract-archive-list li.is-current{border-left:3px solid var(--c-primary);padding-left:10px;background:#fffaf8;}
.contract-archive-list strong,.contract-archive-list span{display:block;overflow-wrap:anywhere;}
.contract-archive-list span{font-size:.78rem;color:var(--c-muted);margin-top:2px;}
.contract-archive-list div{display:flex;gap:12px;margin-top:7px;font-size:.85rem;font-weight:700;}
.contract-delete-link{margin-left:auto;padding:0;border:0;background:none;color:var(--c-danger);font:inherit;font-weight:700;cursor:pointer;}
.contract-delete-link:hover,.contract-delete-link:focus-visible{text-decoration:underline;}
.contract-delete-dialog{width:min(440px,calc(100vw - 32px));padding:24px;border:1px solid var(--c-border);border-radius:var(--radius-sm);box-shadow:0 20px 50px rgba(0,0,0,.25);color:var(--c-text);}
.contract-delete-dialog::backdrop{background:rgba(31,42,55,.55);}
.contract-delete-dialog h2{margin:0 0 8px;font-size:1.2rem;color:var(--c-danger);}
.contract-delete-dialog p{margin:0 0 10px;overflow-wrap:anywhere;}
.contract-delete-dialog input[type=text]{width:100%;padding:10px 12px;border:1px solid var(--c-border);border-radius:var(--radius-sm);font:inherit;letter-spacing:.08em;}
.contract-delete-dialog input[type=text]:focus{outline:2px solid var(--c-danger);outline-offset:1px;}
.contract-delete-dialog__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;flex-wrap:wrap;}
.contract-delete-dialog .btn[disabled]{opacity:.45;cursor:not-allowed;}
@media print{.contract-delete-dialog{display:none!important;}}
.empty-contracts{font-size:.9rem;color:var(--c-muted);margin:14px 0 0;}

@media (max-width:1050px){
  .contract-workspace{grid-template-columns:1fr;}
  .contract-archive{position:static;order:2;}
  .contract-archive-list{max-height:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;}
}
@media (max-width:720px){
  .contract-paper{padding:24px 18px;font-size:9.8pt;}
  .contract-fields{grid-template-columns:1fr;}
  .contract-field{grid-column:1!important;}
  .contract-toolbar{position:static;}
  .contract-toolbar__actions{margin-left:0;}
  .contract-toolbar__actions .btn{flex:1 1 auto;}
  .contract-archive-list{grid-template-columns:1fr;}
}

@media print{
  @page{size:A4;margin:14mm 14mm 16mm;}
  body{background:#fff!important;}
  .site-header,.site-footer,.cookie-banner,.mobile-tabbar,.contract-screen-only,.contract-admin-head{display:none!important;}
  .section.contract-admin,.section.contract-admin .container{margin:0!important;padding:0!important;max-width:none!important;width:auto!important;}
  .contract-workspace{display:block;}
  .contract-paper{max-width:none;margin:0;padding:0;border:0;box-shadow:none;font-size:9.6pt;line-height:1.4;}
  .contract-paper h1{font-size:16pt;}
  .contract-paper h2{font-size:10.7pt;margin-top:14px;break-after:avoid;page-break-after:avoid;}
  .contract-paper p{margin-bottom:7px;}
  .contract-paper input[data-print-source]{display:none!important;}
  .contract-paper .contract-print-value{display:block;white-space:pre-wrap;}
  .contract-field .contract-print-value,.contract-inline-field .contract-print-value{border-bottom:1px solid #777;min-height:20px;padding:2px;}
  .contract-inline-field .contract-print-value{min-width:60mm;}
  .contract-plan-option{break-inside:avoid;page-break-inside:avoid;}
  .contract-price-table{font-size:8.5pt;break-inside:avoid;page-break-inside:avoid;}
  .contract-signatures{break-inside:avoid;page-break-inside:avoid;}
}

/* Dati fiscali del locale (admin/ristorante.php) */
.form__subhead{font-size:1rem;margin:18px 0 8px;color:var(--c-dark);}

/* ============================================================
   CONTATTI (contatti.php) — modulo generico verso info@divoroo.it
   ============================================================ */
.contact-head{max-width:720px;margin:0 auto 32px;text-align:center;}
.contact-head__kicker{
  margin:0 0 8px;font-size:.8rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--c-primary);
}
.contact-head__title{margin:0 0 12px;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.1;}
.contact-head__lead{margin:0;color:var(--c-muted);font-size:1.02rem;line-height:1.6;}
.contact-layout{
  display:grid;grid-template-columns:minmax(0,7fr) minmax(280px,4fr);
  gap:32px;align-items:start;
}
.contact-form{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow-lg);
  scroll-margin-top:calc(var(--header-h) + 20px);
}
.contact-form__title{margin:0 0 16px;font-size:1.35rem;}
.contact-venue[hidden],[data-contact-plan][hidden]{display:none;}
.contact-side{display:grid;gap:16px;}
.contact-card{padding:20px;}
.contact-card .ico{width:24px;height:24px;color:var(--c-primary);margin-bottom:8px;}
.contact-card h2{margin:0 0 6px;font-size:1.05rem;}
.contact-card p{margin:0 0 6px;color:var(--c-muted);font-size:.9rem;line-height:1.55;}
.contact-card__mail{font-weight:700;font-size:1rem;color:var(--c-primary);word-break:break-all;}
.contact-card__links{display:flex;flex-wrap:wrap;gap:14px;}
.contact-card__links a{font-weight:600;color:var(--c-primary);}
.contact-card .social-links{margin-top:10px;}

/* ============================================================
   DIVENTA UN DIVOROO (diventa-partner.php) — guida alla scelta
   ============================================================ */
.partner-hero--guide{min-height:520px;}
.partner-hero--guide .partner-hero__content{padding:80px 20px;}
.guide-hero__actions{display:flex;flex-wrap:wrap;gap:12px;}
.guide-hero__ghost{
  background:transparent;border:2px solid rgba(255,255,255,.8);color:#fff;
}
.guide-hero__ghost:hover{background:#fff;color:var(--c-dark);}
/* indice della pagina: attaccato sotto la testata, uguale per tutte le ancore */
.guide-jump{
  position:sticky;top:var(--guide-sticky-top,0px);z-index:40;
  background:#fff;border-bottom:1px solid var(--c-border);box-shadow:0 4px 14px rgba(0,0,0,.06);
}
.guide-jump__inner{
  display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;
  padding-top:8px;padding-bottom:8px;
}
.guide-jump__inner::-webkit-scrollbar{display:none;}
.guide-jump a{
  flex:0 0 auto;padding:7px 14px;border-radius:999px;
  font-size:.88rem;font-weight:600;color:var(--c-dark);white-space:nowrap;
}
.guide-jump a:hover{background:var(--c-bg-alt);text-decoration:none;}
.guide-jump a.is-active{background:var(--c-primary);color:#fff;}

.guide-section{scroll-margin-top:var(--guide-offset,70px);}
.guide-lead{max-width:760px;margin:-8px auto 30px;text-align:center;color:var(--c-muted);font-size:1.02rem;line-height:1.65;}

.guide-plans{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:36px 0 16px;}
.guide-plan{
  position:relative;display:flex;flex-direction:column;gap:8px;padding:22px 24px;
  border:2px solid var(--c-primary);border-radius:var(--radius);background:#fff;color:var(--c-dark);
}
.guide-plan:hover{text-decoration:none;box-shadow:var(--shadow-lg);}
.guide-plan__name{font-family:var(--font-head);font-size:1.5rem;font-weight:700;}
.guide-plan__for{color:var(--c-muted);line-height:1.5;}
.guide-plan__price{font-weight:700;}
.guide-plan__more{margin-top:auto;font-weight:700;color:var(--c-primary);}
.guide-plan--pro{background:var(--c-primary);color:#fff;}
.guide-plan--pro .guide-plan__for{color:rgba(255,255,255,.88);}
.guide-plan--pro .guide-plan__more{color:#fff;}
.guide-plan__badge{
  position:absolute;top:-11px;right:18px;padding:3px 10px;border-radius:999px;
  background:var(--c-dark);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
}

.guide-paths{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.guide-path{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--c-border);
  border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);
}
.guide-path--assisted{border-color:var(--c-dark);}
.guide-path__kicker{margin:0 0 4px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--c-primary);}
.guide-path__title{margin:0 0 16px;font-size:1.3rem;}
.guide-path .btn{margin-top:auto;}
.guide-steps{list-style:none;counter-reset:gstep;margin:0 0 22px;padding:0;}
.guide-steps li{
  counter-increment:gstep;position:relative;padding:0 0 14px 40px;line-height:1.55;color:var(--c-text);
}
.guide-steps li::before{
  content:counter(gstep);position:absolute;left:0;top:0;
  width:27px;height:27px;border-radius:50%;background:var(--c-bg-alt);color:var(--c-primary);
  font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center;
}

.guide-timeline{list-style:none;margin:0 auto;padding:0;max-width:760px;}
.guide-timeline li{position:relative;display:flex;gap:18px;padding-bottom:22px;}
.guide-timeline li:not(:last-child)::after{
  content:"";position:absolute;left:17px;top:38px;bottom:0;width:2px;background:var(--c-border);
}
.guide-timeline__dot{
  flex:0 0 36px;height:36px;border-radius:50%;background:var(--c-primary);color:#fff;
  font-weight:700;display:flex;align-items:center;justify-content:center;
}
.guide-timeline strong{display:block;margin-top:6px;font-size:1.05rem;}
.guide-timeline p{margin:4px 0 0;color:var(--c-muted);line-height:1.55;}

.guide-price{max-width:640px;margin:0 auto 32px;}
.guide-price__table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.guide-price__table th,.guide-price__table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--c-border);}
.guide-price__table thead th{background:var(--c-dark);color:#fff;font-size:.9rem;}
.guide-price__table tbody th{font-weight:600;}
.guide-price__table tbody th small{display:block;font-weight:400;color:var(--c-muted);}
.guide-price__table tbody tr:last-child th,.guide-price__table tbody tr:last-child td{border-bottom:0;}
.guide-price__note{margin:10px 0 0;text-align:center;color:var(--c-muted);font-size:.88rem;}
.guide-pay{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:18px;}
.guide-pay__item{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:22px;}
.guide-pay__item .ico{width:26px;height:26px;color:var(--c-primary);}
.guide-pay__item h3{margin:8px 0 6px;font-size:1.08rem;}
.guide-pay__item p{margin:0;color:var(--c-muted);line-height:1.6;font-size:.94rem;}

.guide-final{background:var(--c-dark);color:#fff;padding:52px 0;}
.guide-final__inner{text-align:center;}
.guide-final h2{margin:0 0 8px;color:#fff;}
.guide-final p{margin:0 0 22px;color:rgba(255,255,255,.85);}
.guide-final__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;}

@media (max-width:860px){
  .contact-layout{grid-template-columns:1fr;}
  .guide-plans,.guide-paths,.guide-pay{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .contact-form{padding:18px;}
  .partner-hero--guide{min-height:0;}
  .partner-hero--guide .partner-hero__content{padding:44px 20px 36px;}
  .guide-hero__actions .btn{width:100%;text-align:center;}
  .guide-price__table th,.guide-price__table td{padding:10px 10px;font-size:.9rem;}
}
