body.df-lt-page{ background:#181818; }
.df-lt{
  --df-ink:#181818; --df-card:#232323; --df-card2:#2c2c2c;
  --df-line:rgba(255,255,255,.09); --df-line2:rgba(255,255,255,.15);
  --df-text:#fff; --df-dim:#b3b3b3; --df-faint:#8a8a8a;
  --df-red:#e10916; --df-yellow:#ffdb01; --df-yellow-ink:#181818;
  --df-magenta:#ff008a; --df-live:#37d67a; --df-closed:#ff6a5c;
  --df-chip-hover:rgba(255,255,255,.07); --df-red-hover:#ff2733; --df-yellow-hover:#ffe64d;
  --df-radius:14px; --df-radius-cta:16px; --df-maxw:460px;
  --df-font:"Gotham","Montserrat","Helvetica Neue",Arial,sans-serif;
  --df-display:"Bebas Neue","Oswald","Arial Narrow",Arial,sans-serif;
  max-width:var(--df-maxw); margin:0 auto; padding:8px 14px 48px;
  font-family:var(--df-font); color:var(--df-text); position:relative;
}
.df-lt *{ box-sizing:border-box; }
.df-ico{ fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; width:20px; height:20px; display:inline-block; flex:0 0 auto; }

.df-head{ text-align:center; padding:22px 10px 12px; }
.df-logo{ display:block; margin:0 auto 8px; max-width:196px; max-height:128px; width:auto; filter:drop-shadow(0 12px 26px rgba(225,9,22,.35)); }
.df-logo-txt{ font-family:var(--df-display); font-size:44px; text-transform:uppercase; color:var(--df-red); }
.df-claim{ margin:6px 0 0; font-size:12px; color:var(--df-yellow); letter-spacing:.24em; text-transform:uppercase; font-weight:700; }

.df-switch{ position:sticky; top:0; z-index:5; background:linear-gradient(180deg,rgba(24,24,24,.97),rgba(24,24,24,.85)); backdrop-filter:blur(10px); padding:10px 4px; margin:0 -4px; border-bottom:1px solid var(--df-line); }
.df-switch-lab{ font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--df-faint); margin:0 6px 8px; }
.df-chips{ display:flex; gap:7px; overflow-x:auto; scrollbar-width:none; padding:0 4px 2px; scroll-behavior:smooth; }
.df-chips::-webkit-scrollbar{ display:none; }
.df-chip{ flex:0 0 auto; appearance:none; border:1px solid var(--df-line2); cursor:pointer; font-family:inherit; background:var(--df-card); color:var(--df-dim); padding:9px 15px; border-radius:999px; font-size:13px; font-weight:650; white-space:nowrap; display:flex; align-items:center; gap:7px; transition:background .18s,color .18s,border-color .18s,transform .18s; }
.df-chip:not([aria-pressed="true"]):hover{ background:var(--df-chip-hover); color:var(--df-text); border-color:var(--df-line2); }
.df-chip:active{ transform:scale(.95); }
/* Desktop / puntatore fine: le chip vanno a capo (tutti i locali visibili) + scorrono con drag/rotellina */
@media (min-width:600px){ .df-chips{ flex-wrap:wrap; overflow-x:visible; } }
@media (hover:hover) and (max-width:599px){ .df-chips{ cursor:grab; } .df-chips.df-drag{ cursor:grabbing; } }
.df-chip .df-dot{ width:6px; height:6px; border-radius:50%; background:var(--df-faint); transition:background .18s; }
.df-chip[aria-pressed="true"]{ background:var(--df-yellow); color:var(--df-ink); border-color:var(--df-yellow); }
.df-chip[aria-pressed="true"] .df-dot{ background:var(--df-ink); }
.df-chip:focus-visible{ outline:2px solid var(--df-yellow); outline-offset:2px; }
.df-qrhint{ font-size:12px; color:var(--df-dim); text-align:center; margin:8px 0 0; }
.df-qrchange{ background:none; border:0; color:var(--df-yellow); font-weight:700; font-family:inherit; font-size:12px; cursor:pointer; padding:0; }

.df-body{ padding:14px 4px 0; display:flex; flex-direction:column; gap:13px; }
.df-status-wrap{ display:flex; flex-direction:column; }
.df-status{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; width:100%; padding:11px 14px; background:var(--df-card); border:1px solid var(--df-line2); border-radius:var(--df-radius); appearance:none; font-family:inherit; color:var(--df-text); text-align:left; cursor:default; transition:background .16s; }
.df-st-left{ display:flex; align-items:center; gap:10px; min-width:0; }
.df-status.df-clickable{ cursor:pointer; }
.df-status.df-clickable:hover{ background:var(--df-card2); }
.df-status:focus-visible{ outline:2px solid var(--df-yellow); outline-offset:2px; }
.df-status .df-chev{ color:var(--df-faint); display:flex; flex:0 0 auto; transition:transform .28s ease; }
.df-status .df-chev .df-ico{ width:16px; height:16px; }
.df-status:not(.df-clickable) .df-chev{ display:none; }
.df-status[aria-expanded="true"] .df-chev{ transform:rotate(180deg); }
.df-pulse{ width:9px; height:9px; border-radius:50%; flex:0 0 auto; background:var(--df-closed); }
.df-status.is-open .df-pulse{ background:var(--df-live); animation:rbPulse 2.2s ease-in-out infinite; }
@keyframes rbPulse{
  0%{ box-shadow:0 0 0 0 rgba(55,214,122,.55); transform:scale(1); }
  55%{ box-shadow:0 0 0 6px rgba(55,214,122,0); transform:scale(1.18); }
  100%{ box-shadow:0 0 0 0 rgba(55,214,122,0); transform:scale(1); }
}
.df-st-main{ font-weight:750; font-size:14px; color:var(--df-closed); flex:0 0 auto; }
.df-status.is-open .df-st-main{ color:var(--df-live); }
.df-st-sub{ min-width:0; font-size:12.5px; color:var(--df-dim); font-variant-numeric:tabular-nums; overflow-wrap:normal; word-break:normal; white-space:normal; text-align:right; line-height:1.35; }
.df-sub-seg{ white-space:nowrap; }
.df-sub-bar{ margin-left:5px; opacity:.55; }
.df-sub-place{ overflow-wrap:anywhere; }

.df-duo{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.df-cta{ appearance:none; border:0; cursor:pointer; text-decoration:none; border-radius:var(--df-radius-cta); padding:16px 15px; display:flex; flex-direction:column; gap:3px; align-items:flex-start; transition:transform .12s,filter .18s,box-shadow .18s; }
.df-cta:active{ transform:scale(.97); }
/* L'anello di messa a fuoco segue il colore del testo: bianco sulle palette
   scure (come da sempre), scuro quando il linktree sta su fondo chiaro. */
.df-cta:focus-visible{ outline:3px solid var(--df-text,#fff); outline-offset:2px; }
.df-crow{ display:flex; align-items:center; gap:8px; }
.df-k{ font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; opacity:.85; font-weight:800; }
.df-v{ font-family:var(--df-display); font-size:27px; line-height:.9; letter-spacing:.02em; text-transform:uppercase; }
.df-cta .df-ico{ width:26px; height:26px; }
.df-cta-1{ background:var(--df-red); color:#fff; box-shadow:0 14px 28px -12px rgba(225,9,22,.55); }
.df-cta-2{ background:var(--df-yellow); color:var(--df-yellow-ink); box-shadow:0 14px 28px -12px rgba(255,219,1,.4); }
.df-cta-1:hover{ background:var(--df-red-hover); }
.df-cta-2:hover{ background:var(--df-yellow-hover); }
.df-cta[hidden]{ display:none; }
.df-duo.df-solo{ grid-template-columns:1fr; }

.df-events{ display:flex; flex-direction:column; gap:8px; }
.df-ev{ display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--df-text); background:var(--df-card); border:1px solid var(--df-line2); border-radius:var(--df-radius); padding:10px 12px; transition:background .16s,transform .16s; }
.df-ev:hover{ background:var(--df-card2); transform:translateY(-1px); }
.df-ev:focus-visible{ outline:2px solid var(--df-yellow); outline-offset:2px; }
.df-ev-date{ flex:0 0 auto; width:46px; height:50px; border-radius:11px; background:rgba(0,0,0,.28); border:1px solid var(--df-line2); display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1; }
.df-ev-date b{ font-family:var(--df-display); font-size:24px; color:var(--df-red); }
.df-ev-date span{ font-size:9px; letter-spacing:.12em; color:var(--df-dim); margin-top:3px; }
.df-ev-info{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.df-ev-t{ font-weight:750; font-size:14px; overflow-wrap:anywhere; }
.df-ev-s{ font-size:12px; color:var(--df-dim); }
.df-ev-cta{ margin-left:auto; flex:0 0 auto; font-size:12px; font-weight:800; color:var(--df-yellow-ink); background:var(--df-yellow); border-radius:999px; padding:9px 13px; white-space:nowrap; }
.df-ev-empty{ font-size:13px; color:var(--df-dim); background:var(--df-card); border:1px dashed var(--df-line2); border-radius:var(--df-radius); padding:16px; text-align:center; }

.df-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.df-tile{ border:1px solid var(--df-line2); text-decoration:none; background:var(--df-card); color:var(--df-text); border-radius:var(--df-radius); padding:14px; display:flex; align-items:center; gap:11px; transition:background .16s,transform .16s; font-size:14px; font-weight:600; }
.df-tile:hover{ background:var(--df-card2); transform:translateY(-1px); }
.df-tile:focus-visible{ outline:2px solid var(--df-yellow); outline-offset:2px; }
.df-tile .df-tic{ width:34px; height:34px; border-radius:10px; background:rgba(0,0,0,.28); display:flex; align-items:center; justify-content:center; flex:0 0 auto; color:var(--df-yellow); }
.df-tile .df-tic .df-ico{ width:18px; height:18px; }

/* Orari — accordion sotto lo stato */
.df-hours{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .32s cubic-bezier(.2,.7,.2,1); }
.df-hours.open{ grid-template-rows:1fr; }
.df-hours-inner{ overflow:hidden; }
.df-hours-list{ list-style:none; margin:8px 0 0; padding:6px; background:var(--df-card); border:1px solid var(--df-line2); border-radius:var(--df-radius); }
.df-h-row{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; column-gap:12px; row-gap:2px; padding:9px 12px; border-radius:9px; font-size:13.5px; }
.df-h-day{ color:var(--df-dim); text-transform:capitalize; flex:0 0 auto; }
.df-h-val{ flex:0 1 auto; margin-left:auto; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:2px 8px; color:var(--df-text); font-variant-numeric:tabular-nums; }
.df-h-seg{ white-space:nowrap; }
.df-h-bar{ margin-left:8px; opacity:.45; }
.df-h-row.is-today{ background:var(--df-yellow); }
.df-h-row.is-today .df-h-day, .df-h-row.is-today .df-h-val{ color:var(--df-yellow-ink); font-weight:750; }

.df-sec[hidden], .df-events[hidden], .df-status-wrap[hidden], .df-contacts[hidden]{ display:none !important; }

/* Contatti in chiaro: numero, mail e indirizzo scritti per esteso sotto la CTA,
   ognuno un tasto a se'. Nasce gia' a variabili, niente "valore storico". */
.df-contacts{ display:flex; flex-direction:column; gap:var(--df-ct-gap,8px); margin:2px 0 0; }
.df-ct{ display:flex; align-items:center; gap:var(--df-ct-icogap,10px); text-decoration:none;
  color:var(--df-ct-ink,var(--df-text)); background:var(--df-ct-bg,var(--df-card));
  border:var(--df-border-w,1px) solid var(--df-line); border-radius:var(--df-radius);
  padding:var(--df-ct-pad,13px 14px); font-size:var(--df-ct-size,14px);
  font-weight:600; line-height:1.35; overflow-wrap:anywhere;
  transition:background .16s,transform .16s; }
.df-ct:hover{ background:var(--df-card2); transform:translateX(2px); }
.df-ct:focus-visible{ outline:2px solid var(--df-ct-icon,var(--df-icon,var(--df-yellow))); outline-offset:2px; }
.df-ct .df-ct-ic{ width:22px; display:flex; justify-content:center; flex:0 0 auto; color:var(--df-ct-icon,var(--df-icon,var(--df-yellow))); }
.df-ct .df-ct-ic .df-ico{ width:var(--df-ct-ico,18px); height:var(--df-ct-ico,18px); }
.df-lt .df-ct:link, .df-lt .df-ct:visited, .df-lt .df-ct:hover, .df-lt .df-ct:focus, .df-lt .df-ct:active{ color:var(--df-ct-ink,var(--df-text)); }
/* Stile "tessere": due colonne, tessera chiara con ombra morbida, icona in un
   riquadro tinto. Se le voci sono dispari l'ultima prende tutta la riga. */
.df-contacts--tessere{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--df-ct-gap,12px); }
.df-contacts--tessere .df-ct{ background:var(--df-ct-bg,#fff); border:0; border-radius:var(--df-ct-radius,16px);
  box-shadow:0 8px 22px -14px rgba(60,40,20,.28), 0 1px 3px rgba(60,40,20,.07);
  padding:var(--df-ct-pad,14px); gap:var(--df-ct-icogap,14px); min-height:66px; font-weight:500; overflow-wrap:normal; }
.df-contacts--tessere .df-ct:hover{ transform:none; background:var(--df-ct-bg,#fff);
  box-shadow:0 10px 26px -14px rgba(60,40,20,.36), 0 1px 3px rgba(60,40,20,.09); }
.df-contacts--tessere .df-ct .df-ct-ic{ width:var(--df-ct-icbox,38px); height:var(--df-ct-icbox,38px); align-items:center;
  border-radius:10px; background:var(--df-ct-icbg,rgba(0,0,0,.06)); }
.df-contacts--tessere .df-ct--full{ grid-column:1 / -1; }
.df-ct .df-ct-ic > svg:not(.df-ico){ width:var(--df-ct-ico,18px); height:var(--df-ct-ico,18px); fill:currentColor; }
.df-ct .df-ct-ic > i{ font-size:var(--df-ct-ico,18px); line-height:1; }
.df-sec{ margin:8px 4px 2px; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--df-faint); display:flex; align-items:center; gap:10px; }
.df-sec::after{ content:""; flex:1; height:1px; background:var(--df-line); }
.df-links{ display:flex; flex-direction:column; gap:8px; }
.df-link{ display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--df-text); background:var(--df-card); border:1px solid var(--df-line); border-radius:var(--df-radius); padding:13px 14px; font-size:14px; font-weight:600; transition:background .16s,transform .16s; }

/* Social come fila di icone: alternativa alle righe intere, si accende dal
   widget. Nasce gia' a variabili, non ha un "valore storico" da preservare. */
.df-social{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--df-soc-gap,12px); margin:4px 0 0; }
.df-social[hidden]{ display:none !important; }
.df-social a{
  width:var(--df-soc-size,46px); height:var(--df-soc-size,46px);
  display:flex; align-items:center; justify-content:center; flex:0 0 auto;
  border-radius:var(--df-soc-radius,50%);
  background:var(--df-soc-bg,var(--df-card));
  border:var(--df-border-w,1px) solid var(--df-line2);
  color:var(--df-soc-ink,var(--df-icon,var(--df-yellow)));
  text-decoration:none; transition:background .16s,transform .16s;
}
.df-social a:hover{ background:var(--df-card2); transform:translateY(-2px); }
.df-social a:focus-visible{ outline:2px solid var(--df-soc-ink,var(--df-icon,var(--df-yellow))); outline-offset:2px; }
.df-social .df-ico{ width:var(--df-soc-ico,22px); height:var(--df-soc-ico,22px); }
/* Icone scelte nel widget (Font Awesome o SVG caricato): stessa misura delle altre. */
.df-social a > svg:not(.df-ico), .df-social a > i{
  width:var(--df-soc-ico,22px); height:var(--df-soc-ico,22px);
  font-size:var(--df-soc-ico,22px); line-height:1; display:block; }
.df-social a > svg:not(.df-ico){ fill:currentColor; }
.df-link:hover{ background:var(--df-card2); transform:translateX(2px); }
.df-link:focus-visible{ outline:2px solid var(--df-yellow); outline-offset:2px; }
.df-link .df-lic{ width:24px; display:flex; justify-content:center; color:var(--df-yellow); }
.df-link .df-lic .df-ico{ width:19px; height:19px; }
.df-link .df-arw{ margin-left:auto; color:var(--df-faint); }
.df-link .df-arw .df-ico{ width:15px; height:15px; }

.df-sheet-bg{ position:fixed; inset:0; z-index:9999; display:none; background:rgba(10,10,10,.74); backdrop-filter:blur(8px); align-items:flex-end; justify-content:center; opacity:0; transition:opacity .25s ease; }
.df-sheet-bg.df-show{ display:flex; opacity:1; }
.df-sheet{ width:100%; max-width:var(--df-maxw); background:linear-gradient(180deg,#202020,#151515); border-top:1px solid var(--df-line2); border-radius:22px 22px 0 0; padding:20px 20px 28px; box-shadow:0 -30px 60px -20px rgba(0,0,0,.75); transform:translateY(40px); transition:transform .32s cubic-bezier(.2,.9,.3,1); }
.df-sheet-bg.df-show .df-sheet{ transform:none; }
.df-sheet h3{ margin:2px 0 4px; font-family:var(--df-display); font-weight:400; text-transform:uppercase; font-size:30px; letter-spacing:.02em; color:var(--df-text); }
.df-sheet p{ margin:0 0 16px; font-size:13px; color:var(--df-dim); }
.df-pick{ display:flex; flex-direction:column; gap:8px; }
.df-pick-item{ border:1px solid var(--df-line2); cursor:pointer; font-family:inherit; text-align:left; background:var(--df-card); color:var(--df-text); border-radius:13px; padding:13px 15px; display:flex; align-items:center; gap:12px; transition:background .16s,transform .12s; width:100%; }
.df-pick-item:hover{ background:var(--df-card2); }
.df-pick-item:active{ transform:scale(.98); }
.df-pick-item:focus-visible{ outline:2px solid var(--df-yellow); outline-offset:2px; }
.df-pick-item .df-pic{ width:26px; display:flex; justify-content:center; color:var(--df-yellow); }
.df-pick-item .df-pic .df-ico{ width:22px; height:22px; }
.df-pick-item .df-nm{ font-weight:700; font-size:15px; }
.df-pick-item .df-meta{ margin-left:auto; font-size:12px; display:flex; align-items:center; gap:6px; color:var(--df-dim); }
.df-pick-item .df-md{ width:7px; height:7px; border-radius:50%; }
.df-md.on{ background:var(--df-live); } .df-md.off{ background:var(--df-closed); } .df-md.truck{ background:var(--df-yellow); }

/* Neutralizza i colori del tema: niente hover blu, niente selezione fucsia */
.df-lt a, .df-lt button{ -webkit-tap-highlight-color:transparent; }
.df-lt ::selection{ background:rgba(255,255,255,.22); }
.df-lt ::-moz-selection{ background:rgba(255,255,255,.22); }
.df-lt .df-link:link, .df-lt .df-link:visited, .df-lt .df-link:hover, .df-lt .df-link:focus, .df-lt .df-link:active,
.df-lt .df-tile:link, .df-lt .df-tile:visited, .df-lt .df-tile:hover, .df-lt .df-tile:focus, .df-lt .df-tile:active,
.df-lt .df-ev:link, .df-lt .df-ev:visited, .df-lt .df-ev:hover, .df-lt .df-ev:focus, .df-lt .df-ev:active{ color:var(--df-text); }
.df-lt .df-cta-1:link, .df-lt .df-cta-1:visited, .df-lt .df-cta-1:hover, .df-lt .df-cta-1:focus, .df-lt .df-cta-1:active{ color:var(--df-primary-ink,#fff); }
.df-lt .df-cta-2:link, .df-lt .df-cta-2:visited, .df-lt .df-cta-2:hover, .df-lt .df-cta-2:focus, .df-lt .df-cta-2:active{ color:var(--df-yellow-ink); }
.df-lt .df-ev:hover .df-ev-s, .df-lt .df-ev:focus .df-ev-s{ color:var(--df-dim); }
.df-lt .df-ev:hover .df-ev-cta, .df-lt .df-ev:focus .df-ev-cta{ color:var(--df-yellow-ink); }
/* Bottoni: azzera sfondo/bordo/ombra/outline fucsia o blu del tema su hover/focus/active */
.df-lt button{ box-shadow:none; }
.df-lt button:focus:not(:focus-visible){ outline:none !important; box-shadow:none !important; }
.df-lt .df-status:hover, .df-lt .df-status:focus, .df-lt .df-status:active{ color:var(--df-text) !important; background:var(--df-card) !important; border-color:var(--df-line2) !important; box-shadow:none !important; }
.df-lt .df-status.df-clickable:hover, .df-lt .df-status.df-clickable:active{ background:var(--df-card2) !important; }
.df-lt .df-status.df-clickable:focus-visible{ outline:2px solid var(--df-yellow) !important; outline-offset:2px; }
.df-lt .df-pick-item:hover, .df-lt .df-pick-item:focus, .df-lt .df-pick-item:active{ color:var(--df-text) !important; background:var(--df-card2) !important; border-color:var(--df-line2) !important; box-shadow:none !important; }
.df-lt .df-chip:hover, .df-lt .df-chip:focus, .df-lt .df-chip:active{ box-shadow:none !important; }
.df-lt .df-chip[aria-pressed="true"]{ background:var(--df-yellow) !important; color:var(--df-ink) !important; border-color:var(--df-yellow) !important; }
.df-lt .df-qrchange:hover, .df-lt .df-qrchange:focus, .df-lt .df-qrchange:active{ color:var(--df-yellow) !important; background:none !important; box-shadow:none !important; }

.df-reveal{ opacity:0; transform:translateY(14px); animation:rbReveal .5s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes rbReveal{ to{ opacity:1; transform:none; } }
.df-body .df-reveal:nth-child(1){ animation-delay:.05s; }
.df-body .df-reveal:nth-child(2){ animation-delay:.11s; }
.df-body .df-reveal:nth-child(3){ animation-delay:.17s; }
.df-body .df-reveal:nth-child(5){ animation-delay:.23s; }
.df-body .df-reveal:nth-child(6){ animation-delay:.29s; }
.df-swap{ animation:rbSwap .28s ease; }
@keyframes rbSwap{ 0%{ opacity:.35; transform:translateY(6px);} 100%{ opacity:1; transform:none; } }
.df-ev, .df-tile, .df-link{ animation:rbPop .32s ease backwards; }
@keyframes rbPop{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:none; } }

@media (prefers-reduced-motion:reduce){
  .df-lt *{ animation:none !important; transition:none !important; }
  .df-reveal{ opacity:1; transform:none; }
  .df-sheet{ transform:none; }
}

/* =========================================================================
   HOOK DI PERSONALIZZAZIONE
   Tutto cio' che nel blocco sopra era scritto a mano passa qui da una
   variabile con fallback sul valore storico: i controlli del widget
   Elementor scrivono quelle variabili (con !important) e possono quindi
   ridisegnare il linktree senza toccare il PHP.
   ========================================================================= */
body.df-lt-page{ background:var(--df-page-bg,#181818); }
.df-lt{
  max-width:var(--df-maxw,460px);
  padding:var(--df-pad,8px 14px 48px);
  background:var(--df-lt-bg,transparent);
}
.df-head{ text-align:var(--df-head-align,center); }
/* La specificita' serve: Elementor applica ".elementor img{max-width:100%}". */
.df-lt img.df-logo{ max-width:var(--df-logo-w,196px); max-height:var(--df-logo-h,128px); }
.df-logo{ filter:drop-shadow(0 12px 26px var(--df-logo-glow,rgba(225,9,22,.35))); }
.df-logo-txt{ color:var(--df-logo-color,var(--df-red)); }
.df-claim{ color:var(--df-claim,var(--df-yellow)); }
.df-body{ gap:var(--df-gap,10px); }
.df-switch{
  background:var(--df-switch-bg,linear-gradient(180deg,rgba(24,24,24,.97),rgba(24,24,24,.85)));
  border-bottom-color:var(--df-switch-line,var(--df-line));
}
.df-switch.df-switch--static{ position:static; }
.df-switch[hidden]{ display:none !important; }
.df-chip{
  background:var(--df-chip-bg,var(--df-card));
  color:var(--df-chip-ink,var(--df-dim));
  border-radius:var(--df-radius-chip,999px);
  border-width:var(--df-border-w,1px);
}
.df-lt .df-chip[aria-pressed="true"]{
  background:var(--df-chip-on-bg,var(--df-yellow)) !important;
  color:var(--df-chip-on-ink,var(--df-ink)) !important;
  border-color:var(--df-chip-on-bg,var(--df-yellow)) !important;
}
.df-lt .df-chip[aria-pressed="true"] .df-dot{ background:var(--df-chip-on-ink,var(--df-ink)); }
.df-status, .df-hours-list, .df-tile, .df-link, .df-ev, .df-pick-item{ border-width:var(--df-border-w,1px); }
.df-cta{ border-radius:var(--df-radius-cta,calc(var(--df-radius,14px) + 2px)); }
.df-cta-1{ color:var(--df-primary-ink,#fff); }
.df-cta-2{ color:var(--df-yellow-ink,#181818); }
.df-ev{ background:var(--df-ev-bg,var(--df-card)); }
.df-ev-date{ background:var(--df-badge-bg,rgba(0,0,0,.28)); }
.df-ev-date b{ color:var(--df-badge-num,var(--df-red)); }
.df-ev-date span{ color:var(--df-badge-month,var(--df-dim)); }
.df-ev-cta{ background:var(--df-evcta-bg,var(--df-yellow)); color:var(--df-evcta-ink,var(--df-yellow-ink)); }
.df-lt .df-ev:hover .df-ev-cta, .df-lt .df-ev:focus .df-ev-cta{ color:var(--df-evcta-ink,var(--df-yellow-ink)); }
.df-tile .df-tic{ background:var(--df-tic-bg,rgba(0,0,0,.28)); color:var(--df-icon,var(--df-yellow)); }
.df-link .df-lic, .df-pick-item .df-pic{ color:var(--df-icon,var(--df-yellow)); }
.df-link .df-arw{ color:var(--df-arrow,var(--df-faint)); }
.df-grid{ grid-template-columns:repeat(var(--df-grid-cols,2),minmax(0,1fr)); }
.df-h-row.is-today{ background:var(--df-today-bg,var(--df-yellow)); }
.df-h-row.is-today .df-h-day, .df-h-row.is-today .df-h-val{ color:var(--df-today-ink,var(--df-yellow-ink)); }
.df-sheet{ background:var(--df-sheet-bg,linear-gradient(180deg,#202020,#151515)); }
.df-sheet-bg{ background:var(--df-scrim,rgba(10,10,10,.74)); -webkit-backdrop-filter:blur(var(--df-scrim-blur,8px)); backdrop-filter:blur(var(--df-scrim-blur,8px)); }
.df-foot{ margin:18px 4px 0; text-align:center; font-size:12px; line-height:1.6; color:var(--df-foot-color,var(--df-dim)); }
.df-foot a{ color:inherit; text-decoration:underline; }

/* =========================================================================
   ADATTAMENTO AI DISPOSITIVI
   Regola di base: nessun contenuto puo' piu' allargare il blocco. Tutte le
   colonne sono minmax(0,1fr) e ogni contenitore flessibile ha min-width:0,
   cosi' il linktree si stringe fino a ~240px senza sbordare dallo schermo.
   Le misure che contano passano da variabili: i controlli responsive del
   widget le riscrivono device per device, e le media query qui sotto sono
   solo il comportamento predefinito (senza !important, quindi cedono
   sempre il passo alle impostazioni).
   ========================================================================= */
.df-lt{ width:100%; max-width:min(100%,var(--df-maxw,460px)); }
.df-head{ padding:var(--df-head-pad,22px 10px 12px); }
.df-logo-txt{ font-size:var(--df-logo-txt-size,clamp(30px,9vw,44px)); overflow-wrap:anywhere; }

/* CTA Prenota / Ordina — la causa storica dello sfondamento su mobile */
.df-duo{ grid-template-columns:repeat(var(--df-duo-cols,2),minmax(0,1fr)); gap:var(--df-duo-gap,10px); }
.df-duo.df-solo{ grid-template-columns:minmax(0,1fr); }
.df-cta{ min-width:0; padding:var(--df-cta-pad,16px 15px); }
.df-crow{ min-width:0; gap:var(--df-cta-icogap,8px); }
.df-cta .df-ico{ width:var(--df-cta-ico,26px); height:var(--df-cta-ico,26px); }
.df-cta .df-k{ min-width:0; overflow-wrap:anywhere; font-size:var(--df-k-size,10.5px); }
.df-cta .df-v{ min-width:0; overflow-wrap:anywhere; font-size:var(--df-v-size,clamp(20px,5.6vw,27px)); }

/* Selettore sede */
.df-switch{ padding:var(--df-switch-pad,10px 4px); }
.df-chips{ justify-content:var(--df-chips-just,flex-start); gap:var(--df-chips-gap,7px); }
.df-chip{ padding:var(--df-chip-pad,9px 15px); }

/* Stato */
.df-status{ padding:var(--df-status-pad,11px 14px); gap:var(--df-status-gap,10px); }

/* Spaziature delle liste */
.df-events{ gap:var(--df-events-gap,8px); }
.df-grid{ gap:var(--df-grid-gap,10px); }
.df-links{ gap:var(--df-links-gap,8px); }

/* Eventi — su schermi stretti il bottone puo' ridursi alla sola freccia */
.df-ev{ gap:var(--df-ev-gap,12px); padding:var(--df-ev-pad,10px 12px); }
.df-ev-date{ width:var(--df-date-w,46px); height:var(--df-date-h,50px); }
.df-ev-info{ flex:1 1 auto; min-width:0; }
.df-ev-cta{ display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:var(--df-evcta-pad,9px 13px); }
.df-ev-cta-t{ display:var(--df-evcta-txt,inline); }
.df-ev-arw{ display:var(--df-evcta-arw,none); width:var(--df-evcta-ico,15px); height:var(--df-evcta-ico,15px); transform:rotate(-90deg); }

/* Azioni rapide e link */
.df-tile{ min-width:0; padding:var(--df-tile-pad,14px); gap:var(--df-tile-gap,11px); }
.df-tile .df-tl{ min-width:0; overflow-wrap:break-word; }
.df-tile .df-tic{ width:var(--df-tic-size,34px); height:var(--df-tic-size,34px); }
.df-tile .df-tic .df-ico{ width:var(--df-tic-ico,18px); height:var(--df-tic-ico,18px); }
/* Icone dei link extra: arrivano da Elementor (SVG di Font Awesome o <i>) e
   senza misura esplicita si disegnano enormi accanto a quelle del modulo. */
.df-tile .df-tic > svg:not(.df-ico), .df-tile .df-tic > i{
  width:var(--df-tic-ico,18px); height:var(--df-tic-ico,18px);
  font-size:var(--df-tic-ico,18px); fill:currentColor; line-height:1;
}
.df-link .df-lic > svg:not(.df-ico), .df-link .df-lic > i{
  width:var(--df-lic-ico,19px); height:var(--df-lic-ico,19px);
  font-size:var(--df-lic-ico,19px); fill:currentColor; line-height:1;
}
.df-link{ padding:var(--df-link-pad,13px 14px); gap:var(--df-link-gap,12px); }
.df-link .df-ll{ flex:1 1 auto; min-width:0; overflow-wrap:break-word; }

/* Pannello scelta locale */
.df-sheet-bg{ align-items:var(--df-sheet-pos,flex-end); }
/* Con molte sedi (o in orizzontale sul telefono) il pannello deve poter scorrere. */
.df-sheet{ max-width:min(100%,var(--df-maxw,460px)); border-radius:var(--df-sheet-radius,22px 22px 0 0); max-height:var(--df-sheet-maxh,88vh); overflow-y:auto; overscroll-behavior:contain; }
.df-sheet h3{ font-size:var(--df-sheet-h3,clamp(22px,6.4vw,30px)); }
.df-pick-item{ padding:var(--df-pick-pad,13px 15px); min-width:0; }
.df-pick-item .df-nm{ min-width:0; overflow-wrap:break-word; }
.df-pick-item .df-meta{ flex:0 0 auto; }

/* Telefoni: tipografia e spazi piu' compatti, bottone evento a sola freccia */
@media (max-width:600px){
  .df-lt{
    --df-cta-ico:21px; --df-cta-icogap:6px; --df-cta-pad:14px 12px; --df-k-size:10px;
    --df-evcta-txt:none; --df-evcta-arw:inline-flex; --df-evcta-pad:9px 11px;
    --df-ev-gap:10px; --df-ev-pad:9px 10px;
  }
}
@media (max-width:400px){
  .df-lt{
    --df-cta-ico:18px; --df-cta-pad:12px 10px; --df-k-size:9.5px;
    --df-date-w:40px; --df-date-h:44px;
    --df-tic-size:30px; --df-tile-pad:11px; --df-tile-gap:9px;
    --df-link-pad:11px 12px; --df-link-gap:10px; --df-status-pad:10px 11px;
    --df-pick-pad:12px 13px;
  }
}
/* Da tablet in su: chip centrate (li' vanno a capo, non scorrono) e
   pannello dei locali come finestra centrata */
@media (min-width:600px){
  .df-lt{ --df-chips-just:center; }
}
@media (min-width:700px){
  .df-lt{ --df-sheet-pos:center; --df-sheet-radius:18px; --df-sheet-maxh:82vh; }
}