/*
Theme Name: Bergamo Tecnologie Design
Description: Tema WordPress custom per Bergamo Tecnologie S.r.l. Richiede Advanced Custom Fields (versione gratuita).
Version: 1.0.0
Text Domain: bergamo-tecnologie-template
*/

:root {
    /* Colori */
    --primary-color: #24408f;
    --secondary-color: #1f84c6;
    --tertiary-color: #0e1c3d;
    --quaternary-color: #eff2f6;
    --quinary-color: #55627a;

    --background-color: #ffffff;
    --text-color: #2a3346;
    --border-color: #d8dee8;
    --on-dark-color: #c3cde0;
    --on-dark-strong-color: #ffffff;
    --on-dark-accent-color: #8cc8f0;
    --on-dark-border-color: rgba(255, 255, 255, .16);
    --shadow-color: rgba(14, 28, 61, .12);
    --overlay-color: rgba(14, 28, 61, .9);
    --hero-shade-strong: rgba(14, 28, 61, .88);
    --hero-shade-mid: rgba(14, 28, 61, .55);
    --hero-shade-soft: rgba(14, 28, 61, .15);
    --error-color: #b42318;
    --error-soft-color: #fdf0ef;
    --success-color: #1c7c54;
    --success-soft-color: #edf7f2;

    /* Font */
    --font-primary: "Hanken Grotesk", sans-serif;
    --font-secondary: "Archivo", sans-serif;

    /* Pesi */
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
}

@font-face{font-family:"Hanken Grotesk";src:url("fonts/hanken-grotesk-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Archivo";src:url("fonts/archivo-latin-standard-normal.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap;}
@font-face{font-family:"Archivo";src:url("fonts/archivo-latin-standard-italic.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:italic;font-display:swap;}

/* Utility colore */
.color-primary{color:var(--primary-color);}
.color-secondary{color:var(--secondary-color);}
.color-tertiary{color:var(--tertiary-color);}
.color-quaternary{color:var(--quaternary-color);}
.color-quinary{color:var(--quinary-color);}
.color-on-dark{color:var(--on-dark-color);}
.color-on-dark-strong{color:var(--on-dark-strong-color);}
.bg-primary{background-color:var(--primary-color) !important;}
.bg-secondary{background-color:var(--secondary-color) !important;}
.bg-tertiary{background-color:var(--tertiary-color) !important;}
.bg-quaternary{background-color:var(--quaternary-color) !important;}
.bg-quinary{background-color:var(--quinary-color) !important;}

/* Padding */
.py-6{padding-top:5rem;padding-bottom:5rem;}
.px-6{padding-left:5rem;padding-right:5rem;}
.pt-6{padding-top:5rem;}
.pb-6{padding-bottom:5rem;}
.pe-6{padding-right:5rem;}
.ps-6{padding-left:5rem;}
.pt-7{padding-top:6rem;}
.py-7{padding-top:6rem;padding-bottom:6rem;}
.py-8{padding-top:7rem;padding-bottom:7rem;}
.pt-9{padding-top:8rem;}
.pt-10{padding-top:9rem;}
.mt-6{margin-top:5rem;}
@media (max-width:991.98px){.py-6{padding-top:3.5rem;padding-bottom:3.5rem;}.px-6{padding-left:1.5rem;padding-right:1.5rem;}.pt-6{padding-top:3.5rem;}.pb-6{padding-bottom:3.5rem;}.pe-6{padding-right:1.5rem;}.ps-6{padding-left:1.5rem;}.pt-7,.pt-9,.pt-10{padding-top:4rem;}.py-7,.py-8{padding-top:4.5rem;padding-bottom:4.5rem;}.mt-6{margin-top:3.5rem;}}

/* Base */
html{scroll-behavior:smooth;scroll-padding-top:6rem;}
body{font-family:var(--font-primary);font-weight:var(--font-weight-regular);font-size:1.0625rem;line-height:1.65;color:var(--text-color);background-color:var(--background-color);}
h1,h2,h3,h4,h5,h6{font-family:var(--font-secondary);font-weight:var(--font-weight-medium);color:var(--tertiary-color);letter-spacing:-.015em;}
.bg-tertiary h1,.bg-tertiary h2,.bg-tertiary h3,.bg-primary h2{color:var(--on-dark-strong-color);}
a{color:var(--primary-color);}
/* Parole chiave e collegamenti scritti nei campi di testo: grassetto leggero e link sottolineato, leggibili su fondo chiaro e scuro. */
main p strong,main li strong,.content-text strong{font-weight:var(--font-weight-semibold);}
main p a:not([class]),main li > p a:not([class]),.content-text a:not([class]){color:var(--primary-color);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;transition:text-decoration-color .2s ease,color .2s ease;}
main p a:not([class]):hover,.content-text a:not([class]):hover{color:var(--secondary-color);}
.color-on-dark p strong,.color-on-dark p a:not([class]){color:var(--on-dark-strong-color);}
.color-on-dark p a:not([class]):hover{color:var(--on-dark-accent-color);}
a:focus-visible,button:focus-visible{outline:3px solid var(--secondary-color);outline-offset:3px;box-shadow:none;}
main:focus{outline:0;}
.lead{font-size:1.1875rem;font-weight:var(--font-weight-regular);line-height:1.6;}
.skip-link{position:absolute;top:.5rem;left:.5rem;z-index:1100;padding:.5rem 1rem;background-color:var(--background-color);}

/* Pulsanti: variabili di Bootstrap allineate alla palette */
.btn{--bs-btn-border-radius:0;--bs-btn-font-weight:var(--font-weight-medium);transition:color .25s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .25s ease;}
.btn-lg{--bs-btn-padding-x:1.75rem;--bs-btn-padding-y:.875rem;--bs-btn-font-size:1rem;--bs-btn-border-radius:0;}
.btn-primary{--bs-btn-bg:var(--primary-color);--bs-btn-border-color:var(--primary-color);--bs-btn-hover-bg:var(--tertiary-color);--bs-btn-hover-border-color:var(--tertiary-color);--bs-btn-active-bg:var(--tertiary-color);--bs-btn-active-border-color:var(--tertiary-color);}
.btn-outline-primary{--bs-btn-color:var(--primary-color);--bs-btn-border-color:var(--primary-color);--bs-btn-hover-bg:var(--primary-color);--bs-btn-hover-border-color:var(--primary-color);--bs-btn-active-bg:var(--primary-color);--bs-btn-active-border-color:var(--primary-color);}
.btn-light{--bs-btn-color:var(--primary-color);--bs-btn-bg:var(--background-color);--bs-btn-border-color:var(--background-color);--bs-btn-hover-bg:var(--quaternary-color);--bs-btn-hover-border-color:var(--quaternary-color);--bs-btn-hover-color:var(--tertiary-color);}
.btn .bi{display:inline-block;margin-left:.5rem;transition:transform .25s ease;}
@media (hover:hover){.btn:hover{transform:translateY(-2px);box-shadow:0 .5rem 1.25rem var(--shadow-color);}.btn:hover .bi-arrow-right{transform:translateX(.3125rem);}.btn:hover .bi-arrow-left{transform:translateX(-.3125rem);}}
.btn:active{transform:none;}
.link-arrow{font-weight:var(--font-weight-medium);color:var(--primary-color);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.125rem;}
.link-arrow .bi{display:inline-block;margin-left:.375rem;transition:transform .25s ease;}
.link-arrow:hover .bi,.solution-card:hover .link-arrow .bi{transform:translateX(.25rem);}
.link-arrow-light{color:var(--on-dark-strong-color);}
.link-arrow-light:hover{color:var(--on-dark-accent-color);}

/* Titoli di sezione: il corsivo leggero riprende il logotipo */
.section-label{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--primary-color);}
.bg-tertiary .section-label{color:var(--on-dark-accent-color);}
.section-title{font-size:clamp(2rem,1.45rem + 2.1vw,3.25rem);line-height:1.1;}
.section-title em,.hero-title em{font-weight:300;font-style:italic;color:var(--primary-color);}
.bg-tertiary .section-title em{color:var(--on-dark-accent-color);}
.bg-primary .section-title em{color:var(--on-dark-strong-color);}
.card-title-lg{font-size:1.5rem;line-height:1.2;}

/* Header */
.site-header{border-bottom:1px solid var(--border-color);}
.site-header .navbar{--bs-navbar-padding-y:.875rem;}
.site-logo{display:block;height:44px;width:auto;}
.nav-link{--bs-nav-link-color:var(--tertiary-color);--bs-nav-link-hover-color:var(--primary-color);--bs-nav-link-font-weight:var(--font-weight-medium);--bs-navbar-active-color:var(--primary-color);background:none;border:0;}
.navbar-nav .nav-link:focus-visible{outline:3px solid var(--secondary-color);outline-offset:3px;box-shadow:none;}
.navbar-nav .nav-link.active{color:var(--primary-color);box-shadow:inset 0 -2px 0 var(--primary-color);}
.dropdown-menu{--bs-dropdown-border-color:var(--border-color);--bs-dropdown-link-active-bg:var(--primary-color);--bs-dropdown-link-hover-bg:var(--quaternary-color);--bs-dropdown-padding-y:.5rem;--bs-dropdown-item-padding-y:.5rem;}
@media (max-width:1199.98px){.site-logo{height:38px;}}

/* Menu su smartphone: pannello laterale da destra, velo blu sulla pagina */
@media (max-width:1199.98px){
.menu-panel{--bs-offcanvas-width:min(86vw,26rem);--bs-offcanvas-bg:var(--background-color);--bs-offcanvas-padding-x:2rem;--bs-offcanvas-padding-y:1.5rem;--bs-offcanvas-transition:transform .45s cubic-bezier(.2,.7,.2,1);--bs-offcanvas-border-width:0;box-shadow:-1.5rem 0 3rem var(--shadow-color);}
.site-header.menu-open{z-index:1046;}
.site-header::before{content:"";position:fixed;inset:0;z-index:1;background-color:var(--tertiary-color);opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s;}
.site-header.menu-open::before{opacity:.6;visibility:visible;}
.site-header.menu-closing::before{opacity:0;}
.menu-panel-header{padding-top:1.75rem;padding-bottom:1rem;}
.menu-panel-title{display:flex;align-items:center;gap:1.25rem;font-size:.8125rem;font-weight:var(--font-weight-medium);letter-spacing:.2em;text-transform:uppercase;color:var(--tertiary-color);}
.menu-panel-title::before{content:"";width:3.5rem;height:1px;background-color:var(--primary-color);}
.menu-panel-body{padding-top:1rem;}
.menu-panel .navbar-nav > .nav-item{border-bottom:1px solid var(--border-color);}
.menu-panel .navbar-nav .nav-link{padding:1.125rem 0;font-family:var(--font-secondary);font-size:1.3125rem;}
.menu-panel .navbar-nav .nav-link.active{box-shadow:none;color:var(--primary-color);}
.menu-panel .dropdown-menu{padding:0 0 1rem;border:0;background:none;}
.menu-panel .mega-link,.menu-panel .dropdown-item{padding:.5rem 0 .5rem 1rem;font-size:1.0625rem;border-left:2px solid var(--border-color);}
.menu-panel-contacts{margin-top:2rem;font-size:.9375rem;}
.menu-panel-contacts .contact-label{display:block;font-size:.8125rem;color:var(--quinary-color);}
.menu-panel-contact{color:var(--tertiary-color);font-weight:var(--font-weight-medium);text-decoration:none;}
.menu-panel.showing .navbar-nav > .nav-item,.menu-panel.show .navbar-nav > .nav-item{animation:bt-fade-up .5s ease both;}
.menu-panel .navbar-nav > .nav-item:nth-child(2){animation-delay:.06s;}
.menu-panel .navbar-nav > .nav-item:nth-child(3){animation-delay:.12s;}
.menu-panel .navbar-nav > .nav-item:nth-child(4){animation-delay:.18s;}
.menu-panel .navbar-nav > .nav-item:nth-child(n+5){animation-delay:.24s;}
}
/* Megamenu: pannello a tutta larghezza su desktop, elenco semplice su smartphone */
.mega-link{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;color:var(--tertiary-color);text-decoration:none;font-weight:var(--font-weight-medium);}
.mega-link:hover,.mega-link.active{color:var(--primary-color);}
@media (min-width:1200px){
.dropdown-mega{position:static;}
.mega-menu,.mega-menu[data-bs-popper]{left:0;right:0;width:100%;margin-top:0;padding:3rem 0;border:0;border-top:1px solid var(--border-color);box-shadow:0 1.5rem 3rem var(--shadow-color);}
.mega-menu.show{animation:bt-mega-in .25s ease both;}
.mega-intro{padding-right:3rem;border-right:1px solid var(--border-color);}
.mega-title{font-family:var(--font-secondary);font-size:1.75rem;line-height:1.15;color:var(--tertiary-color);}
.mega-list{border-top:1px solid var(--border-color);}
.mega-link{padding:1.125rem 1rem 1.125rem 0;font-family:var(--font-secondary);font-size:1.1875rem;border-bottom:1px solid var(--border-color);transition:color .25s ease,padding .3s ease;}
.mega-link.is-active{color:var(--primary-color);padding-left:1rem;box-shadow:inset 2px 0 0 var(--primary-color);}
.mega-num{min-width:1.75rem;font-style:italic;font-weight:300;font-size:.9375rem;color:var(--secondary-color);}
.mega-link .bi{margin-left:auto;font-size:.875rem;opacity:0;transform:translateX(-.25rem);transition:opacity .25s ease,transform .25s ease;}
.mega-link.is-active .bi{opacity:1;transform:none;}
.mega-previews{position:relative;}
.mega-preview{position:absolute;inset:0 calc(var(--bs-gutter-x) * .5);opacity:0;visibility:hidden;transform:translateY(.5rem);transition:opacity .3s ease,transform .3s ease,visibility .3s;}
.mega-preview{display:flex;align-items:flex-start;gap:1.5rem;}
.mega-preview.is-active{position:relative;inset:auto;opacity:1;visibility:visible;transform:none;}
.mega-preview-media{flex:0 0 48%;aspect-ratio:1/1;}
.mega-preview-text{flex:1 1 auto;min-width:0;}
.mega-preview-title{font-family:var(--font-secondary);font-size:1.25rem;color:var(--tertiary-color);}
}
@keyframes bt-mega-in{from{opacity:0;transform:translateY(-.5rem);}to{opacity:1;transform:none;}}

/* Hero */
.hero-title{font-size:clamp(2.375rem,1.7rem + 2.7vw,4rem);line-height:1.05;letter-spacing:-.025em;}
.hero-text{padding-top:3.5rem;padding-bottom:3.5rem;}
.title-word{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .1em .16em 0;margin:0 -.1em -.16em 0;}
.title-word-inner{display:inline-block;animation:bt-word-rise .8s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--word-start,0s) + var(--word-delay,0s));}
.title-word-1{--word-delay:.1s;}
.title-word-2{--word-delay:.17s;}
.title-word-3{--word-delay:.24s;}
.title-word-4{--word-delay:.31s;}
.title-word-5{--word-delay:.38s;}
.title-word-6{--word-delay:.45s;}
.title-word-7{--word-delay:.52s;}
.title-word-8{--word-delay:.59s;}
.title-word-9{--word-delay:.66s;}
.title-word-10{--word-delay:.73s;}
.title-word-11{--word-delay:.8s;}
.title-word-12{--word-delay:.87s;}
.hero-fade{animation:bt-fade-up .7s ease both;}
.hero-fade-2{animation-delay:.85s;}
.hero-fade-3{animation-delay:1s;}
@keyframes bt-word-rise{from{opacity:0;transform:translateY(105%);}to{opacity:1;transform:none;}}
@keyframes bt-fade-up{from{opacity:0;transform:translateY(.75rem);}to{opacity:1;transform:none;}}
.hero-image{display:block;width:100%;height:100%;object-fit:cover;}
.hero-media{position:relative;margin:0;aspect-ratio:4/3;}
.hero-slider,.hero-slider .swiper-wrapper{height:100%;}
.hero-slide{position:relative;height:100%;margin:0;overflow:hidden;background-color:var(--quaternary-color);}
@keyframes bt-hero-progress{from{transform:scaleX(0);}to{transform:scaleX(1);}}
.is-animated .hero-bullets .swiper-pagination-bullet-active::after{animation:bt-hero-progress 7.2s linear both;}
.is-animated:not(.is-started) .hero-bullets .swiper-pagination-bullet-active::after{animation-delay:-1.2s;}
.is-paused .hero-bullets .swiper-pagination-bullet-active::after{animation-play-state:paused;}
.hero-caption{position:absolute;right:0;bottom:0;padding:.5rem 1rem;color:var(--on-dark-strong-color);background-color:var(--tertiary-color);}
.hero-media-slider .hero-caption{max-width:calc(100% - 9.25rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hero-controls{position:absolute;left:0;bottom:0;z-index:2;padding:.25rem .75rem .25rem .25rem;color:var(--on-dark-strong-color);background-color:var(--tertiary-color);}
.hero-toggle{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;color:inherit;background:none;border:0;}
.hero-bullets{--swiper-pagination-bullet-horizontal-gap:0;}
.hero-bullets .swiper-pagination-bullet{position:relative;width:1.25rem;height:1.5rem;margin:0;border-radius:0;background:none;opacity:1;cursor:pointer;}
.hero-bullets .swiper-pagination-bullet::before,.hero-bullets .swiper-pagination-bullet::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background-color:var(--on-dark-border-color);}
.hero-bullets .swiper-pagination-bullet::after{background-color:var(--on-dark-strong-color);transform:scaleX(0);transform-origin:left;}
.hero-bullets .swiper-pagination-bullet-active::after{transform:scaleX(1);}
@media (min-width:768px){.hero-bullets .swiper-pagination-bullet{width:2rem;}.hero-media-slider .hero-caption{max-width:calc(100% - 12.5rem);}}
@media (min-width:992px){.hero-has-image .hero-media{position:absolute;top:0;right:0;bottom:0;width:calc(50% + 1.5rem);aspect-ratio:auto;}.hero-text{min-height:min(76vh,46rem);padding-top:5rem;padding-bottom:5rem;}}
@media (min-width:1400px){.hero-has-image .hero-media{width:54%;}}

/* Dati */
.data-item{--item-start:1.1s;--word-start:calc(var(--item-start) + var(--item-delay,0s));padding:2rem 1.5rem 2rem 0;border-top:1px solid var(--on-dark-border-color);}
.data-item:nth-child(2){--item-delay:.14s;}
.data-item:nth-child(3){--item-delay:.28s;}
.data-item:nth-child(n+4){--item-delay:.42s;}
.data-item.is-late{--item-start:0s;}
.data-label{animation:bt-fade-up .7s ease both;animation-delay:calc(var(--word-start) + .4s);}
.data-item.is-waiting .title-word-inner,.data-item.is-waiting .data-label{animation-play-state:paused;}
.data-value{font-family:var(--font-secondary);font-size:clamp(1.5rem,1.2rem + 1vw,2.125rem);line-height:1.15;color:var(--on-dark-strong-color);letter-spacing:-.015em;}
@media (min-width:992px){.data-item{padding:2.5rem 2rem;border-top:0;border-left:1px solid var(--on-dark-border-color);}.data-item:first-child{padding-left:0;border-left:0;}}

/* Presentazione */
.intro-media{padding-bottom:2.5rem;}
.intro-image{aspect-ratio:4/5;object-fit:cover;}
.intro-badge{position:absolute;right:-1rem;bottom:0;width:clamp(8.5rem,14vw,11.5rem);height:auto;padding:.75rem;background-color:var(--background-color);box-shadow:0 .75rem 2rem var(--shadow-color);}
.content-text p:last-child{margin-bottom:0;}
.content-text h2{margin-top:3rem;margin-bottom:1rem;font-size:clamp(1.5rem,1.3rem + .8vw,1.875rem);}
.content-text h3{margin-top:2rem;margin-bottom:.75rem;font-size:1.25rem;}
.content-text h2 + h3{margin-top:1.25rem;}
.content-text ul{margin-bottom:1.5rem;padding-left:1.25rem;}
.content-text li{margin-bottom:.5rem;}
.values-list{margin-top:1rem;border-bottom:1px solid var(--border-color);}
.value-item{border-top:1px solid var(--border-color);margin-left:0;margin-right:0;}
.value-item > *{padding-left:0;}
.value-title{font-size:1.0625rem;line-height:1.5;}
@media (max-width:991.98px){.intro-badge{right:.75rem;}}

/* Schede */
.ratio-frame{position:relative;background-color:var(--quaternary-color);}
.ratio-frame-solution{aspect-ratio:4/3;}
.ratio-frame-work{aspect-ratio:4/3;}
.card-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.solution-card:hover .card-image{transform:scale(1.04);}
.product-list li{padding:.5rem 0;font-size:.9375rem;border-top:1px solid var(--border-color);}
.product-list li:last-child{border-bottom:1px solid var(--border-color);}
.work-title{font-size:1.25rem;}

/* Metodo */
.method-step{position:relative;padding-top:1.5rem;border-top:1px solid var(--on-dark-border-color);}
.method-step::before,.method-step::after{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background-color:var(--on-dark-accent-color);transform-origin:left;pointer-events:none;}
.method-step::before{animation:bt-step-line 1.1s cubic-bezier(.4,0,.2,1) both;animation-delay:var(--step-delay,0s);}
.method-step::after{transform:scaleX(0);transition:transform .45s cubic-bezier(.2,.7,.2,1);}
.method-number{font-family:var(--font-secondary);font-weight:300;font-style:italic;font-size:2.75rem;line-height:1;color:var(--on-dark-accent-color);transition:color .3s ease,transform .3s ease;}
.method-item{--word-start:calc(var(--step-delay,0s) + .15s);}
.method-title{--word-start:calc(var(--step-delay,0s) + .3s);}
.method-fade{animation:bt-fade-up .7s ease both;}
.method-fade-1{animation-delay:calc(var(--step-delay,0s) + .55s);}
.method-fade-2{animation-delay:calc(var(--step-delay,0s) + .7s);}
.method-fade-head{animation-delay:.45s;}
.method-head .section-label{animation:bt-fade-up .7s ease both;}
.method-head.is-waiting .title-word-inner,.method-head.is-waiting .method-fade,.method-head.is-waiting .section-label,.method-item.is-waiting .title-word-inner,.method-item.is-waiting .method-fade,.method-item.is-waiting .method-step::before{animation-play-state:paused;}
@keyframes bt-step-line{0%{opacity:1;transform:scaleX(0);}70%{opacity:1;transform:scaleX(1);}100%{opacity:0;transform:scaleX(1);}}
@media (min-width:768px){.method-item:nth-child(even){--step-delay:.2s;}}
@media (min-width:1200px){.method-item:nth-child(2){--step-delay:.3s;}.method-item:nth-child(3){--step-delay:.6s;}.method-item:nth-child(n+4){--step-delay:.9s;}}
@media (hover:hover){.method-step:hover::after{transform:scaleX(1);}.method-step:hover .method-number{color:var(--on-dark-strong-color);transform:translateX(.375rem);}}

/* Realizzazioni */
.container-slider{padding-left:max(calc((100% - 1320px) / 2 + .75rem),.75rem);overflow:hidden;}
@media (max-width:1399.98px){.container-slider{padding-left:max(calc((100% - 1140px) / 2 + .75rem),.75rem);}}
@media (max-width:1199.98px){.container-slider{padding-left:max(calc((100% - 960px) / 2 + .75rem),.75rem);}}
@media (max-width:991.98px){.container-slider{padding-left:max(calc((100% - 720px) / 2 + .75rem),.75rem);}}
@media (max-width:767.98px){.container-slider{padding-left:.75rem;}}
.slider-button{width:3rem;height:3rem;padding:0;}
.slider-button .bi{margin-left:0;}
.slider-button.swiper-button-disabled{opacity:.35;pointer-events:none;}
.slider-button.swiper-button-lock{display:none;}

/* Galleria fotografica: mosaico su desktop, scorrimento orizzontale su smartphone */
.gallery-wrap{max-width:1680px;margin:0 auto;padding:0 .75rem;}
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(11rem,16vw,16.5rem);grid-auto-flow:dense;gap:.75rem;}
.gallery-item{grid-column:span 3;}
.gallery-larga{grid-column:span 6;}
.gallery-alta{grid-row:span 2;}
.gallery-grande{grid-column:span 6;grid-row:span 2;}
.gallery-grid > .reveal:nth-child(4n+2){transition-delay:.08s;}
.gallery-grid > .reveal:nth-child(4n+3){transition-delay:.16s;}
.gallery-grid > .reveal:nth-child(4n){transition-delay:.24s;}
.gallery-figure{position:relative;height:100%;overflow:hidden;background-color:var(--primary-color);}
.gallery-image{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1);}
.gallery-caption{position:absolute;left:0;right:0;bottom:0;padding:3.5rem 1.5rem 1.25rem;color:var(--on-dark-color);background:linear-gradient(180deg,transparent,var(--overlay-color));}
.gallery-place{color:var(--on-dark-accent-color);font-weight:var(--font-weight-medium);}
.gallery-title{font-size:1.25rem;line-height:1.25;color:var(--on-dark-strong-color);}
.gallery-grande .gallery-title{font-size:clamp(1.375rem,1rem + 1vw,1.875rem);}
.gallery-more{display:grid;grid-template-rows:1fr;}
.gallery-more > p{overflow:hidden;padding-top:.5rem;}
@media (hover:hover) and (min-width:768px){.gallery-more{grid-template-rows:0fr;opacity:0;transition:grid-template-rows .45s ease,opacity .35s ease;}.gallery-figure:hover .gallery-more,.gallery-link:focus-visible .gallery-more{grid-template-rows:1fr;opacity:1;}.gallery-figure:hover .gallery-image{transform:scale(1.05);}}
.gallery-link{display:block;height:100%;color:inherit;text-decoration:none;}
.gallery-link:focus-visible{outline-offset:-3px;}
@media (min-width:768px) and (max-width:991.98px){.gallery-grid{grid-template-columns:repeat(6,1fr);}.gallery-grande,.gallery-larga{grid-column:span 6;}}
@media (max-width:767.98px){.gallery-wrap{padding:0;}.gallery-grid{display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 .75rem .5rem;scrollbar-width:none;}.gallery-grid::-webkit-scrollbar{display:none;}.gallery-item{flex:0 0 84%;aspect-ratio:4/5;scroll-snap-align:center;}}

/* Realizzazioni: archivio, filtro, scheda e galleria del dettaglio */
.filter-link{display:inline-block;padding:.5rem 1.125rem;font-size:.9375rem;font-weight:var(--font-weight-medium);color:var(--tertiary-color);text-decoration:none;border:1px solid var(--border-color);transition:color .25s ease,border-color .25s ease,background-color .25s ease;}
.filter-link:hover{color:var(--primary-color);border-color:var(--primary-color);}
.filter-link.is-current,.filter-link.current{color:var(--background-color);background-color:var(--primary-color);border-color:var(--primary-color);}
.work-link{color:inherit;text-decoration:none;transition:color .25s ease;}
.work-card:hover .work-link{color:var(--primary-color);}
.work-card .link-arrow .bi{transition:transform .25s ease;}
.work-card:hover .link-arrow .bi{transform:translateX(.25rem);}
.project-fact{padding:1rem 0;border-top:1px solid var(--border-color);}
.project-fact:last-child{border-bottom:1px solid var(--border-color);}
.project-fact dt{font-weight:var(--font-weight-regular);color:var(--quinary-color);}
.project-fact dd{font-weight:var(--font-weight-medium);color:var(--tertiary-color);}
.gallery-thumb{position:relative;display:block;width:100%;padding:0;background:none;border:0;cursor:zoom-in;}
.gallery-thumb:hover .card-image{transform:scale(1.04);}
.gallery-thumb-icon{position:absolute;right:1rem;bottom:1rem;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;color:var(--tertiary-color);background-color:var(--background-color);opacity:0;transform:translateY(.25rem);transition:opacity .25s ease,transform .25s ease;}
.gallery-thumb:hover .gallery-thumb-icon,.gallery-thumb:focus-visible .gallery-thumb-icon{opacity:1;transform:none;}
.lightbox{--bs-modal-bg:var(--overlay-color);}
.lightbox .modal-content{border:0;border-radius:0;}
.lightbox-image{display:block;max-width:min(100%,1400px);max-height:82vh;width:auto;height:auto;}
.lightbox-caption{color:var(--on-dark-color);text-align:center;}
.lightbox-close{position:absolute;top:1.5rem;right:1.5rem;z-index:2;}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);}
.lightbox-prev{left:1.5rem;}
.lightbox-next{right:1.5rem;}
@media (max-width:767.98px){.lightbox-nav{top:auto;bottom:1.5rem;transform:none;}}

/* Cartina dei progetti */
.map-stage{position:relative;aspect-ratio:1000/1026;}
@media (min-width:992px){.map-stage{max-width:min(100%,84vh);margin-left:auto;}}
.map-stage::before{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,var(--primary-color),transparent 70%);opacity:.3;pointer-events:none;}
.map-image{position:relative;display:block;width:100%;height:100%;animation:bt-map-in 1.1s ease both;}
.map-arcs{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.map-arc{fill:none;stroke:var(--on-dark-accent-color);stroke-width:1.5;opacity:.6;stroke-dasharray:1;animation:bt-arc-draw 1.4s cubic-bezier(.4,0,.2,1) both;animation-delay:.7s;}
.map-arc:nth-child(2){animation-delay:.95s;}
.map-arc:nth-child(3){animation-delay:1.2s;}
.map-arc:nth-child(n+4){animation-delay:1.45s;}
.map-lens-label{position:absolute;left:19.5%;top:62%;transform:translateX(-50%);padding:.125rem .625rem;white-space:nowrap;color:var(--on-dark-strong-color);background-color:var(--tertiary-color);border:1px solid var(--on-dark-accent-color);animation:bt-fade-up .7s ease both;animation-delay:1.1s;}
.map-point{position:absolute;display:block;width:1.5rem;height:1.5rem;margin:-.75rem 0 0 -.75rem;padding:0;background:none;border:0;cursor:pointer;}
.map-point:hover,.map-point:focus-visible,.map-point.is-open,.map-point.is-active{z-index:3;}
.map-point::before,.map-point::after{content:"";position:absolute;left:50%;top:50%;width:1rem;height:1rem;margin:-.5rem 0 0 -.5rem;border:1.5px solid var(--on-dark-strong-color);border-radius:50%;opacity:0;pointer-events:none;}
.map-point.is-active::before{animation:bt-map-burst 1.6s ease-out both;}
.map-point.is-active::after{animation:bt-map-burst 1.6s ease-out .3s both;}
.map-arc-flash{fill:none;stroke:var(--on-dark-strong-color);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;}
.map-arc-flash.is-active{animation:bt-arc-flash 1.6s cubic-bezier(.4,0,.2,1) both;}
.map-hub{position:absolute;left:33.1%;top:34.93%;width:.625rem;height:.625rem;margin:-.3125rem 0 0 -.3125rem;border-radius:50%;background-color:var(--on-dark-accent-color);animation:bt-point-pop .6s cubic-bezier(.2,1.4,.4,1) .6s both;pointer-events:none;}
.map-hub::before,.map-hub::after{content:"";position:absolute;inset:0;border:1px solid var(--on-dark-accent-color);border-radius:50%;animation:bt-map-pulse 3.6s ease-out 1.5s infinite both;}
.map-hub::after{animation-delay:3.3s;}
.map-dot::before{content:"";position:absolute;inset:0;border:1px solid var(--on-dark-accent-color);border-radius:50%;animation:bt-map-pulse 3s ease-out 3.5s infinite both;}
.map-areas{border-bottom:1px solid var(--on-dark-border-color);}
.map-areas li{border-top:1px solid var(--on-dark-border-color);}
.map-area-title{color:var(--on-dark-accent-color);}
.map-fade-2{animation-delay:.6s;}
.map-fade-3{animation-delay:.75s;}
.map-dot{position:absolute;left:50%;top:50%;width:.75rem;height:.75rem;margin:-.375rem 0 0 -.375rem;border-radius:50%;background-color:var(--on-dark-strong-color);box-shadow:0 0 0 3px var(--tertiary-color);animation:bt-point-pop .6s cubic-bezier(.2,1.4,.4,1) both;animation-delay:1.1s;}
.map-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background-color:var(--on-dark-accent-color);animation:bt-map-pulse 3s ease-out 2s infinite both;}
li:nth-child(2) > .map-point .map-dot{animation-delay:1.22s;}
li:nth-child(3) > .map-point .map-dot{animation-delay:1.34s;}
li:nth-child(4) > .map-point .map-dot{animation-delay:1.46s;}
li:nth-child(5) > .map-point .map-dot{animation-delay:1.58s;}
li:nth-child(6) > .map-point .map-dot{animation-delay:1.7s;}
li:nth-child(7) > .map-point .map-dot{animation-delay:1.82s;}
li:nth-child(n+8) > .map-point .map-dot{animation-delay:1.94s;}
li:nth-child(even) > .map-point .map-dot::after{animation-delay:3.4s;}
li:nth-child(3n) > .map-point .map-dot::after{animation-delay:2.7s;}
.map-label{position:absolute;left:50%;bottom:calc(100% + .125rem);padding:.5rem .75rem;text-align:left;line-height:1.3;white-space:nowrap;color:var(--tertiary-color);background-color:var(--background-color);box-shadow:0 .75rem 2rem var(--shadow-color);opacity:0;visibility:hidden;transform:translate(-50%,.375rem);transition:opacity .2s ease,transform .2s ease,visibility .2s;}
.map-point-start .map-label{left:0;transform:translate(0,.375rem);}
.map-point-end .map-label{left:auto;right:0;transform:translate(0,.375rem);}
.map-point-below .map-label{bottom:auto;top:calc(100% + .125rem);}
.map-point.is-open .map-label,.map-point.is-active .map-label,.map-point:focus-visible .map-label{opacity:1;visibility:visible;transform:translate(-50%,0);}
.map-point-start.is-open .map-label,.map-point-end.is-open .map-label,.map-point-start.is-active .map-label,.map-point-end.is-active .map-label,.map-point-start:focus-visible .map-label,.map-point-end:focus-visible .map-label{transform:none;}
.map-head .section-label{animation:bt-fade-up .7s ease both;}
.map-fade{animation:bt-fade-up .7s ease both;animation-delay:.45s;}
.map-head.is-waiting .title-word-inner,.map-head.is-waiting .section-label,.map-head.is-waiting .map-fade,.map-stage.is-waiting .map-image,.map-stage.is-waiting .map-arc,.map-stage.is-waiting .map-lens-label,.map-stage.is-waiting .map-dot,.map-stage.is-waiting .map-dot::after,.map-stage.is-waiting .map-dot::before,.map-stage.is-waiting .map-hub,.map-stage.is-waiting .map-hub::before,.map-stage.is-waiting .map-hub::after,.map-stage.is-offscreen .map-dot::after,.map-stage.is-offscreen .map-dot::before,.map-stage.is-offscreen .map-hub::before,.map-stage.is-offscreen .map-hub::after{animation-play-state:paused;}
@keyframes bt-map-in{from{opacity:0;transform:scale(.97);}to{opacity:1;transform:none;}}
@keyframes bt-arc-draw{from{stroke-dashoffset:1;}to{stroke-dashoffset:0;}}
@keyframes bt-point-pop{from{transform:scale(0);}to{transform:scale(1);}}
@keyframes bt-map-burst{0%{opacity:.9;transform:scale(.6);}100%{opacity:0;transform:scale(4.5);}}
@keyframes bt-arc-flash{0%{stroke-dashoffset:1;opacity:1;}55%{stroke-dashoffset:0;opacity:1;}100%{stroke-dashoffset:0;opacity:0;}}
@keyframes bt-map-pulse{0%{opacity:.7;transform:scale(1);}60%,100%{opacity:0;transform:scale(3.4);}}
@media (hover:hover){.map-point:hover .map-label{opacity:1;visibility:visible;transform:translate(-50%,0);}.map-point-start:hover .map-label,.map-point-end:hover .map-label{transform:none;}}
@media (max-width:767.98px){.map-dot{width:.5625rem;height:.5625rem;margin:-.28125rem 0 0 -.28125rem;box-shadow:0 0 0 2px var(--tertiary-color);}}

/* Pagine soluzione */
.hero-title-page{font-size:clamp(2.25rem,1.6rem + 2.4vw,3.5rem);}
.hero-place{font-size:1.1875rem;font-weight:var(--font-weight-medium);color:var(--tertiary-color);}
.hero-place-label{margin-bottom:.25rem;font-weight:var(--font-weight-regular);color:var(--quinary-color);}
.hero-page-media .hero-image{animation:bt-media-in 1.2s cubic-bezier(.2,.7,.2,1) both;}
@media (min-width:992px){.hero-page .hero-text{min-height:min(70vh,40rem);}}
@keyframes bt-media-in{from{opacity:0;transform:scale(1.05);}to{opacity:1;transform:none;}}
/* Apertura con foto a tutta fascia (campo pag_hero_piena) */
.hero-full{display:flex;flex-direction:column;justify-content:flex-end;min-height:min(92svh,48rem);background-color:var(--tertiary-color);}
.hero-full > .container{z-index:2;}
.hero-full .hero-media{position:absolute;inset:0;width:100%;aspect-ratio:auto;}
.hero-full .hero-page-media::after,.hero-full .hero-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--hero-shade-strong) 0%,var(--hero-shade-mid) 55%,var(--hero-shade-soft) 100%);}
.hero-full .hero-text{padding-top:6rem;padding-bottom:3.5rem;}
.hero-full .hero-title{color:var(--on-dark-strong-color);}
.hero-full .hero-title em{color:var(--on-dark-accent-color);}
.hero-full .section-label{color:var(--on-dark-accent-color);}
.hero-full .lead{color:var(--on-dark-color);}
.hero-full .hero-place{color:var(--on-dark-strong-color);}
.hero-full .hero-place-label{color:var(--on-dark-accent-color);}
.hero-full .breadcrumb{--bs-breadcrumb-divider-color:var(--on-dark-color);--bs-breadcrumb-item-active-color:var(--on-dark-color);}
.hero-full .breadcrumb a{color:var(--on-dark-strong-color);}
/* Slider della home a tutta fascia: velo su ogni foto, didascalia sopra il velo, freccia sopra la riga dei controlli */
.hero-full .hero-slide{background-color:var(--tertiary-color);}
.hero-full .hero-caption{z-index:1;}
.hero-home.hero-full .hero-text{padding-top:3.5rem;}
.hero-home.hero-full.hero-has-scroll .hero-text{padding-bottom:8rem;}
.hero-home .hero-scroll{bottom:3.25rem;}
.hero-full.hero-has-scroll .hero-text{padding-bottom:6.5rem;}
.hero-scroll{position:absolute;left:50%;bottom:1.5rem;z-index:2;display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;margin-left:-1.5rem;color:var(--on-dark-strong-color);border:1px solid var(--on-dark-color);border-radius:50%;text-decoration:none;transition:background-color .3s ease,border-color .3s ease,color .3s ease;animation:bt-fade-up .7s ease 1.3s both;}
.hero-scroll:hover,.hero-scroll:focus-visible{color:var(--tertiary-color);background-color:var(--on-dark-strong-color);border-color:var(--on-dark-strong-color);}
.hero-scroll .bi{font-size:1.25rem;animation:bt-scroll-hint 2s ease-in-out 2s infinite;}
@keyframes bt-scroll-hint{0%,100%{transform:translateY(-3px);}50%{transform:translateY(5px);}}
@media (prefers-reduced-motion:reduce){.hero-scroll .bi{animation:none;}}
@media (min-width:992px){.hero-full{justify-content:center;min-height:min(90vh,52rem);}.hero-full .hero-page-media::after,.hero-full .hero-slide::after{background:linear-gradient(90deg,var(--hero-shade-strong) 0%,var(--hero-shade-mid) 50%,var(--hero-shade-soft) 100%);}.hero-page.hero-full .hero-text,.hero-home.hero-full .hero-text{min-height:0;padding-top:7rem;padding-bottom:7rem;}.hero-scroll{bottom:2.5rem;}}
.breadcrumb{--bs-breadcrumb-margin-bottom:1.5rem;--bs-breadcrumb-divider-color:var(--quinary-color);--bs-breadcrumb-item-active-color:var(--quinary-color);font-size:.875rem;}
.breadcrumb a{color:var(--primary-color);text-decoration:none;}
.breadcrumb a:hover{text-decoration:underline;}
.page-index{position:sticky;top:4.5rem;z-index:1010;background-color:var(--background-color);border-bottom:1px solid var(--border-color);box-shadow:0 .5rem 1.5rem var(--shadow-color);}
@media (max-width:1199.98px){.page-index{top:4.125rem;}}
.admin-bar .page-index{top:calc(4.5rem + 32px);}
@media (max-width:1199.98px){.admin-bar .page-index{top:calc(4.125rem + 32px);}}
@media (max-width:782px){.admin-bar .page-index{top:calc(4.125rem + 46px);}}
@media (max-width:600px){.admin-bar .page-index{top:4.125rem;}}
html:has(.page-index){scroll-padding-top:9rem;}
.page-index-label{color:var(--quinary-color);white-space:nowrap;}
.page-index-list{overflow-x:auto;scrollbar-width:none;}
.page-index-list::-webkit-scrollbar{display:none;}
.page-index-link{display:block;padding:1rem 0;white-space:nowrap;font-size:.9375rem;font-weight:var(--font-weight-medium);color:var(--quinary-color);text-decoration:none;box-shadow:inset 0 -2px 0 transparent;transition:color .25s ease,box-shadow .25s ease;}
.page-index-link:hover{color:var(--primary-color);}
.page-index-link.is-current{color:var(--primary-color);box-shadow:inset 0 -2px 0 var(--primary-color);}
.ratio-frame-wide{aspect-ratio:21/9;}
.ratio-frame-panel{aspect-ratio:16/10;}
.ratio-frame-tall{aspect-ratio:4/5;}
.solution-split-list{border-bottom:1px solid var(--border-color);}
.solution-items > .reveal:nth-child(3n+2),.solution-list > .reveal:nth-child(3n+2){transition-delay:.08s;}
.solution-items > .reveal:nth-child(3n),.solution-list > .reveal:nth-child(3n){transition-delay:.16s;}
.solution-item{position:relative;height:100%;padding:2rem;background-color:var(--background-color);border:1px solid var(--border-color);transition:transform .35s ease,box-shadow .35s ease;}
.solution-item::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background-color:var(--primary-color);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1);}
.solution-item-num{font-family:var(--font-secondary);font-style:italic;font-weight:300;font-size:1.75rem;line-height:1;color:var(--secondary-color);transition:transform .35s ease;}
.solution-item-title{font-size:1.25rem;line-height:1.25;}
.solution-item-media{margin:-2rem -2rem 1.5rem;}
.solution-list-item{height:100%;padding:1.5rem 0;border-top:1px solid var(--border-color);}
.solution-list-title{font-size:1.0625rem;line-height:1.35;}
.solution-list-title::before{content:"";display:inline-block;width:.5rem;height:.5rem;margin-right:.75rem;vertical-align:.15em;background-color:var(--secondary-color);}
.solution-tab{display:flex;align-items:baseline;gap:1rem;width:100%;padding:1.125rem 0;text-align:left;font-family:var(--font-secondary);font-size:1.25rem;color:var(--on-dark-color);background:none;border:0;border-top:1px solid var(--on-dark-border-color);transition:color .25s ease;}
.solution-tab:last-child{border-bottom:1px solid var(--on-dark-border-color);}
.solution-tab-num{min-width:2rem;font-style:italic;font-weight:300;font-size:1rem;color:var(--on-dark-accent-color);}
.solution-tab-name{display:inline-block;transition:transform .3s cubic-bezier(.2,.7,.2,1);}
.solution-tab:hover,.solution-tab.active{color:var(--on-dark-strong-color);}
.solution-tab.active .solution-tab-name{transform:translateX(.5rem);}
.solution-tab:focus-visible{outline-offset:-3px;}
.solution-panel-title{font-size:clamp(1.5rem,1.2rem + 1vw,2rem);color:var(--on-dark-strong-color);}
.solution-tabs .tab-pane{transition:opacity .35s ease,transform .35s ease;}
.solution-tabs .tab-pane:not(.show){transform:translateY(.5rem);}
.solution-tabs .lead{color:var(--on-dark-color);}
.work-card:hover .card-image{transform:scale(1.04);}
.cta-note{color:var(--on-dark-color);}
@media (hover:hover){.solution-item:hover{transform:translateY(-4px);box-shadow:0 1rem 2.5rem var(--shadow-color);}.solution-item:hover::before{transform:scaleX(1);}.solution-item:hover .solution-item-num{transform:translateX(.375rem);}}
@media (max-width:991.98px){.solution-tabs .solution-tab-list{display:none;}.solution-tabs .tab-content > .tab-pane{display:block;opacity:1;transform:none;padding:1.5rem 0;border-top:1px solid var(--on-dark-border-color);}}

/* Invito al contatto */
.bg-primary .lead{color:var(--on-dark-strong-color);}
.contact-label{color:var(--on-dark-color);margin-right:.25rem;}
.cta-link{color:var(--on-dark-strong-color);font-weight:var(--font-weight-medium);}
.cta-link:hover{color:var(--on-dark-accent-color);}

/* Pagina contatti: modulo, separatore e contatto diretto */
.form-panel{padding:2.5rem;border:1px solid var(--border-color);border-top:2px solid var(--primary-color);}
@media (max-width:575.98px){.form-panel{padding:1.5rem;}}
.bt-form .form-label,.bt-form legend{display:block;margin-bottom:.5rem;font-size:.9375rem;font-weight:var(--font-weight-medium);color:var(--tertiary-color);}
.bt-form fieldset{min-width:0;margin:0;padding:0;border:0;}
.bt-form .form-control,.bt-form .form-select{padding:.8125rem 1rem;font-size:1rem;color:var(--text-color);border-color:var(--border-color);border-radius:0;transition:border-color .25s ease,box-shadow .25s ease;}
.bt-form .form-control:hover,.bt-form .form-select:hover{border-color:var(--quinary-color);}
.bt-form .form-control:focus,.bt-form .form-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(36, 64, 143, .15);}
.bt-form textarea.form-control{min-height:9rem;resize:vertical;}
.bt-form .wpcf7-form-control-wrap{position:relative;display:block;}
.bt-form .wpcf7-checkbox,.bt-form .wpcf7-radio{display:flex;flex-wrap:wrap;gap:.5rem;}
.bt-form .wpcf7-checkbox .wpcf7-list-item,.bt-form .wpcf7-radio .wpcf7-list-item{margin:0;}
.bt-form .wpcf7-checkbox label,.bt-form .wpcf7-radio label{position:relative;display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.9375rem;cursor:pointer;border:1px solid var(--border-color);transition:color .25s ease,background-color .25s ease,border-color .25s ease;}
.bt-form .wpcf7-checkbox input,.bt-form .wpcf7-radio input{position:absolute;opacity:0;pointer-events:none;}
.bt-form .wpcf7-checkbox label::before{content:"";width:.875rem;height:.875rem;border:1px solid var(--quinary-color);transition:background-color .25s ease,border-color .25s ease;}
.bt-form .wpcf7-radio label::before{content:"";width:.875rem;height:.875rem;border:1px solid var(--quinary-color);border-radius:50%;transition:background-color .25s ease,border-color .25s ease;}
.bt-form .wpcf7-checkbox label:hover,.bt-form .wpcf7-radio label:hover{border-color:var(--primary-color);}
.bt-form .wpcf7-checkbox label:has(input:checked),.bt-form .wpcf7-radio label:has(input:checked){color:var(--on-dark-strong-color);background-color:var(--primary-color);border-color:var(--primary-color);}
.bt-form .wpcf7-checkbox label:has(input:checked)::before,.bt-form .wpcf7-radio label:has(input:checked)::before{background-color:var(--on-dark-strong-color);border-color:var(--on-dark-strong-color);box-shadow:inset 0 0 0 2px var(--primary-color);}
.bt-form .wpcf7-checkbox label:has(input:focus-visible),.bt-form .wpcf7-radio label:has(input:focus-visible){outline:3px solid var(--secondary-color);outline-offset:2px;}
.bt-form .wpcf7-acceptance .wpcf7-list-item{margin:0;}
.bt-form .wpcf7-acceptance label{display:flex;align-items:flex-start;gap:.75rem;font-size:.9375rem;cursor:pointer;}
.bt-form .wpcf7-acceptance input{flex:0 0 auto;width:1.125rem;height:1.125rem;margin-top:.25rem;accent-color:var(--primary-color);}
.bt-form .wpcf7-not-valid{border-color:var(--error-color);}
.bt-form .wpcf7-not-valid-tip{display:block;margin-top:.375rem;font-size:.875rem;color:var(--error-color);}
.bt-form .wpcf7-response-output{margin:2rem 0 0;padding:1rem 1.25rem;font-size:.9375rem;color:var(--error-color);background-color:var(--error-soft-color);border-left:3px solid var(--error-color);}
.bt-form.sent .wpcf7-response-output{color:var(--success-color);background-color:var(--success-soft-color);border-left-color:var(--success-color);}
.bt-form.init .wpcf7-response-output,.bt-form.resetting .wpcf7-response-output,.bt-form.submitting .wpcf7-response-output{display:none;}
.bt-form [inert]{opacity:.6;}
.bt-form .wpcf7-spinner{visibility:hidden;display:inline-block;width:1.25rem;height:1.25rem;margin-left:1rem;vertical-align:middle;border:2px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:bt-spin .8s linear infinite;}
.bt-form.submitting .wpcf7-spinner{visibility:visible;}
@keyframes bt-spin{to{transform:rotate(360deg);}}
.wpcf7 .screen-reader-response,.bt-trap{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);border:0;}
.wpcf7 .hidden-fields-container{display:none;}
.contact-or{gap:1rem;font-family:var(--font-secondary);font-style:italic;font-weight:300;font-size:1.125rem;color:var(--quinary-color);}
.contact-or::before,.contact-or::after{content:"";flex:1 1 auto;height:1px;background-color:var(--border-color);}
@media (min-width:992px){.contact-or::before,.contact-or::after{width:1px;height:auto;}.contact-panel{position:sticky;top:6.5rem;}}
.contact-panel{padding:2.5rem;}
@media (max-width:575.98px){.contact-panel{padding:1.75rem 1.5rem;}}
.contact-row{padding:1.5rem 0;border-top:1px solid var(--on-dark-border-color);}
.contact-row:last-child{padding-bottom:0;}
.contact-caption{color:var(--on-dark-accent-color);}
.contact-number{display:inline-block;font-family:var(--font-secondary);font-size:clamp(1.5rem,1.3rem + .8vw,1.875rem);line-height:1.2;color:var(--on-dark-strong-color);text-decoration:none;overflow-wrap:anywhere;transition:color .25s ease;}
.contact-number-sm{font-size:1.25rem;}
.contact-number:hover{color:var(--on-dark-accent-color);}
.contact-hour{padding:.375rem 0;}
.map-embed{aspect-ratio:16/10;}
@media (max-width:767.98px){.map-embed{aspect-ratio:4/5;}}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.map-embed-placeholder{position:absolute;inset:0;padding:2rem;background-image:linear-gradient(var(--on-dark-border-color) 1px,transparent 1px),linear-gradient(90deg,var(--on-dark-border-color) 1px,transparent 1px);background-size:3rem 3rem;}
.map-embed-icon{font-size:2.5rem;line-height:1;color:var(--on-dark-accent-color);}
.map-embed-notice{max-width:26rem;}
@media (min-width:992px){.map-embed-fill{aspect-ratio:auto;height:100%;min-height:28rem;}}
.btn-outline-light{--bs-btn-color:var(--on-dark-strong-color);--bs-btn-border-color:var(--on-dark-border-color);--bs-btn-hover-color:var(--tertiary-color);--bs-btn-hover-bg:var(--on-dark-strong-color);--bs-btn-hover-border-color:var(--on-dark-strong-color);--bs-btn-active-color:var(--tertiary-color);--bs-btn-active-bg:var(--on-dark-strong-color);--bs-btn-active-border-color:var(--on-dark-strong-color);}

/* Footer */
.footer-title{font-family:var(--font-secondary);font-weight:var(--font-weight-medium);color:var(--on-dark-strong-color);}
.footer-intro{max-width:26rem;}
.footer-link{color:var(--on-dark-color);text-decoration:none;}
.footer-link:hover{color:var(--on-dark-strong-color);text-decoration:underline;}
.site-footer address strong{color:var(--on-dark-strong-color);}
.footer-bottom{border-top:1px solid var(--on-dark-border-color);}

/* Comparsa al primo scorrimento */
.reveal{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.is-pending{opacity:0;transform:translateY(1.25rem);}
/* !important motivato: annulla ogni animazione residua per chi chiede movimento ridotto */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*,*::before,*::after{animation-duration:.01ms !important;animation-delay:0s !important;transition-duration:.01ms !important;}.map-dot::after,.map-dot::before,.map-hub::before,.map-hub::after{display:none;}}

/* Banner di consenso (plugin Complianz): colori e font del sito tramite le variabili del plugin */
.cmplz-cookiebanner,#cmplz-manage-consent .cmplz-manage-consent{--cmplz_banner_background_color:var(--background-color);--cmplz_banner_border_radius:0;--cmplz_text_color:var(--text-color);--cmplz_hyperlink_color:var(--primary-color);--cmplz_button_accept_background_color:var(--primary-color);--cmplz_button_accept_border_color:var(--primary-color);--cmplz_button_accept_text_color:var(--on-dark-strong-color);--cmplz_button_deny_background_color:var(--primary-color);--cmplz_button_deny_border_color:var(--primary-color);--cmplz_button_deny_text_color:var(--on-dark-strong-color);--cmplz_button_settings_background_color:var(--background-color);--cmplz_button_settings_border_color:var(--primary-color);--cmplz_button_settings_text_color:var(--primary-color);--cmplz_button_border_radius:0;--cmplz_slider_active_color:var(--primary-color);--cmplz_category_header_always_active_color:var(--success-color);--cmplz_text_font_size:13px;--cmplz_link_font_size:13px;--cmplz_button_font_size:14px;font-family:var(--font-primary);}
.cmplz-cookiebanner{box-shadow:0 1.5rem 3rem var(--shadow-color);}
.cmplz-cookiebanner .cmplz-title{font-family:var(--font-secondary);font-weight:var(--font-weight-medium);color:var(--tertiary-color);}
