/* ===========================
   Acquasoft - Pages CSS
   Palette: eredita le variabili da main.css
   =========================== */

/* =====================
   OFFSET PAGINE INTERNE
   ===================== */
.page-hero, .settore-hero, .post-hero,
.search-hero, .archive-header { margin-top: var(--offset); }

/* =====================
   BREADCRUMB
   ===================== */
.breadcrumb { font-size: 13px; color: var(--grey-02); padding: 12px 0; }
.breadcrumb a { color: var(--grey-02); transition: color .2s; }
.breadcrumb a:hover { color: var(--black); }
.breadcrumb span { color: var(--black); }
.breadcrumb--light, .breadcrumb--light a { color: rgba(255,255,255,.65); }
.breadcrumb--light span { color: var(--white); }

/* =====================
   PAGE HERO
   ===================== */
.page-hero { padding: 60px 0; }
.page-hero--dark  { background: var(--primary-blue); }
.page-hero--light { background: var(--grey-04); }
.page-hero .container { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.page-hero-content h1 { font-size: 42px; font-weight: 700; margin-bottom: 16px; line-height: 1.2; }
.page-hero--dark .page-hero-content h1 { color: var(--white); }
.page-hero--dark .page-hero-content p  { color: rgba(255,255,255,.8); }
.page-hero--light .page-hero-content h1 { color: var(--black-true); }
.page-hero-img .img-placeholder { aspect-ratio: 4/3; background: rgba(0,0,0,.1); }

.archive-header.section { padding-top: 48px; padding-bottom: 32px; }
.archive-header h1 { font-size: 48px; font-weight: 700; color: var(--grey-01); margin-top: 31px; }

/* =====================
   HELPERS
   ===================== */
.section-title    { font-size: 36px; font-weight: 700; color: var(--black-true); margin-bottom: 12px; line-height: 1.3; letter-spacing: 0.2px; }
.section-subtitle { color: var(--grey-700); font-weight: 500; font-size: 20px; line-height: 1.3; margin-bottom: 48px; }

.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.two-col--reverse { direction: rtl; }
.two-col--reverse > * { direction: ltr; }
.rounded { border-radius: var(--radius); overflow: hidden; }
img.rounded { display: block; width: 100%; }

.img-placeholder {
    background: var(--grey-04); border-radius: var(--radius);
    display: flex; align-items: center; justify-content: center; min-height: 200px;
}
.img-placeholder--wide { aspect-ratio: 16/7; }
.img-placeholder--lg   { aspect-ratio: 4/3; min-height: 300px; }
.img-placeholder--hero { width: 100%; min-height: 500px; }

/* =====================
   SECTION DARK / QUOTE
   ===================== */
.section-dark { background: var(--primary-blue); color: var(--white); padding: var(--section-gap) 0; }
.section-dark h2 { color: var(--white); font-size: 32px; font-weight: 700; margin-bottom: 40px; }
.section-dark .caratteristica-item strong { color: var(--white); }
.section-dark .caratteristica-item p     { color: rgba(255,255,255,.7); }

.section-quote { background: #2A2D34; padding: 80px 0; }
.section-quote blockquote { max-width: 800px; margin: 0 auto; text-align: center; }
.section-quote blockquote::before { content: '\201C'; font-size: 80px; color: var(--grey-03); line-height: 0; display: block; margin-bottom: 24px; padding-top: 40px; }
.section-quote blockquote p    { font-size: 22px; font-weight: 700; color: var(--white); line-height: 1.5; margin-bottom: 24px; }
.section-quote blockquote cite { font-size: 13px; color: rgba(255,255,255,.55); font-style: normal; }

/* =====================
   CARATTERISTICHE GRID
   ===================== */
.caratteristiche-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.caratteristica-item { display: flex; gap: 16px; align-items: flex-start; }
.caratteristica-item svg { flex-shrink: 0; margin-top: 2px; }
.caratteristica-item strong { display: block; font-size: 15px; font-weight: 700; margin-bottom: 4px; color: var(--black); }
.caratteristica-item p { font-size: 14px; color: var(--grey-02); margin: 0; }

/* =====================
   ACCORDION
   ===================== */
.accordion { display: flex; flex-direction: column; border: 1px solid var(--grey-03); border-radius: var(--radius); overflow: hidden; }
.accordion-item { border-bottom: 1px solid var(--grey-03); }
.accordion-item:last-child { border-bottom: none; }
.accordion-item summary {
    padding: 16px 20px; font-weight: 700; font-size: 15px; cursor: pointer;
    display: flex; justify-content: space-between; align-items: center;
    list-style: none; background: var(--white); transition: background .2s;
    color: var(--black);
}
.accordion-item summary:hover { background: var(--grey-05); }
.accordion-item summary::-webkit-details-marker { display: none; }
.accordion-item summary::after { content: '+'; font-size: 20px; color: var(--grey-01); font-weight: 400; }
.accordion-item[open] summary::after { content: '-'; }
.accordion-body { padding: 14px 20px 18px; font-size: 14px; color: var(--grey-700); font-weight: 500; line-height: 1.7; background: var(--grey-05); }
.accordion-group { margin-bottom: 60px; }
.accordion-group h3, .accordion-group-title { font-size: 22px; font-weight: 700; color: var(--black-true); margin-bottom: 24px; }

/* =====================
   AZIENDA
   ===================== */
.azienda-intro { display: grid; grid-template-columns: 1fr 300px; gap: 60px; align-items: start; }
.azienda-intro-text p { font-size: 16px; line-height: 1.8; color: var(--grey-700); font-weight: 500; }
.azienda-stats { display: flex; flex-direction: column; gap: 28px; }
.azienda-stat .stat-number { font-size: 48px; }

.valori-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.valore-card { background: var(--white); border: 1px solid var(--grey-03); border-radius: var(--radius); padding: 28px; }
.valore-icon, .valore-icon--placeholder { width: 48px; height: 48px; background: var(--grey-04); border-radius: 50%; margin-bottom: 16px; }
.valore-card h3 { font-size: 16px; font-weight: 700; color: var(--black-true); margin-bottom: 8px; }
.valore-card p  { font-size: 14px; color: var(--grey-02); }

.numeri-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; text-align: center; }
.numero-val   { display: block; font-size: 52px; font-weight: 700; color: var(--black); line-height: 1; }
.numero-label { font-size: 14px; color: var(--grey-02); margin-top: 8px; display: block; }

.cert-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 40px; }
.cert-item { text-align: center; }
.cert-item p { font-size: 13px; color: var(--grey-02); margin-top: 8px; }

/* =====================
   SERVIZI PAGE — Figma layout
   ===================== */

/* Image helpers */
.sv-img-rounded { width: 100%; display: block; border-radius: 16px; }
.sv-img-ph {
    background: var(--grey-04); border-radius: 16px;
    min-height: 440px; width: 100%;
    display: flex; align-items: center; justify-content: center;
}

/* Sticky subnav Servizi (Figma 175:3852 — stesso pattern .az-subnav, animazione condivisa con JS) */
.sv-subnav {
    position: sticky; top: var(--offset); z-index: 900;
    background: var(--white); height: 80px;
    /* niente border-bottom: la linea-base grigia è disegnata sul -inner allo STESSO baseline di
       marker/progress (vedi .sv-subnav-inner) così cyan e marker la SOVRAPPONGONO (stile dormakaba),
       e non resta una linea grigia visibile sotto la barra attiva su sfondi colorati. */
    transition: top .3s;
}
/* scroll-margin = SOLO subnav (l'header si nasconde allo scroll): la sezione atterra a ~84 (subnav 80 + 4),
   come i click on-page, così la scrollspy (line = subnavH+40) evidenzia la voce GIUSTA (era off-by-one:
   atterrava a offset+84=210 ma la scrollspy usa subnav-only → evidenziava la voce precedente). */
.page-servizi .section,
.page-servizi .sv-service-section,
.page-servizi .sv-leg-section { scroll-margin-top: 84px; }
.sv-subnav.topbar-hidden    { top: var(--header-h); }
.sv-subnav.is-header-hidden { top: 0; }
.sv-subnav-inner {
    height: 100%; display: flex; align-items: stretch;
    /* LEFT-ALIGNED come l'az-subnav (richiesta designer Figma 175:3852): niente più centratura
       (era max-width 1440 + margin auto stile hotel-page). Inner a tutta larghezza, voci ancorate
       a SINISTRA dal padding 54 (Figma Frame 45 x=54 → prima voce 86 con list pad 32). Le voci sv
       sono lunghe → sbordano a destra → fade + chevron destro (come nel design). Frecce absolute
       (overlay, non consumano larghezza) + sfumature ai bordi INVARIATE (richiesta utente). */
    padding: 0 0 0 54px;
    position: relative;
    /* Linea-base grigia a tutta larghezza del container, ANCORATA al fondo (stesso y di marker/progress
       a bottom:0). Sta dietro a cyan/marker (background dell'inner) → le linee colorate la sovrappongono. */
    background: linear-gradient(var(--grey-50), var(--grey-50)) left bottom / 100% 1px no-repeat;
}
.sv-subnav-arrow {
    position: absolute; top: 0; bottom: 0; width: 44px;
    display: flex; align-items: center; justify-content: center;
    background: var(--white); border: none; cursor: pointer;
    color: var(--primary-blue);
    z-index: 3;
    transition: color .15s, opacity .3s ease, transform .3s ease;
}
.sv-subnav-arrow--left  { left: 0; }
.sv-subnav-arrow--right { right: 0; }
/* sfumatura morbida sulle ultime/prime voci (stile dormakaba): gradiente largo bianco→trasparente
   sul lato interno della freccia, così il testo svanisce dolcemente prima del chevron. */
.sv-subnav-arrow::after {
    content: ''; position: absolute;
    top: 0; bottom: 0; width: 120px;
    pointer-events: none;
}
.sv-subnav-arrow--left::after  { left: 100%; background: linear-gradient(90deg, var(--white) 28%, transparent); }
.sv-subnav-arrow--right::after { right: 100%; background: linear-gradient(270deg, var(--white) 28%, transparent); }
.sv-subnav-arrow svg { display: block; transition: transform .2s ease; }
.sv-subnav-arrow:hover { color: var(--primary-cyan); }
.sv-subnav-arrow--left:hover svg  { transform: translateX(-4px); }
.sv-subnav-arrow--right:hover svg { transform: translateX(4px); }
/* frecce: compaiono/scompaiono con fade + slide-in quando ci sono altre voci da scorrere */
.sv-subnav-arrow.is-edge { opacity: 0; pointer-events: none; }
.sv-subnav-arrow--left.is-edge  { transform: translateX(-8px); }
.sv-subnav-arrow--right.is-edge { transform: translateX(8px); }
.sv-subnav-list {
    flex: 1; display: flex; align-items: stretch;
    overflow-x: auto; list-style: none; margin: 0;
    padding: 0 0 0 32px;   /* Figma 175:3853 list px-[32px], ma solo a SX → prima voce 54+32=86; a DX 0 per far entrare le voci */
    gap: 64px;
    position: relative;   /* contesto per .subnav-marker (underline scorrevole) */
    /* dormakaba: scroll-snap → scrollando/cliccando le voci fanno snap al centro.
       'proximity' (non mandatory) così al load la lista resta a inizio (Interventi a sinistra). */
    scroll-snap-type: x proximity;
}
.sv-subnav-item { scroll-snap-align: center; }
/* Underline scorrevole stile jumpmark dormakaba: indicatore unico animato sotto la voce attiva.
   Posizionato dentro la lista (scrolla col contenuto). Posizione/larghezza gestite via JS. */
.subnav-marker {
    position: absolute; left: 0; bottom: 0;
    height: 4px; width: 0; transform: translateX(0);
    background: var(--primary-cyan); border-radius: 2px;
    opacity: 0; pointer-events: none;
    transition: transform .35s cubic-bezier(.4,0,.2,1), width .35s cubic-bezier(.4,0,.2,1), opacity .2s ease;
}
.subnav-marker.is-visible { opacity: 1; }
.sv-subnav-item { display: flex; align-items: stretch; flex-shrink: 0; }
.sv-subnav-link {
    font-family: var(--font-base);
    font-size: 16px; font-weight: 500; color: var(--black-true);
    line-height: 1.4; letter-spacing: 0;
    white-space: nowrap;
    padding: 0; display: flex; align-items: center;   /* no padding: gap 64 puro tra i testi (Figma) */
    border-bottom: 4px solid transparent;
    margin-bottom: -1px;
    text-decoration: none;
    position: relative;
    transition: color .2s ease, font-weight .2s ease, border-color .2s ease;
}
/* Servizi — stile subnav allineato a Figma 175:3852 (= come az-subnav):
   - voce ATTIVA (scrollspy) → grassetto + barra cyan 4px che SCORRE fra le voci (.subnav-marker animato).
   - HOVER/FOCUS → solo cambio colore primary-blue (come az). NIENTE underline nero (rimosso su
     richiesta designer: prima cliccando una voce restava sottolineata in nero, non è nel design). */
.sv-subnav .subnav-marker { display: block; height: 4px; border-radius: 0; z-index: 2; }
.sv-subnav-link:hover,
.sv-subnav-link:focus-visible {
    color: var(--primary-blue);
}
.sv-subnav-link.is-current {
    color: var(--black-true);
    font-weight: 700;
}
/* Linea cyan di "progresso" da sinistra fino alla voce attiva (Figma 175:3864 Rectangle 10):
   colore cyan (diverso dal grey-50 del divider che resta dopo la voce attiva), spessore 2px.
   La larghezza --sv-progress è impostata dal JS = offsetLeft della voce attiva. */
.sv-subnav-list::before {
    content: '';
    position: absolute;
    left: 0; bottom: 0;          /* dentro il padding-box della lista: NON tagliato dall'overflow */
    height: 2px;                 /* linea più sottile della barra attiva (cyan, condivide il bottom) */
    width: var(--sv-progress, 0px);
    background: var(--primary-cyan);
    pointer-events: none;
    z-index: 1;
    transition: width .35s cubic-bezier(.4,0,.2,1);   /* SYNC col marker (.35s): la giunzione barra/linea resta coincidente, niente gap transitorio */
}
/* Subnav servizi MOBILE — deve comportarsi come .az-subnav (Figma 318:13750): h40, no frecce, link 14, active cyan 3px */
@media (max-width: 768px) {
    .sv-subnav { height: 40px; }
    .sv-subnav.topbar-hidden, .sv-subnav.is-header-hidden { height: 40px; top: var(--offset); position: sticky; }
    .sv-subnav-inner { padding: 0; }
    .sv-subnav-arrow { display: none; }
    .sv-subnav-list { padding: 8px 15px; gap: 40px; align-items: center; }
    .sv-subnav-item { flex-shrink: 0; }
    .sv-subnav-link { padding: 0; font-size: 14px; font-weight: 500; line-height: 24px; letter-spacing: 0.2px; color: var(--grey-01); border-bottom: none; }
    .sv-subnav-link.is-current { color: var(--black-true); font-weight: 700; border-bottom: none; }   /* niente border-bottom su mobile (richiesta utente) */
    .subnav-marker { display: none; }
    .page-servizi .section, .page-servizi .sv-service-section, .page-servizi .sv-leg-section { scroll-margin-top: calc(var(--offset) + 44px); }
}

/* Hero card servizi — inset asimmetrico 60/0/60/0 (Figma 175:3802, h 693) */
.page-hero-card.page-hero-card--servizi {
    /* FULL HEIGHT come dormakaba hotel: header + hero + subnav = 100vh, subnav al fondo del viewport.
       hero = 100vh - header(--offset 126) - subnav(80). Si adatta a OGNI risoluzione/altezza schermo.
       (Mobile ha il suo override a ~riga 4236.) */
    height: calc(100vh - var(--offset) - 80px); min-height: 540px;
    align-items: stretch;
    border-radius: 60px 0 60px 0;
    overflow: hidden;
    position: relative;
}
.page-hero-card.page-hero-card--servizi .page-hero-card-bg {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: 0; pointer-events: none;
}
.page-hero-card.page-hero-card--servizi .page-hero-card-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: var(--black-true); opacity: 0.4;
}
.page-hero-card.page-hero-card--servizi .page-hero-card-content {
    position: relative; z-index: 2;
    padding: 45px 57px;
    max-width: 540px;
    align-self: flex-start;
    display: flex; flex-direction: column;
    gap: 28px;
}
.page-hero-card.page-hero-card--servizi .page-hero-card-content h1 {
    font-size: var(--fs-h1); font-weight: var(--fw-bold);
    color: var(--white); line-height: var(--lh-h1);
    letter-spacing: 0; margin: 0;
}
.page-servizi .page-hero-card-content .breadcrumb { font-size: 12px; padding: 0; text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px; display: flex; align-items: center; gap: 8px; }
.page-servizi .page-hero-card-content .breadcrumb a { color: var(--white); font-weight: 400; }
.page-servizi .page-hero-card-content .breadcrumb-sep { color: var(--white); }
.page-servizi .page-hero-card-content .breadcrumb strong { color: var(--white); font-weight: 700; }

/* Service label — Figma: primary-blue uppercase Bold (era grey-01) */
.sv-service-label {
    font-size: 16px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.2px; color: var(--primary-blue); margin-bottom: 26px;
}
/* Figma 180:4841: titoletto→titolo = 26 (era 50: il margin-bottom:26 del label si SOMMAVA al
   flex-gap 24 di .sv-text-col). Tolgo il doppione + text-box-trim per il gap VISIBILE cap-to-cap. */
#intervento .sv-text-col { gap: 26px; }
#intervento .sv-service-label { margin-bottom: 0; }
#intervento .sv-service-label,
#intervento .sv-text-col h2 { text-box-trim: trim-both; text-box-edge: cap alphabetic; }

/* Single-col service: text block + image — both centered at 654px */
.sv-service-single { display: flex; flex-direction: column; gap: 40px; align-items: center; }
.sv-service-text { display: flex; flex-direction: column; gap: 0; max-width: 654px; width: 100%; }
.sv-service-img { max-width: 654px; width: 100%; }
.sv-service-text h2 {
    font-size: 36px; font-weight: 700; color: var(--black-true);
    line-height: 1.2; letter-spacing: 0; margin-bottom: 26px;
}
.sv-body { font-size: 16px; color: var(--grey-700); font-weight: 500; line-height: 1.4; letter-spacing: 0; }
.sv-body p { margin: 0 0 12px; }
.sv-body ul { padding-left: 20px; }
.sv-body li { margin-bottom: 6px; }

/* 20px body text: single-col services, 2-col intro right, BIM text col */
.sv-service-single .sv-body,
.sv-intro-right.sv-body,
.sv-intro-right .sv-body,
.sv-text-col--lg .sv-body { font-size: 20px; line-height: 1.3; }

/* CTA Consulenza — variante settore: contenuta nel .container come le altre sezioni (Figma 794:19437 = 1339, non full-width) */
.cta-consulenza--settore { padding: var(--section-gap) 0; }
.cta-consulenza--settore .cta-consulenza-inner {
    margin: 0;
}

/* Bottone CTA "Contattaci" — Figma Button 63:3028 (Cyan-light pill con cerchio primary-blue + freccia bianca)
   Stati: default cyan-light, hover (sulla card parent) invertito bg primary-blue + cerchio cyan-light + freccia primary-blue */
.cta-btn-contattaci {
    display: inline-flex; align-items: center; gap: 15px;
    height: 56px; padding: 12px 12px 12px 20px;
    background: var(--primary-cyan-light); color: var(--black-true);
    border: none; border-radius: 56px;
    font-family: var(--font-base); font-size: 14px; font-weight: 700;
    line-height: 1.3; letter-spacing: 0.2px;
    white-space: nowrap; cursor: pointer;
    text-decoration: none; flex-shrink: 0;
    transition: background .25s ease, color .25s ease;
}
.cta-btn-contattaci::after {
    content: ""; display: inline-block; flex-shrink: 0;
    width: 32px; height: 32px; border-radius: 16px;
    overflow: hidden;
    background-color: var(--primary-blue);
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/><polyline points='12 5 19 12 12 19'/></svg>"),
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/><polyline points='12 5 19 12 12 19'/></svg>");
    background-repeat: no-repeat, no-repeat;
    background-size: 16px 16px, 16px 16px;
    background-position: center, -16px center;
    transition: background-color .25s ease, background-position .35s ease;
}
/* Hover sulla card parent → button invertito + 2 frecce slide (out a dx, in da sx).
   SOLO su device con hover reale (desktop): su touch il :hover resta sticky dopo il tap e
   faceva animare la freccia (Figma 3002:3787 mobile: freccia statica, nessuno slide). */
@media (hover: hover) {
.cta-consulenza-inner:hover .cta-btn-contattaci {
    background: var(--primary-blue); color: var(--white);
}
.cta-consulenza-inner:hover .cta-btn-contattaci::after {
    background-color: var(--primary-cyan-light);
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/><polyline points='12 5 19 12 12 19'/></svg>"),
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/><polyline points='12 5 19 12 12 19'/></svg>");
    background-position: calc(100% + 16px) center, center;
}
}

/* Articoli correlati header */
.correlati-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 40px;
}
.correlati-header h2 {
    font-size: 36px;
    font-weight: 700;
    color: var(--grey-01);
    line-height: 1.3;
    letter-spacing: 0.2px;
    margin: 0;
}
.correlati-vedi-tutti {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    font-weight: 700;
    color: var(--grey-01);
    text-decoration: none;
    white-space: nowrap;
    padding-bottom: 6px;
}
.correlati-vedi-tutti:hover { color: var(--black); }

/* Carousel chrome (Consulenza + Fornitura) */
.sv-carousel-wrap { position: relative; }
.sv-carousel-nav {
    position: absolute; bottom: 20px; left: 0; right: 0;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 16px;
}
.sv-carousel-dots { display: flex; gap: 14px; align-items: center; }
.sv-carousel-dot { width: 6px; height: 6px; border-radius: 3px; background: var(--grey-03); flex-shrink: 0; }
.sv-carousel-dot.is-active { background: var(--grey-01); }
.sv-carousel-arrows { display: flex; gap: 18px; align-items: center; }
.sv-carousel-arrow {
    width: 45px; height: 45px; border-radius: 50%;
    border: 1px solid var(--grey-03); background: transparent;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: border-color .2s;
}
.sv-carousel-arrow--next { border-color: var(--grey-01); }
.sv-carousel-arrow svg { display: block; }

/* Figma 291:7825 "Consulenza su misura": immagine formato ~QUADRATO 655×670 +
   LAYER SFUMATO (175:4266) per rendere leggibili dots/frecce del carosello.
   Gradiente design: to-bottom rgba(26,27,29,.16) 34.85% → #1a1b1d 109.55%. */
.sv-carousel-wrap .sv-img-rounded { aspect-ratio: 655 / 670; height: auto; object-fit: cover; }
.sv-carousel-wrap::after {
    content: ''; position: absolute; inset: 0; border-radius: 16px;
    pointer-events: none; z-index: 1;
    background: linear-gradient(to bottom, rgba(26,27,29,0.16) 34.85%, #1a1b1d 109.55%);
    opacity: 0.8;
}
.sv-carousel-wrap .sv-carousel-nav { z-index: 2; }   /* controlli sopra il gradiente */
/* controlli leggibili sul gradiente scuro (design: dots cyan, frecce bianche) */
.sv-carousel-wrap .sv-carousel-dot { background: var(--primary-cyan-light); opacity: .5; }
.sv-carousel-wrap .sv-carousel-dot.is-active { background: var(--primary-cyan); opacity: 1; }
.sv-carousel-wrap .sv-carousel-arrow,
.sv-carousel-wrap .sv-carousel-arrow--next { border-color: var(--white); }
.sv-carousel-wrap .sv-carousel-arrow svg path { stroke: var(--white); }
.sv-carousel-wrap .sv-carousel-arrow:hover { background: rgba(255,255,255,.15); }
/* Consulenza — carosello multi-immagine: slide impilate dentro .sv-carousel-wrap
   (le img mantengono .sv-img-rounded => stessa dimensione desktop/mobile del singolo) */
.sv-carousel-multi { position: relative; border-radius: 16px; overflow: hidden; }
.sv-carousel-multi .sv-carousel-slide { position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity .4s ease; }
.sv-carousel-multi .sv-carousel-slide:first-child { position: relative; } /* definisce l'altezza del wrap */
.sv-carousel-multi .sv-carousel-slide.is-active { opacity: 1; pointer-events: auto; }
.sv-carousel-multi .sv-carousel-slide img { width: 100%; display: block; }

/* Two-col service: image left + text right */
.sv-service-twocol { display: grid; grid-template-columns: 1fr 1fr; gap: 116px; align-items: center; }
.sv-text-col { display: flex; flex-direction: column; gap: 24px; }
.sv-text-col h2 {
    font-size: 36px; font-weight: 700; color: var(--black-true);
    line-height: 1.2; letter-spacing: 0; margin: 0;
}

/* Accordion section */
.sv-accordion-wrap .container > div + div { margin-top: 80px; }
.sv-accordion-section { display: grid; grid-template-columns: 1fr 1fr; gap: 120px; align-items: start; }
.sv-accordion-col h2 {
    font-size: 36px; font-weight: 700; color: var(--grey-01);
    line-height: 1.3; letter-spacing: 0.2px; margin-bottom: 35px;
}
/* Accordion — Figma 179:3893 (Ambiti) line separators primary-cyan-light */
.sv-accordion { display: flex; flex-direction: column; }
.sv-accordion-item { border-top: 1px solid var(--primary-cyan-light); }
.sv-accordion-item + .sv-accordion-item { margin-top: -1px; }
.sv-accordion-item:last-child { border-bottom: 1px solid var(--primary-cyan-light); }
.sv-accordion-item summary {
    display: flex; justify-content: space-between; align-items: center;
    padding: 24px 8px; cursor: pointer; list-style: none;
    font-size: 20px; font-weight: 700; line-height: 1.3; letter-spacing: 0;
    color: var(--primary-blue); gap: 16px;
}
.sv-accordion-item summary::-webkit-details-marker { display: none; }
/* Plus/minus icons: + shown when closed, − shown when open */
.sv-accordion-icon--minus { display: none; }
.sv-accordion-item[open] .sv-accordion-icon--plus { display: none; }
.sv-accordion-item[open] .sv-accordion-icon--minus { display: block; }
.sv-accordion-icon { flex-shrink: 0; color: var(--primary-blue); }
.sv-accordion-body { padding: 4px 8px 24px; font-size: 16px; color: var(--grey-700); line-height: 1.4; letter-spacing: 0; }
.sv-accordion-body p { margin: 0 0 10px; }

/* Vantaggi — Figma Frame5 negative: primary-blue radius 24 padding 100/115, grid 2-col gap 52/44 */
.sv-vantaggi-section { }
.sv-vantaggi-card {
    background: var(--primary-blue);
    border-radius: 24px;
    padding: 100px 115px;
    overflow: hidden;
}
.sv-vantaggi-card h2 { font-size: 36px; font-weight: 700; color: var(--white); line-height: 1.2; letter-spacing: 0; margin: 0 0 56px; }
.sv-vantaggi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 52px 44px; }
.sv-vantaggio-item { display: flex; gap: 20px; align-items: flex-start; }
.sv-vantaggio-icon { flex-shrink: 0; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; }
.sv-vantaggio-icon svg { display: block; width: 32px; height: 32px; }
/* check-circle del design (Figma 165:3029 / asset 161:8568) per ENTRAMBI i box sv-vantaggi
   (Tipologia di analisi 773:12820 + Vantaggi file BIM 180:4530): path filled #8BC5D7, no stroke */
.sv-vantaggio-icon svg path { fill: #8BC5D7; stroke: none; }
.sv-vantaggio-text { display: flex; flex-direction: column; gap: 16px; }
.sv-vantaggio-text strong { font-size: 20px; font-weight: 700; color: var(--white); line-height: 1.3; letter-spacing: 0; }
.sv-vantaggio-text p { font-size: 16px; font-weight: 500; color: var(--primary-cyan-light); margin: 0; line-height: 1.4; letter-spacing: 0; }

/* Tipologia di analisi (Figma 773:12820): bg BLU (era aqua-green) */
.sv-interventi-section .sv-vantaggi-card { background: var(--primary-blue); }

/* FAQ Legionella — Figma 207:6393 (close) / 207:6392 (close-hover) / 207:6391 (open)
   bordo primary-blue-light, testo primary-blue; hover sul chiuso: bg cyan-light + indent +16px */
.sv-faq-title { font-size: 36px; font-weight: 700; color: var(--black-true); margin-bottom: 40px; line-height: 1.2; letter-spacing: 0; }
.sv-faq { border-top: 1px solid var(--primary-blue-light); }
.sv-faq-item { border-bottom: 1px solid var(--primary-blue-light); }
/* Figma 207:6391 (aperta): entrambe le linee restano primary-blue-light, non blu scuro */
.sv-faq-item[open] { border-bottom-color: var(--primary-blue-light); }
.sv-faq-item summary {
    display: flex; justify-content: space-between; align-items: center;
    padding: 40px 20px; cursor: pointer; list-style: none;
    font-size: 20px; font-weight: 700; line-height: 1.3; letter-spacing: 0;
    color: var(--primary-blue); gap: 16px;
    transition: background-color .25s ease, padding-left .25s ease;
}
.sv-faq-item summary::-webkit-details-marker { display: none; }
/* Hover (Figma 207:6392): la riga diventa BIANCA + content shift di 16px verso destra. Solo su chiuso.
   ⚠️Era cyan-light: da quando la sezione FAQ ha il fondo cyan-light l'hover sparirebbe (stesso colore). */
.sv-faq-item:not([open]) summary:hover {
    background: var(--white);
    padding-left: 36px;
}
.sv-faq-icon { flex-shrink: 0; color: var(--primary-blue); transition: transform .3s; width: 32px; height: 32px; }
.sv-faq-item[open] .sv-faq-icon { transform: rotate(180deg); }
.sv-faq-body { padding: 0 20px 40px; font-size: 16px; color: var(--grey-700); font-weight: 500; line-height: 1.4; }
.sv-faq-body p { margin: 0 0 10px; }

/* =====================
   SERVIZI — Calcolatrice addolcitore (Frame 4022/4023)
   ===================== */
.sv-calc-section .container { display: flex; flex-direction: column; gap: 60px; }

/* Heading 2-col (Frame 4023) */
.sv-calc-header { display: grid; grid-template-columns: 1fr 1fr; gap: 120px; align-items: start; }
.sv-calc-header h2 { font-size: 36px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 0; }

/* Calculator card — Figma 431:14466: bg primary-cyan-light, h2 + text primary-blue */
.sv-calc-card { background: var(--primary-cyan-light); border-radius: 16px; padding: 72px 84px; }
/* Risultato calcolatore — card blu (Figma): "Modello Apparecchio" + modello + "Vedi prodotto" + "Calcola nuovamente" */
.sv-calc-form-wrap { display: flex; flex-direction: column; }
#sv-calc-btn { margin-top: 40px; }
.sv-calc-err { color: #c0392b; font-size: 14px; font-weight: 500; margin: 14px 0 0; }
.sv-calc-result-card {
    background: var(--primary-blue); border-radius: 24px;
    padding: 48px 56px;
    display: flex; flex-direction: column; justify-content: center;
    min-height: 320px;
}
.sv-calc-result-label { font-size: 18px; font-weight: 500; color: var(--white); margin: 0 0 16px; }
.sv-calc-result-model { font-size: 48px; font-weight: 700; color: var(--white); line-height: 1.1; margin: 0 0 40px; }
.sv-calc-result-link {
    display: inline-flex; align-items: center; gap: 14px; align-self: flex-start;
    font-size: 14px; font-weight: 700; color: var(--white); text-decoration: none; letter-spacing: 0.2px;
}
.sv-calc-result-link-ico {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 50%;
    background: var(--white); color: var(--primary-blue); flex-shrink: 0;
    transition: transform .25s ease;
}
.sv-calc-result-link:hover .sv-calc-result-link-ico { transform: translateX(3px); }
.sv-calc-reset {
    align-self: flex-start; margin-top: 4px;   /* Figma 431:14461: bottone a SINISTRA sotto la card, gap ~44 */
    display: inline-flex; align-items: center; justify-content: center;
    height: 56px; padding: 0 28px;
    background: transparent; border: 1px solid var(--primary-blue); border-radius: 56px;
    color: var(--primary-blue); font-family: var(--font-base); font-size: 14px; font-weight: 700; letter-spacing: 0.2px;
    cursor: pointer; transition: background .2s ease, color .2s ease;
}
.sv-calc-reset:hover { background: var(--primary-blue); color: var(--white); }
/* L'attributo hidden deve vincere sul display flex/inline-flex (altrimenti card e reset appaiono subito) */
.sv-calc-result-card[hidden], .sv-calc-reset[hidden], #sv-calc-form[hidden] { display: none !important; }
/* Spaziature pagina Servizi (Figma 175:3746): gap standard ~120px (60+60), NON 200. + eccezioni più strette. */
.page-servizi .section { padding: 60px 0; }
/* SERVIZI — distanze tra le sezioni allineate al Figma 175:3746 (desktop).
   Base 60+60=120; override per le transizioni che il design vuole diverse. */
@media (min-width: 769px) {
    .page-servizi #legionella           { padding-top: 120px; padding-bottom: 80px; }  /* subnav→legionella 120; +20 al posto del margine della fascia aqua */
    .page-servizi .sv-ambiti-section    { padding-top: 10px; }     /* progettazione→ambiti 70 (60+10) */
    .page-servizi .sv-calc-section      { padding-top: 20px; }     /* ambiti→calc 80 (60+20) */
    /* La fascia cyan si chiude A FILO dell'ultimo accordion (padding-bottom 0, richiesta
       webdesigner): lo stacco di 120 verso «Consulenza su misura» lo mette la sezione dopo,
       così resta su fondo bianco e lo stacco visivo si vede. */
    .page-servizi .sv-faq-section       { padding-top: 80px; padding-bottom: 0; }
    .page-servizi #consulenza           { padding-top: 120px; }
    .page-servizi .sv-interventi-section{ padding-top: 20px; }     /* analisi→box interventi 80 (60+20) */
    .page-servizi #intervento           { padding-top: 20px; }     /* box→intervento 80 (60+20) */
    .page-servizi #seminari             { padding-bottom: 120px; } /* seminari→footer 120 (era 60) */
}
.page-servizi .sv-calc-section { padding-bottom: 20px; }                   /* calc → CTA = 40 */
.page-servizi .cta-consulenza { padding-top: 20px; padding-bottom: 60px; }
/* FASCE COLORATE DEL BLOCCO LEGIONELLA — Figma 175:3746 (rettangolo 1440x450 dietro l'intro +
   fill del Frame 4254 dietro le FAQ): «Interventi per legionella» e «FAQ Legionella» su
   cyan-light, con la barra tab aqua-green in mezzo. Le tre fasce devono essere CONTIGUE. */
.page-servizi #legionella,
.page-servizi .sv-faq-section { background: var(--primary-cyan-light); }
/* I 20px di margine attorno alla fascia aqua lasciavano due strisce bianche fra una fascia e
   l'altra: azzerati e recuperati nei padding delle sezioni adiacenti, così il ritmo verticale
   (gap visibile 152 sopra e sotto la barra tab) resta identico. */
.page-servizi .sv-leg-section { margin-top: 0; margin-bottom: 0; }
.page-servizi .sv-vantaggi-section--bim { padding-top: 0; }                /* Vantaggi BIM attaccato all'intro File BIM (~60) */
.page-servizi .sv-interventi-section { padding-top: 20px; }                /* Figma: analisi→box interventi 80 (60+20) */

/* SERVIZI MOBILE — distanze sezioni Figma 362:13105 (375px). Gap variati:
   subnav→leg 80, leg→tab 60, tab→faq 60, faq→cons 80, cons→prog 80, prog→ambiti 60,
   ambiti→calc 60, calc→cta 46, cta→bim 80, bim→vantaggi 40, vantaggi→analisi 80,
   analisi→interventi 60, interventi→intervento 60, intervento→seminari 80, seminari→footer 80.
   leg-section (verde) ora ha mt/mb 0 (fasce colorate contigue), i 20px sono nei padding
   di #legionella e .sv-faq-section ; vantaggi-bim mantiene pt 0. */
@media (max-width: 768px) {
    .page-servizi #legionella               { padding-top: 80px; padding-bottom: 60px; }
    .page-servizi .sv-faq-section           { padding-top: 60px; padding-bottom: 0; }
    .page-servizi #consulenza               { padding-top: 80px; padding-bottom: 40px; }
    .page-servizi #progettazione            { padding-top: 40px; padding-bottom: 30px; }
    .page-servizi .sv-ambiti-section        { padding-top: 30px; padding-bottom: 30px; }
    .page-servizi .sv-calc-section          { padding-top: 30px; padding-bottom: 20px; }
    .page-servizi .cta-consulenza           { padding-top: 26px; padding-bottom: 40px; }
    .page-servizi #file-bim                 { padding-top: 40px; padding-bottom: 40px; }
    .page-servizi .sv-vantaggi-section--bim { padding-bottom: 40px; }
    .page-servizi #analisi                  { padding-top: 40px; padding-bottom: 30px; }
    .page-servizi .sv-interventi-section    { padding-top: 30px; padding-bottom: 30px; }
    .page-servizi #intervento               { padding-top: 30px; padding-bottom: 40px; }
    .page-servizi #seminari                 { padding-top: 40px; padding-bottom: 80px; }
}
.sv-calc-inner { display: flex; flex-direction: column; gap: 50px; }
.sv-calc-inner > h2 { font-size: 36px; font-weight: 700; color: var(--primary-blue); line-height: 1.2; letter-spacing: 0; margin: 0; }
.sv-calc-body { display: grid; grid-template-columns: 531px 1fr; gap: 69px; align-items: start; }

/* Left text col — primary-blue text */
.sv-calc-text.sv-body { color: var(--primary-blue); font-weight: 500; }
.sv-calc-text.sv-body p { color: var(--primary-blue); }
.sv-calc-text.sv-body strong { color: var(--primary-blue); font-weight: 700; }

/* Right form col — Figma Form-input-top-label-positive */
.sv-calc-form-wrap { display: flex; flex-direction: column; gap: 40px; }
.sv-calc-fields { display: flex; flex-direction: column; gap: 24px; }
.sv-calc-card .form-group { display: flex; flex-direction: column; gap: 8px; }
.sv-calc-card .form-group label { font-size: 14px; font-weight: 500; color: var(--primary-blue); letter-spacing: 0.4px; line-height: 20px; }
.sv-calc-card .form-control {
    background: var(--primary-cyan-light);
    border: 1px solid var(--primary-blue-light);
    color: var(--primary-blue);
    font-size: 16px; font-weight: 500; line-height: 24px;
    height: 60px; border-radius: 8px;
    padding: 0 16px; width: 100%;
}
.sv-calc-card .form-control:focus { outline: none; border-color: var(--primary-blue); }
.sv-calc-card select.form-control {
    appearance: none; -webkit-appearance: none; padding-right: 44px;
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 12px center;
}

/* Calcola button — Blue button con cerchio cyan-light + freccia primary-blue */
.sv-calc-btn {
    display: inline-flex; align-items: center; gap: 15px;
    height: 56px; padding: 12px 56px 12px 24px;
    background-color: var(--primary-blue);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='16' fill='%23dbedf1'/%3E%3Cpath d='M14 11l5 5-5 5' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
    background-position: right 12px center;
    background-repeat: no-repeat;
    background-size: 32px 32px;
    border: none; border-radius: 56px;
    color: var(--white);
    font-family: var(--font-base);
    font-size: 14px; font-weight: 700; letter-spacing: 0.2px;
    line-height: 1.3; text-transform: none;
    cursor: pointer;
    transition: background-color .2s ease;
    width: auto;
}
.sv-calc-btn:hover { background-color: #1d4762; }

/* Result area */
.sv-calc-result {
    padding: 16px 20px;
    background: var(--white);
    border-radius: 8px;
    color: var(--primary-blue);
    font-size: 16px; line-height: 1.5;
}
.sv-calc-result strong { color: var(--primary-blue); font-weight: 700; }

/* =====================
   SERVIZI — Two-col intro (Progettazione / Manutenzione / Legionella)
   ===================== */
.sv-intro-twocol { display: grid; grid-template-columns: 1fr 1fr; gap: 144px; align-items: start; }
.sv-intro-left { display: flex; flex-direction: column; gap: 26px; }
.sv-intro-left .sv-service-label { margin-bottom: 0; }   /* il gap label→h2 è il flex-gap 26 (no doppio conteggio col margin-bottom → era 54) */
.sv-intro-left h2 { font-size: 36px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 0; }
.sv-intro-right { font-size: 16px; color: var(--grey-700); font-weight: 500; line-height: 1.4; display: flex; flex-direction: column; align-items: flex-start; gap: 36px; }
.sv-intro-right .sv-body { padding-top: 0; }
.sv-intro-btn { margin-top: 24px; display: inline-flex; }

/* =====================
   SERVIZI — Ambiti section
   ===================== */
.sv-ambiti-section .container { display: flex; flex-direction: column; }
.sv-ambiti-title { font-size: 28px; font-weight: 700; color: var(--black-true); margin: 0 0 40px; line-height: 1.3; letter-spacing: 0; }
.sv-ambiti-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: start; }
.sv-ambiti-grid > div:last-child { aspect-ratio: 654 / 431; border-radius: 24px; overflow: hidden; }
.sv-ambiti-grid > div:last-child .sv-img-rounded { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }

/* =====================
   SERVIZI — File BIM buttons
   ===================== */
.sv-bim-buttons { display: flex; gap: 24px; flex-wrap: wrap; align-items: center; margin-top: 8px; }
.sv-bim-buttons .btn-blue-solid,
.sv-bim-buttons .btn-cyan-light { align-self: flex-start; width: max-content; max-width: 100%; flex-shrink: 0; }
/* Icona cerchio cyan-light + freccia slide-through sul btn-blue-solid (Figma 363:9907: come btn-cyan-light ma colori invertiti) */
.sv-bim-buttons .btn-blue-solid { gap: 15px; padding-right: 12px; }
.sv-bim-buttons .btn-blue-solid::after {
    content: ''; flex-shrink: 0;
    width: 32px; height: 32px; border-radius: 16px;
    background-color: var(--primary-cyan-light);
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h14M12 6l6 6-6 6'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h14M12 6l6 6-6 6'/%3E%3C/svg%3E");
    background-repeat: no-repeat, no-repeat;
    background-size: 16px 16px, 16px 16px;
    background-position: center, -32px center;
    transition: background-color .25s ease, background-position .35s ease;
}
.sv-bim-buttons .btn-blue-solid:hover::after {
    background-color: var(--primary-cyan);
    background-position: calc(100% + 32px) center, center;
}

/* =====================
   SERVIZI — Image placeholder variants
   ===================== */
.sv-img-ph--tall { min-height: 670px; }
.sv-img-ph--light { background: rgba(255,255,255,0.1); }
.sv-img-ph--light svg circle,
.sv-img-ph--light svg path { /* SVG colors already set inline in PHP */ }

/* SERVIZI — Legionella tab section — Figma 294:8049: bg primary-aqua-green */
.sv-leg-section {
    background: var(--primary-aqua);
    padding: 72px 0;
    margin-top: var(--section-gap);
}
.sv-leg-tab-bar { display: flex; justify-content: center; margin-bottom: 44px; padding: 0; }
.sv-leg-tabs {
    display: flex; align-items: center; justify-content: center;
    background: var(--primary-blue);
    border-radius: 16px;
    height: 54px;
    padding: 4px;
    gap: 0;
    position: relative;
}
.sv-leg-tab {
    padding: 0 24px;
    height: 46px;
    border-radius: 12px;
    font-family: var(--font-base);   /* Figma: Montserrat Medium (i <button> non ereditano il font → restavano Arial) */
    font-size: 16px;
    font-weight: 500;
    color: var(--white);
    border: none;
    background: transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: background .2s, color .2s;
    line-height: 1;
}
.sv-leg-tab.is-active { background: var(--white); color: var(--primary-blue); font-weight: 500; }   /* Figma 468:16220: pill BIANCO, testo blu, Medium */
.sv-leg-tab:hover:not(.is-active) { color: var(--primary-cyan-light); }
.sv-leg-panel { display: none; }
.sv-leg-panel.is-active { display: block; }
.sv-leg-panel-inner { padding: 0; }
.sv-leg-text h2 { color: var(--white); font-size: 36px; font-weight: 700; line-height: 1.2; }
.sv-leg-text .sv-body { color: var(--white); }
.sv-leg-text .sv-body p { color: var(--white); }
/* Figma 294:8049 — box immagine uniforme per tutti i tab (569×540, aspect 1.054), object-cover
   così la prima tab non risulta più piccola anche se l'immagine sorgente ha proporzioni diverse */
.sv-leg-section .sv-img-rounded { border-radius: 24px; width: 100%; aspect-ratio: 569 / 540; object-fit: cover; display: block; }
.sv-leg-section .sv-img-ph { background: rgba(255,255,255,0.15); border-radius: 24px; }

/* Legacy card grid (kept for back-compat) */
.servizi-page-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.servizio-page-card { display: flex; gap: 20px; align-items: flex-start; padding: 28px; border: 1px solid var(--grey-03); border-radius: var(--radius); }
.servizio-page-icon, .servizio-page-icon--placeholder { width: 48px; height: 48px; flex-shrink: 0; background: var(--grey-04); border-radius: var(--radius); }
.servizio-page-body h3 { font-size: 16px; font-weight: 700; color: var(--black-true); margin-bottom: 8px; }
.servizio-page-body p  { font-size: 14px; color: var(--grey-700); font-weight: 500; }

.vantaggi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 40px; }
.vantaggio-item { padding: 24px; border-left: 3px solid var(--grey-03); }
.vantaggio-item h3 { font-size: 16px; font-weight: 700; color: var(--black-true); margin-bottom: 8px; }
.vantaggio-item p  { font-size: 14px; color: var(--grey-02); }

/* =====================
   CAT HERO BANNER (Figma: 1338×441px, radius 24px, bg grey-03)
   banner separato — breadcrumb + titolo sotto in sezione distinta
   ===================== */
/* =====================
   CAT HERO BANNER — Figma 151:6889 (Categoria prodotto)
   Card 1338×442, rounded asimmetrico 60/0/60/0, bg colore secondary categoria, testi black-true
   Le 4 categorie hanno colori specifici (secondary/yellow #ffc936, green #9adb02, fluo-blue #1ce6d3, clear-blue #7ab0e0)
   ===================== */
.cat-banner-wrap {
    margin-top: var(--offset);
    padding: 0 51px;
}
.cat-banner {
    width: 100%; height: 442px;
    background: var(--primary-blue-light);
    border-radius: 60px 0 60px 0;
    overflow: hidden;
    position: relative;
}
/* Varianti colore per slug categoria (Figma design system) — allineate ai colori delle card
   prodotto (.prodotto-cat-card--). Gli slug REALI sono filtrazioni-acqua/addolcitori-acqua/
   osmosi-inversa/prodotti-chimici/stazione-dosaggio/debatterizzatori-uvc/generatori-biossido:
   prima molti non matchavano → banda sul DEFAULT azzurrino #8bc5d7 (addolcitori e debatterizzatori inclusi). */
.cat-banner--filtrazione,
.cat-banner--filtrazioni,
.cat-banner--filtrazione-acqua,
.cat-banner--filtrazioni-acqua    { background: #ffc936; }   /* giallo */
.cat-banner--osmosi,
.cat-banner--osmosi-inversa       { background: #9adb02; }   /* verde */
.cat-banner--dosaggio,
.cat-banner--stazione-dosaggio,
.cat-banner--stazioni-dosaggio,
.cat-banner--prodotti-chimici     { background: #1ce6d3; }   /* fluo-blue */
.cat-banner--addolcimento,
.cat-banner--addolcitori,
.cat-banner--addolcitori-acqua    { background: #7ab0e0; }   /* clear-blue */
.cat-banner--debatterizzatori,
.cat-banner--debatterizzatori-uvc,
.cat-banner--generatori,
.cat-banner--generatori-biossido  { background: #a292fc; }   /* lilla */

.cat-banner-overlay {
    position: absolute; inset: 0;
}
.cat-banner-left {
    position: absolute;
    left: 72px; top: 65px;
    width: 581px;
    display: flex; flex-direction: column; gap: 31px;
}
.cat-banner-left .breadcrumb {
    font-size: 12px; padding: 0; margin: 0;
    text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px;
    display: flex; align-items: center; gap: 8px;
    white-space: nowrap; width: max-content;
}
.cat-banner-left .breadcrumb a,
.cat-banner-left .breadcrumb span,
.cat-banner-left .breadcrumb strong { color: var(--black-true); }
.cat-banner-left .breadcrumb a,
.cat-banner-left .breadcrumb span { font-weight: 400; }
.cat-banner-left .breadcrumb strong { font-weight: 700; }
.cat-banner-left .breadcrumb a:hover { color: var(--primary-blue); }
.cat-banner-left h1 {
    font-size: var(--fs-h1); font-weight: 700; color: var(--black-true);
    line-height: 1.2; letter-spacing: 0; margin: 0;
}
.cat-banner-right {
    position: absolute;
    left: calc(50% + 16px);
    top: 112px;
    width: 579px;
    padding-left: 40px;
    box-sizing: border-box;
    display: flex; flex-direction: column; gap: 32px;
}
.cat-banner-right p {
    font-size: 16px; color: var(--black-true);
    line-height: 1.4; letter-spacing: 0; margin: 0; max-width: 539px;
}
.cat-banner-right p:first-child { font-weight: 700; }
.cat-banner-right p:nth-child(n+2) { font-weight: 500; }

/* =====================
   PRODOTTI ARCHIVE — Figma 80:3695 (item-prodotto 312×556 radius 24 grey-50)
   ===================== */
.prodotti-archive-grid {
    display: flex; flex-wrap: wrap; justify-content: center;
    gap: 30px; margin-bottom: 64px;
}
.prodotti-archive-grid .prodotto-archive-card { flex: 0 0 calc(25% - 22.5px); max-width: calc(25% - 22.5px); }

/* Card prodotto — bg grey-50 (#f5f6f6), 312×556, radius 24 (hover 60/0/60/60), border-bottom 8px categoria */
.prodotto-archive-card {
    background: var(--grey-50, #f5f6f6); border-radius: 24px; overflow: hidden;
    display: flex; flex-direction: column; text-decoration: none;
    height: 556px; position: relative;
    border-bottom: 8px solid var(--primary-blue);   /* default fallback */
    transition: border-radius .3s ease;
}
/* HOVER state Figma 80:3697: border-radius asimmetrico 60/0/60/60 (TR square) */
.prodotto-archive-card:hover { border-radius: 60px 0 60px 60px; }

/* Varianti colore border per categoria parent (Figma design system) */
/* slug REALI delle categorie (prima molti non matchavano → stroke sul default #265a7b) */
.prodotto-archive-card--filtrazione,
.prodotto-archive-card--filtrazioni,
.prodotto-archive-card--filtrazione-acqua,
.prodotto-archive-card--filtrazioni-acqua   { border-bottom-color: #ffc936; }
.prodotto-archive-card--osmosi,
.prodotto-archive-card--osmosi-inversa      { border-bottom-color: #9adb02; }
.prodotto-archive-card--dosaggio,
.prodotto-archive-card--stazione-dosaggio,
.prodotto-archive-card--stazioni-dosaggio,
.prodotto-archive-card--prodotti-chimici    { border-bottom-color: #1ce6d3; }
.prodotto-archive-card--addolcimento,
.prodotto-archive-card--addolcitori,
.prodotto-archive-card--addolcitori-acqua   { border-bottom-color: #7ab0e0; }
.prodotto-archive-card--debatterizzatori,
.prodotto-archive-card--debatterizzatori-uvc,
.prodotto-archive-card--generatori,
.prodotto-archive-card--generatori-biossido { border-bottom-color: #a292fc; }

/* Immagine superiore — bg primary-cyan-light, 312×294, image cresce da bottom (aspect 1180/1112) */
.prodotto-archive-card-img {
    display: block; height: 294px; flex-shrink: 0; overflow: hidden;
    background: var(--primary-cyan-light);
    position: relative;
}
.prodotto-archive-card-img img {
    position: absolute; left: 50%; bottom: 0;
    width: auto; height: 100%; max-width: none;
    transform: translateX(-50%);
    object-fit: contain; transition: transform .3s ease;
}
.prodotto-archive-card:hover .prodotto-archive-card-img img { transform: translateX(-50%) scale(1.04); }
.prodotto-archive-card-img .img-placeholder {
    width: 100%; height: 100%; min-height: unset; border-radius: 0;
    background: var(--primary-cyan-light);
    display: flex; align-items: center; justify-content: center;
    color: var(--primary-blue);
}

/* Body — Figma 78:3648: absolute left 22 top 314 width 263 height 212 (gap 12 title/desc, space-between cta) */
.prodotto-archive-card-body {
    position: absolute; left: 22px; top: 314px;
    width: 263px; height: 212px;
    display: flex; flex-direction: column; justify-content: space-between;
}
.prodotto-archive-card-text {
    display: flex; flex-direction: column; gap: 12px;
}
.prodotto-archive-card-body h2,
.prodotto-archive-card-body h3 {
    font-size: 20px; font-weight: 700; color: var(--black-true);
    margin: 0; line-height: 1.3; letter-spacing: 0;
}
.prodotto-archive-card-body h2 a,
.prodotto-archive-card-body h3 a { color: inherit; text-decoration: none; }
.prodotto-archive-card-body p {
    font-size: 16px; font-weight: 500; color: var(--grey-700);
    line-height: 1.4; letter-spacing: 0; margin: 0;
}

/* CTA "Scopri di più" — Figma 29:3926 Positive default → 29:3936 Hover-positive
   Default: cerchio 32 primary-blue + freccia bianca centered + freccia hidden a sx
   Hover:   cerchio 30 primary-cyan + freccia slide off-dx + nuova freccia centered (slide pattern) */
.prodotto-archive-card-cta {
    display: inline-flex; align-items: center; gap: 14px;
    font-size: 14px; font-weight: 700; color: var(--black-true);
    line-height: 1.3; letter-spacing: 0.2px;
    text-decoration: none;
}
.prodotto-archive-card-cta .btn-cta-icon {
    position: relative;
    width: 32px; height: 32px; border-radius: 16px;
    background: var(--primary-blue);
    flex-shrink: 0; overflow: hidden;
    transition: background-color .25s ease, width .25s ease, height .25s ease;
}
.prodotto-archive-card-cta .btn-cta-icon::before,
.prodotto-archive-card-cta .btn-cta-icon::after {
    content: ""; position: absolute; top: 50%;
    width: 16px; height: 16px;
    background:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/><polyline points='12 5 19 12 12 19'/></svg>") center/contain no-repeat;
    transition: left .35s ease, transform .35s ease;
}
.prodotto-archive-card-cta .btn-cta-icon::before {
    left: 50%; transform: translate(-50%, -50%);   /* freccia visibile al centro */
}
.prodotto-archive-card-cta .btn-cta-icon::after {
    left: -50%; transform: translate(0, -50%);     /* freccia nascosta a sinistra */
}
/* TUTTA la card è cliccabile: stretched-link sulla CTA (la card è position:relative) */
.prodotto-archive-card-cta::after {
    content: ""; position: absolute; inset: 0; z-index: 1;
}
/* HOVER sull'INTERA card: cerchio → cyan + slide 2 frecce (hover su card parent) */
.prodotto-archive-card:hover .btn-cta-icon {
    background: var(--primary-cyan);
}
.prodotto-archive-card:hover .btn-cta-icon::before {
    left: 150%; transform: translate(-50%, -50%);  /* freccia esce a destra */
}
.prodotto-archive-card:hover .btn-cta-icon::after {
    left: 50%; transform: translate(-50%, -50%);   /* freccia entra al centro */
}
/* Nascondo il SVG inline originale: lo rimpiazzo con i pseudo background-image */
.prodotto-archive-card-cta .btn-cta-icon svg { display: none; }

.btn-sm { padding: 5px 10px; font-size: 13px; }

.categoria-group { margin-bottom: 64px; }
.categoria-group-title { font-size: 24px; font-weight: 700; color: var(--black-true); margin-bottom: 24px; padding-bottom: 12px; border-bottom: 2px solid var(--grey-03); }

/* =====================
   CAT PRODOTTI SLIDER (Figma node 124:3271)
   ===================== */
/* Figma 165:3406: items→controlli = gap 44 (era 96 = wrap-gap 32 + margin-bottom 64 della
   griglia archivio che restava nello slider). Tolgo il margine e porto il gap a 44. */
.cat-slider-wrap { display: flex; flex-direction: column; gap: 44px; }
.cat-slider-wrap .prodotti-archive-grid { margin-bottom: 0; }

/* Footer: dots sx, frecce dx */
.cat-slider-footer {
    display: flex; align-items: center; justify-content: space-between;
}

/* Dots — 6px, gap 14px */
.cat-slider-dots { display: flex; align-items: center; gap: 14px; }
/* Figma 165:3391/3394: bullet e frecce in TONALITÀ BLU (coerenza con gli altri caroselli):
   dot inattivo cyan-light, attivo primary-blue; freccia cerchio bordo+icona primary-blue, hover fill blu */
.cat-slider-dots .slider-dot {
    width: 6px; height: 6px; border-radius: 3px;
    background: var(--primary-cyan-light); border: none; padding: 0; cursor: pointer;
    transition: background .2s;
}
.cat-slider-dots .slider-dot.is-active { background: var(--primary-blue); }

/* Frecce — 45px cerchio con bordo */
.cat-slider-arrows { display: flex; align-items: center; gap: 18px; }
.cat-slider-btn {
    width: 45px; height: 45px; border-radius: 50%;
    border: 1px solid var(--primary-blue); background: transparent;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; color: var(--primary-blue);
    transition: background .2s, color .2s;
}
.cat-slider-btn:hover { background: var(--primary-blue); color: var(--white); }
.cat-slider-btn.is-disabled { opacity: 0.4; pointer-events: none; }

/* =====================
   SINGLE PRODOTTO
   ===================== */

/* — HERO singolo prodotto — Figma 157:8154 + 157:7868
   Banner sfondo cyan-light radius 60/0/60/0 con border-bottom 11px colore categoria.
   Content sopra: image 590×556 sx + info dx (breadcrumb + h1 + desc + btn-scheda + servizi). */
.sp-hero.section { padding-top: var(--offset); padding-bottom: 0; }
.sp-hero-banner {
    margin: 0 51px;
    background: var(--primary-cyan-light);
    border-radius: 60px 0 60px 0;
    border-bottom: 11px solid var(--primary-blue);   /* default fallback */
    padding: 40px 72px 65px 46px;
    position: relative;
    min-height: 845px;
    box-sizing: border-box;
}
/* Varianti colore border per slug categoria (Figma design system) */
.sp-hero-banner--filtrazione,
.sp-hero-banner--filtrazioni,
.sp-hero-banner--filtrazione-acqua,
.sp-hero-banner--filtrazioni-acqua    { border-bottom-color: #ffc936; }
.sp-hero-banner--osmosi,
.sp-hero-banner--osmosi-inversa       { border-bottom-color: #9adb02; }
.sp-hero-banner--dosaggio,
.sp-hero-banner--stazione-dosaggio,
.sp-hero-banner--stazioni-dosaggio,
.sp-hero-banner--prodotti-chimici     { border-bottom-color: #1ce6d3; }
.sp-hero-banner--addolcimento,
.sp-hero-banner--addolcitori,
.sp-hero-banner--addolcitori-acqua    { border-bottom-color: #7ab0e0; }
/* Trello 2sBEl1sl: slug padre reali (stazione-dosaggio, prodotti-chimici, debatterizzatori-uvc, generatori-biossido)
   mancavano → linea blu di default. Stessa mappa delle card archivio (.prodotto-archive-card--*). */
.sp-hero-banner--debatterizzatori,
.sp-hero-banner--debatterizzatori-uvc,
.sp-hero-banner--generatori,
.sp-hero-banner--generatori-biossido  { border-bottom-color: #a292fc; }

.sp-hero-breadcrumb {
    font-size: 12px; padding: 0; margin: 0;
    text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px;
    display: flex; align-items: center; gap: 8px;
    white-space: nowrap; width: max-content;
    color: var(--black-true);
}
.sp-hero-breadcrumb a,
.sp-hero-breadcrumb span,
.sp-hero-breadcrumb strong { color: var(--black-true); }
.sp-hero-breadcrumb a,
.sp-hero-breadcrumb span { font-weight: 400; }
.sp-hero-breadcrumb strong { font-weight: 700; }
.sp-hero-breadcrumb a:hover { color: var(--primary-blue); }

.sp-hero-inner {
    display: grid;
    grid-template-columns: 590fr 539fr;
    gap: 105px;
    align-items: start;
    padding-top: 25px;   /* Figma: breadcrumb at 40 banner-top + 65 to title = 25 gap */
}

/* Colonna immagine — Figma img 590×556 SENZA bg (eredita dal banner) */
.sp-hero-img {
    background: transparent;
    height: 556px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
}
.sp-hero-img img {
    width: auto; height: 100%; max-width: none;
    object-fit: contain;
    border-radius: 0;
}
.sp-hero-img-ph { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 556px; color: var(--primary-blue); }
/* Carosello foto prodotto — Figma CONSEGNA 157:7868 / controlli 1487:14794: frecce 45 + pallini 6 (gap 14),
   gap frecce↔pallini 40, blocco centrato sotto l'immagine a 20px */
.sp-hero-img-col { display: flex; flex-direction: column; align-items: stretch; min-width: 0; }
.sp-gallery-viewport { width: 100%; height: 100%; overflow: hidden; }
.sp-gallery-track { display: flex; height: 100%; transition: transform .45s ease; will-change: transform; }
.sp-gallery-slide { flex: 0 0 100%; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.sp-hero-img .sp-gallery-slide img { width: auto; height: 100%; max-width: 100%; object-fit: contain; }
.sp-gallery-controls { justify-content: center; gap: 40px; margin-top: 20px; }
.sp-gallery-controls .slider-dot { background: rgba(38, 90, 123, .5); }
.sp-gallery-controls .slider-dot.is-active { background: var(--primary-blue); }

/* Colonna info */
.sp-hero-info {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.sp-hero-info h1 {
    font-size: var(--fs-h1); font-weight: 700; color: var(--black-true);
    line-height: 1.2; letter-spacing: 0; margin: 0;
}
.sp-hero-subtitle { font-size: 20px; font-weight: 600; color: var(--grey-01); line-height: 1.3; letter-spacing: .2px; margin: 16px 0 0; }
.sp-hero-desc { display: flex; flex-direction: column; gap: 32px; font-size: 16px; line-height: 1.4; }
.sp-hero-desc p { margin: 0; font-weight: 500; color: var(--grey-700); }

/* Bottone "Scarica scheda tecnica" — Figma 126:3590 (Outline default) → 128:3609 (Outline-hover)
   Pattern: outline pill border primary-blue, height 56 → 54 hover (shrink 2px),
   bg sempre transparent, cerchio primary-blue → primary-cyan,
   2 icone download slide VERTICAL (icona 1 esce giù, icona 2 entra dall'alto). */
/* SINGOLO PRODOTTO — distanze tra le sezioni allineate al Figma 157:7868 (desktop).
   hero→applicazioni 120, app→caratteristiche 80, car→settori 80, settori→CTA 80,
   CTA→correlati 80, correlati→footer 120 (già ok con pb default). */
@media (min-width: 769px) {
    .single-prodotto .sp-applicazioni-section   { padding-top: 120px; padding-bottom: 40px; }
    .single-prodotto .sp-caratteristiche-section{ padding-top: 40px;  padding-bottom: 40px; }
    .single-prodotto .sp-settori-section        { padding-top: 40px;  padding-bottom: 40px; }
    .single-prodotto .cta-consulenza            { padding-top: 40px;  padding-bottom: 40px; }
    .single-prodotto .sp-correlati-section      { padding-top: 40px; }
}

.sp-btn-scheda {
    align-self: flex-start;
    display: inline-flex; align-items: center; gap: 15px;
    height: 56px; padding: 12px 12px 12px 20px;
    border: 1px solid var(--primary-blue);
    background: transparent; color: var(--black-true);
    border-radius: 56px;
    font: 700 14px/1.3 var(--font-base); letter-spacing: 0.2px;
    text-decoration: none;
}
/* NB: niente cambio di height in hover (56→54 spostava il blocco Servizi sotto, Figma 157:8398).
   Il feedback hover resta con swap colore + slide icona (::after). */

.sp-btn-scheda::after {
    content: ""; position: relative;
    display: inline-block; flex-shrink: 0;
    width: 32px; height: 32px; border-radius: 16px;
    background-color: var(--primary-blue);
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><polyline points='7 10 12 15 17 10'/><line x1='12' y1='15' x2='12' y2='3'/></svg>"),
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><polyline points='7 10 12 15 17 10'/><line x1='12' y1='15' x2='12' y2='3'/></svg>");
    background-repeat: no-repeat, no-repeat;
    background-size: 16px 16px, 16px 16px;
    background-position: center, center -32px;   /* icona 1 centro, icona 2 sopra (off-top) */
    overflow: hidden;
    transition: background-color .25s ease, background-position .35s ease;
}
.sp-btn-scheda svg { display: none; }  /* SVG inline nascosto, sostituito dal pseudo */

/* HOVER: cerchio primary-cyan + slide verticale (icona 1 sotto, icona 2 centro) */
.sp-btn-scheda:hover::after {
    background-color: var(--primary-cyan);
    background-position: center calc(100% + 32px), center;   /* icona 1 esce giù, icona 2 entra al centro */
}

/* Servizi sidebar — Figma 157:8398 (title 20 Bold + 5 voci cerchi 32 blue-light icona bianca) */
.sp-servizi-sidebar { display: flex; flex-direction: column; gap: 32px; }
.sp-servizi-sidebar-title {
    font-size: 20px; font-weight: 700; color: var(--black-true);
    line-height: 1.3; letter-spacing: 0; margin: 0;
}
.sp-servizi-sidebar-list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 12px;
}
.sp-servizi-sidebar-item { display: flex; align-items: center; gap: 16px; }
.sp-servizi-sidebar-icon {
    width: 32px; height: 32px; border-radius: 50%;
    background: var(--primary-blue-light); flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    color: var(--white);
}
.sp-servizi-sidebar-icon svg { width: 16px; height: 16px; }
.sp-servizi-sidebar-icon img { width: 16px; height: 16px; object-fit: contain; filter: brightness(0) invert(1); }
.sp-servizi-sidebar-item > span:last-child {
    font-size: 16px; font-weight: 500; color: var(--black-true);
    line-height: 1.4; letter-spacing: 0;
}

/* CTA "Scopri di più" anchor scroll-down — cerchio 32 primary-blue freccia ruotata 90deg */
.sp-btn-cta-down {
    display: inline-flex; align-items: center; gap: 14px;
    font-size: 14px; font-weight: 700; color: var(--black-true);
    line-height: 1.3; letter-spacing: 0.2px;
    text-decoration: none;
    align-self: flex-start;
}
.sp-btn-cta-down .btn-cta-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 16px;
    background: var(--primary-blue); color: var(--white);
    flex-shrink: 0;
    transition: transform .2s ease;
}
.sp-btn-cta-down .btn-cta-icon svg { width: 16px; height: 16px; transform: rotate(90deg); }
.sp-btn-cta-down:hover .btn-cta-icon { transform: translateY(3px); }

/* — SEZIONE APPLICAZIONI PRINCIPALI — Figma 159:8466 (accordion 653 sx + image 654×431 r24 dx) */
.sp-applicazioni-section { padding-top: 100px; }
.sp-section-title {
    font-size: 28px; font-weight: 700; color: var(--black-true);
    line-height: 1.3; letter-spacing: 0; margin: 0 0 32px;
}
.sp-section-title--h2 {
    font-size: 36px; line-height: 1.2; margin: 0 0 36px;
}
/* Sezione Settori (gap 36 dal title Figma 161:8721) */
.sp-settori-section .sp-section-title--h2 { margin-bottom: 36px; }

/* Card settore — Figma item-settore-hp (1003:14041): immagine bg + overlay scuro,
   titolo bianco in alto, descrizione in basso, CTA freccia rivelata su hover. */
.sp-settori-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.sp-settore-card {
    position: relative; display: block; text-decoration: none;
    height: 397px; border-radius: 24px; overflow: hidden;
    transition: border-radius .3s ease;
}
.sp-settore-card:hover { border-radius: 60px 0 60px 60px; }
.sp-settore-card-bg {
    position: absolute; inset: 0;
    background-size: cover; background-position: center;
    transition: transform .4s ease;
}
.sp-settore-card:hover .sp-settore-card-bg { transform: scale(1.05); }
.sp-settore-card-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(9,9,9,.82) 0%, rgba(3,3,3,0) 48%, rgba(9,9,9,.92) 100%);
}
.sp-settore-card-content {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 29px 26px 30px 30px;
}
.sp-settore-card-title {
    font-size: 20px; font-weight: 700; color: var(--white); line-height: 1.3; margin: 0;
}
.sp-settore-card-bottom { display: flex; flex-direction: column; align-items: flex-start; }
.sp-settore-card-desc {
    font-size: 16px; font-weight: 500; color: var(--white); line-height: 1.4;
    letter-spacing: 0; margin: 0; max-width: 360px;
}
.sp-settore-card-cta {
    display: flex; align-items: center; gap: 14px;
    font-size: 14px; font-weight: 700; color: var(--white); line-height: 1.3; letter-spacing: 0.2px;
    height: 0; opacity: 0; margin-top: 0; overflow: hidden;
    transition: height .3s ease, opacity .25s ease, margin-top .3s ease;
}
.sp-settore-card-cta .btn-cta-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 16px;
    background: var(--primary-cyan-light); color: var(--primary-blue);
    overflow: hidden; flex-shrink: 0;
}
.sp-settore-card-cta .btn-cta-icon svg { width: 16px; height: 16px; }
.sp-settore-card:hover .sp-settore-card-cta { height: 32px; opacity: 1; margin-top: 18px; }
.sp-applicazioni-inner {
    display: grid;
    grid-template-columns: 653fr 654fr;
    gap: 30px;
    align-items: start;
}
.sp-applicazioni-accordion { width: 100%; }

/* Immagine applicazioni (destra) — Figma 158:8409 (654×431 radius 24) */
.sp-applicazioni-img {
    border-radius: 24px;
    aspect-ratio: 654 / 431;
    width: 100%;
    overflow: hidden;
    background: var(--primary-cyan-light);
}
.sp-applicazioni-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* — SEZIONE CARATTERISTICHE CHIAVE — Figma 165:3029 (dark card primary-blue, uguale a .consulenza-dark-card già esistente) */
.sp-caratteristiche-section { padding: 100px 0; }
.sp-caratteristiche-card h2 {
    font-size: 36px; font-weight: 700; color: var(--white);
    line-height: 1.2; letter-spacing: 0; margin: 0 0 56px;
}
/* Legacy box — non più usato, mantenuto per non rompere altri usi */
.sp-caratteristiche-box {
    background: var(--primary-blue);
    border-radius: 16px;
    padding: 72px 121px;
}
.sp-caratteristiche-box h2 {
    font-size: 36px; font-weight: 700; color: var(--grey-04);
    line-height: 1.3; letter-spacing: 0.2px; margin: 0 0 60px;
}
.sp-caratteristiche-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    row-gap: 57px; column-gap: 30px;
}
.sp-caratteristica { display: flex; gap: 17px; align-items: flex-start; }
.sp-caratteristica-check { flex-shrink: 0; width: 36px; height: 36px; }
.sp-caratteristica-title {
    font-size: 20px; font-weight: 700; color: var(--white);
    line-height: 1.3; letter-spacing: 0.2px; margin: 0 0 16px;
}
.sp-caratteristica-desc {
    font-size: 16px; color: var(--grey-03);
    line-height: 1.3; margin: 0;
}

/* — SEZIONE SERVIZI — Figma 165:3162 (Frame 4216: bg primary-blue, padding 72/52/80/50)
   Title 36 Bold white "Servizi" + grid 3 cards 426×340 bianche gap 32/30 */
.sp-servizi-section {
    background: var(--primary-blue);
    padding: 72px 52px 80px 50px;
    margin: 0;
}
.sp-servizi-inner {
    max-width: 1338px;
    margin: 0 auto;
    display: flex; flex-direction: column;
    gap: 44px;
}
.sp-section-title--on-dark {
    font-size: 36px; font-weight: 700; color: var(--white);
    line-height: 1.2; letter-spacing: 0; margin: 0;
}

/* Grid cards Figma 49:1749 (item-servizi card 426×340 bianca) */
.sp-servizi-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px 30px;
}
.sp-servizio-card {
    background: var(--white); border-radius: 24px;
    padding: 64px 58px;   /* Figma default 49:1749 px-58 py-64 */
    display: flex; flex-direction: column; gap: 20px;
    height: 340px; overflow: hidden;
    text-decoration: none;
    transition: border-radius .3s ease, padding-top .3s ease, box-shadow .3s ease;
}
/* HOVER Figma 49:1756: radius asimmetrico 60/0/60/60, padding-top 64→45 (cluster sale di 19px) */
.sp-servizio-card:hover {
    border-radius: 60px 0 60px 60px;
    padding-top: 45px;
    box-shadow: 0 4px 24px rgba(38,90,123,.08);
}

.sp-servizio-top { display: flex; flex-direction: column; gap: 28px; transition: gap .3s ease; }
.sp-servizio-card:hover .sp-servizio-top { gap: 24px; }   /* Figma hover: gap inner 28→24 */
.sp-servizio-icon-title { display: flex; flex-direction: column; gap: 17px; align-items: flex-start; }

.sp-servizio-icon {
    width: 68px; height: 68px; border-radius: 50%;
    background: var(--primary-cyan-light);
    color: var(--primary-blue);
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
}
.sp-servizio-icon svg { width: 32px; height: 32px; }
.sp-servizio-name {
    font-size: 24px; font-weight: 700; color: var(--black-true);
    line-height: 1.3; letter-spacing: 0; margin: 0;
}
.sp-servizio-desc {
    font-size: 16px; font-weight: 500; color: var(--grey-700);
    line-height: 1.4; letter-spacing: 0; margin: 0;
}

/* CTA "Scopri di più" — Figma 29:3926 Positive (default opacity 0) → 29:3936 Hover-positive (visible)
   Cerchio default primary-blue, hover primary-cyan (#0086ab). Slide 2 frecce orizzontale. */
.sp-servizio-cta {
    display: inline-flex; align-items: center; gap: 14px;
    font-size: 14px; font-weight: 700; color: var(--black-true);
    line-height: 1.3; letter-spacing: 0.2px;
    opacity: 0;
    transition: opacity .3s ease;
}
.sp-servizio-cta .btn-cta-icon {
    position: relative;
    width: 32px; height: 32px; border-radius: 16px;
    background: var(--primary-blue);
    flex-shrink: 0; overflow: hidden;
    transition: background-color .25s ease, width .25s ease, height .25s ease;
}
.sp-servizio-cta .btn-cta-icon::before,
.sp-servizio-cta .btn-cta-icon::after {
    content: ""; position: absolute; top: 50%;
    width: 16px; height: 16px;
    background:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/><polyline points='12 5 19 12 12 19'/></svg>") center/contain no-repeat;
    transition: left .35s ease, transform .35s ease;
}
.sp-servizio-cta .btn-cta-icon::before {
    left: 50%; transform: translate(-50%, -50%);    /* freccia 1 centrata visibile */
}
.sp-servizio-cta .btn-cta-icon::after {
    left: -50%; transform: translate(0, -50%);      /* freccia 2 nascosta a sx */
}
.sp-servizio-cta .btn-cta-icon svg { display: none; }   /* inline SVG nascosto, usa pseudo */

/* HOVER card: CTA visibile + cerchio cyan + slide frecce */
.sp-servizio-card:hover .sp-servizio-cta { opacity: 1; }
.sp-servizio-card:hover .sp-servizio-cta .btn-cta-icon {
    background: var(--primary-cyan);
}
.sp-servizio-card:hover .sp-servizio-cta .btn-cta-icon::before {
    left: 150%; transform: translate(-50%, -50%);   /* freccia 1 esce a dx */
}
.sp-servizio-card:hover .sp-servizio-cta .btn-cta-icon::after {
    left: 50%; transform: translate(-50%, -50%);    /* freccia 2 entra al centro */
}

/* Prodotti correlati (≤4, no slider) */
.sp-correlati-grid { justify-content: flex-start; }

/* Prodotti correlati = CAROSELLO (Figma 359:9635): viewport clippa, track flex trasla, dots.
   Desktop 4-up (card 25% da .prodotti-archive-grid), mobile 1-up swipe (card 100%). */
.sp-correlati-viewport { overflow: hidden; }
.prodotti-archive-grid.sp-correlati-track {
    flex-wrap: nowrap; justify-content: flex-start;
    margin-bottom: 0;
    transition: transform .4s ease; will-change: transform;
}
.sp-correlati-controls { display: flex; justify-content: center; margin-top: 36px; }   /* initCarousel nasconde se 1 pagina */

/* Vecchi stili mantenuti per retrocompatibilità */
.settori-cards-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.settore-mini-card { display: block; border: 1px solid var(--grey-03); border-radius: var(--radius); overflow: hidden; text-align: center; padding-bottom: 12px; }
.settore-mini-card img  { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.settore-mini-card span { display: block; font-size: 14px; font-weight: 700; color: var(--black); padding: 8px 12px 0; }

/* =====================
   SETTORI
   ===================== */
.archive-settori-header { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; margin-bottom: 48px; }
.archive-settori-header h1 { font-size: 40px; font-weight: 700; color: var(--black-true); }

.settori-archive-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.settore-archive-card { display: block; border: 1px solid var(--grey-03); border-radius: var(--radius); overflow: hidden; }
.settore-archive-card-img { aspect-ratio: 16/9; overflow: hidden; }
.settore-archive-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.settore-archive-card:hover .settore-archive-card-img img { transform: scale(1.04); }
.settore-archive-card-body { padding: 24px; }
.settore-archive-card-body h2 { font-size: 20px; font-weight: 700; color: var(--black-true); margin-bottom: 8px; }
.settore-archive-card-body p  { font-size: 14px; color: var(--grey-700); font-weight: 500; }

.settore-hero { position: relative; min-height: 400px; display: flex; align-items: flex-end; }
.settore-hero-img { position: absolute; inset: 0; }
.settore-hero-img img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.settore-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(66,66,73,.7) 0%, transparent 60%); }
.settore-hero-overlay { position: relative; z-index: 1; width: 100%; padding: 48px 0; }
.settore-hero-overlay h1 { font-size: 40px; font-weight: 700; color: var(--white); }

/* =====================
   CASE HISTORY
   ===================== */
.case-history-list { display: flex; flex-direction: column; gap: 24px; }
.case-history-card { border: 1px solid var(--grey-03); border-radius: var(--radius); overflow: hidden; }
.case-history-card-img { display: block; aspect-ratio: 16/7; overflow: hidden; }
.case-history-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.case-history-card:hover .case-history-card-img img { transform: scale(1.03); }
.case-history-card-body { padding: 28px; }
.case-history-card-body h2 { font-size: 22px; font-weight: 700; color: var(--black-true); margin-bottom: 10px; }
.case-history-card-body p  { color: var(--grey-700); font-weight: 500; margin-bottom: 16px; }

/* =====================
   SINGLE CASE HISTORY — design definitivo (Figma 182:5812)
   ===================== */
/* Meta Cliente + Anno — 12-col grid (Figma 182:6085 left:41.67% / 182:6088 left:75%)
   Cliente parte alla col 6, Anno parte alla col 10 — ancorate alle posizioni Figma. */
.single-case-history .case-meta-section { padding: 73px 0 60px; }
@media (min-width: 769px) {
    /* Figma 182:5812: hero (fine 568) → riga meta 628 = 60 ; riga meta → linea che apre le sezioni 35 */
    .single-case-history .case-meta-section { padding-top: 60px; padding-bottom: 35px; }
}
/* Figma 1428:17521 + 182:6085/6088: LOGO cliente a sinistra (200×100), poi "Cliente" allineato al
   bordo sinistro della descrizione delle sezioni (182:6110) e "Anno" a +455px.
   570 = colonna titolo 326 + gap 244 delle sezioni → Cliente cade esattamente sulla descrizione. */
.single-case-history .case-meta {
    display: grid;
    grid-template-columns: 570px 455px 199px;
    gap: 0;
    align-items: start;
}
.single-case-history .case-meta-item {
    display: flex; flex-direction: column;
    gap: 5px;
}
/* Il riquadro del logo è alto 100 SEMPRE (Figma 1428:17521 200×100): così la riga meta e la linea
   che apre le sezioni restano alla stessa quota qualunque proporzione abbia il logo caricato. */
.single-case-history .case-meta-logo    { grid-column: 1; grid-row: 1; min-height: 100px; }
.single-case-history .case-meta-cliente { grid-column: 2; grid-row: 1; }
.single-case-history .case-meta-anno    { grid-column: 3; grid-row: 1; }
/* riquadro 200×100: il logo ci sta dentro senza deformarsi, ancorato in alto a sinistra */
.single-case-history .case-meta-logo img {
    display: block;
    max-width: 200px; max-height: 100px;
    width: auto; height: auto;
    object-fit: contain; object-position: left top;
}
.single-case-history .case-meta-item strong {
    font-size: 16px; font-weight: 700;
    color: var(--black-true);
    line-height: 1.4; letter-spacing: 0;
}
.single-case-history .case-meta-item span {
    font-size: 16px; font-weight: 500;
    color: var(--black-true);
    line-height: 1.4; letter-spacing: 0;
}

/* Sezioni testuali (Figma 182:6119 — split title sx + body dx + divider) */
/* Figma 1428:17514: il blocco si apre con una linea; lo stacco dalla riga meta (35) lo mette
   il padding-bottom di .case-meta-section, qui non serve altro padding sopra. */
.single-case-history .case-sezioni-section { padding: 0 0 0; }
.single-case-history .case-sezioni {
    display: flex; flex-direction: column;
    gap: 80px;
}
.single-case-history .case-sezione { display: flex; flex-direction: column; gap: 36px; }
/* Figma 182:6106 «Content Container» largo 1224 (326 + 244 + 654) ALLINEATO A SINISTRA dentro
   la riga da 1337: la descrizione parte a 619 e finisce 113px prima del bordo destro, non è
   più spinta al bordo (era justify-content: space-between). */
.single-case-history .case-sezione-row {
    display: grid;
    grid-template-columns: 326px 654px;
    gap: 244px;
    align-items: start;
    justify-content: start;
}
.single-case-history .case-sezione-title {
    font-size: 36px; font-weight: 700;
    color: var(--black-true);
    line-height: 1.2; letter-spacing: 0;
    margin: 0;
}
.single-case-history .case-sezione-body {
    font-size: 16px; font-weight: 500;
    color: var(--grey-700);
    line-height: 1.4; letter-spacing: 0;
}
.single-case-history .case-sezione-body p { margin: 0 0 12px; }
.single-case-history .case-sezione-body p:last-child { margin-bottom: 0; }
.single-case-history .case-sezione-body strong { color: var(--black-true); font-weight: 700; }
.single-case-history .case-sezione-body ul,
.single-case-history .case-sezione-body ol { margin: 8px 0 12px; padding-left: 22px; }
.single-case-history .case-sezione-body a { color: var(--primary-blue); text-decoration: underline; font-weight: 700; }
.single-case-history .case-sezione-divider {
    border: none;
    height: 1px;
    background: var(--grey-03);
    margin: 0;
    width: 100%;
}

/* Gallery slider 655×670 centrato (Figma 182:6198) */
.single-case-history .case-gallery-section { padding: 120px 0 0; }
.single-case-history .case-gallery-section .container { display: flex; justify-content: center; }
.single-case-history .case-gallery-wrap {
    position: relative;
    width: 655px; max-width: 100%;
    height: 670px;
    border-radius: 16px;
    overflow: hidden;
    background: var(--grey-04);
}
.single-case-history .case-gallery {
    display: flex;
    width: 100%; height: 100%;
    transition: transform .45s ease;
}
.single-case-history .case-gallery-slide {
    flex: 0 0 100%; min-width: 100%; height: 100%;
}
.single-case-history .case-gallery-slide img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
}
.single-case-history .case-gallery-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(180deg, rgba(26,27,29,0.16) 35%, rgba(26,27,29,1) 110%);
    opacity: 0.8;
    pointer-events: none;
}
.single-case-history .case-gallery-controls {
    position: absolute; z-index: 2;
    bottom: 36px; left: 28px; right: 28px;
    display: flex; justify-content: space-between; align-items: center;
}
.single-case-history .case-gallery-dots { display: flex; gap: 14px; align-items: center; }
.single-case-history .case-gallery-dot {
    width: 6px; height: 6px;
    border-radius: 3px;
    background: var(--primary-cyan-light); opacity: 0.5;
    border: none; padding: 0;
    appearance: none; -webkit-appearance: none;
    cursor: pointer; transition: background .2s, opacity .2s;
    flex-shrink: 0;
}
.single-case-history .case-gallery-dot.is-active { background: var(--primary-cyan); opacity: 1; }
.single-case-history .case-gallery-arrows { display: flex; gap: 18px; align-items: center; }
.single-case-history .case-gallery-btn {
    width: 45px; height: 45px;
    border-radius: 50%;
    border: 1px solid var(--white);
    background: transparent;
    color: var(--white);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: background .2s, color .2s, opacity .2s;
    flex-shrink: 0;
}
.single-case-history .case-gallery-btn:hover:not(:disabled) { background: var(--white); color: var(--primary-blue); }
.single-case-history .case-gallery-btn:disabled { opacity: 0.4; pointer-events: none; }

/* Benefici chiave — riusa .consulenza-dark-card */
.single-case-history .case-benefici-section { padding: 120px 0 0; }

/* Testimonianze — card aqua-green con carousel (Figma 182:6271 Quote-carousel 172:6706) */
.single-case-history .case-quote-section { padding: 44px 0 0; }
.single-case-history .case-quote-card {
    position: relative;
    background: var(--primary-aqua);
    border-radius: 16px;
    padding: 72px 43px 60px 36px;
    min-height: 474px;
    overflow: hidden;
}
/* Viewport: clippa le slide al bordo CONTENUTO (no peek dello slide successivo nel padding-destro della card) */
.single-case-history .case-quote-viewport { overflow: hidden; width: 100%; }
.single-case-history .case-quote-track {
    display: flex;
    width: 100%;
    transition: transform .5s ease;
}
.single-case-history .case-quote-slide {
    flex: 0 0 100%; min-width: 100%;
    display: flex; flex-direction: column;
    align-items: center;   /* blocco 888 centrato orizzontalmente (Figma items-center); contenuto in alto */
}
.single-case-history .case-quote-mark {
    /* Figma 112:7032: il " è nello stesso blocco 888px del testo, allineato a SINISTRA
       (non centrato); testo parte ~85px sotto il top del " (mark 116 - overlap 31) */
    align-self: center;
    width: 888px; max-width: 100%;
    text-align: left;
    font-family: Arial, sans-serif;
    font-size: 116px;
    line-height: 1;
    color: var(--primary-blue);
    margin: 0 0 -31px;
    user-select: none;
}
.single-case-history .case-quote-text {
    width: 888px; max-width: 100%;
    font-size: 36px; font-weight: 500;
    color: var(--white);
    line-height: 1.2; letter-spacing: 0;
    margin: 0;
    text-align: left;
}
.single-case-history .case-quote-author {
    width: 888px; max-width: 100%;
    margin: 31px 0 0;
    font-size: 16px; font-weight: 700;
    color: var(--white);
    line-height: 1.24; letter-spacing: 0;
    text-transform: uppercase;
    text-align: left;
}

/* Controlli carousel testimonianze (solo se 2+) */
.single-case-history .case-quote-card--carousel { padding-bottom: 100px; }
.single-case-history .case-quote-controls {
    position: absolute; z-index: 2;
    bottom: 32px; left: 36px; right: 43px;
    display: flex; justify-content: space-between; align-items: center;
}
.single-case-history .case-quote-dots { display: flex; gap: 14px; align-items: center; }
.single-case-history .case-quote-dot {
    width: 6px; height: 6px;
    border-radius: 3px;
    background: var(--white); opacity: 0.5;
    border: none; padding: 0;
    appearance: none; -webkit-appearance: none;
    cursor: pointer; transition: opacity .2s;
    flex-shrink: 0;
}
.single-case-history .case-quote-dot.is-active { opacity: 1; }
.single-case-history .case-quote-arrows { display: flex; gap: 18px; align-items: center; }
.single-case-history .case-quote-btn {
    width: 45px; height: 45px;
    border-radius: 50%;
    border: 1px solid var(--white);
    background: transparent;
    color: var(--white);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: background .2s, color .2s, opacity .2s;
    flex-shrink: 0;
}
.single-case-history .case-quote-btn:hover:not(:disabled) { background: var(--white); color: var(--primary-aqua); }
.single-case-history .case-quote-btn:disabled { opacity: 0.4; pointer-events: none; }

/* Prossimo progetto (Figma 190:7948 — bleed costante verso destra)
   Strategia: section overflow:hidden + container full-width + wrap right-anchored con
   margin-right: -178px. La card 1110 sfora SEMPRE di 178px oltre il bordo destro del
   viewport, indipendentemente dalla risoluzione (mantiene il bleed Figma su schermi grandi). */
.single-case-history .case-next-section {
    padding: 120px 0 120px;
    overflow-x: hidden;
}
.single-case-history .case-next-section .container {
    max-width: none;
    padding: 0;
}
.single-case-history .case-next-wrap {
    width: 1110px;
    max-width: 1110px;
    margin-left: auto; /* push to right */
    margin-right: -178px; /* extend 178px past viewport right edge */
    display: flex; flex-direction: column;
    gap: 16px;
}
.single-case-history .case-next-head {
    display: flex; align-items: center; gap: 14px;
}
/* ArrowAnimation Figma (182:7074): cerchio primary-blue 32px + freccia bianca con slide-in
   Pattern: due frecce in posizione, una visibile al centro + una hidden a -15px.
   Hover sul wrap → entrambe scivolano +30px (centrale esce a dx, hidden entra al centro). */
.single-case-history .case-next-head-arrow {
    position: relative;
    width: 32px; height: 32px;
    border-radius: 16px;
    background: var(--primary-blue);
    overflow: hidden;
    flex-shrink: 0;
}
.single-case-history .case-next-head-arrow::before,
.single-case-history .case-next-head-arrow::after {
    content: '';
    position: absolute;
    top: 8px;
    width: 16px; height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    transition: transform .35s ease;
}
.single-case-history .case-next-head-arrow::before { left: -15px; }
.single-case-history .case-next-head-arrow::after  { left: 50%; transform: translateX(-50%); }
/* Hover sul wrap intero → animazione slide */
.single-case-history .case-next-wrap:hover .case-next-head-arrow::before { transform: translateX(23px); }
.single-case-history .case-next-wrap:hover .case-next-head-arrow::after  { transform: translateX(15px); }

.single-case-history .case-next-heading {
    font-size: 28px; font-weight: 700;
    color: var(--black-true);
    line-height: 1.3; letter-spacing: 0;
    margin: 0;
}
.single-case-history .case-next-card { display: block; }
/* Hover behavior ereditato da .ch-archive-card (gradient darken + border-radius morph).
   Plus freccia in alto (.case-next-head-arrow) anima quando si hovera tutto il wrap. */

/* Gradient diagonale aggiuntivo (Figma 190:7800 — solo nella case-successiva, NON nelle archive cards):
   235deg, dark bottom-left → transparent top-right, 618×665 con opacity 0.8.
   Scurisce la zona testo per leggibilità garantita anche con bg image colorate. */
.single-case-history .case-next-card::after {
    content: '';
    position: absolute;
    left: 0; top: 0;
    width: 618px; height: 665px;
    background: linear-gradient(235.1deg, rgba(26,27,29,0) 49.4%, rgba(26,27,29,1) 92%);
    opacity: 0.8;
    pointer-events: none;
    z-index: 1; /* sopra .ch-archive-card-gradient verticale, sotto .ch-archive-card-text */
}

/* =====================
   BLOG
   ===================== */
.blog-archive-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; flex-wrap: wrap; }
.blog-cat-filter { display: flex; flex-wrap: wrap; gap: 8px; }
.cat-filter-btn {
    padding: 6px 16px; border: 1px solid var(--grey-03); border-radius: 20px;
    font-size: 13px; color: var(--grey-01); background: var(--white);
    cursor: pointer; transition: all .2s; text-decoration: none; display: inline-block;
}
.cat-filter-btn:hover, .cat-filter-btn.is-active { background: var(--grey-01); color: var(--white); border-color: var(--grey-01); }
.load-more-wrap { text-align: center; margin-top: 48px; }

/* =====================
   SINGLE POST — design definitivo (Figma 195:8884)
   ===================== */
/* Hero card articolo — inset asimmetrico 60/0/60/0 stesso pattern --lavora */
.page-hero-card.page-hero-card--article {
    height: 442px; min-height: 0;
    align-items: stretch;
    border-radius: 60px 0 60px 0;
    overflow: hidden;
    position: relative;
}
.page-hero-card.page-hero-card--article .page-hero-card-bg {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: 0; pointer-events: none;
}
.page-hero-card.page-hero-card--article .page-hero-card-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: var(--black-true); opacity: 0.4;
}

/* Hero content (breadcrumb + h1) — top-left */
.phc-article-content {
    position: relative; z-index: 2;
    padding: 45px 57px;
    max-width: 600px;
    align-self: flex-start;
    display: flex; flex-direction: column;
    gap: 28px;
}
.phc-article-content h1 {
    font-size: var(--fs-h1); font-weight: var(--fw-bold);
    color: var(--white); line-height: var(--lh-h1);
    letter-spacing: 0; margin: 0;
}
/* Titolo lungo (>120 caratteri, classe messa da single.php): 42px invece di 48 così le righe
   in più non fanno sfondare l'h1 sulla .phc-article-meta in fondo al hero (card alta 442) */
.single-post .phc-article-content h1.is-long-title { font-size: 42px; }

/* Case history: titolo hero largo ~901px come Figma 182:5826 (box 1015 - 114 padding), non 486 */
.single-case-history .phc-article-content { max-width: 1015px; }

/* Hero breadcrumb white solido */
.single-post .page-hero-card-content .breadcrumb { font-size: 12px; padding: 0; text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.single-post .page-hero-card-content .breadcrumb a { color: var(--white); font-weight: 400; }
.single-post .page-hero-card-content .breadcrumb a:hover { color: var(--primary-cyan-light); }
.single-post .page-hero-card-content .breadcrumb-sep { color: var(--white); }
.single-post .page-hero-card-content .breadcrumb strong { color: var(--white); font-weight: 700; }

/* Meta (data + categoria) — bottom-left del hero card (Figma top=457 left=107) */
.phc-article-meta {
    position: absolute; z-index: 2;
    bottom: 32px; left: 57px;
    display: flex; align-items: center; gap: 12px;
    font-family: var(--font-base);
    font-size: 16px; font-weight: 700;
    line-height: 1.24; letter-spacing: 0;
    text-transform: uppercase;
    white-space: nowrap;
}
.phc-article-date { color: var(--primary-cyan-light); }
.phc-article-sep { color: var(--primary-blue-light); }
.phc-article-cat, .phc-article-cat a { color: var(--primary-cyan-light); text-decoration: none; }

/* Sezione contenuto — single column centrato 882px */
.article-content-section { padding: 120px 0 120px; }
.article-content {
    max-width: 882px;
    margin: 0 auto;
}

/* IMMAGINE / GALLERIA ARTICOLO — Figma 195:9277 (882×581, radius 24). Sotto al contenuto. */
.article-gallery-section { padding: 0 0 100px; }
.single-post .article-gallery { width: 882px; max-width: 100%; margin: 0 auto; }
.article-gallery--single { margin: 0 auto; }
.article-gallery--single img,
.article-gallery-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.article-gallery--single img { aspect-ratio: 882 / 581; border-radius: 24px; }
.article-gallery--slider {
    position: relative; aspect-ratio: 882 / 581;
    border-radius: 24px; overflow: hidden; background: var(--grey-04);
}
.article-gallery-track { display: flex; width: 100%; height: 100%; transition: transform .45s ease; }
.article-gallery-slide { flex: 0 0 100%; min-width: 100%; height: 100%; }
.article-gallery-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(26,27,29,0) 55%, rgba(26,27,29,0.5) 100%); pointer-events: none; }
.article-gallery-controls { position: absolute; z-index: 2; bottom: 28px; left: 28px; right: 28px; display: flex; justify-content: space-between; align-items: center; }
.article-gallery-dots { display: flex; gap: 14px; align-items: center; }
.article-gallery-dot { width: 6px; height: 6px; border-radius: 3px; background: var(--primary-cyan-light); opacity: 0.5; border: none; padding: 0; appearance: none; -webkit-appearance: none; cursor: pointer; transition: background .2s, opacity .2s; flex-shrink: 0; }
.article-gallery-dot.is-active { background: var(--primary-cyan); opacity: 1; }
.article-gallery-arrows { display: flex; gap: 18px; align-items: center; }
.article-gallery-btn { width: 45px; height: 45px; border-radius: 50%; border: 1px solid var(--white); background: transparent; color: var(--white); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s, color .2s, opacity .2s; flex-shrink: 0; }
.article-gallery-btn:hover:not(:disabled) { background: var(--white); color: var(--primary-blue); }
.article-gallery-btn:disabled { opacity: 0.4; pointer-events: none; }

/* Tipografia interna — Figma usa H heading + P 20 Medium grey-700 */
.article-content > * { margin: 0; }

/* Heading: Bold black-true */
.article-content h2,
.article-content h3 {
    font-family: var(--font-base);
    font-weight: 700;
    color: var(--black-true);
    line-height: 1.3;
    letter-spacing: 0;
}
.article-content h2 { font-size: 28px; }
.article-content h3 { font-size: 24px; }

/* Body text: 20 Medium grey-700 */
.article-content p,
.article-content ul,
.article-content ol {
    font-family: var(--font-base);
    font-size: 20px; font-weight: 500;
    color: var(--grey-700);
    line-height: 1.3;
    letter-spacing: 0;
}
.article-content ul,
.article-content ol { padding-left: 24px; }
.article-content li + li { margin-top: 8px; }
.article-content a {
    color: var(--primary-blue);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 700;
}
.article-content a:hover { color: var(--primary-cyan); }
.article-content strong { font-weight: 700; color: var(--black-true); }

/* Spacing tra elementi — block-flow con margin (no flex gap)
   - Default tra siblings: 16px
   - Section break (prima heading): 60px h2 / 48px h3
   - Dopo heading: 20px
   - Intorno a figure/image/blockquote/gallery: 48px / 32px
*/
.article-content > * + * { margin-top: 16px; }
.article-content > * + h2 { margin-top: 60px; }
.article-content > * + h3 { margin-top: 48px; }
.article-content > h2 + *,
.article-content > h3 + * { margin-top: 20px; }

.article-content blockquote {
    border-left: 4px solid var(--primary-blue-light);
    padding: 12px 0 12px 28px;
    font-size: 22px; font-weight: 500; line-height: 1.3;
    color: var(--black-true);
}
.article-content blockquote p { font-size: inherit; color: inherit; font-weight: inherit; }
.article-content > * + blockquote,
.article-content > blockquote + * { margin-top: 32px; }

/* Immagini nel contenuto — WordPress block editor + classic
   Default: full-width nella colonna 882px, rounded 24, gap 80 sopra/sotto (section-level) */
.article-content > * + figure,
.article-content > * + .wp-block-image,
.article-content > * + .wp-block-gallery,
.article-content > figure + *,
.article-content > .wp-block-image + *,
.article-content > .wp-block-gallery + * { margin-top: 80px; }
.article-content figure,
.article-content .wp-block-image,
.article-content .wp-block-gallery {
    margin: 0;
    padding: 0;
}
.article-content figure img,
.article-content .wp-block-image img,
.article-content img {
    width: 100%;
    height: auto;
    border-radius: 24px;
    display: block;
    object-fit: cover;
    margin: 0;
}
.article-content figcaption,
.article-content .wp-element-caption {
    font-family: var(--font-base);
    font-size: 14px;
    font-weight: 500;
    color: var(--grey-01);
    line-height: 1.4;
    margin: 16px 0 0;
    padding: 0;
    text-align: center;
    font-style: normal;
}
/* Alignment classico Gutenberg */
.article-content .alignleft   { float: left; max-width: 50%; margin: 8px 24px 16px 0; }
.article-content .alignright  { float: right; max-width: 50%; margin: 8px 0 16px 24px; }
.article-content .aligncenter { margin-left: auto; margin-right: auto; }
.article-content .alignwide,
.article-content .alignfull {
    max-width: none;
    margin-left: calc(-1 * (100vw - 882px) / 6);
    margin-right: calc(-1 * (100vw - 882px) / 6);
    width: auto;
}
.article-content .alignfull {
    margin-left: calc(-1 * (100vw - 882px) / 2);
    margin-right: calc(-1 * (100vw - 882px) / 2);
}
.article-content .alignfull img,
.article-content .alignwide img { border-radius: 24px; }

/* Gallery WP block — grid responsive */
.article-content .wp-block-gallery {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin: 32px 0;
}
.article-content .wp-block-gallery figure { margin: 0; }
.article-content .wp-block-gallery img { aspect-ratio: 4/3; }
.article-content .wp-block-gallery .blocks-gallery-grid { display: contents; }

/* Articoli correlati */
.article-correlati-section { padding: 0 0 120px; }
.article-correlati-title {
    font-size: 36px;
    font-weight: 700;
    color: var(--black-true);
    line-height: 1.2;
    letter-spacing: 0;
    margin: 0 0 44px;
}

/* Related articles */
.post-correlati-title {
    font-size: 36px;
    font-weight: 700;
    color: var(--black-true);
    line-height: 1.2;
    margin-bottom: 32px;
}

/* =====================
   FORMS
   ===================== */
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 31px; margin-bottom: 24px; }
.form-group { display: flex; flex-direction: column; gap: 8px; }
.form-group--full { grid-column: 1 / -1; }
.form-group label { font-size: 14px; font-weight: 400; color: #afb1b6; letter-spacing: 0.4px; }
.form-control {
    padding: 0 16px; height: 60px; border: 1px solid #afb1b6; border-radius: 8px;
    font-size: 14px; color: var(--black); background: var(--white);
    font-family: var(--font-base); transition: border-color .2s; width: 100%;
}
.form-control:focus { outline: none; border-color: var(--grey-01); }
textarea.form-control { resize: vertical; height: 240px; padding-top: 16px; padding-bottom: 16px; display: block; }
select.form-control {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23565A62' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px;
}
.form-row--note { display: block; margin-bottom: 16px; }
/* Nota "campi obbligatori": va allineata al TESTO di "Accetta…", non al checkbox.
   Il rientro = inset lista + larghezza checkbox + gap, e cambia per pagina/breakpoint,
   quindi lo tengo in una variabile invece di un valore fisso. */
.wpcf7-form { --acc-indent: 61px; }                                   /* 14 + 24 + 23 */
.page-template-page-lavora-con-noi .wpcf7-form { --acc-indent: 57px; }
.form-required-note { font-size: 14px; color: #61646b; margin: 0; padding-left: var(--acc-indent, 0); }
.form-check { display: flex; align-items: flex-start; gap: 23px; margin-bottom: 20px; font-size: 14px; color: #61646b; cursor: pointer; }
.form-check input { margin-top: 2px; flex-shrink: 0; }
.form-check a { color: var(--grey-01); text-decoration: underline; }

/* =====================
   CONSULENZA — design definitivo (Figma 182:7140)
   ===================== */
/* Breadcrumb consulenza — uppercase, primary-blue current */
.page-consulenza .breadcrumb { font-size: 12px; color: var(--black-true); padding: 0; text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px; display: flex; align-items: center; gap: 8px; }
.page-consulenza .breadcrumb a { color: var(--black-true); font-weight: 400; }
.page-consulenza .breadcrumb a:hover { color: var(--primary-blue); }
.page-consulenza .breadcrumb-sep { color: var(--black-true); }
.page-consulenza .breadcrumb strong { color: var(--black-true); font-weight: 700; }

/* Hero — 2-col (H1 sx, intro+CTA dx) */
.page-consulenza .page-inner-hero.section { padding-top: 65px; padding-bottom: 0; margin-top: var(--offset); }
.page-consulenza .page-inner-hero .breadcrumb { margin-bottom: 31px; }
.page-consulenza .page-inner-hero-content { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: start; }
.page-consulenza .page-inner-hero-content h1 { font-size: var(--fs-h1); font-weight: var(--fw-bold); color: var(--black-true); line-height: var(--lh-h1); letter-spacing: 0; margin: 0; }

.page-consulenza .consulenza-hero-right { display: flex; flex-direction: column; gap: 32px; padding-top: 10px; color: var(--black-true); }
.page-consulenza .consulenza-hero-right p { font-size: 16px; line-height: 1.4; letter-spacing: 0; color: var(--black-true); margin: 0; padding-top: 0; }
.page-consulenza .consulenza-hero-lead { font-weight: 700; }
.page-consulenza .consulenza-hero-body { font-weight: 500; }
.page-consulenza .consulenza-hero-right .btn-outline-blue { align-self: flex-start; }

/* Button: outline-blue (Figma Button property1=Outline-blue) */
.btn-outline-blue {
    display: inline-flex; align-items: center; justify-content: center;
    height: 56px; padding: 12px 20px;
    border: 2px solid var(--primary-blue);
    border-radius: 56px; background: transparent;
    color: var(--primary-blue);
    font-family: var(--font-base);
    font-size: 14px; font-weight: 700; letter-spacing: 0.2px;
    line-height: 1.3; text-transform: none;
    text-decoration: none; cursor: pointer;
    transition: background .2s ease, color .2s ease;
    white-space: nowrap;
}
.btn-outline-blue:hover { background: var(--primary-blue); color: var(--white); }

/* Dark card — Caratteristiche chiave (Figma Frame5) */
.consulenza-dark-section { padding: 80px 0 0; }    /* Figma 182:7140: hero→dark 80 (era 103) */
.consulenza-dark-card {
    background: var(--primary-blue);
    border-radius: 24px;
    padding: 100px 115px;
    overflow: hidden;
}
.consulenza-dark-card h2 { font-size: 36px; font-weight: 700; color: var(--white); line-height: 1.2; letter-spacing: 0; margin: 0 0 56px; }
.consulenza-dark-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 52px 44px; }
.consulenza-dark-item { display: flex; gap: 20px; align-items: flex-start; }
.consulenza-dark-item-icon { flex-shrink: 0; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; }
.consulenza-dark-item-icon svg { display: block; width: 32px; height: 32px; }
.consulenza-dark-item-text { display: flex; flex-direction: column; gap: 16px; }
.consulenza-dark-item-text strong { font-size: 20px; font-weight: 700; color: var(--white); line-height: 1.3; letter-spacing: 0; }
.consulenza-dark-item-text p { font-size: 16px; font-weight: 500; color: var(--primary-cyan-light); margin: 0; line-height: 1.4; letter-spacing: 0; }
/* Variante AQUA-GREEN (Trattamenti offerti settore — Figma 773:8965): bg verde acqua, desc bianca, icona da immagine */
.consulenza-dark-card--aqua { background: var(--primary-aqua); }
.consulenza-dark-card--aqua .consulenza-dark-item-text p { color: var(--white); }
.consulenza-dark-item-icon img { display: block; width: 32px; height: 32px; object-fit: contain; }

/* Spaziature pagina settore FIGLIO (Figma 169:5390): gap 120px tra intro/aspetti/trattamenti,
   poi 44px tra Trattamenti → Come interveniamo → CTA (le ultime tre sono ravvicinate). */
.settore-intro-section { padding-top: 120px; padding-bottom: 60px; }
.settore-aspetti-section { padding: 60px 0; }
.settore-trattamenti-section { padding: 60px 0 22px; }
.settore-interventi-section { padding: 22px 0; }
.single-settore .cta-consulenza--settore { padding-top: 22px; }
@media (min-width: 769px) {
    .single-settore .cta-consulenza--settore { padding-bottom: 120px; }   /* Figma 169:5390: CTA→footer 120 (era 100) */
}
@media (max-width: 768px) {
    .settore-intro-section { padding-top: 60px; padding-bottom: 32px; }
    .settore-aspetti-section { padding: 32px 0; }
    .settore-trattamenti-section { padding: 32px 0 16px; }
    .settore-interventi-section { padding: 16px 0; }
    .single-settore .cta-consulenza--settore { padding-top: 16px; }
}

/* Form section — Scrivici (Figma 188:7621, 882px centered) */
.consulenza-form-section { padding: 120px 0 120px; } /* Figma 182:7140: dark→form 120 (era 101) */
.consulenza-form-layout { max-width: 882px; margin: 0 auto; }
.consulenza-form-header { margin-bottom: 58px; }
.consulenza-form-header h2 { font-size: 36px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 0; }
.consulenza-form-section .form-row { grid-template-columns: 1fr 1fr; gap: 31px; margin-bottom: 24px; }

/* Form fields — Figma Form-input-top-label-positive */
.page-consulenza .form-group { gap: 8px; }
.page-consulenza .form-group > p,
.page-supporto .form-group > p { display: flex; flex-direction: column; gap: 8px; margin: 0; }   /* CF7 wrappa label+campo in <p>: flex per gap 8px label->input (Figma 376:13139 / 378:13478) */
.page-consulenza .form-group label { color: var(--primary-blue); font-size: 14px; font-weight: 500; line-height: 20px; letter-spacing: 0.4px; }
.page-consulenza .form-control {
    background: var(--primary-cyan-light);
    border: 1px solid var(--primary-blue-light);
    color: var(--primary-blue);
    font-size: 16px; font-weight: 500; line-height: 24px;
    height: 60px; border-radius: 8px;
    padding: 12px;
}
.page-consulenza .form-control::placeholder { color: var(--primary-blue); opacity: 0.45; }
.page-consulenza .form-control:focus { outline: none; border-color: var(--primary-blue); }
.page-consulenza textarea.form-control { height: 192px; padding: 16px 12px; line-height: 1.4; resize: vertical; }
.page-consulenza select.form-control {
    appearance: none; -webkit-appearance: none;
    padding-right: 44px;
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 12px center;
}

/* Acceptance checkbox — Figma blue square (188:7667) */
.page-consulenza .wpcf7-acceptance label {
    display: flex; align-items: flex-start; gap: 23px;
    color: var(--grey-700); font-size: 14px; font-weight: 500;
    line-height: 1.4; letter-spacing: 0.2px;
    margin: 16px 0 0;
}
.page-consulenza .wpcf7-acceptance label a {
    color: var(--black-true); font-weight: 700;
    text-decoration: underline;
}
.page-consulenza .wpcf7-acceptance input[type="checkbox"] {
    appearance: none; -webkit-appearance: none;
    width: 24px; height: 24px;
    border: 2px solid var(--primary-blue);
    border-radius: 4px;
    background: var(--white);
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
    margin: 0;
    transition: background .15s ease;
}
.page-consulenza .wpcf7-acceptance input[type="checkbox"]:checked { background: var(--primary-blue); }
.page-consulenza .wpcf7-acceptance input[type="checkbox"]:checked::after {
    content: ''; position: absolute;
    left: 6px; top: 2px;
    width: 6px; height: 12px;
    border: solid var(--white);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* Submit Invia — Figma Button property1=Blue (cyan-light arrow circle).
   GENERICO per TUTTI i form del sito (consulenza, supporto, BIM): qualsiasi
   <div class="form-submit-row"> attorno al [submit] ottiene la freccia animata. */
/* Figma 188:7572: privacy → bottone = 40. Il gap VISIBILE era 70 perché OLTRE al
   margin-top:40 del submit-row si sommavano: form-row margin-bottom 24 + .form-check
   margin-bottom 20 + descender inline-block del list-item. Azzero tutto: resta il solo 40. */
.wpcf7-form .form-row:has(.wpcf7-acceptance) { margin-bottom: 0; }
/* Consenso privacy su UNA riga: il testo GDPR misura 704px a 14px, ma la riga del
   consenso ereditava le 2 colonne del .form-row (429px) e andava a capo. A colonna
   piena lo spazio utile e' 842px (889 - checkbox 24 - gap 23) => entra. */
.wpcf7-form .form-row:has(.wpcf7-acceptance) { grid-template-columns: 1fr; }
.wpcf7-form .form-row:has(.wpcf7-acceptance) > p { margin: 0; }
.wpcf7-form .form-row:has(.wpcf7-acceptance) .form-check { margin-bottom: 0; }
.wpcf7-form .form-row:has(.wpcf7-acceptance) .wpcf7-list-item { display: block; }
/* messaggio→privacy = 24 (Figma 188:7573 gap-24): tolgo il margin-top:16 sopra la privacy
   (le regole per-pagina lo mettevano) — qui ha specificità più alta */
.wpcf7-form .form-row:has(.wpcf7-acceptance) .wpcf7-acceptance label { margin-top: 0; }
.form-submit-row { margin-top: 40px; position: relative; display: inline-flex; align-items: center; }
/* lo spinner CF7 (has-spinner) sta DENTRO .form-submit-row dopo l'input e ne allarga
   la larghezza: lo tolgo dal flusso così la riga combacia col bottone e la freccia resta dentro */
.form-submit-row .wpcf7-spinner { position: absolute; right: -44px; margin: 0; }
.page-consulenza input.wpcf7-submit.btn-supporto,
.page-consulenza .btn-blue {
    display: inline-flex; align-items: center;
    width: auto; height: 56px;
    padding: 12px 64px 12px 24px;
    background-color: var(--primary-blue);
    border: none; border-radius: 56px;
    color: var(--white);
    font-family: var(--font-base);
    font-size: 14px; font-weight: 700; letter-spacing: 0.2px;
    line-height: 1.3; text-transform: none;
    cursor: pointer;
    transition: background-color .2s ease;
}
.page-consulenza input.wpcf7-submit.btn-supporto:hover,
.page-consulenza .btn-blue:hover { background-color: #1d4762; color: var(--white); }

/* Freccia animata "doppia freccia slide-through" nel cerchio (clip border-radius:50%).
   L'input non può avere figli/pseudo-elementi → uso il wrapper .form-submit-row::after.
   Due layer con lo STESSO chevron: layer1 esce a destra, layer2 entra da sinistra. */
.form-submit-row::after {
    content: ""; position: absolute;
    right: 12px; top: 50%; transform: translateY(-50%);
    width: 32px; height: 32px; border-radius: 50%;
    background-color: #dbedf1;
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M11 16h10M16 11l5 5-5 5' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M11 16h10M16 11l5 5-5 5' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat, no-repeat;
    background-size: 32px 32px, 32px 32px;
    background-position: 0 center, -32px center;
    transition: background-position .35s ease;
    pointer-events: none;
}
.form-submit-row:hover::after {
    background-position: 32px center, 0 center;
}

/* Stati di validazione — GENERICI per tutti i form CF7 del sito */
.form-control.is-invalid,
.wpcf7-not-valid { border-color: #d64545 !important; }
.field-error { display: block; color: #d64545; font-size: 12px; margin-top: 5px; }
.wpcf7-not-valid-tip { color: #d64545; font-size: 12px; margin-top: 5px; }
.wpcf7-acceptance-check.is-invalid,
.form-check-input.is-invalid { border-color: #d64545 !important; }
.privacy-error { display: block; margin-left: 0; }

/* Legacy — kept for back-compat */
.consulenza-benefici { background: var(--grey-04); border-radius: var(--radius); padding: 28px; }
.consulenza-benefici h3 { font-size: 18px; font-weight: 700; color: var(--black-true); margin-bottom: 20px; }
.beneficio-item { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 18px; }
.beneficio-item strong { display: block; font-size: 14px; font-weight: 700; color: var(--black); margin-bottom: 4px; }
.beneficio-item p { font-size: 13px; color: var(--grey-02); margin: 0; }

/* =====================
   SUPPORTO — design definitivo (Figma 195:7982)
   ===================== */
/* Hero usa .page-hero-card--bim (asimmetrico 60/0/60/0).
   Layout: H1 left ancorato a sx (max 485 come Figma), descrizione ancorata a dx (539 come Figma).
   Lo spazio tra i due cresce con la viewport — su schermi grandi la descrizione resta verso destra. */
.page-supporto .page-hero-card-content--bim {
    justify-content: space-between;
    gap: 0;
}
.page-supporto .page-hero-card-left {
    flex: 0 1 485px;
    max-width: 485px;
}
.page-supporto .page-hero-card-right {
    flex: 0 1 539px;
    max-width: 539px;
    align-self: flex-start;
    padding-top: 44px;
    padding-left: 0;
}
.page-supporto .page-hero-card-right p { max-width: 100%; }

/* Contenuto sidebar + form (Figma 195:8326 — gap 144) */
.supporto-content-section { padding: 120px 0 120px; scroll-margin-top: calc(var(--offset) + 24px); }  /* Figma 195:7982: hero→contenuto 120 (era ~94); scroll-margin per atterraggio anchor sotto l'header fisso */
.supporto-content-grid {
    display: grid;
    grid-template-columns: 313px 882px;
    gap: 144px;
    align-items: start;
}
.supporto-form-col { min-width: 0; }

/* Sidebar tipi supporto */
.supporto-tipi {
    display: flex; flex-direction: column;
    gap: 40px;
    width: 313px;
}
.supporto-tipo {
    display: flex; flex-direction: column;
    gap: 20px;
}
.supporto-tipo-header {
    display: flex; flex-direction: column;
    gap: 17px;
}
.supporto-tipo-icon {
    width: 48px; height: 48px;
    background: var(--primary-cyan-light);
    color: var(--primary-blue);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.supporto-tipo-icon svg { display: block; width: 24px; height: 24px; }
.supporto-tipo h3 {
    font-size: 24px; font-weight: 700;
    color: var(--black-true);
    line-height: 1.3; letter-spacing: 0;
    margin: 0;
}
.supporto-tipo p {
    font-size: 16px; font-weight: 500;
    color: var(--grey-01);
    line-height: 1.4; letter-spacing: 0;
    margin: 0;
    max-width: 292px;
}

/* Form fields supporto — usa stesso pattern .page-consulenza/.page-bim */
.page-supporto .form-group { gap: 8px; }
.page-supporto .form-group label { color: var(--primary-blue); font-size: 14px; font-weight: 500; line-height: 20px; letter-spacing: 0.4px; }
.page-supporto .form-control {
    background: var(--primary-cyan-light);
    border: 1px solid var(--primary-blue-light);
    color: var(--primary-blue);
    font-size: 16px; font-weight: 500; line-height: 24px;
    height: 60px; border-radius: 8px;
    padding: 12px;
}
.page-supporto .form-control::placeholder { color: var(--primary-blue); opacity: 0.45; }
.page-supporto .form-control:focus { outline: none; border-color: var(--primary-blue); }
.page-supporto textarea.form-control { height: 192px; padding: 16px 12px; line-height: 1.4; resize: vertical; }
.page-supporto select.form-control {
    appearance: none; -webkit-appearance: none;
    padding-right: 44px;
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 12px center;
}
.page-supporto .form-row { grid-template-columns: 1fr 1fr; gap: 31px; margin-bottom: 24px; }
.page-supporto .form-submit-row { margin-top: 40px; }

/* Acceptance checkbox supporto */
.page-supporto .wpcf7-acceptance label {
    display: flex; align-items: flex-start; gap: 23px;
    color: var(--grey-700); font-size: 14px; font-weight: 500;
    line-height: 1.4; letter-spacing: 0.2px;
    margin: 16px 0 0;
}
.page-supporto .wpcf7-acceptance label a {
    color: var(--black-true); font-weight: 700;
    text-decoration: underline;
}
.page-supporto .wpcf7-acceptance input[type="checkbox"] {
    appearance: none; -webkit-appearance: none;
    width: 24px; height: 24px;
    border: 2px solid var(--primary-blue);
    border-radius: 4px;
    background: var(--white);
    cursor: pointer; position: relative;
    flex-shrink: 0; margin: 0;
    transition: background .15s ease;
}
.page-supporto .wpcf7-acceptance input[type="checkbox"]:checked { background: var(--primary-blue); }
.page-supporto .wpcf7-acceptance input[type="checkbox"]:checked::after {
    content: ''; position: absolute;
    left: 6px; top: 2px;
    width: 6px; height: 12px;
    border: solid var(--white);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* Submit Invia — il form Supporto usa btn-supporto, già overridato per .page-supporto come Blue button */
.page-supporto input.wpcf7-submit.btn-supporto {
    display: inline-flex; align-items: center;
    width: auto; height: 56px;
    padding: 12px 64px 12px 24px;
    background-color: var(--primary-blue);
    border: none; border-radius: 56px;
    color: var(--white);
    font-family: var(--font-base);
    font-size: 14px; font-weight: 700; letter-spacing: 0.2px;
    line-height: 1.3; text-transform: none;
    cursor: pointer;
    transition: background-color .2s ease;
}
.page-supporto input.wpcf7-submit.btn-supporto:hover { background-color: #1d4762; color: var(--white); }

/* =====================
   PAGE INNER HERO (two-col header)
   ===================== */
.page-inner-hero.section { padding-top: 48px; padding-bottom: 40px; margin-top: var(--offset); }
.page-inner-hero .breadcrumb { margin-bottom: 24px; }
.page-inner-hero-content { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
.page-inner-hero-content h1 { font-size: 48px; font-weight: 700; color: var(--grey-01); line-height: 1.2; letter-spacing: 0.2px; margin: 0; }
.page-inner-hero-content p  { font-size: 16px; font-weight: 700; color: var(--grey-01); line-height: 1.3; letter-spacing: 0.2px; margin: 0; padding-top: 8px; }

/* =====================
   PAGE HERO CARD (inset card — Lavora con noi, File BIM)
   ===================== */
.page-hero-card-wrap { padding-top: var(--offset); }
.page-hero-card {
    margin: 0 51px; border-radius: 24px; background: var(--primary-blue);
    overflow: hidden; position: relative; min-height: 564px;
    display: flex; align-items: flex-end;
}
.page-hero-card-bg {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: 0;
}
.page-hero-card-content {
    position: relative; z-index: 1;
    padding: 65px 72px; display: flex; flex-direction: column;
    gap: 24px; max-width: 680px;
}
/* Articoli blog: i titoli reali sono lunghi → colonna più larga, come fa il design per i titoli
   lunghi (Singola case history: testo a 901px). Evita il blocco stretto e altissimo. */
.single-post .page-hero-card-content { max-width: 960px; }
.page-hero-card-content h1 {
    font-size: 48px; font-weight: 700; color: var(--white);
    line-height: 1.3; letter-spacing: 0.2px; margin: 0;
}
.page-hero-card-content .breadcrumb a,
.page-hero-card-content .breadcrumb span { color: rgba(255,255,255,.65); }
.page-hero-card-content .breadcrumb strong { color: var(--white); }

/* Hero card — taller variant (Servizi: 680px, content top-left) */
.page-hero-card--lg { min-height: 680px; align-items: flex-start; }

/* Hero card — image placeholder (icon center-right) */
.page-hero-card-ph {
    position: absolute; inset: 0; z-index: 0;
    display: flex; align-items: center; justify-content: flex-end;
    padding-right: 360px;
}

/* File BIM hero (Figma 207:5173 — height 442, rounded-tl/br 60 asymmetric) */
.page-hero-card--bim {
    height: 442px; min-height: 0;
    align-items: stretch;
    border-radius: 60px 0 60px 0;
    overflow: hidden;
}
.page-hero-card--bim .page-hero-card-bg {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: 0; pointer-events: none;
}
.page-hero-card--bim .page-hero-card-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: var(--black-true); opacity: 0.4;
}
/* Hero card File BIM: H1 ancorato a sx (max 485) + descrizione+CTA ancorate a dx (max 569 come Figma).
   Stesso pattern di .page-supporto: justify-content space-between, no gap fluido. */
.page-hero-card-content--bim {
    position: relative; z-index: 2;
    max-width: 100%; width: 100%; flex-direction: row;
    justify-content: space-between;
    align-items: flex-start; padding: 45px 57px; gap: 0;
}
.page-hero-card-left  { flex: 0 1 485px; max-width: 485px; display: flex; flex-direction: column; gap: 28px; align-self: flex-start; }
.page-hero-card-left h1 { font-size: var(--fs-h1); font-weight: var(--fw-bold); color: var(--white); line-height: var(--lh-h1); letter-spacing: 0; margin: 0; }
/* Right col: paragrafo + 2 bottoni top-aligned (Figma 207:5487 y_rel=88 vs title y_rel=45 → padding-top 43) */
.page-hero-card-right { flex: 0 1 569px; max-width: 569px; display: flex; flex-direction: column; gap: 27px; padding-left: 0; padding-top: 43px; align-self: flex-start; }
.page-hero-card-right p { font-size: 16px; font-weight: 700; color: var(--white); line-height: 1.3; letter-spacing: 0.2px; margin: 0; max-width: 100%; }
.page-hero-card-btns { display: flex; gap: 24px; flex-wrap: wrap; align-items: center; }
.page-hero-card-btns .btn-blue-solid,
.page-hero-card-btns .btn-cyan-light { align-self: flex-start; width: max-content; max-width: 100%; flex-shrink: 0; }

/* Button: blue solid (no icon) — Figma Button Blue showIcon=false */
.btn-blue-solid {
    display: inline-flex; align-items: center; justify-content: center;
    height: 56px; padding: 12px 20px;
    background: var(--primary-blue);
    border: none; border-radius: 56px;
    color: var(--white);
    font-family: var(--font-base);
    font-size: 14px; font-weight: 700; letter-spacing: 0.2px;
    line-height: 1.3; text-transform: none;
    text-decoration: none; cursor: pointer;
    transition: background .2s ease;
    white-space: nowrap;
}
.btn-blue-solid:hover { background: #1d4762; color: var(--white); }

/* Button: cyan-light w/ primary-blue arrow circle — Figma Button Cyan-light */
.btn-cyan-light {
    display: inline-flex; align-items: center; gap: 15px;
    height: 56px; padding: 12px 20px;
    background: var(--primary-cyan-light);
    border: none; border-radius: 56px;
    color: var(--black-true);
    font-family: var(--font-base);
    font-size: 14px; font-weight: 700; letter-spacing: 0.2px;
    line-height: 1.3; text-transform: none;
    text-decoration: none; cursor: pointer;
    transition: background .2s ease;
    white-space: nowrap;
}
/* Icona freccia con SLIDE-THROUGH (Figma 207:5512, pattern standard del sito): cerchio blu→cyan,
   la freccia esce a destra e una seconda entra da sinistra. Due bg-image, position animata. */
.btn-cyan-light::after {
    content: ''; flex-shrink: 0;
    width: 32px; height: 32px; border-radius: 16px;
    background-color: var(--primary-blue);
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h14M12 6l6 6-6 6'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h14M12 6l6 6-6 6'/%3E%3C/svg%3E");
    background-repeat: no-repeat, no-repeat;
    background-size: 16px 16px, 16px 16px;
    background-position: center, -32px center;   /* 2ª freccia nascosta a sinistra */
    transition: background-color .25s ease, background-position .35s ease;
}
.btn-cyan-light:hover { background: #c5e0ea; }
.btn-cyan-light:hover::after {
    background-color: var(--primary-cyan);
    background-position: calc(100% + 32px) center, center;   /* esce a dx, entra da sx */
}

/* =====================
   BLOG ARCHIVE — design definitivo (Figma 195:8327)
   ===================== */
.archive-blog .blog-archive-hero { padding-top: var(--offset); padding-bottom: 0; }
.archive-blog .blog-archive-hero .breadcrumb { font-size: 12px; color: var(--black-true); padding: 0; margin-top: 65px; text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px; display: flex; align-items: center; gap: 8px; }
.archive-blog .blog-archive-hero .breadcrumb a { color: var(--black-true); font-weight: 400; }
.archive-blog .blog-archive-hero .breadcrumb a:hover { color: var(--primary-blue); }
.archive-blog .blog-archive-hero .breadcrumb-sep { color: var(--black-true); }
.archive-blog .blog-archive-hero .breadcrumb strong { color: var(--black-true); font-weight: 700; }
.archive-blog .blog-archive-top {
    display: flex; justify-content: space-between; align-items: center;
    padding: 64px 0 0; gap: 24px; flex-wrap: wrap;
}
.archive-blog .blog-archive-title { font-size: 36px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 0; }
.archive-blog .blog-cat-filter { display: flex; }
/* Select-filtri (Figma 195:8690/8698) — dropdown custom multi-checkbox.
   Trigger: pill 255×48 border cyan-light, rounded 8 (top-only quando aperto).
   Menu: lista checkbox primary-blue, padding 11/3, gap 4, max-height scrollable. */
.blog-cat-select-wrap {
    position: relative; width: 255px;
}
.blog-cat-select-trigger {
    display: flex; align-items: center; gap: 16px;
    width: 100%; height: 48px; padding: 12px;
    background: var(--white);
    border: 1px solid var(--primary-blue-light);
    border-radius: 8px;
    font-family: var(--font-base);
    font-size: 16px; font-weight: 500; color: var(--primary-blue);
    line-height: 1.4; text-align: left;
    cursor: pointer;
    transition: border-radius .2s ease, border-color .2s ease;
}
.blog-cat-select-label {
    flex: 1 0 0; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.blog-cat-select-chevron {
    flex-shrink: 0; color: var(--primary-blue);
    transition: transform .25s ease;
}
.blog-cat-select-wrap.is-open .blog-cat-select-trigger {
    border-radius: 8px 8px 0 0;
}
.blog-cat-select-wrap.is-open .blog-cat-select-chevron {
    transform: rotate(180deg);
}

/* Stato "effettuato" (Figma 195:8709): filtri attivi → label "<Nome cat> +N" e X clear overlay */
.blog-cat-select-label .blog-cat-select-first {
    font-weight: 500; color: var(--black-true);
}
.blog-cat-select-label .blog-cat-select-more {
    font-weight: 700; color: var(--black-true); margin-left: 4px;
}
.blog-cat-select-wrap.is-applied .blog-cat-select-chevron { display: none; }
.blog-cat-select-clear {
    position: absolute; right: 12px; top: 12px; z-index: 3;
    width: 24px; height: 24px; padding: 0;
    background: transparent; border: none;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--primary-blue); cursor: pointer;
    transition: transform .2s ease, color .2s ease;
}
.blog-cat-select-clear:hover { transform: scale(1.1); color: var(--primary-blue-dark, var(--primary-blue)); }
.blog-cat-select-clear svg { display: block; }

/* Menu open */
.blog-cat-select-menu {
    position: absolute; top: 100%; left: 0; right: 0; z-index: 10;
    background: var(--white);
    border: 1px solid var(--primary-blue-light);
    border-top: none;
    border-radius: 0 0 8px 8px;
    padding: 11px 3px;
    display: none; flex-direction: column; gap: 4px;
    max-height: 320px; overflow-y: auto;
}
.blog-cat-select-wrap.is-open .blog-cat-select-menu { display: flex; }

/* Singola voce: checkbox + label */
.blog-cat-option {
    display: flex; align-items: center; gap: 8px;
    padding: 4px; cursor: pointer;
    user-select: none;
}
.blog-cat-option input[type="checkbox"] {
    position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;
}
/* Box checkbox 20×20 rounded 4 — Figma 188:7664 (checked) / 188:7671 (unchecked) */
.blog-cat-checkbox {
    flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
    width: 20px; height: 20px; border-radius: 4px;
    border: 2px solid var(--primary-blue);
    background: transparent;
    transition: background .2s ease;
}
.blog-cat-checkbox svg { display: none; }
.blog-cat-option input:checked ~ .blog-cat-checkbox {
    background: var(--primary-blue);
    border-color: var(--primary-blue);
}
.blog-cat-option input:checked ~ .blog-cat-checkbox svg { display: block; }
.blog-cat-option-text {
    font-family: var(--font-base); font-size: 14px; font-weight: 500;
    color: var(--primary-blue); line-height: 24px; letter-spacing: 0.2px;
}

/* Submit fallback no-JS */
.blog-cat-select-submit {
    margin-left: 8px;
    background: var(--primary-blue); color: var(--white);
    border: none; border-radius: 8px;
    padding: 0 16px; height: 48px; cursor: pointer;
    font: 700 14px/1 var(--font-base);
}

/* Blog grid section padding (Figma top=334 - top blocco filtro 303 = 31px) */
.archive-blog .blog-archive-section { padding: 31px 0 120px; }
.archive-blog .blog-grid { row-gap: 80px; column-gap: 31px; }

/* Carica altri articoli — outline-blue button centrato */
.blog-load-more-wrap { display: flex; justify-content: center; margin-top: 80px; }

/* =====================
   DOWNLOAD — design definitivo (Figma 202:7345)
   ===================== */
/* Breadcrumb download — uppercase black-true */
.page-download .breadcrumb { font-size: 12px; color: var(--black-true); padding: 0; text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px; display: flex; align-items: center; gap: 8px; }
.page-download .breadcrumb a { color: var(--black-true); font-weight: 400; }
.page-download .breadcrumb a:hover { color: var(--primary-blue); }
.page-download .breadcrumb-sep { color: var(--black-true); }
.page-download .breadcrumb strong { color: var(--black-true); font-weight: 700; }

/* Hero — 2-col (H1 sx, intro Bold dx) */
.page-download .page-inner-hero.section { padding-top: 65px; padding-bottom: 0; margin-top: var(--offset); }
.page-download .page-inner-hero .breadcrumb { margin-bottom: 31px; }
.page-download .page-inner-hero-content { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: start; }
.page-download .page-inner-hero-content h1 { font-size: var(--fs-h1); font-weight: var(--fw-bold); color: var(--black-true); line-height: var(--lh-h1); letter-spacing: 0; margin: 0; }
.page-download .page-inner-hero-content p { font-size: 16px; font-weight: 700; color: var(--black-true); line-height: 1.4; letter-spacing: 0; margin: 0; padding-top: 17px; }

/* Categorie list */
.page-download-cats { padding: 103px 0 120px; }
.download-group { margin-bottom: 80px; }
.download-group:last-child { margin-bottom: 0; }
.page-download .download-group h2 { font-size: 28px; font-weight: 700; color: var(--black-true); line-height: 1.3; letter-spacing: 0; margin: 0 0 16px; }
.download-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }

/* Item — Figma ItemScarica (207:6157) */
.download-item {
    display: flex; gap: 40px;
    align-items: flex-start;
    padding: 28px 32px 44px;
    background: var(--primary-cyan-light);
    border: 1px solid var(--primary-blue-light);
    border-radius: 8px;
    text-decoration: none;
    transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
/* Hover come prototipo (item-scarica 207:6159): radius asimmetrico + testo shift +13, NO cambio colore */
.download-item:hover { border-radius: 24px 0 24px 24px; }
.download-item:hover .download-item-info { padding-left: 13px; }
.download-item-info { display: flex; flex-direction: column; gap: 20px; flex: 1 0 0; min-width: 0; }
.download-item-info strong { font-size: 20px; font-weight: 700; color: var(--primary-blue); line-height: 1.3; letter-spacing: 0; }
.download-item-info span  { font-size: 16px; font-weight: 500; color: var(--grey-700); line-height: 1.4; letter-spacing: 0; }
/* Icona download con slide VERTICALE (design item-scarica: esce sotto, entra dall'alto) */
.download-btn {
    width: 24px; height: 24px; flex-shrink: 0; overflow: hidden;
    background-color: transparent;
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12M7 10l5 5 5-5M4 21h16'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12M7 10l5 5 5-5M4 21h16'/%3E%3C/svg%3E");
    background-repeat: no-repeat, no-repeat;
    background-size: 24px 24px, 24px 24px;
    background-position: center center, center -30px;   /* 1ª visibile, 2ª nascosta sopra */
    transition: background-position .4s ease;
}
.download-btn svg { display: none; }
.download-item:hover .download-btn { background-position: center 30px, center center; }   /* 1ª esce sotto, 2ª entra dall'alto */
.download-btn svg { display: none; }

/* =====================
   LAVORA CON NOI — design definitivo (Figma 198:9357)
   ===================== */
/* Hero card lavora (Figma 198:9567 — 1338×680 rounded asimmetrico 60/0/60/0) */
.page-hero-card--lavora {
    height: 680px; min-height: 0;
    align-items: stretch;
    border-radius: 60px 0 60px 0;
    overflow: hidden;
}
.page-hero-card--lavora .page-hero-card-bg {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: 0; pointer-events: none;
}
.page-hero-card--lavora .page-hero-card-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: var(--black-true); opacity: 0.4;
}
.page-hero-card--lavora .page-hero-card-content {
    position: relative; z-index: 2;
    padding: 45px 57px;
    max-width: 540px; width: 540px;
    align-self: flex-start;
    display: flex; flex-direction: column;
    gap: 28px;
}
.page-hero-card--lavora .page-hero-card-content h1 {
    font-size: var(--fs-h1); font-weight: var(--fw-bold);
    color: var(--white); line-height: var(--lh-h1);
    letter-spacing: 0; margin: 0;
}
/* Breadcrumb hero lavora — bianco solido (override variante light grey) */
.page-lavora .page-hero-card-content .breadcrumb { font-size: 12px; padding: 0; text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px; display: flex; align-items: center; gap: 8px; }
.page-lavora .page-hero-card-content .breadcrumb a { color: var(--white); font-weight: 400; }
.page-lavora .page-hero-card-content .breadcrumb a:hover { color: var(--primary-cyan-light); }
.page-lavora .page-hero-card-content .breadcrumb-sep { color: var(--white); }
.page-lavora .page-hero-card-content .breadcrumb strong { color: var(--white); font-weight: 700; }

/* I nostri Valori — testo centrato + carousel 655×670 con overlay e controlli interni */
.lavora-valori-section { padding: 80px 0 0; }      /* Figma 198:9357: hero→valori 80 */
.lavora-valori-section .container { display: flex; flex-direction: column; align-items: center; gap: 56px; }
.lavora-valori-text { text-align: left; max-width: 654px; width: 100%; }
.lavora-valori-text h2 { font-size: 36px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 0 0 28px; }
.lavora-valori-text p  { font-size: 20px; font-weight: 500; color: var(--grey-700); line-height: 1.3; letter-spacing: 0; margin: 0; }
.lavora-valori-carousel-wrap {
    position: relative;
    width: 655px; max-width: 100%;
    height: 670px;
    border-radius: 16px;
    overflow: hidden;
    background: var(--grey-04);
}
.lavora-valori-carousel-wrap .az-carousel { display: flex; width: 100%; height: 100%; transition: transform .45s ease; }
.lavora-valori-carousel-wrap .az-carousel-slide { flex: 0 0 100%; min-width: 100%; height: 100%; }
.lavora-valori-carousel-wrap .az-carousel-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lavora-carousel-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(180deg, rgba(26,27,29,0.16) 35%, rgba(26,27,29,1) 110%);
    opacity: 0.8;
    pointer-events: none;
}
.lavora-carousel-controls {
    position: absolute; z-index: 2;
    bottom: 36px; left: 28px; right: 28px;
    display: flex; justify-content: space-between; align-items: center;
}
.lavora-carousel-controls .slider-dots { display: flex; gap: 14px; align-items: center; }
.lavora-carousel-controls .slider-dot {
    width: 6px; height: 6px; border-radius: 3px;
    background: var(--primary-cyan-light); opacity: 0.5;
    border: none; padding: 0;
    appearance: none; -webkit-appearance: none;
    cursor: pointer; transition: background .2s, opacity .2s;
    flex-shrink: 0;
}
.lavora-carousel-controls .slider-dot.is-active { background: var(--primary-cyan); opacity: 1; }
.lavora-carousel-controls .slider-arrows { display: flex; gap: 18px; align-items: center; }
.lavora-carousel-controls .slider-prev,
.lavora-carousel-controls .slider-next {
    width: 45px; height: 45px;
    border-radius: 50%;
    border: 1px solid var(--white);
    background: transparent;
    color: var(--white);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: background .2s, color .2s, opacity .2s;
    flex-shrink: 0;
}
.lavora-carousel-controls .slider-prev:hover:not(:disabled),
.lavora-carousel-controls .slider-next:hover:not(:disabled) { background: var(--white); color: var(--primary-blue); }
.lavora-carousel-controls .slider-prev:disabled,
.lavora-carousel-controls .slider-next:disabled { opacity: 0.4; pointer-events: none; }

/* Perché Acquasoft — card aqua-green con 3 colonne icona cerchio bianca (Figma 199:9700) */
.lavora-perche-section { padding: 80px 0 0; }      /* Figma: carosello→perché 80 */
.lavora-perche-card {
    background: var(--primary-aqua);
    border-radius: 16px;
    padding: 80px 114px;
    display: grid;
    grid-template-columns: repeat(3, 304fr);
    gap: 99px;
    justify-content: space-between;
}
.lavora-perche-item { display: flex; flex-direction: column; gap: 20px; }
.lavora-perche-icon-wrap {
    width: 68px; height: 68px;
    border-radius: 50%;
    background: var(--white);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.lavora-perche-icon-img { width: 32px; height: 32px; object-fit: contain; }
.lavora-perche-icon-svg { color: var(--primary-aqua); width: 24px; height: 24px; }
.lavora-perche-item h3 { font-size: 28px; font-weight: 700; color: var(--white); line-height: 1.3; letter-spacing: 0; margin: 0; }
.lavora-perche-item p  { font-size: 16px; font-weight: 500; color: var(--white); line-height: 1.4; letter-spacing: 0; margin: 0; }

/* Le persone di Aqasoft — slider 1338×670 rounded 24 + label sotto (Figma 199:9818) */
.lavora-persone-section { padding: 40px 0 0; }     /* Figma: perché→persone 40 */
.lavora-persone-section .container { display: flex; flex-direction: column; gap: 28px; }
.lavora-persone-carousel-wrap {
    position: relative;
    width: 100%; height: 670px;
    border-radius: 24px;
    overflow: hidden;
    background: var(--grey-04);
}
.lavora-persone-slider {
    display: flex;
    width: 100%; height: 100%;
    transition: transform .45s ease;
}
.lavora-persone-slide { flex: 0 0 100%; min-width: 100%; height: 100%; }
.lavora-persone-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lavora-persone-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(180deg, rgba(26,27,29,0) 14%, rgba(26,27,29,1) 158%);
    pointer-events: none;
}
.lavora-persone-controls {
    position: absolute; z-index: 2;
    bottom: 32px; left: 32px; right: 32px;
    display: flex; justify-content: space-between; align-items: center;
}
.lavora-persone-dots { display: flex; gap: 14px; align-items: center; }
.lavora-persone-dot {
    width: 6px; height: 6px;
    border-radius: 3px;
    background: var(--primary-cyan-light); opacity: 0.5;
    border: none; padding: 0;
    appearance: none; -webkit-appearance: none;
    cursor: pointer; transition: background .2s, opacity .2s;
    flex-shrink: 0;
}
.lavora-persone-dot.is-active { background: var(--primary-cyan); opacity: 1; }
.lavora-persone-arrows { display: flex; gap: 18px; align-items: center; }
.lavora-persone-btn {
    width: 45px; height: 45px;
    border-radius: 50%;
    border: 1px solid var(--white);
    background: transparent;
    color: var(--white);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: background .2s, color .2s, opacity .2s;
    flex-shrink: 0;
}
.lavora-persone-btn:hover:not(:disabled) { background: var(--white); color: var(--primary-blue); }
.lavora-persone-btn:disabled { opacity: 0.4; pointer-events: none; }
.lavora-persone-label { font-size: 28px; font-weight: 700; color: var(--black-true); line-height: 1.3; letter-spacing: 0; margin: 0; }

/* Posizioni aperte (Figma 199:9819 — 2-col 569/540 gap 116) */
.lavora-posizioni-section { padding: 120px 0 0; }  /* Figma: persone→posizioni 120 */
.lavora-posizione-layout { display: flex; gap: 116px; align-items: center; padding: 0; border: none; }
.lavora-posizione-layout + .lavora-posizione-layout { margin-top: 80px; }
.lavora-posizione-img { flex: 0 0 569px; width: 569px; }
.lavora-posizione-img img { width: 100%; aspect-ratio: 569/540; object-fit: cover; border-radius: 24px; display: block; }
.lavora-posizione-content { flex: 1; display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
.lavora-posizione-label { font-size: 16px; font-weight: 700; color: var(--primary-blue); line-height: 1.24; letter-spacing: 0; text-transform: uppercase; }
.lavora-posizione-content h2 { font-size: 36px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 0; }
.lavora-posizione-content p  { font-size: 16px; font-weight: 500; color: var(--grey-01); line-height: 1.4; letter-spacing: 0; margin: 0; }
.lavora-no-posizioni { color: var(--grey-02); font-size: 16px; text-align: center; padding: 60px 0; }

/* Button: blue with cyan-light arrow circle (Figma Blue + icon)
   width naturale: max-content forza shrink-to-content anche su <button> in flex-col container */
.btn-blue {
    display: inline-flex; align-items: center; gap: 15px;
    align-self: flex-start;
    width: max-content; max-width: 100%;
    height: 56px; padding: 12px 20px;
    background: var(--primary-blue);
    border: none; border-radius: 56px;
    color: var(--white);
    font-family: var(--font-base);
    font-size: 14px; font-weight: 700; letter-spacing: 0.2px;
    line-height: 1.3; text-transform: none;
    text-decoration: none; cursor: pointer;
    transition: background .2s ease;
    white-space: nowrap;
    box-sizing: border-box;
}
/* Cerchio cyan-light con doppia freccia slide pattern (Figma 67:3161/3162/3163 Button Blue)
   SVG URL-encoded per max compat browser */
.btn-blue::after {
    content: ''; flex-shrink: 0;
    display: inline-block;
    width: 32px; height: 32px; border-radius: 16px;
    overflow: hidden;
    background-color: var(--primary-cyan-light);
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E");
    background-repeat: no-repeat, no-repeat;
    background-size: 16px 16px, 16px 16px;
    background-position: center, -16px center;
    transition: background-position .35s ease;
}
.btn-blue:hover { background: #1d4762; color: var(--white); }
.btn-blue:hover::after {
    background-position: calc(100% + 16px) center, center;
}

/* CTA Candidatura — card aqua-green 1338×255 con bg image (Figma 199:9878) */
.lavora-cta-section { padding: 40px 0 80px; }      /* Figma: posizioni→CTA 40, CTA→footer 80 */
.lavora-cta-card {
    position: relative;
    height: 255px;
    background: var(--primary-aqua);
    border-radius: 24px;
    overflow: hidden;
    cursor: pointer;
}
.lavora-cta-bg {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: 0; pointer-events: none;
}
.lavora-cta-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: rgba(26,27,29,0.4);
    pointer-events: none;
}
.lavora-cta-content {
    position: relative; z-index: 2;
    height: 100%;
    padding: 0 60px;
    display: flex; align-items: center; justify-content: space-between;
    gap: 40px;
}
.lavora-cta-text { flex: 1; max-width: 704px; color: var(--white); transition: transform .3s ease; }
.lavora-cta-card:hover .lavora-cta-text { transform: translateX(12px); }
.lavora-cta-text h2 { font-size: 36px; font-weight: 700; color: var(--white); line-height: 1.2; letter-spacing: 0; margin: 0 0 24px; }
.lavora-cta-text p  { font-size: 20px; font-weight: 500; color: var(--white); line-height: 1.3; letter-spacing: 0; margin: 0; }
.lavora-cta-card .btn-cyan-light { flex-shrink: 0; }

/* Posizione (old compat) */
.posizioni-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
.posizioni-img .img-placeholder { aspect-ratio: 4/5; }
.posizione-preview { padding: 24px 0; border-bottom: 1px solid var(--grey-03); }
.posizione-preview:last-child { border-bottom: none; }
.posizione-preview h3 { font-size: 18px; font-weight: 700; color: var(--black-true); margin-bottom: 8px; }
.posizione-preview p  { font-size: 14px; color: var(--grey-02); margin-bottom: 14px; }
.posizione-layout { display: grid; grid-template-columns: 1fr 300px; gap: 60px; align-items: start; }
.posizione-content h1 { font-size: 32px; font-weight: 700; color: var(--black-true); margin: 12px 0 16px; }
.posizione-meta { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; }
.posizione-meta span { background: var(--grey-04); border-radius: 20px; padding: 4px 14px; font-size: 13px; color: var(--grey-01); }
.posizione-desc { color: var(--grey-700); font-weight: 500; line-height: 1.8; }
.posizione-cta-box { background: var(--grey-04); border-radius: var(--radius); padding: 28px; position: sticky; top: calc(var(--offset) + 20px); }
.posizione-cta-box h3 { font-size: 17px; font-weight: 700; color: var(--black-true); margin-bottom: 10px; }
.posizione-cta-box p  { font-size: 14px; color: var(--grey-02); margin-bottom: 20px; }

/* =====================
   FILE BIM — design definitivo (Figma 207:5171)
   ===================== */
/* Breadcrumb hero BIM — bianco solido, uppercase 12px */
.page-bim .page-hero-card-content .breadcrumb { font-size: 12px; padding: 0; text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px; display: flex; align-items: center; gap: 8px; }
.page-bim .page-hero-card-content .breadcrumb a { color: var(--white); font-weight: 400; }
.page-bim .page-hero-card-content .breadcrumb a:hover { color: var(--primary-cyan-light); }
.page-bim .page-hero-card-content .breadcrumb-sep { color: var(--white); }
.page-bim .page-hero-card-content .breadcrumb strong { color: var(--white); font-weight: 700; }

/* Intro centered (top=688 Figma) */
.bim-intro-section { padding: 120px 0 0; }
.bim-intro-section .container { display: flex; justify-content: center; }
.bim-intro-inner { max-width: 654px; display: flex; flex-direction: column; gap: 28px; }
.bim-intro-inner h2 { font-size: 36px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 0; }
.bim-intro-text { font-size: 20px; font-weight: 500; color: var(--grey-700); line-height: 1.3; letter-spacing: 0; }
.bim-intro-text p { margin: 0 0 20px; }
.bim-intro-text p:last-child { margin-bottom: 0; }

/* Catalogo BIM (top=1221 Figma — 2-col 569/540, gap 116, image radius 24) */
.bim-catalogo-section { padding: 120px 0 0; }   /* Figma 207:5171 */
.bim-catalogo-layout { display: grid; grid-template-columns: 569fr 540fr; gap: 116px; align-items: center; }
.bim-catalogo-img { border-radius: 24px; overflow: hidden; background: var(--grey-50); }
.bim-catalogo-img img { width: 100%; aspect-ratio: 569/540; object-fit: cover; display: block; }
/* Figma 407:12281/12282: titoletto→titolo→descrizione gap 28, blocco testo→bottone gap 26 */
.bim-catalogo-content { display: flex; flex-direction: column; gap: 26px; align-items: flex-start; }
.bim-catalogo-text { display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
.bim-catalogo-label { font-size: 16px; font-weight: 700; color: var(--primary-blue); line-height: 1.24; letter-spacing: 0; text-transform: uppercase; }
.bim-catalogo-content h2 { font-size: 36px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 0; }
/* descrizione: era un <p> dentro il <p> del wysiwyg (nesting invalido) → ora <div>, stilo i <p> figli.
   Colore grey-700 (design #4b4f53, era grey-01) + Medium */
.bim-catalogo-desc { font-size: 16px; font-weight: 500; color: var(--grey-700); line-height: 1.4; letter-spacing: 0; }
.bim-catalogo-desc p { margin: 0 0 1em; font: inherit; color: inherit; }
.bim-catalogo-desc p:last-child { margin-bottom: 0; }

/* Vantaggi — uses .consulenza-dark-card (vedi blocco CONSULENZA) */
.bim-vantaggi-wrap { padding: 120px 0 0; }      /* Figma 207:5171 */

/* Form BIM (Figma 207:5614, 882px centered, h2 36 Bold black-true) */
.bim-form-section { padding: 120px 0 120px; }
.bim-form-inner { max-width: 882px; margin: 0 auto; display: flex; flex-direction: column; gap: 58px; }
.bim-form-inner h2 { font-size: 36px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 0; }
.bim-form-intro { font-size: 16px; font-weight: 500; color: var(--grey-700); line-height: 1.4; letter-spacing: 0; }
.bim-form-intro p { margin: 0 0 16px; }
.bim-form-intro p:last-child { margin-bottom: 0; }
.bim-form-intro a { color: var(--black-true); text-decoration: underline; font-weight: 700; }
.bim-form-intro ul { padding-left: 24px; margin: 0; }
.bim-form-intro li { margin-bottom: 4px; }

/* Form fields BIM — usa stessi stili di .page-consulenza ma scopato a .page-bim */
.page-bim .form-group { gap: 8px; }
.page-bim .form-group label { color: var(--primary-blue); font-size: 14px; font-weight: 500; line-height: 20px; letter-spacing: 0.4px; }
.page-bim .form-control {
    background: var(--primary-cyan-light);
    border: 1px solid var(--primary-blue-light);
    color: var(--primary-blue);
    font-size: 16px; font-weight: 500; line-height: 24px;
    height: 60px; border-radius: 8px;
    padding: 12px;
}
.page-bim .form-control::placeholder { color: var(--primary-blue); opacity: 0.45; }
.page-bim .form-control:focus { outline: none; border-color: var(--primary-blue); }
.page-bim textarea.form-control { height: 192px; padding: 16px 12px; line-height: 1.4; resize: vertical; }
.page-bim select.form-control {
    appearance: none; -webkit-appearance: none;
    padding-right: 44px;
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 12px center;
}
.page-bim .form-row { grid-template-columns: 1fr 1fr; gap: 31px; margin-bottom: 24px; }
.bim-form-section .form-submit-row { margin-top: 40px; }

/* Acceptance checkbox BIM */
.page-bim .wpcf7-acceptance label {
    display: flex; align-items: flex-start; gap: 23px;
    color: var(--grey-700); font-size: 14px; font-weight: 500;
    line-height: 1.4; letter-spacing: 0.2px;
    margin: 16px 0 0;
}
.page-bim .wpcf7-acceptance label a {
    color: var(--black-true); font-weight: 700;
    text-decoration: underline;
}
.page-bim .wpcf7-acceptance input[type="checkbox"] {
    appearance: none; -webkit-appearance: none;
    width: 24px; height: 24px;
    border: 2px solid var(--primary-blue);
    border-radius: 4px;
    background: var(--white);
    cursor: pointer; position: relative;
    flex-shrink: 0; margin: 0;
    transition: background .15s ease;
}
.page-bim .wpcf7-acceptance input[type="checkbox"]:checked { background: var(--primary-blue); }
.page-bim .wpcf7-acceptance input[type="checkbox"]:checked::after {
    content: ''; position: absolute;
    left: 6px; top: 2px;
    width: 6px; height: 12px;
    border: solid var(--white);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* Submit Invia richiesta — il form BIM usa btn-grey, override → Blue button Figma */
.page-bim input.wpcf7-submit.btn-grey {
    display: inline-flex; align-items: center;
    width: auto; height: 56px;
    padding: 12px 64px 12px 24px;
    background-color: var(--primary-blue);
    border: none; border-radius: 56px;
    color: var(--white);
    font-family: var(--font-base);
    font-size: 14px; font-weight: 700; letter-spacing: 0.2px;
    line-height: 1.3; text-transform: none;
    cursor: pointer;
    transition: background-color .2s ease;
}
.page-bim input.wpcf7-submit.btn-grey:hover { background-color: #1d4762; color: var(--white); }

/* =====================
   SEARCH
   ===================== */

/* Hero aqua-green — Figma 229:17350 */
.search-page { margin-top: var(--offset); }

.search-hero {
    background: var(--primary-aqua);     /* #019ea8 */
    padding: 98px 24px 11px;             /* Figma: title 224; label 422; banda chiude a 459 (333) */
    text-align: center;
}
.search-hero-title {
    font-size: 36px; font-weight: 700;
    color: var(--white); line-height: 1.2;
    letter-spacing: 0; margin: 0 0 32px;
}

/* Form di ricerca nella hero — 710 wide pill, submit overlay */
.search-hero-form {
    display: flex; align-items: center; gap: 0;
    max-width: 710px; margin: 0 auto;
    position: relative; height: 56px;
}
.search-hero-field {
    flex: 1; min-width: 0; position: relative;   /* min-width:0 → il campo si restringe al form (l'input search ha min-width intrinseca che lo faceva sbordare oltre il bottone) */
    background: #fff;
    border: 1px solid var(--primary-blue-light);
    border-radius: 60px;
    height: 56px; display: flex; align-items: center;
    padding: 10px 119px 10px 32px;
    box-sizing: border-box;
}
.search-hero-input {
    flex: 1; min-width: 0; border: none; outline: none;
    font-size: 16px; font-weight: 500; font-family: var(--font-base);
    color: var(--grey-700); background: transparent;
    height: 100%; line-height: 1.4;
}
.search-hero-input::placeholder { color: var(--grey-700); opacity: 1; }
.search-hero-clear {
    position: absolute;
    right: 113px; top: 50%; transform: translateY(-50%);
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 40px;
    background: var(--grey-03); border: none; cursor: pointer;
    color: var(--grey-01); flex-shrink: 0;
    opacity: 0; pointer-events: none;
    transition: opacity .15s;
    z-index: 2;
}
.search-hero-input:not(:placeholder-shown) ~ .search-hero-clear {
    opacity: 1; pointer-events: auto;
}
.search-hero-submit {
    position: absolute;
    right: 0; top: 0;
    width: 109px; height: 56px;
    background: var(--primary-blue); color: var(--white);
    border: none; border-radius: 56px;
    font-size: 14px; font-weight: 700;
    line-height: 1.3; letter-spacing: 0.2px;
    padding: 12px 20px;
    font-family: var(--font-base); cursor: pointer;
    z-index: 1; white-space: nowrap;
    transition: background .2s;
}
.search-hero-submit:hover { background: var(--black-true); }

/* Label "Risultati per: X" — Bold Italic white, centrato */
.search-results-label {
    margin: 67px auto 0;   /* Figma 229:17350: label a y422 (+27) */
    max-width: 710px;
    font-size: 20px; font-weight: 700; font-style: italic;
    color: var(--white); line-height: 1.3;
    text-align: center;
}
.search-results-label strong { font-weight: 700; }

/* Area risultati */
.search-results-area {
    max-width: 882px;
    margin: 80px auto 120px;   /* Figma: bottone→footer 120 */
    padding: 0 24px;
}
.search-list {
    display: flex; flex-direction: column; gap: 0;
}

/* Singolo risultato */
.search-result-item {
    display: flex; flex-direction: column; gap: 28px;
    padding-bottom: 44px;
    border-bottom: 1px solid var(--grey-03);
    margin-bottom: 30px;
}
.search-result-item:last-child { border-bottom: none; margin-bottom: 0; }

.search-result-title {
    font-size: 28px; font-weight: 700;
    color: var(--black-true); line-height: 1.3;
    letter-spacing: 0; margin: 0;
}
.search-result-title a { color: inherit; text-decoration: none; transition: color .2s; }
.search-result-title a:hover { color: var(--primary-blue); }

.search-result-excerpt {
    font-size: 16px; font-weight: 500;
    color: var(--grey-700);
    line-height: 1.4; margin: 0;
}

/* Nessun risultato */
.search-no-results {
    font-size: 18px; color: var(--grey-02);
    padding: 40px 0;
}

/* Carica altri risultati */
.search-load-more {
    text-align: center;
    margin-top: 60px;   /* Figma: risultati→bottone 60 */
}

/* Responsive — Figma 321:3956 */
@media (max-width: 1024px) {
    .search-hero {
        padding: 48px 16px 32px;
        text-align: center;
    }
    .search-hero-title {
        font-size: 24px; font-weight: 700;
        color: var(--white);
        line-height: 1.2; letter-spacing: 0;
        margin: 0 0 18px;
    }
    /* Form = layout ORIZZONTALE nested del desktop (Figma 408:15904 field + bottone 109 annidato,
       h56) — field/clear/submit NON overridati → ereditano il nested del desktop. */
    .search-hero-form {
        flex-direction: row; gap: 0;
        max-width: 343px; margin: 0 auto;
        position: relative; height: 56px;
    }
    .search-hero-input { font-size: 16px; }
    /* Label "Risultati per" — center, white italic bold, 16px su mobile */
    .search-results-label {
        margin: 40px 0 0;
        font-size: 16px; font-weight: 700; font-style: italic;
        color: var(--white); line-height: 1.24;
        text-align: center;
        max-width: none;
    }
    .search-results-area {
        padding: 0 16px; margin: 40px 0 48px;
        max-width: none;
    }
    .search-result-title { font-size: 24px; }   /* Figma 408:15940 H4-24 (era 22) */
    .search-result-item {
        gap: 28px; padding-bottom: 44px; margin-bottom: 30px;
        border-bottom: 1px solid var(--grey-03);
    }
    .search-result-item:last-child { border-bottom: none; margin-bottom: 0; }
    .search-load-more { margin-top: 40px; }
}

/* =====================
   PAGINATION
   ===================== */
.nav-links { display: flex; gap: 8px; justify-content: center; margin-top: 48px; flex-wrap: wrap; }
.page-numbers { padding: 7px 13px; border: 1px solid var(--grey-03); border-radius: var(--radius); font-size: 14px; color: var(--black); }
.page-numbers.current { background: var(--grey-01); color: var(--white); border-color: var(--grey-01); }
.page-numbers:hover:not(.current) { border-color: var(--grey-01); color: var(--grey-01); }

/* =====================
   AZIENDA PAGE
   ===================== */

/* Hero Azienda — Figma 93:5442 */
.az-hero {
    margin-top: var(--offset);
    height: calc(100vh - var(--offset) - 60px); /* 60px = subnav */
    min-height: 560px;
    padding: 0 51px;
    box-sizing: border-box;
}
.az-hero-inner {
    height: 100%;
    border-radius: 60px 0 60px 0;   /* TL + BR 60px (Figma asymmetrical) */
    overflow: hidden;
    position: relative;
    background: var(--primary-blue);
    display: flex;
    align-items: flex-start;
}
.az-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.az-hero-placeholder { position: absolute; inset: 0; background: var(--primary-blue); }
.az-hero-overlay {
    position: absolute; inset: 0;
    background: #1a1b1d;            /* overlayer Figma 169:5150: nero uniforme 40% su tutto l'hero */
    opacity: 0.4;
    pointer-events: none;
}
.az-hero-content {
    position: relative; z-index: 1;
    padding: 45px 57px 0;
    display: flex; flex-direction: column; gap: 28px;
    max-width: 599px;                /* 485 testo + 57*2 left/right ≈ 599 */
}
.az-hero-content h1 {
    font-size: 48px; font-weight: 700; color: var(--white);
    line-height: 1.2; letter-spacing: 0; margin: 0;
    max-width: 485px;
}
.az-hero-content .breadcrumb {
    font-size: 12px; line-height: 1.3; text-transform: uppercase;
    letter-spacing: 0.2px;
}
.az-hero-content .breadcrumb a,
.az-hero-content .breadcrumb-current { color: var(--white); text-decoration: none; }
.az-hero-content .breadcrumb a { font-weight: 400; }
.az-hero-content .breadcrumb-current { font-weight: 700; }
.az-hero-content .breadcrumb-sep { margin: 0 7px; color: var(--white); font-family: var(--font-base); }

/* Sticky sub-nav — dk-jumpmark style */
.az-subnav {
    position: sticky; top: var(--offset); z-index: 900;
    background: var(--white); height: 60px;
    /* niente border-bottom: linea-base grigia disegnata sul -inner allo stesso baseline di
       marker/progress, così cyan e marker la sovrappongono (stile dormakaba). */
    transition: top .3s;
}
/* Anchor targets: offset da header+subnav per non finire nascosti sotto gli sticky */
.az-section { scroll-margin-top: 64px; }   /* solo subnav (az 60+4): stessa fix off-by-one scrollspy della pagina Servizi */
.az-subnav.topbar-hidden    { top: var(--header-h); }
.az-subnav.is-header-hidden { top: 0; }
.az-subnav-inner {
    height: 100%; display: flex; align-items: stretch;
    position: relative;
    /* linea-base grigia a tutta larghezza, ancorata al fondo (stesso y di marker/progress) */
    background: linear-gradient(var(--grey-50), var(--grey-50)) left bottom / 100% 1px no-repeat;
}
.az-subnav-arrow {
    flex-shrink: 0; width: 48px; height: 100%;
    display: flex; align-items: center; justify-content: center;
    background: var(--white); border: none; cursor: pointer;
    color: var(--grey-01);
    position: relative; z-index: 2;
    transition: color .15s, opacity .25s;
}
/* gradiente che sfuma i link ai bordi della lista */
.az-subnav-arrow::after {
    content: ''; position: absolute;
    top: 0; bottom: 0; width: 64px;
    pointer-events: none;
}
.az-subnav-arrow--left::after {
    left: 100%;
    background: linear-gradient(90deg, var(--white), transparent);
}
.az-subnav-arrow--right::after {
    right: 100%;
    background: linear-gradient(270deg, var(--white), transparent);
}
/* chevron si sposta nella direzione della freccia al hover */
.az-subnav-arrow svg { display: block; transition: transform .2s ease; }
.az-subnav-arrow--left:hover  { color: var(--black); }
.az-subnav-arrow--left:hover svg  { transform: translateX(-4px); }
.az-subnav-arrow--right:hover { color: var(--black); }
.az-subnav-arrow--right:hover svg { transform: translateX(4px); }
.az-subnav-arrow.is-edge { opacity: 0; pointer-events: none; }
.az-subnav-list {
    flex: 1; display: flex; align-items: stretch;
    overflow-x: auto; list-style: none; margin: 0; padding: 0; gap: 0;
    position: relative;   /* contesto per .subnav-marker (underline scorrevole) */
}
/* Linea cyan di "progresso" fino alla voce attiva (Figma 93:5483 Rectangle 10, come Servizi):
   sottile, #0086AB, larghezza --sv-progress impostata dal JS condiviso (updateProgress). */
.az-subnav-list::before {
    content: '';
    position: absolute;
    left: 0; bottom: 0;          /* dentro il padding-box: non tagliata dall'overflow */
    height: 2px;
    width: var(--sv-progress, 0px);
    background: var(--primary-cyan);
    pointer-events: none;
    z-index: 1;
    transition: width .35s cubic-bezier(.4,0,.2,1);   /* SYNC col marker (.35s): niente gap transitorio barra/linea */
}
.az-subnav .subnav-marker { border-radius: 0; z-index: 2; }
.no-scrollbar { scrollbar-width: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }
.az-subnav-item { display: flex; align-items: stretch; flex-shrink: 0; }
.az-subnav-link {
    font-size: 16px; font-weight: 500; color: var(--black-true);   /* Figma 93:5475: Montserrat Medium 500, 16px, #1a1b1d */
    white-space: nowrap; letter-spacing: 0;
    padding: 0 28px; display: flex; align-items: center;
    border-bottom: 4px solid transparent;
    transition: color .2s, border-color .2s, font-weight .2s;
    position: relative;
}
.az-subnav-link:hover { color: var(--primary-blue); }
.az-subnav-link.is-current { color: var(--black-true); font-weight: 700; /* attiva Bold (Figma) ; underline via .subnav-marker */ }

/* AZIENDA — distanze tra le sezioni allineate al Figma 82:4802 (desktop).
   Base: gap 120 uniforme (60+60); poi override le eccezioni del design. */
@media (min-width: 769px) {
    .page-azienda .section            { padding-top: 60px; padding-bottom: 60px; }   /* gap base 120 */
    .page-azienda #chi-siamo          { padding-top: 120px; padding-bottom: 69px; }  /* subnav→intro 120 ; intro→img 129 */
    .page-azienda #clienti            { padding-bottom: 40px; }                       /* clienti→quote 78 */
    .page-azienda .az-quote           { padding-top: 38px; }                          /* clienti→quote 78 */
    .page-azienda #politica           { padding-bottom: 71px; }                       /* politica→sostenibilità 142 */
    .page-azienda .az-sostenibilita   { padding-top: 71px; }                          /* politica→sostenibilità 142 */
    .page-azienda #certificazioni     { padding-bottom: 120px; }                      /* certificazioni→footer 120 */
    /* timeline-storia ha bg blu con padding interno 103 (NON è .section): i gap bianchi verso di
       essa sono mission-pb (sopra) e team-pt (sotto) → 120 ciascuno. */
    .page-azienda #mission            { padding-bottom: 120px; }                      /* mission→storia 120 */
    .page-azienda #team               { padding-top: 120px; }                         /* storia→team 120 */
}

/* AZIENDA MOBILE — distanze sezioni Figma 318:12614 (375px): TUTTI i gap 80.
   Base 40+40=80; eccezioni: intro pt 80 (subnav→intro), mission-pb/team-pt 80 (gap bianco
   verso la timeline blu, che mantiene il suo padding interno 40), cert-pb 80 (→footer). */
@media (max-width: 768px) {
    .page-azienda .section            { padding-top: 40px; padding-bottom: 40px; }   /* gap base 80 */
    .page-azienda #chi-siamo          { padding-top: 80px; padding-bottom: 40px; }   /* subnav→intro 80 ; intro→img 80 */
    .page-azienda #mission            { padding-bottom: 80px; }                       /* mission→storia 80 (bianco verso blu) */
    .page-azienda #team               { padding-top: 80px; }                          /* storia→team 80 (bianco da blu) */
    .page-azienda #certificazioni     { padding-bottom: 80px; }                       /* certificazioni→footer 80 */
}

/* Shared section helpers */
.az-section { }
.az-heading {
    font-size: 36px; font-weight: 700; color: var(--black-true);
    line-height: 1.3; letter-spacing: 0.2px; margin: 0 0 26px;
}
.az-body-text {
    font-size: 20px; color: var(--grey-700); font-weight: 500;
    line-height: 1.4; letter-spacing: 0.2px; margin: 0 0 20px;
}

/* Chi siamo — Figma 101:5625 */
.az-chi-siamo-text {
    margin-left: 25%;
    max-width: 654px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
}
.az-chi-siamo-text .az-heading {
    font-size: 36px; font-weight: 700; color: var(--black-true);
    line-height: 1.2; letter-spacing: 0; margin: 0;
    width: 100%;
}
.az-chi-siamo-text .az-body-text {
    font-size: 20px; font-weight: 500; color: #4b4f53;
    line-height: 1.3; letter-spacing: 0; margin: 0;
    width: 100%;
}
/* Mission e Vision — Figma 106:6234: titolo H3-28, testo P-16 grey-01, label 14 (diverso da chi-siamo intro) */
#mission .az-heading { font-size: 28px; line-height: 1.3; }
#mission .az-body-text { font-size: 16px; color: var(--grey-700); font-weight: 500; line-height: 1.4; }
#mission .section-label { font-size: 14px; }
/* Figma 106:6234: gap 32 UNIFORME tra titoletto/titolo/descrizione con box cap-height (text-box-trim).
   Replico il trim del design così i gap VISIVI sono uniformi (no leading del titolo 28px che li sbilancia).
   Degrada in modo pulito sui browser senza supporto (resta il gap 32 bounding attuale). */
#mission .section-label,
#mission .az-heading,
#mission .az-body-text {
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

/* ---- Scroll-reveal generico (fade-in + slide-up con stagger sui figli) ---- */
.az-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s ease, transform .7s ease;
}
.az-reveal.is-revealed {
    opacity: 1;
    transform: translateY(0);
}
.az-reveal > * {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .6s ease, transform .6s ease;
}
.az-reveal.is-revealed > * {
    opacity: 1;
    transform: translateY(0);
}
.az-reveal.is-revealed > *:nth-child(1) { transition-delay: .05s; }
.az-reveal.is-revealed > *:nth-child(2) { transition-delay: .20s; }
.az-reveal.is-revealed > *:nth-child(3) { transition-delay: .35s; }
@media (prefers-reduced-motion: reduce) {
    .az-reveal,
    .az-reveal > * { opacity: 1; transform: none; transition: none; }
}

/* Two-column layout */
.az-two-col {
    display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start;
}
.az-two-col--reverse .az-img-col { order: 2; }
.az-two-col--reverse .az-text-col { order: 1; }
.az-img-rounded { border-radius: 16px; width: 100%; display: block; }
.az-img-placeholder {
    background: var(--grey-04); border-radius: 16px;
    display: flex; align-items: center; justify-content: center;
}
.az-img-placeholder--tall { aspect-ratio: 1 / 1.1; }
.az-img-placeholder--carousel { width: 100%; aspect-ratio: 1338/670; border-radius: 16px; background: var(--grey-04); }
.az-img-placeholder--team { width: 652px; aspect-ratio: 652/670; border-radius: 16px; background: var(--grey-04); }
.az-img-placeholder--clienti { width: 100%; aspect-ratio: 782/516; border-radius: 16px; background: var(--grey-04); }
.az-img-placeholder--garanzia { width: 100%; aspect-ratio: 653/431; border-radius: 16px; background: var(--grey-04); }

/* Foto carousel */
.az-full-img-wrap {
    margin: 0 51px;
    position: relative;
}
.az-carousel { border-radius: 16px; overflow: hidden; }
.az-carousel-slide img { width: 100%; aspect-ratio: 1338/670; object-fit: cover; display: block; border-radius: 16px; }
/* Controlli in OVERLAY sull'immagine (Figma 101:5628 Frame 31: dots sx + frecce dx DENTRO la foto,
   bottom 33 / lati 32; team 107:6574: bottom 27 / lati 28). Prima erano in flow SOTTO l'immagine →
   il gap visivo immagine→sezione successiva risultava ~189px invece dei 120 del Figma. */
.az-carousel-controls {
    position: absolute; left: 32px; right: 32px; bottom: 33px;
    display: flex; justify-content: space-between; align-items: center;
    margin: 0; padding: 0; z-index: 2;
}
.az-team-carousel-wrap { position: relative; }
.az-team-carousel-wrap .az-carousel-controls { left: 28px; right: 28px; bottom: 27px; }
/* Layer sfumato per leggibilità dots/frecce bianchi sopra le foto (design 110:6580):
   full-height, gradiente rgba(26,27,29,.16) 34.85% → #1a1b1d 109.55% a opacity 0.8 */
.az-full-img-wrap .az-carousel, .az-team-carousel-wrap .az-carousel { position: relative; }
.az-full-img-wrap .az-carousel::after, .az-team-carousel-wrap .az-carousel::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(26,27,29,0.16) 34.85%, #1a1b1d 109.55%);
    opacity: 0.8;
    pointer-events: none; z-index: 1;
}
.az-full-img-wrap .az-carousel-controls, .az-team-carousel-wrap .az-carousel-controls { z-index: 2; }
/* Su foto: dots chiari e frecce cerchio bianco (stesso pattern carousel lavora) */
.az-full-img-wrap .slider-dot,
.az-team-carousel-wrap .slider-dot { background: rgba(219,237,241,.5); }
.az-full-img-wrap .slider-dot.is-active,
.az-team-carousel-wrap .slider-dot.is-active { background: var(--primary-cyan-light); }
.az-full-img-wrap .slider-prev, .az-full-img-wrap .slider-next,
.az-team-carousel-wrap .slider-prev, .az-team-carousel-wrap .slider-next {
    border-color: var(--white); color: var(--white); background: transparent;
}
.az-full-img-wrap .slider-prev:hover, .az-full-img-wrap .slider-next:hover,
.az-team-carousel-wrap .slider-prev:hover, .az-team-carousel-wrap .slider-next:hover {
    background: var(--white); color: var(--primary-blue);
}
.az-carousel-dots { display: flex; gap: 14px; }

/* Counter — Figma Azienda 106:6198 */
.az-counter {
    display: flex; align-items: center; justify-content: center;
    gap: 24px;
}
.az-counter-item {
    display: flex; flex-direction: column; align-items: center;
    gap: 11px; flex: 1 1 217px; max-width: 367px; text-align: center;
}
.az-counter-icon {
    width: 68px; height: 68px; background: var(--primary-cyan-light);
    border-radius: 50%; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
}
.az-counter-icon img { display: block; width: 32px; height: 32px; }
.az-counter-num {
    font-size: 80px; font-weight: 700; color: var(--primary-blue);
    line-height: normal; letter-spacing: 0.2px; font-weight: 700;
}
.az-counter-label {
    font-size: 14px; font-weight: 700; color: var(--black-true);
    line-height: 1.24; letter-spacing: 0; text-transform: uppercase; max-width: 178px;
}
/* Divider verticale tra items (desktop) */
.az-counter-divider {
    flex: 1; max-width: 129px; height: 241px;
    border-left: 1px solid var(--grey-03);
}

/* Timeline storia — Figma 151:5070 (desktop, design DEFINITIVO) */
.az-timeline {
    background: var(--primary-blue);
    padding: 103px 0;
    overflow: hidden;
}
.az-timeline-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 51px;
    display: flex;
    gap: 60px;
    align-items: flex-start;
    justify-content: space-between;
}
.az-timeline-content {
    flex: 1; max-width: 882px;
}
.timeline-entry { display: none; }
.timeline-entry.is-active { display: block; }
.az-timeline-content .section-label {
    color: var(--primary-cyan-light);
    margin-bottom: 16px;
    display: block;
}
.az-timeline-title {
    font-size: 48px; font-weight: 700; color: var(--white);
    line-height: 1.2; letter-spacing: 0.2px; margin: 0 0 32px;
}
.az-timeline-body {
    font-size: 28px; font-weight: 500; color: var(--primary-cyan-light);
    line-height: 1.2; letter-spacing: 0.2px; margin: 0;
}
.az-timeline-years-wrap {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    flex-shrink: 0;
}
.az-timeline-years {
    display: flex; flex-direction: column; gap: 72px; align-items: flex-end;
    min-width: 46px;
}
.az-timeline-year {
    font-size: 20px; font-weight: 700; color: var(--primary-blue-light);
    line-height: 1.3; letter-spacing: 0; cursor: pointer; text-transform: uppercase;
    background: none; border: none; padding: 0; font-family: var(--font-base); text-align: right;
    opacity: 0; transform: translateY(14px);
    transition: opacity .4s ease, transform .4s ease, color .2s;
}
.az-timeline-year.is-active { color: var(--white); }
.az-timeline.in-view .az-timeline-year { opacity: 1; transform: translateY(0); }
.az-timeline-line {
    width: 1px;
    align-self: stretch;
    position: relative;
    margin: 0 39px 0 30px;
    flex-shrink: 0;
}
/* Full-height visual line via pseudo — extends beyond section padding, clipped by overflow:hidden on section */
.az-timeline-line::before {
    content: '';
    position: absolute;
    top: -103px; bottom: -2000px;   /* bottom esteso + clip overflow:hidden della sezione = la linea tocca sempre il fondo */
    left: 0;
    width: 1px;
    background: var(--primary-cyan-light);
}
.az-timeline-dot {
    width: 10px; height: 10px;
    background: var(--white);
    border-radius: 50%;
    position: absolute;
    left: 50%; transform: translateX(-50%);
    top: 0;
    transition: top .3s ease;
}
.az-timeline:not(.in-view) .az-timeline-dot { opacity: 0; }
.az-timeline-nav {
    display: flex; flex-direction: column; gap: 18px;
    align-self: flex-end;
}
.az-tl-nav-btn {
    width: 45px; height: 45px;
    border-radius: 50%;
    background: transparent;
    color: var(--white);
    border: 1px solid var(--white);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    transition: background .2s, color .2s, border-color .2s;
}
.az-tl-nav-btn:disabled {
    color: var(--primary-cyan-light);
    border-color: var(--primary-cyan-light);
    cursor: default;
}

/* ---- Timeline scroll-reveal animation ---- */
@keyframes az-timeline-slide-in {
    from { opacity: 0; transform: translateY(36px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Prima che la sezione entri nel viewport: entry attiva nascosta (mantiene spazio) */
.az-timeline:not(.in-view) .timeline-entry.is-active { visibility: hidden; }

/* Quando la sezione è in-view: la entry attiva si anima */
.az-timeline.in-view .timeline-entry.is-active {
    visibility: visible;
    animation: az-timeline-slide-in .5s ease forwards;
}

/* Team */
.az-team { }
.az-team-inner {
    display: flex; flex-direction: column; align-items: center;
    gap: 40px; max-width: 654px; margin: 0 auto;
    text-align: center;
}
.az-team-text { width: 100%; }
.az-team-carousel-wrap { width: 652px; }
.az-team-carousel-wrap .az-carousel-slide img { aspect-ratio: 652/670; border-radius: 16px; object-fit: cover; width: 100%; display: block; }

/* Clienti — Figma 280:8949 */
.az-clienti-header {
    display: flex; justify-content: space-between; align-items: flex-end;
    gap: 40px; margin-bottom: 48px;
}
.az-clienti-title {
    font-size: 36px; font-weight: 700; color: var(--black-true);
    line-height: 1.2; letter-spacing: 0; flex-shrink: 0; margin: 0;
}
.az-tabs-scroll { display: contents; }   /* desktop: passthrough; mobile: diventa il viewport di scroll */
.az-tabs {
    display: flex; gap: 28px; align-items: center;
    background: var(--primary-cyan-light); border-radius: 16px;
    padding: 4px 9px;
    position: relative; overflow: hidden;
}
.az-tab-pill {
    position: absolute;
    top: 4px; bottom: 4px; left: 0;
    background: var(--primary-blue);
    border-radius: 12px;
    transition: transform .3s ease, width .3s ease;
    pointer-events: none;
    width: 0;
}
.az-tab {
    font-size: 16px; font-weight: 500; color: var(--primary-blue);
    padding: 10px 16px; cursor: pointer; border: none; background: none;
    border-radius: 12px; white-space: nowrap; transition: color .25s;
    font-family: var(--font-base); position: relative; z-index: 1;
    line-height: 1.4; letter-spacing: 0;
}
.az-tab.is-active { color: var(--white); }
.az-clienti-panels { position: relative; }
.az-clienti-panel {
    opacity: 0;
    pointer-events: none;
    transition: opacity .35s ease;
    position: absolute; top: 0; left: 0; right: 0;
}
.az-clienti-panel.is-active {
    opacity: 1;
    pointer-events: auto;
    position: relative;
}
.az-clienti-body {
    display: grid; grid-template-columns: 536px 1fr; gap: 32px; align-items: start;
}
.az-clienti-list { display: flex; flex-direction: column; }
/* Figma CONSEGNA 143:3963 — numero grande + etichetta categoria sopra la lista (client-number: 36 bold blue,
   gap 10, label 14 bold uppercase; poi 36 alla lista). Valori cap-trim compensati (-5.5 sotto il 36, -3.5 sopra/sotto il 14). */
.az-clienti-list-col { display: flex; flex-direction: column; align-items: flex-start; }
.az-clienti-list-col .az-clienti-list { width: 100%; }
.az-clienti-number { display: flex; flex-direction: column; gap: 1px; margin: -6px 0 32px; }   /* -6: cap-top del 36 a 48 dalla tab; 32: cap-bottom etichetta → lista = 36 (misurati) */
.az-clienti-number-value { font-size: 36px; font-weight: 700; color: var(--primary-blue); line-height: 1; letter-spacing: 0; }
.az-clienti-number-label { font-size: 14px; font-weight: 700; color: var(--black-true); text-transform: uppercase; line-height: 1.24; letter-spacing: 0; }
.az-clienti-number + .az-clienti-list .az-cliente-item:first-child { border-top: none; padding-top: 0; }   /* Figma: nessuna riga sopra la prima voce */
.az-cliente-item.is-extra { display: none; }
.az-clienti-list.is-expanded .az-cliente-item.is-extra { display: block; }
.az-clienti-more {                                   /* Figma 1487:14807: 14 bold blue underline, 20 sopra */
    margin-top: 20px; padding: 0; border: none; background: none; cursor: pointer;
    font-family: var(--font-base); font-size: 14px; font-weight: 700; line-height: 1.5;
    color: var(--primary-blue); text-decoration: underline; text-underline-position: from-font;
}
.az-clienti-more:hover { color: var(--black-true); }
.az-cliente-item {
    padding: 7px 0; font-size: 20px; color: var(--black-true);
    line-height: 1.5; border-bottom: 1px solid #F5F6F6;
}
.az-cliente-item:first-child { border-top: 1px solid #F5F6F6; }
.az-clienti-img img,
.az-clienti-img .az-img-placeholder--clienti {
    width: 100%; aspect-ratio: 767/516; border-radius: 24px; object-fit: cover; display: block;
}
/* Figma 280:8949 — alla risoluzione piena (≥1440, design 1440px) c'è margine per allineare
   la TAB esattamente sopra l'immagine (stessa griglia del body) stringendo un po' le voci.
   Sotto questa soglia la colonna immagine si stringe troppo → si resta sul layout flex base. */
@media (min-width: 1440px) {
    .az-clienti-header { display: grid; grid-template-columns: 536px 1fr; gap: 32px; align-items: end; }
    .az-tabs { width: 100%; justify-content: center; gap: 6px; }
    .az-tab  { padding: 10px 12px; }
}

/* Quote — Figma 112:7306 (bg aqua-green #019ea8, virgoletta primary-blue, autore white) */
.az-quote { }
.az-quote-card {
    background: var(--primary-aqua);
    border-radius: 16px;
    padding: 72px 43px 25px 36px;   /* Figma 172:6707: pt72 pr43 pb25 pl36 */
    display: flex; flex-direction: column; gap: 58px;
    position: relative;
}
.az-quote-slides-wrap { display: grid; overflow: hidden; width: 888px; max-width: 100%; align-self: center; }
.az-quote-text {
    grid-area: 1 / 1;
    width: 888px; max-width: 100%;
    display: flex; flex-direction: column;
    opacity: 0;
    transform: translateX(60px);
    transition: opacity .5s ease, transform .5s ease;
    pointer-events: none;
}
/* Figma 172:6711: virgoletta " 116px Arial primary-blue, SOVRAPPOSTA al testo
   (testo 85px sotto il top del " → line-height 1 su 116 + margin-bottom -31) */
.az-quote-text::before {
    content: '\201C';
    font-family: Arial, sans-serif;
    font-size: 116px; line-height: 1; color: var(--primary-blue);
    margin-bottom: -31px;
}
.az-quote-text.is-active {
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto;
}
.az-quote-body {
    font-size: 36px; font-weight: 500; color: var(--white);
    line-height: 1.2; letter-spacing: 0;
}
.az-quote-author {
    font-size: 16px; font-weight: 700; color: var(--white);
    line-height: 1.24; letter-spacing: 0; text-transform: uppercase;
    margin-top: 31px;   /* Figma gap-31 testo→autore (no flex gap, il " usa margini) */
}
.az-quote-controls {
    display: flex; justify-content: space-between; align-items: center;
}
.az-quote-dots { display: flex; gap: 14px; }
.az-quote-dots .slider-dot { background: rgba(255,255,255,.3); }
.az-quote-dots .slider-dot.is-active { background: var(--white); }
.az-quote-controls .quote-prev,
.az-quote-controls .quote-next {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 50%;
    border: 1.5px solid rgba(255,255,255,.6);
    background: transparent; cursor: pointer;
    color: var(--white); transition: background .2s;
}
.az-quote-controls .quote-prev:hover,
.az-quote-controls .quote-next:hover {
    background: rgba(255,255,255,.15);
}

/* Politica qualità — Figma 151:4986
   Header 2-col (sx 531 / dx 654, gap 144) + Content 2-col (accordion 653 / img 654, gap 30) */
.az-politica .container {
    display: flex; flex-direction: column; gap: 80px;
}
.az-politica-header {
    display: grid; grid-template-columns: 531px 1fr; gap: 144px; align-items: start;
}
.az-politica-header-left {
    display: flex; flex-direction: column; gap: 32px;
}
.az-politica-label {
    font-family: var(--font-base); font-size: 16px; font-weight: 700;
    line-height: 1.24; letter-spacing: 0; text-transform: uppercase;
    color: var(--primary-blue); margin: 0;
}
.az-politica-title {
    font-family: var(--font-base); font-size: 28px; font-weight: 700;
    line-height: 1.3; letter-spacing: 0; color: var(--black-true); margin: 0;
}
.az-politica-header-right {
    display: flex; flex-direction: column; gap: 36px; align-items: flex-start;   /* Figma 112:7269 gap-36 testo→bottone */
    padding-top: 52px;   /* allinea il top del testo al top del titolo (tema senza text-box-trim → 52, design 38) */
}
.az-politica-text {
    font-family: var(--font-base); font-size: 16px; font-weight: 500;   /* Montserrat Medium */
    line-height: 1.4; letter-spacing: 0; color: var(--grey-700, #4b4f53); margin: 0;
}
/* il testo è un wysiwyg ACF che esce avvolto in <p>: era un <p> dentro <p> (nesting invalido →
   .az-politica-text restava vuoto, testo in un <p> di default Regular). Ora è un <div>: stilo i <p> figli */
.az-politica-text p { margin: 0 0 1em; font: inherit; color: inherit; }
.az-politica-text p:last-child { margin-bottom: 0; }

/* Content 2-col: accordion + img TÜV */
.az-politica-content {
    display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: start;
}
.az-politica-accordion { display: flex; flex-direction: column; }

/* Accordion politica — Figma 143:4621 (border-top+bottom cyan-light, padding 24 vert, 20 Bold blu, plus) */
.az-pq-accordion-item {
    border-top: 1px solid var(--primary-cyan-light);
    margin-bottom: -1px;
}
.az-pq-accordion-item:last-child { border-bottom: 1px solid var(--primary-cyan-light); margin-bottom: 0; }
.az-pq-accordion-summary {
    display: flex; justify-content: space-between; align-items: center;
    padding: 24px 8px; cursor: pointer; list-style: none;
    gap: 16px;
}
.az-pq-accordion-summary::-webkit-details-marker { display: none; }
.az-pq-accordion-summary > span:first-child {
    font-family: var(--font-base); font-size: 20px; font-weight: 700;
    color: var(--primary-blue); line-height: 1.3; letter-spacing: 0;
}
.az-pq-accordion-icon { color: var(--primary-blue); flex-shrink: 0; display: flex; }
.az-pq-accordion-icon--minus { display: none; }
details[open] .az-pq-accordion-icon--plus { display: none; }
details[open] .az-pq-accordion-icon--minus { display: block; }
.az-pq-accordion-body {
    padding: 0 8px 24px;
    font-family: var(--font-base); font-size: 16px; font-weight: 500;
    color: var(--grey-01); line-height: 1.4; letter-spacing: 0;
}

/* Img TÜV: bg grey-50 rounded 24, immagine centrata */
.az-politica-img {
    height: 431px; border-radius: 24px; overflow: hidden;
    background: var(--grey-50);
    display: flex; align-items: center; justify-content: center;
}
.az-politica-img img {
    max-width: 80%; max-height: 80%;
    width: auto; height: auto;
    object-fit: contain; display: block;
}

/* Sostenibilità — Figma 151:4985 (img-bg lago/montagna h=670 rounded 24 + dark overlay 20%,
   header top-left 44/44 (label cyan-light + H2 white), 3 stats card bottom-right padding 38/30) */
.az-sost-inner { display: flex; flex-direction: column; gap: 44px; }
.az-sost-img-wrap {
    position: relative; border-radius: 24px; overflow: hidden;
    height: 670px;
}
.az-sost-img,
.az-sost-img-placeholder {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover; border-radius: 24px;
    z-index: 0;
}
.az-sost-img-placeholder { background: var(--grey-04); }
.az-sost-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: rgba(26, 27, 29, 0.2);
    pointer-events: none;
}
.az-sost-header {
    position: absolute; top: 44px; left: 44px; z-index: 2;
    display: flex; flex-direction: column; gap: 26px;
    max-width: 531px;
}
.az-sost-label {
    font-family: var(--font-base); font-size: 16px; font-weight: 700;
    line-height: 1.24; letter-spacing: 0; text-transform: uppercase;
    color: var(--primary-cyan-light); margin: 0;
}
.az-sost-title {
    font-family: var(--font-base); font-size: 36px; font-weight: 700;
    line-height: 1.2; letter-spacing: 0; color: var(--white); margin: 0;
}
.az-sost-stats {
    position: absolute; right: 30px; bottom: 38px; z-index: 2;
    width: 624px; max-width: calc(100% - 60px);
    display: flex; flex-direction: column; gap: 30px;
    pointer-events: none;
}
.az-sost-stat {
    background: var(--primary-cyan-light); color: var(--primary-blue);
    border-radius: 8px;
    padding: 24px 30px 31px 24px;
    height: 153px; box-sizing: border-box;
    display: flex; flex-direction: column; gap: 16px; align-items: flex-start;
    flex: 0 1 297px;
    pointer-events: auto;
}
.az-sost-stat--wide {
    background: var(--primary-blue); color: var(--white);
    width: 100%; flex: none;
    padding: 24px 30px 23px 24px;
}
.az-sost-stat--wide .az-sost-lbl { color: var(--primary-cyan-light); }
.az-sost-stat-row { display: flex; gap: 30px; width: 100%; }
.az-sost-num {
    font-family: var(--font-base); font-size: 48px; font-weight: 700;
    line-height: 1.2; letter-spacing: 0; color: inherit;
}
.az-sost-lbl {
    font-family: var(--font-base); font-size: 14px; font-weight: 700;
    line-height: 1.24; letter-spacing: 0; text-transform: uppercase; color: inherit;
}
.az-sost-body {
    font-family: var(--font-base); font-size: 16px; font-weight: 500;
    line-height: 1.4; letter-spacing: 0; color: var(--black-true);
    max-width: 654px; margin: 0;
}
/* il campo ACF può contenere <p> (wpautop): è un <div>, quindi stilo il <p> interno */
.az-sost-body p { margin: 0; font: inherit; color: var(--black-true); }
.az-sost-body p + p { margin-top: 1em; }

/* Certificazioni — Figma 151:4983 (3 card 426×598, bg grey-50, img-area 294, body padding 22 + top 20, gap 20) */
.az-cert-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px;
}
.az-cert-card {
    background: var(--grey-50); border-radius: 16px; overflow: hidden;
    display: flex; flex-direction: column;
    min-height: 598px;
    transition: border-radius .3s ease;
}
/* Hover (Figma 520:11977): radius asimmetrico 60/0/60/60 (TR squared) */
.az-cert-card:hover { border-radius: 60px 0 60px 60px; }
.az-cert-img {
    height: 294px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: var(--grey-50); border-radius: 16px 16px 0 0;
    overflow: hidden;
}
.az-cert-img img { max-width: 100%; max-height: 100%; width: 100%; height: 100%; object-fit: cover; display: block; }
/* Logo certificazione in SVG (retina): dimensione naturale del logo centrato, non stretch */
.az-cert-img .az-cert-logo { width: auto; height: 152px; max-width: 62%; object-fit: contain; }
.az-cert-body {
    padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 20px; flex: 1;
}
.az-cert-text {
    display: flex; flex-direction: column; gap: 16px; width: 100%;
}
.az-cert-text h3 {
    font-size: 20px; font-weight: 700; color: var(--black-true);
    line-height: 1.3; letter-spacing: 0; margin: 0; font-family: var(--font-base);
}
.az-cert-text p {
    font-size: 16px; font-weight: 500; color: var(--grey-01);
    line-height: 1.4; letter-spacing: 0; margin: 0; font-family: var(--font-base);
}

/* Bottone Scarica — Figma 126:3590 (Outline default) → 128:3609 (Outline-hover)
   Stesso pattern di .sp-btn-scheda: pill outline blu, height 56→54 hover,
   cerchio 32 primary-blue → primary-cyan, 2 icone download slide VERTICAL */
.az-cert-btn {
    align-self: flex-start;
    display: inline-flex; align-items: center; gap: 15px;
    height: 56px; padding: 12px 12px 12px 20px;
    border: 1px solid var(--primary-blue);
    background: transparent; color: var(--black-true);
    border-radius: 56px;
    font: 700 14px/1.3 var(--font-base); letter-spacing: 0.2px;
    text-decoration: none;
}
/* NB: niente cambio di height in hover — il bottone è nel flusso (politica qualità) e un
   56→54px spostava visibilmente l'accordion/immagine sottostanti. Il feedback hover resta
   con lo swap colore + slide dell'icona (::after). */
.az-cert-btn::after {
    content: ""; position: relative;
    display: inline-block; flex-shrink: 0;
    width: 32px; height: 32px; border-radius: 16px;
    background-color: var(--primary-blue);
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><polyline points='7 10 12 15 17 10'/><line x1='12' y1='15' x2='12' y2='3'/></svg>"),
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><polyline points='7 10 12 15 17 10'/><line x1='12' y1='15' x2='12' y2='3'/></svg>");
    background-repeat: no-repeat, no-repeat;
    background-size: 16px 16px, 16px 16px;
    background-position: center, center -32px;
    overflow: hidden;
    transition: background-color .25s ease, background-position .35s ease;
}
.az-cert-btn:hover::after,
.az-cert-card:hover .az-cert-btn::after {
    background-color: var(--primary-cyan);
    background-position: center calc(100% + 32px), center;
}

/* =====================
   BASE CAT GROUPS (DEVE stare PRIMA del @media sotto — altrimenti il desktop
   override-a il mobile perché stessa specificità + sorgente successiva)
   ===================== */
/* CAT-GROUP — Figma 151:6915 Frame 3980 (header centered, h3 28 Bold + p 16 Medium grey-01) */
.cat-group { margin-bottom: 120px; }
.cat-group:last-child { margin-bottom: 0; }
.cat-group-header { margin-bottom: 44px; text-align: center; }
.cat-group-heading { display: block; }
.cat-group-title { font-size: 28px; font-weight: 700; color: var(--black-true); margin: 0 0 24px; line-height: 1.3; letter-spacing: 0; }
.cat-group-desc { font-size: 16px; font-weight: 500; color: var(--grey-700); line-height: 1.4; letter-spacing: 0; margin: 0 auto; max-width: 1108px; }
.cat-group-toggle { display: none; }
.cat-group-content { display: block; }
.cat-group-carica-altri { display: none; }

/* =====================
   RESPONSIVE
   ===================== */
@media (max-width: 1024px) {
    /* Categoria hero mobile — Figma 343:9285: card grigia, titolo 28 + descrizione (era nascosta), height auto */
    .cat-banner-wrap { padding: 0 16px; }
    .cat-banner { height: auto; border-radius: 40px 0 40px 0; }
    .cat-banner-overlay { position: static; display: flex; flex-direction: column; padding: 40px 30px; gap: 32px; }
    .cat-banner-left { position: static; left: auto; top: auto; width: auto; gap: 24px; }
    .cat-banner-left h1 { font-size: 28px; line-height: 1.3; }
    .cat-banner-right { position: static; left: auto; top: auto; width: auto; padding-left: 0; display: flex; gap: 24px; }
    .cat-banner-right p { font-size: 16px; line-height: 1.4; max-width: 100%; }
    .azienda-intro     { grid-template-columns: 1fr; }
    .prodotti-archive-grid .prodotto-archive-card { flex: 0 0 calc(50% - 15px); max-width: calc(50% - 15px); height: 556px; }
    .blog-grid--4 { grid-template-columns: repeat(2, 1fr); }
    .caratteristiche-grid  { grid-template-columns: 1fr; }
    .post-layout       { grid-template-columns: 1fr; }
    .post-toc          { display: none; }
    .post-sidebar      { display: none; }
    .phc-post-content  { padding: 40px 32px; }
    .page-hero-card-content--settore-2col { position: relative; inset: auto; display: flex; flex-direction: column; align-items: flex-start; padding: 40px 32px; gap: 24px; }
    .page-hero-card-content--settore-2col .page-hero-card-left { position: relative; left: auto; top: auto; width: auto; flex: none; }
    .settore-hero-right { position: relative; left: auto; top: auto; width: auto; padding-left: 0; }
    .cert-grid         { grid-template-columns: repeat(2, 1fr); }
    .valori-grid       { grid-template-columns: repeat(2, 1fr); }
    .posizione-layout  { grid-template-columns: 1fr; }
    .servizi-page-grid { grid-template-columns: 1fr; }
    .sv-service-twocol { grid-template-columns: 1fr; gap: 40px; }
    .sv-accordion-section { grid-template-columns: 1fr; gap: 40px; }
    .sv-vantaggi-grid  { grid-template-columns: 1fr; }
    .sv-vantaggi-card  { padding: 48px 40px; }
    .sv-calc-header    { grid-template-columns: 1fr; gap: 40px; }
    .sv-calc-body      { grid-template-columns: 1fr; gap: 40px; }
    .sv-calc-card      { padding: 48px 40px; }
    .sv-intro-twocol   { grid-template-columns: 1fr; gap: 40px; }
    .sv-ambiti-grid    { grid-template-columns: 1fr; gap: 40px; }
    /* Figma mobile 362:13105 → 367:10464: la fascia aqua ha 52 sopra e 52 sotto (erano 32/40),
       così testo legionella→barra tab fa 112 e pannello→titolo FAQ 112. */
    .sv-leg-section    { padding: 52px 0 52px; }
    .sv-leg-tab-bar    { margin-bottom: 34px; }   /* Figma mobile: barra→pannello 34 (desktop 44) */
    /* Tab bar NON è dentro .container → inset 16px (come il container) così la barra non è a filo
       dei bordi schermo e i border-radius si vedono a SINISTRA e DESTRA (Figma 468:16217). */
    /* Bar legionella SBORDA off-screen come Figma 468:16219 (576px): scroll sul tab-bar, sfondo blu largo max-content (prima il bg era confinato al viewport) */
    .sv-leg-tab-bar    { padding: 0 0 0 16px; justify-content: flex-start; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
    .sv-leg-tab-bar::-webkit-scrollbar { display: none; }
    .sv-leg-tabs       { width: max-content; height: auto; min-height: 54px; overflow: visible; justify-content: flex-start; padding-left: 5px; }  /* tab da SINISTRA, pill a x5; bg largo quanto tutti i tab */
    .sv-leg-tab        { padding: 10px 14px; font-size: 14px; flex-shrink: 0; }
    /* Caroselli immagine: solo bullet, NIENTE frecce su mobile (Figma 363:8588).
       Specificità alta perché regole .sv-carousel-arrows display:flex non-media vengono dopo. */
    .sv-carousel-nav .sv-carousel-arrows { display: none; }
    .page-servizi .sv-carousel-nav, .page-azienda .sv-carousel-nav { justify-content: center; }
    /* Subnav mobile: niente underline/text-decoration sulla voce (Figma 318:13753: solo marker cyan) */
    .sv-subnav-link:hover, .sv-subnav-link:focus-visible, .sv-subnav-link.is-selected { text-decoration: none; }
    /* Goccia CTA mobile: punta a SINISTRA (Figma 3260:3178), opposto al desktop (no rotate 180) */
    .cta-consulenza-decor::before { transform: none; }   /* SVG già orientato come il design (rotazione -90 bakeata) */
    /* Box "interventi" features-benefici BLU come Figma 821:18583 (era teal/aqua su desktop) */
    .sv-interventi-section .sv-vantaggi-card { background: var(--primary-blue); }
    .az-chi-siamo-text { margin-left: 0; max-width: 100%; }
    .az-two-col        { grid-template-columns: 1fr; }
    .az-two-col--reverse .az-img-col,
    .az-two-col--reverse .az-text-col { order: unset; }
    .az-politica .container  { gap: 48px; }
    .az-politica-header      { grid-template-columns: 1fr; gap: 24px; }
    .az-politica-header-right { padding-top: 0; gap: 24px; }
    .az-politica-title       { font-size: 24px; }   /* Figma 324:14193 H4-24 */
    .az-politica-content     { grid-template-columns: 1fr; gap: 20px; }   /* Figma 39504: gap accordion→img 20 */
    .az-politica-img         { height: 237px; }                           /* Figma 330:14557 (era 320) */
    .az-pq-accordion-summary > span:first-child { font-size: 18px; }
    .az-clienti-body   { grid-template-columns: 1fr; }
    .az-cert-grid      { grid-template-columns: repeat(2, 1fr); }
    /* az-counter mobile (Figma 260:6586): stack verticale, items CENTER-aligned,
       divider orizzontali 1px tra items (NON vertical left border come home counter) */
    .az-counter {
        flex-direction: column; align-items: center;
        gap: 40px;                                   /* Figma gap 40 (non 32) */
    }
    .az-counter-item {
        flex: 0 0 auto; max-width: none;
        width: 217px;                                 /* Figma item width */
        align-items: center; text-align: center;    /* center, non flex-start */
    }
    .az-counter-label { text-align: center; }
    /* Divider orizzontale full-width (1px) tra items */
    .az-counter-divider {
        flex: none; width: 100%; max-width: none;
        height: 0; border-left: none;
        border-top: 1px solid var(--grey-03);
    }
    /* H2 "Certificazioni" nascosto su mobile (Figma 277:1694 non lo mostra) */
    .az-certificazioni > .container > .az-heading { display: none; }

    /* Timeline storia mobile (Figma 266:6523) — layout verticale teal: testo + riga anno/frecce */
    .az-timeline { padding: 40px 15px 40px 16px; overflow: visible; }
    .az-timeline-inner {
        flex-direction: column; gap: 51px;
        align-items: flex-end;
        padding: 0; max-width: none; margin: 0;
    }
    .az-timeline-content { flex: none; max-width: 100%; width: 100%; }
    .az-timeline-content .section-label {
        font-size: 16px; margin-bottom: 20px;
    }
    .az-timeline-title {
        font-size: 36px;
        margin: 0 0 24px;
    }
    .az-timeline-body { font-size: 24px; }

    /* Riga in basso: anno attivo + frecce, space-between */
    .az-timeline-years-wrap {
        flex-direction: row; flex-wrap: nowrap;
        align-items: center; justify-content: space-between;
        width: 100%; gap: 0;
        align-self: stretch;
    }
    /* Mostra solo l'anno attivo, come label inline */
    .az-timeline-years {
        flex-direction: row; gap: 0; min-width: 0;
    }
    .az-timeline-year {
        display: none;
        opacity: 1; transform: none;
    }
    .az-timeline-year.is-active {
        display: block;
        font-size: 30px;
        color: var(--white);
    }
    /* Linea verticale/dot non servono su mobile */
    .az-timeline-line { display: none; }

    /* Nav orizzontale (gap 18), visibile su mobile (desktop la nasconde in column-layout) */
    .az-timeline-nav {
        display: flex; flex-direction: row; gap: 18px;
        align-self: center;
    }
    .az-tl-nav-btn svg { transform: rotate(-90deg); }  /* chevron up/down → left/right */
    .az-tl-nav-btn.timeline-prev:disabled,
    .az-tl-nav-btn.timeline-next:disabled {
        opacity: .55; cursor: default;
    }
    /* Sub-nav mobile (Figma 254:6748): 40px alto, sticky sotto header, scroll orizzontale touch.
       Su mobile l'header non si nasconde mai: forziamo top: var(--offset) ignorando le classi
       topbar-hidden / is-header-hidden aggiunte dal JS di scroll desktop. */
    .az-subnav,
    .az-subnav.topbar-hidden,
    .az-subnav.is-header-hidden {
        height: 40px;
        top: var(--offset);
        position: sticky;           /* riconferma (alcuni override potrebbero toccarla) */
        margin-top: 15px;           /* Figma 318:13750: 15px di gap tra hero (y757) e barra subnav (y772) */
    }
    /* Gradient sfumati sui bordi (stesso effetto delle frecce desktop) */
    .az-subnav::before,
    .az-subnav::after {
        content: '';
        position: absolute;
        top: 0; bottom: 1px;          /* lascia visibile il border-bottom 1px */
        width: 32px;
        pointer-events: none;
        z-index: 2;
    }
    .az-subnav::before {
        left: 0;
        background: linear-gradient(90deg, var(--white), transparent);
    }
    .az-subnav::after {
        right: 0;
        background: linear-gradient(270deg, var(--white), transparent);
    }
    /* Anchor offset mobile: header 59 + subnav 40 + margine */
    .az-section { scroll-margin-top: calc(var(--offset) + 44px); }
    .az-subnav-inner { padding: 0; }
    .az-subnav-arrow { display: none; }                 /* touch scroll → niente frecce */
    .az-subnav-list {
        padding: 0 15px; gap: 40px;
        align-items: stretch;                            /* link a tutta altezza → underline flush in fondo alla barra 40px */
    }
    .az-subnav-item { flex-shrink: 0; }
    .az-subnav-link {
        padding: 13px 0 0;                               /* testo a top 13 (Figma 318:13754), underline al fondo (margin-bottom 0) */
        align-items: flex-start;
        font-size: 14px; font-weight: 700;
        line-height: 14px; letter-spacing: 0.2px;
        color: var(--grey-01);
        border-bottom-width: 1px;                        /* Figma underline 1px (non 3) */
    }
    .az-subnav-link.is-current {
        color: var(--black-true);                         /* Figma 318:13756: active bold nero */
        border-bottom-color: var(--primary-cyan);         /* Figma 318:13762: underline cyan #0086ab */
        border-bottom-width: 3px;
    }
    /* Team mobile (Figma 267:6686 + 299:4430): inner 343 (non 654), image 343×372 */
    .az-team-inner {
        max-width: none;
        padding: 0 16px;                  /* la sezione non usa .container → aggiungo padding qui */
        gap: 24px;                         /* Figma gap header→image 24 (non 40 desktop) */
    }
    .az-team-carousel-wrap { width: 100%; }
    .az-img-placeholder--team {
        width: 100%;
        aspect-ratio: 343/372;             /* Figma mobile 343×372 (desktop 652/670) */
    }
    .az-team-carousel-wrap .az-carousel-slide img {
        aspect-ratio: 343/372;
    }

    /* ===== Cat banner hero mobile (Figma 283:2137) — matcha breakpoint ≤1024 come header mobile ===== */
    .cat-banner-wrap { padding: 0 16px; }
    /* hero(343:9691) → primo accordion(343:9742) = 80px nel design (era 148: pad-top 120 + margine).
       Specificità alta col main per battere la regola base .cat-content.section (più in basso nel file) */
    .taxonomy-categoria .cat-content.section { padding-top: 52px; }
    .cat-banner {
        height: 610px;                              /* Figma 343:9285 = 610 (era 558, hero cresciuto in revisione) */
        border-radius: 40px 0 40px 0;               /* Figma 343:9285 rounded-tl/br 40 (era 16) */
        /* NB: niente background qui — le varianti .cat-banner--<slug> (es. #ffc936 filtrazione)
           sono definite fuori dal media query: forzare grey-03 le sovrascriveva per source-order */
    }
    .cat-banner-overlay {
        flex-direction: column;
        align-items: flex-start;
        padding: 26px 27px;
        gap: 32px;
    }
    .cat-banner-left {
        flex: none; width: 100%;
        gap: 31px;
    }
    .cat-banner-left h1 {
        font-size: 28px;        /* Figma 343:9692 H3-28 */
        line-height: 1.3;
        color: var(--black);
    }
    .cat-banner-right {
        flex: none; width: 100%;
        padding-top: 0;
    }
    .cat-banner-right p {
        font-size: 16px; color: var(--grey-01);
        line-height: 1.3;
    }
    .cat-banner-left .breadcrumb { font-size: 14px; color: var(--grey-01); }
    .cat-banner-left .breadcrumb > a:first-child,
    .cat-banner-left .breadcrumb > .breadcrumb-sep,
    .cat-banner-left .breadcrumb > strong { display: none; }
    .cat-banner-left .breadcrumb > a:nth-of-type(2) {
        display: inline-flex; align-items: center; gap: 7px;
        color: var(--grey-01);
    }
    .cat-banner-left .breadcrumb > a:nth-of-type(2)::before {
        content: '';
        width: 12px; height: 12px;
        background: currentColor;
        mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M8 2.5L4 6l4 3.5' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>") center/contain no-repeat;
        -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M8 2.5L4 6l4 3.5' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>") center/contain no-repeat;
    }

    /* ===== Accordion sottocategorie mobile (Figma 283:1860 + 380:12922) — ≤1024 =====
       Chiuso: header border-t + border-b, padding vertical 20, solo title visibile + plus
       Aperto: header senza border, padding 0, title + desc gap 19, gap 60 verso products + Carica altri */
    .cat-group { margin-bottom: -1px; transition: margin .4s ease; }   /* margin animato come il max-height del content → niente scatto in chiusura (il margine 28/50 non salta più di colpo) */
    .cat-group:last-child { margin-bottom: 0; }
    .cat-group.is-open { margin: 28px 0 50px; }   /* Figma: item-prodotti(343:11657) → accordion(343:11696) = 50px */
    .cat-group.is-open + .cat-group { margin-top: 0; }
    .cat-group-header {
        margin: 0; padding: 24px 0;                       /* Figma 324:14491 py-24 (era 20) */
        display: flex; justify-content: space-between;
        align-items: flex-start;
        gap: 10px; cursor: pointer;
        border-top: 1px solid var(--primary-cyan-light);  /* Figma 324:14491 bordi cyan-light #dbedf1 (era grey-02) */
        border-bottom: 1px solid var(--primary-cyan-light);
        text-align: left;
        transition: padding .25s ease, border-color .25s ease;
    }
    .cat-group.is-open .cat-group-header {
        padding: 0;
        border-top: none;
        border-bottom: none;
    }
    .cat-group-heading {
        display: flex; flex-direction: column; gap: 0;
        padding: 0 10px;
        flex: 1 1 auto; min-width: 0;
    }
    .cat-group.is-open .cat-group-heading { gap: 19px; }
    .cat-group-title {
        font-size: 16px;                              /* Figma 324:14475 (era 20) */
        font-weight: 700; color: var(--primary-blue); /* Figma 343:9743 primary-blue #265a7b (era grey-01) */
        margin: 0; line-height: 1.4; letter-spacing: 0;
        text-align: left; padding-left: 0;
    }
    .cat-group-desc {
        display: none;
        font-size: 14px; color: var(--grey-01);
        line-height: 1.3; letter-spacing: 0.2px;
        margin: 0; text-align: left;
        max-width: none;
    }
    .cat-group.is-open .cat-group-desc { display: block; }
    .cat-group-toggle {
        display: inline-flex; align-items: center; justify-content: center;
        width: 24px; height: 24px; padding: 0;
        background: none; border: none; cursor: pointer;
        color: var(--grey-01); flex-shrink: 0;
    }
    /* Icon fatta con due barre CSS — plus (entrambe visibili) → minus (solo orizzontale) */
    .cat-group-icon {
        position: relative;
        display: block;
        width: 14px; height: 14px;
    }
    .cat-group-icon-bar {
        position: absolute;
        top: 50%; left: 50%;
        background: currentColor;
        transform: translate(-50%, -50%);
    }
    .cat-group-icon-bar-h { width: 14px; height: 1.5px; }
    .cat-group-icon-bar-v {
        width: 1.5px; height: 14px;
        transition: transform .25s ease;
    }
    .cat-group.is-open .cat-group-icon-bar-v {
        transform: translate(-50%, -50%) scaleY(0);  /* nascosto quando aperto → diventa − */
    }
    .cat-group-content {
        max-height: 0; overflow: hidden;
        padding: 0 10px;
        transition: max-height .4s ease, padding .3s ease, margin-top .3s ease;
    }
    .cat-group.is-open .cat-group-content {
        max-height: 5000px;
        padding: 0;   /* niente trailing: l'ultima card = fondo blocco prodotti (Figma 343:11657), il gap 50 lo dà il margin del gruppo */
        margin-top: 60px;
    }
    .cat-group .prodotti-archive-grid {
        display: flex; flex-direction: column; gap: 28px;
        margin-bottom: 0;   /* era 64 (base) → toglie il trailing sotto l'ultima card */
    }
    .cat-group .cat-slider-wrap { gap: 28px; }
    .cat-group .cat-slider-footer { display: none; }
    /* "Carica altri" button — dentro ogni accordion, solo se count prodotti > 4 (Figma 380:12934) */
    .cat-group-carica-altri {
        display: flex; align-items: center; justify-content: center;
        margin: 40px auto 0; padding: 12px 20px;
        height: 48px; min-width: 123px;
        border: 2px solid var(--grey-01);
        border-radius: 4px;
        background: transparent; color: var(--grey-01);
        font-family: var(--font-base); font-size: 16px; font-weight: 700;
        text-transform: uppercase; letter-spacing: 0.2px;
        cursor: pointer;
    }
    .cat-group-carica-altri:hover { background: var(--grey-01); color: var(--white); }
}
@media (max-width: 768px) {
    .page-hero .container  { grid-template-columns: 1fr; }
    .page-hero-img         { display: none; }
    .page-hero-content h1  { font-size: 28px; }
    .two-col               { grid-template-columns: 1fr; }
    .two-col--reverse      { direction: ltr; }
    .prodotti-archive-grid .prodotto-archive-card { flex: none; width: 100%; max-width: 100%; height: 556px; }  /* flex:none (grid è column su mobile) + altezza fissa: body è absolute, Figma 556 */
    /* Carosello correlati mobile: swipe (touch-action pan-y → scroll verticale libero, swipe orizzontale gestito dal JS) */
    .prodotti-archive-grid.sp-correlati-track { gap: 28px; }
    .prodotti-archive-grid.sp-correlati-track, .prodotti-archive-grid.sp-correlati-track * { touch-action: pan-y; }
    .prodotti-archive-grid.sp-correlati-track img { -webkit-user-drag: none; user-select: none; }
    .settori-archive-grid, .blog-grid--4 { grid-template-columns: 1fr; }
    .case-content-grid, .case-gallery, .download-grid { grid-template-columns: 1fr; }
    .posizioni-layout, .numeri-grid { grid-template-columns: 1fr; }
    .form-row              { grid-template-columns: 1fr; }
    .consulenza-form-section .form-row { grid-template-columns: 1fr; gap: 24px; margin-bottom: 24px; }
    .consulenza-form-section { padding: 80px 0 80px; }   /* Figma: dark->form 80, form->footer 80 (era 48/64) */
    .consulenza-form-header { margin-bottom: 32px; }
    .consulenza-form-header h2 { font-size: 24px; }   /* Figma 376:13134 H4-24 */
    .consulenza-dark-section { padding: 48px 0 0; }
    .consulenza-dark-card { padding: 52px 30px; border-radius: 24px; }   /* Figma MB-box-features-benefici */
    .consulenza-dark-card h2 { font-size: 24px; margin-bottom: 36px; }
    .consulenza-dark-grid { grid-template-columns: 1fr; gap: 36px; }   /* Figma features row-gap 36 (era 32) */
    .consulenza-dark-item-text strong { font-size: 16px; }   /* Figma mobile item title 16 (era 20) */
    .page-consulenza .page-inner-hero.section { padding-top: 24px; padding-bottom: 32px; }
    .page-consulenza .breadcrumb { font-size: 14px; }   /* Figma 376:12931 P-14 (era 12) */
    .page-consulenza .page-inner-hero .breadcrumb { margin-bottom: 40px; }   /* Figma breadcrumb->h1 41 (era 20) */
    .page-consulenza .page-inner-hero-content { grid-template-columns: 1fr; gap: 40px; }   /* Figma h1->testo 40 (era 24) */
    .page-consulenza .page-inner-hero-content h1 { font-size: 28px; line-height: 1.3; }   /* Figma 376:12940 H3-28 */
    /* breadcrumb back "‹ home" */
    .page-consulenza .breadcrumb-sep, .page-consulenza .breadcrumb strong { display: none; }
    .page-consulenza .breadcrumb a:last-of-type::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .page-supporto .breadcrumb-sep, .page-supporto .breadcrumb strong { display: none; }
    .page-supporto .breadcrumb a:last-of-type::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .page-lavora .breadcrumb-sep, .page-lavora .breadcrumb strong { display: none; }
    .page-lavora .breadcrumb a:last-of-type::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .page-download .page-inner-hero .breadcrumb-sep, .page-download .page-inner-hero .breadcrumb strong { display: none; }
    .page-download .page-inner-hero .breadcrumb a:last-of-type::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .page-consulenza .consulenza-hero-right { padding-top: 0; gap: 24px; }
    .page-consulenza .consulenza-hero-right .btn-outline-blue { margin-top: 16px; }   /* Figma testo->bottone 40 (gap24+16) */
    .page-consulenza .wpcf7-acceptance label { gap: 16px; }
    .page-consulenza .wpcf7-form { --acc-indent: 54px; }   /* gap 16 anziché 23 */
    .page-consulenza textarea.form-control { height: 160px; }

    /* Download mobile */
    .page-download .page-inner-hero.section { padding-top: 24px; padding-bottom: 32px; }
    .page-download .page-inner-hero .breadcrumb { margin-bottom: 20px; }
    .page-download .page-inner-hero-content { grid-template-columns: 1fr; gap: 20px; }
    .page-download .page-inner-hero-content h1 { font-size: 28px; line-height: 1.3; }   /* Figma 400:11777 H3-28 */
    .page-download .page-inner-hero-content p { padding-top: 0; }
    .page-download-cats { padding: 48px 0 64px; }
    .download-group { margin-bottom: 48px; }
    .page-download .download-group h2 { font-size: 24px; }
    .download-item { padding: 28px 24px 44px; gap: 20px; }   /* Figma item-scarica pt28/pb44/px24 */
    .download-item-info { gap: 16px; }
    .download-item-info strong { font-size: 20px; }   /* Figma item-scarica H5-20 */

    /* File BIM mobile */
    .page-hero-card--bim { height: auto; min-height: 480px; border-radius: 32px 0 32px 0; }
    /* Hero Supporto: quasi full-height come le altre hero interne (azienda/home) — il contenuto sotto spunta in fondo */
    .page-supporto .page-hero-card--bim { min-height: calc(100vh - var(--offset) - 80px); min-height: calc(100svh - var(--offset) - 80px); }   /* svh stabile: dvh zoomava la cover allo scroll (barra URL) */
    /* GOTCHA flex-basis→altezza: su mobile (colonna) flex:0 1 485px/539px diventava ALTEZZA → hero gonfiata a 1104px.
       Reset a content-size così h1 (alto) + descrizione (basso) si distribuiscono nella card full-height */
    .page-supporto .page-hero-card-left  { flex: 0 0 auto; max-width: 100%; }
    .page-supporto .page-hero-card-right { flex: 0 0 auto; max-width: 100%; padding-top: 0; }
    .page-hero-card-content--bim { flex-direction: column; align-items: flex-start; padding: 40px 24px; gap: 24px; }
    .page-hero-card-left { flex: none; align-self: flex-start; gap: 16px; }
    .page-hero-card-left h1 { font-size: 32px; }
    .page-hero-card-right { flex: none; padding-left: 0; align-self: flex-start; gap: 20px; }
    .page-hero-card-right p { max-width: none; }
    .page-hero-card-btns { flex-direction: column; gap: 12px; align-items: stretch; }
    .btn-blue-solid, .btn-cyan-light { justify-content: center; width: 100%; }
    /* Bottone "Catalogo file BIM" (Figma 407:12301): auto-width a sinistra, non full-width */
    .bim-catalogo-content .btn-cyan-light { width: max-content; max-width: 100%; justify-content: flex-start; align-self: flex-start; }
    .bim-intro-section { padding: 48px 0 0; }
    .bim-intro-inner h2 { font-size: 24px; }   /* Figma 407:12059 H4-24 */
    .bim-intro-text { font-size: 16px; }       /* Figma 407:12060 P-16 */
    .bim-catalogo-section { padding: 48px 0 0; }
    .bim-catalogo-layout { grid-template-columns: 1fr; gap: 32px; }
    .bim-catalogo-content h2 { font-size: 24px; }   /* Figma 407:12285 H4-24 */
    .bim-catalogo-label { font-size: 14px; }         /* Figma 407:12283 LABEL-14 */
    .bim-vantaggi-wrap { padding: 48px 0 0; }
    .bim-form-section { padding: 48px 0 64px; }
    .bim-form-inner { gap: 32px; }
    .bim-form-inner h2 { font-size: 24px; }    /* Figma 407:12372 H4-24 */
    /* Hero file-bim mobile — Figma 407:12040: radius 40/0/40/0 (--bim base era 32), breadcrumb back "‹ HOME" */
    .page-bim .page-hero-card--bim { border-radius: 40px 0 40px 0; min-height: 610px; }   /* Figma overlayer 407:12042 = 610 (era 480 -> hero schiacciata) */
    /* Figma 407:12040: breadcrumb in alto, blocco titolo+testo+bottoni ancorato in BASSO */
    .page-bim .page-hero-card-content--bim { justify-content: flex-end; position: relative; gap: 24px; padding-top: 84px; }
    .page-bim .page-hero-card-content--bim .breadcrumb { position: absolute; top: 40px; left: 32px; }
    .page-bim .page-hero-card-content .breadcrumb-sep, .page-bim .page-hero-card-content .breadcrumb strong { display: none; }
    .page-bim .page-hero-card-content .breadcrumb a:last-of-type::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .page-bim .form-row { grid-template-columns: 1fr; gap: 24px; }
    .page-bim textarea.form-control { height: 160px; }
    /* Service sections mobile — Figma 821:18574: eyebrow 14/1.24, h2 24/1.3, body 16/1.4, img-team 372 cover */
    .sv-service-label { font-size: 14px; line-height: 1.24; margin-bottom: 28px; }
    .sv-service-text h2, .sv-text-col h2 { font-size: 24px; line-height: 1.3; margin-bottom: 28px; }
    .sv-service-single .sv-body, .sv-intro-right.sv-body, .sv-intro-right .sv-body, .sv-text-col--lg .sv-body { font-size: 16px; line-height: 1.4; }
    .sv-carousel-wrap .sv-img-rounded { height: 372px; object-fit: cover; display: block; }
    /* Immagini service "Frame 7" = 326px cover (Figma 363:9960/366:10324/366:10358) */
    #file-bim .sv-img-rounded, #intervento .sv-img-rounded, #seminari .sv-img-rounded { height: 326px; object-fit: cover; display: block; }
    /* Ambiti: l'immagine va PRIMA dell'accordion (Figma 363:8606: titolo → img-tab-clienti 237 → accordion) */
    .sv-ambiti-grid > div:last-child { order: -1; aspect-ratio: 345 / 237; }
    /* Titoli sezione mobile = H4-24/130% (Figma): erano 28/36px, portati a 24 */
    .sv-faq-title { font-size: 24px; line-height: 1.3; }
    .sv-faq-item summary, .sv-accordion-item summary { font-size: 17px; }
    .sv-img-ph { min-height: 280px; }
    .sv-vantaggi-card h2 { font-size: 24px; line-height: 1.3; margin-bottom: 36px; }
    .sv-vantaggi-card { padding: 52px 30px; }
    .sv-vantaggio-text strong { font-size: 16px; }   /* Figma 353:2957: feature title 16px, non 20 */
    .sv-intro-left h2  { font-size: 24px; line-height: 1.3; }
    .sv-ambiti-title   { font-size: 24px; line-height: 1.3; margin-bottom: 32px; }
    .sv-calc-header h2 { font-size: 24px; line-height: 1.3; }
    .sv-calc-inner > h2 { font-size: 24px; line-height: 1.3; }
    .sv-img-ph--tall   { min-height: 320px; }
    .sv-bim-buttons    { flex-direction: column; gap: 16px; }
    .cert-grid, .valori-grid { grid-template-columns: repeat(2, 1fr); }
    .blog-archive-top      { flex-direction: column; gap: 16px; align-items: flex-start; }
    .archive-blog .blog-archive-top { padding-top: 48px; }   /* Figma 378:13705->13764: breadcrumb->filtro 48 (era 64, titolo nascosto su mobile) */
    /* Blog archivio mobile — Figma 378:13523: niente titolo "Blog" (filtro subito dopo breadcrumb), breadcrumb back, filtro full-width */
    .archive-blog .blog-archive-title { display: none; }
    .archive-blog .breadcrumb--blog .breadcrumb-sep, .archive-blog .breadcrumb--blog strong { display: none; }
    .archive-blog .breadcrumb--blog a:last-of-type::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .blog-cat-filter { width: 100%; }
    .blog-cat-select-wrap { width: 100%; }   /* Figma 378:13764: filtro full-width 343 su mobile (era 255 desktop) */
    .page-hero-card        { margin: 0 16px; min-height: 420px; }
    .page-hero-card-content { padding: 40px 32px; }
    .page-hero-card-content h1 { font-size: 28px; }
    /* Hero servizi mobile — Figma 362:13108: card 40/0/40/0, overlay 40%, titolo in basso.
       FULL-HEIGHT come azienda: hero + subnav sticky = 100svh, subnav al fondo del viewport a
       OGNI risoluzione (iPhone incluso). svh stabile (no zoom immagine su scroll), niente min-height. */
    .page-hero-card.page-hero-card--servizi {
        height: calc(100vh - var(--offset) - 40px);   /* 40 = subnav; nessun gap hero↔subnav su servizi → subnav al fondo */
        height: calc(100svh - var(--offset) - 40px);
        min-height: 0; border-radius: 40px 0 40px 0;
    }
    .page-hero-card.page-hero-card--servizi .page-hero-card-content { padding: 26px 30px 48px; max-width: 100%; height: 100%; justify-content: space-between; gap: 24px; }
    .page-hero-card.page-hero-card--servizi .page-hero-card-content h1 { font-size: 28px; line-height: 1.3; }
    /* breadcrumb mobile = back "‹ HOME" (Figma 362:13290) */
    .page-servizi .page-hero-card-content .breadcrumb-sep,
    .page-servizi .page-hero-card-content .breadcrumb strong { display: none; }
    .page-servizi .page-hero-card-content .breadcrumb a::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .page-hero-card--bim { height: auto; }
    .page-hero-card-content--bim { flex-direction: column; gap: 24px; padding: 40px 32px; }
    .page-hero-card-left { flex: none; }
    .page-hero-card-right { padding-left: 0; }
    .page-inner-hero-content { grid-template-columns: 1fr; }
    .page-inner-hero-content h1 { font-size: 32px; }
    /* Lavora con noi mobile */
    .page-hero-card--lavora { height: 610px; min-height: 0; border-radius: 40px 0 40px 0; }   /* Figma 378:14417 */
    .page-hero-card--lavora .page-hero-card-content { width: 100%; max-width: 100%; height: 100%; justify-content: space-between; padding: 26px 30px 40px; gap: 24px; }
    .page-hero-card--lavora .page-hero-card-content h1 { font-size: 28px; line-height: 1.3; }
    .lavora-valori-section { padding: 48px 0 0; }
    .lavora-valori-section .container { gap: 32px; }
    .lavora-valori-text { text-align: left; }
    .lavora-valori-text h2 { font-size: 24px; margin-bottom: 20px; }   /* Figma 378:14431 H4-24 */
    .lavora-valori-text p { font-size: 16px; }                        /* Figma 378:14432 P-16 */
    .lavora-valori-carousel-wrap { width: 100%; height: 480px; }
    .lavora-carousel-controls { bottom: 20px; left: 20px; right: 20px; }
    .lavora-perche-section { padding: 48px 0 0; }
    .lavora-perche-card    { grid-template-columns: 1fr; padding: 48px 30px; gap: 40px; }
    .lavora-perche-item h3 { font-size: 24px; }
    .lavora-persone-section { padding: 48px 0 0; }
    .lavora-persone-section .container { gap: 20px; }
    .lavora-persone-carousel-wrap { height: 420px; border-radius: 16px; }
    .lavora-persone-controls { bottom: 20px; left: 20px; right: 20px; }
    .lavora-persone-label { font-size: 22px; }
    .lavora-posizioni-section { padding: 48px 0 0; }
    .lavora-posizione-layout { flex-direction: column; gap: 32px; }
    .lavora-posizione-layout + .lavora-posizione-layout { margin-top: 48px; }
    .lavora-posizione-img { flex: none; width: 100%; }
    .lavora-posizione-content { gap: 20px; }
    .lavora-posizione-content h2 { font-size: 24px; }   /* Figma 388:9977 H4-24 */
    .lavora-posizione-label { font-size: 14px; }        /* Figma 388:9975 LABEL-14 */
    .lavora-cta-section { padding: 48px 0 64px; }
    .lavora-cta-card { height: auto; min-height: 280px; }
    .lavora-cta-content { flex-direction: column; align-items: flex-start; padding: 32px 24px; gap: 24px; }
    .lavora-cta-text h2 { font-size: 24px; }
    .lavora-cta-text p { font-size: 16px; }

    /* Single articolo mobile */
    .page-hero-card.page-hero-card--article { height: auto; min-height: 610px; border-radius: 40px 0 40px 0; }   /* Figma 378:14139 (specificità per battere la base) */
    /* Figma 378:14139: breadcrumb in alto, titolo+meta in BASSO (era titolo in alto) */
    .single-post .page-hero-card--article { display: flex; flex-direction: column; align-items: stretch; }
    .single-post .phc-article-content { flex: 1 1 auto; max-width: 100%; justify-content: space-between; padding: 26px 30px 84px; gap: 20px; }
    /* .is-long-title incluso: su mobile il hero è ad altezza automatica, il titolo resta 28px */
    .phc-article-content h1,
    .single-post .phc-article-content h1.is-long-title { font-size: 28px; line-height: 1.3; }
    .phc-article-meta { left: 30px; bottom: 40px; font-size: 16px; gap: 12px; }
    /* breadcrumb articolo back "‹ blog" (3 livelli: nascondi Home + sep + titolo, mostra Blog) */
    .single-post .page-hero-card-content .breadcrumb a:not(:last-of-type),
    .single-post .page-hero-card-content .breadcrumb-sep,
    .single-post .page-hero-card-content .breadcrumb strong { display: none; }
    .single-post .page-hero-card-content .breadcrumb a:last-of-type::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .article-content-section { padding: 48px 0 64px; }
    .article-content h2 { font-size: 24px; }   /* Figma 378:14149 H4-24 */
    .article-content h3 { font-size: 20px; }
    .article-content p, .article-content ul, .article-content ol { font-size: 16px; }   /* Figma P-16 */
    .article-content > * + h2 { margin-top: 40px; }
    .article-content > * + h3 { margin-top: 32px; }
    .article-content > * + figure,
    .article-content > * + .wp-block-image,
    .article-content > figure + *,
    .article-content > .wp-block-image + * { margin-top: 32px; }
    .article-content blockquote { padding: 8px 0 8px 20px; font-size: 18px; }
    .article-content figure img,
    .article-content .wp-block-image img,
    .article-content img { border-radius: 16px; }
    .article-content .alignwide,
    .article-content .alignfull { margin-left: 0; margin-right: 0; }
    .article-content .wp-block-gallery { grid-template-columns: 1fr; gap: 16px; }
    .article-correlati-section { padding: 0 0 64px; }
    .article-correlati-title { font-size: 24px; margin-bottom: 32px; }

    /* Supporto mobile */
    .page-supporto .page-hero-card-right { align-self: flex-start; padding-left: 0; }
    .supporto-content-section { padding: 48px 0 64px; }
    .supporto-content-grid { grid-template-columns: 1fr; gap: 48px; }
    .supporto-tipi { width: 100%; flex-direction: column; gap: 32px; }
    .supporto-tipo h3 { font-size: 20px; }   /* Figma 378:13447 H5-20 (era 22) */
    .page-supporto .page-hero-card--bim { border-radius: 40px 0 40px 0; }   /* Figma 378:13190 (era 32) */
    .page-supporto .form-row { grid-template-columns: 1fr; gap: 24px; }
    .page-supporto textarea.form-control { height: 160px; }
    .bim-catalogo-layout   { grid-template-columns: 1fr; gap: 40px; }
    .bim-vantaggi-card     { padding: 40px 24px; }
    .bim-vantaggi-grid     { grid-template-columns: 1fr; }
    .bim-form-inner        { max-width: 100%; }
    .cta-dark-card         { flex-direction: column; align-items: flex-start; }
    .lavora-valori-text    { text-align: left; }
    .prodotto-hero-inner, .archive-settori-header { grid-template-columns: 1fr; }
    /* Hero singolo prodotto: 1 colonna su mobile (img sopra, info sotto — era 590fr/539fr) */
    .sp-hero-inner { grid-template-columns: 1fr; gap: 32px; }
    .sp-hero-img-ph { min-height: 280px; }
    /* Singolo prodotto hero mobile — Figma 343:11965: card 343 (margin 16), img full-bleed top,
       info px30 titolo 28, breadcrumb back "‹ <categoria>", niente overflow (era margin 0 51 + padding desktop) */
    .sp-hero-banner { margin: 0 16px; padding: 20px 0 40px; min-height: 0; border-radius: 40px 0 40px 0; overflow: hidden; }
    .sp-hero-breadcrumb { padding: 0 30px; margin-bottom: 24px; white-space: normal; }
    .sp-hero-breadcrumb a:not(:last-of-type), .sp-hero-breadcrumb .breadcrumb-sep, .sp-hero-breadcrumb strong { display: none; }
    .sp-hero-breadcrumb a:last-of-type::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .sp-hero-info { padding: 0 30px; }
    .sp-hero-info h1 { font-size: 28px; line-height: 1.3; }
    /* Titoli sezione singolo prodotto = 24px (Figma h17): applicazioni/settori/correlati */
    .sp-section-title { font-size: 24px; }
    .sp-section-title--h2 { font-size: 24px; line-height: 1.3; }
    /* Applicazioni principali (Figma 353:5027): stack — accordion sopra, immagine full-width sotto */
    .sp-applicazioni-section .sp-section-title { margin-bottom: 28px; }   /* Figma 348:1388 gap 28 */
    .sp-applicazioni-inner { grid-template-columns: 1fr; gap: 20px; }     /* era grid 2-col → schiacciava accordion+img */
    .sp-applicazioni-img { aspect-ratio: 345 / 237; background: var(--grey-50); }  /* Figma 348:1432 (era 654/431) */
    .sp-applicazioni-accordion .sv-accordion-item summary { font-size: 16px; }     /* Figma 324:14475 (era 17) */
    /* Caratteristiche chiave (Figma 353:4988 a y2071): gap dall'immagine applicazioni ~80px, non 160 (era 60 pb + 100 pt) */
    .sp-applicazioni-section { padding-bottom: 0; }
    /* gap tra sezioni single-prodotto = 60px (Figma: features→settori, settori→cta, cta→correlati tutti 60).
       Era doppio padding (padB 64/60 + padT 60 del successivo = 120-124) → padB 0, il gap lo dà il padT 60 */
    .sp-caratteristiche-section { padding: 80px 0 0; }
    .single-prodotto .sp-settori-section { padding-bottom: 0; }
    .single-prodotto .cta-consulenza { padding-bottom: 0; }
    .settore-aspetti-cols { flex-direction: column; }
    .settore-aspetti-cols .settore-aspetti-img  { flex: none; width: 100%; height: 237px; aspect-ratio: auto; }   /* Figma 362:12947 = 237 (il container era h0 → immagine non si vedeva) */
    .settore-aspetti-cols .settore-aspetti-img img, .settore-aspetti-cols .settore-aspetti-img .img-placeholder { height: 100%; }
    .settore-accordion    { flex: none; width: 100%; }
    .settore-quote-card   { height: auto; padding: 48px 32px; }
    .settore-quote-mark   { font-size: 80px; }
    .settore-quote-text   { font-size: 24px; margin-top: 52px; }
    .az-quote-body        { font-size: 24px; line-height: 1.3; }   /* Figma 324:14139: quote azienda mobile 24/130 (era 36) */
    /* Quote azienda mobile (Figma 324:14136): card più compatta, virgoletta piccola, gap virgoletta→testo ~24 (era enorme) */
    .az-quote-card        { padding: 60px 36px 40px; gap: 32px; }
    .az-quote-card::before { font-size: 48px; top: 56px; left: 36px; line-height: 1; }
    .az-quote-text        { padding-top: 40px; gap: 28px; width: 100%; max-width: 100%; }
    /* slide tagliate: la grid auto-dimensionava la colonna a 888px (width desktop dello slide) →
       testo non andava a capo e overflow:hidden lo clippava. minmax(0,1fr) vincola la colonna alla card */
    .az-quote-slides-wrap { width: 100%; grid-template-columns: minmax(0, 1fr); }
    .settore-interventi-wrap { width: 100%; }
    .settore-interventi-carousel img, .settore-interventi-carousel .img-placeholder { height: 360px; }
    .page-hero-card--settore { height: auto; }
    .page-hero-card-content--settore { max-width: 100%; }
    .page-hero-card-content--settore .breadcrumb { white-space: normal; flex-wrap: wrap; width: auto; }
    .settori-cards-grid    { grid-template-columns: 1fr 1fr; }
    .sub-settori-grid      { grid-template-columns: 1fr 1fr; }
    .sp-settori-grid       { grid-template-columns: 1fr 1fr; }
    .next-project-link     { grid-template-columns: 1fr; }
    /* Hero azienda mobile (Figma 254:6365: 343x698 fisso, no 100vh che crea spazio morto) */
    .az-hero {
        height: auto;
        padding: 0 16px;
        min-height: 0;
    }
    .az-hero-inner {
        /* full-height: hero + subnav sticky riempiono il viewport, la subnav "spunta" a fondo schermo
           (Figma 318:13750: barra subnav a y772-812 su viewport 812). 40px = altezza subnav.
           svh (small viewport, STABILE) e non dvh: dvh cambia quando la barra URL si nasconde durante
           lo scroll → la hero si riscala e l'immagine cover sembra "zoomare" */
        height: calc(100vh - var(--offset) - 55px);    /* 40 subnav + 15 gap hero↔subnav (Figma: hero finisce y757, barra y772) */
        height: calc(100svh - var(--offset) - 55px);
        min-height: 0;   /* niente min: hero+subnav SEMPRE dentro il full-height a ogni viewport (era 560 → overflow su schermi bassi) */
        border-radius: 40px 0 40px 0;   /* Figma 318:12617 */
        align-items: stretch;
    }
    .az-hero-content {
        padding: 26px 30px 48px;
        gap: 24px;
        max-width: 100%;
        height: 100%;
        justify-content: space-between;   /* breadcrumb in alto, titolo in basso */
    }
    .az-hero-content h1 { font-size: 28px; line-height: 1.3; max-width: 100%; }
    .az-hero-content .breadcrumb { font-size: 14px; }
    /* breadcrumb mobile = back "‹ HOME" (Figma 343:11957) */
    .az-hero-content .breadcrumb-sep,
    .az-hero-content .breadcrumb-current { display: none; }
    .az-hero-content .breadcrumb a::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .az-full-img-wrap      { margin: 0 20px; }
    .az-timeline-title     { font-size: 36px; line-height: 1.2; }   /* Figma 318:13927 H2-36 (era 32) */
    .az-timeline-body      { font-size: 16px; line-height: 1.3; }   /* Figma 318:13928 P-16 (era 24) */
    .az-cert-grid          { grid-template-columns: 1fr; }
    /* Cert card mobile = Figma 333:8678 (h507): area icona 205, radius 24, titolo 16, desc 14, gap 24 */
    .az-cert-card          { height: auto; min-height: 0; border-radius: 24px; }
    .az-cert-img           { height: 205px; }
    .az-cert-img .az-cert-logo { height: 122px; }
    .az-cert-body          { gap: 24px; }
    .az-cert-text          { gap: 24px; }
    .az-cert-text h3       { font-size: 16px; }
    .az-cert-text p        { font-size: 14px; }
    #mission .az-chi-siamo-text { gap: 28px; }   /* Figma 318:13905/13907: distanze eyebrow→titolo e titolo(318:13908)→testo(318:13909) = 28 (era 32) */
    .az-clienti-header     { flex-direction: column; align-items: flex-start; }
    /* Titoli sezione azienda — dimensioni Figma esatte (mix 24/28/36), erano tutti 36/28 desktop */
    .az-chi-siamo-text .az-heading { font-size: 24px; line-height: 1.3; }   /* intro 318:12631 */
    .az-chi-siamo-text .az-body-text { font-size: 16px; line-height: 1.4; }
    #mission .az-heading { font-size: 24px; }                                /* 318:13908 */
    #team .az-heading { font-size: 28px; }                                   /* 318:14021 H3-28 */
    #team .az-body-text { font-size: 16px; line-height: 1.4; }               /* 318:14022 P-16 (era 20px → testo 196px) */
    .az-clienti-title { font-size: 24px; text-align: center; width: 100%; }  /* 324:14036 centrato (era a sinistra) */
    #certificazioni .az-heading { display: block; font-size: 24px; }         /* 330:14684 (era nascosto su mobile) */
    /* Carosello foto chi-siamo: su mobile immagine PORTRAIT 343x670 (Figma 320:8575), non landscape */
    #az-foto-carousel .az-carousel-slide img { aspect-ratio: 343 / 670; }
    /* Tabs mobile (Figma 324:14084/14085): la BARRA azzurra è larga quanto TUTTI i tab (≈767) e BLEEDA
       oltre il bordo destro dello schermo. Lo scroll è sul wrapper, NON sullo sfondo (prima il bg
       era confinato al viewport 343 e i tab scrollavano "dentro" → ora la barra scrolla come un blocco). */
    .az-tabs-scroll {
        display: block;
        width: calc(100% + 16px);   /* arriva fino al bordo destro schermo (annulla il padding 16 del container) */
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .az-tabs-scroll::-webkit-scrollbar { display: none; }
    .az-tabs {
        flex-wrap: nowrap;
        width: max-content;     /* sfondo azzurro = larghezza di tutti i tab, sborda off-screen */
        max-width: none;
        overflow: visible;      /* niente scroll interno */
    }
    .az-tab { flex-shrink: 0; padding-top: 12px; padding-bottom: 12px; }   /* barra a 54px (Figma 324:14085) */
    /* Sostenibilità mobile (Figma 277:1621): overlay mantenuto sopra image placeholder 343x670,
       header in alto-sx, stats card in basso con 3 card (1 wide + 2 affiancate) */
    .az-sost-img-wrap {
        height: 670px;                           /* Figma: 670 fisso (non auto/300) */
        position: relative;
    }
    .az-sost-img,
    .az-sost-img-placeholder { height: 100%; }
    .az-sost-header {
        position: absolute;                       /* overlay mantenuto, non static */
        top: 36px; left: 31px;
        max-width: 281px;
        gap: 26px;
    }
    .az-sost-label { font-size: 16px; }
    .az-sost-title { font-size: 24px; line-height: 1.2; }
    .az-sost-stats {
        position: absolute;
        /* ancorato al BASSO (era top:426): con le etichette che vanno a capo i box
           crescono, e ancorandoli in alto uscivano dall'immagine. 38px = inset
           che il blocco aveva già con i box all'altezza nominale. */
        top: auto;
        bottom: 38px;
        left: 50%;                                /* centrato orizzontalmente */
        transform: translateX(-50%);
        width: calc(100% - 38px);                 /* 19px inset da entrambi i bordi */
        max-width: 305px;                          /* Figma width 305 */
        right: auto;                                /* resetto eventuali right del base */
        gap: 20px;
    }
    .az-sost-stat {
        min-height: 102px; height: auto;           /* Figma h-102, ma deve poter crescere */
        padding: 12px 16px 12px 24px;              /* Figma: pl=24, pr=16 → content area 102 (non 94 con 24/24) */
        gap: 16px;
        margin: 0;
        justify-content: space-between;
    }
    /* Card wide "180+": padding più generoso come Figma (pl/pr=30) */
    .az-sost-stat--wide { padding: 12px 30px; }
    /* Label: no wrap, ellipsis se overflow (content area è già 102 Figma) */
    /* 🔴 era white-space:nowrap: a 375px tagliava le etichette fuori dal box
       ("ALBERI EQUIVALEN…", "KM PERCORRIBILI…"). Devono andare a capo. */
    .az-sost-lbl { white-space: normal; }
    .az-sost-stat-row {
        display: flex; gap: 20px;                   /* Figma esatto: 305 - 143 - 142 = 20 */
        justify-content: space-between;
        width: 100%;
    }
    .az-sost-stat-row .az-sost-stat { flex: 1; min-width: 0; }
    .az-sost-num { font-size: 36px; font-weight: 400; }   /* Regular 36 (desktop 42 Bold) */
    /* nei due box stretti (143px a 375, ~103px interni) "538.000" a 36px misura 143px
       e sfonda: qui il numero scala con la viewport, altrove resta 36. */
    .az-sost-stat-row .az-sost-stat { padding: 12px 16px; }
    .az-sost-stat-row .az-sost-num { font-size: clamp(22px, 7vw, 36px); }
    .az-sost-lbl { font-size: 14px; }
    .az-sost-body {
        font-size: 16px; max-width: 100%;
        color: var(--black-true); line-height: 1.4;   /* Figma 330:14615: nero, P-16/140% (era grey-01 1.3) */
    }
    .az-sost-inner { gap: 20px; }                      /* Figma: 20px tra card immagine e testo (era 44) */

    /* ===== Caroselli immagine azienda (chi-siamo 320:8575, team 318:14023): niente frecce, bullet DENTRO l'immagine in basso ===== */
    .az-full-img-wrap, .az-team-carousel-wrap { position: relative; }
    .az-full-img-wrap .az-carousel-controls,
    .az-team-carousel-wrap .az-carousel-controls {
        position: absolute; left: 0; right: 0; bottom: 28px;
        margin: 0; padding: 0; justify-content: center; z-index: 3;
    }
    .az-carousel-controls .slider-arrows { display: none; }
    .az-carousel-dots .slider-dot { background: var(--primary-cyan-light); opacity: .5; }      /* Figma 318:14029 inattivi cyan-light @50% */
    .az-carousel-dots .slider-dot.is-active { background: var(--primary-cyan); opacity: 1; }   /* Figma 318:14028 attivo cyan #0086ab */

    /* Quote carousel azienda (Figma 324:14136): niente frecce, solo dots centrati */
    .az-quote-controls .slider-arrows { display: none; }
    .az-quote-controls { justify-content: center; }

    /* Testo "Il nostro team" (Figma 318:14019): allineato a sinistra (era centrato) */
    .az-team-text { text-align: left; }

    /* Clienti: immagine SOPRA la lista (Figma 324:14133), item 16px, divisori grey-50 (Figma 324:14055) */
    .az-clienti-img { order: -1; }
    .az-cliente-item { font-size: 16px; border-bottom-color: var(--grey-50); }
    .az-cliente-item:first-child { border-top-color: var(--grey-50); }
}

/* =====================
   PAGE HERO CARD — MEDIA VARIANT
   (text left + image right inside dark card)
   ===================== */
.page-hero-card--media { min-height: 480px; align-items: center; }
.page-hero-card-content--media {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 60px; padding: 65px 72px;
    align-items: center; width: 100%;
}
.phc-media-text { display: flex; flex-direction: column; gap: 20px; }
.phc-media-text h1 {
    font-size: 48px; font-weight: 700; color: var(--white);
    line-height: 1.2; letter-spacing: 0.2px; margin: 0;
}
.post-hero-meta { display: flex; gap: 8px; align-items: center; font-size: 13px; color: rgba(255,255,255,.7); }
.post-hero-date { }
.post-hero-cat  { font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.phc-media-img .sv-img-ph { min-height: 280px; background: rgba(255,255,255,.1); }
.phc-media-img img { width: 100%; border-radius: 12px; display: block; }

/* Supporto: small placeholder in hero */
.sv-img-ph--sm { min-height: 200px; flex: 1; }

/* =====================
   SUPPORTO PAGE
   ===================== */
.supporto-content-grid { display: grid; grid-template-columns: 313px 1fr; gap: 130px; align-items: start; }
.btn-supporto { display: inline-flex; align-items: center; justify-content: center; width: 198px; height: 48px; background: var(--grey-03); color: var(--grey-01); font-size: 16px; font-weight: 700; border: none; border-radius: var(--radius); cursor: pointer; transition: background .2s; }
.btn-supporto:hover { background: var(--grey-02); color: var(--white); }

/* =====================
   SINGLE SETTORE
   ===================== */

/* Hero settore figlio (Figma 169:5392) — rounded asimmetrico 60/0/60/0, single-col content top-left */
.page-hero-card--settore {
    height: 442px; min-height: 0;
    border-radius: 60px 0 60px 0; overflow: hidden;
    align-items: stretch;
}
.page-hero-card--settore .page-hero-card-bg {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: 0; pointer-events: none;
}
.page-hero-card--settore::before {
    content: ""; position: absolute; inset: 0;
    background: var(--black-true); opacity: .4; z-index: 1;
}
.page-hero-card-content--settore {
    position: relative; z-index: 2;
    padding: 45px 57px; gap: 28px;
    align-self: flex-start;
}
.page-hero-card-content--settore h1 {
    font-size: var(--fs-h1); font-weight: 700; color: var(--white);
    line-height: 1.2; letter-spacing: 0; margin: 0;
    max-width: 485px;
}
/* Breadcrumb single-settore figlio (Figma 169:5396): 4 livelli uppercase white 12 letter-spacing 0.2.
   whitespace nowrap → singola riga; il container può overflow oltre il max-width 485 del parent. */
.page-hero-card-content--settore .breadcrumb {
    font-size: 12px; padding: 0; margin: 0;
    text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px;
    display: flex; align-items: center; gap: 8px;
    white-space: nowrap; width: max-content;
}
.page-hero-card-content--settore .breadcrumb a,
.page-hero-card-content--settore .breadcrumb span,
.page-hero-card-content--settore .breadcrumb strong { color: var(--white); }
.page-hero-card-content--settore .breadcrumb a,
.page-hero-card-content--settore .breadcrumb span { font-weight: 400; }
.page-hero-card-content--settore .breadcrumb strong { font-weight: 700; }
.page-hero-card-content--settore .breadcrumb a:hover { color: var(--primary-cyan-light); }

/* Parent settore hero — posizionamento assoluto identico al Figma:
   - colonna sinistra: left:72px (card margin 51 + padding 72 = viewport x:123)
   - colonna destra:   left:calc(50%+16px) si ancora al centro del card come nel wireframe */
.page-hero-card-content--settore-2col {
    position: absolute; inset: 0; z-index: 2;
    max-width: none; width: auto; padding: 0; gap: 0;
    display: block; align-self: auto;
}
.page-hero-card-content--settore-2col .page-hero-card-left {
    position: absolute;
    left: 57px; top: 45px;
    width: 485px;
    flex: none;
    display: flex; flex-direction: column; gap: 28px;
}
/* Colonna destra (Figma 199:9628): top 226 dal PAGE = top 100 dal card (card hero parte da y=126 sul page).
   left calc(50%+16) del card, padding-left 40, width content 539 + 40 padding = 579 totale */
.settore-hero-right {
    position: absolute;
    left: calc(50% + 16px);
    top: 100px;
    width: 579px;
    padding-left: 40px;
    box-sizing: border-box;
    display: flex; flex-direction: column; gap: 32px;
}
.settore-hero-right p {
    font-size: 16px; color: var(--white); line-height: 1.4;
    letter-spacing: 0; margin: 0; max-width: 539px;
}
.settore-hero-right p:first-child { font-weight: 700; }
.settore-hero-right p:nth-child(n+2) { font-weight: 500; }
/* Settore figlio hero mobile — Figma 358:12549 (DOPO la base 2-col absolute per source-order):
   impila titolo+descrizione, titolo 28, breadcrumb back "‹ tutti i settori", niente overflow */
@media (max-width: 768px) {
    .page-hero-card--settore { margin: 0 16px; border-radius: 40px 0 40px 0; min-height: 0; height: auto; }
    .page-hero-card-content--settore-2col {
        position: relative; inset: auto; z-index: 2;
        display: flex; flex-direction: column; align-items: flex-start;
        width: auto; max-width: 100%; padding: 40px 30px; gap: 24px;
    }
    .page-hero-card-content--settore-2col .page-hero-card-left {
        position: relative; left: auto; top: auto; width: auto; flex: none; gap: 16px;
    }
    .page-hero-card-content--settore-2col .page-hero-card-left h1 { font-size: 28px; line-height: 1.3; }
    .page-hero-card-content--settore-2col .settore-hero-right,
    .settore-hero-right { position: relative; left: auto; top: auto; width: auto; max-width: 100%; padding-left: 0; }
    .page-hero-card-content--settore-2col .breadcrumb a:not(:last-of-type),
    .page-hero-card-content--settore-2col .breadcrumb .breadcrumb-sep,
    .page-hero-card-content--settore-2col .breadcrumb strong { display: none; }
    .page-hero-card-content--settore-2col .breadcrumb a:last-of-type::before {
        content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block;
    }
    /* SUB-settore (non-2col, es. Cosmetico Figma 362:12664): hero 610, breadcrumb in alto + titolo 28 in basso */
    .single-settore .page-hero-card--settore { min-height: 610px; }
    .page-hero-card-content--settore:not(.page-hero-card-content--settore-2col) {
        align-self: stretch; display: flex; flex-direction: column; justify-content: space-between;
        padding: 26px 30px 48px;
    }
    .page-hero-card-content--settore:not(.page-hero-card-content--settore-2col) h1 { font-size: 28px; line-height: 1.3; max-width: 100%; }
    .page-hero-card-content--settore:not(.page-hero-card-content--settore-2col) .breadcrumb a:not(:last-of-type),
    .page-hero-card-content--settore:not(.page-hero-card-content--settore-2col) .breadcrumb .breadcrumb-sep,
    .page-hero-card-content--settore:not(.page-hero-card-content--settore-2col) .breadcrumb strong { display: none; }
    .page-hero-card-content--settore:not(.page-hero-card-content--settore-2col) .breadcrumb a:last-of-type::before {
        content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block;
    }
}

/* Intro — Figma 172:6440 centered single-col, h2 36 black-true + p 20 grey-700 */
.settore-intro-inner {
    max-width: 654px; margin: 0 auto;
    display: flex; flex-direction: column; gap: 28px;
}
.settore-intro-inner h2 {
    font-size: 36px; font-weight: 700; color: var(--black-true);
    line-height: 1.2; letter-spacing: 0; margin: 0;
}
.settore-intro-text { font-size: 20px; font-weight: 500; color: var(--grey-700); line-height: 1.3; letter-spacing: 0; }
.settore-intro-text p { margin: 0 0 1em; }
.settore-intro-text p:last-child { margin-bottom: 0; }

/* Aspetti chiave — Figma 172:6444 (header h3 28 black-true) + 172:6452 (cols gap 30, img 654×431 r24) */
.settore-aspetti-header { display: flex; flex-direction: column; gap: 26px; margin-bottom: 40px; max-width: 654px; }
.settore-aspetti-header h2 {
    font-size: 28px; font-weight: 700; color: var(--black-true);
    line-height: 1.3; letter-spacing: 0; margin: 0;
}
.settore-aspetti-cols { display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; }
.settore-aspetti-img { flex: 1 1 0; min-width: 0; aspect-ratio: 654 / 431; border-radius: 24px; overflow: hidden; }
.settore-aspetti-img img,
.settore-aspetti-img .img-placeholder { width: 100%; height: 100%; border-radius: 0; object-fit: cover; }
.settore-accordion { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; }

/* Quote + gli interventi container */
.settore-bottom-container { display: flex; flex-direction: column; align-items: center; gap: 120px; }

/* Quote card — Figma 172:6706/6707 (aqua-green bg, virgolette primary-blue, testo 36 Medium white) */
.settore-quote-card {
    background: var(--primary-aqua); border-radius: 16px; height: 474px;
    padding: 72px 43px 25px 36px; width: 100%;
    display: flex; flex-direction: column; align-items: center; gap: 58px;
    position: relative; overflow: hidden;
}
.settore-quote-inner {
    position: relative; display: grid;
    grid-template-columns: 1fr; grid-template-rows: 1fr;
    width: 888px; max-width: 100%; gap: 31px;
}
.settore-quote-mark {
    grid-column: 1; grid-row: 1; align-self: start; justify-self: start;
    font-size: 116px; font-weight: 400; color: var(--primary-blue); line-height: 1.3; margin: 0;
}
.settore-quote-text {
    grid-column: 1; grid-row: 1;
    font-size: 36px; font-weight: 500; color: var(--white);
    line-height: 1.2; letter-spacing: 0; margin: 85px 0 0;
}
.settore-quote-author {
    font-size: 16px; font-weight: 700; color: var(--white);
    line-height: 1.24; letter-spacing: 0; text-transform: uppercase; margin: 0;
    width: 888px; max-width: 100%; text-align: left; align-self: center;
}

/* Gli interventi — Figma 175:3726/172:6444 single-col centered max 655 */
.settore-interventi-wrap {
    display: flex; flex-direction: column; align-items: center; gap: 40px;
    width: 655px; max-width: 100%;
}
.settore-interventi-text { display: flex; flex-direction: column; gap: 26px; width: 100%; }
.settore-interventi-text h2 {
    font-size: 36px; font-weight: 700; color: var(--black-true);
    line-height: 1.2; letter-spacing: 0; margin: 0;
}
.settore-interventi-body { font-size: 16px; font-weight: 500; color: var(--grey-700); line-height: 1.4; letter-spacing: 0; }
.settore-interventi-body p { margin: 0 0 1em; }
.settore-interventi-body p:last-child { margin-bottom: 0; }
.settore-interventi-carousel { width: 100%; }
.settore-interventi-carousel img,
.settore-interventi-carousel .img-placeholder { width: 100%; height: 670px; border-radius: 24px; object-fit: cover; }

/* Carousel "Gli interventi" — Figma 172:6761/6764 (overlay + nav absolute bottom 36, dots cyan-light/cyan, arrows white) */
.sv-carousel {
    position: relative; width: 100%; height: 670px;
    border-radius: 24px; overflow: hidden;
}
.sv-carousel::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, rgba(26,27,29,.16) 34.85%, var(--black-true) 109.55%);
    opacity: 0.8;
    z-index: 1;
}
.sv-carousel-track { position: absolute; inset: 0; }
.sv-carousel-slide {
    position: absolute; inset: 0; opacity: 0; pointer-events: none;
    transition: opacity .4s ease;
}
.sv-carousel-slide.is-active { opacity: 1; pointer-events: auto; }
.sv-carousel-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sv-carousel-nav {
    position: absolute; left: 28px; right: 28px; bottom: 36px;
    display: flex; align-items: center; justify-content: space-between;
    z-index: 2; padding: 0;
}
.sv-carousel-dots { display: flex; gap: 14px; align-items: center; }
.sv-carousel-dot {
    width: 6px; height: 6px; border-radius: 3px;
    background: var(--primary-cyan-light); opacity: .5;
    border: none; padding: 0; cursor: pointer;
    transition: background .2s, opacity .2s;
}
.sv-carousel-dot.is-active { background: var(--primary-cyan); opacity: 1; }
.sv-carousel-arrows { display: flex; gap: 18px; align-items: center; }
.sv-carousel-arrow {
    width: 45px; height: 45px; border-radius: 50%;
    border: 1px solid var(--white); background: transparent;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    color: var(--white); transition: background .2s, color .2s, opacity .2s;
    padding: 0;
}
.sv-carousel-arrow:hover { background: var(--white); color: var(--primary-blue); }
.sv-carousel-arrow:disabled,
.sv-carousel-arrow.is-disabled {
    opacity: .4; cursor: not-allowed; pointer-events: none;
}

/* Sub-settori grid (parent settore page — Grandi strutture ecc.) */
/* Sub-settori grid — Figma 165:3828 (item-settore-industrie Default+Hover)
   Default 165:3829: radius 24, CTA hidden (Positive cerchio primary-blue)
   Hover   165:3838: radius 60/0/60/60 (TR square), CTA visible Negative cerchio cyan-light + freccia primary-blue */
.sub-settori-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.sub-settore-card {
    display: flex; flex-direction: column; justify-content: space-between;
    position: relative; text-decoration: none;
    background: var(--primary-aqua);
    border-radius: 24px;
    height: 397px; padding: 29px 26px 30px 30px;
    overflow: hidden;
    transition: border-radius .3s ease;
}
.sub-settore-card:hover {
    border-radius: 60px 0 60px 60px;
}
.sub-settore-card-title {
    font-size: 20px; font-weight: 700; color: var(--white);
    line-height: 1.3; margin: 0; flex-shrink: 0;
}
/* Bottom block — Figma 165:3841: cluster (icon+desc) + CTA in-flow.
   Niente gap fisso: il gap 18 è dato dal margin-top della CTA, attivato su hover. */
.sub-settore-card-bottom {
    display: flex; flex-direction: column;
    align-items: flex-start;
}
.sub-settore-card-icon-desc {
    display: flex; flex-direction: column; gap: 28px;
    align-items: flex-start;
}
.sub-settore-card-icon {
    width: 104px; height: 104px; border-radius: 50%;
    background: var(--primary-blue);
    color: var(--white);
    display: flex; align-items: center; justify-content: center;
    overflow: hidden; flex-shrink: 0;
}
.sub-settore-card-icon svg { width: 36px; height: 36px; opacity: 1; color: var(--white); display: block; }
.sub-settore-card-icon img { width: 36px; height: 36px; object-fit: contain; filter: brightness(0) invert(1); }
.sub-settore-card-desc {
    font-size: 16px; font-weight: 500; color: var(--white); line-height: 1.4;
    letter-spacing: 0; margin: 0; max-width: 360px;
}
/* CTA "Scopri di più" — Figma 63:2323 (in-flow su hover, spinge icon+desc up; cerchio cyan-light freccia primary-blue) */
.sub-settore-card-cta {
    display: flex; align-items: center; gap: 14px;
    font-size: 14px; font-weight: 700; color: var(--white);
    line-height: 1.3; letter-spacing: 0.2px;
    height: 0; opacity: 0; margin-top: 0;
    transition: height .3s ease, opacity .25s ease, margin-top .3s ease;
    overflow: visible;
}
.sub-settore-card-cta .btn-cta-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 16px;
    background: var(--primary-cyan-light); color: var(--primary-blue);
    overflow: hidden; flex-shrink: 0;
}
.sub-settore-card-cta .btn-cta-icon svg { width: 16px; height: 16px; }
.sub-settore-card:hover .sub-settore-card-cta { height: 32px; opacity: 1; margin-top: 18px; }

/* Slide freccia "Scopri di più" — card settori (cta-secondary 29:3935 Negative→Negative-hover:
   cerchio cyan-light, freccia primary-blue che scorre su hover della CTA). Mancava: freccia statica. */
.sub-settore-card-cta .btn-cta-icon,
.archive-settore-card-cta .btn-cta-icon,
.sp-settore-card-cta .btn-cta-icon { position: relative; }
.sub-settore-card-cta .btn-cta-icon::before,
.sub-settore-card-cta .btn-cta-icon::after,
.archive-settore-card-cta .btn-cta-icon::before,
.archive-settore-card-cta .btn-cta-icon::after,
.sp-settore-card-cta .btn-cta-icon::before,
.sp-settore-card-cta .btn-cta-icon::after {
    content: ""; position: absolute; top: 50%;
    width: 16px; height: 16px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/><polyline points='12 5 19 12 12 19'/></svg>") center/contain no-repeat;
    transition: left .35s ease, transform .35s ease;
}
.sub-settore-card-cta .btn-cta-icon::before,
.archive-settore-card-cta .btn-cta-icon::before,
.sp-settore-card-cta .btn-cta-icon::before { left: 50%; transform: translate(-50%, -50%); }
.sub-settore-card-cta .btn-cta-icon::after,
.archive-settore-card-cta .btn-cta-icon::after,
.sp-settore-card-cta .btn-cta-icon::after { left: -50%; transform: translate(0, -50%); }
.sub-settore-card-cta:hover .btn-cta-icon::before,
.archive-settore-card-cta:hover .btn-cta-icon::before,
.sp-settore-card-cta:hover .btn-cta-icon::before { left: 150%; transform: translate(-50%, -50%); }
.sub-settore-card-cta:hover .btn-cta-icon::after,
.archive-settore-card-cta:hover .btn-cta-icon::after,
.sp-settore-card-cta:hover .btn-cta-icon::after { left: 50%; transform: translate(-50%, -50%); }
.sub-settore-card-cta .btn-cta-icon svg,
.archive-settore-card-cta .btn-cta-icon svg,
.sp-settore-card-cta .btn-cta-icon svg { display: none; }

/* Sistema integrato (settore padre) — Figma 773:19145: card BLU primary (#265a7b) con
   sfumatura, testo bianco, header (titolo 36 sx + testo 16 dx) + illustrazione larga line-art chiara */
.settore-sistema-section { padding: 100px 0; }
/* SETTORE PADRE — distanze Figma 169:4352 (desktop): hero→card 80, card→box sistema 80,
   box→footer 120 (mobile resta su .section/override esistenti) */
@media (min-width: 769px) {
    .single-settore .sub-settori-section    { padding-top: 80px; padding-bottom: 40px; }
    .single-settore .settore-sistema-section{ padding-top: 40px; padding-bottom: 120px; }
}
.settore-sistema-card {
    /* Figma 773:19145 — sfumatura cyan→blu (203.31deg, #0086AB 3.3% → #265A7B 82.2%) */
    background: linear-gradient(203.31deg, #0086AB 3.3%, var(--primary-blue) 82.2%);
    border-radius: 24px;
    padding: 84px 83px;
    overflow: hidden;
}
.settore-sistema-header {
    display: flex; justify-content: space-between; align-items: flex-start;
    gap: 60px; margin-bottom: 75px;
}
.settore-sistema-title {
    font-size: 36px; font-weight: 700; color: var(--white);
    line-height: 1.2; letter-spacing: 0; margin: 0;
    max-width: 395px; flex-shrink: 0;
}
.settore-sistema-text {
    max-width: 543px; font-size: 16px; font-weight: 500; color: var(--white);
    line-height: 1.4;
}
.settore-sistema-text p { margin: 0 0 1em; }
.settore-sistema-text p:last-child { margin-bottom: 0; }
.settore-sistema-img { max-width: 1114px; margin: 0 auto; }
.settore-sistema-img img { width: 100%; height: auto; display: block; }

/* Base CATEGORY TAXONOMY GROUPS: spostato sopra il @media 1024 — vedi blocco "BASE CAT GROUPS" */

/* CTA + Articoli dentro la sezione categoria */
.cat-content.section { padding-top: 120px; padding-bottom: 120px; }   /* Figma 151:6377: correlati→footer 120 (era 100) */
.cat-cta-consulenza { margin-top: 120px; }
.cat-correlati { margin-top: 80px; }
.cat-correlati .blog-grid { gap: 30px; }

/* =====================
   ARCHIVE TUTTI I SETTORI — Figma 165:3484
   ===================== */
.archive-settori-hero { padding-top: var(--offset); padding-bottom: 0; }
.archive-settori-hero .breadcrumb {
    font-size: 12px; padding: 0; margin: 65px 0 0;
    text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px;
    display: flex; align-items: center; gap: 8px;
    color: var(--black-true);
}
.archive-settori-hero .breadcrumb a,
.archive-settori-hero .breadcrumb span,
.archive-settori-hero .breadcrumb strong { color: var(--black-true); }
.archive-settori-hero .breadcrumb a { font-weight: 400; }
.archive-settori-hero .breadcrumb a:hover { color: var(--primary-blue); }
.archive-settori-hero .breadcrumb strong { font-weight: 700; }

.archive-settori-hero-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-top: 32px;   /* Figma 165:3484: H1 a y238 (era 47 → H1 finiva a 253) */
    align-items: start;
}
.archive-settori-hero-grid h1 {
    font-size: var(--fs-h1); font-weight: 700; color: var(--black-true);
    line-height: 1.2; letter-spacing: 0;
    margin: 0; max-width: 654px;
}
.archive-settori-hero-right {
    display: flex; flex-direction: column; gap: 32px;
    max-width: 565px;
}
.archive-settori-hero-right p {
    font-size: 16px; color: var(--black-true);
    line-height: 1.4; letter-spacing: 0; margin: 0;
}
.archive-settori-hero-right p:first-child { font-weight: 700; }
.archive-settori-hero-right p:nth-child(n+2) { font-weight: 500; }

.archive-settori-grid-section { padding: 75px 0 120px; }   /* +15 compensa il margin-top hero 47→32: card restano a y478 (Figma) */
.archive-settori-grid {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px;
}
/* Mobile: 1 colonna (Figma 358:11853 — card full-width 343, hero stacked). Posizionato DOPO
   la definizione base per vincere sul source-order. */
@media (max-width: 768px) {
    .archive-settori-grid { grid-template-columns: 1fr; }
    .archive-settori-hero-grid { grid-template-columns: 1fr; gap: 40px; }   /* Figma 358:12396: gap titolo→desc 40 (era 24) */
    .archive-settori-grid-section { padding-top: 60px; }                     /* Figma: hero→card 60 (era 75) */
    /* Settori archivio mobile — Figma 358:12396/358:12331: titolo 28, breadcrumb back "‹ HOME", card 395 titolo 24 */
    .archive-settori-hero-grid h1 { font-size: 28px; line-height: 1.3; }
    .archive-settori-hero .breadcrumb-sep, .archive-settori-hero .breadcrumb strong { display: none; }
    .archive-settori-hero .breadcrumb a::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
}
.archive-settore-card {
    position: relative; display: block; text-decoration: none;
    height: 520px; border-radius: 24px; overflow: hidden;
    transition: border-radius .3s ease;
}
.archive-settore-card:hover { border-radius: 60px 0 60px 60px; }
.archive-settore-card-bg {
    position: absolute; inset: 0; z-index: 0;
}
.archive-settore-card-bg img,
.archive-settore-card-bg-ph {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .4s ease;
}
.archive-settore-card-bg-ph { background: var(--grey-700); }
.archive-settore-card:hover .archive-settore-card-bg img { transform: scale(1.04); }
.archive-settore-card-overlay {
    position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background: linear-gradient(180deg, #090909 0%, rgba(3,3,3,0) 43.5%, #090909 105%);
    opacity: 1;
}
.archive-settore-card-content {
    position: absolute; inset: 0; z-index: 2;
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 30px 24px;
}
.archive-settore-card-title {
    font-size: 28px; font-weight: 700; color: var(--white);
    line-height: 1.3; letter-spacing: 0; margin: 0;
    max-width: 606px;
}
.archive-settore-card-bottom {
    display: flex; flex-direction: column;
    align-items: flex-start;
    max-width: 595px;
}
.archive-settore-card-desc {
    font-size: 16px; font-weight: 500; color: var(--white);
    line-height: 1.4; letter-spacing: 0; margin: 0;
}
/* CTA "Scopri di più" — Figma 169:4157 in-flow on hover (push desc up, like sub-settori) */
.archive-settore-card-cta {
    display: flex; align-items: center; gap: 14px;
    font-size: 14px; font-weight: 700; color: var(--white);
    line-height: 1.3; letter-spacing: 0.2px;
    height: 0; opacity: 0; margin-top: 0; overflow: visible;
    transition: height .3s ease, opacity .25s ease, margin-top .3s ease;
}
.archive-settore-card-cta .btn-cta-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 16px;
    background: var(--primary-cyan-light); color: var(--primary-blue);
    overflow: hidden; flex-shrink: 0;
}
.archive-settore-card-cta .btn-cta-icon svg { width: 16px; height: 16px; }
.archive-settore-card:hover .archive-settore-card-cta {
    height: 32px; opacity: 1; margin-top: 20px;
}
/* Settori archivio card mobile — Figma MB-item-settori 358:12331: 395px, titolo 24 (DOPO la base per source-order) */
@media (max-width: 768px) {
    .archive-settore-card { height: 395px; }
    .archive-settore-card-title { font-size: 24px; }
    .archive-settore-card-content { padding: 37px 24px; }
}

/* =====================
   DARK ARCHIVE CARDS (Settori legacy, Prodotti) — non più usato in archive-settore
   ===================== */
.archive-dark-grid-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.archive-dark-grid-3col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

.archive-dark-card {
    background: var(--primary-blue); border-radius: 16px; overflow: hidden;
    display: block; text-decoration: none; transition: opacity .2s;
}
.archive-dark-card:hover { opacity: .88; }
.archive-dark-card-body { padding: 24px 28px 0; }
.archive-dark-card-title {
    font-size: 20px; font-weight: 700; color: var(--white);
    line-height: 1.3; letter-spacing: 0.2px; margin: 0;
}
.archive-dark-card-img {
    aspect-ratio: 4/3; overflow: hidden; margin-top: 20px;
    background: var(--grey-02); display: flex; align-items: center; justify-content: center;
}
.archive-dark-card-img img { width: 100%; height: 100%; object-fit: cover; }
.archive-dark-card-img-ph { width: 100%; height: 100%; }
.archive-dark-card-footer { padding: 16px 28px 28px; }
.archive-dark-card-footer p { font-size: 14px; color: rgba(255,255,255,.65); line-height: 1.5; margin: 0; }

/* =====================
   CASE HISTORY ARCHIVE — design definitivo (Figma 182:5457)
   ===================== */
/* Breadcrumb + Title */
.archive-case-history .ch-archive-hero { padding-top: var(--offset); padding-bottom: 0; }
.archive-case-history .breadcrumb { font-size: 12px; color: var(--black-true); padding: 0; margin-top: 65px; text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px; display: flex; align-items: center; gap: 8px; }
.archive-case-history .breadcrumb a { color: var(--black-true); font-weight: 400; }
.archive-case-history .breadcrumb a:hover { color: var(--primary-blue); }
.archive-case-history .breadcrumb-sep { color: var(--black-true); }
.archive-case-history .breadcrumb strong { color: var(--black-true); font-weight: 700; }
/* SINGLE case history — breadcrumb UPPERCASE come il resto del sito (era 13px non-uppercase) */
.single-case-history .page-hero-card-content .breadcrumb {
    font-size: 12px; padding: 0; text-transform: uppercase;
    line-height: 1.24; letter-spacing: 0.2px;
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.archive-case-history .ch-archive-title { font-size: 48px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 31px 0 0; }

/* Section padding (Figma top=352 - hero end ~280 ≈ 72px gap) */
.archive-case-history .ch-archive-section { padding: 72px 0 120px; }

/* Lista card 1110×648 centered, gap 40 */
.ch-archive-list {
    display: flex;
    flex-direction: column;
    gap: 40px;
    max-width: 1110px;
    margin: 0 auto;
}

.ch-archive-card {
    display: block;
    position: relative;
    height: 648px;
    background: var(--grey-04);
    border-radius: 24px;
    overflow: hidden;
    text-decoration: none;
    transition: border-radius .45s ease;
}
/* Hover Figma 57:1950: morphing border-radius
   tl 80px, tr 0 (sharp), br 80px, bl 80px → effetto tag/price-card */
.ch-archive-card:hover {
    border-radius: 80px 0 80px 80px;
}

/* Full-bleed background image */
.ch-archive-card-bg {
    position: absolute; inset: 0;
    overflow: hidden;
    z-index: 0;
}
.ch-archive-card-bg img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
}

/* Placeholder when no image */
.ch-archive-card-bg-ph {
    width: 100%; height: 100%;
    background: var(--grey-01);
    display: flex; align-items: center; justify-content: center;
}

/* Gradient overlay — sempre visibile (Figma: from 8% rgba(0,0,0,0.06) to 123% rgba(0,0,0,0.6)) */
.ch-archive-card-gradient {
    position: absolute; inset: 0;
    /* Figma 58:2068: gradient verticale (Background Shape) + diagonale che scurisce il bottom-left (testo) */
    background:
        linear-gradient(235deg, rgba(26,27,29,0) 49%, rgba(26,27,29,0.8) 92%),
        linear-gradient(180deg, rgba(0,0,0,0.06) 8%, rgba(0,0,0,0.6) 100%);
    pointer-events: none;
    z-index: 1;
    transition: background .35s ease;
}
/* Hover state (Figma 58:2072 — hover variant): gradient molto più scuro
   da rgba(0,0,0,0.06→0.6) a rgba(0,0,0,0.1→0.95) → effetto "darken full card" */
.ch-archive-card:hover .ch-archive-card-gradient {
    background:
        linear-gradient(235deg, rgba(26,27,29,0) 49%, rgba(26,27,29,0.85) 92%),
        linear-gradient(180deg, rgba(0,0,0,0.1) 8%, rgba(0,0,0,0.95) 100%);
}

/* Content overlay at bottom-left (Figma: bottom 64 left 60 w 706) */
.ch-archive-card-text {
    position: absolute;
    bottom: 64px; left: 60px;
    z-index: 2;
    width: 706px;
    max-width: calc(100% - 120px);
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* "CASE HISTORY" label — primary-blue-light sempre visibile (Figma) */
.ch-archive-card-label {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.24;
    color: var(--primary-blue-light);
    text-transform: uppercase;
}

/* H2 — bianco sempre visibile (Figma 36 Bold white) */
.ch-archive-card-text h2 {
    font-size: 36px;
    font-weight: 700;
    color: var(--white);
    margin: 0;
    line-height: 1.2;
    letter-spacing: 0;
}

/* CTA "Scopri di più" — opacity 0 default, fade-in al hover */
.ch-archive-card-cta {
    display: flex;
    align-items: center;
    gap: 14px;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .35s ease, transform .35s ease;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.2px;
    color: var(--white);
}
.ch-archive-card:hover .ch-archive-card-cta {
    opacity: 1;
    transform: translateY(0);
}
.ch-archive-card-cta-icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px; height: 32px;
    background: var(--primary-blue-light);
    color: var(--primary-blue);
    border-radius: 50%;
    flex-shrink: 0;
    overflow: hidden;
}
/* Slide freccia su HOVER CARD (cta-secondary 29:3935): doppia freccia primary-blue che scorre da sx al centro */
.ch-archive-card-cta-icon svg { display: none; }
.ch-archive-card-cta-icon::before,
.ch-archive-card-cta-icon::after {
    content: ""; position: absolute; top: 50%;
    width: 16px; height: 16px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 8h10M9 4l4 4-4 4'/></svg>") center/contain no-repeat;
    transition: left .35s ease, transform .35s ease;
}
.ch-archive-card-cta-icon::before { left: 50%; transform: translate(-50%, -50%); }
.ch-archive-card-cta-icon::after  { left: -50%; transform: translate(0, -50%); }
.ch-archive-card:hover .ch-archive-card-cta-icon::before { left: 150%; transform: translate(-50%, -50%); }
.ch-archive-card:hover .ch-archive-card-cta-icon::after  { left: 50%;  transform: translate(-50%, -50%); }

/* Empty state */
.ch-archive-empty {
    font-size: 18px;
    color: var(--grey-01);
    text-align: center;
    padding: 60px 0;
}

/* =====================
   SINGLE CASE HISTORY — NEXT PROJECT (Figma item-case-successiva 190:7830, 1110×648)
   ===================== */
.case-next-section { padding-bottom: var(--section-gap); }
.case-next-wrap {
    display: flex; flex-direction: column; gap: 17px;
    max-width: 1110px; margin: 0 auto;
}
.case-next-head {
    display: flex; align-items: center; gap: 14px;
    color: var(--black-true);
    transition: gap .3s;
}
.case-next-wrap:hover .case-next-head { gap: 22px; }
.case-next-head-arrow {
    flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 16px;
    background: var(--primary-blue); color: var(--white);
    transition: background .3s;
}
.case-next-wrap:hover .case-next-head-arrow { background: var(--primary-cyan, #0086ab); }
.case-next-heading {
    font-size: 28px; font-weight: 700; color: var(--black-true);
    margin: 0; line-height: 1.3;
}

.case-next-card {
    position: relative; display: block;
    width: 100%; height: 648px;
    border-radius: 24px; overflow: hidden;
    text-decoration: none; background: var(--grey-04);
}
.case-next-card-img {
    position: absolute; inset: 0; z-index: 0;
}
.case-next-card-img img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .6s ease;
}
.case-next-wrap:hover .case-next-card-img img { transform: scale(1.04); }
.case-next-card-img-ph {
    position: absolute; inset: 0;
    background: var(--grey-04);
}
/* Gradient overlay bottom + left (Figma: rgba(0,0,0,.06)→rgba(0,0,0,.6) + side dark) */
.case-next-card::before {
    content: ''; position: absolute; inset: 0; z-index: 1;
    background:
        linear-gradient(235deg, rgba(26,27,29,0) 49%, rgba(26,27,29,.8) 92%),
        linear-gradient(180deg, rgba(0,0,0,.06) 8%, rgba(0,0,0,.6) 100%);
    pointer-events: none;
}
.case-next-card-body {
    position: absolute; left: 60px; bottom: 64px; z-index: 2;
    max-width: 706px;
    display: flex; flex-direction: column; gap: 24px;
    color: var(--white);
}
.case-next-card-label {
    font-size: 16px; font-weight: 700; line-height: 1.24;
    color: var(--primary-blue-light);
    text-transform: uppercase;
    margin: 0;
}
.case-next-card-body h2 {
    font-size: 36px; font-weight: 700; color: var(--white);
    margin: 0; line-height: 1.2;
}
/* CTA hidden by default, fade in on hover */
.case-next-card-cta {
    display: inline-flex; align-items: center; gap: 14px;
    opacity: 0; transform: translateY(8px);
    transition: opacity .35s ease, transform .35s ease;
    font-size: 14px; font-weight: 700; color: var(--white);
    letter-spacing: 0.2px;
}
.case-next-card:hover .case-next-card-cta,
.case-next-wrap:hover .case-next-card-cta { opacity: 1; transform: translateY(0); }
.case-next-card-cta-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 16px;
    background: var(--primary-blue-light); color: var(--primary-blue);
    flex-shrink: 0;
}

/* Mobile case-next-card — card più bassa, padding ridotti, CTA sempre visibile */
@media (max-width: 768px) {
    .case-next-wrap { gap: 24px; }
    .case-next-heading { font-size: 22px; }
    .case-next-head-arrow { width: 28px; height: 28px; border-radius: 14px; }
    .case-next-wrap:hover .case-next-head { gap: 14px; }
    .case-next-card { height: 460px; border-radius: 16px; }
    .case-next-card-body {
        left: 24px; right: 24px; bottom: 30px;
        max-width: none;
        gap: 16px;
    }
    .case-next-card-body h2 { font-size: 28px; line-height: 1.2; }
    .case-next-card-label { font-size: 14px; }
    .case-next-card-cta { opacity: 1; transform: none; }
}

/* =====================
   SINGLE POSIZIONE — Ruolo e Posizione
   ===================== */
/* Single posizione — layout Figma 210:5221 */
.single-posizione { margin-top: var(--offset); }

.posizione-page-wrap {
    display: grid;
    grid-template-columns: 312px 1fr;
    min-height: calc(100vh - var(--offset));
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    gap: 0;
    align-items: start;
}

/* Sidebar */
.posizione-sidebar {
    position: sticky;
    top: calc(var(--offset) + 40px);
    padding: 82px 0 80px;   /* Figma 202:5049: cta-back a y248 */
    display: flex;
    flex-direction: column;
    gap: 64px;
}
.posizione-sidebar-info {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.posizione-info-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.posizione-info-item { display: flex; flex-direction: column; gap: 4px; }
.posizione-info-label {
    font-size: 18px; font-weight: 700;
    color: var(--grey-01, #61646b);
    line-height: 1.4; letter-spacing: 0.2px;
}
.posizione-info-val {
    font-size: 18px; font-weight: 400;
    color: var(--grey-01, #61646b);
    line-height: 1.4; letter-spacing: 0.2px;
}
/* Il bottone "Candidati ora" usa .btn-blue (pill blu + freccia animata, Figma 202:6443).
   .btn-posizione-candidati resta solo come hook, senza override di stile. */

/* Main content */
.posizione-main {
    padding: 64px 0 120px 100px;   /* Figma: contenuto→footer 120 */
    max-width: 654px;
}
.posizione-main .breadcrumb { margin-bottom: 16px; }   /* Figma: titolo a y248 */
.posizione-main-title {
    font-size: 36px; font-weight: 700; color: var(--grey-01, #565a62);
    line-height: 1.3; letter-spacing: 0.2px; margin-bottom: 40px;
}
.posizione-main-content {
    display: flex; flex-direction: column; gap: 40px;
    color: var(--grey-01, #61646b);
    font-size: 18px; line-height: 1.4; letter-spacing: 0.2px;
}
.posizione-main-content p { margin: 0; }
.posizione-main-content h2 {
    font-size: 18px; font-weight: 700;
    color: var(--grey-01, #61646b);
    margin: 0 0 20px;
}
.posizione-main-content ul {
    padding-left: 27px; margin: 0;
    display: flex; flex-direction: column; gap: 0;
}
.posizione-main-content li { line-height: 1.4; margin-bottom: 2px; }

/* Responsive */
@media (max-width: 768px) {
    .posizione-page-wrap { grid-template-columns: 1fr; }
    .posizione-sidebar   { position: static; padding: 40px 0 0; gap: 32px; }
    .posizione-main      { padding: 32px 0 60px; max-width: 100%; }
    .posizione-main-title { font-size: 28px; }
}

/* =====================
   RESPONSIVE — new elements
   ===================== */
/* =====================
   PAGINA PRODOTTI
   ===================== */
.prodotti-page-header { margin-top: var(--offset); }
.prodotti-page-header.section { padding-top: 48px; padding-bottom: 40px; }
.prodotti-page-header h1 {
    font-size: 48px;
    font-weight: 700;
    color: var(--black);
    max-width: 720px;
    line-height: 1.2;
    margin-top: 31px;
    margin-bottom: 0;
}
.prodotti-page-intro {
    font-size: 18px;
    color: var(--grey-01);
    margin-top: 24px;
    max-width: 720px;
    line-height: 1.6;
}

/* — TUTTI I PRODOTTI Hero (Figma 151:5683) — */
.archive-prodotti-hero { padding-top: var(--offset); padding-bottom: 0; }
.archive-prodotti-hero .breadcrumb {
    font-size: 12px; padding: 0; margin: 65px 0 0;
    text-transform: uppercase; line-height: 1.24; letter-spacing: 0.2px;
    display: flex; align-items: center; gap: 8px;
    color: var(--black-true);
}
.archive-prodotti-hero .breadcrumb a,
.archive-prodotti-hero .breadcrumb span,
.archive-prodotti-hero .breadcrumb strong { color: var(--black-true); }
.archive-prodotti-hero .breadcrumb a { font-weight: 400; }
.archive-prodotti-hero .breadcrumb a:hover { color: var(--primary-blue); }
.archive-prodotti-hero .breadcrumb strong { font-weight: 700; }
.archive-prodotti-hero h1 {
    font-size: var(--fs-h1); font-weight: 700; color: var(--black-true);
    line-height: 1.2; letter-spacing: 0; margin: 31px 0 0;
    max-width: 720px;
}

/* — GRID CATEGORIE — Figma 151:6100 (Frame 4209: 3-col cards 424×520 gap 30/31) */
.archive-prodotti-grid-section { padding: 60px 0 120px; }
.prodotti-cat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px 31px;
}

/* Home = CAROSELLO slide (Figma 762:16909 desktop 3-up / 814:17194 mobile 1-up swipe).
   L'archivio resta grid (solo .prodotti-cat-grid, senza .prodotti-cat-slider/.prodotti-viewport). */
.prodotti-viewport { overflow: hidden; }
.prodotti-cat-slider {
    display: flex;
    flex-wrap: nowrap;
    gap: 31px;
    transition: transform .4s ease;
    will-change: transform;
}
.prodotti-cat-slider .prodotto-cat-card { flex: 0 0 calc((100% - 62px) / 3); }

/* Card categoria — Figma 151:5913 (item-categorie-prodotti)
   bg grey-200, radius 24, border-bottom 8px colore categoria,
   image centro-top + gradient overlay + testo bottom + CTA hover */
.prodotto-cat-card {
    display: block;
    position: relative;
    height: 520px;
    background: var(--grey-200, #cdd0d4);
    border-radius: 24px;
    border-bottom: 8px solid var(--primary-blue);   /* fallback */
    overflow: hidden;
    text-decoration: none;
    transition: border-radius .3s ease;
}
.prodotto-cat-card:hover { border-radius: 60px 0 60px 60px; }

/* Varianti colore border per slug categoria (Figma design system) */
.prodotto-cat-card--filtrazione,
.prodotto-cat-card--filtrazioni,
.prodotto-cat-card--filtrazione-acqua,
.prodotto-cat-card--filtrazioni-acqua    { border-bottom-color: #ffc936; }
.prodotto-cat-card--osmosi,
.prodotto-cat-card--osmosi-inversa       { border-bottom-color: #9adb02; }
.prodotto-cat-card--dosaggio,
.prodotto-cat-card--stazione-dosaggio,
.prodotto-cat-card--stazioni-dosaggio,
.prodotto-cat-card--prodotti-chimici     { border-bottom-color: #1ce6d3; }
.prodotto-cat-card--addolcimento,
.prodotto-cat-card--addolcitori,
.prodotto-cat-card--addolcitori-acqua    { border-bottom-color: #7ab0e0; }
.prodotto-cat-card--debatterizzatori,
.prodotto-cat-card--debatterizzatori-uvc,
.prodotto-cat-card--generatori,
.prodotto-cat-card--generatori-biossido  { border-bottom-color: #a292fc; }

/* Immagine prodotto — cresce da top, image aspect 1180/1112 (item-prodotto pattern) */
.prodotto-cat-card-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.prodotto-cat-card-bg img {
    position: absolute;
    left: 50%; top: 3%;
    transform: translateX(-50%);
    width: auto; height: 60%;
    object-fit: contain;
    transition: transform .4s ease;
}
.prodotto-cat-card:hover .prodotto-cat-card-bg img { transform: translateX(-50%) scale(1.04); }
.prodotto-cat-card-bg-ph {
    width: 100%; height: 60%;
    display: flex; align-items: center; justify-content: center;
    padding-top: 60px;
}
.prodotto-cat-card-bg-ph svg { display: block; flex-shrink: 0; }

/* Gradient overlay scuro — Figma 151:5857 (gradient bottom → top: nero 0.84 → trasparente 86%) */
.prodotto-cat-card-overlay {
    position: absolute; inset: 0 0 -8px 0; pointer-events: none;
    background: linear-gradient(to top, rgba(26,27,29,.84) 21.3%, rgba(26,27,29,0) 86.6%);
    opacity: .75;
}

/* Testo bottom-left — Figma 151:5858 (default bottom 24) → 151:5879 (hover bottom 55, sale 31px) */
.prodotto-cat-card-text {
    position: absolute;
    left: 24px; right: 24px; bottom: 24px;
    display: flex; flex-direction: column; gap: 12px;
    z-index: 1;
    transition: bottom .3s ease;
}
.prodotto-cat-card:hover .prodotto-cat-card-text { bottom: 55px; }
.prodotto-cat-card-title {
    font-size: 28px;
    font-weight: 700;
    color: var(--white);
    margin: 0;
    line-height: 1.3;
    letter-spacing: 0.2px;
}
.prodotto-cat-card-desc {
    font-size: 16px;
    font-weight: 500;
    color: var(--white);
    margin: 0;
    line-height: 1.4;
    letter-spacing: 0;
}

/* CTA "Scopri di più" — hidden default, visible on hover, cerchio cyan-light + freccia primary-blue (Negative variant) */
.prodotto-cat-card-cta {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-size: 14px;
    font-weight: 700;
    color: var(--white);
    line-height: 1.3;
    letter-spacing: 0.2px;
    height: 0; opacity: 0; margin-top: 0; overflow: visible;
    transition: height .3s ease, opacity .25s ease, margin-top .3s ease;
}
.prodotto-cat-card-cta .btn-cta-icon {
    position: relative;
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 16px;
    background: var(--primary-cyan-light); color: var(--primary-blue);
    flex-shrink: 0; overflow: hidden;
    transition: background-color .25s ease, color .25s ease;
}
.prodotto-cat-card-cta .btn-cta-icon svg {
    width: 16px; height: 16px;
    transition: transform .45s cubic-bezier(.2, .7, .2, 1);
}
/* Slide-through "classico" della freccia (come cta-secondary): la freccia esce a destra,
   una seconda (bianca, per lo stato hover su cerchio primary-cyan) entra da sinistra */
.prodotto-cat-card-cta .btn-cta-icon::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/><polyline points='12 5 19 12 12 19'/></svg>") no-repeat center;
    transform: translateX(-24px);
    transition: transform .45s cubic-bezier(.2, .7, .2, 1);
}
.prodotto-cat-card-cta:hover .btn-cta-icon svg { transform: translateX(24px); }
.prodotto-cat-card-cta:hover .btn-cta-icon::after { transform: translateX(0); }
.prodotto-cat-card:hover .prodotto-cat-card-cta {
    height: 32px; opacity: 1; margin-top: 0;
}
/* HOVER: cerchio diventa primary-cyan (#0086ab, era cyan-light) + freccia bianca */
.prodotto-cat-card:hover .prodotto-cat-card-cta .btn-cta-icon {
    background: var(--primary-cyan);
    color: var(--white);
}

/* =====================
   RESPONSIVE — new elements
   ===================== */
@media (max-width: 1024px) {
    .supporto-content-grid { grid-template-columns: 1fr; gap: 48px; }
    .archive-dark-grid-3col { grid-template-columns: repeat(2, 1fr); }
    .posizione-page-layout  { grid-template-columns: 200px 1fr; gap: 48px; }
    .case-row               { grid-template-columns: 180px 1fr; gap: 40px; }
    .prodotti-cat-grid      { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .prodotto-cat-card      { height: 440px; }
}
@media (max-width: 768px) {
    .page-hero-card--media  { min-height: 360px; }
    .page-hero-card-content--media { grid-template-columns: 1fr; padding: 40px 32px; gap: 24px; }
    .phc-media-text h1      { font-size: 28px; }
    .phc-media-img          { display: none; }
    .supporto-content-grid  { grid-template-columns: 1fr; }
    .archive-dark-grid-2col, .archive-dark-grid-3col { grid-template-columns: 1fr; gap: 20px; }
    /* MB-item-settori (343x395) — archive settori */
    .archive-dark-card { height: 395px; display: flex; flex-direction: column; }
    .archive-dark-card-body { padding: 30px 24px 0; }
    .archive-dark-card-title { font-size: 24px; }
    .archive-dark-card-img { margin-top: 0; aspect-ratio: auto; flex: 1; background: transparent; }
    .archive-dark-card-footer { padding: 0 24px 30px; }
    .archive-dark-card-footer p { font-size: 16px; color: var(--white); line-height: 1.3; letter-spacing: 0.2px; }
    /* MB-settore (343x360) — sub-settori */
    .sub-settori-grid      { grid-template-columns: 1fr; gap: 20px; }
    .sp-settori-grid       { grid-template-columns: 1fr; gap: 20px; }
    .sp-settore-card-cta   { height: 32px; opacity: 1; margin-top: 18px; }
    .settore-sistema-section { padding: 50px 0; }
    .settore-sistema-card { padding: 32px 24px; border-radius: 20px; }
    .settore-sistema-header { flex-direction: column; gap: 20px; margin-bottom: 32px; }
    .settore-sistema-title { font-size: 28px; max-width: 100%; }
    .settore-sistema-text { max-width: 100%; }
    .sub-settori-grid { grid-template-columns: 1fr; gap: 24px; }   /* Figma 358:12593: 1-up, gap 24 (era 20) */
    .sub-settore-card { height: auto; min-height: 360px; padding: 29px 30px 30px 30px; border-radius: 24px; }
    .sub-settore-card-title { font-size: 20px; }
    .sub-settore-card-icon { width: 80px; height: 80px; }
    .sub-settore-card-icon svg { width: 28px; height: 28px; }
    .sub-settore-card-desc { font-size: 16px; line-height: 1.4; }
    .sub-settore-card-cta { display: none; }   /* Figma 358:12594: card SENZA "Scopri di più" (tutta cliccabile come <a>) */
    .posizione-page-layout  { grid-template-columns: 1fr; gap: 32px; }
    .posizione-main-title   { font-size: 28px; }
    .case-row               { grid-template-columns: 1fr; gap: 16px; padding: 28px 0; }
    .case-row-label         { font-size: 18px; }
    /* Case History archive mobile */
    .archive-case-history .ch-archive-hero { padding-top: var(--offset); }
    .archive-case-history .breadcrumb { margin-top: 24px; }
    /* breadcrumb back "‹ HOME" (archive) */
    .archive-case-history .breadcrumb-sep, .archive-case-history .breadcrumb strong { display: none; }
    .archive-case-history .breadcrumb a:last-of-type::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    /* breadcrumb back "‹ Case History" (single, 3 livelli) */
    .single-case-history .page-hero-card-content .breadcrumb a:not(:last-of-type),
    .single-case-history .page-hero-card-content .breadcrumb-sep,
    .single-case-history .page-hero-card-content .breadcrumb strong { display: none; }
    .single-case-history .page-hero-card-content .breadcrumb a:last-of-type::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .archive-case-history .ch-archive-title { font-size: 28px; margin: 20px 0 12px; }   /* Figma 367:12472 H3-28; +12 bottom → gap titolo→card 60 */
    .archive-case-history .ch-archive-section { padding: 48px 0 64px; }
    .ch-archive-list { gap: 24px; max-width: 100%; }
    .ch-archive-card { height: 567px; border-radius: 24px; }   /* Figma MB-item-case-history 567/24 */
    .ch-archive-card-text { bottom: 32px; left: 28px; right: 28px; width: auto; max-width: none; gap: 24px; }   /* Figma 371:12638: px28 pb32, gap 24 (era left/right 24, gap 16) */
    .ch-archive-card-text h2 { font-size: 24px; }
    .ch-archive-card-label { font-size: 14px; }   /* Figma 305:11561 LABEL-14 */
    .ch-archive-card-cta { opacity: 1; transform: none; }

    /* Single case-history mobile */
    /* Figma mobile 372:8992: hero→logo 41, logo→Cliente 10, Cliente→Anno 32 (IMPILATI, non
       affiancati), Anno→linea 40, linea→sezione 40, contenuto→linea dentro la sezione 32.
       Il riquadro logo resta 200×100 come sul desktop (Figma 1428:21867). */
    .single-case-history .case-meta-section { padding: 41px 0 40px; }
    .single-case-history .case-meta { grid-template-columns: 1fr; gap: 10px; }
    .single-case-history .case-meta-logo    { grid-column: 1; grid-row: 1; }
    .single-case-history .case-meta-cliente { grid-column: 1; grid-row: auto; }
    .single-case-history .case-meta-anno    { grid-column: 1; grid-row: auto; margin-top: 22px; }   /* 10 di gap + 22 = 32 */
    .single-case-history .case-sezioni-section { padding: 0; }
    .single-case-history .case-sezioni { gap: 40px; }
    .single-case-history .case-sezione { gap: 32px; }
    .single-case-history .case-sezione-row { grid-template-columns: 1fr; gap: 16px; }
    .single-case-history .case-sezione-title { font-size: 24px; }
    .single-case-history .case-gallery-section { padding: 64px 0 0; }
    .single-case-history .case-gallery-wrap { width: 100%; height: 420px; }
    .single-case-history .case-gallery-controls { bottom: 20px; left: 20px; right: 20px; }
    .single-case-history .case-benefici-section { padding: 64px 0 0; }
    .single-case-history .case-quote-section { padding: 32px 0 0; }
    .single-case-history .case-quote-card { padding: 60px 43px 60px 36px; min-height: auto; background: var(--primary-blue); }   /* Figma 375:9282 blu #265a7b, py60/pl36/pr43 (era aqua-green) */
    .single-case-history .case-quote-slide { align-items: flex-start; }   /* Figma 375:9283 items-start (sinistra), non centrato */
    .single-case-history .case-quote-mark { align-self: flex-start; font-size: 80px; margin-bottom: -30px; color: var(--primary-blue-light); }   /* Figma virgolette blue-light #8bc5d7 (era primary-blue) */
    .single-case-history .case-quote-text { font-size: 24px; text-align: left; }   /* Figma 375:9285 24/130 */
    .single-case-history .case-quote-author { color: var(--primary-blue-light); text-align: left; }   /* Figma 375:9287 blue-light #8bc5d7 */
    /* Carosello: la shorthand .case-quote-card sopra sovrascriveva il padding-bottom:100px desktop
       -> dots/frecce absolute finivano SOPRA l'autore (autore lungo su 2 righe). Riserva spazio sotto. */
    .single-case-history .case-quote-card--carousel { padding-bottom: 108px; }
    .single-case-history .case-next-section { padding: 64px 0; }
    .single-case-history .case-next-section .container { padding: 0 16px; }   /* ripristina margini 16px (era breakout full-bleed) */
    .single-case-history .case-next-wrap {
        width: 100%; max-width: 100%;
        margin-left: 0; margin-right: 0;   /* annulla il breakout -178px desktop */
    }
    .single-case-history .case-next-card { height: 460px; border-radius: 24px; }   /* Figma 376:12877 r24 */
    .single-case-history .case-next-card::after { width: 80%; height: 100%; }
    .single-case-history .case-next-heading { font-size: 22px; }
    .prodotti-page-header h1 { font-size: 28px; }   /* Figma 333:9180 H3-28 (era 32) */
    /* Archivio prodotti mobile — Figma 333:8766: breadcrumb a 85 (offset 59 +26), titolo a 142, gap card 26, griglia→footer 80 */
    .archive-prodotti-hero h1 { font-size: 28px; line-height: 1.3; margin-top: 41px; }
    .archive-prodotti-hero .breadcrumb { margin-top: 26px; }
    .archive-prodotti-hero .breadcrumb-sep, .archive-prodotti-hero .breadcrumb strong { display: none; }
    .archive-prodotti-hero .breadcrumb a::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .archive-prodotti-grid-section { padding-bottom: 80px; }
    .prodotti-cat-grid      { grid-template-columns: 1fr; gap: 26px; }
    /* Figma 333:8766: titolo/breadcrumb a x18, card a x15 (le card sporgono ~3px a sx del titolo) */
    .archive-prodotti-hero .container          { padding-left: 18px; padding-right: 18px; }
    .archive-prodotti-grid-section .container  { padding-left: 15px; padding-right: 15px; }
    /* card riempie la colonna (345) e parte da x15 esatto: niente max-width 343 + margin auto che la centrava a 16 */
    .archive-prodotti-grid-section .prodotto-cat-card { max-width: none; margin-inline: 0; }
    /* MB-item-category-prodotti (343x441) */
    .prodotto-cat-card      { width: 100%; max-width: 343px; height: 433px; padding: 0; margin-inline: auto; }  /* Figma MB-item-categorie-prodotti = 433 */
    .prodotto-cat-card-title { font-size: 24px; }
    .prodotto-cat-card-desc  { font-size: 14px; line-height: 1.4; }
    .prodotto-cat-card-text  { left: 20px; right: 20px; bottom: 40px; }  /* Figma pb40/px20 */
    /* Home prodotti = carosello 1-up (Figma 814:17194: card h433 full-width, testo pb40/px20, title 24/desc 14) */
    .prodotti-cat-slider { gap: 16px; }
    .prodotti-cat-slider .prodotto-cat-card {
        flex: 0 0 100%; width: 100%; max-width: none; height: 433px;
        padding: 0; margin-inline: 0;
    }
    .prodotti-cat-slider .prodotto-cat-card-text { left: 20px; right: 20px; bottom: 40px; }
    .prodotti-cat-slider .prodotto-cat-card-title { font-size: 24px; }
    .prodotti-cat-slider .prodotto-cat-card-desc  { font-size: 14px; line-height: 1.4; }
    .candidatura-modal-inner { padding: 40px 20px 60px; }
    .candidatura-header      { flex-direction: column; gap: 16px; }
    .candidatura-title       { font-size: 28px; }
}

/* =====================
   CANDIDATURA SPONTANEA — MODALE
   ===================== */

/* Full-page overlay modal */
.candidatura-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: #fff;
    overflow-y: auto;
}
.candidatura-modal.is-open {
    display: block;
    animation: modalFadeIn .2s ease;
}
@keyframes modalFadeIn {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}
.candidatura-modal-inner {
    max-width: 882px;
    margin: 0 auto;
    padding: 64px 24px 100px;
}

/* Header: back + titolo */
.candidatura-header {
    display: flex;
    align-items: flex-start;
    gap: 40px;
    margin-bottom: 48px;
}
.cta-back {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: var(--black-true, #1a1b1d);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.2px;
    flex-shrink: 0;
    text-decoration: none;
}
/* Cerchio blu 32px con doppia freccia-sinistra slide-through (Figma cta-back 202:5338) */
.cta-back-icon {
    width: 32px; height: 32px;
    border-radius: 50%;
    background-color: var(--primary-blue);
    overflow: hidden;
    flex-shrink: 0;
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='15 18 9 12 15 6'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='15 18 9 12 15 6'/%3E%3C/svg%3E");
    background-repeat: no-repeat, no-repeat;
    background-size: 16px 16px, 16px 16px;
    background-position: center, calc(100% + 16px) center;
    transition: background-position .35s ease;
}
.cta-back-icon svg { display: none; } /* la freccia è resa via background per lo slide */
.cta-back:hover .cta-back-icon {
    background-position: -16px center, center;
}
.candidatura-title {
    font-size: 36px;
    font-weight: 700;
    color: var(--grey-01);
    line-height: 1.3;
    letter-spacing: 0.2px;
    margin: 0;
}

/* CV upload zone */
/* Campi del modale candidatura: stile brand cyan-light (come consulenza/supporto),
   prima usavano il .form-control globale bianco → background diverso dal resto del form */
.candidatura-modal .form-control {
    background: var(--primary-cyan-light);
    border: 1px solid var(--primary-blue-light);
    color: var(--primary-blue);
    font-size: 16px; font-weight: 500; line-height: 24px;
    height: 60px; border-radius: 8px; padding: 12px;
}
.candidatura-modal .form-control::placeholder { color: var(--primary-blue); opacity: 0.45; }
.candidatura-modal .form-control:focus { outline: none; border-color: var(--primary-blue); }
.candidatura-modal select.form-control {
    appearance: none; -webkit-appearance: none;
    padding-right: 44px;
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23265a7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 12px center;
}

.cv-upload-zone {
    margin-bottom: 24px;   /* Figma 202:6455/6879: stacco upload→privacy 24 (era 0, testo attaccato) */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: 100%;
    height: 126px;
    background: var(--primary-cyan-light, #dbedf1);
    border: 1px dashed var(--primary-blue);
    border-radius: 4px;
    cursor: pointer;
    transition: border-color .2s, background .2s;
}
.cv-upload-zone:hover { border-color: var(--primary-cyan); background: #d2e7ee; }
.cv-upload-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.cv-upload-label {
    font-size: 16px;
    font-weight: 700;
    color: var(--primary-blue);
    letter-spacing: 0.2px;
    text-align: center;
}
.cv-upload-hint {
    font-size: 12px;
    font-weight: 500;
    color: var(--primary-blue);
    letter-spacing: 0.2px;
    text-align: center;
}

/* Privacy row */
.form-check--candidatura { margin-top: 0; margin-bottom: 0; align-items: flex-start; }
.form-check--candidatura label { font-size: 14px; color: #61646b; line-height: 1.4; letter-spacing: 0.2px; cursor: pointer; }
.form-check--candidatura input[type="checkbox"] {
    width: 20px; height: 20px; min-width: 20px;
    border: 2px solid #afb1b6; border-radius: 4px;
    appearance: none; background: #fff;
    margin-top: 2px; cursor: pointer;
    transition: border-color .15s;
}
.form-check--candidatura input[type="checkbox"]:checked {
    background: var(--grey-01);
    border-color: var(--grey-01);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10' fill='none'%3E%3Cpath d='M1 5l3.5 3.5L11 1' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}

/* Posizione modal header variant: title + subtitle stacked */
.candidatura-header--posizione { align-items: flex-start; }
/* Figma 202:6455/6879 (desktop): back+titolo a y74; titolo→form 80 (spontanea) / 89 (posizione) */
@media (min-width: 769px) {
    .candidatura-modal-inner       { padding-top: 74px; }
    .candidatura-header            { margin-bottom: 78px; }
    .candidatura-header--posizione { margin-bottom: 87px; }
}
.candidatura-title-wrap { display: flex; flex-direction: column; gap: 6px; }
.candidatura-subtitle {
    font-size: 16px; font-weight: 700;
    color: var(--primary-blue);
    letter-spacing: 0.2px; text-transform: uppercase;
    margin: 0; line-height: 1.3;
}
/* Modale candidatura mobile — Figma 400:11595/11596: titolo 24 black, sottotitolo 14 (DOPO la base per source-order) */
@media (max-width: 768px) {
    .candidatura-title { font-size: 24px; color: var(--black-true); line-height: 1.3; }
    .candidatura-subtitle { font-size: 14px; line-height: 1.24; }
}

/* Submit */
.candidatura-submit-row { margin-top: 40px; }
.btn-candidatura {
    display: inline-flex;
    align-items: center;
    width: auto;
    height: 56px;
    padding: 12px 64px 12px 24px;
    background: var(--primary-blue);
    color: var(--white);
    border: none;
    border-radius: 56px;
    font-family: var(--font-base);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.3;
    cursor: pointer;
    transition: background-color .2s ease;
}
.btn-candidatura:hover { background: #1d4762; color: var(--white); }
@media (max-width: 768px) {
    /* Figma 392:11451: bottone candidatura full-width, testo a sx + freccia a dx.
       .form-submit-row e' inline-flex (si stringe a 219) -> reso flex full-width
       cosi' il <p> e l'input si allargano; la freccia ::after resta a right:12px. */
    .form-submit-row:has(.btn-candidatura) { display: flex; width: 100%; }
    .form-submit-row:has(.btn-candidatura) > p { flex: 1 1 auto; min-width: 0; margin: 0; }
    .btn-candidatura { width: 100%; text-align: left; }
    /* row full-width: lo spinner (default right:-44px) sforava di 20px oltre il viewport
       -> overflow-x e modulo che "balla". Riportato dentro + clip di sicurezza. */
    .form-submit-row:has(.btn-candidatura) .wpcf7-spinner { right: 8px; }
    .candidatura-modal-inner { overflow-x: clip; }
}

/* ── Contact Form 7 compatibility ───────────────────────────────────────── */

/* Submit button rendered as <input type="submit"> */
input.wpcf7-submit {
    appearance: none;
    -webkit-appearance: none;
    font-family: var(--font-base);
    cursor: pointer;
}
/* Make inline-flex work on input submit (width/height driven by btn-grey / btn-supporto / btn-candidatura) */
input.wpcf7-submit.btn-grey    { display: inline-block; }
input.wpcf7-submit.btn-supporto { display: inline-block; }
input.wpcf7-submit.btn-candidatura { display: inline-block; }

/* Acceptance field — CF7 wraps in label > input + span structure */
.wpcf7-acceptance label {
    display: flex;
    align-items: flex-start;
    gap: 23px;
    font-size: 14px;
    color: #61646b;
    cursor: pointer;
    margin-bottom: 20px;
    line-height: 1.4;
    letter-spacing: 0.2px;
}
.wpcf7-acceptance label a { color: var(--grey-01); text-decoration: underline; }
.wpcf7-acceptance input[type="checkbox"] { margin-top: 3px; flex-shrink: 0; }

/* Inside candidatura context override */
.form-check--candidatura .wpcf7-acceptance label { margin-bottom: 0; }

/* CF7 validation messages */
.wpcf7-not-valid-tip { display: block; font-size: 12px; color: #c0392b; margin-top: 4px; }
.wpcf7 .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border-radius: 4px; font-size: 14px; }
.wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ok { background: #e8f5e9; border: 1px solid #a5d6a7; color: #2e7d32; }
.wpcf7 .wpcf7-response-output.wpcf7-validation-errors { background: #fff3e0; border: 1px solid #ffcc80; color: #e65100; }
.wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-response-output.wpcf7-spam-blocked { background: #fce4ec; border: 1px solid #f48fb1; color: #c62828; }


/* =====================
   PAGINA GENERICA (legali: condizioni, smaltimento, cookie/privacy, codice etico)
   ===================== */
.page-generic .page-inner-hero { padding: 65px 0 0; }
.page-generic .page-inner-hero .breadcrumb { font-size: 12px; text-transform: uppercase; letter-spacing: 0.2px; line-height: 1.24; display: flex; align-items: center; gap: 8px; color: var(--black-true); margin-bottom: 31px; }
.page-generic .page-inner-hero .breadcrumb a { color: var(--black-true); font-weight: 400; }
.page-generic .page-inner-hero .breadcrumb a:hover { color: var(--primary-blue); }
.page-generic .page-inner-hero .breadcrumb strong { font-weight: 700; }
.page-generic-hero-content h1 { font-size: 48px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 0; max-width: 900px; }
.page-generic-content-section { padding: 80px 0 120px; }
.page-generic-content { max-width: 882px; margin: 0 auto; }
.page-generic-content h2 { font-size: 28px; }
.page-generic-content table { width: 100%; border-collapse: collapse; font-size: 15px; }
.page-generic-content table td, .page-generic-content table th { border: 1px solid var(--grey-200, #cdd0d4); padding: 10px 14px; text-align: left; }
@media (max-width: 768px) {
    .page-generic-hero-content h1 { font-size: 28px; }
    .page-generic-content-section { padding: 48px 0 64px; }
}

/* Tipografia classica per le pagine legali: il contenuto importato (markup annidato Elementor)
   non beneficia del flex-gap di .article-content → margini espliciti su ogni elemento. */
.page-generic-content { display: block; }
.page-generic-content p { margin: 0 0 18px; font-size: 16px; line-height: 1.6; color: var(--grey-700); }
.page-generic-content h2 { margin: 44px 0 16px; font-size: 28px; line-height: 1.3; color: var(--black-true); }
.page-generic-content h3 { margin: 32px 0 12px; font-size: 22px; line-height: 1.3; color: var(--black-true); }
.page-generic-content h4 { margin: 28px 0 10px; font-size: 18px; line-height: 1.3; color: var(--black-true); }
.page-generic-content h2:first-child, .page-generic-content h3:first-child { margin-top: 0; }
.page-generic-content ul, .page-generic-content ol { margin: 0 0 18px; padding-left: 24px; }
.page-generic-content li { margin-bottom: 8px; font-size: 16px; line-height: 1.6; color: var(--grey-700); }
.page-generic-content strong { color: var(--black-true); }
.page-generic-content a { color: var(--primary-blue); font-weight: 600; }
/* embed iubenda: respiro fra le sezioni della policy */
.page-generic-content #iubenda_policy p { margin-bottom: 14px; }
.page-generic-content #iubenda_policy h2 { margin: 36px 0 14px; }
.page-generic-content #iubenda_policy h3 { margin: 26px 0 10px; }
.page-generic-content #iubenda_policy ul { margin-bottom: 14px; }

/* =========================================================
   SMALTIMENTO IMBALLAGGI — Figma desktop 1123:9426 / mobile 1129:15728
   ========================================================= */
.page-smaltimento .smalt-hero { padding-top: calc(var(--offset) + 65px); }
.page-smaltimento .smalt-hero .breadcrumb { padding: 0; margin-bottom: 31px; font-size: 14px; }
.page-smaltimento .smalt-hero .breadcrumb a { color: var(--grey-700); }
.page-smaltimento .smalt-hero .breadcrumb a:hover { color: var(--primary-blue); }
.page-smaltimento .smalt-hero .breadcrumb-sep { color: var(--grey-700); margin: 0 6px; }
.page-smaltimento .smalt-hero .breadcrumb strong { color: var(--black-true); font-weight: 700; }
.page-smaltimento .smalt-hero h1 {
    font-size: 48px; font-weight: 700; color: var(--black-true);
    line-height: 1.2; letter-spacing: 0; margin: 0;
}
.page-smaltimento .smalt-section { padding: 120px 0; }
.smalt-content { max-width: 1110px; margin: 0 auto; }
.smalt-header { display: flex; flex-direction: column; gap: 28px; margin-bottom: 60px; }
.smalt-label { font-size: 28px; font-weight: 700; color: var(--black-true); line-height: 1.3; letter-spacing: 0; margin: 0; }
.smalt-subtitle { font-size: 20px; font-weight: 500; color: var(--grey-700); line-height: 1.3; letter-spacing: 0; margin: 0; max-width: 882px; }
.smalt-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 79px;
    row-gap: 72px;
}
.smalt-card { display: flex; flex-direction: column; gap: 24px; }
.smalt-card-img {
    background: var(--grey-50);
    border-radius: 24px;
    aspect-ratio: 317 / 209;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden; padding: 24px;
}
.smalt-card-img img { max-width: 100%; max-height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.smalt-card-body { display: flex; gap: 20px; align-items: flex-start; }
.smalt-card-text { flex: 1 1 0; min-width: 0; }
.smalt-card-title { font-size: 16px; font-weight: 700; color: var(--black-true); line-height: 1.4; letter-spacing: 0; margin: 0 0 4px; }
.smalt-card-list { margin: 0; padding-left: 22px; list-style: disc; }
.smalt-card-list li { font-size: 16px; font-weight: 500; color: var(--grey-700); line-height: 1.4; letter-spacing: 0; }
.smalt-card-icon { flex: 0 0 54px; width: 54px; height: 54px; }
.smalt-card-icon img { width: 100%; height: 100%; object-fit: contain; display: block; }

@media (max-width: 768px) {
    .page-smaltimento .smalt-hero { padding-top: calc(var(--offset) + 26px); }
    .page-smaltimento .smalt-hero h1 { font-size: 28px; }
    .page-smaltimento .smalt-hero .breadcrumb { margin-bottom: 26px; }
    .page-smaltimento .smalt-hero .breadcrumb-sep,
    .page-smaltimento .smalt-hero .breadcrumb strong { display: none; }
    .page-smaltimento .smalt-hero .breadcrumb a::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .page-smaltimento .smalt-section { padding: 80px 0; }
    .smalt-header { gap: 28px; margin-bottom: 40px; }
    .smalt-label { font-size: 20px; }
    .smalt-subtitle { font-size: 16px; line-height: 1.4; }
    .smalt-grid { grid-template-columns: 1fr; row-gap: 72px; justify-items: center; }
    .smalt-card { width: 100%; max-width: 317px; }
}

/* =========================================================
   WHISTLEBLOWING — Figma 1129:16066
   ========================================================= */
.page-whistleblowing .wb-hero { padding-top: calc(var(--offset) + 65px); }
.page-whistleblowing .wb-hero .breadcrumb { padding: 0; margin-bottom: 31px; font-size: 14px; }
.page-whistleblowing .wb-hero .breadcrumb a { color: var(--grey-700); }
.page-whistleblowing .wb-hero .breadcrumb a:hover { color: var(--primary-blue); }
.page-whistleblowing .wb-hero .breadcrumb-sep { color: var(--grey-700); margin: 0 6px; }
.page-whistleblowing .wb-hero .breadcrumb strong { color: var(--black-true); font-weight: 700; }
.page-whistleblowing .wb-hero h1 { font-size: 48px; font-weight: 700; color: var(--black-true); line-height: 1.2; letter-spacing: 0; margin: 0; }

.page-whistleblowing .wb-section { padding: 120px 0; }
.wb-content { max-width: 886px; margin: 0 auto; }
.wb-content p { font-size: 16px; font-weight: 500; line-height: 1.4; color: var(--grey-700); margin: 0; }
.wb-content a { color: var(--primary-blue); text-decoration: underline; word-break: break-word; }
.wb-content ul { margin: 12px 0 0; padding-left: 24px; list-style: disc; }
.wb-content li { font-size: 16px; font-weight: 500; line-height: 1.4; color: var(--grey-700); margin-bottom: 6px; }
.wb-content li:last-child { margin-bottom: 0; }
.wb-content li strong, .wb-content p strong { color: var(--black-true); font-weight: 700; }

.wb-intro { display: flex; flex-direction: column; gap: 16px; }
.wb-intro-title { font-size: 28px; font-weight: 700; color: var(--black-true); line-height: 1.3; margin: 0; }
.wb-intro-sub { font-size: 20px; font-weight: 700; color: var(--black-true); line-height: 1.3; margin: 0; }
.wb-lead { font-size: 20px; font-weight: 500; color: var(--grey-700); line-height: 1.3; margin: 36px 0 0; }

.wb-block { margin-top: 36px; }
.wb-block-title { font-size: 20px; font-weight: 700; color: var(--black-true); line-height: 1.3; letter-spacing: 0; margin: 0 0 16px; }
.wb-block p + p { margin-top: 14px; }

.wb-alert { display: flex; gap: 20px; align-items: flex-start; background: var(--primary-cyan-light); border-radius: 12px; padding: 32px 30px 33px; margin-top: 36px; }
.wb-alert-icon { flex: 0 0 24px; width: 24px; height: 24px; color: var(--primary-blue); }
.wb-alert-icon svg { display: block; width: 100%; height: 100%; }
.wb-alert-text p { margin: 0; }
.wb-alert-title { font-size: 20px; font-weight: 700; color: var(--black-true); line-height: 1.3; margin: 0 0 6px; }

.wb-table-wrap { margin-top: 28px; overflow-x: auto; }
.wb-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.wb-table th { background: var(--primary-blue); color: var(--white); font-size: 16px; font-weight: 700; text-align: left; padding: 20px 24px; border: 1px solid var(--primary-blue-light); }
.wb-table td { font-size: 14px; font-weight: 500; color: var(--black-true); line-height: 1.4; padding: 24px; border: 1px solid var(--primary-blue-light); vertical-align: top; }
.wb-table tbody tr:nth-child(even) td { background: var(--primary-cyan-light); }
.wb-table tbody tr:nth-child(odd) td { background: var(--white); }
.wb-table td strong { color: var(--black-true); font-weight: 700; }

.wb-doc-btn { display: inline-flex; align-items: center; gap: 15px; padding: 12px 12px 12px 20px; border: 1px solid var(--primary-blue); border-radius: 56px; margin-top: 36px; text-decoration: none; transition: background .2s; }
.wb-doc-btn-label { font-size: 14px; font-weight: 700; color: var(--black-true); letter-spacing: .2px; }
.wb-doc-btn-icon { width: 32px; height: 32px; border-radius: 50%; background: var(--primary-blue); color: var(--white); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.wb-doc-btn:hover { background: var(--primary-cyan-light); }

@media (max-width: 768px) {
    .page-whistleblowing .wb-hero { padding-top: calc(var(--offset) + 26px); }
    .page-whistleblowing .wb-hero h1 { font-size: 28px; }
    .page-whistleblowing .wb-hero .breadcrumb { margin-bottom: 26px; }
    .page-whistleblowing .wb-hero .breadcrumb-sep,
    .page-whistleblowing .wb-hero .breadcrumb strong { display: none; }
    .page-whistleblowing .wb-hero .breadcrumb a::before { content: "\2039"; margin-right: 8px; font-size: 18px; line-height: 1; display: inline-block; }
    .page-whistleblowing .wb-section { padding: 80px 0; }
    .wb-intro-title { font-size: 22px; }
    .wb-intro-sub { font-size: 18px; }
    .wb-lead { font-size: 18px; }
    .wb-block-title { font-size: 18px; }
    /* Alert mobile: icona SOPRA il testo (colonna) — Figma 1147:20814 */
    .wb-alert { flex-direction: column; gap: 20px; padding: 32px 30px; }
    /* Tabella mobile: 3 colonne strette a tutta larghezza, niente scroll, celle compatte — Figma 1147:20821 */
    .wb-table-wrap { overflow-x: visible; }
    .wb-table { table-layout: fixed; min-width: 0; }
    .wb-table th { font-size: 14px; padding: 16px 12px; }
    .wb-table td { padding: 16px 12px; }
    .wb-table th, .wb-table td { overflow-wrap: break-word; word-break: break-word; hyphens: auto; }
}
