/* =============================================================================
   BED AND BREAKFAST BERGAMO — bnbbergamo.it
   All Service Web Agency · build 1.1.0 (12/10/2026)
   Palette dal brief, blu, beige, tortora. Il tortora non e mai un colore di testo
   su fondo chiaro (DESIGN_SYSTEM.md, contrasti calcolati in _qa/contrasti.py).
   ============================================================================= */

/* --------------------------------------------------------------------- font */
/* latin, latin-ext (polacco, rumeno) e cirillico (russo). DM Serif Display non ha il cirillico,
   per quel solo intervallo il titolo usa Playfair Display, stessa famiglia logica. */
@font-face{font-family:'DM Serif Display';src:url('../fonts/dm-serif-display-400-latin.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'DM Serif Display';src:url('../fonts/dm-serif-display-400-latin-ext.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'DM Serif Display';src:url('../fonts/playfair-display-400-cyrillic.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'DM Serif Display';src:url('../fonts/dm-serif-display-400-italic-latin.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'DM Serif Display';src:url('../fonts/dm-serif-display-400-italic-latin-ext.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'DM Serif Display';src:url('../fonts/playfair-display-400-italic-cyrillic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Inter';src:url('../fonts/inter-var-latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';src:url('../fonts/inter-var-latin-ext.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';src:url('../fonts/inter-var-cyrillic.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}

/* ------------------------------------------------------------------- token */
:root{
  --blu:#1F3A5F; --blu-scuro:#152A46;
  --beige:#E9DFD0; --tortora:#B5A899; --tortora-scuro:#8E8273;
  --panna:#F6F1EA; --bianco:#FFFFFF;
  --testo:#1E222A; --testo-tenue:#5B5F66; --testo-chiaro:#D9D2C7;
  --wa:#25D366; --wa-scuro:#1EBE5B; --wa-testo:#0B1F16; --errore:#A33A2A;
  --riga:rgba(30,34,42,.12); --riga-chiara:rgba(246,241,234,.18);

  --f-titoli:'DM Serif Display',Georgia,'Times New Roman',serif;
  --f-testo:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --t-1:.75rem; --t-2:.8125rem; --t-3:.9375rem; --t-4:1rem; --t-5:1.0625rem;
  --t-6:clamp(1.25rem,2.3vw,1.5rem); --t-7:clamp(1.6rem,3vw,2.1rem);
  --t-8:clamp(1.9rem,4.2vw,2.8rem); --t-9:clamp(2.4rem,6vw,4.2rem);

  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-5:1.5rem;
  --s-6:2rem; --s-7:3rem; --s-8:4rem; --s-9:6rem;
  --r-1:8px; --r-2:14px; --r-3:22px; --r-pill:999px;
  --e:cubic-bezier(.22,.61,.36,1);
  --ombra:0 1px 2px rgba(21,42,70,.05), 0 10px 28px rgba(21,42,70,.08);
  --largh:1180px; --largh-stretta:820px;
  --barra:0px;
}

/* ------------------------------------------------------------------- base */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden;scroll-padding-top:84px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  font-family:var(--f-testo);font-size:var(--t-4);line-height:1.65;color:var(--testo);
  background:var(--panna);-webkit-font-smoothing:antialiased;overflow-x:hidden;
  padding-block-end:var(--barra);
}
img,svg,video{max-inline-size:100%;block-size:auto;display:block;}
[hidden]{display:none !important;}
a{color:inherit;}
button,input,select,textarea{font:inherit;color:inherit;}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}

h1,h2,h3,.tit{font-family:var(--f-titoli);font-weight:400;line-height:1.05;letter-spacing:0;text-wrap:balance;color:var(--blu);}
h2{font-size:var(--t-8);}
h3{font-size:var(--t-6);line-height:1.2;}
p{text-wrap:pretty;}
em{font-style:italic;}

:focus-visible{outline:3px solid var(--blu);outline-offset:3px;border-radius:var(--r-1);}
.sez--blu :focus-visible,.hero :focus-visible,.footer :focus-visible,.drawer :focus-visible{outline-color:var(--panna);}
.salta{position:absolute;inset-inline-start:-9999px;top:0;z-index:100;background:var(--blu);color:var(--panna);padding:var(--s-3) var(--s-5);border-radius:0 0 var(--r-1) 0;}
.salta:focus{inset-inline-start:0;}

/* --------------------------------------------------------------- struttura */
.wrap{inline-size:100%;max-inline-size:var(--largh);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem);}
.wrap--stretto{max-inline-size:var(--largh-stretta);}
.sez{padding-block:clamp(3.5rem,8vw,var(--s-9));position:relative;}
.sez--beige{background:var(--beige);}
.sez--blu{background:var(--blu-scuro);color:var(--panna);}
.sez--blu h2,.sez--blu h3{color:var(--panna);}
.sez--blu p{color:var(--testo-chiaro);}

.occhiello{font-size:var(--t-2);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--blu);margin-block-end:var(--s-3);}
.sez--blu .occhiello,.hero .occhiello{color:var(--tortora);}
@media (max-width:420px){.occhiello{font-size:.72rem;letter-spacing:.12em;}}
.intro{max-inline-size:62ch;color:var(--testo-tenue);font-size:var(--t-5);margin-block-start:var(--s-4);}
.sez--blu .intro{color:var(--testo-chiaro);}
.testa{margin-block-end:clamp(2rem,4vw,var(--s-7));}
.nota{font-size:var(--t-3);color:var(--testo-tenue);margin-block-start:var(--s-5);}
.sez--blu .nota{color:var(--testo-chiaro);}

/* pillola per i dati in arrivo */
.da-definire{
  display:inline-flex;align-items:center;gap:.45em;font-size:var(--t-1);font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--blu);background:var(--beige);padding:.3rem .75rem;border-radius:var(--r-pill);vertical-align:middle;
}
.sez--beige .da-definire,.casa .da-definire{background:var(--panna);border:1px solid var(--tortora);}
.da-definire::before{content:"";inline-size:7px;block-size:7px;border-radius:50%;background:var(--tortora-scuro);}

/* fascia di anteprima */
.anteprima{background:var(--blu-scuro);color:var(--panna);font-size:.85rem;line-height:1.45;padding-block:var(--s-2);text-align:center;}
.anteprima b{font-weight:700;}

/* ----------------------------------------------------------------- pulsanti */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);
  min-block-size:52px;padding-inline:var(--s-5);border-radius:var(--r-pill);
  font-weight:600;font-size:var(--t-4);text-decoration:none;border:1.5px solid transparent;
  cursor:pointer;transition:transform 160ms var(--e),background 160ms var(--e),border-color 160ms var(--e);
}
.btn:hover{transform:translateY(-1px);}
.btn:active{transform:translateY(0);}
.btn svg{inline-size:18px;block-size:18px;flex:none;}
.btn--primo{background:var(--blu);color:var(--panna);}
.btn--primo:hover{background:var(--blu-scuro);}
.btn--wa{background:var(--wa);color:var(--wa-testo);}
.btn--wa:hover{background:var(--wa-scuro);}
.btn--fantasma{border-color:var(--riga);color:var(--testo);background:transparent;}
.btn--fantasma:hover{border-color:var(--blu);}
.hero .btn--fantasma,.sez--blu .btn--fantasma{border-color:rgba(246,241,234,.45);color:var(--panna);}
.hero .btn--fantasma:hover,.sez--blu .btn--fantasma:hover{border-color:var(--panna);}
.btn--chiaro{background:var(--panna);color:var(--blu);}
.btn--chiaro:hover{background:var(--bianco);}
.btn--spento{border:1.5px dashed var(--tortora);color:var(--testo-tenue);background:transparent;cursor:not-allowed;}
.btn--spento:hover{transform:none;}
.btn--spento small{font-weight:500;font-size:var(--t-2);}
.btn--largo{inline-size:100%;}

/* ------------------------------------------------------------------- header */
.header{
  position:sticky;inset-block-start:0;z-index:40;background:rgba(246,241,234,.94);
  backdrop-filter:saturate(140%) blur(10px);border-block-end:1px solid var(--riga);
  padding-block-start:env(safe-area-inset-top,0px);
}
.header__in{display:flex;align-items:center;gap:var(--s-5);min-block-size:84px;}
.wordmark{font-family:var(--f-titoli);font-size:1.35rem;line-height:1;color:var(--blu);text-decoration:none;white-space:nowrap;flex:none;display:inline-flex;align-items:center;block-size:2.5rem;}
.wordmark em{font-style:italic;}
.wordmark__corto{display:none;}
.nav{display:flex;gap:var(--s-5);margin-inline-start:auto;font-size:var(--t-3);}
.nav a{white-space:nowrap;text-decoration:none;color:var(--testo-tenue);padding-block:var(--s-2);position:relative;}
.nav a:hover{color:var(--testo);}
.nav a::after{content:"";position:absolute;inset-block-end:2px;inset-inline:0;block-size:2px;background:var(--blu);transform:scaleX(0);transform-origin:left;transition:transform 180ms var(--e);}
.nav a:hover::after{transform:scaleX(1);}
.header__cta{min-block-size:44px;font-size:var(--t-3);white-space:nowrap;padding-inline:var(--s-4);}
/* da 1181 px in su il menu sta in riga, con il selettore di lingua (12/10/2026) i gap si stringono
   per far stare anche le etichette piu lunghe (fr, pl) dentro la colonna */
@media (min-width:1181px){
  .header__in{gap:var(--s-4);}
  .nav{gap:var(--s-4);}
}
.apri-menu{display:none;margin-inline-start:auto;align-items:center;justify-content:center;inline-size:44px;block-size:44px;
  background:transparent;border:1.5px solid var(--riga);border-radius:50%;cursor:pointer;color:var(--blu);flex:none;}
.apri-menu svg{inline-size:22px;block-size:22px;}

/* drawer mobile, figlio diretto del body (regola A5) */
.drawer{
  position:fixed;inset-block-start:0;inset-inline-end:0;block-size:100dvh;inline-size:min(320px,86vw);
  display:flex;flex-direction:column;background:var(--blu-scuro);color:var(--panna);
  padding:calc(var(--s-5) + env(safe-area-inset-top,0px)) var(--s-5) var(--s-6);
  transform:translateX(100%);transition:transform 220ms var(--e);z-index:60;overflow-y:auto;visibility:hidden;
}
.drawer.aperto{transform:translateX(0);visibility:visible;}
.drawer__testa{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-block-size:48px;margin-block-end:var(--s-5);padding-block-end:var(--s-4);border-block-end:1px solid var(--riga-chiara);}
.drawer .wordmark{color:var(--panna);font-size:1.25rem;}
.drawer__chiudi{inline-size:44px;block-size:44px;border-radius:50%;border:1.5px solid var(--riga-chiara);background:transparent;color:var(--panna);cursor:pointer;display:grid;place-items:center;}
.drawer__chiudi svg{inline-size:20px;block-size:20px;}
.drawer a:not(.btn){text-decoration:none;color:var(--panna);font-size:var(--t-5);padding-block:var(--s-4);border-block-end:1px solid var(--riga-chiara);}
.drawer .btn{margin-block-start:var(--s-5);}
.velo{position:fixed;inset:0;background:rgba(21,42,70,.55);z-index:50;border:0;cursor:pointer;}

/* header compatto (burger + drawer) fino a 1180 px, prima solo fino a 768 */
@media (max-width:1180px){
  html{scroll-padding-top:72px;}
  .header__in{min-block-size:72px;}
  .wordmark{font-size:1.25rem;block-size:3rem;}
  .wordmark__lungo{display:none;}
  .wordmark__corto{display:inline;}
  .nav,.header__cta{display:none;}
  .apri-menu{display:inline-flex;}
}
@media (min-width:1181px){.drawer,.velo{display:none;}}

/* --------------------------------------------------------------------- hero */
.hero{position:relative;background:var(--blu);color:var(--panna);padding-block:clamp(3.5rem,9vw,6rem) clamp(3rem,7vw,5rem);overflow:hidden;}
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 70% 60% at 50% 0%, rgba(233,223,208,.14), transparent 70%);}
/* foto di sfondo con velo blu, contrasto del testo verificato in _qa/contrasti-hero.py (regola 13-quinquies) */
.hero__sfondo{position:absolute;inset:0;z-index:0;}
.hero__sfondo img{inline-size:100%;block-size:100%;max-inline-size:none;object-fit:cover;object-position:50% 60%;}
.hero__sfondo::after{content:"";position:absolute;inset:0;background:rgba(21,42,70,.72);}
.hero__in{position:relative;z-index:2;text-align:center;max-inline-size:56rem;margin-inline:auto;}
.hero h1{font-size:var(--t-9);color:var(--panna);}
.hero h1 span{display:block;}
.hero h1 em{color:var(--beige);}
.hero__sotto{font-family:var(--f-titoli);font-style:italic;font-size:clamp(1.15rem,2.4vw,1.5rem);line-height:1.3;color:var(--beige);margin:var(--s-4) auto 0;max-inline-size:44ch;text-wrap:balance;}
.hero .occhiello{color:var(--beige);}
.hero__testo{color:var(--panna);max-inline-size:52ch;margin:var(--s-4) auto 0;font-size:var(--t-5);}
.hero__azioni{display:flex;flex-wrap:wrap;gap:var(--s-3);justify-content:center;margin-block-start:var(--s-6);}
.hero__nastro{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2) var(--s-5);margin-block-start:var(--s-6);font-size:var(--t-3);color:var(--panna);list-style:none;}
.hero__nastro li{display:inline-flex;align-items:center;gap:var(--s-2);}
.hero__nastro svg{inline-size:16px;block-size:16px;color:var(--beige);flex:none;}
.hero__filo{display:block;inline-size:64px;block-size:2px;background:var(--tortora);margin:var(--s-5) auto 0;}

/* ---------------------------------------------------------------- le case */
.case{display:grid;gap:clamp(2rem,4vw,3rem);}
.casa{
  background:var(--bianco);border:1px solid var(--riga);border-radius:var(--r-3);box-shadow:var(--ombra);
  display:grid;gap:clamp(1.5rem,3vw,2.5rem);padding:clamp(1.25rem,3vw,2rem);overflow:hidden;
}
@media (min-width:901px){
  .casa{grid-template-columns:1fr 1fr;align-items:start;}
  .casa:nth-child(even) .casa__media{order:2;}
}
/* contenitore dei media, galleria + video, colonna sinistra (destra nelle case pari) */
.casa__media{display:grid;gap:var(--s-4);min-inline-size:0;}
/* galleria, 1 foto grande a tutta riga + 4 miniature in un'unica riga da 4 (2x2 sotto i 481 px), righe sempre piene (regola A2).
   Le altre 5 foto stanno nel lightbox, la quinta miniatura porta il pulsante "+5 foto". */
.casa__galleria{display:grid;gap:var(--s-2);grid-template-columns:repeat(4,1fr);}
.casa__galleria > .foto:first-child{grid-column:1/-1;aspect-ratio:3/2;}
@media (max-width:480px){.casa__galleria{grid-template-columns:repeat(2,1fr);}}

/* foto a proporzione fissa con object-fit (regola A1), il ritaglio lo fa il CSS, non l'export */
.foto{
  position:relative;aspect-ratio:4/3;inline-size:100%;border:0;padding:0;border-radius:var(--r-2);overflow:hidden;
  background:var(--beige);cursor:zoom-in;display:block;transition:box-shadow 160ms var(--e);
}
.foto:hover{box-shadow:inset 0 0 0 2px var(--tortora);}
.foto picture,.foto img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;}
.foto img{transition:transform 500ms var(--e);}
.foto:hover img{transform:scale(1.03);}
@media (prefers-reduced-motion:reduce){.foto img{transition:none;}.foto:hover img{transform:none;}}
.foto__altre{position:absolute;inset:0;display:grid;place-items:center;background:rgba(21,42,70,.62);color:var(--panna);font-weight:600;font-size:var(--t-3);letter-spacing:.04em;}
html:not(.dialog) .foto{cursor:default;}

/* video, 16:9, nessun autoplay */
.casa__video{display:grid;gap:var(--s-2);}
.casa__video figcaption{font-size:var(--t-1);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--testo-tenue);}
.video{position:relative;aspect-ratio:16/9;border-radius:var(--r-2);overflow:hidden;background:var(--blu-scuro);}
.video video{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;background:var(--blu-scuro);}

.casa__corpo{display:flex;flex-direction:column;gap:var(--s-4);}
.casa__nome{font-size:var(--t-7);color:var(--blu);}
.casa__nome small{display:block;font-family:var(--f-testo);font-size:var(--t-3);font-weight:600;letter-spacing:.04em;color:var(--testo-tenue);margin-block-start:var(--s-2);}
.casa__corpo .intro{margin-block-start:0;font-size:var(--t-4);}
.casa__dotazioni{border-block:1px solid var(--riga);padding-block:var(--s-4);display:grid;gap:var(--s-3);}
.casa__dotazioni h4{font-size:var(--t-3);font-weight:600;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);}
.casa__dotazioni p{font-size:var(--t-3);color:var(--testo-tenue);}
.dotazioni{list-style:none;display:grid;gap:var(--s-2);grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));font-size:var(--t-3);color:var(--testo-tenue);}
.dotazioni li{display:flex;gap:var(--s-2);align-items:center;}
.dotazioni svg{inline-size:18px;block-size:18px;flex:none;color:var(--tortora-scuro);}
.cin{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-3);align-items:baseline;font-size:var(--t-2);color:var(--testo-tenue);}
.cin code{font-size:var(--t-3);color:var(--testo);background:var(--panna);padding:.15rem .5rem;border-radius:var(--r-1);letter-spacing:.04em;}
.casa__azioni{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-block-start:auto;}
.casa__azioni .btn{min-block-size:48px;font-size:var(--t-3);}

/* --------------------------------------------------------------- perché qui */
.perche{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));}
.motivo{background:var(--panna);border:1px solid var(--riga);border-radius:var(--r-3);padding:clamp(1.25rem,3vw,1.75rem);display:flex;flex-direction:column;gap:var(--s-3);}
.motivo__icona{inline-size:48px;block-size:48px;border-radius:50%;display:grid;place-items:center;background:var(--blu);color:var(--panna);flex:none;}
.motivo__icona svg{inline-size:22px;block-size:22px;}
.motivo p{color:var(--testo-tenue);font-size:var(--t-3);}

/* ------------------------------------------------------------ come arrivare */
.arrivo{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));}
.modo{border-block-start:2px solid var(--tortora);padding-block-start:var(--s-4);}
.modo span{font-size:var(--t-2);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blu);}
.modo h3{margin-block:var(--s-2);}
.modo p{font-size:var(--t-3);color:var(--testo-tenue);}
.due{display:grid;gap:clamp(2rem,5vw,var(--s-7));grid-template-columns:1fr;align-items:stretch;margin-block-start:clamp(2rem,5vw,3rem);}
@media (min-width:860px){.due{grid-template-columns:1fr 1.1fr;}}
.scheda{background:var(--bianco);border:1px solid var(--riga);border-radius:var(--r-3);padding:clamp(1.5rem,3vw,2rem);display:flex;flex-direction:column;}
.contatti{list-style:none;display:grid;gap:var(--s-4);margin-block-start:var(--s-4);}
.contatti li{display:flex;gap:var(--s-3);align-items:flex-start;line-height:1.45;}
.contatti svg{inline-size:20px;block-size:20px;flex:none;color:var(--blu);margin-block-start:.2em;}
.contatti a{text-decoration:none;color:var(--testo);font-weight:600;}
.contatti a:hover{text-decoration:underline;}
.contatti small{display:block;font-size:var(--t-2);color:var(--testo-tenue);font-weight:400;}
.contatto-riga{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-block-start:auto;padding-block-start:var(--s-5);}
.mappa{position:relative;aspect-ratio:16/10;min-inline-size:0;border-radius:var(--r-3);overflow:hidden;border:1px solid var(--riga);background:var(--beige);}
@media (min-width:860px){.mappa{aspect-ratio:auto;block-size:100%;min-block-size:320px;}}
.mappa iframe{position:absolute;inset:0;inline-size:100%;block-size:100%;border:0;}
.mappa__consenso{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:var(--s-3);padding:var(--s-5);text-align:center;background:linear-gradient(180deg,#EFE7DA,#E2D7C4);}
.mappa__consenso p{font-size:var(--t-3);color:var(--testo-tenue);max-inline-size:36ch;}

/* ------------------------------------------------------------------ bergamo */
.luoghi{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));}
.luogo{border:1px solid var(--riga-chiara);border-radius:var(--r-2);padding:clamp(1.25rem,2.5vw,1.5rem);background:rgba(246,241,234,.04);display:flex;flex-direction:column;gap:var(--s-2);}
.luogo span{font-family:var(--f-titoli);font-style:italic;font-size:1.1rem;color:var(--tortora);}
.luogo p{font-size:var(--t-3);}

/* ---------------------------------------------------------------------- faq */
.faq{display:grid;gap:var(--s-3);}
.faq details{background:var(--bianco);border:1px solid var(--riga);border-radius:var(--r-2);overflow:hidden;}
.faq summary{list-style:none;cursor:pointer;padding:var(--s-4) var(--s-5);font-weight:600;display:flex;gap:var(--s-4);align-items:center;min-block-size:56px;}
.faq summary:hover{background:var(--panna);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"";inline-size:10px;block-size:10px;border-inline-end:2px solid var(--blu);border-block-end:2px solid var(--blu);transform:rotate(45deg);margin-inline-start:auto;flex:none;transition:transform 180ms var(--e);}
.faq details[open] summary::after{transform:rotate(-135deg);}
.faq p{padding:0 var(--s-5) var(--s-5);color:var(--testo-tenue);font-size:var(--t-3);}

/* -------------------------------------------------------------------- form */
.form{display:grid;gap:var(--s-4);}
.campi{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));}
.campo{display:grid;gap:var(--s-2);align-content:start;}
.campo label{font-size:.875rem;font-weight:600;}
.campo label small{font-weight:400;color:var(--testo-tenue);}
.campo input,.campo select,.campo textarea{
  inline-size:100%;min-block-size:52px;padding:var(--s-3) var(--s-4);border:1.5px solid var(--riga);
  border-radius:var(--r-1);background:var(--bianco);transition:border-color 160ms var(--e);
}
.campo select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F3A5F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--s-4) center;background-size:18px;padding-inline-end:calc(var(--s-4) * 2 + 18px);}
.campo textarea{min-block-size:120px;resize:vertical;line-height:1.55;}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--blu);outline:none;}
.campo [aria-invalid="true"]{border-color:var(--errore);}
.campo__errore{font-size:var(--t-2);color:var(--errore);min-block-size:1.1em;}
.campo--tutto{grid-column:1/-1;}
.privacy-riga{display:flex;gap:var(--s-3);align-items:flex-start;font-size:.875rem;color:var(--testo-tenue);}
.privacy-riga input{inline-size:22px;block-size:22px;margin-block-start:.15em;flex:none;accent-color:var(--blu);}
.esito{padding:var(--s-4);border-radius:var(--r-1);font-size:var(--t-3);display:none;}
.esito.si{display:block;background:var(--panna);border:1px solid var(--blu);color:var(--testo);}
.esito.no{display:block;background:var(--panna);border:1px solid var(--errore);color:var(--errore);}
.melma{position:absolute;inset-inline-start:-9999px;}

/* ------------------------------------------------------------------ footer */
.footer{background:var(--blu-scuro);color:var(--testo-chiaro);padding-block:clamp(3rem,6vw,4.5rem) var(--s-6);font-size:var(--t-3);}
.footer a{color:var(--panna);text-decoration:none;}
.footer a:hover{text-decoration:underline;}
.footer__griglia{display:grid;gap:var(--s-7) var(--s-6);grid-template-columns:1.3fr 1fr 1.1fr .7fr;align-items:start;}
@media (max-width:960px){.footer__griglia{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.footer__griglia{grid-template-columns:1fr;gap:var(--s-6);}}
.footer h3{font-size:var(--t-2);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--tortora);margin-block-end:var(--s-4);font-family:var(--f-testo);}
.footer .wordmark{color:var(--panna);font-size:1.4rem;margin-block-end:var(--s-4);block-size:auto;}
.footer__motto{max-inline-size:34ch;}
.footer__lista{list-style:none;display:grid;gap:var(--s-3);}
.footer__lista li{display:flex;gap:var(--s-3);align-items:flex-start;line-height:1.5;}
.footer__lista svg{inline-size:20px;block-size:20px;flex:none;color:var(--tortora);margin-block-start:.15em;}
.footer__lista small{display:block;font-size:var(--t-2);color:rgba(217,210,199,.75);}
.footer__cin{list-style:none;display:grid;gap:var(--s-3);}
.footer__cin b{display:block;font-weight:600;color:var(--panna);}
.footer__cin code{font-size:var(--t-2);letter-spacing:.05em;color:var(--testo-chiaro);}
.footer__link{list-style:none;display:grid;gap:var(--s-2);}
.footer__coda{margin-block-start:var(--s-7);padding-block-start:var(--s-5);border-block-start:1px solid var(--riga-chiara);
  display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);justify-content:space-between;font-size:var(--t-2);color:rgba(217,210,199,.8);}
.footer__coda a{color:rgba(246,241,234,.92);}

/* ------------------------------------------------------------ barra mobile */
.barra{display:none;}
@media (max-width:768px){
  :root{--barra:calc(72px + env(safe-area-inset-bottom,0px));}
  .barra{position:fixed;inset-inline:0;inset-block-end:0;z-index:30;display:grid;grid-template-columns:1.4fr 1fr;gap:var(--s-2);
    padding:var(--s-2) var(--s-3) calc(var(--s-2) + env(safe-area-inset-bottom,0px));background:rgba(246,241,234,.96);
    border-block-start:1px solid var(--riga);backdrop-filter:blur(10px);}
  .barra .btn{min-block-size:50px;font-size:var(--t-3);padding-inline:var(--s-3);}
}

/* ----------------------------------------------------------------- lightbox */
.lightbox{border:0;padding:0;background:transparent;max-inline-size:min(96vw,1200px);inline-size:min(96vw,1200px);max-block-size:96vh;margin:auto;color:var(--panna);}
.lightbox::backdrop{background:rgba(21,42,70,.9);}
.lightbox figure{position:relative;aspect-ratio:3/2;max-block-size:82vh;margin:auto;border-radius:var(--r-2);overflow:hidden;background:var(--blu);}
.lightbox figure img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:contain;}
.lightbox__barra{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-block-start:var(--s-3);font-size:var(--t-3);}
.lightbox__barra p{color:var(--testo-chiaro);}
.lightbox__tasto{inline-size:48px;block-size:48px;border-radius:50%;border:1.5px solid var(--riga-chiara);background:rgba(246,241,234,.08);color:var(--panna);cursor:pointer;display:grid;place-items:center;flex:none;}
.lightbox__tasto svg{inline-size:22px;block-size:22px;}
.lightbox__chiudi{position:fixed;inset-block-start:var(--s-4);inset-inline-end:var(--s-4);background:var(--panna);color:var(--blu);border:0;}
.lightbox__frecce{display:flex;gap:var(--s-2);}

/* ------------------------------------------------------------ pagine testo */
.testo-lungo{padding-block:var(--s-7) var(--s-8);}
.testo-lungo h1{font-size:clamp(2rem,5vw,2.8rem);margin-block-end:var(--s-3);}
.testo-lungo h2{font-size:clamp(1.35rem,3vw,1.7rem);margin-block:var(--s-6) var(--s-3);}
.testo-lungo h3{margin-block:var(--s-5) var(--s-3);}
.testo-lungo p,.testo-lungo li{color:var(--testo-tenue);margin-block-end:var(--s-3);}
.testo-lungo ul,.testo-lungo ol{padding-inline-start:var(--s-5);}
.testo-lungo .aggiornato{font-size:.875rem;}
.testo-lungo table{inline-size:100%;border-collapse:collapse;margin-block:var(--s-4);font-size:var(--t-3);}
.testo-lungo th,.testo-lungo td{text-align:start;padding:var(--s-3);border-block-end:1px solid var(--riga);vertical-align:top;}
.testo-lungo th{color:var(--blu);}
@media (max-width:640px){
  .testo-lungo table,.testo-lungo thead,.testo-lungo tbody,.testo-lungo tr,.testo-lungo th,.testo-lungo td{display:block;}
  .testo-lungo thead{display:none;}
  .testo-lungo tr{border:1px solid var(--riga);border-radius:var(--r-1);padding:var(--s-2) 0;margin-block-end:var(--s-3);}
  .testo-lungo td{border:0;padding-block:var(--s-1);}
  .testo-lungo td::before{content:attr(data-t);display:block;font-size:var(--t-1);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blu);}
}

/* pagina grazie */
.grazie{min-block-size:60svh;display:grid;place-items:center;padding-block:var(--s-8);}

/* ------------------------------------------------------------------ motion */
.su{opacity:0;transform:translateY(10px);transition:opacity 520ms var(--e),transform 520ms var(--e);}
.su.visto{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .su{opacity:1;transform:none;transition:none;}
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}
html:not(.js) .su{opacity:1;transform:none;}
html:not(.js) .drawer,html:not(.js) .apri-menu{display:none;}

/* -------------------------------------------------------- lingue (12/10/2026) */
.vh{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}
.bandiera{display:block;inline-size:18px;block-size:12px;flex:none;border-radius:2px;}
.lingua{position:relative;flex:none;}
.lingua summary{list-style:none;display:inline-flex;align-items:center;gap:.45rem;min-block-size:44px;padding-inline:.8rem .7rem;border:1.5px solid var(--riga);border-radius:var(--r-pill);cursor:pointer;font-size:var(--t-2);font-weight:700;letter-spacing:.08em;color:var(--blu);user-select:none;}
.lingua summary::-webkit-details-marker{display:none;}
.lingua summary::after{content:"";inline-size:6px;block-size:6px;border-inline-end:1.5px solid currentColor;border-block-end:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-inline-start:.15rem;transition:transform 160ms var(--e);}
.lingua[open] summary::after{transform:rotate(-135deg) translateY(-1px);}
.lingua summary:hover,.lingua[open] summary{border-color:var(--blu);}
.lingua ul{position:absolute;inset-block-start:calc(100% + 8px);inset-inline-end:0;z-index:50;list-style:none;margin:0;padding:var(--s-2);min-inline-size:12rem;background:var(--panna);border:1px solid var(--riga);border-radius:var(--r-2);box-shadow:var(--ombra);}
.lingua li a{display:flex;align-items:center;gap:.65rem;min-block-size:42px;padding:.4rem .7rem;border-radius:var(--r-1);text-decoration:none;color:var(--testo);font-size:var(--t-3);}
.lingua li a span{font-weight:700;letter-spacing:.08em;font-size:var(--t-2);color:var(--blu);}
.lingua li a small{margin-inline-start:auto;font-size:var(--t-2);color:var(--testo-tenue);}
.lingua li a:hover,.lingua li a[aria-current]{background:var(--beige);}
.wordmark + .lingua{margin-inline-start:auto;}
.lingue{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-block-start:var(--s-5);padding-block-start:var(--s-4);border-block-start:1px solid var(--riga-chiara);}
.drawer .lingue a{display:inline-flex;align-items:center;gap:.5rem;min-block-size:44px;padding:.5rem .85rem;border:1.5px solid var(--riga-chiara);border-radius:var(--r-pill);font-size:var(--t-3);font-weight:700;letter-spacing:.08em;}
.drawer .lingue a[aria-current]{background:var(--panna);border-color:var(--panna);color:var(--blu);}
.nota-versione{font-size:.875rem;font-style:italic;}
@media (max-width:1180px){.lingua--desk{display:none;}}
@media (max-width:1180px){html:not(.js) .lingua--desk{display:block;margin-inline-start:auto;}}
@media (max-width:600px){.nav:not(:has(a:nth-child(3))) a:nth-child(2){display:none;}}

/* header delle pagine legali, niente burger, i due link restano visibili e su telefono si riducono */
.nav.nav--legale{display:flex;}
@media (max-width:640px){
  .nav.nav--legale{gap:var(--s-3);font-size:.875rem;}
  .nav.nav--legale a + a{display:none;}
}
/* sotto i 400 px basta il marchio, che porta già alla home */
@media (max-width:400px){.nav.nav--legale{display:none;}}
