/* www.gielle.it - foglio di stile (ricostruzione della grafica The7 11 del vecchio sito) */

/* ---------- font (ospitati localmente, nessuna chiamata a Google) ---------- */
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 300 800; font-display: swap; src: url(../fonts/open-sans.woff2) format("woff2"); }
@font-face { font-family: "Roboto Condensed"; font-style: normal; font-weight: 300 700; font-display: swap; src: url(../fonts/roboto-condensed.woff2) format("woff2"); }
@font-face { font-family: "Raleway"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/raleway.woff2) format("woff2"); }

:root {
  --rosso: #a12b31;
  --rosso-chiaro: #d73e45;
  --rosso-barra: #dd0000;
  --grad: linear-gradient(135deg, #a12b31 30%, #d73e45 100%);
  --testo: #5b5b5b;
  --titoli: #3a3a3a;
  --tenue: #999;
  --sfondo: #fff;
  --linea: rgba(136, 136, 136, .2);
  --bordo: #e6e6e6;
  --verde: #036d03;
  --font: "Open Sans", Helvetica, Arial, Verdana, sans-serif;
  --font-titoli: "Roboto Condensed", Helvetica, Arial, Verdana, sans-serif;
  --font-menu: Raleway, Helvetica, Arial, Verdana, sans-serif;
  /* meta' della larghezza utile della finestra (--sb = larghezza della barra di scorrimento, dal JavaScript) */
  --vw50: calc(50vw - var(--sb, 0px) / 2);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font: 14px/24px var(--font); color: var(--testo); background: var(--sfondo); overflow-x: hidden; }
img { max-width: 100%; height: auto; border: 0; vertical-align: middle; }
a { color: var(--rosso); text-decoration: none; }
a:hover { text-decoration: underline; }
p { margin: 0 0 10px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-titoli); font-weight: 400; color: var(--titoli); margin: 0 0 10px; }
:is(h1, h2, h3, h4, h5, h6) a, :is(h1, h2, h3, h4, h5, h6) a:hover { color: inherit; text-decoration: none; }
h1 { font-size: 49px; line-height: 55px; }
h2 { font-size: 37px; line-height: 43px; }
h3 { font-size: 28px; line-height: 34px; }
h4 { font-size: 20px; line-height: 26px; }
h5 { font-size: 17px; line-height: 24px; }
h6 { font-size: 15px; line-height: 24px; }
strong, b { font-weight: 700; }
button, input, select, textarea { font: inherit; }
sup, .reg { font-size: 60%; line-height: 0; vertical-align: super; }
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.salta { position: absolute; top: -40px; left: 10px; z-index: 1000; background: #fff; color: var(--rosso); padding: 8px 14px; }
.salta:focus { top: 10px; }
.ico { width: 1em; height: 1em; fill: currentColor; vertical-align: -0.125em; flex: none; }
.wrap { max-width: 1250px; margin: 0 auto; padding: 0 40px; }
.ta-c { text-align: center; }
.ta-r { text-align: right; }
.ta-l { text-align: left; }
.ta-j { text-align: justify; }
.f-l { float: left; margin: 0 15px 10px 0; }
.f-r { float: right; margin: 0 0 10px 15px; }
.img-c { display: block; margin: 0 auto 10px; }
.paint-accent-color, .color-accent { color: var(--rosso); }
.text-big { font-size: 16px; line-height: 26px; }
.text-small { font-size: 12px; line-height: 21px; }

/* ---------- pulsanti ---------- */
.btn { display: inline-flex; align-items: center; gap: 7px; background: var(--grad); color: #fff; border: 0; border-radius: 5px; font-family: var(--font-titoli); cursor: pointer; text-decoration: none; transition: opacity .2s; }
.btn:hover { opacity: .85; text-decoration: none; color: #fff; }
.btn-s { font-size: 12px; line-height: 26px; padding: 0 13px 2px; }
.btn-m { font-size: 15px; line-height: 20px; padding: 9px 14px; }
.btn-l { font-size: 18px; line-height: 46px; padding: 0 16px 2px; }
.btn-grey { background: #f0f0f0; color: #666; border-radius: 0; font-size: 12px; line-height: 20px; padding: 6px 12px; font-family: var(--font); border: 1px solid #e3e3e3; }
.btn-grey:hover { color: #333; background: #e7e7e7; opacity: 1; }
.btn .ico { font-size: .9em; }
.btn-link { display: inline-flex; align-items: center; gap: 8.5px; font: 15px/17px var(--font-titoli); color: var(--rosso); text-decoration: none; background: linear-gradient(90deg, #a12b31 30%, #d73e45 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; transition: color .2s; }
.btn-link .ico { font-size: 15px; color: #b9343a; }
.btn-link:hover { text-decoration: none; -webkit-text-fill-color: var(--rosso); }
.btn-link:hover .ico { color: var(--rosso); }

/* ---------- barra superiore ---------- */
.testata-sito { position: relative; z-index: 50; }
.barra-top { background: var(--rosso-barra) url(../img/subtle_grunge.png); color: #f4f4f4; font-size: 14px; line-height: 24px; }
.barra-top a { color: #f4f4f4; }
.barra-top-in { display: flex; align-items: center; justify-content: space-between; min-height: 36px; gap: 20px; }
.contatti-mini { display: flex; gap: 22px; align-items: center; }
.contatti-mini a { display: inline-flex; align-items: center; gap: 6px; }
.contatti-mini .ico { font-size: 13px; }
.barra-destra { display: flex; align-items: center; gap: 14px; }
.menu-mini { display: flex; align-items: center; }
.menu-mini > ul { display: flex; margin: 0; padding: 0; list-style: none; }
.menu-mini li { position: relative; }
.menu-mini > ul > li > a { display: flex; align-items: center; gap: 5px; padding: 6px 8px; font-size: 14px; line-height: 20px; }
.menu-mini > ul > li > a img { width: 16px; height: 16px; }
.menu-mini > ul > li > a .ico { font-size: 12px; }
.sotto-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 220px; margin: 0; padding: 8px 0; list-style: none; background: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, .15); z-index: 60; }
:is(.menu-mini, .menu-principale) .ha-figli:is(:hover, :focus-within) > .sotto-menu { display: block; }
.sotto-menu .sotto-menu { top: -8px; left: 100%; }
.sotto-menu a { display: flex; align-items: center; gap: 6px; padding: 7px 18px; color: #3a3a3a !important; font-size: 14px; line-height: 20px; white-space: nowrap; }
.sotto-menu a:hover { color: var(--rosso) !important; text-decoration: none; background: #f7f7f7; }
.sotto-menu .ha-figli > a::after { content: "›"; margin-left: auto; padding-left: 12px; color: #aaa; font-size: 16px; }
.social { display: flex; gap: 6px; }
.social a { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: #fff; color: var(--rosso-barra) !important; font-size: 13px; }
.social a:hover { background: var(--grad); color: #fff !important; text-decoration: none; }
.social-pagina { margin: 4px 0 10px; }
.social-pagina a { background: rgba(136, 136, 136, .12); color: #888 !important; }
.btn-wa { display: inline-flex; align-items: center; gap: 5px; background: green; color: #fff !important; border: 1px solid #fff; border-radius: 4px; padding: 1px 10px; font-size: 14px; line-height: 20px; font-weight: 700; text-decoration: underline; white-space: nowrap; }
.btn-wa:hover { background: #006400; }

/* ---------- barra principale ---------- */
.barra-principale { background: #fff; box-shadow: 0 0 15px 1px rgba(0, 0, 0, .07); }
.barra-principale-in { display: flex; align-items: center; justify-content: space-between; min-height: 134px; gap: 30px; }
.logo { display: block; position: relative; }
.logo img { width: 260px; height: auto; display: block; }
.logo .logo-chiaro { display: none; }
.menu-principale > ul { display: flex; flex-wrap: wrap; justify-content: flex-end; margin: 0; padding: 0; list-style: none; gap: 0 18px; }
.menu-principale li { position: relative; }
.menu-principale > ul > li > a { display: block; font: 500 var(--menu-fs, 17px)/21px var(--font-menu); color: #3a3a3a; padding: 4px 0 6px; text-transform: uppercase; position: relative; }
.menu-principale > ul > li > a::after { content: ""; position: absolute; left: 50%; right: 50%; bottom: 0; height: 2px; background: var(--rosso-chiaro); transition: left .25s, right .25s; }
.menu-principale > ul > li:is(:hover, .attiva) > a::after { left: 0; right: 0; }
.menu-principale > ul > li > a:hover { text-decoration: none; color: var(--rosso); }
.menu-principale .sotto-menu { top: calc(100% + 10px); min-width: 280px; }
.menu-principale .sotto-menu .sotto-menu { top: -8px; }
.menu-principale .sotto-menu::before { content: ""; position: absolute; top: -10px; left: 0; right: 0; height: 10px; }
.menu-principale .sotto-menu a { font-size: 14px; padding: 8px 20px; }
.menu-principale > ul > li:last-child > .sotto-menu { left: auto; right: 0; }
.menu-principale > ul > li:last-child .sotto-menu .sotto-menu { left: auto; right: 100%; }
.apri-menu { display: none; background: none; border: 0; font-size: 26px; color: #3a3a3a; cursor: pointer; padding: 6px; }

/* testata trasparente sopra lo slider della home e sopra l'immagine del titolo di alcune pagine */
.testata-trasparente .testata-sito { position: absolute; top: 0; left: 0; right: 0; }
.testata-trasparente .barra-top { background: rgba(255, 255, 255, .25); }
.testata-trasparente .barra-principale { background: var(--sfondo-testata, transparent); box-shadow: none; }
.testata-trasparente .logo .logo-scuro { display: none; }
.testata-trasparente .logo .logo-chiaro { display: block; }
.testata-chiara .menu-principale > ul > li > a { color: #fff; }
.testata-trasparente .social a { background: rgba(255, 255, 255, .2); color: #fff !important; }
.testata-trasparente .testata-pagina.fancy { padding-top: var(--h-testata, 170px); }

/* testata fissa durante lo scorrimento */
.testata-sito.fissa { position: fixed; top: 0; left: 0; right: 0; animation: scendi .3s ease; }
.testata-sito.fissa .barra-top { display: none; }
.testata-sito.fissa .barra-principale { background: #fff; box-shadow: 0 0 15px 1px rgba(0, 0, 0, .07); }
.testata-sito.fissa .barra-principale-in { min-height: 70px; }
.testata-sito.fissa .logo img { width: 160px; }
.testata-sito.fissa .logo .logo-scuro { display: block; }
.testata-sito.fissa .logo .logo-chiaro { display: none; }
.testata-sito.fissa .menu-principale > ul > li > a { color: #3a3a3a; font-size: 15px; }
@keyframes scendi { from { transform: translateY(-100%); } to { transform: none; } }

/* ---------- menu mobile ---------- */
.menu-mobile { position: fixed; inset: 0 0 0 auto; width: min(340px, 88vw); background: #fff; z-index: 200; overflow-y: auto; box-shadow: 0 0 30px rgba(0, 0, 0, .3); padding: 0 0 30px; }
.menu-mobile-testa { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-bottom: 1px solid var(--bordo); }
.chiudi-menu { background: none; border: 0; font-size: 24px; color: #3a3a3a; cursor: pointer; }
.menu-mobile ul { list-style: none; margin: 0; padding: 0; }
.menu-mobile nav > ul { border-bottom: 1px solid var(--bordo); padding: 10px 0; }
.menu-mobile a { display: flex; gap: 8px; align-items: center; padding: 9px 20px; color: #3a3a3a; font: 500 15px/22px var(--font-menu); }
.menu-mobile a img { width: 16px; height: 16px; }
/* sottomenu chiusi: si aprono con la freccetta accanto alla voce */
.menu-mobile .sotto-menu { display: none; position: static; box-shadow: none; padding: 0 0 6px; min-width: 0; background: #fafafa; }
.menu-mobile li.aperto > .sotto-menu { display: block; }
.menu-mobile li.ha-figli { position: relative; }
.menu-mobile li.ha-figli > a { padding-inline-end: 52px; }
.menu-mobile .sotto-menu a { font-size: 14px; white-space: normal; padding: 6px 20px; padding-inline-start: 32px; }
.menu-mobile .sotto-menu .sotto-menu a { padding-inline-start: 44px; font-size: 13px; }
.menu-mobile .sotto-menu .ha-figli > a::after { display: none; }
.apri-sotto { position: absolute; top: 2px; inset-inline-end: 10px; width: 36px; height: 36px; border: 0; background: none; color: #888; font-size: 16px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.apri-sotto .ico { transition: transform .2s; }
.menu-mobile li.aperto > .apri-sotto .ico { transform: rotate(180deg); }
.menu-mobile .sotto-menu .apri-sotto { top: 0; height: 32px; }
/* menu secondario (Gielle Group, contatti, lingue...) piu' piccolo */
.menu-mobile .menu-mob-secondario > li > a { font-size: 13px; padding-top: 6px; padding-bottom: 6px; }
.menu-mobile .menu-mob-secondario .apri-sotto { top: 0; height: 34px; }
.menu-mobile .menu-mob-secondario .sotto-menu a { font-size: 13px; padding-top: 5px; padding-bottom: 5px; }
.menu-mobile li.attiva > a { color: var(--rosso); }
.menu-mob-contatti { padding: 16px 20px; display: flex; flex-direction: column; gap: 8px; font-size: 13px; }
.menu-mob-contatti a { padding: 0; font: 13px/20px var(--font); color: #555; }
.menu-mob-contatti .social a { width: 30px; height: 30px; background: var(--grad); color: #fff !important; justify-content: center; }
body.menu-aperto { overflow: hidden; }
body.menu-aperto::after { content: ""; position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 150; }

/* ---------- slider home ---------- */
.slider { position: relative; height: 100vh; min-height: 520px; overflow: hidden; background: #111; }
.slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.2s ease, visibility 1.2s; }
.slide.attiva { opacity: 1; visibility: visible; }
.slide-img { position: absolute; inset: 0; background-size: cover; background-position: center top; transform: scale(1.05); transition: transform 8s linear; }
.slide.zoom .slide-img { transform: scale(1); }
.slide::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .25); }
.slide-testo { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 160px 20px 40px; color: #fff; }
.slide-sopra { font: 300 60px/70px var(--font-titoli); color: rgba(255, 255, 255, .55); margin: 0; }
.slide-sopra.piccolo { font: 600 18px/28px var(--font); color: #fff; letter-spacing: 2px; margin-bottom: 20px; }
.slide-titolo { font: 600 110px/120px var(--font); color: #fff; margin: 0 0 40px; }
.slide-titolo.piccolo { font-weight: 400; font-size: 64px; line-height: 74px; }
.slide-btn { display: inline-block; border: 1px solid #fff; color: #fff; padding: 6px 22px; font-size: 17px; line-height: 26px; font-weight: 500; }
.slide-btn:hover { background: #fff; color: #333; text-decoration: none; }
.slide .slide-sopra, .slide .slide-titolo, .slide .slide-btn { opacity: 0; transform: translateY(30px); transition: opacity .8s ease .5s, transform .8s ease .5s; }
.slide.attiva .slide-sopra, .slide.attiva .slide-titolo, .slide.attiva .slide-btn { opacity: 1; transform: none; }
.slide.attiva .slide-titolo { transition-delay: .8s; }
.slide.attiva .slide-btn { transition-delay: 1.1s; }
.slider-freccia { position: absolute; top: 50%; z-index: 3; transform: translateY(-50%); background: rgba(0, 0, 0, .25); color: #fff; border: 0; width: 46px; height: 46px; font-size: 22px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.slider-freccia:hover { background: rgba(0, 0, 0, .55); }
.slider-freccia.prec { left: 20px; }
.slider-freccia.succ { right: 20px; }
.slider-punti { position: absolute; bottom: 30px; left: 0; right: 0; z-index: 3; display: flex; justify-content: center; gap: 10px; }
.slider-punti button { width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; background: transparent; padding: 0; cursor: pointer; }
.slider-punti button.attivo { background: #fff; }

/* ---------- testata delle pagine interne ---------- */
.testata-pagina.fancy { position: relative; display: flex; align-items: center; background-size: cover; background-repeat: no-repeat; }
.testata-pagina.fancy.fisso { background-attachment: fixed; }
.testata-pagina .velo { position: absolute; inset: 0; }
.testata-pagina.fancy .wrap { position: relative; width: 100%; padding-top: 30px; padding-bottom: 30px; }
.fancy-titolo { font: 600 37px/43px var(--font-titoli); color: #fff; margin: 0; }
.fancy-sottotitolo { font: 600 24px/32px var(--font-titoli); color: #fff; margin: 10px 0 0; }
.testata-pagina.fancy .briciole { margin-top: 10px; color: #fff; }
.testata-pagina.fancy .briciole a, .testata-pagina.fancy .briciole span { color: #fff; }
.testata-pagina.fancy .ta-c .briciole ol { justify-content: center; }
.testata-pagina.fancy .ta-r .briciole ol { justify-content: flex-end; }
.briciole ol { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; font-size: 12px; line-height: 21px; }
.briciole li + li::before { content: "/"; padding: 0 7px; opacity: .5; }
.solo-titolo .briciole, .solo-titolo .briciole a { color: #bcbcbc; }
.solo-titolo .briciole a:hover { color: var(--rosso); text-decoration: none; }
.testata-pagina.solo-titolo .wrap { width: 100%; }
.solo-titolo-in { display: flex; align-items: center; justify-content: space-between; gap: 30px; min-height: 120px; border-bottom: 1px solid var(--linea); }
.solo-titolo-in h1 { font: var(--titolo-peso, 600) 37px/43px var(--font-titoli); color: var(--titoli); margin: 0; }
.solo-titolo-in h1 span { color: inherit; }
.solo-titolo.centrato .solo-titolo-in { flex-direction: column; justify-content: center; text-align: center; gap: 6px; }

/* ---------- contenuto e griglia ---------- */
.contenuto { padding: 50px 0; }
.contenuto.senza-titolo { padding-top: 50px; }
.contenuto > .wrap::after { content: ""; display: table; clear: both; }
.g-row { display: flex; flex-wrap: wrap; margin: 0 -20px; }
.g-col { padding: 0 20px; min-width: 0; }
/* colonna con bordo/sfondo propri (come vc_column-inner): il riquadro occupa tutta la colonna, il contenuto rientra */
.g-col:has(> .g-col-in) { padding-left: 0; padding-right: 0; }
.g-col-in { padding-left: 20px; padding-right: 20px; background-size: cover; background-position: center; }
.con-velo { position: relative; }
.con-velo::before { content: ""; position: absolute; inset: 0; background: var(--velo); pointer-events: none; }
.con-velo > * { position: relative; }
.w-1 { width: 8.3333%; } .w-2 { width: 16.6667%; } .w-3 { width: 25%; } .w-4 { width: 33.3333%; }
.w-5 { width: 41.6667%; } .w-6 { width: 50%; } .w-7 { width: 58.3333%; } .w-8 { width: 66.6667%; }
.w-9 { width: 75%; } .w-10 { width: 83.3333%; } .w-11 { width: 91.6667%; } .w-12 { width: 100%; }
.w-q1 { width: 20%; } .w-q2 { width: 40%; } .w-q3 { width: 60%; } .w-q4 { width: 80%; }
.g-row.eq > .g-col > .g-col-in { height: 100%; }
.g-row.mid { align-items: center; }
.g-inner { margin: 0 -15px; }
.g-inner > .g-col { padding: 0 15px; }
/* spazio tra le colonne (vc_column-gap di WPBakery): --gc su tutti i lati; le colonne senza riquadro mantengono il rientro */
.g-row.gap { margin: 0 calc(-20px - var(--gc)); }
.g-row.gap > .g-col { padding: var(--gc) calc(20px + var(--gc)); }
.g-row.gap > .g-col:has(> .g-col-in) { padding: var(--gc); }
/* righe a tutta larghezza: lo sfondo arriva ai bordi della finestra */
.fascia { margin-left: calc(50% - var(--vw50)); margin-right: calc(50% - var(--vw50)); padding-left: calc(var(--vw50) - 50%); padding-right: calc(var(--vw50) - 50%); background-size: cover; background-position: center; }
.fascia.stretch { padding-left: 0; padding-right: 0; }
.fascia.stretch > .g-row { margin: 0; }
/* gallerie a tutta larghezza: da bordo a bordo della finestra */
.fascia.stretch > .g-row > .g-col > :is(.gallery-strip, .carosello, .gallery-grid) { margin-left: -20px; margin-right: -20px; }
.fascia.stretch > .g-row > .g-col > .g-row.g-inner { margin: 0 -20px; }
.stripe { position: relative; margin-left: calc(50% - var(--vw50)); margin-right: calc(50% - var(--vw50)); padding-left: calc(var(--vw50) - 50%); padding-right: calc(var(--vw50) - 50%); background-size: cover; background-position: center; }
.stripe-style-1 { background-color: #fafafa; }
.stripe-style-2 { background-color: #222; color: #ccc; }
.stripe-style-2 :is(h1, h2, h3, h4, h5, h6) { color: #fff; }
.sp { display: block; }
.txt { margin-bottom: 5px; }
.txt::after { content: ""; display: table; clear: both; }
.txt > :last-child, .txt > :last-child > :last-child { margin-bottom: 0; }
.txt ul, .txt ol { margin: 0 0 10px; padding: 0 0 0 20px; }
.txt li > p { margin: 0; }
.txt ul.list-arrow, .txt ol.list-arrow { list-style: none; padding: 0; }
.txt ul.list-arrow > li { position: relative; padding: 0 0 10px 24px; }
.txt ul.list-arrow > li::before { content: ""; position: absolute; left: 0; top: 5px; width: 14px; height: 14px; border-radius: 50%; background: var(--grad); }
.txt ul.list-arrow > li::after { content: ""; position: absolute; left: 4px; top: 10px; width: 4px; height: 4px; border-top: 1.5px solid #fff; border-right: 1.5px solid #fff; transform: rotate(45deg); }
.txt ul.list-divider > li { border-bottom: 1px solid var(--linea); padding-top: 9px; padding-bottom: 9px; }
.txt ul.list-divider > li:first-child { padding-top: 0; }
.txt ul.list-divider > li:last-child { border-bottom: 0; }
.txt ul.list-arrow.list-divider > li::before { top: 14px; }
.txt ul.list-arrow.list-divider > li::after { top: 19px; }
.txt ul.list-arrow.list-divider > li:first-child::before { top: 5px; }
.txt ul.list-arrow.list-divider > li:first-child::after { top: 10px; }
.txt ol.list-num, .txt ul.list-num { list-style: none; padding: 0; margin: 0 0 15px; counter-reset: num; }
.txt .list-num > li { position: relative; padding-left: 30px; margin-bottom: 10px; counter-increment: num; }
.txt .list-num > li::before { content: counter(num); position: absolute; left: 0; top: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--grad); color: #fff; font: 11px/20px Arial, Verdana, sans-serif; text-align: center; }
.table-wrap { overflow-x: auto; }
.txt table { width: 100%; border-collapse: collapse; margin-bottom: 15px; }
.txt td, .txt th { border: 1px solid var(--bordo); padding: 6px 10px; text-align: inherit; }
.txt blockquote { margin: 0 0 15px; padding: 10px 20px; border-left: 3px solid var(--rosso-chiaro); background: rgba(136, 136, 136, .05); font-style: italic; }
.sep { border: 0; border-top: 1px solid var(--linea); margin: 0 auto 5px; height: 0; }
.sep.thick { border-top-width: 3px; }
.sep.dashed { border-top-style: dashed; }
.sep.accento { border-top-color: var(--rosso-chiaro); }
.didascalia { margin: 0 0 10px; }
.didascalia figcaption { font-size: 12px; line-height: 20px; color: var(--tenue); font-style: italic; margin-top: 4px; }

/* immagini */
.img-single { margin-bottom: 5px; }
.img-single img { display: inline-block; }
.img-single.img-c { margin-left: auto; margin-right: auto; }
.img-tit { font-size: 20px; line-height: 26px; }
.img-frame { background: rgba(136, 136, 136, .04); padding: 5px; border: 1px solid rgba(136, 136, 136, .12); }
.img-frame img { width: 100%; }
.img-border img { border: 1px solid var(--bordo); padding: 3px; background: #fff; }

/* separatore con titolo */
.fancy-sep { display: flex; align-items: center; gap: 14px; color: var(--tenue); font-size: 14px; line-height: 24px; margin: 0 0 5px; }
.fancy-sep::before, .fancy-sep::after { content: ""; flex: 1; border-top: 1px solid #ccc; }
.fancy-sep.pos-l::before, .fancy-sep.pos-r::after { display: none; }
.fancy-sep.dashed::before, .fancy-sep.dashed::after { border-top-style: dashed; }
.fancy-sep.bg span { background: var(--grad); color: #fff; padding: 1px 14px; border-radius: 3px; }
.fancy-sep.small { font-size: 13px; }
.fancy-sep.big { font-size: 16px; line-height: 26px; }

/* titoli Ultimate Addons */
.uvc { margin-bottom: 5px; }
.uvc h2, .uvc h3, .uvc h4 { margin-bottom: 0; }
.uvc-sp { display: flex; align-items: center; gap: 12px; margin: 10px 0; color: var(--linea-ico, #626161); }
.uvc-sp.line_with_icon::before, .uvc-sp.line_with_icon::after { content: ""; flex: 1; border-top: 1px solid var(--linea, #ccc); }
.uvc.ta-c .uvc-sp { justify-content: center; }
.uvc-sp.line_only { border-top: 1px solid var(--linea, #ccc); }
.uvc-sp .ico { color: var(--linea, #626161); }
.uvc-sub { font-size: 14px; line-height: 24px; }
.uvc-sub :is(h1, h2, h3, h4, h5, h6) { margin: 10px 0; }

/* box con icona (Ultimate Addons) */
.ib { display: flex; gap: 15px; align-items: flex-start; margin-bottom: 35px; }
.ib-top { flex-direction: column; align-items: center; text-align: center; }
.ib-ico { flex: none; display: inline-flex; align-items: center; justify-content: center; font-size: 32px; color: var(--rosso); line-height: 1; }
.ib-testo h3 { font-size: 18px; line-height: 25px; margin: 0 0 8px; }
.ib-left .ib-testo h3 { margin-top: 2px; }
.ib-desc { font-size: 14px; line-height: 24px; }
.ib-desc p:last-child { margin-bottom: 0; }
/* finestra a comparsa (Ultimate Modal) */
.modale-btn { text-align: center; margin-bottom: 35px; }
.btn-modale { display: inline-block; background: #dd3333; color: #fff; border: 2px outset #dd3333; border-radius: 6px; padding: 10px 16px; font: 700 18px/24px var(--font-titoli); cursor: pointer; }
.modale { display: none; position: fixed; inset: 0; z-index: 600; background: rgba(51, 51, 51, .8); overflow-y: auto; padding: 20px; }
.modale.aperta { display: flex; }
.modale-box { width: max(calc(35vw - var(--sb, 0px) * .35), min(100%, 480px)); margin: auto; background: #fff; border: 2px solid #333; box-shadow: 0 0 7px #404040; outline: 0; }
.modale-testa { display: flex; align-items: center; min-height: 44px; border-bottom: 1px solid #333; color: #333; }
.modale-ico { flex: none; width: 52px; display: flex; justify-content: center; font-size: 24px; }
.modale-testa h3 { font: 16px/24px var(--font); color: #333; margin: 0; }
.modale-corpo { padding: 15px 20px; }
.modale-corpo .modulo p:last-of-type { margin-bottom: 0; }
.modale-chiudi { position: fixed; top: 35px; right: 35px; width: 80px; height: 80px; background: none; border: 0; cursor: pointer; }
.modale-chiudi::before, .modale-chiudi::after { content: ""; position: absolute; left: 50%; top: 50%; width: 56px; height: 2px; background: #fff; transform: translate(-50%, -50%) rotate(45deg); }
.modale-chiudi::after { transform: translate(-50%, -50%) rotate(-45deg); }
body.modale-aperta { overflow: hidden; }
@media (max-width: 778px) {
  .modale { padding: 60px 10px 20px; }
  .modale-chiudi { top: 5px; right: 5px; width: 50px; height: 50px; }
  .modale-chiudi::before, .modale-chiudi::after { width: 34px; }
}
.ib-quadro { display: block; position: relative; margin: 65px 0 35px; padding-top: 45px; text-align: center; }
.ib-quadro .ib-ico { position: absolute; left: 50%; top: -45px; transform: translateX(-50%); width: 2em; height: 2em; border-radius: 50%; }
.ib-quadro .ib-testo h3 { margin: 15px 0; padding: 0 5%; }
.ib-quadro .ib-desc { padding-bottom: 20px; color: #5b5b5b; }
.ib-link, .ib-link:hover { color: inherit; text-decoration: none; display: block; }
.ico-sola { display: inline-flex; font-size: 32px; color: var(--rosso); }
.ico-el { display: inline-flex; align-items: center; justify-content: center; color: var(--rosso); margin-bottom: 10px; }
.ico-xs { font-size: 14px; } .ico-sm { font-size: 20px; } .ico-md { font-size: 28px; } .ico-lg { font-size: 40px; } .ico-xl { font-size: 56px; }

/* contatori */
.contatore { display: flex; gap: 15px; align-items: center; margin-bottom: 20px; }
.contatore.cnt-top { flex-direction: column; text-align: center; gap: 8px; }
.contatore.cnt-right { flex-direction: row-reverse; text-align: right; }
.cnt-num { font: 28px/1.2 var(--font-titoli); color: var(--titoli); }
.cnt-testo { font: 18px/1.3 var(--font-titoli); color: var(--testo); }

/* messaggi in evidenza */
.msg { display: flex; gap: 14px; align-items: flex-start; padding: 14px 18px; margin-bottom: 15px; border-radius: 5px; border: 1px solid; }
.msg > div > :last-child { margin-bottom: 0; }
.msg-ico { font-size: 22px; line-height: 1; margin-top: 2px; }
.msg-info, .msg-blue, .msg-sky { background: #dcf1fb; border-color: #b6e1f5; color: #2b6c8a; }
.msg-warning, .msg-orange, .msg-yellow { background: #fff4e2; border-color: #fbdcab; color: #8a5a10; }
.msg-success, .msg-green { background: #e6fde9; border-color: #b4ecba; color: #24692d; }
.msg-danger, .msg-red, .msg-pink { background: #fde8e8; border-color: #f6c3c3; color: #a12b31; }
.msg-grey, .msg-white, .msg-black { background: #f4f4f4; border-color: #e0e0e0; color: #555; }

/* due pulsanti affiancati */
.dual-btn { display: flex; align-items: center; justify-content: center; margin: 10px 0 15px; }
.dual-btn a { color: #3a3a3a; font-size: 14px; padding: 6px 12px; }
.dual-btn a:hover { color: var(--rosso); text-decoration: none; }
.dual-sep { width: 22px; height: 22px; border-radius: 50%; background: #333; color: #fff; font-size: 10px; line-height: 22px; text-align: center; }

.content-box { margin-bottom: 15px; }
.strip-libera { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; }
.strip-libera .sl-voce { flex: 0 0 auto; scroll-snap-align: start; }

/* teaser (immagine + testo) */
.teaser { background: rgba(136, 136, 136, .04); height: 100%; margin-bottom: 20px; transition: box-shadow .3s; }
.teaser:hover { box-shadow: 0 0 12px rgba(0, 0, 0, .12); }
.teaser-img { overflow: hidden; }
.teaser-img img { width: 100%; display: block; transition: transform .5s; }
.teaser:hover .teaser-img img { transform: scale(1.05); }
.teaser-body { padding: 15px 25px 10px; }

/* box invito all'azione */
.action-box { display: flex; align-items: center; gap: 30px; padding: 10px 0; }
.ab-text { flex: 1; }
.ab-text h3 { margin-bottom: 8px; }
.ab-text h5 { font-family: var(--font); font-size: 14px; line-height: 22px; color: var(--testo); margin: 0; }
.ab-btn { flex: none; }

/* fisarmoniche */
.acc-group { margin-bottom: 10px; }
.acc > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; }
.acc > summary::-webkit-details-marker { display: none; }
.acc > summary .ico { color: var(--rosso); }
.acc-group:not(.tta) .acc + .acc { margin-top: 10px; }
.acc-group:not(.tta) .acc > summary { position: relative; padding: 0 25px 0 0; font: 14px/24px var(--font); color: var(--titoli); transition: color .2s; }
.acc-group:not(.tta) .acc[open] > summary, .acc-group:not(.tta) .acc > summary:hover { color: var(--rosso); }
.acc-group:not(.tta) .acc > summary::after { content: ""; position: absolute; right: 0; top: 50%; width: 16px; height: 16px; margin-top: -8px; background: rgba(91, 91, 91, .15) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%233a3a3a' stroke-width='1.6'/%3E%3C/svg%3E") center / 8px no-repeat; }
.acc-group:not(.tta) .acc[open] > summary::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 5l4-4 4 4' fill='none' stroke='%233a3a3a' stroke-width='1.6'/%3E%3C/svg%3E"); }
.acc-group:not(.tta) .acc-body { padding: 10px 0 5px; }
.acc-body:empty { display: none; }
.tta .acc { border: 0; }
.tta .acc > summary { padding: 14px 20px; border: 1px solid #f0f0f0; background: #f8f8f8; color: #666; font: 20px/20px var(--font-titoli); gap: 14px; transition: background .2s; }
.tta .acc > summary:hover { background: #f0f0f0; }
.tta .acc > summary .ico { color: #666; font-size: 1.15em; }
.tta .acc > summary::after { display: none; }
.tta .acc-body { padding: 14px 20px; background: #f8f8f8; border: 1px solid #f0f0f0; border-top: 0; }
.tta.tta-gruppo:not(.tta-gap) { border-radius: 5px; overflow: hidden; }
.tta.tta-gruppo:not(.tta-gap) .acc + .acc > summary { border-top: 0; }
.tta:is(:not(.tta-gruppo), .tta-gap) .acc { margin-bottom: 10px; }
.tta .acc-body > :last-child { margin-bottom: 0; }
.tta:is(:not(.tta-gruppo), .tta-gap) .acc > summary { border-radius: 5px; }
.tta:is(:not(.tta-gruppo), .tta-gap) .acc[open] > summary { border-radius: 5px 5px 0 0; }
.tta:is(:not(.tta-gruppo), .tta-gap) .acc-body { border-radius: 0 0 5px 5px; }
/* icone di apertura: piu'/meno o freccia, a destra o a sinistra del titolo */
:is(.tta-ico-plus, .tta-ico-chevron) .acc > summary::after { display: block; content: ""; flex: none; margin-left: auto; box-shadow: none; border-radius: 0; }
.tta-ico-sx .acc > summary::after { order: -1; margin-left: 0; }
.tta-ico-plus .acc > summary::after { width: 12px; height: 12px; background: linear-gradient(#666, #666) center / 12px 2px no-repeat, linear-gradient(#666, #666) center / 2px 12px no-repeat; }
.tta-ico-plus .acc[open] > summary::after { background: linear-gradient(#666, #666) center / 12px 2px no-repeat; }
.tta-ico-chevron .acc > summary::after { width: 8px; height: 8px; margin-right: 2px; background: none; border: solid #666; border-width: 0 2px 2px 0; transform: translateY(-2px) rotate(45deg); }
.tta-ico-chevron .acc[open] > summary::after { transform: translateY(2px) rotate(225deg); }
.tta-white .acc > summary, .tta-white .acc-body { background: #fff; }
.tta-vuoto .acc-body { background: transparent; border-color: transparent; }

/* schede */
.tabs { margin-bottom: 15px; }
.tabs-nav { display: flex; flex-wrap: wrap; gap: 0; background: #f4f4f4; border-bottom: 1px solid #eee; }
.tabs-nav button { background: none; border: 0; padding: 10px 18px; font: 14px/22px var(--font); color: var(--titoli); cursor: pointer; position: relative; }
.tabs-nav button.on { color: var(--rosso); }
.tabs-nav button.on::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 0; height: 2px; background: var(--rosso-chiaro); }
.tab-panel { padding: 20px 0 0; }
.tabs-box { background: rgba(136, 136, 136, .08); border-radius: 3px; }
.tabs-box .tabs-nav { background: none; border: 0; padding-left: 25px; overflow: hidden; }
.tabs-box .tabs-nav button { margin: 12px 30px 6px 0; padding: 0 0 7px; font: 14px/24px var(--font); }
.tabs-box .tabs-nav button.on::after { left: 0; right: 0; bottom: 0; background: var(--grad); }
.tabs-box .tab-panel { padding: 20px 25px; }

/* barre di avanzamento */
.pbar { margin-bottom: 10px; }
.pbar-label { display: block; font-size: 14px; color: var(--titoli); margin-bottom: 4px; }
.pbar-track { height: 10px; background: rgba(136, 136, 136, .1); border-radius: 3px; overflow: hidden; }
.pbar-fill { height: 100%; background: var(--grad); border-radius: 3px; }

/* gallerie */
.gallery-grid { display: grid; grid-template-columns: repeat(var(--cols, 4), 1fr); gap: var(--gap, 2px); align-items: start; margin-bottom: 10px; }
.gallery-grid img { width: 100%; height: auto; display: block; }
.gallery-grid.muratura { display: flex; align-items: flex-start; }
.gallery-grid.muratura > .colonna { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--gap, 2px); }
/* carosello di foto con frecce (come lo slider del tema originale) */
.carosello { position: relative; margin-bottom: 10px; }
.gallery-strip { display: flex; gap: 1px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; scroll-behavior: smooth; }
.gallery-strip::-webkit-scrollbar { display: none; }
.gallery-strip > * { flex: none; scroll-snap-align: start; }
.gallery-strip img { height: var(--h, 150px); width: auto; max-width: none; display: block; }
/* carosello a colonne: numero di foto visibili per tipo di schermo */
.gallery-strip.colonne { --k: var(--n); gap: var(--gap, 0px); }
.gallery-strip.colonne > * { flex: 0 0 calc((100% - (var(--k) - 1) * var(--gap, 0px)) / var(--k)); }
.gallery-strip.colonne img { width: 100%; height: auto; max-width: 100%; }
.carosello-freccia { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .9); color: #333; box-shadow: 0 1px 6px rgba(0, 0, 0, .25); font-size: 16px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: opacity .2s; }
.carosello-freccia:hover { color: var(--rosso); }
.carosello-freccia.prec { left: 10px; }
.carosello-freccia.succ { right: 10px; }
.carosello-freccia[disabled] { opacity: 0; pointer-events: none; }
/* carosello di video (Ultimate Carousel): N anteprime per schermata, frecce scure ai lati, a giro continuo */
.gallery-strip.video { --k: var(--n); gap: var(--gap); margin: 0 calc(var(--gap) / 2); }
.gallery-strip.video > * { flex: 0 0 calc((100% - (var(--k) - 1) * var(--gap)) / var(--k)); }
.gallery-strip.video img { width: 100%; height: auto; max-width: 100%; transition: opacity .2s; }
.gallery-strip.video a:hover img { transform: none; opacity: .85; }
.video-lb { display: inline-block; vertical-align: top; max-width: 100%; }
.video-lb img { transition: opacity .2s; }
.video-lb:hover img { opacity: .85; }
.carosello.video { padding-bottom: 20px; margin-bottom: 35px; }
.carosello.video .carosello-freccia { top: calc(50% - 10px); width: 30px; height: 30px; border-radius: 0; background: none; box-shadow: none; color: #333; font-size: 18px; }
.carosello.video .carosello-freccia:hover { color: var(--rosso); }
.carosello.video .carosello-freccia.prec { left: -15px; }
.carosello.video .carosello-freccia.succ { right: -15px; }
@media (max-width: 1025px) { .gallery-strip.video { --k: var(--n-t); } }
@media (max-width: 760px) { .gallery-strip.video { --k: var(--n-ph); } }
.gallery-grid a, .gallery-strip a { display: block; overflow: hidden; }
/* album fotografico: una foto alla volta */
.gallery-strip.album { gap: 0; }
.gallery-strip.album > * { flex: 0 0 100%; aspect-ratio: 2 / 1; }
.gallery-strip.album img { width: 100%; height: 100%; max-width: 100%; object-fit: cover; }
.gallery-strip.album a:hover img { transform: none; opacity: 1; }
.album-nav { margin-top: 0; }
.gallery-grid a img, .gallery-strip a img { transition: transform .4s, opacity .4s; }
.gallery-grid a:hover img, .gallery-strip a:hover img { transform: scale(1.06); opacity: .9; }

/* vantaggi con icona */
.benefits { display: grid; grid-template-columns: repeat(var(--cols, 4), 1fr); gap: 30px; text-align: center; }
.benefit-ico { display: inline-flex; width: 60px; height: 60px; border-radius: 50%; background: var(--grad); color: #fff; align-items: center; justify-content: center; font-size: 26px; margin-bottom: 14px; transition: transform .3s; }
.benefit:hover .benefit-ico { transform: scale(1.08); }
.benefit h5 { margin-bottom: 8px; }
.benefit p { font-size: 12px; line-height: 21px; }

/* notizie (blocco articoli nelle pagine) */
.news-grid { display: grid; grid-template-columns: repeat(var(--cols, 3), 1fr); gap: 20px; align-items: start; margin-bottom: 15px; }
.news-grid.muratura { display: flex; align-items: flex-start; }
.news-grid.muratura > .colonna { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.stretch .news-grid { padding-left: 20px; padding-right: 20px; }
.news-card { background: rgba(136, 136, 136, .08); }
.news-img { position: relative; }
.news-img img { width: 100%; display: block; }
.news-date { position: absolute; top: 10px; right: 10px; z-index: 2; display: flex; align-items: center; background: #fff; padding: 2px 2px 1px 4px; font: 700 12px/22px Arial, Verdana, sans-serif; color: #222; }
.news-date span { position: relative; padding: 0 9px 0 5px; }
.news-date span:last-child { padding-right: 6px; }
.news-date span:not(:last-child)::after { content: ""; position: absolute; top: 50%; right: 0; width: 4px; height: 4px; margin-top: -2px; border-radius: 50%; background: var(--grad); }
.news-body { padding: 10px 25px 20px; }
.news-body > * { margin: 0; padding-top: 10px; }
.news-body h3 { font-size: 20px; line-height: 26px; }
.news-body h3 a { color: var(--titoli); }
.news-body h3 a:hover { color: var(--rosso); text-decoration: none; }
.news-meta { font-size: 12px; line-height: 21px; color: var(--tenue); }
.news-body p { font-size: 14px; line-height: 24px; }
.news-body > .details { padding: 0 0 6px; margin-top: 10px; }
.details { position: relative; display: inline-block; font-size: 12px; line-height: 16px; font-weight: 700; color: var(--titoli); }
.details::after { content: ""; display: inline-block; margin-left: 6px; vertical-align: 1px; border-left: 4px solid currentColor; border-top: 4px solid transparent; border-bottom: 4px solid transparent; }
.details::before { content: ""; position: absolute; left: 0; bottom: 0; width: 0; height: 2px; background: var(--grad); transition: width .4s; }
.details:hover { color: var(--titoli); text-decoration: none; }
.details:hover::before { width: 100%; }

/* album fotografici filtrabili per anno (pagina delle fiere) */
.album-filtro { display: flex; flex-wrap: wrap; gap: 0 5px; margin: 0 0 20px; }
.album-filtro button { font: 14px/18px var(--font); color: var(--titoli); background: none; border: 0; border-radius: 100px; padding: 6px 15px 6px 16px; cursor: pointer; }
.album-filtro button:hover { color: var(--rosso); }
.album-filtro button.on { background: var(--grad); color: #fff; }
.album-grid { display: grid; grid-template-columns: repeat(var(--cols, 3), 1fr); gap: 30px; }
.album-card { display: flex; flex-direction: column; }
.album-card[hidden] { display: none; }
.album-img { position: relative; display: block; overflow: hidden; }
.album-img > img { width: 100%; display: block; transition: transform .5s; }
.album-img::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .4); opacity: 0; transition: opacity .3s; }
.album-img:is(:hover, :focus-visible) > img { transform: scale(1.05); }
.album-img:is(:hover, :focus-visible)::after, .album-img:is(:hover, :focus-visible) .album-mini { opacity: 1; }
.album-mini { position: absolute; top: 50%; left: 50%; z-index: 2; width: 167px; height: 69px; transform: translate(-50%, -50%); opacity: 0; transition: opacity .3s; }
.album-mini > span { position: absolute; top: 0; width: 69px; height: 69px; border: 3px solid #fff; border-radius: 50%; overflow: hidden; box-shadow: 0 0 5px 1px rgba(0, 0, 0, .15); }
.album-mini > span:nth-child(1) { left: 0; z-index: 3; }
.album-mini > span:nth-child(2) { left: 49px; z-index: 2; }
.album-mini > span:nth-child(3) { left: 98px; z-index: 1; }
.album-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.album-testo { flex: 1; background: rgba(136, 136, 136, .08); padding: 25px 30px 30px; }
.album-testo h3 { font: 700 20px/26px var(--font-titoli); margin: 0 0 5px; }
.album-testo h3 a { color: var(--titoli); }
.album-testo h3 a:hover { color: var(--rosso); text-decoration: none; }
.mini-posts { list-style: none; margin: 0 0 10px; padding: 0; }
.mini-posts li { display: flex; gap: 12px; align-items: flex-start; padding: 0 0 15px; }
.mini-posts img { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; }
.mini-posts span { display: block; font-size: 13px; line-height: 20px; }
.mini-posts span a { color: var(--titoli); }
.mini-posts time { display: block; font-size: 11px; color: #aaa; margin-top: 4px; }

/* contenuti esterni (video, mappe) con consenso */
.embed { position: relative; aspect-ratio: 16 / 9; background: #222; margin-bottom: 15px; }
.embed-mappa { aspect-ratio: auto; height: 400px; }
.embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.embed-avviso { position: absolute; inset: 0; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.embed-avviso::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .6); }
.embed-testo { position: relative; color: #fff; text-align: center; max-width: 420px; padding: 15px; font-size: 13px; line-height: 20px; }

/* ---------- articoli ---------- */
.articolo-meta { text-align: center; font-size: 12px; line-height: 21px; color: var(--tenue); margin: 40px 0 40px; }
.articolo-meta a { color: var(--tenue); }
.articolo-meta time::before { content: "•"; margin: 0 6px; }
.articolo-meta span + time::before { display: inline; }
.articolo-nav { display: flex; justify-content: space-between; gap: 30px; border-top: 1px solid var(--linea); border-bottom: 1px solid var(--linea); padding: 25px 0; margin-bottom: 50px; }
.articolo-nav a { display: grid; grid-template-columns: auto 1fr; column-gap: 15px; align-items: center; color: var(--titoli); text-decoration: none; max-width: 48%; }
.articolo-nav .ico { grid-row: span 2; font-size: 30px; color: rgba(58, 58, 58, .15); }
.an-etichetta { font-size: 12px; line-height: 21px; color: var(--tenue); text-transform: uppercase; }
.an-titolo { font: 20px/26px var(--font-titoli); }
.articolo-nav a:hover .an-titolo { color: var(--rosso); }
.an-succ { grid-template-columns: 1fr auto !important; text-align: right; margin-left: auto; }
.an-succ .ico { grid-column: 2; grid-row: 1 / span 2; }
.an-succ span { grid-column: 1; }
.correlati { border-bottom: 1px solid #ccc; padding-bottom: 35px; }
.correlati h3 { margin-bottom: 30px; }
.correlati ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px 40px; }
.correlati li { display: flex; gap: 20px; align-items: flex-start; }
.cr-img { flex: none; }
.cr-img img { width: 110px; height: 80px; object-fit: cover; display: block; }
.cr-titolo { display: block; color: var(--titoli); font-size: 14px; line-height: 24px; }
.correlati time { display: block; font-size: 12px; color: rgba(91, 91, 91, .5); margin-top: 4px; }

/* archivio delle categorie */
.archivio { display: grid; grid-template-columns: repeat(var(--cols, 3), 1fr); gap: 20px; align-items: start; }
.scheda { background: rgba(0, 0, 0, .03); }
/* disposizione "a muratura" come il tema originale (colonne create dal JavaScript) */
.archivio.muratura { display: flex; gap: 20px; align-items: flex-start; }
.archivio.muratura > .colonna { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.scheda-img { display: block; overflow: hidden; }
.scheda-img img { width: 100%; display: block; transition: transform .5s; }
.scheda-img:hover img { transform: scale(1.04); }
.scheda-testo { padding: 20px 25px 15px; }
.scheda-testo h3 { font-size: 20px; line-height: 26px; margin-bottom: 6px; }
.scheda-testo h3 a { color: var(--titoli); }
.scheda-testo h3 a:hover { color: var(--rosso); text-decoration: none; }
.scheda-meta { font-size: 12px; line-height: 21px; color: var(--tenue); margin-bottom: 10px; }
.scheda-meta a { color: var(--tenue); }
.scheda-meta a::after { content: "•"; margin: 0 6px; }
.paginatore { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 40px; }
.paginatore a, .paginatore span { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; padding: 0 8px; color: var(--testo); font-size: 14px; }
.paginatore .pg-attuale { background: var(--grad); color: #fff; border-radius: 3px; }
.paginatore a:hover { color: var(--rosso); text-decoration: none; }

/* ---------- moduli ---------- */
.modulo { position: relative; font-size: 14px; }
.modulo p { margin-bottom: 10px; }
.modulo label { display: inline; }
.modulo .campo { display: block; position: relative; }
:where(.modulo) :where(input[type=text], input[type=email], input[type=tel], input[type=date], input[type=search], select, textarea) {
  width: 100%; max-width: 100%; min-height: 38px; background: #fcfcfc; border: 1px solid rgba(173, 176, 182, .3); border-radius: 0; padding: 5px 15px; font: 13px/26px var(--font); color: #787d85;
}
:where(.modulo) select { appearance: none; padding-right: 30px; background: #fcfcfc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0h10L5 6z' fill='%23787d85'/%3E%3C/svg%3E") no-repeat right 12px center / 9px 6px; }
:where(.modulo) textarea { height: auto; min-height: 78px; resize: vertical; }
:where(.modulo) :where(input, textarea)::placeholder { color: #7e7e7e; opacity: .8; }
.modulo input[type=file] { margin-top: 2px; font-size: 13px; max-width: 100%; }
.modulo :is(input, select, textarea):focus { outline: 2px solid rgba(215, 62, 69, .3); border-color: var(--rosso-chiaro); }
.modulo .invio { display: inline-block; background: var(--grad); color: #fff; border: 0; border-radius: 5px; font: 15px/17px var(--font-titoli); padding: 12px 18px 11px; cursor: pointer; transition: opacity .2s; }
.modulo .invio:hover { opacity: .85; }
.modulo .invio.btnads-fullwidth { width: 100%; background: var(--verde); }
.modulo .scelte { display: block; }
.modulo .scelta { display: flex; gap: 6px; align-items: flex-start; margin-bottom: 4px; font-size: 13px; line-height: 20px; cursor: pointer; }
.modulo .scelta input { margin-top: 3px; accent-color: var(--rosso); }
.modulo .white-bck, .white-bck { background-color: #fff !important; }
.myvid { border: 1px solid; border-color: #fff #ededed #ededed #fff; border-radius: 3px; box-shadow: 0 2px 3px #666; }
.mymargin { margin: 0 auto 0 !important; }
.modulo .longselect { width: 100%; }
.modulo .one-half { width: 48%; float: left; margin-right: 4%; }
.modulo .one-half.last { margin-right: 0; }
.modulo .one-half + .one-half + * { clear: both; }
.modulo::after { content: ""; display: table; clear: both; }
.the7-form .campo-ctrl { display: block; line-height: 22px; }
.the7-form .the7-campi + .campo { margin-bottom: 10px; }
.the7-form textarea { resize: both; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.modulo-nota { font-size: 11px; line-height: 17px; color: #888; margin-top: 4px; }
.campo-errore { display: block; color: #dc3232; font-size: 12px; line-height: 18px; margin-top: 2px; }
.modulo-esito { clear: both; padding: 8px 14px; margin: 12px 0 0; font-size: 14px; line-height: 21px; border: 2px solid; }
.modulo-esito.ok { border-color: #46b450; color: #24692d; }
.modulo-esito.errore { border-color: #ffb900; color: #6b4e00; }
.hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; opacity: 0; }
.ricerca-modulo p { display: flex; gap: 10px; align-items: center; max-width: 560px; }
.pagina-404 .ricerca-modulo p { margin: 20px auto; }
.risultati-ricerca { list-style: none; padding: 0; margin: 20px 0; }
.risultati-ricerca li { padding: 14px 0; border-bottom: 1px solid var(--bordo); }
.risultati-ricerca a { font: 20px/26px var(--font-titoli); }

/* ---------- footer ---------- */
.piede { background: #1c1c1c url(../img/subtle_grunge.png); color: #919191; font-size: 13px; line-height: 22px; }
.piede-sedi { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px 44px; padding-top: 50px; padding-bottom: 25px; }
.sede-nome { font: 17px/24px var(--font-titoli); color: #f4f4f4; margin: 0 0 15px; }
.sede-indirizzo { margin: 0 0 10px; }
.sede ul { list-style: none; margin: 0; padding: 0; }
.sede li { margin-bottom: 10px; }
.sede-etichetta { color: #f4f4f4; }
.piede a { color: #919191; text-decoration: underline; }
.piede a:hover { color: #fff; }
.piede .social { margin-top: 12px; }
.piede .social a { background: rgba(255, 255, 255, .1); color: #919191 !important; text-decoration: none; width: 22px; height: 22px; font-size: 11px; }
.piede .social a:hover { background: var(--grad); color: #fff !important; }
.newsletter .modulo { font-size: 13px; }
.newsletter .modulo p { margin: 0 0 10px; }
.newsletter label { display: block; color: #919191; margin-bottom: 4px; }
.newsletter .modulo input[type=email] { width: 100%; background: #fff; }
.newsletter .modulo-nota { color: #777; }
.newsletter .modulo-nota a { color: #919191; }
.piede .modulo-esito { border-width: 1px; font-size: 13px; line-height: 19px; }
.piede .modulo-esito.ok { color: #9be09f; }
.piede .modulo-esito.errore { color: #ffd666; }
.barra-fondo { background: #161616; color: #f4f4f4; font-size: 12px; line-height: 21px; }
.barra-fondo-in { display: flex; align-items: center; gap: 15px; min-height: 60px; padding-top: 10px; padding-bottom: 10px; }
.logo-fondo img { width: 150px; display: block; }
.copyright { flex: 1; }
.barra-fondo a { color: #f4f4f4; text-decoration: none; }
.link-legali { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 18px; }
.link-legali a, .link-legali button { color: #f4f4f4; font-size: 12px; }
.link-legali button { background: none; border: 0; padding: 0; cursor: pointer; }
.link-legali button:hover, .barra-fondo a:hover { text-decoration: underline; color: #fff; }

.torna-su { position: fixed; bottom: 20px; right: 20px; width: 40px; height: 40px; border-radius: 5px; background: rgba(0, 0, 0, .2); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 16px; opacity: 0; pointer-events: none; transition: opacity .3s; z-index: 90; }
.torna-su.visibile { opacity: 1; pointer-events: auto; }
.torna-su:hover { background: var(--grad); color: #fff; }
/* con l'assistente in chat (in basso a destra) il pulsante "torna su" sale */
body.con-chat .torna-su { bottom: 90px; }

/* ---------- banner cookie (compatto) ---------- */
.cookie-banner { position: fixed; bottom: 20px; left: 20px; z-index: 400; width: min(400px, calc(100vw - 40px)); background: #fff; color: #444; border-radius: 6px; box-shadow: 0 4px 25px rgba(0, 0, 0, .25); padding: 14px 16px 12px; font-size: 13px; line-height: 18px; }
.cookie-banner[hidden] { display: none; }
.cb-titolo { font-weight: 700; font-size: 14px; color: #222; margin: 0 0 4px; padding-right: 26px; }
.cb-testo { margin: 0 0 10px; }
.cb-chiudi { position: absolute; top: 10px; right: 10px; background: none; border: 0; color: #888; font-size: 16px; cursor: pointer; padding: 4px; line-height: 0; }
.cb-pannello { border-top: 1px solid #eee; padding-top: 10px; margin-bottom: 12px; }
.cb-pannello[hidden] { display: none; }
.cb-cat { display: flex; gap: 8px; align-items: center; padding: 4px 0; cursor: pointer; }
.cb-cat input { accent-color: var(--rosso); width: 16px; height: 16px; flex: none; }
.cb-pulsanti { display: flex; flex-wrap: wrap; gap: 8px; }
.cb-btn { flex: 1 1 auto; border: 1px solid var(--rosso); background: #fff; color: var(--rosso); border-radius: 4px; padding: 6px 10px; font-size: 13px; cursor: pointer; }
.cb-btn[hidden] { display: none; }
.cb-btn:hover { background: #fbeeee; }
.cb-primario { background: var(--rosso); color: #fff; }
.cb-primario:hover { background: var(--rosso-chiaro); }
.cookie-riapri { position: fixed; bottom: 20px; left: 20px; z-index: 90; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; color: var(--rosso); box-shadow: 0 2px 10px rgba(0, 0, 0, .2); font-size: 20px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.cookie-riapri[hidden] { display: none; }

/* ---------- lightbox ---------- */
.lightbox { position: fixed; inset: 0; background: rgba(0, 0, 0, .9); z-index: 500; display: flex; align-items: center; justify-content: center; padding: 50px 70px; }
.lightbox[hidden] { display: none; }
.lightbox img { max-width: 100%; max-height: 100%; box-shadow: 0 0 20px rgba(0, 0, 0, .5); }
.lightbox img[hidden], .lb-video[hidden] { display: none; }
.lb-video { width: min(1200px, 100%, calc((100vh - 100px) * 16 / 9)); }
.lb-video .embed { margin: 0; box-shadow: 0 0 20px rgba(0, 0, 0, .5); }
.lb-chiudi, .lb-freccia { position: absolute; background: none; border: 0; color: #fff; cursor: pointer; font-size: 28px; padding: 8px; line-height: 0; }
.lb-chiudi { top: 10px; right: 10px; }
.lb-prec { left: 10px; top: 50%; transform: translateY(-50%); font-size: 34px; }
.lb-succ { right: 10px; top: 50%; transform: translateY(-50%); font-size: 34px; }

/* ---------- responsive ---------- */
@media (max-width: 1200px) {
  .gallery-strip.colonne { --k: var(--n-l); }
  .menu-principale > ul > li > a { font-size: 15px; }
  .logo img { width: 210px; }
  .menu-mini > ul > li > a { padding: 6px 5px; font-size: 13px; }
  .contatti-mini { gap: 12px; font-size: 13px; }
}
@media (max-width: 1050px) {
  .wrap { padding: 0 24px; }
  .menu-principale, .menu-mini, .barra-top .social { display: none; }
  .apri-menu { display: inline-flex; }
  .testata-chiara .apri-menu { color: #fff; }
  .testata-sito.fissa .apri-menu { color: #3a3a3a; }
  .barra-principale-in { min-height: 90px; }
  .logo img { width: 180px; }
  .testata-sito.fissa .logo img { width: 140px; }
  .benefits { grid-template-columns: repeat(3, 1fr); }
  .piede-sedi { grid-template-columns: repeat(2, 1fr); }
  .slide-sopra { font-size: 40px; line-height: 48px; }
  .slide-titolo { font-size: 72px; line-height: 80px; }
  .slide-titolo.piccolo { font-size: 44px; line-height: 52px; }
  .testata-pagina.fancy.fisso { background-attachment: scroll; }
  .correlati ul { grid-template-columns: repeat(2, 1fr); }
  .archivio { grid-template-columns: repeat(2, 1fr); }
  .album-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-strip.colonne { --k: var(--n-t); }
  .gallery-grid.fisse { grid-template-columns: repeat(var(--cols-t, 3), 1fr); }
}
@media (max-width: 778px) {
  body { font-size: 14px; line-height: 23px; }
  .wrap { padding: 0 16px; }
  .g-row, .g-inner { margin: 0; }
  .g-col, .g-inner > .g-col { width: 100%; padding: 0; }
  .g-row.gap { margin: 0 calc(0px - var(--gc)); }
  .g-row.gap > .g-col, .g-row.gap > .g-col:has(> .g-col-in) { width: 100%; padding: var(--gc); }
  .g-row.gap > .g-col + .g-col { margin-top: 0; }
  .g-col-in { padding-left: 16px; padding-right: 16px; }
  .g-col + .g-col { margin-top: 20px; }
  .fascia.stretch > .g-row > .g-col > :is(.gallery-strip, .carosello, .gallery-grid) { margin-left: -16px; margin-right: -16px; }
  .fascia.stretch, .fascia { padding-left: calc(var(--vw50) - 50%) !important; padding-right: calc(var(--vw50) - 50%) !important; }
  h1, .fancy-titolo, .solo-titolo-in h1 { font-size: 30px !important; line-height: 36px !important; }
  h2 { font-size: 28px; line-height: 34px; }
  h3 { font-size: 24px; line-height: 30px; }
  .fancy-sottotitolo { font-size: 18px !important; line-height: 24px !important; }
  .testata-pagina.fancy { min-height: 220px !important; }
  .testata-trasparente .testata-pagina.fancy { min-height: calc(220px + var(--h-testata, 126px)) !important; }
  .album-grid { grid-template-columns: 1fr; gap: 20px; }
  .stretch .news-grid { padding-left: 0; padding-right: 0; }
  .solo-titolo-in { flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px; min-height: 90px; padding: 15px 0; }
  .contatti-mini a:first-child span { display: none; }
  .btn-wa { padding: 0 8px; font-size: 13px; }
  .action-box { flex-direction: column; align-items: flex-start; gap: 10px; }
  .benefits { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
  .news-grid, .archivio, .correlati ul { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: repeat(min(var(--cols, 4), 3), 1fr); }
  .gallery-grid.fisse { grid-template-columns: repeat(var(--cols-vt, 3), 1fr); }
  .gallery-strip.colonne { --k: var(--n-vt); }
  .gallery-strip img { height: min(var(--h, 150px), 160px); }
  .piede-sedi { grid-template-columns: 1fr; gap: 24px; }
  .barra-fondo-in { flex-direction: column; align-items: flex-start; gap: 10px; }
  .link-legali { justify-content: flex-start; }
  .slider { height: 80vh; min-height: 460px; }
  .slide-testo { padding-top: 120px; }
  .slide-sopra { font-size: 26px; line-height: 32px; }
  .slide-titolo { font-size: 46px; line-height: 52px; margin-bottom: 26px; }
  .slide-titolo.piccolo { font-size: 30px; line-height: 36px; }
  .slider-freccia { display: none; }
  .f-l, .f-r { float: none; margin: 0 0 10px; }
  .modulo .one-half { width: 100%; float: none; margin-right: 0; }
  .articolo-nav { flex-direction: column; }
  .articolo-nav a { max-width: none; }
  .lightbox { padding: 50px 10px; }
  .cookie-banner { left: 10px; bottom: 10px; width: calc(100vw - 20px); }
  .embed-mappa { height: 300px; }
}
@media (max-width: 480px) {
  .gallery-grid.fisse { grid-template-columns: repeat(var(--cols-ph, 2), 1fr); }
  .gallery-strip.colonne { --k: var(--n-ph); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
