/* ====================================================================
 * fixes.css — Eugenio il Fabbro Child Theme
 * ====================================================================
 *
 * OVERRIDE TEMA ACCELERATE + 25 BLOCCHI CUSTOM SEZIONI
 * Caricato per ULTIMO (dopo brand.css e components.css).
 *
 * ┌─────────────────────────────────────────────────────────────────┐
 * │  INDICE 25 BLOCCHI                                              │
 * ├─────────────────────────────────────────────────────────────────┤
 * │   1. Kill paragrafi parassiti wpautop                       ✅  │
 * │   2. Nasconde page-title e sidebar Accelerate               ✅  │
 * │   3. Container centrato max-width 1240px                    ✅  │
 * │   4. Sezioni full-width via box-shadow trick                ✅  │
 * │   5. Hero homepage (sfondo antracite + pattern + sigillo)   ✅  │
 * │   6. Hero pagine interne compatto + breadcrumb              ✅  │
 * │   7. Split section grid 1fr 1fr + .--reverse                ✅  │
 * │   8. Service card per 7 icone (variante --with-icon)        ✅  │
 * │   9. Gallery 4 colonne responsive                           ✅  │
 * │  10. Features grid 5 colonne con 01-05 italic ottone        ✅  │
 * │  11. Testimonial con override blockquote Accelerate         ✅  │
 * │  12. CTA block scuro con telefono gigante                   ✅  │
 * │  13. Check-list custom con SVG marker                       ✅  │
 * │  14. FAQ accordion <details>/<summary> CSS-only             ✅  │
 * │  15. Section header (eyebrow + divider + title)             ✅  │
 * │  16. Rich text per pagine interne                           ✅  │
 * │  17. Tabella comparativa elegante                           ✅  │
 * │  18. Bonus / Info box                                       ✅  │
 * │  19. Timeline processo verticale                            ✅  │
 * │  20. Manifesto / citazione editoriale (override blockquote) ✅  │
 * │  21. Contact grid 3 box clickable (tel/wa/email)            ✅  │
 * │  22. Contact layout 1 colonna (telefono gigante centrale)   ✅  │
 * │  23. Info cards (orari, raggio, pagamenti)                  ✅  │
 * │  24. Map wrapper Google Maps embed (solo Contatti)          ✅  │
 * │  25. Sticky bottom mobile CTA (Chiama + WhatsApp)           ✅  │
 * └─────────────────────────────────────────────────────────────────┘
 * ==================================================================== */


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 1 — Kill paragrafi parassiti wpautop
 * ════════════════════════════════════════════════════════════════════ */

.entry-content p:empty,
.entry-content p:has(> br:only-child) {
    display: none !important;
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 2 — Nasconde page-title e sidebar Accelerate
 * ════════════════════════════════════════════════════════════════════ */

/* Nasconde sidebar/page-header su TUTTE le viste (page + single + home + archive).
   La sidebar Accelerate è completamente fuori dal nostro design system.
   In fase di sviluppo (prima che le pagine esistano) questo evita di
   vedere la sidebar con Cerca/Archivi/Meta sulle viste residue. */
.entry-title,
.entry-header,
.page-header,
#secondary,
.secondary,
.sidebar,
.widget-area {
    display: none !important;
}

body #primary,
body .content-area {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body #content,
body .site-content {
    padding-top: 0;
    padding-bottom: 0;
    margin: 0;
}

/* Sui post normali (articoli mass-gen futuri) riprende un po' di padding */
body.single-post #content {
    padding-top: 2rem;
}

/* FIX overflow per box-shadow trick e clip-path delle sezioni full-width.
   Il tema Accelerate ha overflow:hidden o limiti su #page e wrapper figli.
   Li sblocchiamo per permettere alle sezioni .euf-section--* e .euf-footer
   di estendersi a tutta la viewport. */
html, body {
    overflow-x: hidden;        /* evita scroll orizzontale dal box-shadow */
}

#page,
.hfeed,
.site,
#main.clearfix,
.inner-wrap {
    overflow-x: visible !important;
    overflow-y: visible !important;
    max-width: none !important;
}

/* Site main: rimuovi il padding-top di Accelerate sulle pagine (l'header
   sticky custom è già abbastanza spazioso da solo) */
body.page #main,
body.page .site-content {
    padding: 0 !important;
    margin: 0 !important;
}

/* Nasconde scroll-up nativo del tema (lo rimpiazzeremo con uno custom se serve) */
#scroll-up {
    display: none !important;
}

/* FIX allineamento: il contenuto WordPress nativo (post, page, archive)
   renderizzato dal tema Accelerate va ricentrato dentro il container
   1240px, altrimenti finisce incollato al bordo sinistro della finestra
   dopo la rimozione della sidebar.
   Target: tutti i wrapper che il tema usa per il contenuto. */
.site-content,
#content,
#main,
#main.clearfix > .inner-wrap,
.hentry,
article.post,
article.page,
.entry-content,
.post-meta,
.archive-header,
.post-thumbnail {
    max-width: var(--container-max);
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: clamp(1rem, 4vw, 2rem);
    padding-right: clamp(1rem, 4vw, 2rem);
    box-sizing: border-box;
}

/* Reset double-padding: se main è già centrato, le sue figlie non devono
   avere padding-x aggiuntivo (eviterebbe rim doppio) */
.site-content .hentry,
#main .hentry,
.site-content article.post,
.site-content article.page,
#content article.post,
#content article.page,
.entry-content > * {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: none;
}

/* Le sezioni full-width (con clip-path/box-shadow) e header/footer NON
   devono essere influenzate da questo container — sono SOPRA il content
   o iniettate via hook fuori dal main */
.euf-header,
.euf-footer,
.euf-section,
.euf-hero,
.euf-page-hero,
.euf-sticky-cta {
    max-width: none !important;
    padding-left: 0;
    padding-right: 0;
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 3 — Container centrato (.euf-container)
 * ════════════════════════════════════════════════════════════════════ */

.euf-container {
    width: 100%;
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(1rem, 4vw, 2rem);
    padding-right: clamp(1rem, 4vw, 2rem);
    box-sizing: border-box;
}

.euf-container--narrow { max-width: var(--container-text); }
.euf-container--wide   { max-width: var(--container-wide); }


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 4 — Sezioni full-width via box-shadow trick
 * ════════════════════════════════════════════════════════════════════ */

.euf-section {
    position: relative;
    padding: clamp(3rem, 8vw, 5.5rem) 0;
    background-color: var(--color-cream);
}

.euf-section--crema-scura {
    background-color: var(--color-cream-dark);
    box-shadow: 50vw 0 0 var(--color-cream-dark),
                -50vw 0 0 var(--color-cream-dark);
    clip-path: inset(0 -50vw);
}

.euf-section--antracite {
    background-color: var(--color-ink);
    color: var(--color-cream);
    box-shadow: 50vw 0 0 var(--color-ink),
                -50vw 0 0 var(--color-ink);
    clip-path: inset(0 -50vw);
}

.euf-section--antracite-tenue {
    background-color: var(--color-ink-soft);
    color: var(--color-cream);
    box-shadow: 50vw 0 0 var(--color-ink-soft),
                -50vw 0 0 var(--color-ink-soft);
    clip-path: inset(0 -50vw);
}

.euf-section--pattern-dots {
    background-image: url('../img/decorative/pattern-dots.svg');
    background-repeat: repeat;
    background-size: 40px 40px;
}

.euf-section--pattern-lines {
    background-color: var(--color-ink);
    background-image: url('../img/decorative/pattern-lines.svg');
    background-repeat: repeat;
    background-size: 60px 60px;
    color: var(--color-cream);
    box-shadow: 50vw 0 0 var(--color-ink),
                -50vw 0 0 var(--color-ink);
    clip-path: inset(0 -50vw);
}

.euf-section--antracite h1, .euf-section--antracite h2,
.euf-section--antracite h3, .euf-section--antracite h4,
.euf-section--antracite-tenue h1, .euf-section--antracite-tenue h2,
.euf-section--antracite-tenue h3, .euf-section--antracite-tenue h4,
.euf-section--pattern-lines h1, .euf-section--pattern-lines h2,
.euf-section--pattern-lines h3, .euf-section--pattern-lines h4 {
    color: var(--color-cream);
}

.euf-section--tight { padding: clamp(2rem, 5vw, 3rem) 0; }
.euf-section--loose { padding: clamp(5rem, 12vw, 8rem) 0; }


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 5 — Hero homepage
 * ════════════════════════════════════════════════════════════════════ */

.euf-hero {
    background-color: var(--color-ink);
    color: var(--color-cream);
    padding: clamp(4rem, 8vw, 6.5rem) 0;
    position: relative;
    overflow: hidden;
    box-shadow: 50vw 0 0 var(--color-ink), -50vw 0 0 var(--color-ink);
    clip-path: inset(0 -50vw);
}

.euf-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('../img/decorative/pattern-lines.svg');
    background-size: 80px 80px;
    opacity: 0.6;
    pointer-events: none;
}

.euf-hero__inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--gutter-desktop);
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 3rem;
    align-items: center;
    position: relative;
    z-index: 1;
}

.euf-hero__content {
    position: relative;
}

.euf-hero__eyebrow {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.25em;
    color: var(--color-brass);
    margin-bottom: 1.25rem;
    display: block;
}

.euf-hero__title {
    font-family: var(--font-serif);
    font-size: clamp(2.5rem, 5.5vw, 4.25rem);
    font-weight: 700;
    line-height: 1.05;
    color: var(--color-cream);
    margin: 0 0 0.5rem;
    letter-spacing: -0.02em;
    /* Limito la larghezza in caratteri per garantire wrap
       "Risponde / sempre lui." anche su viewport molto largo. */
    max-width: 8ch;
}

.euf-hero__title em {
    font-style: italic;
    font-weight: 500;
    color: var(--color-brass);
}

.euf-hero__divider {
    width: 90px;
    height: 2px;
    background: var(--color-brass);
    border: 0;
    margin: 1.5rem 0;
}

.euf-hero__lead {
    font-family: var(--font-serif);
    font-size: clamp(1.125rem, 1.8vw, 1.375rem);
    line-height: 1.5;
    color: rgba(244, 239, 230, 0.9);
    margin: 0 0 2rem;
    font-weight: 500;
}

.euf-hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    margin-top: 2rem;
}

.euf-hero__visual {
    display: flex;
    align-items: center;
    justify-content: center;
}

.euf-hero__seal {
    width: clamp(220px, 32vw, 420px);
    aspect-ratio: 1;
    background-image: url('../img/logo-icona-dark.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

/* Foto reale come visual hero (alternativa al sigillo).
   Trattamento editoriale: cornice ottone sottile + leggera ombra,
   border-radius minimo per non sembrare un selfie Instagram.
   Su fondo antracite NON usare box-shadow antracite (invisibile):
   usare bordo ottone + ombra calda crema soft. */
.euf-hero__photo {
    width: clamp(260px, 28vw, 420px);
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid rgba(184, 144, 46, 0.5);
    box-shadow:
        0 0 0 1px rgba(184, 144, 46, 0.25),
        0 25px 60px -15px rgba(0, 0, 0, 0.5),
        0 10px 25px -10px rgba(184, 144, 46, 0.15);
    display: block;
}

@media (max-width: 768px) {
    .euf-hero__photo {
        width: min(75%, 320px);
        margin: 1.5rem auto 0;
    }
}

/* Trust bar sotto hero (5 segnali) */
.euf-hero-trustbar {
    background: var(--color-brass);
    color: var(--color-ink);
    padding: 0.875rem 0;
    box-shadow: 50vw 0 0 var(--color-brass), -50vw 0 0 var(--color-brass);
    clip-path: inset(0 -50vw);
}

.euf-hero-trustbar__inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--gutter-desktop);
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    gap: 1rem 2rem;
}

.euf-hero-trustbar__item {
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-ink);
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    line-height: 1.2;
}

.euf-hero-trustbar__item::before {
    content: '✓';
    color: var(--color-ink);
    opacity: 0.5;
    font-weight: 700;
}

@media (max-width: 900px) {
    .euf-hero__inner {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .euf-hero__visual {
        order: -1;
    }
    .euf-hero__seal {
        width: 200px;
    }
    .euf-hero-trustbar__inner {
        justify-content: flex-start;
    }
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 6 — Hero pagine interne (compatto + breadcrumb)
 * ════════════════════════════════════════════════════════════════════ */

.euf-page-hero {
    background: var(--color-ink);
    color: var(--color-cream);
    padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(2.5rem, 5vw, 3.5rem);
    position: relative;
    overflow: hidden;
    box-shadow: 50vw 0 0 var(--color-ink), -50vw 0 0 var(--color-ink);
    clip-path: inset(0 -50vw);
}

.euf-page-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('../img/decorative/pattern-lines.svg');
    background-size: 60px 60px;
    opacity: 0.4;
    pointer-events: none;
}

.euf-page-hero__inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--gutter-desktop);
    position: relative;
    z-index: 1;
}

.euf-breadcrumb {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--color-brass);
    margin: 0 0 1.25rem;
    list-style: none;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.euf-breadcrumb li::after {
    content: '·';
    margin-left: 0.5rem;
    color: var(--color-brass);
    opacity: 0.6;
}

.euf-breadcrumb li:last-child::after {
    display: none;
}

.euf-breadcrumb a {
    color: var(--color-brass);
    text-decoration: none;
    border-bottom: 1px dotted transparent;
    transition: border-color var(--transition-fast);
}

.euf-breadcrumb a:hover {
    border-bottom-color: var(--color-brass);
}

.euf-breadcrumb [aria-current="page"] {
    color: rgba(244, 239, 230, 0.7);
}

.euf-page-hero__title {
    font-family: var(--font-serif);
    font-size: clamp(2rem, 4.5vw, 3.25rem);
    font-weight: 700;
    line-height: 1.1;
    color: var(--color-cream);
    margin: 0 0 1rem;
    letter-spacing: -0.02em;
    max-width: 28ch;
}

.euf-page-hero__lead {
    font-family: var(--font-serif);
    font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
    line-height: 1.55;
    font-weight: 500;
    color: rgba(244, 239, 230, 0.82);
    margin: 0;
    max-width: 60ch;
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 7 — Split section grid 1fr 1fr + .--reverse
 * ════════════════════════════════════════════════════════════════════ */

.euf-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
}

.euf-split--reverse .euf-split__media {
    order: 2;
}

.euf-split__content > * + * {
    margin-top: 1rem;
}

.euf-split__eyebrow {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: var(--ls-eyebrow);
    color: var(--color-brass);
    margin: 0;
    display: block;
}

.euf-split__title {
    font-family: var(--font-serif);
    font-size: clamp(1.625rem, 3vw, 2.25rem);
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-ink);
    margin: 0.5rem 0 1rem;
    letter-spacing: -0.01em;
}

.euf-section--antracite .euf-split__title,
.euf-section--antracite-tenue .euf-split__title {
    color: var(--color-cream);
}

.euf-split__media {
    border-radius: var(--radius-md);
    overflow: hidden;
    aspect-ratio: 4/3;
    background: var(--color-cream-dark);
    position: relative;
}

.euf-split__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Variante foto reale con trattamento editoriale:
   cornice antracite + bordo ottone sottile + ombra profonda. */
.euf-split__media--photo {
    background: transparent;
    border: 1px solid rgba(184, 144, 46, 0.35);
    box-shadow: 0 18px 45px rgba(28, 29, 32, 0.25),
                0 0 0 6px var(--color-ink);
    aspect-ratio: 4/5;
}

.euf-split__media--photo img {
    border-radius: 0;
}

/* Variante media decorativa con sigillo grande centrato */
.euf-split__media--seal {
    background: var(--color-ink);
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: url('../img/decorative/pattern-lines.svg');
    background-size: 60px 60px;
    background-blend-mode: normal;
    border: 1px solid var(--color-border);
}

.euf-split__media--seal::after {
    content: '';
    width: 60%;
    aspect-ratio: 1;
    background-image: url('../img/logo-icona-dark.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

@media (max-width: 768px) {
    .euf-split {
        grid-template-columns: 1fr;
    }
    .euf-split--reverse .euf-split__media {
        order: 0;
    }
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 8 — Service card grid (7 icone servizi)
 * ════════════════════════════════════════════════════════════════════ */

.euf-services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem;
}

.euf-service-card {
    background: var(--color-cream);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 2rem 1.75rem 1.75rem;
    text-decoration: none;
    color: var(--color-ink);
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    transition: transform var(--transition-base),
                box-shadow var(--transition-base),
                border-color var(--transition-base);
    position: relative;
    overflow: hidden;
}

/* Link che copre l'intera card (pattern "stretched link").
   Lo usiamo come <a> figlio del <div class="euf-service-card">
   per evitare che WordPress chiuda <a> prematuramente quando
   contiene block-level elements come <h3>, <p>. */
.euf-service-card__link {
    position: absolute;
    inset: 0;
    z-index: 2;
    text-indent: -9999px;
    overflow: hidden;
    color: transparent;
    /* Permette accessibilità: screen reader legge il testo */
}

.euf-service-card__link:focus-visible {
    outline: 2px solid var(--color-brass);
    outline-offset: -4px;
}

/* I figli della card devono stare sotto il link in z-index
   tranne quando l'utente seleziona testo (non blocchiamo selezione) */
.euf-service-card > *:not(.euf-service-card__link) {
    position: relative;
    z-index: 1;
}

.euf-service-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--color-brass);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-base);
}

.euf-service-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: rgba(184, 144, 46, 0.4);
    color: var(--color-ink);
}

.euf-service-card:hover::before {
    transform: scaleX(1);
}

.euf-service-card__icon {
    width: 56px;
    height: 56px;
    color: var(--color-brass);
    margin-bottom: 0.25rem;
}

.euf-service-card__icon img,
.euf-service-card__icon svg {
    width: 100%;
    height: 100%;
    display: block;
}

.euf-service-card__title {
    font-family: var(--font-serif);
    font-size: 1.375rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--color-ink);
    margin: 0;
    letter-spacing: -0.01em;
}

.euf-service-card__body {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--color-text-muted);
    margin: 0;
    flex: 1;
}

.euf-service-card__cta {
    font-family: var(--font-sans);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--color-brass-dark);
    margin-top: 0.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    transition: gap var(--transition-fast);
}

.euf-service-card__cta::after {
    content: '→';
}

.euf-service-card:hover .euf-service-card__cta {
    gap: 0.65em;
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 9 — Gallery 4 colonne responsive
 * ════════════════════════════════════════════════════════════════════ */

.euf-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}

.euf-gallery__item {
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: var(--radius-sm);
    background: var(--color-cream-dark);
}

.euf-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 400ms ease;
}

.euf-gallery__item:hover img {
    transform: scale(1.05);
}

@media (max-width: 900px) { .euf-gallery { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .euf-gallery { grid-template-columns: repeat(2, 1fr); } }


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 10 — Features grid 5 colonne con numerazione 01-05
 * ════════════════════════════════════════════════════════════════════ */

.euf-features {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 2rem;
    counter-reset: feat;
}

.euf-feature {
    counter-increment: feat;
    position: relative;
    padding-top: 3.5rem;
}

.euf-feature::before {
    content: counter(feat, decimal-leading-zero);
    position: absolute;
    top: 0;
    left: 0;
    font-family: var(--font-serif);
    font-size: 2.25rem;
    font-style: italic;
    font-weight: 500;
    color: var(--color-brass);
    line-height: 1;
    letter-spacing: -0.02em;
}

.euf-feature__title {
    font-family: var(--font-serif);
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0 0 0.5rem;
    line-height: 1.25;
    color: inherit;
}

.euf-feature__body {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--color-text-muted);
    margin: 0;
}

.euf-section--antracite .euf-feature__body,
.euf-section--antracite-tenue .euf-feature__body,
.euf-section--pattern-lines .euf-feature__body {
    color: rgba(244, 239, 230, 0.78);
}

@media (max-width: 1024px) {
    .euf-features { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
    .euf-features { grid-template-columns: 1fr; gap: 1.5rem; }
    .euf-feature { padding-top: 3rem; }
    .euf-feature::before { font-size: 2rem; }
}

/* Varianti con N colonne diverse */
.euf-features--6col { grid-template-columns: repeat(6, 1fr); }
.euf-features--4col { grid-template-columns: repeat(4, 1fr); }
.euf-features--3col { grid-template-columns: repeat(3, 1fr); }


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 11 — Testimonial con override blockquote Accelerate
 * ════════════════════════════════════════════════════════════════════ */

.euf-testimonials {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

.entry-content blockquote.euf-testimonial,
blockquote.euf-testimonial,
.euf-testimonial {
    background: transparent !important;
    background-color: var(--color-cream) !important;
    background-image: none !important;
    border: 1px solid var(--color-border) !important;
    border-left: 3px solid var(--color-brass) !important;
    border-radius: var(--radius-sm) !important;
    box-shadow: none !important;
    padding: 1.75rem 1.75rem 1.5rem !important;
    margin: 0 !important;
    color: var(--color-ink) !important;
    quotes: none !important;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    position: relative;
    font-style: normal !important;
}

.entry-content blockquote.euf-testimonial::before,
blockquote.euf-testimonial::before,
.euf-testimonial::before {
    content: '"' !important;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    font-family: var(--font-serif) !important;
    font-size: 3.5rem !important;
    color: var(--color-brass) !important;
    opacity: 0.25 !important;
    line-height: 1 !important;
    font-style: italic !important;
}

.euf-testimonial__quote {
    font-family: var(--font-serif) !important;
    font-style: italic !important;
    font-size: 1.0625rem !important;
    line-height: 1.55 !important;
    color: var(--color-ink) !important;
    margin: 0 !important;
    font-weight: 500 !important;
}

.euf-testimonial__cite {
    font-family: var(--font-sans) !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: var(--color-text-muted) !important;
    font-style: normal !important;
    margin-top: 0.5rem;
    display: block;
}

.euf-testimonial__cite::before {
    content: '— ';
    color: var(--color-brass);
}

@media (max-width: 900px) {
    .euf-testimonials { grid-template-columns: 1fr; }
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 12 — CTA block scuro con telefono gigante
 * ════════════════════════════════════════════════════════════════════ */

.euf-cta-block {
    background: var(--color-ink);
    color: var(--color-cream);
    padding: clamp(3rem, 6vw, 4.5rem) clamp(1.5rem, 4vw, 3rem);
    border-radius: var(--radius-md);
    text-align: center;
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(184, 144, 46, 0.2);
}

.euf-cta-block::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('../img/decorative/pattern-lines.svg');
    background-size: 80px 80px;
    opacity: 0.3;
    pointer-events: none;
}

.euf-cta-block__inner {
    position: relative;
    z-index: 1;
    max-width: 720px;
    margin: 0 auto;
}

.euf-cta-block__eyebrow {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.25em;
    color: var(--color-brass);
    margin: 0 0 1rem;
    display: block;
}

.euf-cta-block__title {
    font-family: var(--font-serif);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 700;
    line-height: 1.15;
    color: var(--color-cream);
    margin: 0 0 0.5rem;
    letter-spacing: -0.02em;
}

.euf-cta-block__title em {
    font-style: italic;
    color: var(--color-brass);
    font-weight: 500;
}

.euf-cta-block__phone {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    font-family: var(--font-sans);
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    font-weight: 700;
    color: var(--color-brass);
    text-decoration: none;
    margin: 1.5rem 0 0.5rem;
    letter-spacing: -0.01em;
    transition: color var(--transition-fast);
}

.euf-cta-block__phone::before {
    content: '✆';
    font-size: 0.7em;
    opacity: 0.85;
}

.euf-cta-block__phone:hover {
    color: var(--color-cream);
}

.euf-cta-block__sub {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 1.125rem;
    color: rgba(244, 239, 230, 0.7);
    margin: 0 0 1.5rem;
}

.euf-cta-block__actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 1rem;
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 13 — Check-list custom con SVG marker
 * ════════════════════════════════════════════════════════════════════ */

.euf-checklist {
    list-style: none;
    margin: 1.5rem 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.euf-checklist li {
    position: relative;
    padding-left: 2rem;
    font-size: 1rem;
    line-height: 1.55;
    color: inherit;
}

.euf-checklist li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.35rem;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='8.5' fill='none' stroke='%23B8902E' stroke-width='1.2'/%3E%3Cpolyline points='5,9.5 8,12 13,6.5' fill='none' stroke='%23B8902E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

/* Variante NO (crocette rosse) */
.euf-checklist--no li::before {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='8.5' fill='none' stroke='%23C8412E' stroke-width='1.2'/%3E%3Cline x1='6' y1='6' x2='12' y2='12' stroke='%23C8412E' stroke-width='1.8' stroke-linecap='round'/%3E%3Cline x1='12' y1='6' x2='6' y2='12' stroke='%23C8412E' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 14 — FAQ accordion <details>/<summary> CSS-only
 * ════════════════════════════════════════════════════════════════════ */

.euf-faq {
    max-width: var(--container-text);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.euf-faq__item {
    background: var(--color-cream);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    transition: border-color var(--transition-fast);
}

.euf-faq__item[open] {
    border-color: var(--color-brass);
}

.euf-faq__item summary {
    padding: 1.1rem 3rem 1.1rem 1.5rem;
    font-family: var(--font-serif);
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--color-ink);
    cursor: pointer;
    list-style: none;
    position: relative;
    transition: background var(--transition-fast);
}

.euf-faq__item summary::-webkit-details-marker {
    display: none;
}

.euf-faq__item summary::after {
    content: '+';
    position: absolute;
    right: 1.25rem;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--font-sans);
    font-size: 1.75rem;
    font-weight: 400;
    color: var(--color-brass);
    transition: transform var(--transition-base);
    line-height: 1;
}

.euf-faq__item[open] summary::after {
    transform: translateY(-50%) rotate(45deg);
}

.euf-faq__item summary:hover {
    background: var(--color-cream-dark);
}

.euf-faq__answer {
    padding: 0 1.5rem 1.5rem;
    font-size: 1rem;
    line-height: 1.65;
    color: var(--color-text-muted);
}

.euf-faq__answer > * + * {
    margin-top: 0.75rem;
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 15 — Section header (eyebrow + divider + title + lead)
 * ════════════════════════════════════════════════════════════════════ */

.euf-section-head {
    text-align: center;
    max-width: 720px;
    margin: 0 auto clamp(2rem, 4vw, 3.5rem);
}

.euf-section-head--left {
    text-align: left;
    margin-left: 0;
    margin-right: 0;
}

.euf-section-head__eyebrow {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.25em;
    color: var(--color-brass);
    margin: 0 0 1rem;
    display: block;
}

.euf-section-head__divider {
    width: 60px;
    height: 2px;
    background: var(--color-brass);
    border: 0;
    margin: 0 auto 1.25rem;
}

.euf-section-head--left .euf-section-head__divider {
    margin-left: 0;
}

.euf-section-head__title {
    font-family: var(--font-serif);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-ink);
    margin: 0 0 1rem;
    letter-spacing: -0.02em;
}

.euf-section--antracite .euf-section-head__title,
.euf-section--antracite-tenue .euf-section-head__title,
.euf-section--pattern-lines .euf-section-head__title {
    color: var(--color-cream);
}

.euf-section-head__lead {
    font-family: var(--font-serif);
    font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
    line-height: 1.55;
    font-weight: 500;
    color: var(--color-text-muted);
    margin: 0;
}

.euf-section--antracite .euf-section-head__lead,
.euf-section--antracite-tenue .euf-section-head__lead,
.euf-section--pattern-lines .euf-section-head__lead {
    color: rgba(244, 239, 230, 0.8);
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 16 — Rich text per pagine interne
 * ════════════════════════════════════════════════════════════════════ */

.euf-richtext {
    max-width: var(--container-text);
    margin: 0 auto;
    font-size: 1rem;
    line-height: 1.7;
    color: var(--color-ink);
}

.euf-richtext > * + * {
    margin-top: 1.25rem;
}

.euf-richtext h2 {
    font-family: var(--font-serif);
    font-size: clamp(1.5rem, 2.6vw, 1.875rem);
    font-weight: 700;
    line-height: 1.25;
    margin: 2.5rem 0 1rem;
    color: var(--color-ink);
    letter-spacing: -0.01em;
}

.euf-richtext h3 {
    font-family: var(--font-serif);
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    font-weight: 600;
    line-height: 1.3;
    margin: 2rem 0 0.75rem;
    color: var(--color-ink);
}

.euf-richtext p {
    margin: 0 0 1.25rem;
}

.euf-richtext p:last-child {
    margin-bottom: 0;
}

.euf-richtext a {
    color: var(--color-brass-dark);
    text-decoration: underline;
    text-decoration-color: rgba(184, 144, 46, 0.5);
    text-underline-offset: 3px;
    transition: color var(--transition-fast),
                text-decoration-color var(--transition-fast);
}

.euf-richtext a:hover {
    color: var(--color-ink);
    text-decoration-color: var(--color-ink);
}

.euf-richtext strong {
    color: var(--color-ink);
    font-weight: 600;
}

.euf-richtext ul,
.euf-richtext ol {
    padding-left: 1.5rem;
    margin: 1rem 0 1.5rem;
}

.euf-richtext li {
    margin-bottom: 0.5rem;
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 17 — Tabella comparativa elegante
 * ════════════════════════════════════════════════════════════════════ */

.euf-compare {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-sans);
    background: var(--color-cream);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    margin: 1.5rem 0;
}

.euf-compare thead {
    background: var(--color-ink);
    color: var(--color-cream);
}

.euf-compare th {
    padding: 1rem 1.25rem;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-align: left;
    color: var(--color-cream);
}

.euf-compare th:not(:first-child) {
    text-align: center;
}

.euf-compare th.is-highlighted {
    color: var(--color-brass);
}

.euf-compare td {
    padding: 0.875rem 1.25rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    border-top: 1px solid var(--color-border);
    color: var(--color-ink);
}

.euf-compare td:not(:first-child) {
    text-align: center;
}

.euf-compare tbody tr:nth-child(even) {
    background: var(--color-cream-dark);
}

.euf-compare tbody tr:hover {
    background: rgba(184, 144, 46, 0.08);
}

.euf-compare td.is-yes::before {
    content: '✓';
    color: var(--color-success);
    font-weight: 700;
    margin-right: 0.3em;
}

.euf-compare td.is-no::before {
    content: '✗';
    color: var(--color-urgency);
    font-weight: 700;
    margin-right: 0.3em;
}

.euf-compare td.is-row-label {
    font-weight: 600;
    text-align: left;
}

@media (max-width: 700px) {
    .euf-compare {
        font-size: 0.875rem;
    }
    .euf-compare th,
    .euf-compare td {
        padding: 0.75rem 0.875rem;
    }
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 18 — Bonus / Info box (gradiente ottone tenue + checklist)
 * ════════════════════════════════════════════════════════════════════ */

.euf-bonus-box {
    background: linear-gradient(135deg,
        rgba(184, 144, 46, 0.10) 0%,
        rgba(184, 144, 46, 0.04) 100%);
    border: 1px solid rgba(184, 144, 46, 0.3);
    border-left: 4px solid var(--color-brass);
    border-radius: var(--radius-md);
    padding: 1.75rem 1.75rem 1.5rem;
    margin: 1.5rem 0;
}

.euf-bonus-box__eyebrow {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--color-brass-dark);
    margin: 0 0 0.5rem;
    display: block;
}

.euf-bonus-box__title {
    font-family: var(--font-serif);
    font-size: 1.375rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--color-ink);
    margin: 0 0 0.75rem;
}

.euf-bonus-box p {
    margin: 0 0 0.75rem;
    line-height: 1.55;
    color: var(--color-ink);
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 19 — Timeline processo verticale
 * ════════════════════════════════════════════════════════════════════ */

.euf-timeline {
    list-style: none;
    margin: 1.5rem 0;
    padding: 0;
    counter-reset: tl;
    position: relative;
}

.euf-timeline::before {
    content: '';
    position: absolute;
    left: 19px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(to bottom,
        var(--color-brass) 0%,
        rgba(184, 144, 46, 0.2) 100%);
}

.euf-timeline__item {
    counter-increment: tl;
    position: relative;
    padding-left: 4rem;
    padding-bottom: 2rem;
}

.euf-timeline__item:last-child {
    padding-bottom: 0;
}

.euf-timeline__item::before {
    content: counter(tl, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: -0.2rem;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--color-cream);
    border: 2px solid var(--color-brass);
    color: var(--color-brass-dark);
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.05em;
}

.euf-section--antracite .euf-timeline__item::before,
.euf-section--antracite-tenue .euf-timeline__item::before,
.euf-section--pattern-lines .euf-timeline__item::before {
    background: var(--color-ink);
    color: var(--color-brass);
}

.euf-timeline__title {
    font-family: var(--font-serif);
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.25;
    margin: 0 0 0.5rem;
    color: inherit;
}

.euf-timeline__body {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--color-text-muted);
    margin: 0;
}

.euf-section--antracite .euf-timeline__body,
.euf-section--antracite-tenue .euf-timeline__body,
.euf-section--pattern-lines .euf-timeline__body {
    color: rgba(244, 239, 230, 0.78);
}

.euf-timeline__meta {
    font-family: var(--font-sans);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-brass);
    margin-top: 0.3rem;
    display: block;
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 20 — Manifesto / citazione editoriale (override blockquote)
 * ════════════════════════════════════════════════════════════════════ */

.entry-content blockquote.euf-manifesto,
blockquote.euf-manifesto,
.euf-manifesto {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    border-left: 3px solid var(--color-brass) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: var(--color-ink) !important;
    padding: 1.5rem 2rem !important;
    margin: 2rem 0 !important;
    font-family: var(--font-serif) !important;
    font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
    font-style: italic !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    quotes: none !important;
    max-width: 720px;
}

.euf-section--antracite .euf-manifesto,
.euf-section--antracite-tenue .euf-manifesto,
.euf-section--pattern-lines .euf-manifesto {
    color: var(--color-cream) !important;
}

.euf-manifesto::before,
.euf-manifesto::after {
    display: none !important;
}

.euf-manifesto__cite {
    display: block;
    margin-top: 1.25rem;
    font-family: var(--font-sans) !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    font-style: normal !important;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--color-brass) !important;
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 21 — Contact grid 3 box clickable (tel/wa/email)
 * ════════════════════════════════════════════════════════════════════ */

.euf-contact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin: 2rem 0;
}

.euf-contact-box {
    background: var(--color-cream);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 1.75rem 1.5rem;
    text-decoration: none;
    color: var(--color-ink);
    position: relative;
    transition: transform var(--transition-base),
                box-shadow var(--transition-base),
                border-color var(--transition-base);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
    overflow: hidden;
}

.euf-contact-box::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--color-brass);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform var(--transition-base);
}

.euf-contact-box:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: var(--color-brass);
    color: var(--color-ink);
}

.euf-contact-box:hover::before {
    transform: scaleX(1);
}

.euf-contact-box__icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--color-brass);
    color: var(--color-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
    flex-shrink: 0;
}

.euf-contact-box__label {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--color-brass);
    margin: 0;
}

.euf-contact-box__value {
    font-family: var(--font-sans);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-ink);
    margin: 0;
    word-break: break-word;
}

.euf-contact-box__sub {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    margin: 0;
}

.euf-contact-box__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    text-indent: -9999px;
    overflow: hidden;
}

@media (max-width: 768px) {
    .euf-contact-grid { grid-template-columns: 1fr; }
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 22 — Contact layout 1 colonna (telefono gigante centrale)
 * ════════════════════════════════════════════════════════════════════ */

.euf-contact-hero {
    background: var(--color-ink);
    color: var(--color-cream);
    padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 4vw, 3rem);
    border-radius: var(--radius-md);
    text-align: center;
    margin: 2rem 0;
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(184, 144, 46, 0.25);
}

.euf-contact-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('../img/decorative/pattern-lines.svg');
    background-size: 80px 80px;
    opacity: 0.3;
    pointer-events: none;
}

.euf-contact-hero__inner {
    position: relative;
    z-index: 1;
    max-width: 720px;
    margin: 0 auto;
}

.euf-contact-hero__eyebrow {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.25em;
    color: var(--color-brass);
    margin: 0 0 1rem;
}

.euf-contact-hero__phone {
    font-family: var(--font-sans);
    font-size: clamp(2.5rem, 7vw, 4.5rem);
    font-weight: 700;
    color: var(--color-brass);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    line-height: 1;
    margin: 1rem 0;
    letter-spacing: -0.01em;
    transition: color var(--transition-fast);
}

.euf-contact-hero__phone::before {
    content: '✆';
    font-size: 0.7em;
    opacity: 0.85;
}

.euf-contact-hero__phone:hover {
    color: var(--color-cream);
}

.euf-contact-hero__sub {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 1.25rem;
    color: rgba(244, 239, 230, 0.78);
    margin: 1rem 0 2rem;
}

.euf-contact-hero__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.5rem;
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 23 — Info cards (orari, raggio, pagamenti)
 * ════════════════════════════════════════════════════════════════════ */

.euf-info-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin: 2rem 0;
}

.euf-info-card {
    background: var(--color-cream);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 1.5rem 1.5rem 1.25rem;
    text-align: left;
    border-top: 3px solid var(--color-brass);
}

.euf-info-card__label {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--color-brass);
    margin: 0 0 0.5rem;
    display: block;
}

.euf-info-card__title {
    font-family: var(--font-serif);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--color-ink);
    margin: 0 0 0.5rem;
    line-height: 1.25;
}

.euf-info-card__body {
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--color-text-muted);
    margin: 0;
}

@media (max-width: 800px) {
    .euf-info-cards { grid-template-columns: 1fr; }
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 24 — Map wrapper Google Maps embed (solo Contatti)
 * ════════════════════════════════════════════════════════════════════ */

.euf-map {
    position: relative;
    width: 100%;
    aspect-ratio: 16/9;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    margin: 2rem 0;
    background: var(--color-cream-dark);
    border: 1px solid var(--color-border);
}

.euf-map iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

.euf-map__caption {
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    text-align: center;
    margin: 0.75rem 0 0;
    font-style: italic;
}


/* ════════════════════════════════════════════════════════════════════
 * BLOCCO 25 — Sticky bottom mobile CTA (Chiama + WhatsApp)
 * ════════════════════════════════════════════════════════════════════ */

.euf-sticky-cta {
    display: none;
}

@media (max-width: 768px) {
    .euf-sticky-cta {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 90;
        background: var(--color-ink);
        border-top: 1px solid rgba(184, 144, 46, 0.3);
        box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.15);
    }

    .euf-sticky-cta__btn {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        padding: 0.875rem 0.5rem;
        font-family: var(--font-sans);
        font-size: 0.9375rem;
        font-weight: 700;
        text-decoration: none;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        line-height: 1.2;
        transition: background var(--transition-fast);
    }

    .euf-sticky-cta__btn--phone {
        background: var(--color-brass);
        color: var(--color-ink);
    }

    .euf-sticky-cta__btn--phone:hover {
        background: var(--color-brass-dark);
        color: var(--color-ink);
    }

    .euf-sticky-cta__btn--whatsapp {
        background: var(--color-success);
        color: var(--color-cream);
    }

    .euf-sticky-cta__btn--whatsapp:hover {
        background: var(--color-success-dark);
        color: var(--color-cream);
    }

    .euf-sticky-cta__btn::before {
        font-size: 1.1em;
    }

    .euf-sticky-cta__btn--phone::before { content: '✆'; }
    .euf-sticky-cta__btn--whatsapp::before { content: '✉'; }

    /* Padding bottom su body per non far coprire il contenuto */
    body {
        padding-bottom: 64px;
    }
}


/* ════════════════════════════════════════════════════════════════════
 * UTILITY DI SUPPORTO (margine/padding helper riusabili)
 * ════════════════════════════════════════════════════════════════════ */

.euf-mt-0 { margin-top: 0 !important; }
.euf-mt-md { margin-top: var(--space-md) !important; }
.euf-mt-lg { margin-top: var(--space-lg) !important; }
.euf-mt-xl { margin-top: var(--space-xl) !important; }
.euf-mb-0 { margin-bottom: 0 !important; }
.euf-text-center { text-align: center; }


/* ==============================================================
   CSS MASS-GEN ARTICOLI servicesos.net
   ==============================================================
   File: assets/css/fixes.css del child theme (appendere alla fine)
   Versione: 1.0 - 19 maggio 2026
   
   Stili per articoli di categoria "Zone servite" generati dal
   batch mass-gen Python. Prefisso BEM: .ssn-*
   ============================================================== */


/* ─── 1. Immagine inline articolo ──────────────────────────── */

.ssn-img-articolo {
    float: right;
    max-width: 45%;
    margin: 0 0 1.5rem 1.5rem;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    height: auto;
}

@media (max-width: 1024px) {
    .ssn-img-articolo {
        max-width: 40%;
    }
}

@media (max-width: 768px) {
    .ssn-img-articolo {
        float: none;
        display: block;
        max-width: 100%;
        margin: 1rem auto;
    }
}


/* ─── 2. Check-list custom (Sezione Servizio variante A) ──── */

.ssn-check-list {
    list-style: none;
    padding-left: 0;
    margin: 1.5rem 0;
}

.ssn-check-list li {
    position: relative;
    padding-left: 2rem;
    margin-bottom: 0.8rem;
    line-height: 1.6;
}

.ssn-check-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.3em;
    width: 20px;
    height: 20px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c89860' stroke-width='3'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center;
    background-size: contain;
}


/* ─── 3. Cases box (Sezione Servizio variante B) ──────────── */

.ssn-cases {
    display: grid;
    gap: 1rem;
    margin: 1.5rem 0;
}

.ssn-case {
    padding: 1rem 1.25rem;
    background: #f7f4ee;
    border-left: 3px solid #c89860;
    border-radius: 0 4px 4px 0;
    line-height: 1.6;
}

.ssn-case strong {
    color: #1a1a1a;
    margin-right: 0.3rem;
}


/* ─── 4. Compare table (Sezione Servizio variante C) ──────── */

.ssn-compare {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

.ssn-compare thead {
    background: #1a1a1a;
    color: #fff;
}

.ssn-compare th,
.ssn-compare td {
    padding: 0.85rem 1rem;
    text-align: left;
    border-bottom: 1px solid #e5e1d8;
}

.ssn-compare th {
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.85rem;
    letter-spacing: 0.05em;
}

.ssn-compare tbody tr:nth-child(even) {
    background: #faf8f3;
}

.ssn-compare td:last-child {
    font-weight: 600;
    color: #b8843a;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .ssn-compare {
        font-size: 0.9rem;
    }
    .ssn-compare th,
    .ssn-compare td {
        padding: 0.6rem 0.5rem;
    }
}


/* ─── 5. Timeline processo (Sezione Processo variante A) ──── */

.ssn-timeline {
    list-style: none;
    padding-left: 0;
    margin: 1.5rem 0;
    counter-reset: timeline;
    position: relative;
}

.ssn-timeline::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: #c89860;
    opacity: 0.4;
}

.ssn-timeline li {
    position: relative;
    padding-left: 2.5rem;
    margin-bottom: 1.25rem;
    counter-increment: timeline;
}

.ssn-timeline li::before {
    content: counter(timeline);
    position: absolute;
    left: 0;
    top: 0;
    width: 30px;
    height: 30px;
    background: #c89860;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
}

.ssn-timeline li strong {
    display: block;
    margin-bottom: 0.25rem;
    color: #1a1a1a;
}


/* ─── 6. Bullet list bonus (Sezione Bonus varianti A e B) ──── */

.ssn-bullets {
    list-style: none;
    padding-left: 0;
    margin: 1.25rem 0;
}

.ssn-bullets li {
    padding: 0.75rem 1rem;
    margin-bottom: 0.6rem;
    background: linear-gradient(90deg, #f7f4ee 0%, #fff 100%);
    border-left: 3px solid #c89860;
    border-radius: 0 4px 4px 0;
}

.ssn-bullets li strong {
    color: #b8843a;
    margin-right: 0.5rem;
}


/* ─── 7. Internal linking box ──────────────────────────────── */

.ssn-internal-links {
    margin: 2rem 0;
    padding: 1.25rem 1.5rem;
    background: #faf8f3;
    border-radius: 6px;
    border: 1px solid #e5e1d8;
}

.ssn-internal-links h3 {
    margin: 0 0 0.75rem;
    font-size: 1.05rem;
    color: #1a1a1a;
}

.ssn-internal-links ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.ssn-internal-links li {
    margin-bottom: 0.4rem;
}

.ssn-internal-links a {
    color: #b8843a;
    text-decoration: none;
    font-weight: 500;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
}

.ssn-internal-links a:hover {
    border-bottom-color: #b8843a;
}


/* ─── 8. FAQ accordion (Sezione FAQ) ───────────────────────── */

.ssn-faq {
    margin: 1.5rem 0;
}

.ssn-faq details {
    margin-bottom: 0.75rem;
    padding: 0;
    background: #fff;
    border: 1px solid #e5e1d8;
    border-radius: 6px;
    overflow: hidden;
    transition: box-shadow 0.2s;
}

.ssn-faq details[open] {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.ssn-faq summary {
    padding: 1rem 1.25rem;
    cursor: pointer;
    font-weight: 600;
    color: #1a1a1a;
    position: relative;
    list-style: none;
    transition: background 0.2s;
}

.ssn-faq summary::-webkit-details-marker { display: none; }
.ssn-faq summary::marker { content: ""; }

.ssn-faq summary::after {
    content: "+";
    position: absolute;
    right: 1.25rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.5rem;
    color: #c89860;
    font-weight: 300;
    line-height: 1;
    transition: transform 0.2s;
}

.ssn-faq details[open] summary::after {
    content: "−";
}

.ssn-faq summary:hover {
    background: #faf8f3;
}

.ssn-faq details p {
    padding: 0 1.25rem 1rem;
    margin: 0;
    line-height: 1.65;
    color: #4a4a4a;
}


/* ─── 9. CTA block ─────────────────────────────────────────── */

.ssn-cta-block {
    margin: 2rem 0;
    padding: 2rem 1.75rem;
    border-radius: 8px;
    text-align: center;
}

.ssn-cta-block h2 {
    margin: 0 0 1rem;
    font-size: 1.5rem;
}

.ssn-cta-block p,
.ssn-cta-block ol,
.ssn-cta-block li {
    line-height: 1.6;
}

.ssn-cta-block ol {
    text-align: left;
    max-width: 500px;
    margin: 1rem auto 1.5rem;
    padding-left: 1.5rem;
}

.ssn-cta-block--dark {
    background: #1a1a1a;
    color: #fff;
}

.ssn-cta-block--dark h2 { color: #fff; }
.ssn-cta-block--dark p,
.ssn-cta-block--dark li { color: #e5e1d8; }

.ssn-cta-block--gold {
    background: linear-gradient(135deg, #c89860 0%, #b8843a 100%);
    color: #fff;
}

.ssn-cta-block--gold h2 { color: #fff; }
.ssn-cta-block--gold p,
.ssn-cta-block--gold li { color: rgba(255, 255, 255, 0.95); }

.ssn-cta-block--cream {
    background: #f7f4ee;
    border: 1px solid #e5e1d8;
    color: #1a1a1a;
}

.ssn-cta-block--cream h2 { color: #1a1a1a; }


/* CTA buttons */
.ssn-cta-buttons {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 1.25rem;
}

.ssn-btn {
    display: inline-block;
    padding: 0.85rem 1.5rem;
    border-radius: 6px;
    font-weight: 600;
    text-decoration: none !important;
    border: 2px solid transparent;
    transition: all 0.2s;
    line-height: 1.2;
    text-align: center;
    min-width: 200px;
}

.ssn-btn--primary {
    background: #c89860;
    color: #fff !important;
    border-color: #c89860;
}

.ssn-btn--primary:hover {
    background: #b8843a;
    border-color: #b8843a;
    transform: translateY(-1px);
}

.ssn-btn--secondary {
    background: transparent;
    color: #c89860 !important;
    border-color: #c89860;
}

.ssn-cta-block--dark .ssn-btn--secondary {
    color: #c89860 !important;
    border-color: #c89860;
}

.ssn-btn--secondary:hover {
    background: #c89860;
    color: #fff !important;
}

@media (max-width: 540px) {
    .ssn-cta-buttons {
        flex-direction: column;
    }
    .ssn-btn {
        width: 100%;
    }
}


/* ─── 10. Clearfix per articoli con float image ───────────── */

article.category-zone-servite .entry-content::after,
.single-post.category-zone-servite .entry-content::after {
    content: "";
    display: table;
    clear: both;
}


/* ─── 11. Tipografia articoli mass-gen ────────────────────── */

article.category-zone-servite h1,
.single-post.category-zone-servite .entry-content h1 {
    line-height: 1.2;
    margin-bottom: 1.5rem;
}

article.category-zone-servite h2,
.single-post.category-zone-servite .entry-content h2 {
    margin-top: 2rem;
    margin-bottom: 0.75rem;
    line-height: 1.3;
}

article.category-zone-servite p,
.single-post.category-zone-servite .entry-content p {
    line-height: 1.7;
    margin-bottom: 1rem;
}


/* FINE CSS MASS-GEN servicesos.net */

/* ==============================================================
   FIX articoli zone-servite — layout + meta nascosti
   Aggiunto: 2026-05-19 fix v1.1
   ============================================================== */

/* Container max-width per articoli mass-gen — coerente con pagine pillar */
body.single-post.category-zone-servite #content,
body.single-post.category-zone-servite #main,
body.single-post.category-zone-servite .site-content,
body.single-post.category-zone-servite article.post,
body.single-post.category-zone-servite .entry-content {
    max-width: var(--container-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: clamp(1rem, 4vw, 2rem);
    padding-right: clamp(1rem, 4vw, 2rem);
    box-sizing: border-box;
}

body.single-post.category-zone-servite .entry-content > * {
    max-width: none;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Nasconde meta autore/data/categoria/tag/modifica di Accelerate */
body.single-post.category-zone-servite .post-meta,
body.single-post.category-zone-servite .entry-meta,
body.single-post.category-zone-servite .entry-footer,
body.single-post.category-zone-servite .post-info,
body.single-post.category-zone-servite .byline,
body.single-post.category-zone-servite .posted-on,
body.single-post.category-zone-servite .cat-links,
body.single-post.category-zone-servite .tags-links,
body.single-post.category-zone-servite .author-info,
body.single-post.category-zone-servite .edit-link,
body.single-post.category-zone-servite .meta-info {
    display: none !important;
}

/* Nasconde anche la sezione "Articoli correlati / Post navigation" di Accelerate */
body.single-post.category-zone-servite .post-navigation,
body.single-post.category-zone-servite .related-posts,
body.single-post.category-zone-servite .nav-links,
body.single-post.category-zone-servite #comments,
body.single-post.category-zone-servite .comments-area {
    display: none !important;
}

/* Padding-top respiro sopra H1 (era attaccato all'header) */
body.single-post.category-zone-servite #content {
    padding-top: clamp(2rem, 5vw, 3rem) !important;
}

/* Spazio bottom per non far attaccare CTA al footer */
body.single-post.category-zone-servite #content {
    padding-bottom: clamp(2rem, 4vw, 3rem) !important;
}

/* FINE FIX zone-servite v1.1 */

/* ==============================================================
   FIX articoli zone-servite v3 — selettori verificati su tema Accelerate
   Sostituisce le regole v2 (mantieni v2, va in cascata sopra)
   ============================================================== */

/* Nasconde meta div + tutti gli span figli sui post categoria zone-servite */
body.single-post .entry-meta,
body.single-post .entry-meta .byline,
body.single-post .entry-meta .cat-links,
body.single-post .entry-meta .posted-on,
body.single-post .entry-meta .tag-links,
body.single-post .entry-meta .edit-link,
body.single-post .entry-meta .sep {
    display: none !important;
}

/* Nasconde anche la navigazione "Articolo precedente/successivo" del tema */
body.single-post .default-wp-page,
body.single-post ul.default-wp-page {
    display: none !important;
}

/* Nasconde sidebar Accelerate (se attiva) */
body.single-post.no-sidebar-full-width #secondary {
    display: none !important;
}

/* Nasconde H1 duplicato dentro entry-content (tema già stampa entry-title) */
body.single-post .entry-content > h1:first-child {
    display: none !important;
}

/* Padding/margin entry-content per spazio dopo titolo */
body.single-post .entry-content {
    padding-top: 1rem;
}

/* FINE FIX v3 */