/* ==========================================================================
   Autolavaggio Vicino a Me — foglio di stile
   Palette: notte (carrozzeria bagnata) / acqua / schiuma / cromo / cera
   ========================================================================== */

:root{
  --notte:#0B1B2B;
  --profondo:#12293D;
  --acqua:#17B8D4;
  --acqua-cupa:#0B8AA3;
  --schiuma:#F1F7FA;
  --bianco:#FFFFFF;
  --cromo:#C6D5DE;
  --cromo-tenue:#E3EDF3;
  --cera:#FFC24B;
  --aperto:#17A673;
  --chiuso:#B24C4C;
  --testo:#0B1B2B;
  --tenue:#5A7183;

  --r-s:10px;
  --r-m:16px;
  --r-l:24px;
  --ombra:0 1px 2px rgba(11,27,43,.06), 0 8px 24px -12px rgba(11,27,43,.28);
  --ombra-alta:0 2px 6px rgba(11,27,43,.08), 0 24px 48px -20px rgba(11,27,43,.45);
  --display:"Bricolage Grotesque","Outfit",system-ui,sans-serif;
  --corpo:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;
  --dato:"JetBrains Mono",ui-monospace,"SFMono-Regular",monospace;
  --max:1180px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--corpo);
  font-size:16px;
  line-height:1.6;
  color:var(--testo);
  background:var(--schiuma);
  background-image:
    radial-gradient(circle at 12% 0%, rgba(23,184,212,.10), transparent 42%),
    radial-gradient(circle at 100% 8%, rgba(23,184,212,.07), transparent 38%);
  background-repeat:no-repeat;
}
img{max-width:100%;display:block}
a{color:var(--acqua-cupa);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.14;letter-spacing:-.02em;margin:0 0 .5em}
h1{font-size:clamp(1.9rem,6.4vw,3.1rem)}
h2{font-size:clamp(1.35rem,4.2vw,2rem)}
h3{font-size:1.12rem}
p{margin:0 0 1rem}
:focus-visible{outline:3px solid var(--cera);outline-offset:2px;border-radius:4px}

.contenitore{width:100%;max-width:var(--max);margin:0 auto;padding:0 18px}
.solo-desktop{display:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* --- Firma visiva: la spazzola rotante ---------------------------------- */
.spazzola{
  height:10px;
  background:repeating-linear-gradient(115deg,
    var(--acqua) 0 14px,
    #0f6f86 14px 28px,
    #EAF7FA 28px 40px,
    var(--acqua) 40px 54px);
  background-size:200% 100%;
  animation:gira 3.4s linear infinite;
  border:0;
}
.spazzola--sottile{height:5px}
@keyframes gira{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){
  .spazzola{animation:none}
  *{scroll-behavior:auto!important}
}

/* --- Testata ------------------------------------------------------------ */
.testata{
  background:var(--notte);
  color:#EAF4F8;
  position:sticky;top:0;z-index:50;
  box-shadow:0 8px 24px -18px rgba(0,0,0,.9);
}
.testata__riga{display:flex;align-items:center;gap:12px;min-height:60px}
.marchio{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-family:var(--display);font-weight:800;letter-spacing:-.03em}
.marchio:hover{text-decoration:none}
.marchio__segno{
  width:34px;height:34px;border-radius:11px;flex:0 0 34px;
  background:linear-gradient(150deg,var(--acqua),#0a6f85);
  display:grid;place-items:center;box-shadow:inset 0 -2px 0 rgba(0,0,0,.25);
}
.marchio__segno svg{width:20px;height:20px}
.marchio__testo{display:flex;flex-direction:column;line-height:1}
.marchio__testo b{font-size:1.02rem}
.marchio__testo span{font-family:var(--dato);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--acqua);margin-top:3px}
.menu{margin-left:auto;display:flex;gap:4px;align-items:center}
.menu a{
  color:#CFE3EC;font-size:.86rem;padding:8px 10px;border-radius:9px;text-decoration:none;
}
.menu a:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none}
.menu a.attivo{color:var(--notte);background:var(--acqua);font-weight:600}
.menu__scorri{overflow-x:auto;scrollbar-width:none}
.menu__scorri::-webkit-scrollbar{display:none}

/* --- Hero --------------------------------------------------------------- */
.hero{
  background:
    radial-gradient(140% 120% at 82% -10%, rgba(23,184,212,.42), transparent 55%),
    linear-gradient(180deg,var(--profondo),var(--notte));
  color:#EAF4F8;
  position:relative;overflow:hidden;
}
.hero::after{
  content:"";position:absolute;inset:auto -20% -40% 40%;height:320px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.10),transparent);
  transform:rotate(-24deg);pointer-events:none;
}
.hero__int{padding:34px 0 30px;position:relative;z-index:2}
.occhiello{
  font-family:var(--dato);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--acqua);display:flex;align-items:center;gap:8px;margin-bottom:12px;
}
.occhiello::before{content:"";width:26px;height:2px;background:var(--acqua)}
.hero h1{color:#fff;margin-bottom:12px}
.hero h1 em{font-style:normal;color:var(--acqua)}
.hero__testo{color:#B8CFDB;max-width:52ch;margin-bottom:20px}
.hero__numeri{display:flex;gap:22px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12)}
.numero b{font-family:var(--dato);font-size:1.24rem;color:#fff;display:block;letter-spacing:-.02em}
.numero span{font-size:.76rem;color:#8FAABA;text-transform:uppercase;letter-spacing:.08em}

/* --- Pannello di ricerca ------------------------------------------------ */
.pannello{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.16);
  border-radius:var(--r-l);
  padding:16px;
  backdrop-filter:blur(6px);
}
.pannello__et{font-family:var(--dato);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:#93B4C4;margin-bottom:10px;display:block}
.campo{position:relative;display:flex;gap:8px}
.campo input[type=search],.campo input[type=text]{
  flex:1;min-width:0;font-family:var(--corpo);font-size:1rem;color:var(--testo);
  padding:14px 14px 14px 42px;border-radius:14px;border:2px solid transparent;background:#fff;
}
.campo input:focus{outline:none;border-color:var(--acqua)}
.campo__lente{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;opacity:.45;pointer-events:none}
.btn{
  font-family:var(--corpo);font-weight:600;font-size:.95rem;cursor:pointer;
  border:0;border-radius:14px;padding:14px 18px;background:var(--acqua);color:var(--notte);
  transition:transform .12s ease, background .2s ease;
}
.btn:hover{background:#3ecfe8;text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn--cera{background:var(--cera)}
.btn--vuoto{background:transparent;border:1.5px solid var(--cromo);color:var(--testo)}
.btn--piccolo{padding:9px 13px;font-size:.84rem;border-radius:11px}
.btn--largo{width:100%;text-align:center;display:block}

.suggerimenti{
  list-style:none;margin:8px 0 0;padding:6px;background:#fff;border-radius:14px;
  box-shadow:var(--ombra-alta);max-height:280px;overflow:auto;position:relative;z-index:5;
}
.suggerimenti:empty{display:none}
.suggerimenti li a{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;color:var(--testo)}
.suggerimenti li a:hover{background:var(--schiuma);text-decoration:none}
.suggerimenti small{color:var(--tenue);font-family:var(--dato);font-size:.7rem}

.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.chip{
  font-size:.8rem;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.2);color:#DDEDF4;text-decoration:none;
}
.chip:hover{background:var(--acqua);color:var(--notte);text-decoration:none;border-color:transparent}

/* --- Sezioni ------------------------------------------------------------ */
.sezione{padding:34px 0}
.sezione--chiara{background:#fff}
.sezione__testa{margin-bottom:18px}
.sezione__testa p{color:var(--tenue);margin:0;max-width:62ch}

/* --- Griglie ------------------------------------------------------------ */
.griglia{display:grid;gap:14px}
.griglia--regioni{grid-template-columns:1fr}
.griglia--comuni{grid-template-columns:repeat(2,1fr)}
.griglia--schede{grid-template-columns:1fr}

/* --- Card regione ------------------------------------------------------- */
.card-regione{
  display:block;background:#fff;border-radius:var(--r-m);padding:16px;
  border:1px solid var(--cromo-tenue);box-shadow:var(--ombra);color:var(--testo);
  position:relative;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease;
}
.card-regione:hover{transform:translateY(-3px);box-shadow:var(--ombra-alta);text-decoration:none}
.card-regione__testa{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.card-regione h3{margin:0 0 2px}
.card-regione__conta{font-family:var(--dato);font-size:.72rem;color:var(--acqua-cupa);white-space:nowrap}
.card-regione__citta{margin:10px 0 0;color:var(--tenue);font-size:.85rem;line-height:1.5}
.card-regione::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--acqua);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.card-regione:hover::before{transform:scaleX(1)}

/* --- Card comune (elenco città) ----------------------------------------- */
.card-comune{
  display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--cromo-tenue);
  border-radius:var(--r-s);padding:12px 13px;color:var(--testo);box-shadow:var(--ombra);
}
.card-comune:hover{border-color:var(--acqua);text-decoration:none}
.card-comune b{font-weight:600}
.card-comune small{color:var(--tenue);font-family:var(--dato);font-size:.68rem}

/* --- Card scheda (autolavaggio) ----------------------------------------- */
.scheda-card{
  background:#fff;border:1px solid var(--cromo-tenue);border-radius:var(--r-m);
  box-shadow:var(--ombra);overflow:hidden;position:relative;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.scheda-card:hover{transform:translateY(-2px);box-shadow:var(--ombra-alta);border-color:#BFE6EE}
.scheda-card__bordo{height:4px;background:repeating-linear-gradient(115deg,var(--acqua) 0 10px,#0f6f86 10px 20px,#EAF7FA 20px 28px)}
.scheda-card__int{padding:15px 16px 16px}
.scheda-card__testa{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.scheda-card h3{margin:0 0 4px;font-size:1.06rem}
.scheda-card h3 a{color:var(--testo)}
.scheda-card h3 a:hover{color:var(--acqua-cupa);text-decoration:none}
.riga-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.82rem;color:var(--tenue)}
.punto{width:3px;height:3px;border-radius:50%;background:var(--cromo)}
.indirizzo{color:var(--tenue);font-size:.86rem;margin:8px 0 0;display:flex;gap:7px;align-items:flex-start}
.indirizzo svg{width:15px;height:15px;flex:0 0 15px;margin-top:3px;opacity:.55}
.scheda-card__piede{display:flex;align-items:center;gap:10px;margin-top:13px;padding-top:12px;border-top:1px dashed var(--cromo-tenue)}
.scheda-card__piede .btn{margin-left:auto}

/* --- Etichette / badge -------------------------------------------------- */
.etichetta{
  display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;
  padding:4px 9px;border-radius:999px;background:var(--cromo-tenue);color:var(--profondo);
  white-space:nowrap;
}
.etichetta--tipo{background:#E4F6FA;color:#0B6F84}
.etichetta--aperto{background:rgba(23,166,115,.12);color:var(--aperto)}
.etichetta--chiuso{background:rgba(178,76,76,.10);color:var(--chiuso)}
.etichetta--h24{background:var(--notte);color:var(--cera)}
.etichetta--prezzo{font-family:var(--dato);letter-spacing:.04em}
.pallino{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 7px}
.pallino--vivo{box-shadow:0 0 0 0 rgba(23,166,115,.6);animation:pulsa 2.4s infinite}
@keyframes pulsa{70%{box-shadow:0 0 0 7px rgba(23,166,115,0)}100%{box-shadow:0 0 0 0 rgba(23,166,115,0)}}
@media (prefers-reduced-motion:reduce){.pallino--vivo{animation:none}}

/* --- Voto a bolle di schiuma -------------------------------------------- */
.bolle{display:inline-flex;align-items:center;gap:3px}
.bolla{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--acqua);position:relative}
.bolla--piena{background:var(--acqua)}
.bolla--piena::after{content:"";position:absolute;top:1.5px;left:2px;width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.85)}
.bolla--mezza{background:linear-gradient(90deg,var(--acqua) 50%,transparent 50%)}
.voto-num{font-family:var(--dato);font-weight:600;font-size:.8rem;color:var(--profondo)}
.voto-rec{font-size:.74rem;color:var(--tenue)}

/* --- Briciole ----------------------------------------------------------- */
.briciole{font-size:.78rem;color:var(--tenue);padding:14px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.briciole a{color:var(--tenue)}
.briciole span{opacity:.5}

/* --- Barra filtri ------------------------------------------------------- */
.filtri{
  background:#fff;border:1px solid var(--cromo-tenue);border-radius:var(--r-m);
  padding:12px;box-shadow:var(--ombra);margin-bottom:16px;
}
.filtri__riga{display:flex;gap:8px;flex-wrap:wrap}
.filtri select,.filtri input{
  font-family:var(--corpo);font-size:.86rem;padding:9px 11px;border-radius:10px;
  border:1.5px solid var(--cromo-tenue);background:#fff;color:var(--testo);flex:1 1 140px;min-width:0;
}
.filtri select:focus,.filtri input:focus{outline:none;border-color:var(--acqua)}
.conteggio{font-family:var(--dato);font-size:.75rem;color:var(--tenue);margin:0 0 10px}

/* --- Pagina scheda ------------------------------------------------------ */
.intestazione-scheda{background:var(--notte);color:#EAF4F8;padding:22px 0 26px;position:relative;overflow:hidden}
.intestazione-scheda::before{
  content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,rgba(23,184,212,.35),transparent 65%);
}
.intestazione-scheda h1{color:#fff;font-size:clamp(1.6rem,5.4vw,2.4rem);margin-bottom:8px;position:relative}
.intestazione-scheda .riga-meta{color:#A9C4D2;position:relative}
.intestazione-scheda .etichetta--tipo{background:rgba(23,184,212,.18);color:#7FE0F2}
.scheda-azioni{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;position:relative}
.scheda-azioni .btn{flex:1 1 auto}

.blocco{
  background:#fff;border:1px solid var(--cromo-tenue);border-radius:var(--r-m);
  padding:17px;box-shadow:var(--ombra);margin-bottom:14px;
}
.blocco h2{font-size:1.15rem;margin-bottom:12px;display:flex;align-items:center;gap:9px}
.blocco h2::before{content:"";width:4px;height:18px;border-radius:2px;background:var(--acqua);flex:0 0 4px}
.blocco p:last-child{margin-bottom:0}

.lista-servizi{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:7px}
.lista-servizi li{display:flex;gap:9px;align-items:flex-start;font-size:.92rem}
.lista-servizi li::before{
  content:"";width:16px;height:16px;flex:0 0 16px;margin-top:3px;border-radius:50%;
  background:var(--acqua) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/11px no-repeat;
}

.dati{list-style:none;margin:0;padding:0}
.dati li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dashed var(--cromo-tenue);font-size:.9rem}
.dati li:last-child{border-bottom:0}
.dati span{color:var(--tenue)}
.dati b{font-weight:600;text-align:right}

.tab-orari{width:100%;border-collapse:collapse;font-size:.9rem}
.tab-orari th,.tab-orari td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--cromo-tenue)}
.tab-orari th{font-weight:500;color:var(--tenue)}
.tab-orari td{font-family:var(--dato);font-size:.82rem;text-align:right}
.tab-orari tr:last-child th,.tab-orari tr:last-child td{border-bottom:0}
.tab-orari tr.oggi{background:rgba(23,184,212,.08)}
.tab-orari tr.oggi th{color:var(--profondo);font-weight:700}
.tab-orari td.chiuso{color:var(--chiuso)}

.mappa{border-radius:var(--r-s);overflow:hidden;border:1px solid var(--cromo-tenue);background:var(--cromo-tenue)}
.mappa iframe{width:100%;height:230px;border:0;display:block}

.faq details{border-bottom:1px solid var(--cromo-tenue);padding:12px 0}
.faq details:last-child{border-bottom:0}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--dato);color:var(--acqua);font-size:1.2rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{margin:10px 0 0;color:var(--tenue);font-size:.92rem}

/* --- Moduli ------------------------------------------------------------- */
.modulo{display:grid;gap:11px}
.modulo label{font-size:.82rem;font-weight:600;display:block;margin-bottom:5px}
.modulo input,.modulo textarea,.modulo select{
  width:100%;font-family:var(--corpo);font-size:.95rem;padding:11px 12px;
  border:1.5px solid var(--cromo-tenue);border-radius:11px;background:#fff;color:var(--testo);
}
.modulo textarea{min-height:110px;resize:vertical}
.modulo input:focus,.modulo textarea:focus,.modulo select:focus{outline:none;border-color:var(--acqua)}
.avviso{padding:12px 14px;border-radius:11px;font-size:.9rem;margin-bottom:14px}
.avviso--ok{background:rgba(23,166,115,.12);color:#0F7A55}
.avviso--ko{background:rgba(178,76,76,.10);color:var(--chiuso)}

/* --- Articolo ----------------------------------------------------------- */
.testo-lungo p{color:#28414F}
.testo-lungo p:first-of-type::first-letter{
  font-family:var(--display);font-size:2.6rem;line-height:.9;float:left;margin:6px 9px 0 0;color:var(--acqua-cupa);
}

/* --- Paginazione -------------------------------------------------------- */
.paginazione{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:20px}
.paginazione a,.paginazione span{
  font-family:var(--dato);font-size:.82rem;padding:8px 12px;border-radius:10px;
  border:1px solid var(--cromo-tenue);background:#fff;color:var(--testo);
}
.paginazione .attiva{background:var(--notte);color:#fff;border-color:var(--notte)}

/* --- Piede -------------------------------------------------------------- */
.piede{background:var(--notte);color:#9FBAC8;margin-top:36px}
.piede__int{padding:26px 0 20px;display:grid;gap:22px}
.piede h4{color:#fff;font-family:var(--display);font-size:.95rem;margin:0 0 10px}
.piede a{color:#9FBAC8;font-size:.88rem;display:block;padding:3px 0}
.piede a:hover{color:var(--acqua);text-decoration:none}
.piede__nota{border-top:1px solid rgba(255,255,255,.1);padding:14px 0;font-size:.76rem;color:#6E8B9C;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}

/* --- Vuoto -------------------------------------------------------------- */
.vuoto{background:#fff;border:1px dashed var(--cromo);border-radius:var(--r-m);padding:28px 20px;text-align:center;color:var(--tenue)}
.vuoto b{display:block;color:var(--testo);font-family:var(--display);font-size:1.1rem;margin-bottom:6px}

/* ==========================================================================
   Desktop — impaginazione dedicata (non è il mobile allargato)
   ========================================================================== */
@media (min-width:760px){
  body{font-size:17px}
  .contenitore{padding:0 28px}
  .solo-desktop{display:block}
  .solo-mobile{display:none}

  .hero__int{padding:56px 0 48px;display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}
  .hero__numeri{margin-top:26px}
  .pannello{padding:22px}

  .sezione{padding:52px 0}
  .griglia--regioni{grid-template-columns:repeat(3,1fr);gap:18px}
  .griglia--comuni{grid-template-columns:repeat(4,1fr)}
  .griglia--schede{grid-template-columns:repeat(2,1fr);gap:18px}

  .filtri__riga{flex-wrap:nowrap}
  .filtri select,.filtri input{flex:1 1 0}

  .impagina{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
  .colonna-lato{position:sticky;top:80px}
  .lista-servizi{grid-template-columns:repeat(2,1fr)}
  .intestazione-scheda{padding:34px 0 40px}
  .scheda-azioni .btn{flex:0 0 auto}
  .piede__int{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px;padding:38px 0 26px}
  .mappa iframe{height:280px}
}

@media (min-width:1100px){
  .griglia--schede{grid-template-columns:repeat(2,1fr)}
  .griglia--comuni{grid-template-columns:repeat(5,1fr)}
}
