/*!
Theme Name:   Extendable iaFlux Child
Theme URI:    https://iaflux.it/
Description:  child theme Fase 1 iaFlux 2.0 — parità visiva, presentazione su filesystem.
Author:       iaFlux Studio
Author URI:   https://iaflux.it/
Template:     extendable
Version:      1.0.0
Requires at least: 6.5
Tested up to: 6.x
Requires PHP: 7.4
Text Domain:  extendable-iaflux-child
License:      GPL-2.0-or-later
*/

/* =============================================================================
   ORDINE FILE = cascade renderizzata pre-switch (vedi specs/03-css-port-map.md §2).
   Priority wp_head crescente; Additional CSS (snippet-08) per ultimo.

     1) fase6/02  blog typography        (wp_head 15)
     2) fase6/03  card shape restore      (wp_head 20)
     3) snippet-73 Fase 5g design fixes   (wp_head 99)
     4) snippet-43 hero + CTA polish      (wp_head 100)
     5) fase6/01  color unification       (wp_head 100)
     6) snippet-44 pages typography       (wp_head 200)
     7) snippet-08 Additional CSS         (Customizer, ultimo)

   CASCADE GUARANTEE (red-team P0-3 LOCKED): questo file è enqueued in
   functions.php con dipendenza dall'handle 'global-styles' E priority 99 su
   wp_enqueue_scripts (doppia garanzia ordine) → esce DOPO il
   global-styles-inline-css di core, replicando l'ordine di emissione wp_head
   degli snippet originali. Gli !important sottostanti sono ESATTAMENTE quelli
   dei sorgenti (parità SACRA): nessuno aggiunto, nessuno rimosso.

   RADIUS (LOCKED A1): gli unici 2 usi di var radius (snippet-43, CTA primary +
   secondary) sono riscritti dal nome errato `--wp--custom--iaflux-radius--lg`
   (mai emesso, risolveva al fallback 24px) al nome deciso da A1 in theme.json
   settings.custom.radius: `var(--wp--custom--radius--lg, 24px)` (= 24px).
   Resa identica. I border-radius 24px/12px hardcoded di fase6/03 restano
   letterali per parità (tokenizzazione = Fase 2, NON ora).
   ============================================================================= */


/* =============================================================================
   1) BLOG TYPOGRAPHY BRAND — ex fase6/02 (wp_head 15)
   ============================================================================= */

/* FIX 1 — Override inline color:#0e0e0e hardcoded nel loop → --iaflux-ink */
.wp-block-post-title[style*="color:#0e0e0e"],
.wp-block-post-title[style*="color: #0e0e0e"],
.wp-block-post-title a[style*="color:#0e0e0e"],
.wp-block-post-title a[style*="color: #0e0e0e"],
.wp-block-post-title,
.wp-block-post-title a {
    color: var(--iaflux-ink, #0b1f2a) !important; /* override: #0e0e0e non-brand → ink brand */
}

/* FIX 2 — Hover brand globale su link titoli loop */
.wp-block-post-title a {
    text-decoration: none;
    transition: color .25s cubic-bezier(.2,.8,.2,1),
                text-decoration-color .25s ease;
}
.wp-block-post-title a:hover {
    color: var(--iaflux-accent-primary, #1fefa8) !important; /* override: hover brand accent */
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .22em;
    text-decoration-color: var(--iaflux-accent-primary, #1fefa8);
}
.wp-block-post-title a:active {
    color: var(--iaflux-accent, #00e6a7) !important;
}
.wp-block-post-title a:focus-visible {
    color: var(--iaflux-accent-primary, #1fefa8) !important;
    outline: 2px solid var(--iaflux-accent-primary, #1fefa8);
    outline-offset: 3px;
    border-radius: 2px;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .22em;
}

/* FIX 3 — H1 post singolo: size/weight superiori con clamp */
.wp-block-post-title.has-x-large-font-size,
body.single-post .entry-title,
body.single-post .wp-block-post-title,
.single-post .wp-block-post-title,
.single .wp-block-post-title {
    font-size: clamp(30px, 5vw, 60px) !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.02em !important;
    color: var(--iaflux-ink, #0b1f2a) !important;
}

/* FIX 4 — Unifica H1 post e H2 loop su --iaflux-ink (rimuove preset foreground #010101) */
body.single-post .has-foreground-color,
.single-post .has-foreground-color {
    color: var(--iaflux-ink, #0b1f2a) !important; /* override: preset foreground #010101 → ink brand */
}

/* FIX 5 — Differenzia gerarchia H1 (singolo) vs H2 (loop) */
/* H2 nel loop blog — x-large, 600 */
.wp-block-post-template .wp-block-post-title,
.wp-block-query .wp-block-post-title {
    font-size: clamp(20px, 3.5vw, 42px) !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.015em !important;
    color: var(--iaflux-ink, #0b1f2a) !important;
}
/* H1 post singolo — sovrascrive il loop se mai usato su single */
body.single-post .wp-block-post-title,
body.single .wp-block-post-title {
    font-size: clamp(30px, 5vw, 60px) !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.02em !important;
}

/* MOBILE — H1 singolo e H2 loop responsive */
@media (max-width: 414px) {
    body.single-post .wp-block-post-title,
    body.single .wp-block-post-title {
        font-size: clamp(26px, 7.5vw, 36px) !important;
        letter-spacing: -0.01em !important;
    }
    .wp-block-post-template .wp-block-post-title,
    .wp-block-query .wp-block-post-title {
        font-size: clamp(18px, 5.5vw, 28px) !important;
    }
}

/* ACCESSIBILITY */
@media (prefers-reduced-motion: reduce) {
    .wp-block-post-title a {
        transition: none !important;
    }
}


/* =============================================================================
   2) CARD SHAPE RESTORE — ex fase6/03 (wp_head 20)
   Nota: border-radius 24px / 12px HARDCODED (non var) — preservati per parità.
   Candidato Fase 2 a var(--wp--custom--radius--lg|md). NON toccare in Fase 1.
   ============================================================================= */

/* RESTORE — .iaflux-card forma/bordi/shadow canonici */
.iaflux-card,
.wp-block-group.iaflux-card {
    border-radius: 24px !important; /* override: restore dopo snippet 89 body{} preset override */
    overflow: hidden;
    box-shadow:
        0 12px 30px rgba(0,0,0,0.10),
        0 0 14px rgba(0,230,167,0.22);
}

/* RESTORE — iaflux-service-card forma/bordi canonici */
.iaflux-service-card,
.wp-block-group.iaflux-service-card {
    border-radius: 24px !important;
    overflow: hidden;
}

/* RESTORE — card Extendable (blog loop) */
.is-style-ext-preset--group--natural-1--item-card-1--align-start,
.wp-block-group.is-style-ext-preset--group--natural-1--item-card-1--align-start {
    border-radius: 12px;
    overflow: hidden;
}

/* SAFETY — ripristina has-secondary-background-color (Extendable #e3f2f2) */
:root {
    --wp--preset--color--secondary: #e3f2f2; /* ripristino valore Extendable originale */
    --wp--preset--color--tertiary: #ffeae6;  /* ripristino valore Extendable originale */
}

/* SAFETY — has-secondary/tertiary-background-color esplicito */
.has-secondary-background-color {
    background-color: var(--wp--preset--color--secondary, #e3f2f2) !important;
}
.has-tertiary-background-color {
    background-color: var(--wp--preset--color--tertiary, #ffeae6) !important;
}

/* RESTORE — hover lift card */
@media (hover: hover) {
    .iaflux-card:hover,
    .wp-block-group.iaflux-card:hover {
        transform: translateY(-8px);
        box-shadow:
            0 26px 55px rgba(0,0,0,0.25),
            0 0 20px rgba(0,230,167,0.30);
        transition: transform .35s ease, box-shadow .35s ease;
    }
}

/* ACCESSIBILITY */
@media (prefers-reduced-motion: reduce) {
    .iaflux-card,
    .iaflux-service-card {
        transition: none !important;
    }
    .iaflux-card:hover,
    .iaflux-service-card:hover {
        transform: none !important;
    }
}


/* =============================================================================
   3) FASE 5g — HOMEPAGE DESIGN FIXES (3 P0) — ex snippet-73 (wp_head 99)
   ============================================================================= */

/* P0-1 SCROLL-HOLE: reset margin eccessivi iaflux-section-glow */
.iaflux-section-glow {
    margin-top: 48px !important;
    margin-bottom: 48px !important;
    min-height: auto !important;
}

/* Rimuove min-height su inner card se il contenuto non lo richiede (mobile anyway) */
@media (max-width: 781px) {
    .iaflux-card {
        min-height: auto !important;
    }
}

/* P0-2 CARD PILLARS OVERFLOW: heading responsive + word-break */
.iaflux-card .wp-block-heading,
.iaflux-card h2,
.iaflux-card h3,
.iaflux-card h4 {
    letter-spacing: 0.02em !important;
    word-break: break-word;
    overflow-wrap: anywhere;
    hyphens: manual;
    text-wrap: balance;
    font-size: clamp(1rem, 1.6vw + 0.4rem, 1.5rem) !important;
    line-height: 1.25 !important;
}

/* P0-3 CHECKMARK CONTRAST WCAG AA — inline color:#bfc7c5 → #0b1f2a */
p[style*="#bfc7c5"],
p[style*="color:#bfc7c5"],
p[style*="color: #bfc7c5"] {
    color: #0b1f2a !important;
}
.wp-block-group.has-background-background-color p[style*="#bfc7c5"] {
    color: #0b1f2a !important;
}

/* BONUS: pillars section respira meglio desktop */
@media (min-width: 1024px) {
    .iaflux-card {
        padding: 40px 32px !important;
    }
    .iaflux-card .wp-block-heading {
        margin-bottom: 16px !important;
    }
}


/* =============================================================================
   4) HERO + CTA POLISH — ex snippet-43 (wp_head 100)
   Scope homepage via body.home / body.page-id-25 (ex gate is_front_page()).
   RADIUS RE-MAP applicato: --wp--custom--radius--lg (era --wp--custom--iaflux-radius--lg).
   ============================================================================= */

/* Typography safety IT */
html[lang^="it"] .wp-block-heading,
.wp-block-heading:lang(it){
    hyphens: manual !important;
    -webkit-hyphens: manual !important;
    word-break: normal !important;
    overflow-wrap: break-word;
}

/* H1 homepage hero reset + fluid */
body.home .wp-block-heading.has-text-align-left.has-inter-font-family,
body.page-id-25 h1.wp-block-heading{
    text-transform: none !important;
    hyphens: manual !important;
    -webkit-hyphens: manual !important;
    text-wrap: pretty;
    letter-spacing: -0.015em;
    line-height: 1.1;
    font-size: clamp(26px, 6.8vw, 48px);
    font-variation-settings: "wght" 650;
    color: var(--wp--preset--color--iaflux-ink-deep);
    margin-block-end: var(--wp--preset--spacing--iaflux-xl);
}

/* H2 all-caps neutralizer homepage */
body.home h2.wp-block-heading[style*="uppercase"],
body.home h2.wp-block-heading.has-text-transform-uppercase,
body.page-id-25 h2.wp-block-heading{
    text-transform: none !important;
    letter-spacing: -0.01em;
    text-wrap: pretty;
    hyphens: manual !important;
}

/* H2 fallback quando uppercase non rimovibile */
body.home h2.wp-block-heading[style*="text-transform: uppercase" i]{
    letter-spacing: 0.12em !important;
    font-size: 0.75em !important;
}

/* CTA primary → /contatti */
body.home .wp-block-button__link[href="/contatti"],
body.home .wp-block-button__link[href$="/contatti/"],
body.home .wp-block-button__link[href*="/contatti"]{
    background: var(--wp--preset--color--iaflux-accent-primary) !important;
    color: var(--wp--preset--color--iaflux-ink-deep) !important;
    padding: 16px 28px;
    border-radius: var(--wp--custom--radius--lg, 24px); /* re-map A1: era --wp--custom--iaflux-radius--lg */
    border: 0;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.2;
    min-height: 44px;
    text-decoration: none;
    transition: transform 200ms cubic-bezier(.2,.8,.2,1),
                background 200ms cubic-bezier(.2,.8,.2,1),
                filter 200ms cubic-bezier(.2,.8,.2,1);
    will-change: transform;
}

/* CTA primary hover + focus */
body.home .wp-block-button__link[href*="/contatti"]:hover,
body.home .wp-block-button__link[href*="/contatti"]:focus-visible{
    transform: translateY(-2px);
    filter: brightness(1.06);
}

body.home .wp-block-button__link[href*="/contatti"]:focus-visible{
    outline: 3px solid var(--wp--preset--color--iaflux-accent-primary);
    outline-offset: 4px;
}

/* CTA secondary → tutti gli altri button */
body.home .wp-block-button__link:not([href*="/contatti"]){
    background: transparent !important;
    color: var(--wp--preset--color--iaflux-ink-deep) !important;
    border: 1px solid rgba(191, 199, 197, 0.4);
    border-radius: var(--wp--custom--radius--lg, 24px); /* re-map A1: era --wp--custom--iaflux-radius--lg */
    padding: 16px 28px;
    font-weight: 500;
    min-height: 44px;
    transition: border-color 200ms cubic-bezier(.2,.8,.2,1),
                background 200ms cubic-bezier(.2,.8,.2,1);
}

body.home .wp-block-button__link:not([href*="/contatti"]):hover,
body.home .wp-block-button__link:not([href*="/contatti"]):focus-visible{
    border-color: var(--wp--preset--color--iaflux-accent-primary);
    background: rgba(31, 239, 168, 0.06) !important;
}

body.home .wp-block-button__link:not([href*="/contatti"]):focus-visible{
    outline: 2px solid var(--wp--preset--color--iaflux-accent-primary);
    outline-offset: 3px;
}

/* Tablet */
@media (min-width: 768px){
    body.home .wp-block-heading.has-text-align-left.has-inter-font-family,
    body.page-id-25 h1.wp-block-heading{
        font-size: clamp(36px, 5.5vw, 56px);
        line-height: 1.08;
        font-variation-settings: "wght" 680;
    }
    body.home .wp-block-button__link[href*="/contatti"],
    body.home .wp-block-button__link:not([href*="/contatti"]){
        padding: 17px 32px;
    }
}

/* Desktop */
@media (min-width: 1024px){
    body.home .wp-block-heading.has-text-align-left.has-inter-font-family,
    body.page-id-25 h1.wp-block-heading{
        font-size: clamp(44px, 4.2vw, 64px);
        line-height: 1.05;
        letter-spacing: -0.02em;
        font-variation-settings: "wght" 700;
        margin-block-end: var(--wp--preset--spacing--iaflux-2xl);
    }
    body.home .wp-block-button__link[href*="/contatti"],
    body.home .wp-block-button__link:not([href*="/contatti"]){
        padding: 18px 36px;
        font-size: 1.0625rem;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
    body.home .wp-block-button__link,
    body.home .wp-block-button__link[href*="/contatti"]{
        transition: none !important;
        transform: none !important;
    }
    body.home .wp-block-button__link[href*="/contatti"]:hover{
        transform: none !important;
    }
}


/* =============================================================================
   5) COLOR SYSTEM UNIFICATION — ex fase6/01 (wp_head 100)
   Nota: il body{--wp--preset--color--secondary:#0b1f2a} qui sotto è
   intenzionalmente ri-ripristinato a #e3f2f2 dal blocco card-restore (sez. 2)
   via :root + selettori .has-*-background-color !important. NON consolidare in Fase 1.
   ============================================================================= */

:root {
    /* Light mode tokens (nuovi) */
    --iaflux-bg-light: #f5f7f8;
    --iaflux-bg-light-pure: #ffffff;
    --iaflux-text-body-light: #0b1f2a;
    --iaflux-text-muted-light: #4a5c66;
    --iaflux-border-light: #e6e8ec;
    --iaflux-link-light: #1fefa8;
    /* Dark mode tokens (gia esistenti ma ri-esposti per doc) */
    --iaflux-ink: #0b1f2a;
    --iaflux-ink-deep: #0b0f2a;
    --iaflux-accent-primary: #1fefa8;
    --iaflux-accent: #00e6a7;
    --iaflux-text-primary: #fefefe;
    --iaflux-text-secondary: #b6c2cf;
}

/* D2 — Normalizza 4 grigi non-brand su fondo chiaro */
body:not(.home) p,
body:not(.home) li,
body:not(.home) .wp-block-post-content p,
body:not(.home) .entry-content p,
body:not(.home) article p {
    color: var(--iaflux-text-body-light) !important; /* override: #444 #313131 #394859 #6b7280 */
}

/* Override selettori specifici che emettono grigi hardcoded */
body:not(.home) [style*="color:#444"],
body:not(.home) [style*="color: #444"],
body:not(.home) [style*="color:#313131"],
body:not(.home) [style*="color: #313131"],
body:not(.home) [style*="color:#394859"],
body:not(.home) [style*="color: #394859"],
body:not(.home) [style*="color:#6b7280"],
body:not(.home) [style*="color: #6b7280"] {
    color: var(--iaflux-text-body-light) !important; /* override: hardcoded grigi inline */
}

/* D3 — Mappa #00e676 spurio → accent primary */
[style*="color:#00e676"],
[style*="color: #00e676"],
[style*="background-color:#00e676"],
[style*="background-color: #00e676"],
.has-vivid-green-cyan-color { color: var(--iaflux-accent-primary) !important; }
.has-vivid-green-cyan-background-color { background-color: var(--iaflux-accent-primary) !important; }

/* D4 — Disabilita preset Extendable cross-site (rosso primary, secondary, tertiary) */
.has-primary-color { color: var(--iaflux-accent-primary) !important; }
.has-primary-background-color { background-color: var(--iaflux-ink-deep) !important; }
.has-secondary-color { color: var(--iaflux-text-muted-light) !important; }
.has-secondary-background-color { background-color: var(--iaflux-bg-light) !important; }
.has-tertiary-color { color: var(--iaflux-text-body-light) !important; }
.has-tertiary-background-color { background-color: var(--iaflux-bg-light) !important; }

/* Override WP CSS custom properties direttamente */
body {
    --wp--preset--color--primary: #1fefa8;
    --wp--preset--color--secondary: #0b1f2a;
    --wp--preset--color--tertiary: #4a5c66;
}

/* D5 — Contrast fix #bfc7c5 su chiaro GLOBALE (non solo home) */
[style*="color:#bfc7c5"],
[style*="color: #bfc7c5"],
[style*="color:#BFC7C5"] {
    color: var(--iaflux-text-body-light) !important; /* override: contrast fail su fondo chiaro */
}

/* D6 — Unifica double-light background */
[style*="background-color:#f5f7f6"],
[style*="background-color: #f5f7f6"] {
    background-color: var(--iaflux-bg-light) !important; /* override: f5f7f6 → f5f7f8 2-unit green diff */
}

/* Bordi light interni */
body:not(.home) .wp-block-separator,
body:not(.home) hr {
    border-color: var(--iaflux-border-light) !important;
}

/* Link su fondo chiaro → accent brand (evita blue Gutenberg #007cba) */
body:not(.home) a:not(.wp-block-button__link):not(.has-accent-color):not([class*="iaflux-cta"]) {
    color: var(--iaflux-link-light);
}
body:not(.home) a:not(.wp-block-button__link):not(.has-accent-color):not([class*="iaflux-cta"]):hover {
    color: var(--iaflux-accent);
}


/* =============================================================================
   6) PAGES TYPOGRAPHY OVERRIDE — ex snippet-44 (wp_head 200)
   ============================================================================= */

/* Reset theme uppercase su tutte le pagine (homepage + interne) */
.wp-site-blocks main h1,
.wp-site-blocks main h2,
.wp-site-blocks main h3,
.wp-block-post-content h1,
.wp-block-post-content h2,
.wp-block-post-content h3,
main h1.wp-block-heading,
main h2.wp-block-heading,
main h3.wp-block-heading,
article h1.wp-block-heading,
article h2.wp-block-heading,
article h3.wp-block-heading {
    text-transform: none !important;
    hyphens: manual !important;
    -webkit-hyphens: manual !important;
    text-wrap: pretty;
}

/* Eccezione: kicker label + paragrafi uppercase inline tengono il loro setting */
.iaflux-kpi-kicker,
.iaflux-testimonials h3,
[style*="uppercase"],
[style*="letter-spacing:0.12em"],
[style*="letter-spacing: 0.12em"],
[style*="letter-spacing:0.04em"],
[style*="letter-spacing: 0.04em"] {
    text-transform: uppercase !important;
}

/* Service cards hover lift */
.iaflux-service-card {
    transition: transform 220ms cubic-bezier(.2,.8,.2,1), box-shadow 220ms;
}
.iaflux-service-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 24px -8px rgba(11, 15, 42, 0.08);
}
@media (prefers-reduced-motion: reduce) {
    .iaflux-service-card { transition: none; }
    .iaflux-service-card:hover { transform: none; box-shadow: none; }
}

/* Details/summary polish per FAQ */
.wp-block-details summary {
    cursor: pointer;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -0.005em;
    list-style: none;
    position: relative;
    padding-right: 32px;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    font-weight: 300;
    color: #1fefa8;
    line-height: 1;
    transition: transform 200ms;
}
.wp-block-details[open] summary::after {
    content: "\2212";
    transform: translateY(-50%) rotate(0deg);
}
.wp-block-details[open] summary {
    margin-bottom: 12px;
}


/* =============================================================================
   7) FRONTEND FIXES (8 fix) — ex snippet-08 (Additional CSS Customizer, ULTIMO)
   Posto in coda per replicare la vittoria di cascade dell'Additional CSS.
   ============================================================================= */

/* FIX 1 — Hyphens: disattiva sillabazione automatica su italiano */
html[lang^="it"] .wp-block-heading,
html[lang^="it"] h1,
html[lang^="it"] h2,
html[lang^="it"] h3,
html[lang^="it"] h4,
html[lang^="it"] h5,
html[lang^="it"] h6,
.wp-block-heading:lang(it),
h1:lang(it), h2:lang(it), h3:lang(it),
h4:lang(it), h5:lang(it), h6:lang(it) {
  -webkit-hyphens: manual !important; /* override: Extendable default auto */
  -ms-hyphens: manual !important;
  hyphens: manual !important;
  word-break: normal !important;
  overflow-wrap: break-word;
  -webkit-hyphenate-limit-chars: 999 999 999;
          hyphenate-limit-chars: 999 999 999;
}

/* FIX 2 — Subtitle hero: colore brand + contrasto WCAG AA */
.iaflux-hero p,
.iaflux-hero .iaflux-subtitle,
.iaflux-hero .wp-block-paragraph,
body.home .iaflux-hero > p {
  color: #b6c2cf !important; /* override: stile inline legacy #6B7280 */
}

/* FIX 3 — letter-spacing em-relative sull'hero h1 */
.iaflux-hero h1,
.iaflux-hero h1.wp-block-heading,
body.home .iaflux-hero h1 {
  letter-spacing: -0.02em;
}

/* FIX 4 — CTA hero full-width su mobile */
@media (max-width: 640px) {
  .iaflux-hero .wp-block-button,
  .iaflux-hero .wp-block-buttons,
  .iaflux-hero .wp-block-buttons > .wp-block-button {
    width: 100%;
    max-width: 360px;
    margin-left: auto;
    margin-right: auto;
  }
  .iaflux-hero .wp-block-button__link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    padding-left: 24px;
    padding-right: 24px;
    box-sizing: border-box;
  }
}

/* FIX 5 — Breakpoint gap 768.5px (retina / zoom 110%) */
@media (min-width: 768.01px) and (max-width: 768.99px) {
  .iaflux-hero,
  .iaflux-hero h1,
  .iaflux-hero p,
  .iaflux-hero .wp-block-button__link {
    /* allinea alla regola desktop >=769 per evitare salto layout */
    font-size: inherit;
  }
  body { /* placeholder: previene stacking di regole mobile a 768.5 */
    zoom: 1;
  }
}

/* FIX 6 — Dedup .wp-block-button__link:hover */
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible {
  transition: var(--iaflux-transition-btn, transform 240ms cubic-bezier(.2,.8,.2,1), background-color 240ms cubic-bezier(.2,.8,.2,1), box-shadow 240ms cubic-bezier(.2,.8,.2,1), color 240ms cubic-bezier(.2,.8,.2,1)) !important; /* override: dedup duplicato transition:all .3s ease */
}

/* FIX 7 — text-wrap: balance ristretto a h1, h2 */
.wp-block-heading:is(h3, h4, h5, h6),
h3.wp-block-heading, h4.wp-block-heading,
h5.wp-block-heading, h6.wp-block-heading,
h3, h4, h5, h6 {
  text-wrap: auto;
}
@supports (text-wrap: balance) {
  h1.wp-block-heading,
  h2.wp-block-heading,
  .iaflux-hero h1,
  .iaflux-hero h2 {
    text-wrap: balance;
  }
}
@supports not (text-wrap: balance) {
  h1.wp-block-heading,
  h2.wp-block-heading {
    /* fallback: nessun wrap speciale, comportamento nativo browser */
    text-wrap: auto;
  }
}

/* FIX 8 — will-change sugli elementi animati hero */
.iaflux-hero h1,
.iaflux-hero p,
.iaflux-hero .wp-block-button,
.iaflux-hero .wp-block-button__link {
  will-change: transform, opacity;
}

/* ACCESSIBILITY — prefers-reduced-motion (in coda: vince nella cascade) */
@media (prefers-reduced-motion: reduce) {
  .iaflux-hero h1,
  .iaflux-hero p,
  .iaflux-hero .wp-block-button,
  .iaflux-hero .wp-block-button__link,
  .wp-block-button__link,
  .wp-block-button__link:hover,
  .wp-block-button__link:focus-visible {
    will-change: auto !important;
    transition: none !important; /* override: annulla --iaflux-transition-btn */
    animation: none !important;
  }
}

/* =============================================================================
   END style.css child — parità visiva. @font-face Inter, preload LCP, resource
   hints, logo eager, strip font-family OB (22/62 LOCKED) e strip wp-fonts-local
   parent (snippet-56 p.3) NON sono qui: vivono in functions.php.
   ============================================================================= */


/* =============================================================================
   8) FASE 2 — HERO V2 + MOTION TIER 0 (task 2.7+2.8) — valori: DIRECTION (LOCKED)
   Si anima SOLO transform/translate/opacity — deroga DIRECTION §4 M4/M9:
   box-shadow/filter hover-bounded in 8.5/8.7 (da ratificare nel verdetto 2.9).
   Motion in @media (prefers-reduced-motion: no-preference); scroll-driven anche
   in @supports (animation-timeline: scroll()). Default fuori mq = statico+visibile.
   ============================================================================= */

/* --- 8.1 HERO V2 — geometria + strati (base mesh / drift / grain / contenuto) -- */

.iaflux-hero-v2 {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 560px;
    padding: var(--wp--preset--spacing--iaflux-3xl, 64px) var(--wp--preset--spacing--iaflux-lg, 24px);
    background-color: #0b0f2a;
    background-image:
        radial-gradient(120% 90% at 85% -10%,
            rgba(0,230,167,0.10) 0%,
            rgba(0,230,167,0.045) 32%,
            rgba(11,15,42,0) 62%),
        radial-gradient(90% 70% at 8% 108%,
            rgba(31,239,168,0.07) 0%,
            rgba(31,239,168,0.03) 35%,
            rgba(11,15,42,0) 60%),
        radial-gradient(140% 120% at 50% 42%,
            rgba(11,31,42,0.85) 0%,
            rgba(11,15,42,1) 100%);
}

/* drift: statico di default, anima in 8.3/8.4 */
.iaflux-hero-v2::before {
    content: "";
    position: absolute;
    inset: -12%; /* overscan: il drift non scopre mai i bordi */
    pointer-events: none;
    z-index: 0;
    background-image:
        radial-gradient(46% 38% at 70% 22%,
            rgba(0,230,167,0.13) 0%, rgba(0,230,167,0) 55%),
        radial-gradient(38% 32% at 22% 78%,
            rgba(31,239,168,0.09) 0%, rgba(31,239,168,0) 55%);
    /* will-change in 8.3 (no layer GPU se reduced-motion) */
}

/* grain data-URI ~420B, statico, low-entropy: no candidato LCP */
.iaflux-hero-v2::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    opacity: 0.06;
    mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
}

/* contenuto sopra mesh (z0) e grain (z1) */
.iaflux-hero-v2 > .wp-block-group {
    position: relative;
    z-index: 2;
    width: 100%;
}

@media (min-width: 768px) {
    .iaflux-hero-v2 {
        min-height: 640px;
        padding: 80px var(--wp--preset--spacing--iaflux-2xl, 48px);
    }
}

@media (min-width: 1024px) {
    .iaflux-hero-v2 {
        min-height: min(720px, 86vh);
        padding: var(--wp--preset--spacing--iaflux-4xl, 96px) var(--wp--preset--spacing--iaflux-2xl, 48px);
    }
}

/* --- 8.2 HERO V2 — type + gerarchia (gap: blockGap 24 + override 12/32) -------- */

.iaflux-hero-kicker {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase; /* TRAP-3: kicker è paragraph, uppercase via classe */
    color: #1fefa8;
}

/* TRAP-2: legacy sez.4 = (0,4,1) → override (0,4,2) in coda; !important solo su font-size/color */
body.home .iaflux-hero-v2 h1.wp-block-heading.has-inter-font-family {
    font-size: var(--wp--preset--font-size--iaflux-display, clamp(40px, 7.4vw, 84px)) !important; /* override: sez.4 ridefinisce font-size a 768/1024 */
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: #fefefe !important; /* override: sez.4 color ink-deep, illeggibile su mesh dark */
    font-variation-settings: "wght" 700;
    text-wrap: balance;
    margin-block-start: var(--wp--preset--spacing--iaflux-sm, 12px); /* gap kicker→H1 */
    margin-block-end: 0; /* i gap li governa il blockGap del group */
}

.iaflux-hero-sub {
    color: #b6c2cf;
    line-height: 1.6;
    max-width: 60ch;
}

body.home .iaflux-hero-v2 .iaflux-hero-cta-row {
    margin-block-start: var(--wp--preset--spacing--iaflux-xl, 32px); /* gap sub→CTA */
}

/* ghost = link testuale, NON wp:button: evita regola CTA secondary sez.4 */
.iaflux-hero-ghost a {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #00e6a7;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .25em;
    text-decoration-color: rgba(0,230,167,0.5);
}
.iaflux-hero-ghost a:hover {
    color: #1fefa8;
    text-decoration-color: #1fefa8;
}
.iaflux-hero-ghost a:focus-visible {
    outline: 2px solid #00e6a7;
    outline-offset: 3px;
}

.iaflux-hero-trust {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.01em;
    line-height: 1.5;
    color: #bfc7c5; /* TRAP-1: colore SOLO via classe, mai inline nel markup */
}

/* mobile: CTA stacked, primaria full-width 360 centrata (replica FIX 4 su v2) */
@media (max-width: 640px) {
    .iaflux-hero-v2 .iaflux-hero-cta-row {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
    }
    .iaflux-hero-v2 .wp-block-buttons,
    .iaflux-hero-v2 .wp-block-button {
        width: 100%;
        max-width: 360px;
        margin-left: auto;
        margin-right: auto;
    }
    .iaflux-hero-v2 .wp-block-button__link {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 52px;
        padding-left: 24px;
        padding-right: 24px;
        box-sizing: border-box;
    }
}

/* --- 8.3 M1 RISE — SOLO kicker, trust, decorativi (H1/sub/CTA/ghost STATICI) -- */

@media (prefers-reduced-motion: no-preference) {
    @keyframes iaflux-rise {
        from { opacity: 0; transform: translateY(12px); }
        to   { opacity: 1; transform: none; }
    }
    @keyframes iaflux-mesh-in {
        from { opacity: 0; }
        to   { opacity: 1; }
    }
    @keyframes iaflux-mesh-drift {
        from { transform: translate3d(0, 0, 0) scale(1); }
        to   { transform: translate3d(-2.4%, 1.8%, 0) scale(1.06); }
    }
    .iaflux-hero-kicker { animation: iaflux-rise 600ms cubic-bezier(.2,.8,.2,1) 80ms both; }
    .iaflux-hero-trust  { animation: iaflux-rise 600ms cubic-bezier(.2,.8,.2,1) 280ms both; }
    .iaflux-hero-v2::before {
        will-change: transform;
        animation: iaflux-mesh-in 900ms ease-out both,
                   iaflux-mesh-drift 36s ease-in-out infinite alternate;
    }
}

/* --- 8.4 M6 PARALLAX mesh — scroll-driven; `translate` si compone col drift --- */

@supports (animation-timeline: scroll()) {
    @media (prefers-reduced-motion: no-preference) {
        @keyframes iaflux-hero-par {
            to { translate: 0 -56px; }
        }
        .iaflux-hero-v2::before {
            animation: iaflux-mesh-in 900ms ease-out both,
                       iaflux-mesh-drift 36s ease-in-out infinite alternate,
                       iaflux-hero-par linear;
            animation-timeline: auto, auto, scroll(root);
            animation-range: normal, normal, 0px 600px;
        }
    }
}

/* --- 8.5 M4 CARD LIFT — UN solo lift sito-wide (-6px/250ms, override legacy) -- */

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .iaflux-card,
    .wp-block-group.iaflux-card,
    .iaflux-service-card {
        transition: transform 250ms cubic-bezier(.2,.8,.2,1),
                    box-shadow 250ms cubic-bezier(.2,.8,.2,1);
    }
    .iaflux-card:hover,
    .wp-block-group.iaflux-card:hover,
    .iaflux-service-card:hover {
        transform: translateY(-6px);
        box-shadow: 0 18px 40px rgba(0,0,0,0.20), 0 0 18px rgba(0,230,167,0.26);
        transition: transform 250ms cubic-bezier(.2,.8,.2,1),
                    box-shadow 250ms cubic-bezier(.2,.8,.2,1); /* override: transition .35s dichiarata dentro :hover (sez.2 legacy) */
    }
}

/* --- 8.6 M7 REVEAL — classi da iaflux-motion.js; no-JS = tutto visibile ------- */

@media (prefers-reduced-motion: no-preference) {
    html.iaflux-motion .iaflux-reveal {
        opacity: 0;
        translate: 0 20px;
        transition: opacity 480ms cubic-bezier(.2,.8,.2,1),
                    translate 560ms cubic-bezier(.2,.8,.2,1);
    }
    html.iaflux-motion .iaflux-reveal.is-inview {
        opacity: 1;
        translate: 0 0;
    }
    /* a11y: focus tastiera su link in card non rivelata → card subito visibile */
    html.iaflux-motion .iaflux-reveal:focus-within {
        opacity: 1;
        translate: 0 0;
        transition: none;
    }
}

/* --- 8.7 M9 CTA HOVER — aggiunge glow + active alla regola child sez. 4 ------- */

@media (prefers-reduced-motion: no-preference) {
    body.home .wp-block-button__link[href*="/contatti"] {
        /* override: FIX 6 sez.7 forza var(--iaflux-transition-btn)!important su :hover */
        --iaflux-transition-btn: transform 200ms cubic-bezier(.2,.8,.2,1),
                    box-shadow 200ms cubic-bezier(.2,.8,.2,1),
                    filter 200ms cubic-bezier(.2,.8,.2,1);
        transition: transform 200ms cubic-bezier(.2,.8,.2,1),
                    box-shadow 200ms cubic-bezier(.2,.8,.2,1),
                    filter 200ms cubic-bezier(.2,.8,.2,1);
    }
    body.home .wp-block-button__link[href*="/contatti"]:hover,
    body.home .wp-block-button__link[href*="/contatti"]:focus-visible {
        transform: translateY(-2px);
        filter: brightness(1.06);
        box-shadow: 0 10px 28px rgba(31,239,168,0.28), 0 2px 8px rgba(0,0,0,0.35);
    }
    body.home .wp-block-button__link[href*="/contatti"]:active {
        transform: translateY(0);
        transition-duration: 120ms !important; /* override: FIX 6 sez.7 shorthand !important su :hover */
    }
}

/* --- 8.8 M10 PROGRESS — scroll-driven; scope body.home (vincolo 5) ------------ */

@supports (animation-timeline: scroll()) {
    @media (prefers-reduced-motion: no-preference) {
        @keyframes iaflux-progress {
            to { transform: scaleX(1); }
        }
        body.home::before {
            content: "";
            position: fixed;
            top: 0;
            left: 0;
            z-index: 9999;
            width: 100%;
            height: 2px;
            pointer-events: none;
            background: linear-gradient(90deg, #00e6a7, #1fefa8);
            transform: scaleX(0);
            transform-origin: 0 50%;
            animation: iaflux-progress linear;
            animation-timeline: scroll(root);
        }
    }
}

/* --- 8.9 COUNTER KPI + bonifica colore sezione KPI (TRAP-1) ------------------- */

.iaflux-counter {
    font-variant-numeric: tabular-nums; /* anti-jitter: zero CLS orizzontale */
}

/* TRAP-1: colore via classe (inline rimosso dal markup); 10.2:1 AAA su #0b1f2a */
.iaflux-kpi-kicker,
.iaflux-kpi-label {
    color: #bfc7c5;
}

/* safety TRAP-1: inline residuo (disclaimer) — P0-3/D5 lo forzerebbero ink su ink */
.iaflux-kpi-strip p[style*="#bfc7c5"] {
    color: #bfc7c5 !important; /* override: P0-3/D5 su fondo dark */
}

/* --- 8.10 A11Y CONTRAST — link accent su superfici chiare (gate 2.9) ----------
   Il colore link globale (GS post 520 elements.link = #00e6a7) su bianco = 1.63:1
   (FAIL WCAG-AA, già flaggato in WS3 spec §5). axe sulla home segnala: link autore
   nel loop blog + link policy nel footer. Fix mirato: verde brand scurito #047857
   = 5.48:1 su bianco (AA pass testo normale). NON tocca i link su fondo scuro
   (hero accent #00e6a7 su ink = 11.54:1, già conforme). Scope: i due selettori
   che falliscono, presenti site-wide (footer + blog), non solo home. */
.wp-block-post-author-name__link,
footer a[href*="/privacy-policy"],
footer a[href*="/cookie-policy"] {
    color: #047857;
}
.wp-block-post-author-name__link:hover,
.wp-block-post-author-name__link:focus-visible,
footer a[href*="/privacy-policy"]:hover,
footer a[href*="/privacy-policy"]:focus-visible,
footer a[href*="/cookie-policy"]:hover,
footer a[href*="/cookie-policy"]:focus-visible {
    color: #03875a; /* 4.55:1 su bianco — AA pass anche in hover */
}

/* =============================================================================
   END sezione 8 — FASE 2 HERO V2 + MOTION TIER 0
   ============================================================================= */



/* =============================================================================
   9) FASE 2 — HOME V2 SOTTO L'HERO (task 2.10) — valori: DIRECTION-home-v2 (LOCKED)
   Anima SOLO transform/opacity. Motion in @media (prefers-reduced-motion:
   no-preference); scroll-telling anche in @supports (animation-timeline: view());
   glass in @supports (backdrop-filter). Default fuori = statico, visibile, solido.
   Zero nuovi hue: ink #0b1f2a / ink-deep #0b0f2a / accent #00e6a7 / accent-primary
   #1fefa8 / #fefefe #b6c2cf #bfc7c5 #1f3a4a #394859. Niente inline script, niente img.
   ============================================================================= */

/* --- 9.1 S1 — fascia tre pilastri (era feature trio h6) ---------------------- */
.iaflux-pillars {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--preset--spacing--iaflux-lg, 24px);
}
.iaflux-pillar-label {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #fefefe;
}
@media (max-width: 899px) {
    .iaflux-pillars { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
    .iaflux-pillars { grid-template-columns: 1fr; }
}

/* --- 9.2 S2 — fix contrasto legacy (check + raccordo su #f4f6f8) ------------- */
/* override: bug contrasto ereditato #bfc7c5 su #f4f6f8 ≈ 1.6:1 (FAIL) → #394859 ≈ 9:1 (AAA) */
.iaflux-s2-text {
    color: #394859 !important; /* override: contrasto AAA su fondo chiaro #f4f6f8 */
}

/* --- 9.3 S3 — scroll-telling "Come lavoriamo" (timeline-macchina) ----------- */
.iaflux-process {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--wp--preset--spacing--iaflux-lg, 24px);
}
.iaflux-step {
    padding: var(--wp--preset--spacing--iaflux-lg, 24px);
    border-top: 2px solid #00e6a7;
    border-radius: 0 0 var(--wp--custom--radius--md, 12px) var(--wp--custom--radius--md, 12px);
}
.iaflux-step-num {
    display: block;
    margin: 0 0 12px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #1fefa8;
    font-variant-numeric: tabular-nums;
}
.iaflux-step-title {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    color: #fefefe;
}
.iaflux-step-body {
    margin: 0;
    max-width: 32ch;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.55;
    color: #b6c2cf;
    text-wrap: pretty;
}
@media (max-width: 899px) {
    .iaflux-process { grid-template-columns: 1fr; }
    .iaflux-step {
        border-top: 0;
        border-left: 2px solid #00e6a7;
        border-radius: 0 var(--wp--custom--radius--md, 12px) var(--wp--custom--radius--md, 12px) 0;
    }
    .iaflux-step-body { max-width: none; }
}
/* scroll-telling: default = statico-visibile; reveal a cascata solo se supportato e consentito */
@supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
        .iaflux-step {
            opacity: 0;
            transform: translateY(24px);
            animation: iaflux-step-in linear both;
            animation-timeline: view();
            animation-range: entry 10% cover 35%;
        }
        @keyframes iaflux-step-in {
            to { opacity: 1; transform: none; }
        }
    }
}

/* --- 9.4 S4 — bento sistemi (variante scura della service-card) ------------- */
.iaflux-bento {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--preset--spacing--iaflux-xl, 32px);
}
.iaflux-service-card--dark {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    background-color: #0b1f2a;
    border: 1px solid #1f3a4a;
    border-radius: var(--wp--custom--radius--lg, 24px);
    padding: var(--wp--preset--spacing--iaflux-2xl, 48px);
    box-shadow: 6px 6px 9px rgba(0, 0, 0, 0.2);
}
.iaflux-service-card--dark .iaflux-card-title {
    margin: 0 0 8px;
    font-size: clamp(20px, 2vw, 24px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: #fefefe;
}
.iaflux-service-card--dark .iaflux-card-body {
    margin: 16px 0 0;
    font-size: 15px;
    line-height: 1.6;
    color: #b6c2cf;
}
.iaflux-service-card--dark .iaflux-card-body a {
    color: #1fefa8;
    text-underline-offset: 2px;
}
.iaflux-price,
.iaflux-metric-pill {
    display: inline-block;
    border: 1px solid #1f3a4a;
    border-radius: var(--wp--custom--radius--md, 12px);
    padding: 8px 16px;
    font-size: 14px;
    line-height: 1.3;
}
.iaflux-price {
    margin: 0;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #1fefa8;
}
.iaflux-metric-pill {
    margin: 16px 0 0;
    font-weight: 400;
    color: #b6c2cf;
}
@media (max-width: 899px) {
    .iaflux-bento { grid-template-columns: 1fr; }
    .iaflux-service-card--dark { padding: var(--wp--preset--spacing--iaflux-xl, 32px); }
}

/* --- 9.5 S8 — closing glass (CTA finale) ----------------------------------- */
.iaflux-closing {
    background-color: #0b0f2a;
}
.iaflux-closing-card {
    background-color: #0b1f2a; /* fallback solido sempre presente */
    border: 1px solid rgba(0, 230, 167, 0.25);
    border-radius: var(--wp--custom--radius--xl, 30px);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45), 0 0 32px rgba(0, 230, 167, 0.12);
}
@supports ((backdrop-filter: blur(16px)) or (-webkit-backdrop-filter: blur(16px))) {
    .iaflux-closing-card {
        background-color: rgba(11, 31, 42, 0.55);
        -webkit-backdrop-filter: blur(16px) saturate(120%);
        backdrop-filter: blur(16px) saturate(120%);
    }
}
.iaflux-closing-card .iaflux-closing-title {
    margin: 0;
    max-width: 18ch;
    margin-inline: auto;
    font-size: clamp(28px, 4.5vw, 44px);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #fefefe;
    text-wrap: balance;
}
.iaflux-closing-card .iaflux-closing-sub {
    margin: 24px auto 0;
    max-width: 52ch;
    font-size: 16px;
    line-height: 1.6;
    color: #b6c2cf;
    text-wrap: pretty;
}

/* =============================================================================
   10) FASE 2 — HOTFIX visivi post-QA founder (2026-06-13)
   ============================================================================= */

/* --- 10.1 Pillar (S1): glow RIPRISTINATO + card contenute nel riquadro (rev 2026-06-13)
   Richiesta founder: rivuole il glow verde attorno alle card, ma la prima (alto) e
   l'ultima (basso) devono rientrare meglio nel riquadro blu + card un filo più piccole.
   - glow: lascio agire il box-shadow di .iaflux-card (sez.2), aggiungo solo bordo netto;
   - card più piccole: min-height rimossa, padding ridotto (xl→lg);
   - respiro: gap maggiore tra le card + più padding verticale sulla sezione → il glow
     non tocca i bordi e prima/ultima card rientrano nel blu. */
.iaflux-pillars .iaflux-card,
.iaflux-pillars .wp-block-group.iaflux-card {
    border: 1px solid #1f3a4a;
    min-height: 0 !important;
    padding: var(--wp--preset--spacing--iaflux-lg, 24px) !important;
    overflow: visible;            /* il glow deve poter uscire dal box card */
}
/* niente lift su hover (le pillar non sono cliccabili), ma il glow a riposo resta */
@media (hover: hover) {
    .iaflux-pillars .iaflux-card:hover,
    .iaflux-pillars .wp-block-group.iaflux-card:hover {
        transform: none;
    }
}
/* gap maggiore tra le card stacked → i glow non si sovrappongono */
.iaflux-pillars {
    gap: var(--wp--preset--spacing--iaflux-2xl, 48px) !important;
}
/* sezione pillar #0b0f2a (ink-deep) → card #0b1f2a risaltano; più padding verticale
   così prima/ultima card (col glow) rientrano nel riquadro. :has iOS 15.4+/Chrome 105+. */
.has-iaflux-ink-background-color:has(.iaflux-pillars) {
    background-color: #0b0f2a !important;
    padding-top: var(--wp--preset--spacing--iaflux-4xl, 96px) !important;
    padding-bottom: var(--wp--preset--spacing--iaflux-4xl, 96px) !important;
}

/* --- 10.2 Chat: bolla greeting AI Engine NON copre la hero su mobile ----------
   .mwai-icon-text-container = bolla "Assistente AI — chiedimi…" (iconTextDelay 2s,
   resta finché chiusa) → su mobile copre la CTA hero. Nascondo SOLO la bolla,
   l'icona (.mwai-icon-container) resta tappabile. Desktop invariato (nudge attivo). */
@media (max-width: 782px) {
    .mwai-trigger .mwai-icon-text-container {
        display: none !important;
    }
}

/* --- 10.3 A11Y link contrast footer + site-title (rinforzo FIX-3, gate 2.9) ----
   Site-title (header+footer) era #1fefa8 su bianco (1.5:1, FAIL) per ereditarietà
   `color:inherit` risolta diversamente per pagina; i link policy footer idem
   (block style oltre FIX-3 senza !important). Fix con !important:
   - testo logo site-title (header+footer) → ink scuro #0b1f2a (≈14:1 su bianco),
     coerente col logo dark già visibile nell'header;
   - link policy footer (in <p>) → verde AA #047857 (5.48:1). Icone social escluse. */
.wp-block-site-title a {
    color: #0b1f2a !important;
}
footer p a {
    color: #047857 !important;
}
footer p a:hover,
footer p a:focus-visible {
    color: #03875a !important;
}
