/* ru.gielle.it - foglio di stile (ricostruzione della grafica The7 originale, LTR) */

/* ---------- font (ospitati localmente, nessuna chiamata a Google) ---------- */
/* font variabili, sottoinsiemi latino e cirillico (il browser scarica solo quelli usati) */
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 300 800; font-display: swap; src: url(../fonts/open-sans-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 300 800; font-display: swap; src: url(../fonts/open-sans.woff2) format("woff2"); 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: "Roboto Condensed"; font-style: normal; font-weight: 300 700; font-display: swap; src: url(../fonts/roboto-condensed-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Roboto Condensed"; font-style: normal; font-weight: 300 700; font-display: swap; src: url(../fonts/roboto-condensed.woff2) format("woff2"); 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: "Raleway"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/raleway-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Raleway"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/raleway.woff2) format("woff2"); 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; }

:root {
  --rosso: #a12b31;
  --rosso-chiaro: #d73e45;
  --rosso-barra: #dd0000;
  --grad: linear-gradient(30deg, #a12b31 0%, #d73e45 100%);
  --testo: #888;
  --titoli: #3a3a3a;
  --sfondo: #f9f9f9;
  --bordo: #e6e6e6;
  --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;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font: 16px/24px var(--font); color: var(--testo); background: var(--sfondo); }
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; }
h1 { font-size: 49px; line-height: 55px; }
h2 { font-size: 36px; line-height: 42px; }
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: 22px; }
strong, b { font-weight: 700; }
button { font: inherit; }
.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 44px; }
.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; }

/* ---------- pulsanti ---------- */
.btn { display: inline-block; 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: 14px; line-height: 20px; padding: 8px 14px; font-family: var(--font); border: 1px solid #e3e3e3; }
.btn-grey:hover { color: #333; background: #e7e7e7; }

/* ---------- barra superiore ---------- */
.testata-sito { position: relative; z-index: 50; }
.barra-top { background: var(--rosso-barra); color: #f4f4f4; font-size: 15px; }
.barra-top a { color: #f4f4f4; }
.barra-top-in { display: flex; align-items: center; justify-content: space-between; min-height: 40px; 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: 14px; }
.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: 8px 9px; font-size: 13px; line-height: 20px; }
.menu-mini > ul > li > a img { width: 16px; height: 16px; }
.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 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; }
.social { display: flex; gap: 6px; }
.social a { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; 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; }
.apri-ricerca { background: none; border: 0; color: #f4f4f4; padding: 4px; cursor: pointer; font-size: 17px; display: inline-flex; }

/* ---------- barra principale ---------- */
.barra-principale { background: #fff; }
.barra-principale-in { display: flex; align-items: center; justify-content: space-between; min-height: 134px; gap: 30px; }
.logo img { width: 260px; height: auto; display: block; }
.menu-principale > ul { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; gap: 0 28px; }
.menu-principale li { position: relative; }
.menu-principale > ul > li > a { display: block; font: 500 16px/24px var(--font-menu); color: #3a3a3a; padding: 4px 0 6px; border-bottom: 1px solid transparent; text-transform: uppercase; }
.menu-principale > ul > li > a:hover { text-decoration: none; color: var(--rosso); }
.menu-principale > ul > li.attiva > a { border-bottom: 2px solid var(--rosso-chiaro); }
.menu-principale .sotto-menu { top: calc(100% + 10px); min-width: 280px; }
.menu-principale .sotto-menu::before { content: ""; position: absolute; top: -10px; left: 0; right: 0; height: 10px; }
.menu-principale .sotto-menu a { font-size: 15px; padding: 9px 20px; }
.apri-menu { display: none; background: none; border: 0; font-size: 30px; color: #3a3a3a; cursor: pointer; padding: 6px; }

/* testata trasparente sopra lo slider della home */
.pagina-home .testata-sito { position: absolute; top: 0; left: 0; right: 0; }
.pagina-home .barra-top { background: rgba(0, 0, 0, .25); }
.pagina-home .barra-principale { background: transparent; }
.pagina-home .menu-principale > ul > li > a { color: #fff; }
.pagina-home .social a { background: rgba(255, 255, 255, .2); color: #fff !important; }

/* testata fissa durante lo scorrimento */
.testata-sito.fissa { position: fixed; top: 0; left: 0; right: 0; box-shadow: 0 0 8px rgba(0, 0, 0, .15); animation: scendi .3s ease; }
.testata-sito.fissa .barra-top { display: none; }
.testata-sito.fissa .barra-principale { background: #fff; }
.testata-sito.fissa .barra-principale-in { min-height: 70px; }
.testata-sito.fissa .logo img { width: 160px; }
.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: 26px; 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 16px/22px var(--font-menu); }
/* 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; }
.apri-sotto { position: absolute; top: 2px; inset-inline-end: 10px; width: 36px; height: 36px; border: 0; background: none; color: #888; font-size: 22px; 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 secondario (Gielle Group, contatti, lingue...) piu' piccolo */
.menu-mobile .menu-mob-secondario > li > a { font-size: 14px; padding-top: 6px; padding-bottom: 6px; }
.menu-mobile .menu-mob-secondario .apri-sotto { top: 0; height: 34px; font-size: 20px; }
.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); }
body.menu-aperto { overflow: hidden; }
body.menu-aperto::after { content: ""; position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 150; }

/* ---------- ricerca ---------- */
.ricerca-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, .9); z-index: 300; display: flex; align-items: center; justify-content: center; padding: 20px; }
.ricerca-overlay[hidden] { display: none; }
.ricerca-overlay form { width: min(700px, 100%); display: flex; align-items: center; gap: 14px; }
.ricerca-overlay input { flex: 1; background: transparent; border: 0; border-bottom: 2px solid #fff; color: #fff; font: 28px/40px var(--font-titoli); padding: 6px 0; outline: none; }
.chiudi-ricerca { background: none; border: 0; color: #fff; font-size: 34px; cursor: pointer; }

/* ---------- 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.12); transition: transform 9s linear; }
.slide.attiva .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/1.1 var(--font-titoli); color: rgba(255, 255, 255, .55); margin: 0; }
.slide-titolo { font: 400 110px/1.05 var(--font); color: #fff; margin: 0 0 40px; }
.slide-titolo.piccolo { font-size: 64px; line-height: 1.5; }
.slide-btn { display: inline-block; border: 1px solid #fff; color: #fff; padding: 6px 22px; font-size: 17px; line-height: 26px; }
.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: 30px; 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.con-immagine { position: relative; display: flex; align-items: center; background-color: #000; background-size: cover; background-repeat: no-repeat; background-attachment: fixed; }
.testata-pagina.con-immagine .wrap { width: 100%; padding-top: 70px; padding-bottom: 70px; text-align: center; }
.testata-pagina.con-immagine h1 { color: #fff; margin: 0; font-size: 49px; line-height: 55px; }
.testata-pagina.solo-titolo { background: #fff; border-bottom: 1px solid #eee; min-height: 120px; display: flex; align-items: center; }
.testata-pagina.solo-titolo .wrap { width: 100%; }
.testata-pagina.solo-titolo h1 { font-size: 36px; line-height: 42px; margin: 0; }

/* ---------- contenuto e griglia ---------- */
.contenuto { padding: 50px 0 50px; }
.pagina-home .contenuto { padding-top: 60px; }
/* come nel tema originale le colonne si dispongono da sinistra a destra */
.g-row { display: flex; flex-wrap: wrap; margin: 0 -22px; }
.g-row::after { content: ""; display: table; clear: both; }
.g-col { padding: 0 22px; min-width: 0; }
.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%; }
.g-inner { margin: 0 -15px; }
.g-inner > .g-col { padding: 0 15px; }
.g-bg { background-size: cover; background-position: center; }
.stripe { position: relative; }
.txt { margin-bottom: 0; }
.txt::after { content: ""; display: table; clear: both; }
.txt ul, .txt ol { margin: 0 0 10px; padding: 0 0 0 20px; }
.txt li { margin-bottom: 6px; }
.txt li > p { margin: 0; }
.txt ul.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: 5px; top: 9px; width: 4px; height: 4px; border-top: 1.5px solid #fff; border-left: 1.5px solid #fff; transform: rotate(-45deg); }
.txt ul.list-divider li { border-bottom: 1px solid rgba(136, 136, 136, .15); padding-top: 9px; margin-bottom: 0; }
.txt ul.list-divider li:last-child { border-bottom: 0; }
.txt ol.list-num, .txt ul.list-num { padding-left: 22px; }
.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; }
.sep { border: 0; border-top: 1px solid rgba(136, 136, 136, .2); margin: 10px auto; }
.sep.thick { border-top-width: 3px; border-color: var(--rosso-chiaro); }
.sep.dashed { border-top-style: dashed; }

/* immagini */
.img-single { margin-bottom: 0; }
.img-single img { display: inline-block; }
.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(--titoli); font-size: 16px; line-height: 24px; margin: 4px 0; }
.fancy-sep::before, .fancy-sep::after { content: ""; flex: 1; border-top: 1px solid rgba(136, 136, 136, .2); }
.fancy-sep.pos-l::before, .fancy-sep.pos-r::after { display: none; }
.fancy-sep.dashed { color: #c4c4c4; }
.fancy-sep.dashed::before, .fancy-sep.dashed::after { border-top-style: dashed; border-top-color: rgba(136, 136, 136, .35); }
.fancy-sep.bg span { background: var(--grad); color: #fff; padding: 3px 16px; border-radius: 3px; }
.fancy-sep.small { font-size: 14px; }
.fancy-sep.big { font-size: 18px; line-height: 26px; }

/* 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; }
.teaser-body p { font-size: 15px; line-height: 23px; }

/* 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: 15px; line-height: 22px; color: var(--testo); margin: 0; }
.ab-btn { flex: none; }
.ab-text .paint-accent-color { color: var(--rosso); }

/* fisarmoniche */
.acc-group { margin-bottom: 10px; }
.acc { border: 1px solid #f0f0f0; background: #f8f8f8; border-radius: 5px; margin-bottom: 8px; }
.acc > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 12px 20px; font: 20px/24px var(--font-titoli); color: var(--titoli); }
.acc > summary::-webkit-details-marker { display: none; }
.acc > summary::after { content: "+"; margin-left: auto; font-size: 22px; color: #bbb; }
.acc[open] > summary::after { content: "−"; }
.acc > summary .ico { color: var(--rosso); }
.acc-body { padding: 4px 20px 14px; border-top: 1px solid #f0f0f0; }
.acc-body:empty { display: none; }
.g-col.w-4 .acc > summary, .g-col.w-3 .acc > summary { font-size: 17px; }

/* schede */
.tabs-nav { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 2px solid var(--rosso-chiaro); }
.tabs-nav button { background: #f3f3f3; border: 0; padding: 10px 18px; font: 16px/22px var(--font-titoli); color: var(--titoli); cursor: pointer; border-radius: 4px 4px 0 0; }
.tabs-nav button.on { background: var(--grad); color: #fff; }
.tab-panel { padding: 20px 0 0; }

/* 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; background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%), var(--grad); background-size: 20px 20px, auto; }

/* gallerie */
.gallery-grid { display: grid; grid-template-columns: repeat(var(--cols, 4), 1fr); gap: 4px; }
.gallery-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
/* carosello di foto con frecce (come lo slider del tema originale) */
.carosello { position: relative; }
.gallery-strip { display: grid; grid-auto-flow: column; grid-auto-columns: 225px; gap: 0; 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 a { scroll-snap-align: start; }
.carosello-freccia { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; color: #333; box-shadow: 0 1px 6px rgba(0, 0, 0, .25); font-size: 24px; 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: .55; cursor: default; color: #999; }
.gallery-strip img { width: 225px; height: 150px; object-fit: cover; display: block; }
.gallery-grid a, .gallery-strip a { display: block; overflow: hidden; }
.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: 14px; line-height: 21px; }

/* notizie (pagine eventi e stampa) */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.news-card { background: #fff; box-shadow: 0 0 4px rgba(0, 0, 0, .06); }
.news-img { position: relative; }
.news-img img { width: 100%; display: block; }
.news-date { position: absolute; top: 10px; left: 10px; background: var(--grad); color: #fff; font-size: 12px; padding: 4px 8px; line-height: 16px; }
.news-date b { font-size: 16px; }
.news-body { padding: 15px 20px 10px; }
.news-body h3 { font-size: 20px; line-height: 26px; }
.news-body p { font-size: 14px; line-height: 21px; }
.mini-posts { list-style: none; margin: 0; padding: 0; }
.mini-posts li { display: flex; gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid rgba(136, 136, 136, .15); }
.mini-posts img { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; }
.mini-posts span { display: block; color: var(--titoli); font-size: 14px; line-height: 20px; }
.mini-posts time { font-size: 12px; color: #aaa; }

/* download */
.download-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.download-card { background: #fff; box-shadow: 0 0 4px rgba(0, 0, 0, .06); display: flex; flex-direction: column; }
.download-card img { width: 100%; display: block; aspect-ratio: 469 / 658; object-fit: contain; background: #f2f2f2; }
.download-body { padding: 15px 18px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.download-body h3 { font-size: 18px; line-height: 24px; margin: 0; }
.download-body h3 a { color: var(--titoli); }
.download-body p { font-size: 14px; line-height: 21px; margin: 0; flex: 1; }
.download-body .btn { align-self: flex-start; display: inline-flex; gap: 6px; align-items: center; }

/* contenuti esterni (video, mappe) con consenso */
.embed { position: relative; aspect-ratio: 16 / 9; background: #222; margin-bottom: 15px; }
.embed-mappa { aspect-ratio: auto; height: 300px; }
.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: 14px; line-height: 21px; }

/* ---------- moduli ---------- */
.modulo p { margin-bottom: 12px; }
.modulo label { color: var(--testo); font-size: 15px; }
.modulo input[type=text], .modulo input[type=email], .modulo input[type=tel], .modulo select, .modulo textarea {
  width: 100%; max-width: 100%; background: #fbfcfc; border: 1px solid #e0e1e1; border-radius: 3px; padding: 7px 15px; font: 15px/20px var(--font); color: #555; margin-top: 4px;
}
.modulo input[type=file] { margin-top: 6px; font-size: 14px; max-width: 100%; }
.modulo input:focus, .modulo select:focus, .modulo textarea:focus { outline: 2px solid rgba(215, 62, 69, .35); border-color: var(--rosso-chiaro); }
.modulo .campo-privacy label { font-size: 13px; line-height: 19px; display: flex; gap: 6px; align-items: flex-start; }
.modulo .campo-privacy input { margin-top: 3px; }
.campo-errore { display: block; color: #c00; font-size: 13px; margin-top: 3px; }
.modulo-esito { padding: 10px 14px; margin-bottom: 14px; font-size: 14px; border-radius: 3px; }
.modulo-esito.ok { background: #e8f6ea; color: #24692d; border: 1px solid #b9e2bf; }
.modulo-esito.errore { background: #fdecec; color: #a12b31; border: 1px solid #f3c0c2; }
.hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; opacity: 0; }

/* ---------- testi legali ---------- */
.legale h2 { font-size: 24px; line-height: 30px; margin-top: 30px; }
.legale h3 { font-size: 19px; line-height: 25px; margin-top: 20px; }
.legale .versione-it { margin-top: 50px; padding-top: 30px; border-top: 1px solid var(--bordo); }
.legale table { width: 100%; border-collapse: collapse; margin: 10px 0 20px; font-size: 14px; }
.legale td, .legale th { border: 1px solid var(--bordo); padding: 6px 10px; text-align: inherit; vertical-align: top; }
.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: 15px; line-height: 22px; }
.piede-sedi { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px 44px; padding-top: 50px; padding-bottom: 30px; }
.sede-nome { font: 17px/24px var(--font-titoli); color: #f4f4f4; margin: 0 0 10px; }
.sede-indirizzo { margin: 0 0 10px; }
.sede ul { list-style: none; margin: 0; padding: 0; }
.sede li { margin-bottom: 8px; }
.sede-etichetta { color: #f4f4f4; }
.piede a { color: #b0b0b0; text-decoration: underline; }
.piede a:hover { color: #fff; }
.social-pagina { gap: 8px; margin-top: 6px; }
.social-pagina a { width: 34px; height: 34px; font-size: 17px; background: var(--grad); color: #fff !important; }
.social-pagina a:hover { opacity: .85; }
.piede .social { margin-top: 12px; }
.piede .social a { background: rgba(255, 255, 255, .12); color: #ddd !important; text-decoration: none; width: 26px; height: 26px; }
.barra-fondo { background: #161616; color: #f4f4f4; font-size: 14px; line-height: 21px; }
.barra-fondo-in { display: flex; align-items: center; gap: 30px; min-height: 65px; 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 in basso a destra */
.link-legali { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 18px; }
.link-legali a, .link-legali button { color: #f4f4f4; font-size: 13px; }
.link-legali button { background: none; border: 0; padding: 0; cursor: pointer; }
.link-legali button:hover, .barra-fondo a:hover { text-decoration: underline; }

.torna-su { position: fixed; bottom: 20px; right: 20px; width: 44px; height: 44px; border-radius: 5px; background: rgba(0, 0, 0, .2); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 22px; 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; }

/* ---------- 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: 18px; 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; }
.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: 22px; 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); }
.lb-chiudi, .lb-freccia { position: absolute; background: none; border: 0; color: #fff; cursor: pointer; font-size: 34px; padding: 8px; line-height: 0; }
.lb-chiudi { top: 10px; right: 10px; }
.lb-prec { left: 10px; top: 50%; transform: translateY(-50%); font-size: 46px; }
.lb-succ { right: 10px; top: 50%; transform: translateY(-50%); font-size: 46px; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  .menu-principale > ul { gap: 0 16px; }
  .menu-principale > ul > li > a { font-size: 14px; }
  .logo img { width: 200px; }
  .menu-mini > ul > li > a { padding: 8px 6px; font-size: 12px; }
}
@media (max-width: 960px) {
  .wrap { padding: 0 24px; }
  .menu-principale, .menu-mini, .barra-top .social { display: none; }
  .apri-menu { display: inline-flex; }
  .pagina-home .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; }
  .barra-top-in { min-height: 36px; }
  .contatti-mini { gap: 14px; font-size: 13px; }
  .benefits { grid-template-columns: repeat(3, 1fr); }
  .download-grid { grid-template-columns: repeat(3, 1fr); }
  .piede-sedi { grid-template-columns: repeat(2, 1fr); }
  .slide-sopra { font-size: 40px; }
  .slide-titolo { font-size: 72px; }
  .slide-titolo.piccolo { font-size: 44px; }
  .testata-pagina.con-immagine { background-attachment: scroll; }
}
@media (max-width: 767px) {
  body { font-size: 15px; line-height: 23px; }
  .wrap { padding: 0 16px; }
  .g-row { margin: 0; }
  .g-inner { margin: 0; }
  .g-col, .g-inner > .g-col { width: 100%; padding: 0; }
  .g-col + .g-col { margin-top: 20px; }
  h1, .testata-pagina.con-immagine h1 { font-size: 32px; line-height: 38px; }
  .testata-pagina.solo-titolo h1 { font-size: 28px; line-height: 34px; }
  h3 { font-size: 24px; line-height: 30px; }
  .testata-pagina.con-immagine { min-height: 220px !important; }
  .testata-pagina.con-immagine .wrap { padding-top: 40px; padding-bottom: 40px; }
  .testata-pagina.solo-titolo { min-height: 90px; }
  .contatti-mini a:first-child span { display: none; }
  .apri-ricerca { font-size: 16px; }
  .action-box { flex-direction: column; align-items: flex-start; gap: 10px; }
  .benefits { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
  .news-grid { grid-template-columns: 1fr; }
  .download-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .gallery-grid { grid-template-columns: repeat(min(var(--cols, 4), 3), 1fr); }
  .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; }
  .slide-titolo { font-size: 46px; margin-bottom: 26px; }
  .slide-titolo.piccolo { font-size: 30px; }
  .slider-freccia { display: none; }
  .f-l, .f-r { float: none; margin: 0 0 10px; }
  .lightbox { padding: 50px 10px; }
  .cookie-banner { left: 10px; bottom: 10px; width: calc(100vw - 20px); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
