/**
 * DAIMON Academy – struttura grafica e UX allineata a daimonacademy.it
 * Palette principale: Viola #370F67 · Bianco #F8F8F2 · Rosa #CE0F69 · Oro #C29639
 */

/* ---------- Tema solo chiaro (light) e comportamento su Apple/Safari ----------
 * Due meccanismi distinti:
 * 1) color-scheme (meta + CSS): dice al browser quale aspetto usare per l’UI nativa
 *    (canvas, controlli form, scrollbar, colori di sistema). Con "light" (o "only light")
 *    la pagina dichiara di essere solo chiara; Safari/iOS non applica quindi il tema scuro
 *    dell’OS a quegli elementi.
 * 2) prefers-color-scheme: media query che dipende dalla preferenza di sistema. Non è
 *    influenzata da color-scheme. Pico CSS usa @media (prefers-color-scheme: dark) e
 *    imposta variabili scure su :root; se non le sovrascriviamo, input/sfondi/card restano
 *    scuri quando l’OS è in modalità notte.
 * Soluzione: (a) meta + color-scheme: only light per l’UA; (b) sovrascrivere in :root
 * le variabili Pico usate in dark mode con i nostri valori chiari (il nostro foglio
 * viene dopo Pico, quindi vince per cascata). Così nessun workaround: rispettiamo lo
 * standard e dichiariamo esplicitamente “solo tema chiaro”.
 * ---------- */

/* ---------- Font: caricati da layout.php (preconnect + link) per LCP ---------- */
/* Kalam, Modern Antiqua, Niramit; Cormorant Garamond, Nunito Sans */

/* ---------- Palette DAIMON (variabili globali, tutto il tema si adegua) ---------- */
:root {
    color-scheme: only light; /* UA: nessun tema scuro automatico (form, canvas, scrollbar) */
    /* Colori principali (obbligatori brand) */
    --daimon-viola: #370f67;
    --daimon-viola-scuro: #2a0c4f;
    --daimon-viola-chiaro: #4a1f7a;
    --daimon-bianco: #f8f8f2;
    --daimon-rosa: #ce0f69;
    --daimon-rosa-hover: #a80c54;
    --daimon-oro: #c29639;
    --daimon-oro-hover: #a87e2e;
    /* Supporto (testo, sfondi neutri) – premium contrasto WCAG AAA */
    --daimon-bianco-morbido: #f8f8f2;
    --daimon-bg: #f8f8f2;
    --daimon-bg-warm: #fdfaf7;
    --daimon-grigio-caldo: #f0ece8;
    --daimon-testo: #2d1b3f;
    --daimon-testo-muted: #6b5a7a;
    --daimon-border-light: #a89ab8;
    /* Font: serif teatrale per titoli, sans calda per body */
    --daimon-font-titoli: "Cormorant Garamond", "Modern Antiqua", Georgia, serif;
    --daimon-font-subtitle: "Modern Antiqua", Georgia, serif;
    --daimon-font-body: "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

    --transition-ease: 0.3s ease;
    --transition-smooth: 0.4s ease;
    --radius: 0.5rem;
    --radius-sm: 0.35rem;
    --radius-lg: 0.75rem;
    /* Blocco calendario a strappo: angoli solo leggermente stondati (3px) per non competere con la linguetta piegata */
    --radius-calendar-block: 3px;
    --radius-xl: 1rem;
    --radius-2xl: 1.5rem;
    /* Shadow premium (viola soft) */
    --shadow-card: 0 8px 32px rgba(55, 15, 103, 0.08);
    --shadow-card-hover: 0 12px 40px rgba(55, 15, 103, 0.12);
    --shadow-hero: 0 4px 24px rgba(0, 0, 0, 0.15);

    /* Breakpoint (per media query e coerenza mobile/tablet/desktop) */
    --breakpoint-mobile: 767px;
    --breakpoint-tablet: 768px;
    --breakpoint-desktop: 1024px;
    --breakpoint-small: 640px;
    --breakpoint-medium: 960px;
    --container-max: 1280px;

    /* Bottoni: allineamento e dimensioni minime per tap/click */
    --button-min-height: 2.75rem;
    --button-padding-x: 1.25rem;
    --button-padding-y: 0.6rem;
    --button-gap: 0.5rem;

    /* Immagini: proporzioni ricorrenti (card, hero, magazine) */
    --img-card-max-height: 200px;
    --img-card-min-height: 140px;
    --img-hero-max-height: 50vh;
    --img-article-lead-max-height: 45vh;
    --aspect-card: 5 / 3;
    --img-collaborator-size: 200px;

    /* Dimensione carattere base neutra: ~16pt tipografico = 20px (1rem). Per 22px usare 22px. */
    --daimon-font-size-base: 20px;

    /* DAiMON v2 — spaziatura golden ratio su base 20px (10rem = 200px: eccessivo) */
    --section-spacing: 4rem;           /* 80px: respiro senza vuoto */
    --section-spacing-mobile: 2.5rem;  /* 50px mobile */
    --section-spacing-desktop: 5rem;   /* 100px desktop: generoso ma non dispersivo */
    --card-padding: 1.25rem;           /* 25px: card più compatte con font 20px */
    --hero-padding: 2.5rem 2rem;       /* invariato */
    --main-padding-x: 1.25rem;         /* invariato */

    /* Allineamento Pico ai colori DAIMON */
    --pico-primary: var(--daimon-viola);
    --pico-primary-hover: var(--daimon-viola-scuro);
    --pico-primary-inverse: var(--daimon-bianco);

    /* Tema solo chiaro: override variabili che Pico imposta in @media (prefers-color-scheme: dark).
       Il nostro foglio viene dopo Pico, quindi queste dichiarazioni vincono per cascata. */
    --pico-background-color: var(--daimon-bianco);
    --pico-color: var(--daimon-testo);
    --pico-form-element-background-color: var(--daimon-bianco);
    --pico-form-element-color: var(--daimon-testo);
    --pico-form-element-border-color: rgba(0, 0, 0, 0.15);
    --pico-form-element-placeholder-color: var(--daimon-testo-muted);
    --pico-form-element-active-background-color: var(--daimon-bianco);
    --pico-form-element-selected-background-color: rgba(55, 15, 103, 0.08);
    --pico-form-element-active-border-color: var(--daimon-viola);
    --pico-form-element-focus-color: var(--daimon-viola);
    --pico-card-background-color: var(--daimon-bianco);
    --pico-card-sectioning-background-color: var(--daimon-bianco);
    --pico-muted-color: var(--daimon-testo-muted);
    --pico-muted-border-color: rgba(0, 0, 0, 0.1);
    --pico-muted-background: #f0f0ee;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* Tema solo chiaro: quando il sistema è in dark mode, il sito resta identico (sempre light).
   - Forziamo solo html/body e form a valori chiari.
   - NON tocchiamo section, main, .container, article (altrimenti sfondi e CTA sparirebbero).
   - NON tocchiamo .hero-wrapper, .hero-figure, img (l’immagine hero deve restare visibile).
   - Card: solo .magazine-card, .comment-form-block, .card (no [class*="card"] per non
     sovrascrivere .strada-card--principale o il “cuore di DAIMON”). */
@media (prefers-color-scheme: dark) {
    html,
    body {
        background-color: var(--daimon-bianco) !important;
        color: var(--daimon-testo) !important;
    }
    input:not([type="submit"]):not([type="button"]):not([type="reset"]),
    textarea,
    select {
        background-color: var(--daimon-bianco) !important;
        color: var(--daimon-testo) !important;
        border-color: rgba(0, 0, 0, 0.15) !important;
    }
    /* Newsletter nel footer: eccezione — resta su sfondo viola con solo riga sotto (no riquadro bianco). */
    .site-footer .footer-newsletter-form input[type="text"],
    .site-footer .footer-newsletter-form input[type="email"] {
        background-color: transparent !important;
        background: transparent !important;
        border: none !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.4) !important;
        color: var(--daimon-bianco) !important;
    }
    .site-footer .footer-newsletter-form input[type="text"]:focus,
    .site-footer .footer-newsletter-form input[type="email"]:focus {
        border: none !important;
        border-bottom: 1px solid var(--daimon-oro) !important;
        background-color: rgba(255, 255, 255, 0.04) !important;
    }
    .magazine-card,
    .comment-form-block,
    .card {
        background-color: var(--daimon-bianco) !important;
    }
    /* Hero: nessuno sfondo/opacità su figure e img, così l’immagine resta visibile
       anche se Pico o il browser applicano stili dark su elementi generici. */
    .hero-figure,
    .hero-figure img {
        background-color: transparent !important;
        opacity: 1 !important;
    }
}

/* ---------- Safari macOS: forzare painting degli sfondi (WebKit desktop) ----------
 * Su Safari su Mac gli sfondi colorati spesso non vengono dipinti quando:
 * - l’elemento è full-bleed (width:100vw + margin negativo) figlio di un container;
 * - si usa solo la shorthand background con var() o rgba();
 * - il contesto di compositing non crea un layer dedicato.
 * Workaround documentato: trasformare l’elemento con translateZ(0) crea un
 * compositing layer e forza WebKit a disegnare lo sfondo. Nessun effetto visibile
 * su altri browser. Vedi: Stack Overflow "background not showing Safari", WebKit bugs
 * su fixed backgrounds in composited layers.
 * ---------- */
.hero-wrapper,
.site-footer,
.footer-collab-card-h,
.footer-collab-card-h-img,
section.percorsi-hero,
#chi-sono-new,
#come-nasce-new,
#citazione,
.strada-card--principale,
.section-bg-viola,
.section-bg-oro,
.section-bg-rosa,
#orientamento,
#via-esperienziale,
#testimonianze-section,
#newsletter-home,
.sessioni-individuali-section,
.pratiche-section--alt,
.trattamento-section--alt,
.bisogni-photo,
.percorsi-gruppo-section,
.percorsi-callcontact {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* ---------- Base ---------- */
/* Forziamo la base in px così 1rem è sempre leggibile; Pico viene caricato prima e usa % su html. */
html {
    font-size: var(--daimon-font-size-base, 20px) !important;
}
/* overflow-x: clip (non hidden) — non crea un nuovo scroll container,
   così position:sticky funziona. hidden trasferirebbe lo scroll al body
   e sticky perderebbe il riferimento corretto. */
html { overflow-x: clip; }
body {
    color: var(--daimon-testo);
    font-family: var(--daimon-font-body);
    font-size: 1rem;
    line-height: 1.75;
    background: var(--daimon-bg);
    overflow-x: clip;
    max-width: 100%;
    transition: background-color var(--transition-ease);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
a {
    color: var(--daimon-viola);
    transition: color var(--transition-ease);
}
a:hover {
    color: var(--daimon-viola-scuro);
}

/* ---------- Tipografia premium (serif teatrale heading, body calda) ---------- */
/* DAiMON v2 — gerarchia font: Cormorant solo h1/h2 (display), Nunito h3+ (leggibili) */
h1, h2 {
    font-family: var(--daimon-font-titoli); /* Cormorant Garamond: grande, teatrale */
    font-weight: 600;
    color: var(--daimon-viola);
    letter-spacing: 0.02em;
}
h3, h4, h5, h6 {
    font-family: var(--daimon-font-body);   /* Nunito Sans: leggibile in card e testo */
    font-weight: 700;
    color: var(--daimon-viola);
    letter-spacing: 0.01em;
}
/* DAiMON v2 — scale golden ratio su base 20px */
h1 {
    font-size: clamp(2rem, 5vw, 2.618rem); /* max ~52px */
    line-height: 1.15;
    margin-bottom: 0.75rem;
}
h2 {
    font-size: clamp(1.5rem, 3.5vw, 2rem); /* max ~40px */
    line-height: 1.2;
    margin-top: 0;
    margin-bottom: 1.25rem;
    color: var(--daimon-viola);
}
h3 {
    font-size: 1.1rem;   /* 22px su base 20px: leggibile, non invadente */
    line-height: 1.4;
    margin-bottom: 0.5em;
}
.subtitle, .site-subtitle {
    font-family: var(--daimon-font-subtitle);
    letter-spacing: 0.12em;
    color: var(--daimon-oro);
}
p {
    line-height: 1.8;
    margin-bottom: 1rem;
}
/* DAiMON v2 — blockquote e citazioni: Cormorant 300 italic, elegante */
blockquote {
    font-family: var(--daimon-font-titoli);
    font-weight: 300;
    font-style: italic;
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    line-height: 1.65;
    color: var(--daimon-testo);
    border-left: 3px solid var(--daimon-oro);
    padding-left: 1.25rem;
    margin: 1.5rem 0;
}
@media (max-width: 767px) {
    h1 { font-size: clamp(1.75rem, 8vw, 2.5rem); }
    h2 { font-size: clamp(1.5rem, 5vw, 2rem); }
    body { font-size: 1rem; line-height: 1.7; }
}

/* ---------- Skip link (accessibilità) ---------- */
.skip-link {
    position: absolute;
    left: -9999px;
    z-index: 9999;
    padding: 0.75rem 1rem;
    background: var(--daimon-viola);
    color: var(--daimon-bianco);
    border-radius: var(--radius);
}
.skip-link:focus {
    left: var(--main-padding-x);
    top: 0.5rem;
}

/* ---------- Header (barra oro, fixed ovunque, nascosto allo scroll giù e riappare allo scroll su) ---------- */
.site-header {
    background: var(--daimon-oro);
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.36), 0 3px 10px rgba(55, 15, 103, 0.28);
    margin-bottom: 0;
    padding: 0.09rem 0;
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    z-index: 100;
    transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1), box-shadow 0.2s ease;
}
.site-header.is-hidden {
    transform: translateY(-100%);
}
body.has-fixed-header {
    padding-top: calc(0.18rem + var(--site-nav-bar-height, 3rem));
}
body.site-nav-open.has-fixed-header {
    padding-top: var(--site-nav-open-padding, calc(0.18rem + var(--site-nav-bar-height, 3rem)));
}
.site-header-inner.container {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--main-padding-x);
    padding-right: var(--main-padding-x);
}
@media (min-width: 1024px) { /* --breakpoint-desktop */
    .site-header-inner.container {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}
/* Desktop: nav = barra (logo) + menu inline */
.site-nav {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    min-width: 0;
    min-height: 2rem;
}
.site-nav-bar {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0;
    flex-shrink: 0;
    min-width: 0;
}
.site-nav-bar .site-nav-logo { margin: 0 0.75rem 0 0; padding: 0; list-style: none; flex-shrink: 0; display: flex; align-items: center; }
.site-nav-bar .site-nav-logo li { display: flex; align-items: center; }
.site-nav-menu {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0 0.4rem;
    margin: 0;
    padding: 0;
    list-style: none;
    flex: 1;
    min-width: 0;
}
.site-nav-menu li { margin: 0; }
.site-nav-menu li:last-child { margin-left: auto; }

/* Link nav: font Modern Antiqua, minimo 12pt (~1rem), può scalare */
.site-nav-link {
    font-family: var(--daimon-font-subtitle);
    font-size: clamp(1rem, 1.2vw + 0.85rem, 1.1rem);
    color: var(--daimon-viola) !important;
    text-decoration: none;
    padding: 0.25rem 0.55rem;
    min-height: 1.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
    background: transparent;
    transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.site-nav-link:not(.site-nav-link--icon)::after {
    content: "★";
    color: var(--daimon-rosa);
    font-size: 0.75em;
    opacity: 0;
    transition: opacity 0.2s ease;
}
.site-nav-link--icon {
    padding: 0.2rem 0.35rem;
    min-width: 1.4rem;
}
.site-nav-link--icon::after { display: none; }
.site-nav-icon-home {
    display: block;
    width: 0.9rem;
    height: 0.9rem;
    background: currentColor;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E");
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
}
.site-nav-link:hover {
    color: var(--daimon-viola-scuro) !important;
    background: rgba(55, 15, 103, 0.08);
    border-color: rgba(55, 15, 103, 0.2);
}
.site-nav-link:not(.site-nav-link--icon):hover::after { opacity: 1; }
.site-nav-menu li.is-current > .site-nav-link,
.site-nav-menu li.is-current > .site-nav-submenu-trigger > .site-nav-link {
    background: var(--daimon-viola);
    color: var(--daimon-bianco) !important;
    border-color: var(--daimon-viola-scuro);
}
.site-nav-menu li.is-current > .site-nav-link:hover,
.site-nav-menu li.is-current > .site-nav-submenu-trigger > .site-nav-link:hover {
    background: var(--daimon-viola);
    color: var(--daimon-bianco) !important;
    border-color: var(--daimon-viola-scuro);
}
.site-nav-menu li.is-current > .site-nav-link::after,
.site-nav-menu li.is-current > .site-nav-submenu-trigger > .site-nav-link::after {
    opacity: 1;
    color: var(--daimon-rosa);
}
.site-nav-menu li.is-current:not(.site-nav-item-has-submenu) > .site-nav-link,
.site-nav-link[aria-current="page"] {
    pointer-events: none;
    cursor: default;
}

/* ---------- Sotto-menu overlay (Percorsi e altri): non sposta la pagina, parte da sotto la nav ---------- */
.site-nav {
    position: relative;
}
.site-nav-item-has-submenu {
    position: relative;
}
.site-nav-submenu-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0;
}
.site-nav-submenu-trigger .site-nav-link {
    margin: 0;
}
.site-nav-submenu-toggle {
    display: none;
    width: 2.25rem;
    height: 100%;
    min-height: 2.75rem;
    padding: 0 0.5rem;
    margin: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    color: var(--daimon-viola);
    cursor: pointer;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease;
}
.site-nav-submenu-toggle:hover {
    color: var(--daimon-viola-scuro);
}
.site-nav-submenu-toggle-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease;
}
.site-nav-submenu-toggle-icon svg {
    display: block;
}
.site-nav-submenu-toggle[aria-expanded="true"] .site-nav-submenu-toggle-icon {
    transform: rotate(180deg);
}
.site-nav-submenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 100;
    padding-top: 0;
    margin-top: 0;
}
/* Panel dentro il li (Percorsi): su desktop si posiziona sotto tutta la nav */
.site-nav-item-has-submenu > .site-nav-submenu {
    position: absolute;
    top: 100%;
    left: 0;
    width: max-content;
    min-width: 100%;
}
@media (min-width: 1101px) {
    .site-nav-item-has-submenu > .site-nav-submenu {
        top: 100%;
        left: 0;
        min-width: 0;
    }
}
.site-nav-submenu--desktop-only {
    display: none;
}
@media (min-width: 1101px) {
    .site-nav-submenu--desktop-only { display: none; }
    .site-nav-submenu--desktop-only.is-open { display: block; }
}
.site-nav-submenu.is-open {
    display: block;
}
.site-nav-submenu__panel {
    background: rgba(194, 150, 57, 0.9);
    border: 1px solid rgba(194, 150, 57, 0.5);
    border-top: none;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    box-shadow: var(--shadow-card-hover);
    padding: var(--card-padding);
    width: max-content;
    max-width: min(28rem, 92vw);
    min-width: 18rem;
    margin-left: 0;
    margin-right: 0;
}
.site-nav-submenu__featured {
    margin-bottom: 0.95rem;
}
/* Prima voce (featured): riga rosa per priorità visiva */
.site-nav-submenu__item--featured {
    display: block;
    font-family: var(--daimon-font-titoli);
    font-size: 1.15rem;
    color: var(--daimon-viola);
    padding: 0.5rem 0.85rem 0.6rem;
    line-height: 1.35;
    border-radius: var(--radius);
    background: transparent;
    border-left: none;
    border-bottom: none;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease;
    font-weight: 600;
    position: relative;
}
.site-nav-submenu__item--featured::after {
    content: '';
    position: absolute;
    left: 15%;
    right: 15%;
    bottom: 0.25rem;
    height: 2px;
    background: linear-gradient(90deg, transparent 0, var(--daimon-rosa) 15%, var(--daimon-rosa) 85%, transparent 100%);
    border-radius: 1px;
    box-shadow: 0 0 4px rgba(206, 15, 105, 0.35);
}
.site-nav-submenu__item--featured:hover {
    background: rgba(55, 15, 103, 0.12);
    color: var(--daimon-viola-scuro);
}
.site-nav-submenu__item--featured.site-nav-submenu__item--current {
    background: var(--daimon-viola);
    color: var(--daimon-bianco);
    border-bottom: none;
}
.site-nav-submenu__item--featured.site-nav-submenu__item--current::after {
    background: linear-gradient(90deg, transparent 0, var(--daimon-rosa) 15%, var(--daimon-rosa) 85%, transparent 100%);
}
.site-nav-submenu__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem 1.15rem;
}
.site-nav-submenu__col {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.site-nav-submenu__item {
    font-family: var(--daimon-font-subtitle);
    font-size: 0.95rem;
    color: var(--daimon-viola);
    padding: 0.4rem 0.75rem;
    margin: 0.1rem 0;
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    line-height: 1.35;
    border-bottom: 2px solid transparent;
}
/* Hover: tono su tono come main, ma più discreto = solo bordo in basso */
.site-nav-submenu__item:hover {
    border-bottom-color: rgba(55, 15, 103, 0.45);
    color: var(--daimon-viola-scuro);
}
/* Voce selezionata: sfondo viola come menu principale; hover senza cambiamento (non selezionabile) */
.site-nav-submenu__item--current {
    background: var(--daimon-viola);
    color: var(--daimon-bianco) !important;
    border-bottom-color: var(--daimon-viola-scuro);
    cursor: default;
    pointer-events: none;
}
.site-nav-submenu__item--current:hover {
    background: var(--daimon-viola);
    color: var(--daimon-bianco) !important;
    border-bottom-color: var(--daimon-viola-scuro);
}
.site-nav-submenu__item--featured.site-nav-submenu__item--current:hover {
    background: var(--daimon-viola);
    color: var(--daimon-bianco) !important;
}
.site-nav-submenu__item--has-image {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 2.5rem;
    text-shadow: 0 0 2px var(--daimon-bianco), 0 1px 3px rgba(0,0,0,0.4);
}
.site-nav-submenu__placeholder {
    display: block;
    font-family: var(--daimon-font-subtitle);
    font-size: 0.85rem;
    color: var(--daimon-viola-scuro);
    opacity: 0.85;
    font-style: italic;
    padding: 0.5rem 0.75rem;
    margin-top: 0.25rem;
}

.site-logo-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    min-height: 2rem;
}
.site-logo-image {
    height: auto;
    max-height: 32px;
    width: auto;
    max-width: 70px;
    display: block;
    object-fit: contain;
    object-position: center;
}
/* Logo: +0.2rem desktop, -0.1rem mobile/tablet vertical */
.site-logo-text {
    font-family: var(--daimon-font-subtitle);
    font-size: 1.15rem; /* base desktop: 0.95 + 0.2rem */
    color: var(--daimon-viola);
    letter-spacing: 0.02em;
    white-space: nowrap;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}
.site-logo-link:hover .site-logo-text { color: var(--daimon-viola-scuro); }
@media (max-width: 1100px) {
    .site-logo-image { max-height: 40px; max-width: 82px; }
    .site-logo-text { font-size: 1.15rem; } /* 1.25 - 0.1rem mobile/tablet vertical */
    .site-nav-bar .site-logo-link { min-height: 0; padding: 0; }
    .site-nav-bar .site-logo-image { max-height: 2.5rem; }
}
@media (max-width: 380px) {
    .site-logo-image { max-height: 32px; max-width: 68px; }
    .site-logo-text { font-size: 0.85rem; } /* 0.95 - 0.1rem */
}

/* Icona contatti: visibile solo con layout hamburger */
.site-nav-contact-icon {
    display: none;
}

/* Hamburger: nascosto su desktop. Non subisce stili globali bottoni (min-height, padding, margin). */
.site-nav-toggle {
    display: none;
    min-width: 2.75rem;
    min-height: 0;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0 !important;
    margin-bottom: 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: var(--radius);
    background: var(--daimon-viola);
    color: var(--daimon-bianco);
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
.site-nav-toggle::before,
.site-nav-toggle::after,
.site-nav-toggle span {
    content: "";
    display: block;
    position: absolute;
    left: 0.5rem;
    right: 0.5rem;
    height: 2px;
    background: currentColor;
    transition: transform 0.2s, opacity 0.2s;
}
.site-nav-toggle::before { top: 0.6rem; }
.site-nav-toggle span { top: 50%; margin-top: -1px; }
.site-nav-toggle::after { bottom: 0.6rem; }
.site-nav-toggle[aria-expanded="true"]::before {
    transform: translateY(0.35rem) rotate(45deg);
}
.site-nav-toggle[aria-expanded="true"] span {
    opacity: 0;
}
.site-nav-toggle[aria-expanded="true"]::after {
    transform: translateY(-0.35rem) rotate(-45deg);
}
.site-nav-toggle span { pointer-events: none; }

/* ---------- Mobile (≤1100px): una riga fissa [hamburger|logo+nome|busta], altezza barra costante; menu a discesa sotto ---------- */
@media (max-width: 1100px) {
    :root {
        --site-nav-bar-height: 3rem;
    }
    .site-nav {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        min-height: auto;
    }
    /* Riga unica: altezza fissa come su PC, elementi leggermente rimpiccioliti così la pagina inizia subito sotto. */
    .site-nav-bar {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
        gap: 0.4rem;
        height: var(--site-nav-bar-height, 3rem);
        min-height: var(--site-nav-bar-height, 3rem);
    }
    /* Hamburger: icona stessa dimensione della busta (1.1rem), centrata nel bottone 2rem */
    .site-nav-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 2rem;
        height: 2rem;
        min-width: 2rem;
        min-height: 2rem;
        padding: 0;
        box-sizing: border-box;
    }
    .site-nav-toggle::before,
    .site-nav-toggle::after,
    .site-nav-toggle span {
        left: 0.45rem;
        right: 0.45rem;
        height: 1.5px;
        box-sizing: border-box;
    }
    .site-nav-toggle::before { top: 0.45rem; }
    .site-nav-toggle span { top: 1rem; margin-top: -0.75px; }
    .site-nav-toggle::after { top: 1.55rem; bottom: auto; }
    .site-nav-toggle[aria-expanded="true"]::before { transform: translateY(0.275rem) rotate(45deg); }
    .site-nav-toggle[aria-expanded="true"]::after { transform: translateY(-0.275rem) rotate(-45deg); }
    .site-nav-bar .site-nav-logo {
        flex: 1 1 auto;
        min-width: 0;
        margin: 0;
        justify-content: center;
        flex-wrap: nowrap;
    }
    .site-nav-bar .site-nav-logo .site-logo-link { margin: 0 auto; }
    .site-nav-contact-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 2rem;
        height: 2rem;
        min-width: 2rem;
        min-height: 2rem;
        border-radius: var(--radius-sm);
        color: var(--daimon-viola);
        background: rgba(55, 15, 103, 0.08);
        border: 1px solid rgba(55, 15, 103, 0.25);
        transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
    }
    .site-nav-contact-icon:hover {
        color: var(--daimon-viola-scuro);
        background: rgba(55, 15, 103, 0.15);
        border-color: var(--daimon-viola);
    }
    .site-nav-icon-contact {
        display: block;
        width: 1.1rem;
        height: 1.1rem;
        background: currentColor;
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
        mask-size: contain;
        mask-repeat: no-repeat;
        mask-position: center;
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
        -webkit-mask-size: contain;
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-position: center;
    }
    /* Menu a discesa: Percorsi, Trattamenti, Magazine, Collaboratori, Contatti. Home si raggiunge cliccando logo/nome in barra. */
    .site-nav-menu {
        display: none;
        flex: none;
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        margin: 0;
        padding: 0.75rem 0 0 0.5rem;
        border-top: 1px solid rgba(55, 15, 103, 0.2);
        list-style: none;
        gap: 0.35rem;
    }
    .site-nav-menu.is-open { display: flex; }
    .site-nav-menu li:first-child { order: 10; }
    .site-nav-menu li { margin: 0; padding: 0; width: 100%; min-width: 0; }
    /* Neutralizza l'allineamento desktop (margin-left:auto) che su colonna crea “seconda colonna” */
    .site-nav-menu li { margin-left: 0 !important; margin-right: 0 !important; }
    .site-nav-menu a {
        min-height: 2.75rem;
        display: inline-flex;
        align-items: center;
        padding: 0.5rem;
        max-width: 100%;
        min-width: 0;
        white-space: normal;
        overflow-wrap: break-word;
        word-break: normal;
        hyphens: none;
        line-height: 0.95rem; /* interlinea compatta quando va a capo */
        width: 100%;
        box-sizing: border-box;
        justify-content: flex-start;
        text-align: left;
    }
    /* Icona Home: resta centrata nel bottone */
    .site-nav-menu .site-nav-link--icon {
        justify-content: center;
        text-align: center;
    }
    /* Home come icona casetta in fondo al menu (solo mobile): bottone quadrato, via di mezzo con testo */
    .site-nav-menu li:first-child .site-nav-link--icon {
        width: 2.75rem;
        min-width: 2.75rem;
        height: 2.75rem;
        min-height: 2.75rem !important;
        padding: 0.45rem !important;
        margin: 0 0 0 0.0rem;
        box-sizing: border-box;
        justify-content: center;
        align-items: center;
    }
    .site-nav-menu li:first-child .site-nav-icon-home {
        display: block;
        width: 1.25rem;
        height: 1.25rem;
    }
    /* Menu scrollabile: pagina ferma, solo il drawer scorre */
    .site-nav-menu.is-open {
        max-height: calc(100vh - var(--site-nav-bar-height, 3rem));
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    body.site-nav-open {
        overflow: hidden;
    }
    /* Sotto-menu mobile: trigger unico (stesso sfondo), righetta verticale, freccia V chiara */
    .site-nav-submenu-trigger {
        width: 100%;
        min-height: 2.75rem;
        display: flex;
        align-items: stretch;
        background: rgba(55, 15, 103, 0.06);
        border-radius: var(--radius-sm);
        box-sizing: border-box;
        overflow: hidden; /* evita sbordi della freccia a destra */
        max-width: 100%;
        min-width: 0;
    }
    .site-nav-item-has-submenu .site-nav-submenu-trigger .site-nav-link {
        flex: 1 1 auto;
        min-width: 0;
        max-width: calc(100% - 2.75rem);
        min-height: 2.75rem;
        display: inline-flex;
        align-items: center;
        padding: 0.5rem;
        border-right: 1px solid rgba(55, 15, 103, 0.25);
        justify-content: flex-start;
    }
    .site-nav-submenu-toggle {
        display: inline-flex;
        flex-shrink: 0;
        width: 2.75rem;
        color: var(--daimon-testo-muted);
    }
    .site-nav-submenu-toggle .site-nav-submenu-toggle-icon svg {
        stroke: currentColor;
    }
    .site-nav-submenu-toggle:hover,
    .site-nav-submenu-toggle[aria-expanded="true"] {
        color: var(--daimon-viola);
    }
    /* Sotto-menu nel flusso: si apre sotto la voce e sposta le altre (no overlay) */
    .site-nav-item-has-submenu > .site-nav-submenu,
    .site-nav-submenu {
        position: static;
        top: auto;
        left: auto;
        right: auto;
        width: 100%;
        min-width: 0;
        padding: 0.4rem 0 0.4rem 0.5rem;
        margin: 0 0 0.25rem 0;
        border-left: 2px solid var(--daimon-oro);
        background: rgba(194, 150, 57, 0.1);
        border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
        max-height: min(60vh, calc(100vh - var(--site-nav-bar-height, 3rem) - 5.25rem));
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .site-nav-submenu .site-nav-submenu__panel {
        box-shadow: none;
        border: none;
        border-radius: 0;
        padding: 0.5rem 0 0.25rem;
        max-width: none;
        background: transparent;
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }
    .site-nav-submenu__grid {
        grid-template-columns: 1fr;
        gap: 0.28rem;
    }
    .site-nav-submenu__col { min-width: 0; }
    .site-nav-submenu__item--featured {
        font-size: 1.05rem;
        white-space: normal;
        overflow-wrap: break-word;
        word-break: normal;
        hyphens: none;
        line-height: 0.95rem;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        display: block;
    }
    .site-nav-submenu__item {
        font-size: 0.9rem;
        white-space: normal;
        line-height: 1.25;
        padding-top: 0.35rem;
        padding-bottom: 0.35rem;
        overflow-wrap: break-word;
        word-break: normal;
        hyphens: none;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        display: block;
    }
}

/* ---------- Footer (redesign tre colonne: Brand+newsletter, Contatti+frasi, Collaboratori) ---------- */
.site-footer {
    background-color: var(--daimon-viola);
    background-image: linear-gradient(180deg, var(--daimon-viola) 0%, var(--daimon-viola-scuro) 100%);
    color: var(--daimon-bianco);
    margin-top: 0;
    padding: var(--section-spacing) 0 0;
    border-top: none;
    border-radius: 0;
    position: relative;
}
/* Righettina viola sopra footer (separazione dal blocco precedente) */
.site-footer-divider {
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, var(--daimon-viola-chiaro) 15%, var(--daimon-viola) 50%, var(--daimon-viola-chiaro) 85%, transparent 100%);
    margin: 0;
}
.site-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--daimon-viola), var(--daimon-oro));
    border: none;
}
.site-footer-inner.container {
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--main-padding-x);
    padding-right: var(--main-padding-x);
    text-align: center;
}
.site-footer .footer-col {
    margin-top: 1.5rem;
}
.site-footer .footer-col:first-child { margin-top: 0; }
@media (max-width: 1023px) {
    .site-footer > .site-footer-inner.container {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .site-footer .footer-col {
        width: 100%;
        max-width: 22rem;
        text-align: center;
    }
    .site-footer .footer-col-brand { order: 1; }
    .site-footer .footer-col-collaboratori { order: 2; }
    .site-footer .footer-col-contatti { order: 3; }
    .site-footer .footer-col-title-line-right::after { display: none; }
    .site-footer .footer-col-title { justify-content: center; }
    .site-footer .footer-contact-row { justify-content: center; }
    .site-footer .footer-address { text-align: center; }
    .site-footer .footer-phrases {
        margin-top: 0.6rem;
        margin-bottom: 0.5rem;
    }
    .site-footer .footer-col-contatti {
        padding-bottom: 0;
    }
    .footer-legal-strip {
        margin-top: 1.5rem;
    }
    .site-footer .footer-collab-cards {
        align-items: stretch;
        width: 100%;
    }
    .site-footer .footer-collab-card-h {
        width: 100%;
        max-width: 20rem;
        margin-left: auto;
        margin-right: auto;
    }
    .site-footer .footer-newsletter-form { justify-content: center; }
    .site-footer .footer-tagline-block { margin-left: auto; margin-right: auto; }
    .footer-legal-inner {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
        gap: 0.35rem;
    }
    .footer-legal-left,
    .footer-legal-right { display: block; width: 100%; text-align: center; }
}
@media (min-width: 1024px) {
    .site-footer .footer-col { margin-top: 0; }
    .site-footer .footer-col-contatti,
    .site-footer .footer-col-collaboratori { padding-top: 1.6rem; }
    .site-footer > .site-footer-inner.container {
        display: grid;
        grid-template-columns: 1.25fr 1fr 1fr;
        gap: 2rem;
        align-items: start;
        text-align: left;
    }
    .site-footer .footer-col-brand { text-align: center; }
}
.site-footer p { margin: 0.5rem 0; color: rgba(255, 255, 255, 0.95); }
.site-footer a {
    color: rgba(255, 255, 255, 0.95);
    transition: color 0.25s ease, border-color 0.25s ease;
}
.site-footer a:hover {
    color: var(--daimon-bianco-morbido);
    border-bottom: 1px dashed var(--daimon-rosa);
}

/* Colonna 1 – Brand + Newsletter */
.footer-logo { margin-bottom: 0.75rem; }
.footer-logo-image {
    height: auto;
    max-width: 280px;
    width: auto;
    display: block;
    margin-left: auto;
    margin-right: auto;
}
.site-footer .footer-tagline-block {
    font-family: var(--daimon-font-subtitle);
    font-size: clamp(0.9rem, 1.4vw, 1.05rem);
    line-height: 1.5;
    color: var(--daimon-bianco);
    border-left: 3px solid var(--daimon-oro);
    padding-left: 1.25rem;
    margin: 0 0 1rem;
    max-width: 20em;
    text-align: left;
}
.site-footer .footer-tagline-title {
    font-weight: 600;
    font-style: normal;
}
.site-footer .footer-tagline-sub {
    font-weight: 300;
    font-style: italic;
}
@media (min-width: 1024px) {
    .site-footer .footer-col-brand .footer-tagline-block { margin-left: auto; margin-right: auto; }
}
/* Riga oro orizzontale "panciuta" (più spessa al centro) */
.footer-tagline-line {
    height: 2px;
    max-width: 12rem;
    margin: 0 auto 1.25rem;
    background: linear-gradient(90deg, transparent 0%, var(--daimon-oro) 20%, var(--daimon-oro) 80%, transparent 100%);
    border-radius: 1px;
}
.site-footer .footer-newsletter-label {
    display: block;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 0.5rem;
}
.site-footer .footer-newsletter-form {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.5rem;
    align-items: center;
    justify-content: flex-start;
    max-width: 100%;
}
/* Solo riga sotto per ogni campo, niente riquadro: reset stili Pico.
   Safari/WebKit: -webkit-appearance none per evitare che il nativo nasconda border-bottom. */
.site-footer .footer-newsletter-form input[type="text"],
.site-footer .footer-newsletter-form input[type="email"] {
    -webkit-appearance: none;
    appearance: none;
    display: block;
    width: 100%;
    min-width: 0;
    height: auto;
    padding: 0.25rem 0 0.35rem;
    margin: 0;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 0;
    background: transparent;
    background-color: transparent;
    color: var(--daimon-bianco);
    font-size: 0.9rem;
    line-height: 1.3;
    box-shadow: none;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}
.site-footer .footer-newsletter-form input[type="text"]:hover,
.site-footer .footer-newsletter-form input[type="email"]:hover {
    border-bottom-color: rgba(255, 255, 255, 0.55);
}
.site-footer .footer-newsletter-form input[type="text"]:focus,
.site-footer .footer-newsletter-form input[type="email"]:focus {
    outline: none;
    border: none;
    border-bottom: 1px solid var(--daimon-oro);
    background-color: rgba(255, 255, 255, 0.04);
    box-shadow: none;
}
@media (max-width: 1023px) {
    .site-footer .footer-newsletter-form input[type="text"],
    .site-footer .footer-newsletter-form input[type="email"] {
        scroll-margin-bottom: 45vh;
    }
}
/* 40:60 tra nome e email; bottone ha spazio riservato così non sborda */
.site-footer .footer-newsletter-input-name {
    flex: 2 1 0;
    min-width: 0;
}
.site-footer .footer-newsletter-input-email {
    flex: 3 1 0;
    min-width: 0;
}
.site-footer .footer-newsletter-input::placeholder { color: rgba(255, 255, 255, 0.5); }
/* Bottone minimo: icona "iscriviti", larghezza fissa così resta in colonna */
.site-footer .footer-newsletter-btn {
    flex: 0 0 2.25rem;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--daimon-oro);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease, background 0.2s ease;
}
.site-footer .footer-newsletter-btn:hover {
    color: var(--daimon-bianco);
    background: rgba(194, 150, 57, 0.3);
}
.site-footer .footer-newsletter-btn-icon-inner {
    display: block;
    width: 1.15rem;
    height: 1.15rem;
    background: currentColor;
    /* Icona: busta con freccia (iscrizione newsletter) */
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3Cline x1='12' y1='13' x2='12' y2='18'/%3E%3Cline x1='16' y1='15' x2='8' y2='15'/%3E%3C/svg%3E") no-repeat center / contain;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3Cline x1='12' y1='13' x2='12' y2='18'/%3E%3Cline x1='16' y1='15' x2='8' y2='15'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Colonne 2 e 3 – Titoli con riga sottile a destra (centrata verticalmente) */
.footer-col-title {
    font-size: 0.75rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--daimon-oro);
    font-weight: 600;
    margin: 0 0 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.footer-col-title-line-right::after {
    content: "";
    flex: 1;
    min-width: 2rem;
    height: 1px;
    background: var(--daimon-oro);
    align-self: center;
}

/* Colonna 2 – Contatti */
.site-footer .footer-contact-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.4rem 0;
    font-size: 0.95rem;
}
.footer-contact-icon {
    flex-shrink: 0;
    width: 1.1rem;
    height: 1.1rem;
    background: currentColor;
    opacity: 0.9;
}
.footer-contact-icon-email {
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E") no-repeat center / contain;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E") no-repeat center / contain;
}
.footer-contact-icon-tel {
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") no-repeat center / contain;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") no-repeat center / contain;
}
.footer-contact-line {
    height: 1px;
    margin: 0.75rem auto;
    max-width: 10rem;
    background: linear-gradient(90deg, var(--daimon-viola-chiaro) 0%, rgba(206, 15, 105, 0.35) 50%, var(--daimon-viola-chiaro) 100%);
    border-radius: 1px;
}
.site-footer .footer-address { font-size: 0.9rem; margin: 0.25rem 0 0.75rem; }
/* Frasi rotanti: blur out / blur in, tutte absolute per evitare scatti */
.footer-phrases {
    position: relative;
    min-height: 4.5em;
    margin-top: 0.75rem;
}
.footer-phrase {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    font-family: var(--daimon-font-subtitle);
    font-weight: 300;
    font-style: italic;
    font-size: clamp(0.9rem, 1.2vw, 1.05rem);
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.9);
    opacity: 0;
    visibility: hidden;
    filter: blur(0);
}
.footer-phrase-active {
    opacity: 1;
    visibility: visible;
}
@media (prefers-reduced-motion: reduce) {
    .footer-phrase-blur-out,
    .footer-phrase-blur-in { animation: none; }
}
.footer-phrase-blur-out {
    animation: footer-phrase-blur-out 0.7s ease-out forwards;
}
.footer-phrase-blur-in {
    animation: footer-phrase-blur-in 0.6s ease-out forwards;
    z-index: 1;
}
@keyframes footer-phrase-blur-out {
    0% { opacity: 1; filter: blur(0); }
    100% { opacity: 0.4; filter: blur(6px); }
}
@keyframes footer-phrase-blur-in {
    0% { opacity: 0.35; filter: blur(6px); }
    100% { opacity: 1; filter: blur(0); }
}

/* Colonna 3 – Collaboratori (card orizzontali: immagine sinistra, nome destra) */
.footer-collab-cards {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.footer-collab-card-h {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    text-decoration: none;
    color: inherit;
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background-color: rgba(255, 255, 255, 0.05);
    transition: border-color 0.25s ease, background-color 0.25s ease;
    min-height: 5rem;
}
.footer-collab-card-h:hover {
    border-color: var(--daimon-oro);
    background-color: rgba(255, 255, 255, 0.08);
}
/* Larghezza fissa area immagine (uguale per tutte le card), molto spazio */
.footer-collab-card-h-img {
    flex: 0 0 200px;
    width: 200px;
    min-height: 90px;
    background-color: rgba(255, 255, 255, 0.1);
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.footer-collab-card-h-img img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}
.footer-collab-card-h-initials {
    display: none;
    position: relative;
    z-index: 1;
    font-family: var(--daimon-font-titoli);
    font-weight: 600;
    font-size: 1.25rem;
    color: rgba(255, 255, 255, 0.8);
}
.footer-collab-card-h-img img[src=""] + .footer-collab-card-h-initials,
.footer-collab-card-h-initials.visible {
    display: flex;
    align-items: center;
    justify-content: center;
}
.footer-collab-card-h-name {
    flex: 1;
    display: flex;
    align-items: center;
    padding: 0.75rem 0.75rem 0.75rem 1rem;
    font-family: var(--daimon-font-subtitle);
    font-size: 0.95rem;
    font-weight: 600;
    text-align: left;
    line-height: 1.18;
    color: var(--daimon-bianco);
}

/* Strip legale: righettina bianca sbiadita + viola scuro, sinistra/destra */
.footer-legal-strip {
    margin-top: var(--section-spacing);
    padding: 0;
    background: var(--daimon-viola-scuro);
}
.footer-legal-line {
    height: 1px;
    background: rgba(255, 255, 255, 0.12);
}
.footer-legal-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem var(--main-padding-x);
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.85);
}
.footer-legal-left { flex-shrink: 0; }
.footer-legal-right a { color: rgba(255, 255, 255, 0.9); }

/* ---------- Toast (messaggi sovraimpressione: newsletter, form, admin) ---------- */
.toast-container {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: min(22rem, calc(100vw - 2rem));
    pointer-events: none;
}
.toast-container:empty { display: none; }
.toast-item {
    pointer-events: auto;
    padding: 0.75rem 1rem 0.75rem 1rem;
    border-radius: var(--radius);
    background: var(--daimon-viola-scuro);
    color: var(--daimon-bianco);
    font-size: 0.9rem;
    line-height: 1.4;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.15);
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    animation: toast-in 0.3s ease-out;
}
.toast-item.toast-success { border-left: 4px solid var(--daimon-oro); }
.toast-item.toast-error { border-left: 4px solid var(--daimon-rosa); }
.toast-item .toast-close {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    border: none;
    background: transparent;
    color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
    margin: -0.15rem -0.15rem 0 0;
    border-radius: var(--radius-sm);
}
.toast-item .toast-close:hover { color: var(--daimon-bianco); background: rgba(255, 255, 255, 0.1); }
.toast-item .toast-text { flex: 1; min-width: 0; }
@keyframes toast-in {
    from { opacity: 0; transform: translateX(1rem); }
    to { opacity: 1; transform: translateX(0); }
}

/* ---------- Main e contenuti ---------- */
main.container {
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
    padding-top: 0.1rem;
    padding-bottom: 0;
    padding-left: var(--main-padding-x);
    padding-right: var(--main-padding-x);
    display: flex;
    flex-direction: column;
    flex: 1; /* Sticky footer: il main occupa lo spazio residuo e tiene il footer in fondo */
}
/* Pagina corso: nessun overflow sugli antenati così position:sticky sulla sidebar funziona */
main:has(.percorso-page--template) {
    overflow: visible;
}
main:has(.percorso-page--template) > article {
    align-self: flex-start;
    flex-shrink: 0;
    width: 100%;
    min-height: min-content;
}

/* Percorsi (template): su mobile elimina padding-top extra su article */
@media (max-width: 767px) { /* --breakpoint-mobile */
    main:has(.percorso-page--template) > article {
        padding-top: 0;
    }
}
/* Ordine esplicito home: "Resta in contatto" sopra "Il prossimo passo" (CTA) */
#newsletter-home { order: 1; }
#cta-finale-new { order: 2; }
main > section:last-child {
    margin-bottom: 0;
}
/* ==========================================================================
   HERO – due sole divisioni (breakpoint in em: accessibilità zoom, Brad Frost)
   (A) sotto 64em: mobile-first verticale, titolo→immagine 16:9→lead→bottoni in altezza viewport
   (B) da 64em: due colonne (testo sx, immagine dx 3:4), tutto a sinistra, bottoni centrati
   ========================================================================== */

.hero-wrapper {
    position: relative;
    /* Nessun margin-bottom: la fascia oro (mobile) o il contenuto (desktop) seguono direttamente */
    margin-bottom: 0;
    background-color: var(--daimon-viola);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: -4.5rem;
    /* padding-top compensa la nav bar fissa; gli elementi interni si distribuiscono nel resto */
    padding-top: calc(4.5rem + clamp(0.5rem, 1.5vh, 1.5rem));
    padding-bottom: clamp(0.75rem, 2vh, 1.5rem);
    padding-left: clamp(1rem, 4vw, 3rem);
    padding-right: clamp(1rem, 4vw, 3rem);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    /* Esattamente la viewport — non min, non di più */
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
}

.hero {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(1.5rem, 3vw, 2.5rem);
    align-items: center;
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    text-align: center;
}

/* (A) Sotto 64em: layout verticale che si adatta all’altezza viewport, niente taglio bottoni */
@media (max-width: 63.99em) {
    .hero-wrapper {
        /* Mobile: il margin-top -4.5rem porta il wrapper sopra il viewport di circa 1.3rem
           (body ha padding-top ~3.18rem per l'header fisso, 3.18 - 4.5 = -1.32rem di offset).
           Compensiamo aumentando l'altezza di quella quantità così il fondo della wrapper
           tocca esattamente il fondo del viewport e non si vede niente sotto. */
        height: calc(100vh + 1.5rem);
        height: calc(100dvh + 1.5rem);
        overflow: hidden;
        padding-top: calc(4.5rem + clamp(0.25rem, 0.8vh, 0.75rem));
        padding-bottom: clamp(0.5rem, 1.5vh, 1rem);
        justify-content: flex-start;
    }
    .hero {
        display: flex;
        flex-direction: column;
        flex: 1;
        min-height: 0;
        gap: 0.35rem;
        text-align: center;
        align-items: center;
        justify-content: space-between;
    }
    .hero-logo {
        order: 2;
        flex: 0 0 auto;
        margin: 0.2rem auto 0;
        /* Riserva spazio: evita CLS mentre carica l'immagine del logo */
        min-height: clamp(3.5rem, 9vw, 5rem);
    }
    .hero-logo img {
        max-height: clamp(3.5rem, 9vw, 5rem);
        max-width: min(220px, 58%);
    }
    .hero-content { display: contents; }
    .hero-micro-claim--desktop { display: none; }
    /* Micro-claim mobile: nascosto nell'hero, va nella fascia oro */
    .hero-micro-claim--mobile { display: none; }
    .hero-title-rotante {
        order: 0;
        flex: 0 0 auto;
        min-width: 0; /* titolo che va a capo invece di andare sotto l'immagine */
        text-align: center;
        margin-bottom: 0;
    }
    .hero-figure {
        order: 1;
        flex: 1 1 0;      /* occupa tutto lo spazio verticale rimasto tra h1 e bottoni */
        min-height: 0;
        max-height: none; /* nessun cap: il flex decide */
        width: min(80vw, 320px);
        margin: 0 auto;
        /* align-self: stretch causerebbe altezza = larghezza del parent, non utile qui */
        align-self: auto;
        display: flex;    /* per far sì che l'img dentro si adatti */
    }
    /* Lead: nascosto nell'hero su mobile (appare nella fascia oro sotto) */
    .hero .lead,
    .hero-content .lead { display: none; }
    /* hero-figure img: riempie il flex container */
    .hero-figure img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center top;
        border-radius: var(--radius-2xl);
    }
    .hero-cta,
    .hero-wrapper .hero-cta {
        order: 6;
        flex: 0 0 auto;
        justify-content: center;
        gap: 1rem;
        margin-top: auto;
        margin-bottom: 0;
    }
.hero-cta .btn {
    /* Uniforma altezza/centratura tra <a> e <button> */
    min-height: var(--button-min-height) !important;
    height: var(--button-min-height) !important;
    line-height: 1 !important;
}
    .hero-cta .btn { font-size: 0.85rem; padding: 0.6rem 1rem; }
    .hero-cta-label--full { display: none; }
    .hero-cta-label--short { display: inline; }
    /* Tipografia (A): leggermente più grande ora che la hero riempie la viewport */
    .hero h1, .hero-title-rotante {
        font-size: clamp(1.5rem, 4.5vw + 0.5rem, 2.25rem);
    }
    .hero-title-rotante { min-height: 3em; }
    .hero .lead, .hero-content .lead {
        font-size: clamp(0.9rem, 1.8vw + 0.3rem, 1.1rem);
    }
}

/* (A) Fascia oro: div fuori da hero-wrapper, tutta larghezza, visibile solo mobile */
.hero-gold-bar {
    display: none; /* nascosta su desktop; mostrata in @media (max-width: 63.99em) */
    margin: 0 0 calc(var(--section-spacing) * 0.25);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 1rem clamp(1rem, 5vw, 3rem) 1.25rem;
    background: var(--daimon-oro);
    color: var(--daimon-viola-scuro);
    text-align: center;
    box-sizing: border-box;
}
/* H2 solo per Marco Penitenti e DAiMON Academy; meta = luogo fuori dall’H2 */
.hero-gold-bar__heading {
    margin: 0;
    display: inline;
    font-family: var(--daimon-font-subtitle);
    font-size: clamp(0.8rem, 1.2vw + 0.2rem, 0.95rem);
    font-weight: 600;
    line-height: 1.6;
}
/* Lead nella fascia oro mobile */
.hero-gold-bar__lead {
    font-family: var(--daimon-font-subtitle);
    font-size: clamp(0.9rem, 2vw + 0.2rem, 1.05rem);
    font-style: italic;
    font-weight: 400;
    color: var(--daimon-viola-scuro);
    margin: 0 0 0.5rem;
    line-height: 1.5;
    letter-spacing: 0.01em;
}
.hero-gold-bar__meta {
    font-family: var(--daimon-font-subtitle);
    font-size: inherit;
    font-weight: 600;
}
@media (max-width: 63.99em) {
    .hero-gold-bar { display: block; }
}

/* (B) Da 64em: micro-claim dentro hero; fascia oro nascosta; margin-bottom ripristinato */
.hero-micro-claim--desktop { display: none; }
@media (min-width: 64em) {
    .hero-wrapper {
        margin-bottom: calc(var(--section-spacing) * 0.5);
        /* Desktop: header sticky (non fixed) occupa spazio nel flusso ~3.18rem,
           margin-top -4.5rem sposta il wrapper in su di 4.5rem → netto ~1.32rem sopra il fold.
           Con height: 100dvh il fondo arriva 1.32rem SOPRA il bordo inferiore del viewport.
           Soluzione: min-height copre almeno tutta la viewport, overflow visible non taglia i bottoni. */
        height: auto;
        min-height: calc(100dvh + 1.5rem);
        overflow: visible;
    }
    .hero-micro-claim--desktop { display: block; margin-top: 1rem; } /* +1rem sotto il lead */
    .hero-gold-bar { display: none !important; }
    .hero-cta-label--short { display: none; }
    .hero-cta-label--full { display: inline; }
}

.hero-content { order: 0; min-width: 0; }
.hero-figure  { order: 1; }

/* Logo scritta DAiMON (bianca): (A) sotto immagine, (B) centrato in alto */
.hero-logo {
    display: block;
    text-align: center;
    line-height: 0;
}
.hero-logo img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    aspect-ratio: 320 / 120;
}

/* (B) Da 64em: due colonne, tutto a sinistra sulla stessa “colonna”, bottoni centrati sotto il testo */
@media (min-width: 64em) {
    .hero {
        grid-template-columns: 1fr min(42vw, 480px);
        grid-template-rows: auto auto;
        gap: clamp(2rem, 4vw, 4rem);
        text-align: left;
        min-height: 0;
        align-items: center;
    }
    .hero-logo {
        grid-column: 1 / -1;
        grid-row: 1;
        justify-self: center;
        margin-bottom: clamp(0.5rem, 1.5vh, 1rem);
    }
    .hero-logo img {
        max-height: clamp(6rem, 12vh, 8.75rem);
        max-width: min(480px, 65vw);
    }
    .hero-content { grid-column: 1; grid-row: 2; display: block; }
    .hero-figure { order: 2; grid-column: 2; grid-row: 2; max-width: none; }
    .hero-title-rotante { text-align: left; }
    .hero-content .lead {
        margin-left: 0;
        margin-right: 0;
        max-width: none;
    }
    .hero-content .hero-micro-claim--desktop {
        text-align: left;
        margin-left: 0;
        margin-right: 0;
        margin-top: 1rem; /* spazio extra sotto il lead */
    }
    .hero-cta { justify-content: center; margin-top: auto; }
}

/* ---------- Immagine hero ---------- */
.hero-figure {
    margin: 0;
    overflow: hidden;
    border-radius: var(--radius-2xl);
    /* Mobile/tablet: proporzione orizzontale, crop al centro */
    aspect-ratio: 16 / 9;
    box-shadow:
        0 16px 40px rgba(0, 0, 0, 0.25),
        0 6px 18px rgba(0, 0, 0, 0.15);
    animation: hero-figure-float 5s ease-in-out infinite;
}

/* (B) Da 64em: immagine ritratto 3:4; (A) sotto 64em resta 16:9 */
@media (min-width: 64em) {
    .hero-figure {
        aspect-ratio: 3 / 4;
        max-height: min(70vh, 560px);
        box-shadow:
            0 24px 56px rgba(0, 0, 0, 0.28),
            0 10px 28px rgba(0, 0, 0, 0.16);
    }
}

.hero-figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center; /* desktop affiancato: nessun offset */
}

@keyframes hero-figure-float {
    0%, 100% { transform: translateY(0px); }
    50%       { transform: translateY(-7px); }
}

/* ---------- Tipografia hero: scalatura fluida con vw ---------- */
/* H1: la chiave è usare vw nell'unità centrale di clamp() così il testo
   si rimpicciolisce proporzionalmente al ridimensionamento della finestra,
   senza mai scendere sotto il min né superare il max. */
.hero h1,
.hero-title-rotante {
    font-family: var(--daimon-font-titoli);
    /* mobile → desktop: 1.6rem → ~3rem, scala fluida con 4.5vw */
    font-size: clamp(1.6rem, 4.5vw + 0.5rem, 3rem);
    line-height: 1.2; /* molto vicina, aria sufficiente per leggere con chiarezza */
    margin-bottom: 0;
}

/* (B) Da 64em: colonna testo più stretta, curva tipografia più ripida */
@media (min-width: 64em) {
    .hero h1,
    .hero-title-rotante {
        font-size: clamp(1.8rem, 3.2vw + 0.6rem, 3.2rem);
        line-height: 1.2;
    }
}

/* Altezza contenitore frasi rotanti: basata su em così scala con il font */
.hero-title-rotante {
    display: grid;
    grid-template-areas: "stack";
    min-height: 4.2em; /* ~3 righe a line-height 1.2 + margine */
    margin-bottom: 0.5rem;
    position: relative;
}
.hero .hero-title-rotante {
    margin-bottom: 0.9rem;
}

.hero-title-main { color: var(--daimon-oro); display: block; }
.hero-title-sub  { color: #f8f8f2; display: block; margin-top: -0.12em; }

/* Lead */
.hero .lead,
.hero-content .lead {
    font-size: clamp(0.95rem, 1.8vw + 0.3rem, 1.2rem);
    line-height: 1.6;
    color: rgba(248, 248, 242, 0.88);
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    max-width: 52ch;
}

/* Micro-claim: sempre centrato, su due righe */
.hero-micro-claim {
    font-family: var(--daimon-font-subtitle);
    font-size: clamp(0.8rem, 1.2vw + 0.2rem, 0.95rem);
    letter-spacing: 0.06em;
    color: var(--daimon-oro);
    margin-bottom: 1.25rem;
    margin-top: 0.5rem;
    text-align: center;
    line-height: 1.6;
    opacity: 0.85;
}

.hero p { margin-bottom: 0.5rem; }
.hero p:last-of-type { margin-bottom: 0; }

/* Hero senza sfondo esterno: solo testo e CTA (immagini non DAIMON rimosse) */
.hero.has-bg {
    position: relative;
    padding: var(--hero-padding);
    border-radius: var(--radius);
    color: var(--daimon-testo);
}
.hero-micro-claim {
    font-family: var(--daimon-font-subtitle);
    font-size: 1rem;
    letter-spacing: 0.1em;
    margin-bottom: 0;
    color: rgba(248, 248, 242, 0.92);
}
/* (A) mobile: micro-claim dentro hero (testo su viola), nascosto su desktop */
.hero-micro-claim--mobile {
    display: none;
}
.cta-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--button-gap);
    margin-top: 0.9rem;
    margin-bottom: 0;
}
.hero-wrapper .hero-cta {
    display: flex;
    flex-wrap: nowrap;
    margin-top: 0.9rem;
    margin-bottom: 0;
    gap: var(--button-gap);
}
.hero-wrapper .hero-cta .btn {
    /* Forza uniformita' altezza tra i bottoni della Hero (link <a> e <button>) */
    min-height: var(--button-min-height) !important;
    height: var(--button-min-height) !important;
    line-height: 1 !important;
    box-sizing: border-box;
}
@media (min-width: 768px) {
    .cta-buttons { margin-top: 3.5rem; }
    .hero-wrapper .hero-cta { margin-top: 3.5rem; }
}
@media (max-width: 63.99em) {
    .hero-wrapper .hero-cta { gap: 1.25rem; }
    .hero-wrapper .hero-cta button[data-cal-link] {
        /* CTA Call leggermente piu' compatta su mobile per dare aria alla freccia/seconda CTA */
        padding-left: 0.85rem !important;
        padding-right: 0.85rem !important;
    }
}
/* Su sfondo viola: primary e secondary oro (giallo-oro), secondary outline */
.hero-wrapper .hero-cta a[role="button"]:not(.secondary) {
    background: var(--daimon-oro) !important;
    color: var(--daimon-viola) !important;
    border: 2px solid var(--daimon-oro);
}
.hero-wrapper .hero-cta button.btn-primary {
    background: var(--daimon-oro) !important;
    color: var(--daimon-viola) !important;
    border: 2px solid var(--daimon-oro);
}
.hero-wrapper .hero-cta a[role="button"]:not(.secondary):hover {
    background: var(--daimon-oro-hover) !important;
    color: var(--daimon-viola) !important;
    border-color: var(--daimon-oro-hover);
}
.hero-wrapper .hero-cta button.btn-primary:hover {
    background: var(--daimon-oro-hover) !important;
    color: var(--daimon-viola) !important;
    border-color: var(--daimon-oro-hover);
}
/* Secondary: outline oro, angolo smussato, hover bg oro e testo viola */
.hero-cta a.secondary, .cta-buttons a.secondary,
a[role="button"].secondary {
    background: transparent !important;
    color: var(--daimon-oro) !important;
    border: 2px solid var(--daimon-oro);
    border-radius: 0.5rem;
    padding: 0.75rem 2rem;
    transition: background-color var(--transition-smooth), color var(--transition-smooth), border-color var(--transition-smooth);
}
.hero-wrapper .hero-cta a.secondary {
    color: var(--daimon-oro) !important;
    border-color: var(--daimon-oro) !important;
}
.hero-wrapper .hero-cta a.secondary:hover {
    background: var(--daimon-oro) !important;
    color: var(--daimon-viola-scuro) !important;
    border-color: var(--daimon-oro);
}
.hero-cta a.secondary:hover, .cta-buttons a.secondary:hover,
a[role="button"].secondary:hover {
    background: var(--daimon-oro) !important;
    color: var(--daimon-bianco) !important;
    border-color: var(--daimon-oro);
}
/* Accessibilità: focus visibile per tastiera (WCAG 2.4.7) */
.hero-cta a:focus-visible,
.hero-cta button:focus-visible,
.cta-buttons a:focus-visible {
    outline: 2px solid var(--daimon-viola);
    outline-offset: 2px;
}
.hero-wrapper .hero-cta a:focus-visible {
    outline-color: var(--daimon-oro);
}
.hero-wrapper .hero-cta button:focus-visible {
    outline-color: var(--daimon-oro);
}
.hero-cta a.secondary:focus-visible,
.cta-buttons a.secondary:focus-visible {
    outline-color: var(--daimon-viola);
}

/* Home: sezioni e metodo (breathing: 8–12rem desktop, 4–6rem mobile) */
.home-section { margin-top: var(--section-spacing); }
@media (min-width: 1024px) {
    .home-section { margin-top: var(--section-spacing-desktop); }
}
.metodo-grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr;
    margin-top: 1rem;
}
@media (min-width: 768px) { /* --breakpoint-tablet */
    .metodo-grid { grid-template-columns: repeat(3, 1fr); }
}
.metodo-card h3 { margin-top: 0; }

/* Home: Cosa cerchi? (sezione valore / intenti) */
.valore-intro {
    margin-top: 0.5rem;
    margin-bottom: 1rem;
    max-width: 42rem;
    color: var(--daimon-testo-muted, #555);
}
.valore-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
    margin-top: 1rem;
}
@media (min-width: 768px) {
    .valore-grid { grid-template-columns: repeat(2, 1fr); gap: 2rem; }
}
@media (min-width: 1024px) {
    .valore-grid { gap: 3rem; }
}
.valore-card h3 { margin-top: 0; margin-bottom: 0.75rem; font-size: 1.1rem; }
.valore-card ul {
    margin: 0 0 1rem;
    padding-left: 1.25rem;
}
.valore-card ul li { margin-bottom: 0.35rem; }
.valore-card p:last-of-type { margin-bottom: 0; }
.valore-card p:last-of-type a {
    font-weight: 600;
    text-decoration: none;
}
.valore-card p:last-of-type a:hover { text-decoration: underline; }
.valore-cta-secondary {
    margin-top: 1.5rem;
    margin-bottom: 0;
    font-size: 0.95rem;
    color: var(--daimon-testo-muted, #555);
}
.valore-cta-secondary a { font-weight: 600; }

/* Home: Orientamento (4 card premium: rounded-xl, shadow, hover scale) */
.orientamento-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: var(--daimon-bg);
    border: 1px solid var(--daimon-border-light);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-card);
    transition: box-shadow var(--transition-smooth), transform var(--transition-smooth), border-color var(--transition-smooth), background-color var(--transition-smooth);
}
.orientamento-card:hover {
    box-shadow: var(--shadow-card-hover);
    transform: scale(1.03);
    border-color: var(--daimon-oro);
    background-color: var(--daimon-bg);
}
.orientamento-card:focus-visible {
    outline: 2px solid var(--daimon-viola);
    outline-offset: 2px;
}
.orientamento-card .orientamento-card-link {
    font-weight: 600;
    color: var(--daimon-viola);
    font-size: 0.95rem;
}
.orientamento-card:hover .orientamento-card-link {
    text-decoration: underline;
    color: var(--daimon-oro);
}

/* Home: due colonne (Testimonianze+Approfondimenti, Per chi è/Per chi non è) */
.home-two-cols {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--section-spacing);
    margin-top: 1rem;
    align-items: start;
}
@media (min-width: 768px) { /* --breakpoint-tablet */
    .home-two-cols {
        grid-template-columns: 1fr 1fr;
        gap: var(--section-spacing);
    }
}
.home-two-cols-col {
    min-width: 0;
}
#testimonianze-approfondimenti .home-two-cols-col h2 {
    margin-top: 0;
}
#testimonianze-approfondimenti .home-two-cols-col:first-child h2,
#testimonianze-approfondimenti .home-two-cols-col h2 {
    margin-bottom: 0.75rem;
}
/* Su mobile: prima Dal Magazine, poi Cosa dicono le persone (ordine DOM) */
@media (max-width: 767px) {
    .home-two-cols-magazine-reviews {
        display: flex;
        flex-direction: column;
    }
    .home-two-cols-magazine-reviews #dal-magazine { order: 1; }
    .home-two-cols-magazine-reviews #testimonianze { order: 2; }
}

/* Home: Quando non sei tu a scegliere (blocchi + quote) */
.riconoscimento-blocks {
    max-width: 36rem;
    margin-top: 1rem;
}
.riconoscimento-blocks p { margin: 0 0 1rem; }
.riconoscimento-lead { font-size: 1.05rem; }
.home-quote {
    margin: 1.25rem 0 0;
    padding: 1rem 1.25rem;
    border-left: 4px solid var(--daimon-rosa);
    font-family: var(--daimon-font-subtitle);
    font-size: 1.1rem;
    color: var(--daimon-viola-scuro);
    background: rgba(248, 248, 242, 0.6);
    border-radius: 0 var(--radius) var(--radius) 0;
}
.home-quote-rosa { border-left-color: var(--daimon-rosa); }

/* Home: Come lavoriamo */
.come-lavoriamo-inner { max-width: 36rem; margin-top: 1rem; }
.come-lavoriamo-inner p { margin: 0 0 0.75rem; }
.come-lavoriamo-chiusura {
    margin-top: 1rem;
    font-family: var(--daimon-font-subtitle);
    color: var(--daimon-viola-scuro);
}

/* Home: Per chi è / Per chi non è (due colonne, card) */
.per-chi-cols .per-chi-col {
    min-width: 0;
}
.per-chi-cols .per-chi-col.card {
    padding: var(--card-padding);
    border-radius: var(--radius-xl);
    border: 1px solid var(--daimon-border-light);
    background: var(--daimon-bg);
    box-shadow: var(--shadow-card);
    transition: box-shadow var(--transition-smooth), border-color var(--transition-smooth);
}
.per-chi-cols .per-chi-col.card:hover {
    box-shadow: var(--shadow-card-hover);
    border-color: var(--daimon-viola);
}
.per-chi-col-si.card { border-left: 4px solid var(--daimon-oro); }
.per-chi-col-no.card { border-left: 4px solid var(--daimon-testo-muted); }
.per-chi-cols .per-chi-col h3 {
    margin-top: 0;
    margin-bottom: 0.75rem;
    font-size: 1.1rem;
}
.per-chi-cols .per-chi-col p {
    margin: 0 0 0.5rem;
}
.per-chi-cols .per-chi-col p:last-child {
    margin-bottom: 0;
}

/* Home: Percorsi individuali + Percorsi di gruppo (due colonne) */
.percorsi-individuali-gruppo {
    align-items: start;
}
.percorsi-individuali-gruppo .percorsi-col {
    min-width: 0;
}
.percorsi-individuali-gruppo .percorsi-col h2 {
    margin-top: 0;
}
.percorsi-individuali-gruppo .cta-buttons {
    margin-top: 1rem;
}

/* Home: tre card (Percorsi gruppo, Aziende, Ragazzi) in riga */
.home-three-cards {
    display: grid;
    gap: var(--section-spacing);
    grid-template-columns: 1fr;
    margin-top: 1rem;
}
@media (min-width: 768px) {
    .home-three-cards { grid-template-columns: repeat(3, 1fr); }
}
.home-offer-card {
    display: block;
    padding: var(--card-padding);
    border-radius: var(--radius-xl);
    border: 1px solid var(--daimon-border-light);
    background: var(--daimon-bg);
    box-shadow: var(--shadow-card);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--transition-smooth), box-shadow var(--transition-smooth), transform var(--transition-smooth);
}
.home-offer-card:hover {
    border-color: var(--daimon-oro);
    box-shadow: var(--shadow-card-hover);
    transform: scale(1.02);
}
.home-offer-card h3 {
    margin: 0 0 0.5rem;
    font-size: 1.1rem;
    color: var(--daimon-viola);
}
.home-offer-card p {
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
    line-height: 1.45;
}
.home-offer-card-link {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--daimon-rosa);
}
.home-offer-card:hover .home-offer-card-link {
    text-decoration: underline;
}

/* Home: liste bullet minimal (Riconoscimento, Percorsi individuali, ecc.) */
.home-list-minimal {
    list-style-type: disc;
    padding-left: 1.25rem;
    margin: 0.75rem 0 1rem;
    color: var(--daimon-testo-muted);
}
.home-list-minimal li {
    margin-bottom: 0.35rem;
}

/* Home: chiusura CTA finale */
.cta-finale-quote {
    font-family: var(--daimon-font-subtitle);
    font-size: 1.15rem;
    line-height: 1.5;
    margin-bottom: 1.5rem;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.cta-finale-buttons {
    text-align: center;
    margin-top: 1.5rem;
    margin-bottom: 0;
}
.cta-finale-buttons .cta-finale-btn {
    display: inline-block;
}
.cta-finale-btn {
    font-size: 1.05rem;
    padding: var(--button-padding-y) var(--button-padding-x);
    min-height: var(--button-min-height);
}

/* Home: Chi è Marco (immagine + testo) */
.home-marco-inner {
    display: grid;
    gap: 1.5rem;
    margin-top: 1rem;
    align-items: start;
}
@media (min-width: 768px) { /* --breakpoint-tablet */
    .home-marco-inner { grid-template-columns: 280px 1fr; }
}
.home-marco-figure {
    margin: 0;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.home-marco-figure img {
    width: 100%;
    height: auto;
    display: block;
    vertical-align: top;
}
.home-marco-text p { margin: 0 0 0.75rem; }
.home-marco-text p:last-of-type { margin-bottom: 0; }

/* Home: testimonianze */
.testimonials-list {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr;
    margin-top: 1rem;
}
@media (min-width: 768px) { /* --breakpoint-tablet */
    .testimonials-list { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) { /* --breakpoint-desktop */
    .testimonials-list { grid-template-columns: repeat(3, 1fr); }
    .testimonials-list .testimonial-item:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        max-width: 33.333%;
        margin-left: auto;
        margin-right: auto;
    }
}
.testimonial-item {
    margin: 0;
    border-left: 3px solid var(--daimon-rosa);
    padding-left: 1rem;
}
.testimonial-item footer {
    margin-top: 0.75rem;
    font-size: 0.95rem;
    color: var(--daimon-testo-muted);
    font-style: normal;
}
.testimonials-cta {
    margin-top: 1.5rem;
    margin-bottom: 0;
    text-align: center;
}
.testimonials-cta a {
    display: inline-block;
    padding: 0.5rem 1rem;
    border: 2px solid var(--daimon-rosa);
    border-radius: var(--daimon-radius);
    color: var(--daimon-rosa);
    text-decoration: none;
    font-weight: 600;
    transition: background-color 0.2s, color 0.2s;
}
.testimonials-cta a:hover {
    background-color: var(--daimon-rosa);
    color: var(--daimon-bianco);
}
.testimonials-cta a:focus-visible {
    outline: 2px solid var(--daimon-rosa);
    outline-offset: 2px;
}

/* Recensioni Google: intro, valutazione complessiva, link sobrio */
.reviews-google-meta {
    margin-bottom: 1rem;
    font-size: 0.95rem;
}
.reviews-google-intro {
    margin-top: 0.25rem;
    margin-bottom: 0.5rem;
    color: var(--daimon-testo-muted);
    font-size: 1rem;
}
.reviews-google-intro .reviews-stars-inline {
    color: var(--daimon-oro);
    letter-spacing: 0.05em;
}
.reviews-link-google {
    display: inline-block;
    margin-top: 0.25rem;
    color: var(--daimon-rosa);
    text-decoration: none;
    font-size: 0.9rem;
}
.reviews-link-google:hover {
    text-decoration: underline;
}
.reviews-link-google:focus-visible {
    outline: 2px solid var(--daimon-rosa);
    outline-offset: 2px;
}

/* Carousel Magazine + Recensioni: struttura comune, frecce fuori, stessa altezza */
.carousel-subtitle {
    margin: 0 0 0.5rem;
    font-size: 0.95rem;
    color: var(--daimon-testo-muted);
}
.carousel-link-bottom {
    margin-top: 0.75rem;
    margin-bottom: 0;
}
.carousel-link-bottom a {
    color: var(--daimon-rosa);
    text-decoration: none;
}
.carousel-link-bottom a:hover { text-decoration: underline; }
.home-carousel-cols-equal .carousel-col {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.home-carousel-cols-equal .carousel-outer {
    flex: 1;
    min-height: 280px;
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    margin-top: 0;
    margin-bottom: 0;
}
.home-carousel-cols-equal .carousel-outer .magazine-carousel,
.home-carousel-cols-equal .carousel-outer .reviews-carousel {
    flex: 1;
    min-width: 0;
}
.carousel-arrow {
    flex-shrink: 0;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: 2px solid var(--daimon-rosa);
    border-radius: 50%;
    background: var(--daimon-bianco);
    color: var(--daimon-rosa);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}
.carousel-outer-magazine .carousel-arrow { display: none !important; }
.carousel-outer-magazine { display: flex; flex-direction: column; width: 100%; }
.carousel-arrow:hover {
    background: var(--daimon-rosa);
    color: var(--daimon-bianco);
}
.carousel-arrow:focus-visible {
    outline: 2px solid var(--daimon-rosa);
    outline-offset: 2px;
}
@media (max-width: 767px) {
    .carousel-arrow { display: none !important; }
    .home-carousel-cols-equal .carousel-outer { gap: 0; }
}

/* Carousel recensioni: wrapper legacy (ora usa .carousel-outer) */
.reviews-carousel-outer {
    position: relative;
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
}
.reviews-carousel-arrow {
    display: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 2px solid var(--daimon-rosa);
    border-radius: 50%;
    background: var(--daimon-bianco);
    color: var(--daimon-rosa);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.reviews-carousel-arrow:hover {
    background: var(--daimon-rosa);
    color: var(--daimon-bianco);
}
.reviews-carousel-arrow:focus-visible {
    outline: 2px solid var(--daimon-rosa);
    outline-offset: 2px;
}
.reviews-carousel-prev { left: 0.5rem; }
.reviews-carousel-next { right: 0.5rem; }
.reviews-carousel-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
}
/* Recensioni: 1–3 colonne in base alla larghezza, auto-scroll senza frecce */
.carousel-outer-reviews {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
}
.carousel-outer-reviews .carousel-arrow {
    display: none !important;
}
.reviews-carousel {
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.reviews-carousel::-webkit-scrollbar {
    display: none;
}
@media (prefers-reduced-motion: reduce) {
    .reviews-carousel { scroll-behavior: auto; }
}
.reviews-carousel-track {
    display: flex;
    gap: 1.25rem;
    width: max-content;
    min-height: 1px;
}
/* Larghezza card e track impostate da JS in px per 1/2/3 colonne corrette */
.reviews-carousel-card {
    flex: 0 0 auto;
    min-width: 0;
    box-sizing: border-box;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    background: var(--daimon-bg);
    border: 1px solid var(--daimon-border-light);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-card);
    padding: var(--card-padding);
    height: 320px;
    display: flex;
    flex-direction: column;
}
.reviews-carousel-card .review-card-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    flex-shrink: 0;
}
.review-card-author-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    flex-shrink: 0;
}
.review-author-photo-wrap {
    line-height: 0;
}
.review-author-photo {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}
.review-author-name-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    text-align: center;
}
.review-author-name-block .review-stars {
    width: auto;
}
.review-author-link {
    flex-shrink: 0;
    line-height: 0;
}
.review-card-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.5rem;
    min-width: 0;
}
.review-stars {
    color: var(--daimon-oro);
    font-size: 0.95rem;
    letter-spacing: 0.03em;
    width: 100%;
}
.review-author {
    font-weight: 600;
    font-size: 0.95rem;
}
a.review-author {
    color: inherit;
    text-decoration: none;
}
a.review-author:hover {
    text-decoration: underline;
    color: var(--daimon-rosa);
}
.review-relative-time {
    font-size: 0.8rem;
    color: var(--daimon-testo-muted);
    font-weight: normal;
}
.reviews-carousel-card .review-text {
    flex: 1;
    min-height: 0;
    min-width: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overflow-wrap: break-word;
}
.reviews-carousel-card .review-text::-webkit-scrollbar {
    width: 6px;
}
.reviews-carousel-card .review-text::-webkit-scrollbar-track {
    background: var(--daimon-grigio-caldo);
    border-radius: 3px;
}
.reviews-carousel-card .review-text::-webkit-scrollbar-thumb {
    background: var(--daimon-border-light);
    border-radius: 3px;
}
.reviews-carousel-card .review-text p {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.45;
    overflow-wrap: break-word;
    word-wrap: break-word;
}

/* Home: carousel Dal Magazine (un articolo alla volta, come recensioni) */
.magazine-carousel-outer {
    position: relative;
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
}
.magazine-carousel-arrow {
    display: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 2px solid var(--daimon-viola);
    border-radius: 50%;
    background: var(--daimon-bianco);
    color: var(--daimon-viola);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.magazine-carousel-arrow:hover {
    background: var(--daimon-viola);
    color: var(--daimon-bianco);
}
.magazine-carousel-arrow:focus-visible {
    outline: 2px solid var(--daimon-viola);
    outline-offset: 2px;
}
.magazine-carousel-prev { left: 0.5rem; }
.magazine-carousel-next { right: 0.5rem; }
@media (min-width: 768px) {
    .magazine-carousel-arrow { display: flex; align-items: center; justify-content: center; }
}
@media (max-width: 767px) {
    .magazine-carousel-arrow { display: flex; align-items: center; justify-content: center; }
}
.magazine-carousel {
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.magazine-carousel::-webkit-scrollbar { display: none; }
@media (max-width: 767px) {
    .magazine-carousel::-webkit-scrollbar { display: block; height: 6px; }
    .magazine-carousel { scrollbar-width: auto; -ms-overflow-style: auto; }
}
@media (prefers-reduced-motion: reduce) {
    .magazine-carousel { scroll-behavior: auto; }
}
.magazine-carousel-track {
    display: flex;
    width: max-content;
    min-height: 1px;
    gap: 1.25rem;
}
/* Larghezza card impostata da JS (1/2/3 colonne come recensioni) */
.magazine-carousel-card {
    flex: 0 0 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    background: var(--daimon-bg);
    border: 1px solid var(--daimon-border-light);
    border-radius: var(--radius-xl);
    /* Ombra oro applicata via #magazine-section .magazine-carousel-card (override su .card) */
    overflow: hidden;
    transition: box-shadow var(--transition-ease);
}
.magazine-carousel-card-image-link {
    flex-shrink: 0;
    display: block;
    overflow: hidden;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    aspect-ratio: 16 / 10;
    margin: calc(-1 * var(--card-padding)) calc(-1 * var(--card-padding)) 0;
}
.magazine-carousel-card-image-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.magazine-carousel-card-body {
    padding: var(--card-padding);
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}
.magazine-carousel-card-title {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
}
.magazine-carousel-card-title a {
    color: inherit;
    text-decoration: none;
}
.magazine-carousel-card-title a:hover {
    text-decoration: underline;
    color: var(--daimon-viola);
}
.magazine-carousel-card-meta {
    color: var(--daimon-testo-muted);
    font-size: 0.9rem;
    margin: 0 0 0.5rem;
}
.magazine-carousel-card-excerpt {
    font-size: 0.9rem;
    margin: 0 0 0.75rem;
    line-height: 1.45;
    flex: 1;
    min-height: 0;
    color: var(--daimon-testo-muted);
}
.magazine-carousel-card-cta {
    margin: 0;
    margin-top: auto;
    display: inline-block;
    min-height: var(--button-min-height);
    padding: var(--button-padding-y) var(--button-padding-x);
    border-radius: var(--radius);
    background: transparent;
    color: var(--daimon-viola);
    border: 2px solid var(--daimon-viola);
    text-decoration: none;
    line-height: 1.3;
    box-sizing: border-box;
    width: fit-content;
}
.magazine-carousel-card-cta:hover {
    background: rgba(55, 15, 103, 0.08);
    color: var(--daimon-viola-scuro);
}
/* Header Magazine: label sopra, poi "Dal Magazine" e nav sulla stessa riga (bottom-line) */
#magazine-section .magazine-header-row {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 2.5rem;
}
#magazine-section .magazine-title-nav-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
}
#magazine-section .magazine-title-nav-row .section-title {
    margin-bottom: 0;
}
/* Frecce discrete: cerchio vuoto, allineate al link "Tutti gli articoli", hover rosa */
.magazine-nav-and-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
/* Allineamento verticale con i cerchi: stessa linea del titolo "Dal Magazine" (baseline) */
.magazine-link-all {
    margin: 0;
    color: var(--daimon-viola);
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.65rem;
    min-height: 1.65rem;
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}
/* Cerchi e link sulla stessa baseline così allineati alla scritta "Tutti gli articoli" e al titolo */
#magazine-section .magazine-nav-and-link {
    align-items: baseline;
}
#magazine-section button.magazine-carousel-nav {
    width: 1.65rem;
    height: 1.65rem;
    min-height: 0;
    padding: 0;
    margin-bottom: 3px;
    border: 1px solid var(--daimon-border-light);
    border-radius: 50%;
    background: transparent !important;
    background-color: transparent !important;
    color: var(--daimon-viola) !important;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
    flex-shrink: 0;
    transition: color var(--transition-ease), border-color var(--transition-ease), background-color var(--transition-ease);
}
#magazine-section button.magazine-carousel-nav:hover {
    background: var(--daimon-rosa) !important;
    background-color: var(--daimon-rosa) !important;
    color: var(--daimon-bianco) !important;
    border-color: var(--daimon-rosa);
    box-shadow: none;
}
#magazine-section button.magazine-carousel-nav:focus-visible {
    outline: 2px solid var(--daimon-viola);
    outline-offset: 2px;
}
.magazine-link-all:hover {
    text-decoration: underline;
}

/* Home: evento in evidenza, approfondimenti */
.events-list {
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr;
    margin-top: 1rem;
}
@media (min-width: 1024px) {
    .events-list { gap: 3rem; }
}
@media (min-width: 768px) {
    .events-list { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .events-list { grid-template-columns: repeat(3, 1fr); }
}
/* Card eventi: stile premium (rounded-xl, shadow, hover) */
.event-highlight-card {
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
    background: var(--daimon-bg) !important;
    border: 1px solid var(--daimon-border-light) !important;
    border-radius: var(--radius-xl) !important;
    box-shadow: var(--shadow-card);
    transition: box-shadow var(--transition-smooth), transform var(--transition-smooth), border-color var(--transition-smooth);
}
.event-highlight-card:hover {
    box-shadow: var(--shadow-card-hover);
    transform: scale(1.02);
    border-color: var(--daimon-viola) !important;
}
.events-list .event-highlight-card {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}
.event-date { margin-bottom: 0.5rem; }
.magazine-preview-cards {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr;
    margin-top: 1rem;
}
@media (min-width: 768px) { /* --breakpoint-tablet */
    .magazine-preview-cards { grid-template-columns: repeat(3, 1fr); }
}
.magazine-preview-cards .article-meta { color: var(--daimon-testo-muted); font-size: 0.95rem; margin-bottom: 0.5rem; }
.magazine-preview-cards .card p:last-of-type a {
    display: inline-block;
    min-height: var(--button-min-height);
    padding: var(--button-padding-y) var(--button-padding-x);
    border-radius: var(--radius);
    background: transparent !important;
    color: var(--daimon-viola) !important;
    border: 2px solid var(--daimon-viola);
    text-decoration: none;
    margin-top: 0.5rem;
    line-height: 1.3;
    box-sizing: border-box;
}
.magazine-preview-cards .card p:last-of-type a:hover {
    background: rgba(55, 15, 103, 0.08) !important;
    color: var(--daimon-viola-scuro) !important;
}

/* Card percorsi con immagine */
.path-card-image {
    margin: calc(-1 * var(--card-padding)) calc(-1 * var(--card-padding)) 1rem;
    overflow: hidden;
    border-radius: var(--radius) var(--radius) 0 0;
    aspect-ratio: var(--aspect-card);
}
.path-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* ---------- Card e griglie ---------- */
.card {
    padding: var(--card-padding);
    border-radius: var(--radius);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    transition: transform var(--transition-ease), box-shadow var(--transition-ease);
    border: 1px solid rgba(55, 15, 103, 0.08);
}
.card h3 { margin-top: 0; margin-bottom: 0.5rem; }
.card h4 { font-size: 1rem; margin-bottom: 0.5rem; color: var(--daimon-testo-muted); }
.card p { margin-bottom: 0.5rem; }
.card p:last-child { margin-bottom: 0; }
.card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(55, 15, 103, 0.12);
}
.card a[role="button"],
.card .pico button,
.card button {
    background: var(--daimon-viola);
    color: var(--daimon-bianco);
    margin-top: 0.5rem;
}
.card a[role="button"]:hover,
.card .pico button:hover,
.card button:hover {
    background: var(--daimon-viola-scuro);
    color: var(--daimon-bianco);
}

/* Card carousel Magazine: ombra giallo-oro DAIMON (vince su .card), iniziale leggera, hover più stacco */
#magazine-section .magazine-carousel-card {
    box-shadow: 0 6px 18px rgba(201, 162, 39, 0.22), 0 2px 8px rgba(201, 162, 39, 0.1);
    transform: none;
}
#magazine-section .magazine-carousel-card:hover {
    box-shadow: 0 16px 40px rgba(201, 162, 39, 0.28), 0 6px 16px rgba(201, 162, 39, 0.14);
    transform: none;
}

.event-cards, .path-cards, .sessioni-cards, .collaboratori-cards {
    --pico-grid-columns: 1;
    gap: 1.25rem;
}
/* Percorsi di gruppo: max 2 colonne e card larghe per leggibilità (no colonne strette) */
.path-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}
.path-cards .card { min-width: 0; }
.path-card p:last-of-type a {
    display: inline-block;
    min-height: var(--button-min-height);
    padding: var(--button-padding-y) var(--button-padding-x);
    border-radius: var(--radius);
    background: transparent !important;
    color: var(--daimon-viola) !important;
    border: 2px solid var(--daimon-viola);
    text-decoration: none;
    margin-top: 0.5rem;
    line-height: 1.3;
    box-sizing: border-box;
}
.path-card p:last-of-type a:hover {
    background: rgba(55, 15, 103, 0.08) !important;
    color: var(--daimon-viola-scuro) !important;
}
@media (min-width: 768px) { /* --breakpoint-tablet */
    .path-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) { /* --breakpoint-desktop */
    .path-cards { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
}
@media (min-width: 768px) { /* --breakpoint-tablet */
    .path-cards .path-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        max-width: 50%;
        margin-left: auto;
        margin-right: auto;
    }
}
@media (min-width: 768px) { /* --breakpoint-tablet */
    .event-cards { --pico-grid-columns: 2; }
    .sessioni-cards { --pico-grid-columns: 3; }
    .collaboratori-cards { --pico-grid-columns: 2; }
}
@media (min-width: 1024px) { /* --breakpoint-desktop */
    .event-cards { --pico-grid-columns: 4; }
    .sessioni-cards { --pico-grid-columns: 3; }
    .collaboratori-cards { --pico-grid-columns: 2; }
}

.intro-percorsi { margin-bottom: 1.5rem; max-width: 48rem; }
.intro-percorsi p { margin-bottom: 0.75rem; }
.intro-percorsi em { font-family: var(--daimon-font-subtitle); color: var(--daimon-oro); font-style: normal; }

/* Sessioni individuali: griglia esplicita 1col mobile, 3col desktop */
.sessioni-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    margin-top: 1rem;
}
@media (min-width: 768px) {
    .sessioni-cards { grid-template-columns: repeat(3, 1fr); }
}
.sessioni-cards .card { min-width: 0; }
.sessioni-cards .card h3 { margin-top: 0; }
.sessioni-cards .card ol {
    padding-left: 1.25rem;
    margin: 0.75rem 0 1rem;
    color: var(--daimon-testo-muted);
}
.sessioni-cards .card ol li { margin-bottom: 0.35rem; }
.sessioni-cards .card p:last-of-type a {
    display: inline-block;
    min-height: var(--button-min-height);
    padding: var(--button-padding-y) var(--button-padding-x);
    border-radius: var(--radius);
    background: transparent !important;
    color: var(--daimon-viola) !important;
    border: 2px solid var(--daimon-viola);
    text-decoration: none;
    margin-top: 0.5rem;
    line-height: 1.3;
    box-sizing: border-box;
}
.sessioni-cards .card p:last-of-type a:hover {
    background: rgba(55, 15, 103, 0.08) !important;
    color: var(--daimon-viola-scuro) !important;
}

/* Come nasce il Teatro Olistico */
.block-teatro-olistico { max-width: 48rem; margin-top: 1rem; }
.block-teatro-olistico h3 {
    font-family: var(--daimon-font-subtitle);
    color: var(--daimon-oro);
    margin-bottom: 0.75rem;
}
.block-teatro-olistico .home-quote {
    border-left-color: var(--daimon-oro);
    background: rgba(248, 248, 242, 0.08);
    color: var(--daimon-bianco-morbido);
}
.block-teatro-olistico .home-quote a {
    color: var(--daimon-oro);
}
.block-teatro-olistico .home-quote a:hover {
    color: var(--daimon-bianco);
}

/* Percorsi di gruppo card: ordered list stile coerente */
.path-card ol {
    padding-left: 1.25rem;
    margin: 0.75rem 0 1rem;
    color: var(--daimon-testo-muted);
}
.path-card ol li { margin-bottom: 0.35rem; }

.card-ultimo-articolo time { color: var(--daimon-testo-muted); }

/* Sezione contatti (due blocchi h2) */
.section-contatti h2:not(:first-of-type) { margin-top: 1.5rem; }
.section-contatti p { margin-bottom: 0.5rem; }
.section-contatti p:last-child { margin-bottom: 0; }

/* Pagine interne: section non prima figlia (es. Contatti) */
main > section:not(:first-child) { margin-top: var(--section-spacing); }

/* Contenuto pagina/percorso da DB */
.page-body { margin-top: 0.75rem; }
.page-body p { margin-bottom: 0.75rem; }
.page-body p:last-child { margin-bottom: 0; }
.page-body h2 { margin-top: 1.25rem; margin-bottom: 0.5rem; }
.page-body h3 { margin-top: 1rem; margin-bottom: 0.35em; }
.page-body ul, .page-body ol { margin: 0.75rem 0; padding-left: 1.5rem; }
.page-body a { color: var(--daimon-viola); }
.privacy-content { margin-top: 0.75rem; }
.privacy-content p { margin-bottom: 0.75rem; }

.newsletter-grazie { margin-top: 1rem; text-align: center; max-width: 36rem; margin-left: auto; margin-right: auto; }
.newsletter-grazie h1 { margin-bottom: 0.75rem; }
.newsletter-grazie-lead { font-size: 1.05rem; line-height: 1.5; margin-bottom: 1.5rem; color: var(--daimon-testo-muted, #555); }
.newsletter-grazie .button { margin-top: 0.5rem; }

.trattamenti-list { display: grid; gap: 1.25rem; margin-top: 1rem; }
@media (min-width: 768px) { /* --breakpoint-tablet */ .trattamenti-list { grid-template-columns: repeat(3, 1fr); } }
.contatti-inline { font-size: 1.05rem; }
.trattamenti-note { margin-top: 1.5rem; font-size: 0.95rem; color: var(--daimon-testo-muted); }

.percorsi-index { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(0,0,0,0.08); }
.percorsi-links { list-style: none; padding: 0; margin: 0.5rem 0 0; }
.percorsi-links li { margin: 0.35rem 0; }

/* Magazine list – griglia tipo giornale */
.magazine-intro { margin-bottom: 1.5rem; color: var(--daimon-testo-muted, #555); }
.magazine-grid { display: grid; gap: 1.75rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { /* --breakpoint-small */ .magazine-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { /* --breakpoint-medium */ .magazine-grid { grid-template-columns: repeat(3, 1fr); } }
.magazine-card { border: 1px solid rgba(0,0,0,0.08); border-radius: var(--radius); overflow: hidden; background: var(--pico-card-background-color, #fff); }
.magazine-card-image-link { display: block; aspect-ratio: var(--aspect-card); overflow: hidden; }
.magazine-card-image-link img { width: 100%; height: 100%; object-fit: cover; }
.magazine-card-body { padding: var(--card-padding); }
.magazine-card-title { font-size: 1.15rem; margin: 0 0 0.35rem; line-height: 1.3; }
.magazine-card-title a { text-decoration: none; }
.magazine-card-title a:hover { text-decoration: underline; }
.magazine-card-meta { font-size: 0.9rem; color: var(--daimon-testo-muted, #555); margin: 0 0 0.5rem; }
.magazine-card-excerpt { font-size: 0.95rem; margin: 0 0 0.75rem; line-height: 1.45; color: var(--daimon-testo-muted, #555); }
.magazine-card-cta { font-weight: 600; }
.magazine-pagination { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(0,0,0,0.08); display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.magazine-pagination-info { margin: 0; font-size: 0.95rem; color: var(--daimon-testo-muted, #555); }
.magazine-pagination-links { list-style: none; padding: 0; margin: 0; display: flex; gap: 1rem; }
.magazine-pagination-links a { font-weight: 500; }

/* Magazine single – articolo e commenti */
.article-magazine-header { margin-bottom: 0.75rem; }
.article-magazine-meta { color: var(--daimon-testo-muted, #555); margin-top: 0.25rem; }
.post-lead-image { margin: 1rem 0 1.5rem; }
.post-lead-figure { margin: 0; }
.post-lead-figure img { width: 100%; height: auto; border-radius: var(--radius); }
.post-body { max-width: 72ch; line-height: 1.65; }
.post-body figure img { max-width: 100%; height: auto; }
.article-magazine-nav { margin-top: 2.5rem; padding: 1.25rem 0; border-top: 1px solid rgba(0,0,0,0.1); }
.article-magazine-nav-title { font-weight: 600; margin: 0 0 0.5rem; }
.article-magazine-nav ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; }
.article-magazine-nav a { font-weight: 500; }
.article-comments { margin-top: 2.5rem; padding: 1.5rem 0; border-top: 1px solid rgba(0,0,0,0.1); }
.article-comments h2 { margin-top: 0; }
.comment-list { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.comment-item { padding: 1rem 0; border-bottom: 1px solid rgba(0,0,0,0.06); }
.comment-item:last-of-type { border-bottom: none; }
.comment-meta { margin: 0 0 0.35rem; font-size: 0.95rem; }
.comment-body { margin: 0; line-height: 1.5; }
.comment-form-block { margin-top: 1.5rem; padding: var(--card-padding); background: var(--pico-muted-background, #f5f5f5); border-radius: var(--radius); }
.comment-form-block h3 { margin-top: 0; margin-bottom: 0.75rem; }
.comment-form-block label { display: block; margin-top: 0.75rem; }
.comment-form-block input, .comment-form-block textarea { width: 100%; max-width: 28rem; }
.comment-form-block button { margin-top: 0.75rem; }

/* Contatti – due colonne, telefono + email affiancati, messaggio grande */
.contatti-layout { display: grid; gap: 2rem; margin-top: 1rem; }
@media (min-width: 768px) { /* --breakpoint-tablet */ .contatti-layout { grid-template-columns: 1fr 1.2fr; align-items: start; } }
.contatti-info h2 { font-size: 1.1rem; margin: 1.25rem 0 0.5rem; }
.contatti-info h2:first-child { margin-top: 0; }
.contatti-indirizzo { margin: 0; line-height: 1.5; }
.contatti-tel-email { margin: 0; line-height: 1.6; }
.contatti-tel { font-weight: 600; font-size: 1.05rem; }
.contatti-note { margin-top: 1rem; font-size: 0.95rem; color: var(--daimon-testo-muted, #555); }
.contatti-form-section h2 { margin-top: 0; }
.form-row { margin-bottom: 0.75rem; }
.form-row label { display: block; margin-bottom: 0.25rem; }
.form-row-duo {
    display: grid;
    gap: 0.75rem 1rem;
    grid-template-columns: 1fr;
    margin-bottom: 0.75rem;
}
@media (min-width: 480px) {
    .form-row-duo { grid-template-columns: 1fr 1fr; }
}
.form-row-duo .form-cell { min-width: 0; }
.form-row-inline { display: inline-block; vertical-align: top; width: 100%; }
@media (min-width: 480px) { .form-row-inline { width: calc(50% - 0.5rem); margin-right: 0.5rem; } }
.contatti-form-section textarea { min-height: 8rem; width: 100%; max-width: 100%; }
.contatti-form-section button { margin-top: 0.5rem; }

/* Pagina Contatti: hero a tutta altezza con mappa in background, form sotto */
.hero-wrapper.hero-wrapper--contatti {
    align-items: flex-start;
    height: auto;
    min-height: 100dvh;
    min-height: 100vh;
    overflow: visible;
    padding-bottom: clamp(1.5rem, 4vh, 2.5rem);
}
@media (max-width: 63.99em) {
    .hero-wrapper.hero-wrapper--contatti {
        min-height: calc(100dvh + 1.5rem);
        min-height: calc(100vh + 1.5rem);
    }
}
@media (min-width: 64em) {
    .hero-wrapper.hero-wrapper--contatti {
        min-height: calc(100dvh + 1.5rem);
        align-items: center;
        padding-bottom: clamp(2rem, 5vh, 3.5rem);
    }
}
.hero-wrapper--contatti .hero-corso-bg__img {
    opacity: 0.32;
}
.hero--corso.hero--contatti .hero-title-corso {
    margin-bottom: 0;
}
.contatti-hero-locate-title {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.15rem, 2.5vw + 0.5rem, 1.65rem);
    font-weight: 600;
    color: var(--daimon-oro);
    margin: 0.85rem 0 0.35rem;
    line-height: 1.25;
}
.contatti-hero-address {
    margin-top: 0.35rem !important;
}
.contatti-hero-note {
    margin-top: 0.65rem !important;
    font-size: 0.95rem !important;
    line-height: 1.5;
}
.contatti-quick-actions {
    margin-top: clamp(1.15rem, 3vh, 1.65rem);
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    width: 100%;
    max-width: 36rem;
}
.contatti-quick-actions__row {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}
.contatti-quick-actions__label {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: rgba(255, 255, 255, 0.78);
}
.contatti-quick-actions__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--button-gap);
    align-items: center;
}
.contatti-quick-actions__buttons .btn {
    min-height: var(--button-min-height);
}
.contatti-quick-actions__row--direct {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.75rem;
}
.contatti-direct-link {
    flex: 1 1 11rem;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    padding: 0.65rem 0.85rem;
    border-radius: var(--radius);
    border: 1px solid rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.08);
    text-decoration: none;
    color: rgba(255, 255, 255, 0.96);
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.contatti-direct-link:hover {
    border-color: var(--daimon-oro);
    background: rgba(255, 255, 255, 0.12);
    color: var(--daimon-bianco);
}
.contatti-direct-link:focus-visible {
    outline: 2px solid var(--daimon-oro);
    outline-offset: 2px;
}
.contatti-direct-link__label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: rgba(255, 255, 255, 0.65);
}
.contatti-direct-link__value {
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.35;
    word-break: break-word;
}
/* Blocco modulo contatti: full-bleed, fasce oro sopra/sotto, area bianca solo per titolo+campi */
.contatti-page .contatti-form-below {
    display: flex;
    flex-direction: column;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    transform: translateZ(0);
    background-color: var(--daimon-bianco);
}
.contatti-form-below__oro {
    flex-shrink: 0;
    width: 100%;
    min-height: clamp(0.5rem, 1.4vw, 0.85rem);
    background-color: var(--daimon-oro);
}
.contatti-form-below__main {
    flex: 1 1 auto;
    width: 100%;
    background-color: var(--daimon-bianco);
    padding-top: var(--section-spacing-mobile);
    padding-bottom: var(--section-spacing-mobile);
}
@media (min-width: 768px) {
    .contatti-form-below__main {
        padding-top: var(--section-spacing);
        padding-bottom: var(--section-spacing);
    }
}
@media (min-width: 1024px) {
    .contatti-form-below__main {
        padding-top: var(--section-spacing-desktop);
        padding-bottom: var(--section-spacing-desktop);
    }
}
.contatti-form-below__wrap {
    max-width: var(--container-max);
    margin: 0 auto;
    padding-left: var(--main-padding-x);
    padding-right: var(--main-padding-x);
    box-sizing: border-box;
}
.contatti-form-below__title {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.35rem, 3vw, 1.85rem);
    font-weight: 600;
    color: var(--daimon-viola);
    margin: 0 0 1.25rem;
    line-height: 1.2;
}
.contatti-page .contatti-form-below .contatti-form-section--pagina {
    margin-top: 0;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
/* Campi su bianco netto (niente grigio/rosato Pico), solo bordo leggero */
.contatti-page .contatti-form-below .contatti-form-section--pagina input[type="text"],
.contatti-page .contatti-form-below .contatti-form-section--pagina input[type="email"],
.contatti-page .contatti-form-below .contatti-form-section--pagina input[type="tel"],
.contatti-page .contatti-form-below .contatti-form-section--pagina textarea {
    background-color: var(--daimon-bianco) !important;
    background: var(--daimon-bianco) !important;
    color: var(--daimon-testo) !important;
    border-color: rgba(55, 15, 103, 0.2) !important;
    box-shadow: none;
}
.contatti-page .contatti-form-below .contatti-form-section--pagina input::placeholder,
.contatti-page .contatti-form-below .contatti-form-section--pagina textarea::placeholder {
    color: var(--daimon-testo-muted);
    opacity: 1;
}
.contatti-page .contatti-form-below .contatti-form-section--pagina input:hover,
.contatti-page .contatti-form-below .contatti-form-section--pagina textarea:hover {
    border-color: rgba(55, 15, 103, 0.28) !important;
}
.contatti-page .contatti-form-below .contatti-form-section--pagina input:focus,
.contatti-page .contatti-form-below .contatti-form-section--pagina textarea:focus {
    background-color: var(--daimon-bianco) !important;
    border-color: var(--daimon-viola) !important;
    box-shadow: 0 0 0 1px rgba(55, 15, 103, 0.12);
}
.contatti-page .contatti-form-below .contatti-form-section--pagina label {
    color: var(--daimon-viola-scuro);
}

.page-intro { color: var(--daimon-testo-muted, #555); margin-bottom: 0.5rem; }

/* Collaboratori – griglia card coerente con il resto */
.collaboratori-cards { display: grid; gap: 1.25rem; grid-template-columns: 1fr; margin-top: 1rem; }
@media (min-width: 640px) { /* --breakpoint-small */ .collaboratori-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { /* --breakpoint-medium */ .collaboratori-cards { grid-template-columns: repeat(3, 1fr); } }
.collaboratori-cards .card { padding: var(--card-padding); }
.collaboratori-cards .card img { width: 100%; max-width: var(--img-collaborator-size); height: var(--img-collaborator-size); object-fit: cover; border-radius: var(--radius); margin-bottom: 0.75rem; }
.collaboratori-cards .card .role { font-weight: 600; color: var(--daimon-testo-muted, #555); margin: 0.25rem 0; }
.collaboratori-cards .card p { margin: 0.5rem 0; line-height: 1.5; }

/* Spaziatura tra sezioni (ritmo verticale: 4–6rem mobile, 8–12rem desktop) */
section + section {
    margin-top: var(--section-spacing);
}
@media (min-width: 1024px) {
    section + section { margin-top: var(--section-spacing-desktop); }
}
/* Home: sezioni “attaccate” (zero margin tra Chi sono → Esperienze → Approfondimenti → Agenda → CTA → Footer) */
main #chi-sono-new + section,
main #testimonianze-section + section,
main #magazine-section + section,
main #eventi-pratiche + section,
main #buoni-natale-new + section,
/* Newsletter e CTA attaccate (nessun gap) */
main #newsletter-home + section,
main #cta-finale-new + section {
    margin-top: 0;
}
@media (min-width: 1024px) {
    main #chi-sono-new + section,
    main #testimonianze-section + section,
    main #magazine-section + section,
    main #eventi-pratiche + section,
    main #buoni-natale-new + section,
    main #newsletter-home + section,
    main #cta-finale-new + section {
        margin-top: 0;
    }
}

/* Sezioni con sfondo tenue (palette DAIMON, full-bleed come home) */
.section-bg-viola,
.section-bg-oro,
.section-bg-rosa {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    padding: var(--section-spacing) var(--main-padding-x);
}
.section-bg-viola { background-color: rgba(55, 15, 103, 0.06); }
.section-bg-oro { background-color: rgba(194, 150, 57, 0.08); }
.section-bg-rosa { background-color: rgba(206, 15, 105, 0.06); }
@media (min-width: 1024px) {
    .section-bg-viola, .section-bg-oro, .section-bg-rosa {
        padding-top: var(--section-spacing-desktop);
        padding-bottom: var(--section-spacing-desktop);
    }
}
@media (max-width: 767px) {
    .section-bg-viola, .section-bg-oro, .section-bg-rosa {
        padding-top: var(--section-spacing-mobile);
        padding-bottom: var(--section-spacing-mobile);
    }
}
/* Divider decorativo: linea gradiente viola–oro (opzionale tra sezioni) */
.section-divider {
    height: 3px;
    width: 100%;
    max-width: 12rem;
    margin: 0 auto var(--section-spacing);
    background: linear-gradient(90deg, var(--daimon-viola), var(--daimon-oro));
    border: none;
    border-radius: 2px;
}

/* ---------- Form e focus ---------- */
input, button, [type="submit"], textarea, select {
    border-radius: var(--radius);
}
:focus-visible {
    outline: 2px solid var(--daimon-viola);
    outline-offset: 2px;
}

/* Bottoni: primary viola, angolo smussato (0.5rem), padding generoso, hover oro shadow */
[role="button"], button:not(.site-nav-toggle), input[type="submit"], .pico button, [type="button"]:not(.site-nav-toggle), a.primary {
    background-color: var(--daimon-viola) !important;
    color: var(--daimon-bianco) !important;
    border-color: var(--daimon-viola) !important;
    min-height: var(--button-min-height);
    padding: 0.75rem 2rem;
    border-radius: 0.5rem;
    transition: background-color var(--transition-smooth), border-color var(--transition-smooth), box-shadow var(--transition-smooth), transform var(--transition-smooth);
}
[role="button"]:hover, button:not(.site-nav-toggle):hover, input[type="submit"]:hover, .pico button:hover, [type="button"]:not(.site-nav-toggle):hover, a.primary:hover {
    background-color: var(--daimon-viola-chiaro) !important;
    color: var(--daimon-bianco) !important;
    border-color: var(--daimon-viola-chiaro) !important;
    box-shadow: 0 8px 24px rgba(194, 150, 57, 0.25);
}
/* Per gruppi di bottoni in riga: usare un wrapper con display:flex; gap: var(--button-gap); */

/* ---------- Articoli / Magazine ---------- */
/* Immagine in evidenza sotto il titolo: formato orizzontale (come nel magazine originale) */
.post-lead-image {
    margin: 1rem 0 1.5rem;
    width: 100%;
    overflow: hidden;
    border-radius: var(--radius);
    background: var(--daimon-bianco-morbido);
}
.post-lead-image figure,
.post-lead-image .wp-block-image,
.post-lead-figure {
    margin: 0;
    width: 100%;
}
.post-lead-image img {
    width: 100%;
    height: auto;
    max-height: var(--img-article-lead-max-height);
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: var(--radius);
}
.post-body img {
    border-radius: var(--radius);
    max-width: 100%;
    height: auto;
}

/* Titoletti di micro-sezione (stile rivista) */
.post-body .titoleto,
.post-body h4.titoleto {
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--daimon-testo-muted, #666);
    margin: 1.75rem 0 0.5rem;
    line-height: 1.3;
}

/* Citazioni / evidenze magazine: bordo sinistro giallo (oro), angoli tondi, alternanza sx/dx */
.post-body .evidenza {
    box-sizing: border-box;
    width: 48%;
    max-width: 100%;
    margin: 1.5rem 0 1rem;
    padding: 1rem 1.25rem;
    border: none;
    border-left: 4px solid var(--daimon-oro);
    border-radius: var(--radius);
    font-style: italic;
    background: rgba(194, 150, 57, 0.06);
}
/* Alternanza: prima citazione a sinistra, seconda a destra, ecc. */
.post-body aside.evidenza:nth-of-type(odd) {
    float: left;
    margin-right: 1rem;
}
.post-body aside.evidenza:nth-of-type(even) {
    float: right;
    margin-left: 1rem;
}
/* Il contenuto dopo una citazione va sotto, non a lato */
.post-body .evidenza + * {
    clear: both;
}
@media (max-width: 576px) { /* citazioni full-width su schermi piccoli */
    .post-body .evidenza {
        width: 100%;
        float: none;
        margin-left: 0;
        margin-right: 0;
    }
}
.post-body .evidenza p {
    margin: 0.35em 0;
}
.post-body .evidenza p:first-child { margin-top: 0; }
.post-body .evidenza p:last-child { margin-bottom: 0; }

/* Maiuscoletto (coerente con titoleto e evidenza nel magazine) */
.post-body .maiuscoletto {
    font-variant: small-caps;
    letter-spacing: 0.03em;
}

/* ---------- Responsive: spaziatura e layout ---------- */
@media (max-width: 767px) { /* --breakpoint-mobile */
    :root {
        --section-spacing: var(--section-spacing-mobile);
        --hero-padding: 1.75rem 1rem;
        --card-padding: 1.25rem;
        --main-padding-x: 1rem;
    }
    .site-header nav ul { flex-wrap: wrap; }
    .section-bg-viola,
    .section-bg-oro,
    .section-bg-rosa {
        margin-left: calc(-1 * var(--main-padding-x));
        margin-right: calc(-1 * var(--main-padding-x));
        padding-left: var(--main-padding-x);
        padding-right: var(--main-padding-x);
    }
}

/* ==========================================================================
   MOCKUP REDESIGN — nuovi pattern dal mockup HTML (progress bar, reveal,
   section-label, orient-card, percorso-row, citazione, per-chi, sessione,
   chi-sono, testi, evento, CTA finale, footer divider)
   ========================================================================== */

/* ── Progress bar ── */
#progress-bar {
    position: fixed; top: 0; left: 0; height: 3px;
    background: linear-gradient(90deg, var(--daimon-oro), var(--daimon-rosa));
    width: 0%; z-index: 200;
    transition: width 0.1s linear;
    pointer-events: none;
}

/* ── Scroll reveal ── */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.65s ease, transform 0.65s ease;
}
.reveal.visible {
    opacity: 1;
    transform: none;
}
/* Durante lo scroll "eased" su anchor, evita qualsiasi effetto fade-in dei reveal */
body.is-eased-scroll .reveal {
    opacity: 1;
    transform: none;
    transition: none;
}
@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; transition: none; }
}

/* ── Section pattern ── */
.section-inner {
    max-width: var(--container-max);
    margin: 0 auto;
}
.section-label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--daimon-oro);
    margin-bottom: 0.75rem;
    font-weight: 600;
}
.section-label::before {
    content: '';
    display: block;
    width: 1.5rem;
    height: 1px;
    background: currentColor;
}
h2.section-title {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 600;
    line-height: 1.15;
    color: var(--daimon-viola);
    margin-bottom: 1.5rem;
}
h2.section-title-light {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 600;
    line-height: 1.15;
    color: var(--daimon-bianco);
    margin-bottom: 1.5rem;
}
.section-intro {
    max-width: 60ch;
    color: var(--daimon-testo-muted);
    margin-bottom: 3rem;
    line-height: 1.75;
}

/* ── .btn system (complementa Pico) ── */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--daimon-font-body);
    font-size: 0.9rem;
    font-weight: 600;
    padding: 0.75rem 1.75rem;
    border-radius: var(--radius);
    line-height: 1;
    min-height: var(--button-min-height);
    -webkit-appearance: none;
    appearance: none;
    text-decoration: none;
    transition: background var(--transition-ease), color var(--transition-ease),
                box-shadow var(--transition-ease), transform 0.15s ease;
    border: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary {
    background: var(--daimon-oro) !important;
    color: var(--daimon-viola) !important;
    border-color: var(--daimon-oro) !important;
}
.btn-primary:hover {
    background: var(--daimon-oro-hover) !important;
    border-color: var(--daimon-oro-hover) !important;
    box-shadow: 0 8px 24px rgba(194,150,57,0.35);
}
.btn-ghost {
    background: transparent !important;
    color: rgba(248,248,242,0.85) !important;
    border-color: rgba(248,248,242,0.35) !important;
}
.btn-ghost:hover {
    border-color: rgba(248,248,242,0.8) !important;
    color: var(--daimon-bianco) !important;
    background: rgba(248,248,242,0.06) !important;
}

/* ── Hero geometry (fiore della vita decorativo) ── */
.hero-geometry {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.06;
}
.hero-geometry svg {
    width: 100%;
    height: 100%;
}

/* ── Hero: freccia “scroll” in basso (stile hand-drawn) ── */
.hero-scroll-hint {
    position: absolute;
    left: 50%;
    bottom: clamp(0.6rem, 2vh, 1.25rem);
    transform: translateX(-50%);
    z-index: 2;
    pointer-events: none;
    color: rgba(248, 248, 242, 0.82);
}
@media (max-width: 63.99em) {
    .hero-scroll-hint {
        left: calc(50% - 0.3rem);
    }
}
.hero-scroll-arrow {
    width: 1.75rem;
    height: auto;
    display: block;
    animation: hero-scroll-arrow-bounce 2.2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
    .hero-scroll-arrow { animation: none; }
}
@keyframes hero-scroll-arrow-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(4px); }
}

/* ── Hero eyebrow ── */
.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--daimon-font-body);
    font-size: 0.78rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--daimon-oro);
    margin-bottom: 1.5rem;
    opacity: 0.9;
}
.hero-eyebrow::before {
    content: '';
    display: block;
    width: 2rem;
    height: 1px;
    background: var(--daimon-oro);
}

/* (A) Eyebrow nascosto; se mostrato in altri contesti resta centrato sotto 64em */
@media (max-width: 63.99em) {
    .hero-eyebrow { margin-left: auto; margin-right: auto; }
}

/* ── Orient card (home #orientamento) ── */
#orientamento {
    background-color: var(--daimon-grigio-caldo);
    padding: clamp(4rem,8vh,7rem) clamp(1.5rem,5vw,4rem);
    margin-left: calc(-1 * var(--main-padding-x));
    margin-right: calc(-1 * var(--main-padding-x));
}
.orient-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.25rem;
}
.orient-card {
    background: var(--daimon-bianco);
    border-radius: var(--radius-lg);
    padding: 2rem 1.75rem;
    text-decoration: none;
    color: var(--daimon-testo);
    border: 1px solid rgba(55,15,103,0.08);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    transition: box-shadow var(--transition-ease), transform var(--transition-ease), border-color var(--transition-ease);
    position: relative;
    overflow: hidden;
}
.orient-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--daimon-viola), var(--daimon-oro));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-ease);
}
.orient-card:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-3px);
    border-color: rgba(55,15,103,0.15);
}
.orient-card:hover::before { transform: scaleX(1); }
.orient-icon {
    width: 2.75rem;
    height: 2.75rem;
    background: rgba(55,15,103,0.07);
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--daimon-viola);
}
.orient-card h3 {
    font-family: var(--daimon-font-titoli);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--daimon-viola);
    line-height: 1.2;
}
.orient-card p {
    font-size: 0.9rem;
    color: var(--daimon-testo-muted);
    line-height: 1.6;
    flex: 1;
}
.orient-link {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--daimon-viola);
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.25rem;
}
.orient-link svg { transition: transform var(--transition-ease); }
.orient-card:hover .orient-link svg { transform: translateX(4px); }

/* ── Percorso row (home #percorsi) ── */
#percorsi {
    padding: clamp(4rem,8vh,7rem) 0;
}
.percorsi-intro {
    max-width: 60ch;
    color: var(--daimon-testo-muted);
    margin-bottom: 3rem;
    line-height: 1.75;
}
.percorsi-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.percorso-row {
    display: grid;
    grid-template-columns: 5rem 1fr;
    gap: 0 2rem;
    padding: 2.5rem 0;
    border-bottom: 1px solid rgba(55,15,103,0.08);
    text-decoration: none;
    color: var(--daimon-testo);
    align-items: start;
    transition: background var(--transition-ease);
    border-radius: var(--radius);
}
.percorso-row:last-child { border-bottom: none; }
.percorso-row:hover .percorso-num { color: var(--daimon-rosa); }
.percorso-row:hover .percorso-title { color: var(--daimon-viola-chiaro); }
.percorso-num {
    font-family: var(--daimon-font-titoli);
    font-size: 3.5rem;
    font-weight: 300;
    color: rgba(55,15,103,0.15);
    line-height: 1;
    transition: color var(--transition-ease);
    padding-top: 0.1rem;
}
.percorso-tag {
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--daimon-oro);
    font-weight: 600;
    margin-bottom: 0.4rem;
}
.percorso-title {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
    font-weight: 600;
    color: var(--daimon-viola);
    line-height: 1.2;
    margin-bottom: 0.6rem;
    transition: color var(--transition-ease);
}
.percorso-sub {
    font-size: 0.88rem;
    color: var(--daimon-testo-muted);
    font-style: italic;
    margin-bottom: 0.75rem;
}
.percorso-desc {
    font-size: 0.95rem;
    color: var(--daimon-testo-muted);
    line-height: 1.7;
    max-width: 62ch;
    margin-bottom: 1rem;
}
.percorso-pills { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.pill {
    font-size: 0.76rem;
    background: rgba(55,15,103,0.07);
    color: var(--daimon-viola);
    padding: 0.25rem 0.7rem;
    border-radius: 2rem;
    letter-spacing: 0.02em;
}
@media (max-width: 540px) {
    .percorso-row { grid-template-columns: 3rem 1fr; gap: 0 1rem; }
    .percorso-num { font-size: 2.5rem; }
}

/* ── Citazione grande ── */
#citazione {
    background-color: var(--daimon-viola);
    text-align: center;
    position: relative;
    overflow: hidden;
    padding: clamp(4rem,8vh,7rem) clamp(1.5rem,5vw,4rem);
    margin-left: calc(-1 * var(--main-padding-x));
    margin-right: calc(-1 * var(--main-padding-x));
}
#citazione::before {
    content: '\201C';
    position: absolute;
    top: -1rem;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--daimon-font-titoli);
    font-size: clamp(8rem,20vw,16rem);
    color: rgba(255,255,255,0.04);
    line-height: 1;
    pointer-events: none;
}
/* DAiMON v2 — citazione hero: Cormorant 300 */
.citazione-text {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.5rem, 3.5vw, 2.5rem);
    font-weight: 300;
    font-style: italic;
    color: var(--daimon-bianco);
    line-height: 1.45;
    max-width: 820px;
    margin: 0 auto 1.5rem;
}
.citazione-text em { color: var(--daimon-rosa); font-style: normal; }
.citazione-author {
    font-size: 0.85rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--daimon-oro);
    opacity: 0.8;
}

/* ── Via Esperienziale (grigio-caldo) ── */
#via-esperienziale {
    background-color: var(--daimon-grigio-caldo);
    padding: clamp(4rem,8vh,7rem) clamp(1.5rem,5vw,4rem);
    margin-left: calc(-1 * var(--main-padding-x));
    margin-right: calc(-1 * var(--main-padding-x));
}

/* ── Per-chi card (new mockup version) ── */
#per-chi-new {
    padding: clamp(4rem,8vh,7rem) 0;
}
.per-chi-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}
@media (max-width: 640px) { .per-chi-grid { grid-template-columns: 1fr; } }
.per-chi-card {
    padding: 2.25rem 2rem;
    border-radius: var(--radius-lg);
    position: relative;
    overflow: hidden;
}
.per-chi-card--si {
    background: var(--daimon-viola);
    color: var(--daimon-bianco);
}
.per-chi-card--no {
    background: var(--daimon-bianco);
    color: var(--daimon-testo);
    border: 1px solid rgba(55,15,103,0.1);
}
.per-chi-card h3 {
    font-family: var(--daimon-font-titoli);
    font-size: 1.35rem;
    font-weight: 600;
    margin-bottom: 1.25rem;
}
.per-chi-card--si h3 { color: var(--daimon-oro); }
.per-chi-card--no h3 { color: var(--daimon-testo-muted); }
.per-chi-item {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
    font-size: 0.95rem;
    line-height: 1.55;
}
.per-chi-item::before {
    flex-shrink: 0;
    font-size: 0.7rem;
    margin-top: 0.15rem;
}
.per-chi-card--si .per-chi-item::before { content: '\25C6'; color: var(--daimon-oro); }
.per-chi-card--no .per-chi-item::before { content: '\25CB'; color: var(--daimon-testo-muted); }
.per-chi-card--si .per-chi-item { color: rgba(248,248,242,0.88); }
.per-chi-card--no .per-chi-item { color: var(--daimon-testo-muted); }

/* ── Sessione card (new mockup version) ── */
#sessioni-new {
    padding: clamp(4rem,8vh,7rem) 0;
}
.sessioni-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
}
.sessione-card {
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 1px solid rgba(55,15,103,0.08);
    display: flex;
    flex-direction: column;
    transition: box-shadow var(--transition-ease), transform var(--transition-ease);
    background: var(--daimon-bianco);
}
.sessione-card:hover {
    box-shadow: 0 16px 48px rgba(55,15,103,0.1);
    transform: translateY(-3px);
}
.sessione-card-bar { height: 4px; }
.sessione-card-bar--viola { background: var(--daimon-viola); }
.sessione-card-bar--oro   { background: var(--daimon-oro); }
.sessione-card-bar--rosa  { background: var(--daimon-rosa); }
.sessione-card-body {
    padding: 1.75rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.sessione-card-body h3 {
    font-family: var(--daimon-font-titoli);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--daimon-viola);
    margin-bottom: 0.75rem;
}
.sessione-card-body p {
    font-size: 0.9rem;
    color: var(--daimon-testo-muted);
    line-height: 1.65;
    flex: 1;
    margin-bottom: 1.25rem;
}
.sessione-card-body .btn-card {
    align-self: flex-start;
    font-size: 0.85rem;
    padding: 0.55rem 1.25rem;
    background: transparent;
    color: var(--daimon-viola);
    border: 1.5px solid rgba(55,15,103,0.25);
    border-radius: var(--radius);
    text-decoration: none;
    font-weight: 600;
    transition: background var(--transition-ease), border-color var(--transition-ease);
}
.sessione-card-body .btn-card:hover {
    background: rgba(55,15,103,0.06);
    border-color: var(--daimon-viola);
}

/* ── Come nasce il Teatro Olistico (viola pieno) ── */
#come-nasce-new {
    background-color: var(--daimon-viola);
    padding: clamp(4rem,8vh,7rem) clamp(1.5rem,5vw,4rem);
    margin-left: calc(-1 * var(--main-padding-x));
    margin-right: calc(-1 * var(--main-padding-x));
}
#come-nasce-new .section-label { color: var(--daimon-oro); }
#come-nasce-new p { color: rgba(248,248,242,0.8); }
#come-nasce-new blockquote {
    border-left: 3px solid var(--daimon-oro);
    padding-left: 1.25rem;
    margin: 1.5rem 0;
    font-family: var(--daimon-font-titoli);
    font-size: 1.15rem;
    font-style: italic;
    color: rgba(248,248,242,0.88);
    line-height: 1.55;
}
#come-nasce-new a { color: var(--daimon-oro); }
#come-nasce-new a:hover { color: var(--daimon-bianco); }

/* ── Chi-sono grid (viola pieno, immagine + badge + bio) ── */
/* PROVA FULL-BLEED: per tornare indietro togliere le 3 righe width + margin sotto */
#chi-sono-new {
    background-color: var(--daimon-viola);
    padding: clamp(4rem,8vh,7rem) clamp(1.5rem,5vw,4rem);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-bottom: 0;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
}
.chi-sono-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
    max-width: var(--container-max);
    margin: 0 auto;
}
@media (max-width: 700px) { .chi-sono-grid { grid-template-columns: 1fr; } }
.chi-sono-img {
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 4 / 5;
    position: relative;
    box-shadow: 0 24px 60px rgba(0,0,0,0.35);
}
.chi-sono-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.chi-sono-badge {
    position: absolute;
    bottom: 1.5rem;
    left: -1rem;
    background: var(--daimon-oro);
    color: var(--daimon-viola);
    padding: 0.75rem 1.25rem;
    border-radius: var(--radius);
    font-family: var(--daimon-font-titoli);
    font-size: 1.1rem;
    font-weight: 600;
    box-shadow: 0 8px 24px rgba(0,0,0,0.2);
    line-height: 1.3;
}
.chi-sono-badge span {
    display: block;
    font-size: 0.92rem;
    font-weight: 400;
    opacity: 0.8;
}
.chi-sono-text .section-label { color: var(--daimon-oro); }
.chi-sono-text h2 { color: var(--daimon-bianco); }
.chi-sono-text p {
    color: rgba(248,248,242,0.8);
    line-height: 1.8;
    margin-bottom: 1rem;
    font-size: 1.075rem;
}
.chi-sono-text blockquote {
    border-left: 3px solid var(--daimon-oro);
    padding-left: 1.25rem;
    margin: 1.5rem 0;
    font-family: var(--daimon-font-titoli);
    font-size: 1.25rem;
    font-style: italic;
    color: rgba(248,248,242,0.88);
    line-height: 1.55;
}

/* ── Testimonianze section (grigio-caldo, carousel inside) ── */
/* PROVA FULL-BLEED: per tornare indietro togliere le 3 righe width + margin sotto */
#testimonianze-section {
    margin-top: 0;
    margin-bottom: 0;
    background-color: var(--daimon-grigio-caldo);
    padding: clamp(4rem,8vh,7rem) clamp(1.5rem,5vw,4rem);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}
.testi-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 2rem;
}
.testi-rating-block {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.testi-rating {
    font-family: var(--daimon-font-titoli);
    font-size: 1rem;
    color: var(--daimon-testo-muted);
}
.testi-rating strong {
    font-size: 2rem;
    color: var(--daimon-viola);
    font-weight: 300;
    font-family: var(--daimon-font-titoli);
}
.stars { color: var(--daimon-oro); letter-spacing: 0.1em; }
.testi-rating-link {
    margin: 0;
    font-size: 0.7rem;
    line-height: 1.3;
}
.testi-rating-link a,
.testi-rating-link .reviews-link-google {
    color: var(--daimon-rosa);
    text-decoration: none;
}
.testi-rating-link a:hover,
.testi-rating-link .reviews-link-google:hover {
    text-decoration: underline;
}

/* ── Eventi e pratiche (mantra: ombra viola/oro come strada-card, card alte uguali, CTA in basso) ── */
#eventi-pratiche {
    position: relative;
    width: 100vw;
    margin-top: 0;
    margin-bottom: 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-top: clamp(4rem, 8vh, 7rem);
    padding-bottom: clamp(4rem, 8vh, 7rem);
    padding-left: var(--main-padding-x);
    padding-right: var(--main-padding-x);
    box-sizing: border-box;
}
/* Sfondo sezione Agenda: full-bleed a tutto schermo (si adatta) */
.eventi-section-bg {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    top: 0;
    bottom: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}
.eventi-section-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}
.eventi-section-has-bg.section-bg-viola {
    background: linear-gradient(180deg, rgba(55, 15, 103, 0.28) 0%, rgba(55, 15, 103, 0.08) 40%, rgba(55, 15, 103, 0.06) 100%);
}
#eventi-pratiche .section-inner {
    position: relative;
    z-index: 1;
}
/* Griglia card nella stessa colonna delle altre sezioni (max-width come section-inner) */
.eventi-list-bleed {
    position: relative;
    z-index: 1;
    max-width: var(--container-max);
    margin-top: clamp(1.5rem, 3vh, 2.5rem);
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}
.eventi-list-new {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    align-items: stretch;
}
@media (min-width: 768px) {
    .eventi-list-new {
        grid-template-columns: repeat(2, 1fr);
    }
    /* Ultima card a tutta larghezza solo quando siamo in 2 colonne e il numero è dispari (es. 3 eventi in 2 col → 2+1) */
    .eventi-list-new--odd:not(.eventi-list-new--count-3):not(.eventi-list-new--count-5):not(.eventi-list-new--count-6) .evento-card:last-child {
        grid-column: 1 / -1;
    }
    /* Stessa logica per numero di eventi già da tablet: 3 eventi = 3 colonne, ecc. */
    .eventi-list-new--count-1 {
        grid-template-columns: 1fr;
    }
    .eventi-list-new--count-2 {
        grid-template-columns: repeat(2, 1fr);
    }
    .eventi-list-new--count-3 {
        grid-template-columns: repeat(3, 1fr);
    }
    .eventi-list-new--count-4 {
        grid-template-columns: repeat(2, 1fr);
    }
    .eventi-list-new--count-5 {
        grid-template-columns: repeat(3, 1fr);
    }
    .eventi-list-new--count-5 .evento-card:nth-child(4) {
        grid-column: 1;
    }
    .eventi-list-new--count-5 .evento-card:nth-child(5) {
        grid-column: 2;
    }
    .eventi-list-new--count-6 {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (min-width: 1024px) {
    .eventi-list-new--count-1 {
        grid-template-columns: 1fr;
    }
    .eventi-list-new--count-2 {
        grid-template-columns: repeat(2, 1fr);
    }
    .eventi-list-new--count-3 {
        grid-template-columns: repeat(3, 1fr);
    }
    .eventi-list-new--count-4 {
        grid-template-columns: repeat(2, 1fr);
    }
    .eventi-list-new--count-5 {
        grid-template-columns: repeat(3, 1fr);
    }
    .eventi-list-new--count-5 .evento-card:nth-child(4) {
        grid-column: 1;
    }
    .eventi-list-new--count-5 .evento-card:nth-child(5) {
        grid-column: 2;
    }
    .eventi-list-new--count-6 {
        grid-template-columns: repeat(3, 1fr);
    }
}
.evento-card {
    background: var(--daimon-bianco);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(55, 15, 103, 0.08);
    display: flex;
    flex-direction: column;
    overflow: visible;
    position: relative;
    box-shadow: var(--shadow-card);
    transition: box-shadow var(--transition-ease), transform var(--transition-ease), border-color var(--transition-ease);
}
.evento-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--daimon-viola), var(--daimon-oro));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-ease);
    z-index: 1;
}
.evento-card:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-3px);
    border-color: rgba(55, 15, 103, 0.15);
}
.evento-card:hover::before {
    transform: scaleX(1);
}
.evento-card-image-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 400 / 260;
    flex-shrink: 0;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    overflow: hidden;
    background: var(--daimon-grigio-caldo);
}
/* Tag categoria (tipo evento) e data: stessa uscita a destra, categoria sormonta leggermente data */
.evento-type-tag {
    position: absolute;
    top: 0.75rem;
    right: -0.5rem;
    min-width: 6rem;
    padding: 0.4rem 0.85rem 0.4rem 0.75rem;
    box-sizing: border-box;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border-radius: var(--radius-sm) 0 0 var(--radius-sm);
    z-index: 2;
    line-height: 1.2;
    box-shadow: -2px 2px 8px rgba(0, 0, 0, 0.15);
    text-align: center;
}
.evento-type-tag::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0.6rem;
    height: 100%;
    border-radius: var(--radius-sm) 0 0 var(--radius-sm);
    background: linear-gradient(to left, transparent, rgba(0, 0, 0, 0.25));
    z-index: -1;
}
.evento-type-tag--evento {
    background: rgba(55, 15, 103, 0.95);
    color: var(--daimon-bianco);
}
.evento-type-tag--evento::before {
    background: linear-gradient(to left, rgba(0, 0, 0, 0.15), rgba(42, 12, 79, 0.5));
}
.evento-type-tag--seminario {
    background: var(--daimon-oro);
    color: var(--daimon-viola-scuro);
}
.evento-type-tag--seminario::before {
    background: linear-gradient(to left, rgba(0, 0, 0, 0.08), rgba(168, 126, 46, 0.6));
}
.evento-type-tag--laboratorio {
    background: rgba(206, 15, 105, 0.95);
    color: var(--daimon-bianco);
}
.evento-type-tag--laboratorio::before {
    background: linear-gradient(to left, rgba(0, 0, 0, 0.15), rgba(168, 12, 84, 0.5));
}
.evento-type-tag--workshop {
    background: rgba(55, 15, 103, 0.88);
    color: var(--daimon-bianco);
}
.evento-type-tag--workshop::before {
    background: linear-gradient(to left, rgba(0, 0, 0, 0.12), rgba(55, 15, 103, 0.45));
}
.evento-card-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.evento-date-badge {
    position: absolute;
    top: 2rem;
    right: -0.5rem;
    z-index: 1;
    min-width: 5.6rem;
    padding: 0.4rem 0.5rem 0.4rem 0.75rem;
    box-sizing: border-box;
    background: #f8f8f2;
    color: var(--daimon-testo);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    border-radius: var(--radius-sm) 0 0 var(--radius-sm);
    box-shadow: -2px 2px 8px rgba(0, 0, 0, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
}
.evento-date-badge::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0.6rem;
    height: 100%;
    border-radius: var(--radius-sm) 0 0 var(--radius-sm);
    background: linear-gradient(to left, transparent, rgba(0, 0, 0, 0.22));
    z-index: -1;
}
.evento-date-badge-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}
.evento-date-badge-icon svg {
    display: block;
}
.evento-date-badge--evento .evento-date-badge-icon {
    color: var(--daimon-viola);
}
.evento-date-badge--seminario .evento-date-badge-icon {
    color: var(--daimon-oro);
}
.evento-date-badge--laboratorio .evento-date-badge-icon {
    color: var(--daimon-rosa);
}
.evento-date-badge-text {
    text-transform: lowercase;
}
.evento-card-body {
    padding: var(--card-padding) 0 0 var(--card-padding);
    flex: 1;
    display: flow-root;
}
.evento-calendar-strip-wrap {
    float: right;
    margin: 0.3rem 0 0.3rem 0.3rem;
}
.evento-card-body-content {
    /* Blocco unico: titolo e paragrafo in flow, il testo si adatta al float (data/orari) a destra e prosegue sotto a tutta larghezza */
}
.evento-card-body-content .evento-card-title {
    margin: 0 0 0.25rem 0;
}
.evento-card-body-content .evento-card-desc {
    margin: 0;
}
.evento-card-body-content .evento-card-cost {
    margin: 0.5rem 0 0 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--daimon-oro-scuro, #8b6914);
}
/* (obsoleto rimosso) Wrapper calendario + fogliettino INIZIO: float right, bordo destro allineato all’immagine sopra */
/* ── Blocco calendario a strappo (iconografia calendario cartaceo) ─────────────
 * Riferimento: calendari a blocchi/strappo (rettangolo verticale, un foglio per giorno).
 * Contenuto in verticale: giorno settimana (Lun), numero (16), mese (MAR).
 * Angoli: solo leggermente stondati (--radius-calendar-block 3px) così non competono
 * con l’unico angolo “speciale” che è la linguetta piegata in alto a destra.
 * Colori e bordo: riuso variabili tipo (evento/seminario/laboratorio) come tag categoria.
 * Sfondo: --daimon-bianco con leggera trama carta opzionale (gradient) per armonia.
 */
/* Blocco calendario: altezza da contenuto; gap ridotto tra giorno settimana e numero */
.evento-calendar-strip {
    position: relative;
    width: 3.75rem;
    padding: 0.5rem 0.35rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.1rem;
    background: var(--daimon-bianco);
    background-image: linear-gradient(rgba(55, 15, 103, 0.012) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(55, 15, 103, 0.012) 1px, transparent 1px);
    background-size: 8px 8px;
    border: 1px solid rgba(55, 15, 103, 0.18);
    border-radius: var(--radius-calendar-block);
    box-sizing: border-box;
}
/* Linguetta piegata: triangolo (angolo pagina piegato) con ombra “sotto” la piega */
.evento-calendar-strip-tab {
    position: absolute;
    top: 0;
    right: 0;
    width: 1.35rem;
    height: 1.35rem;
    clip-path: polygon(100% 0, 100% 100%, 0 0);
    box-shadow: -2px 2px 6px rgba(0, 0, 0, 0.2), inset 1px -1px 1px rgba(255, 255, 255, 0.2);
    z-index: 1;
}
.evento-calendar-strip--evento .evento-calendar-strip-tab,
.evento-calendar-strip--evento {
    border-color: var(--daimon-viola);
}
.evento-calendar-strip--evento .evento-calendar-strip-tab {
    background: linear-gradient(135deg, var(--daimon-viola) 0%, var(--daimon-viola-scuro) 100%);
}
.evento-calendar-strip--seminario .evento-calendar-strip-tab,
.evento-calendar-strip--seminario {
    border-color: var(--daimon-oro);
}
.evento-calendar-strip--seminario .evento-calendar-strip-tab {
    background: linear-gradient(135deg, var(--daimon-oro) 0%, var(--daimon-oro-hover) 100%);
}
.evento-calendar-strip--laboratorio .evento-calendar-strip-tab,
.evento-calendar-strip--laboratorio {
    border-color: var(--daimon-rosa);
}
.evento-calendar-strip--laboratorio .evento-calendar-strip-tab {
    background: linear-gradient(135deg, var(--daimon-rosa) 0%, var(--daimon-rosa-hover) 100%);
}
.evento-calendar-strip--workshop .evento-calendar-strip-tab,
.evento-calendar-strip--workshop {
    border-color: var(--daimon-viola);
}
.evento-calendar-strip--workshop .evento-calendar-strip-tab {
    background: linear-gradient(135deg, var(--daimon-viola) 0%, var(--daimon-viola-scuro) 100%);
}
.evento-calendar-strip-wrap:has(.evento-calendar-strip--workshop) .evento-calendar-orari,
.evento-calendar-strip-wrap:has(.evento-calendar-strip--workshop) .evento-calendar-orari-ring {
    border-color: rgba(55, 15, 103, 0.3);
}
.evento-calendar-strip-weekday {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--daimon-testo-muted);
    order: -1;
}
.evento-calendar-strip-day {
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1;
    color: var(--daimon-viola-scuro);
    font-family: var(--daimon-font-titoli);
}
.evento-calendar-strip-month {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--daimon-testo-muted);
}
/* Tavola orari sotto il blocco data: orari in verticale, collegata con due anelli grafici */
.evento-calendar-orari {
    position: relative;
    margin-top: 0.35rem;
    padding: 0.35rem 0.4rem 0.4rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    background: var(--daimon-bianco);
    border: 1px solid rgba(55, 15, 103, 0.18);
    border-radius: var(--radius-calendar-block);
    width: 3.75rem;
    box-sizing: border-box;
}
.evento-calendar-orari-ring {
    position: absolute;
    top: -0.5rem;
    width: 0.5rem;
    height: 0.5rem;
    border: 2px solid rgba(55, 15, 103, 0.35);
    border-radius: 50%;
    background: var(--daimon-bianco);
    box-shadow: inset 0 0 0 1px var(--daimon-bianco);
}
.evento-calendar-orari-ring--left {
    left: 0.5rem;
}
.evento-calendar-orari-ring--right {
    right: 0.5rem;
}
.evento-calendar-strip-wrap:has(.evento-calendar-strip--evento) .evento-calendar-orari,
.evento-calendar-strip-wrap:has(.evento-calendar-strip--evento) .evento-calendar-orari-ring {
    border-color: rgba(55, 15, 103, 0.3);
}
.evento-calendar-strip-wrap:has(.evento-calendar-strip--seminario) .evento-calendar-orari,
.evento-calendar-strip-wrap:has(.evento-calendar-strip--seminario) .evento-calendar-orari-ring {
    border-color: rgba(194, 150, 57, 0.5);
}
.evento-calendar-strip-wrap:has(.evento-calendar-strip--laboratorio) .evento-calendar-orari,
.evento-calendar-strip-wrap:has(.evento-calendar-strip--laboratorio) .evento-calendar-orari-ring {
    border-color: rgba(206, 15, 105, 0.3);
}
.evento-calendar-orari-times {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
}
.evento-calendar-orari-time {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--daimon-viola-scuro);
}
.evento-card-title {
    font-family: var(--daimon-font-titoli);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--daimon-viola);
    line-height: 1.25;
    margin: 0;
}
.evento-card-desc {
    font-size: 0.9rem;
    color: var(--daimon-testo-muted);
    line-height: 1.55;
    margin: 0;
    flex: 1;
}
.evento-card-footer {
    padding: 1rem var(--card-padding) var(--card-padding);
    margin-top: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}
.evento-card-cta {
    font-size: 0.85rem;
    padding: 0.55rem 1.25rem;
    min-height: var(--button-min-height);
}
/* Card archivio (edizioni passate): stessa struttura delle card attive, resa più sobria */
.evento-card--archivio {
    box-shadow: 0 2px 14px rgba(55, 15, 103, 0.06);
    border-color: rgba(55, 15, 103, 0.06);
}
.evento-card--archivio::before {
    background: linear-gradient(90deg, rgba(55, 15, 103, 0.35), rgba(194, 150, 57, 0.45));
}
.evento-card--archivio:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(55, 15, 103, 0.1);
    border-color: rgba(55, 15, 103, 0.12);
}
.evento-card--archivio .evento-type-tag {
    opacity: 0.92;
    box-shadow: -1px 2px 6px rgba(0, 0, 0, 0.1);
}
.evento-card--archivio .evento-type-tag--evento {
    background: rgba(55, 15, 103, 0.72);
    color: var(--daimon-bianco);
}
.evento-card--archivio .evento-type-tag--seminario {
    background: rgba(194, 150, 57, 0.82);
    color: var(--daimon-viola-scuro);
}
.evento-card--archivio .evento-type-tag--laboratorio {
    background: rgba(206, 15, 105, 0.72);
    color: var(--daimon-bianco);
}
.evento-card--archivio .evento-type-tag--workshop {
    background: rgba(55, 15, 103, 0.68);
    color: var(--daimon-bianco);
}
.evento-card--archivio .evento-calendar-strip {
    width: 3.35rem;
    padding: 0.4rem 0.3rem;
    gap: 0.06rem;
    border-color: rgba(55, 15, 103, 0.12);
    background-image: linear-gradient(rgba(55, 15, 103, 0.008) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(55, 15, 103, 0.008) 1px, transparent 1px);
}
.evento-card--archivio .evento-calendar-strip-weekday {
    font-size: 0.6rem;
    color: rgba(55, 15, 103, 0.45);
}
.evento-card--archivio .evento-calendar-strip-day {
    font-size: 1.35rem;
    color: rgba(55, 15, 103, 0.78);
}
.evento-card--archivio .evento-calendar-strip-month {
    font-size: 0.65rem;
    color: rgba(55, 15, 103, 0.42);
}
.evento-card--archivio .evento-calendar-strip--evento,
.evento-card--archivio .evento-calendar-strip--evento .evento-calendar-strip-tab {
    border-color: rgba(55, 15, 103, 0.22);
}
.evento-card--archivio .evento-calendar-strip--evento .evento-calendar-strip-tab {
    background: linear-gradient(135deg, rgba(55, 15, 103, 0.55) 0%, rgba(55, 15, 103, 0.35) 100%);
}
.evento-card--archivio .evento-calendar-strip--seminario,
.evento-card--archivio .evento-calendar-strip--seminario .evento-calendar-strip-tab {
    border-color: rgba(194, 150, 57, 0.35);
}
.evento-card--archivio .evento-calendar-strip--seminario .evento-calendar-strip-tab {
    background: linear-gradient(135deg, rgba(194, 150, 57, 0.65) 0%, rgba(194, 150, 57, 0.4) 100%);
}
.evento-card--archivio .evento-calendar-strip--laboratorio,
.evento-card--archivio .evento-calendar-strip--laboratorio .evento-calendar-strip-tab {
    border-color: rgba(206, 15, 105, 0.22);
}
.evento-card--archivio .evento-calendar-strip--laboratorio .evento-calendar-strip-tab {
    background: linear-gradient(135deg, rgba(206, 15, 105, 0.5) 0%, rgba(206, 15, 105, 0.32) 100%);
}
.evento-card--archivio .evento-calendar-strip--workshop,
.evento-card--archivio .evento-calendar-strip--workshop .evento-calendar-strip-tab {
    border-color: rgba(55, 15, 103, 0.22);
}
.evento-card--archivio .evento-calendar-strip--workshop .evento-calendar-strip-tab {
    background: linear-gradient(135deg, rgba(55, 15, 103, 0.5) 0%, rgba(55, 15, 103, 0.32) 100%);
}
.evento-card--archivio .evento-card-title {
    color: rgba(55, 15, 103, 0.88);
    font-size: 1.12rem;
}
.evento-card--archivio .evento-card-desc {
    font-size: 0.85rem;
    color: rgba(55, 15, 103, 0.48);
}
.eventi-page-card-period--archivio {
    font-size: 0.85rem;
    font-weight: 600;
    color: rgba(55, 15, 103, 0.5);
    margin: 0 0 0.5rem;
}
.evento-card-cta--archivio {
    background: transparent !important;
    color: var(--daimon-viola) !important;
    border: 2px solid rgba(55, 15, 103, 0.28) !important;
    font-weight: 600;
}
.evento-card-cta--archivio:hover {
    background: rgba(55, 15, 103, 0.06) !important;
    border-color: var(--daimon-viola) !important;
    color: var(--daimon-viola-scuro) !important;
    box-shadow: none !important;
}

/* ── Magazine section (separate, white) ── */
/* PROVA FULL-BLEED: per tornare indietro togliere width + margin sotto e rimettere solo padding: clamp(4rem,8vh,7rem) 0; (senza background) */
#magazine-section {
    margin-top: 0;
    margin-bottom: 0;
    padding: clamp(4rem,8vh,7rem) var(--main-padding-x);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    background: var(--daimon-bianco);
}

/* ── Buoni Natale (oro leggero, attaccato a sopra) ── */
/* PROVA FULL-BLEED: per tornare indietro togliere le 3 righe width + margin sotto */
#buoni-natale-new {
    margin-top: 0;
    margin-bottom: 0;
    background: rgba(194,150,57,0.07);
    padding: clamp(3rem,5vh,5rem) clamp(1.5rem,5vw,4rem);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    text-align: center;
}

/* ── CTA finale (sfondo oro, attaccata a footer viola) ── */
/* PROVA FULL-BLEED: per tornare indietro togliere le 3 righe width + margin sotto */
#cta-finale-new {
    margin-top: 0;
    margin-bottom: 0;
    background: var(--daimon-oro);
    text-align: center;
    padding: clamp(4rem,8vh,7rem) clamp(1.5rem,5vw,4rem);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}
.cta-finale-inner {
    max-width: 700px;
    margin: 0 auto;
}
.cta-finale-inner .section-label { justify-content: center; color: var(--daimon-rosa); }
.cta-finale-actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: nowrap;
}
.cta-finale-new-text {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.5rem, 3.5vw, 2.5rem);
    font-weight: 400;
    font-style: italic;
    color: var(--daimon-bianco);
    line-height: 1.2;
    margin-bottom: 2.5rem;
}
.cta-finale-new-text em { color: var(--daimon-viola); font-style: normal; }
#cta-finale-new .btn-primary {
    background: var(--daimon-rosa) !important;
    color: var(--daimon-bianco) !important;
    border-color: var(--daimon-rosa) !important;
}
#cta-finale-new .btn-primary:hover {
    background: var(--daimon-rosa-hover) !important;
    border-color: var(--daimon-rosa-hover) !important;
}
#cta-finale-new .btn {
    /* Allinea padding/min-height per bottoni `a` e `button` (Pico può differenziare) */
    min-height: var(--button-min-height) !important;
    height: var(--button-min-height) !important;
    line-height: 1 !important;
    padding: var(--button-padding-y) var(--button-padding-x) !important;
}
#cta-finale-new .btn-ghost {
    border-color: var(--daimon-viola) !important;
    color: var(--daimon-viola) !important;
}
#cta-finale-new .btn-ghost:hover {
    border-color: var(--daimon-viola-scuro) !important;
    color: var(--daimon-viola-scuro) !important;
    background: rgba(55, 15, 103, 0.1) !important;
}

/* ---------- Newsletter home (full-bleed, prima della CTA finale) ---------- */
#newsletter-home {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    background-color: var(--daimon-grigio-caldo);
    padding: var(--section-spacing) clamp(var(--main-padding-x), 5vw, 3rem);
    margin-top: 0;
    margin-bottom: 0;
}
.newsletter-home-inner.container {
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.newsletter-home-eyebrow {
    font-size: 0.9rem;
    color: var(--daimon-rosa);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 0.5rem;
}
.newsletter-home-title {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.35rem, 3vw, 1.85rem);
    font-weight: 600;
    color: var(--daimon-viola);
    margin: 0 0 1.25rem;
    line-height: 1.35;
}
.newsletter-home-form {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    align-items: center;
    max-width: 28rem;
    margin: 0 auto;
}
.newsletter-home-form {
    border: 2px solid var(--daimon-viola);
    border-radius: var(--radius);
    padding: 0.35rem;
    gap: 0.35rem;
    background: transparent;
}
.newsletter-home-form input[type="text"],
.newsletter-home-form input[type="email"] {
    flex: 1 1 10rem;
    min-width: 0;
    padding: var(--button-padding-y) 1rem;
    border: none;
    border-radius: var(--radius-sm);
    font-size: 1rem;
    background: var(--daimon-bianco);
}
.newsletter-home-btn {
    flex: 0 0 auto;
    background: var(--daimon-viola);
    color: var(--daimon-bianco);
    border: none;
}
.newsletter-home-btn:hover {
    background: var(--daimon-viola-scuro);
    color: var(--daimon-bianco);
}
.newsletter-home-msg {
    margin: 0.75rem 0 0;
    padding: 0.6rem 1rem;
    font-size: 0.95rem;
    border-radius: var(--radius);
    background: var(--daimon-bianco);
    color: var(--daimon-viola);
}

.hidden { display: none !important; }

/* ---------- Hero – H1 rotante (3 frasi, crossfade CSS puro, loop 18s) ----------
 * Tutte e tre le frasi sono nel DOM per SEO.
 * Il container ha altezza fissa via min-height + grid sovrapposta per evitare layout shift.
 * prefers-reduced-motion: mostra solo la prima frase, nessuna animazione.
 * ---------------------------------------------------------------------------------*/
@keyframes hero-frase-rotate {
    0%      { opacity: 0; transform: translateY(10px); }
    4%      { opacity: 1; transform: translateY(0); }
    30%     { opacity: 1; transform: translateY(0); }
    34%     { opacity: 0; transform: translateY(-10px); }
    35%, 100% { opacity: 0; transform: translateY(0); }
}

/* .hero-title-rotante: font-size e min-height gestiti nella sezione HERO principale.
   Qui solo le proprietà esclusive del meccanismo rotante. */
.hero-title-r {
    grid-area: stack;
    opacity: 0;
    animation: hero-frase-rotate 18s ease-in-out infinite;
    font-family: var(--daimon-font-titoli);
    font-weight: 600;
    color: var(--daimon-bianco);
    font-size: inherit;
    line-height: inherit;
    letter-spacing: 0.02em;
    margin: 0;
    display: block;
}
/* Accenti colore nell'H1 hero */
.hero-em-oro {
    color: var(--daimon-oro);
    font-style: normal;
}
.hero-em-rosa {
    color: var(--daimon-rosa);
    font-style: normal;
}
/* Lead e micro-claim su sfondo viola (B): stili base; (A) gestito nel blocco hero sopra */
.hero-content .lead {
    color: rgba(248, 248, 242, 0.88);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    margin-top: 0;
}
/* Wrapper: solo margine; H2 solo per Marco Penitenti e DAiMON Academy */
.hero-content .hero-micro-claim--desktop {
    text-align: left;
}
.hero-micro-claim__heading {
    margin: 0;
    display: inline;
    color: var(--daimon-oro);
    font-family: var(--daimon-font-subtitle);
    font-weight: inherit;
    letter-spacing: 0.08em;
    font-size: 0.95rem;
}
.hero-micro-claim__meta {
    color: var(--daimon-oro);
    font-family: var(--daimon-font-subtitle);
    font-size: inherit;
}
/* CTA hero overrides: secondario outline bianco su sfondo viola */
.hero-cta [role="button"].secondary {
    background-color: transparent !important;
    border: 2px solid rgba(248, 248, 242, 0.5) !important;
    border-radius: 0.5rem !important;
    color: var(--daimon-bianco) !important;
}
.hero-cta [role="button"].secondary:hover {
    border-color: var(--daimon-bianco) !important;
    background-color: rgba(248, 248, 242, 0.1) !important;
}

.hero-title-r--1 { animation-delay: 0s; }
.hero-title-r--2 { animation-delay: 6s; }
.hero-title-r--3 { animation-delay: 12s; }

/* Reduced motion: solo la prima frase, visibile e statica */
@media (prefers-reduced-motion: reduce) {
    .hero-title-r { animation: none; opacity: 0; }
    .hero-title-r--1 { opacity: 1; }
    .hero-title-rotante { min-height: auto; }
}

/* ── Banner sopra menu: viola, fixed; barra nav a top ridotto così resta adiacente senza alzare il banner ── */
body.has-banner {
    --site-banner-height: 1.45rem;
    --site-banner-block: calc(0.6rem + var(--site-banner-height) + 0.7rem);
}
.site-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 101;
    height: var(--site-banner-height);
    min-height: var(--site-banner-height);
    box-sizing: border-box;
    padding: 0.6rem var(--main-padding-x) 0.7rem;
    background: var(--daimon-viola-scuro);
    font-size: 0.75rem;
    font-family: "Niramit", sans-serif;
    line-height: 1.5;
    display: flex;
    align-items: center;
    overflow: hidden;
    transition: box-shadow 0.25s ease;
}
body.has-banner.site-header-hidden .site-banner {
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.25);
}
body.has-banner .site-header {
    top: calc(var(--site-banner-block) - 26px);
}
body.has-banner .site-header.is-hidden {
    transform: translateY(calc(-100% - var(--site-banner-block) + 26px));
}
body.has-banner.has-fixed-header {
    padding-top: calc(var(--site-banner-block) + 0.18rem + var(--site-nav-bar-height, 3rem));
}
body.has-banner.site-nav-open.has-fixed-header {
    padding-top: calc(var(--site-banner-block) + var(--site-nav-open-padding, calc(0.18rem + var(--site-nav-bar-height, 3rem))));
}
/* Hero: compensa lo spazio fisso del banner così resta a tutta viewport, freccia in basso e CTA visibili */
body.has-banner .hero-wrapper {
    margin-top: calc(-4.5rem - var(--site-banner-block));
    /* Padding-top maggiore così il contenuto (logo/titolo) parte sotto menu e non “appicicato” */
    padding-top: calc(var(--site-banner-block) + 4.5rem + clamp(0.5rem, 1.5vh, 1.5rem) + 0.5rem);
}
@media (max-width: 63.99em) {
    body.has-banner .hero-wrapper {
        padding-top: calc(var(--site-banner-block) + 4.5rem + clamp(0.25rem, 0.8vh, 0.75rem) + 0.5rem);
    }
}

/* Percorsi (template): su mobile meno aria sopra in hero con banner */
@media (max-width: 63.99em) { /* --breakpoint-tablet-and-down */
    body.has-banner:has(.percorso-page--template) .hero-wrapper--corso {
        padding-top: calc(var(--site-banner-block) + 4.5rem + clamp(0.25rem, 0.8vh, 0.75rem) + 0rem);
    }
}
.site-banner-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
}
.site-banner-center {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.site-banner-slides {
    flex: 0 1 auto;
    min-width: 0;
    text-align: center;
    position: relative;
    min-height: 1em;
    overflow: hidden;
    white-space: nowrap;
}
.site-banner-slide {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
}
.site-banner-slide.active {
    position: relative;
    opacity: 1;
    pointer-events: auto;
}
.site-banner-title { color: var(--daimon-oro); font-weight: 600; }
.site-banner-date { color: var(--daimon-bianco); }
.site-banner-slide-link { color: inherit; text-decoration: none; }
.site-banner-slide-link:hover .site-banner-title,
.site-banner-slide-link:hover .site-banner-date { color: var(--daimon-oro); }
.site-banner-cta {
    color: var(--daimon-bianco);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}
.site-banner-slide-link:hover .site-banner-cta { color: var(--daimon-oro); }
.site-banner-prev,
.site-banner-next {
    flex-shrink: 0;
    width: 1ch;
    min-width: 1ch;
    padding: 0;
    margin: 0;
    border: none;
    background: none;
    font: inherit;
    font-weight: 700;
    font-size: inherit;
    line-height: inherit;
    color: var(--daimon-oro);
    display: none;
    cursor: pointer;
    vertical-align: baseline;
}
.site-banner-prev:hover,
.site-banner-next:hover { color: var(--daimon-bianco); }
.site-banner-contacts {
    display: none;
    flex-shrink: 0;
    align-items: center;
    gap: 0.75rem;
}
.site-banner-tel,
.site-banner-email {
    color: var(--daimon-bianco);
    text-decoration: none;
    white-space: nowrap;
}
.site-banner-tel:hover,
.site-banner-email:hover { color: var(--daimon-oro); }
.site-banner-icon-tel,
.site-banner-icon-email {
    display: inline-block;
    width: 0.9em;
    height: 0.9em;
    background: currentColor;
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
}
.site-banner-icon-tel {
    margin-right: 0.25em;
    vertical-align: -0.15em;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}
.site-banner-icon-email {
    margin-right: 0.2em;
    vertical-align: -0.1em;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
}
@media (min-width: 768px) {
    .site-banner-contacts { display: flex; }
    .site-banner-prev,
    .site-banner-next {
        display: block;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 1;
    }
    .site-banner-prev { left: 0; }
    .site-banner-next { right: 0; }
}
@media (max-width: 767px) {
    .site-banner {
        font-size: 0.65rem;
        padding: 0.6rem var(--main-padding-x) 0.7rem;
    }
    .site-banner-center { justify-content: center; }
    .site-banner-prev,
    .site-banner-next { display: none; }
    .site-banner-cta { display: none; }
    .site-banner-slide.active .site-banner-slide-text { display: inline; }
    @media (prefers-reduced-motion: reduce) {
        .site-banner-slide.active .site-banner-slide-text { animation: none; }
    }
}

/* ── Sezione Bisogni (home): senza sfondo, titolo a sx, 3D stacking cards + foto ── */
/* PROVA FULL-BLEED: per tornare indietro togliere width + margin sotto e rimettere solo padding: clamp(2rem, 5vh, 4rem) 0; (senza background) */
#bisogni {
    margin-top: calc(var(--section-spacing) * 0.5);
    padding: clamp(2rem, 5vh, 4rem) var(--main-padding-x);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    background: var(--daimon-bianco);
}
#bisogni .section-label {
    color: var(--daimon-oro);
}
.bisogni-header {
    text-align: left;
    margin-bottom: clamp(1.5rem, 4vh, 2.5rem);
}
.bisogni-title {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    font-weight: 600;
    line-height: 1.2;
    color: var(--daimon-viola);
    margin-bottom: 0;
}
/* Layout: stack cards + area foto affiancati su desktop */
.bisogni-stack-wrap {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}
@media (min-width: 768px) {
    .bisogni-stack-wrap {
        grid-template-columns: 1fr min(320px, 35%);
        align-items: start;
    }
}
/* 3D stacking card list: perspective + translateZ + blur + stagger */
.bisogni-stack {
    list-style: none;
    list-style-type: none;
    padding: 0;
    padding-left: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    perspective: 800px;
    transition: gap 400ms ease;
}
.bisogni-stack-card {
    list-style: none;
    list-style-type: none;
}
.bisogni-stack-card::marker {
    content: none;
    display: none;
}
.bisogni-stack:hover {
    gap: 1.25rem;
}
.bisogni-stack-card {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.35rem, calc(2.2vw + 0.3rem), 1.7rem);
    font-style: italic;
    color: var(--daimon-testo);
    line-height: 1.5;
    padding: clamp(0.85rem, 2vw, 1.25rem) clamp(1rem, 2.5vw, 1.5rem);
    background: var(--daimon-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    transition: transform 500ms ease, filter 500ms ease, opacity 500ms ease, box-shadow 400ms ease;
    transition-delay: calc(var(--i, 0) * 50ms);
    transform-origin: center center;
}
/* Profondità: card "dietro" più indietro e sfocate */
.bisogni-stack-card:nth-child(1) {
    transform: translateZ(-75px) translateY(20px);
    opacity: 0.7;
    filter: blur(3px);
}
.bisogni-stack-card:nth-child(2) {
    transform: translateZ(-40px) translateY(10px);
    opacity: 0.85;
    filter: blur(1.5px);
}
.bisogni-stack-card:nth-child(3) {
    transform: translateZ(20px) translateY(-25px);
    filter: blur(0.5px);
}
.bisogni-stack-card:nth-child(4) {
    transform: translateZ(80px) translateY(-50px);
    filter: blur(0);
}
.bisogni-stack:hover .bisogni-stack-card {
    transform: translateZ(0) translateY(0);
    opacity: 1;
    filter: blur(0);
    box-shadow: var(--shadow-card-hover);
}
@media (prefers-reduced-motion: reduce) {
    .bisogni-stack-card {
        transition: none;
        transform: none;
        filter: none;
        opacity: 1;
    }
    .bisogni-stack:hover .bisogni-stack-card { transform: none; }
    .bisogni-stack { gap: 1rem; }
    .bisogni-stack:hover { gap: 1rem; }
}
/* Area foto: sempre visibile (mobile e desktop); placeholder se src vuoto */
.bisogni-photo {
    position: relative;
    display: block;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background-color: var(--daimon-grigio-caldo);
    aspect-ratio: 4 / 5;
    min-height: 200px;
}
.bisogni-photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 200px;
    object-fit: cover;
    object-position: center;
}
.bisogni-photo img[src=""],
.bisogni-photo img:not([src]) {
    opacity: 0;
}
@media (max-width: 767px) {
    .bisogni-photo {
        min-height: 220px;
        width: 100%;
    }
    .bisogni-photo img {
        min-height: 220px;
    }
}

/* ── Sezione Tre Strade (home) ── */
/* PROVA FULL-BLEED: per tornare indietro togliere width + margin sotto e rimettere solo padding: clamp(0.75rem, 1.75vh, 1.25rem) 0 clamp(4rem, 8vh, 7rem); (senza background) */
#tre-strade {
    margin-top: calc(var(--section-spacing) * 0.25);
    padding: clamp(0.75rem, 1.75vh, 1.25rem) var(--main-padding-x) clamp(4rem, 8vh, 7rem);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    background: var(--daimon-bianco);
}
#tre-strade .section-title {
    margin-bottom: 0.35rem;
}
#tre-strade .section-intro {
    margin-top: 0;
    margin-bottom: 2rem;
}
.tre-strade-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}
@media (max-width: 767px) { /* --breakpoint-mobile */
    .tre-strade-grid {
        grid-template-columns: 1fr;
    }
}
@media (min-width: 768px) and (max-width: 1023px) { /* tablet */
    .tre-strade-grid {
        grid-template-columns: 1fr 1fr;
    }
    .strada-card--principale {
        grid-column: 1 / -1;
    }
}
.strada-card {
    background: var(--daimon-bianco);
    border-radius: var(--radius-lg);
    padding: 2rem 1.75rem;
    text-decoration: none;
    color: var(--daimon-testo);
    border: 1px solid rgba(55, 15, 103, 0.08);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    transition: box-shadow var(--transition-ease), transform var(--transition-ease), border-color var(--transition-ease);
    position: relative;
    overflow: hidden;
}
.strada-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--daimon-viola), var(--daimon-oro));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-ease);
}
.strada-card:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-3px);
    border-color: rgba(55, 15, 103, 0.15);
}
.strada-card:hover::before {
    transform: scaleX(1);
}
.strada-eyebrow {
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--daimon-oro);
    font-weight: 600;
}
.strada-card h3 {
    font-family: var(--daimon-font-titoli);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--daimon-viola);
    line-height: 1.2;
}
.strada-card p {
    font-size: 0.9rem;
    color: var(--daimon-testo-muted);
    line-height: 1.6;
    flex: 1;
}
.strada-link {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--daimon-viola);
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.25rem;
}
.strada-link svg {
    transition: transform var(--transition-ease);
}
.strada-card:hover .strada-link svg {
    transform: translateX(4px);
}

/* Modifier: card principale (sfondo viola) — dopo le regole base così le override vincono per cascade */
.strada-card--principale {
    background-color: var(--daimon-viola);
    color: var(--daimon-bianco);
    border-color: transparent;
}
.strada-card--principale::before {
    background: var(--daimon-oro);
}
.strada-card--principale h3,
.strada-card--principale p {
    color: var(--daimon-bianco);
}
.strada-card--principale .strada-eyebrow {
    color: var(--daimon-oro);
    text-transform: none; /* preserva "DAiMON" (i minuscola), no uppercase */
}
.strada-card--principale .strada-link {
    color: var(--daimon-oro);
}

/* ── Pagina Percorsi: hero = stesso modello della home (.hero-wrapper + .hero), senza geometry ── */
.hero-wrapper--percorsi {
    position: relative;
    overflow: hidden;
}
.hero-wrapper--percorsi > .hero.hero--percorsi {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    max-width: min(42rem, 100%);
    text-align: center;
    position: relative;
    z-index: 1;
}
.hero-wrapper--percorsi .hero-percorsi-title {
    color: var(--daimon-bianco);
    font-weight: 600;
    line-height: 1.15;
    margin-bottom: 0.35rem;
}
/* Titolo su tre righe (prefisso / centrale / suffisso): stessi span del corso, colori hero percorsi */
.hero-wrapper--percorsi .hero-percorsi-title.hero-title-corso {
    color: var(--daimon-bianco);
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.5rem, 4vw + 0.5rem, 2.5rem);
    font-weight: 600;
    line-height: 1.2;
    margin-bottom: 0.35rem;
}
@media (min-width: 64em) {
    .hero-wrapper--percorsi .hero-percorsi-title.hero-title-corso {
        font-size: clamp(1.75rem, 3vw + 1rem, 3rem);
    }
}
.hero-wrapper--percorsi .hero-title-prefix,
.hero-wrapper--percorsi .hero-title-suffix {
    color: rgba(248, 248, 242, 0.92);
}
.hero-wrapper--percorsi .hero-percorsi-lead p {
    margin: 0;
}
.hero-wrapper--percorsi .hero-percorsi-lead {
    color: rgba(248, 248, 242, 0.9);
    line-height: 1.65;
    margin-top: 0.3rem;
    margin-bottom: 0.45rem;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
}
.hero-wrapper--percorsi .hero-percorsi-detail {
    font-size: 0.95rem;
    color: rgba(248, 248, 242, 0.72);
    line-height: 1.65;
    margin-bottom: 0.65rem;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
}
.hero-wrapper--percorsi .hero-percorsi-detail p {
    margin: 0;
}
/* Eyebrow: meno aria verticale (~1/3 rispetto al default 1.5rem); desktop vedi @media 64em */
.hero-wrapper--percorsi .hero-eyebrow {
    margin-bottom: 0.45rem;
}
.hero-wrapper--percorsi .percorsi-hero-mode {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    flex-wrap: wrap;
    margin: 0.35rem 0 0;
}
.pill--light {
    background: rgba(248, 248, 242, 0.12);
    color: rgba(248, 248, 242, 0.85);
    font-size: 0.76rem;
    padding: 0.25rem 0.7rem;
    border-radius: var(--radius-lg);
    letter-spacing: 0.02em;
}
.pill-tag--short {
    display: none;
}
@media (max-width: 63.99em) {
    .pill-tag--full {
        display: none;
    }
    .pill-tag--short {
        display: inline;
    }
}
/* Hero Percorsi: su mobile il lead non va nascosto (regola home .hero .lead) */
@media (max-width: 63.99em) {
    .hero-wrapper--percorsi .hero .lead,
    .hero-wrapper--percorsi .hero-content .lead {
        display: block !important;
    }
    .hero-wrapper--percorsi .hero-percorsi-fill {
        flex: 1 1 0;
        min-height: 0;
        width: 100%;
    }
}
@media (min-width: 64em) {
    .pill-tag--short {
        display: none;
    }
    .pill-tag--full {
        display: inline;
    }
    /* Desktop alto: la hero riempie il viewport; il testo non resta tutto in alto */
    .hero-wrapper--percorsi {
        justify-content: flex-start;
    }
    .hero-wrapper--percorsi > .hero.hero--percorsi {
        flex: 1 1 auto;
        align-self: center;
        min-height: 0;
    }
    .hero-wrapper--percorsi .hero.hero--percorsi .hero-content {
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        min-height: 0;
        text-align: center;
        align-items: center;
        /* Spazio extra che scala con l’altezza finestra tra i blocchi di testo */
        gap: clamp(0.4rem, 2vh, 1.5rem);
        padding-top: clamp(0.35rem, 3vh, 2.75rem);
    }
    /* Spazio flessibile sopra il blocco testo (~2/3 dello spazio “libero” vs il fill sotto le pill) */
    .hero-wrapper--percorsi .hero.hero--percorsi .hero-content::before {
        content: '';
        order: -1;
        flex: 2 1 0;
        min-height: 0;
        width: 100%;
        pointer-events: none;
    }
    .hero-wrapper--percorsi .hero-percorsi-fill {
        flex: 1 1 0;
        min-height: 0;
        width: 100%;
    }
    .hero-wrapper--percorsi .hero-eyebrow {
        margin-bottom: clamp(0.35rem, 1.2vh, 0.85rem);
    }
    .hero-wrapper--percorsi .hero-percorsi-title {
        margin-bottom: clamp(0.25rem, 1.4vh, 1.1rem);
    }
    .hero-wrapper--percorsi .hero-percorsi-lead {
        margin-top: 0;
        margin-bottom: clamp(0.3rem, 1.3vh, 1rem);
    }
    .hero-wrapper--percorsi .hero-percorsi-detail {
        margin-bottom: clamp(0.35rem, 1.4vh, 1.1rem);
    }
    .hero-wrapper--percorsi .percorsi-hero-mode {
        margin-top: clamp(0.2rem, 1vh, 0.85rem);
    }
}
/* CTA sempre affiancate, blocco centrato */
.hero-wrapper--percorsi .hero-cta {
    flex-wrap: nowrap;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.hero-wrapper--percorsi .hero-cta .btn {
    white-space: nowrap;
    flex: 0 1 auto;
    min-width: 0;
    padding-left: clamp(0.65rem, 2vw, 1.25rem);
    padding-right: clamp(0.65rem, 2vw, 1.25rem);
}
/* Più respiro sotto le CTA (lista percorsi) */
.hero-wrapper--percorsi {
    padding-bottom: clamp(0.75rem, 2.1vh, 1.5rem);
}

/*
 * Elenco /percorsi: tra hero viola e «Esperienze condivise» non c’è markup extra —
 * la fascia chiara era il padding-top (e il border-top) della sezione oro.
 * Il viola resta “attaccato” al blocco oro: respiro sopra al titolo spostato nel padding-bottom della hero.
 * Valori ~⅔ rispetto al blocco precedente (padding ridotto di un terzo).
 */
#percorsi-main-hero.hero-wrapper.hero-wrapper--percorsi {
    height: auto;
    min-height: 100vh;
    min-height: 100dvh;
    padding-bottom: clamp(1.65rem, 4vh, 3rem);
}
@media (max-width: 63.99em) {
    #percorsi-main-hero.hero-wrapper.hero-wrapper--percorsi {
        height: auto;
        min-height: calc(100vh + 1.5rem);
        min-height: calc(100dvh + 1.5rem);
        padding-bottom: clamp(1.65rem, 4vh, 3rem);
    }
}

/* Legacy: views/percorsi.php (non servito come /percorsi principale) */
section.percorsi-hero {
    background-color: var(--daimon-viola);
    padding: clamp(4rem, 8vh, 7rem) clamp(1.5rem, 5vw, 4rem);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
}
section.percorsi-hero .percorsi-hero-inner {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 1;
}
section.percorsi-hero .percorsi-hero-title {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 600;
    line-height: 1.15;
    color: var(--daimon-bianco);
    margin-bottom: 1.5rem;
}
section.percorsi-hero .percorsi-hero-lead {
    font-size: clamp(1rem, 1.8vw, 1.15rem);
    color: rgba(248, 248, 242, 0.88);
    line-height: 1.7;
    margin-bottom: 1rem;
}
section.percorsi-hero .percorsi-hero-detail {
    font-size: 0.95rem;
    color: rgba(248, 248, 242, 0.7);
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

/* Hero: immagine come sfondo (dietro al testo) */
.percorsi-main-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.35;
}
.percorsi-main-hero-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(55, 15, 103, 0.55);
}
.percorsi-main-hero-bg__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Sezione cards (pagina /percorsi) */
.percorsi-gruppo-section--gold {
    background: rgba(194, 150, 57, 0.10);
    border-top: 1px solid rgba(194, 150, 57, 0.18);
    border-bottom: 1px solid rgba(194, 150, 57, 0.18);
}
/* Dopo hero viola / prima della call: niente bordo “a striscia”; l’aria è nei padding, non nella linea */
#percorsi-gruppo.percorsi-gruppo-section--gold {
    border-top: none;
    border-bottom: none;
}
.percorsi-main-cards {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
    align-items: stretch;
}
@media (min-width: 768px) { /* --breakpoint-tablet */
    .percorsi-main-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 1024px) { /* --breakpoint-desktop */
    .percorsi-main-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.35rem;
    }
}

.percorsi-main-card {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    border-radius: var(--radius-xl);
    background: rgba(248, 248, 242, 0.92);
    border: 1px solid rgba(55, 15, 103, 0.08);
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.08);
    transition: transform var(--transition-ease), box-shadow var(--transition-ease), background var(--transition-ease);
    overflow: hidden;
}
.percorsi-main-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 22px 70px rgba(0, 0, 0, 0.12);
    background: rgba(248, 248, 242, 0.98);
}

.percorsi-main-card-img-wrap {
    position: relative;
    height: 170px;
    overflow: hidden;
    background: rgba(55, 15, 103, 0.03);
    flex-shrink: 0;
}

.percorsi-main-card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: brightness(0.92);
    transform: scale(1.02);
}

.percorsi-main-card-num {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    font-family: var(--daimon-font-titoli);
    line-height: 1;
    color: var(--daimon-bianco);
    background: rgba(55, 15, 103, 0.6);
    border-radius: 0.35rem;
    padding: 0.15rem 0.6rem;
    backdrop-filter: blur(4px);
}

.percorsi-main-card-num-val {
    font-size: 1.6rem;
    font-weight: 300;
}

.percorsi-main-card-tag-badge {
    position: absolute;
    bottom: 0.75rem;
    right: 0.75rem;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: var(--daimon-oro);
    color: var(--daimon-viola);
    padding: 0.22rem 0.65rem;
    border-radius: 2rem;
}

.percorsi-main-card-body {
    padding: 1.25rem 1.25rem 1.1rem;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.percorsi-main-card-title {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.15rem, 2.2vw, 1.35rem);
    font-weight: 600;
    color: var(--daimon-viola);
    line-height: 1.2;
    margin: 0;
    flex-shrink: 0;
}

.percorsi-main-card-sub {
    font-size: 0.8rem;
    color: var(--daimon-testo-muted);
    font-style: italic;
    margin: 0;
    flex-shrink: 0;
}

/* Blocco testo: stessa altezza per riga (griglia stretch + flex); testo ancorato in alto */
.percorsi-main-card-desc {
    font-size: 0.86rem;
    color: rgba(43, 31, 66, 0.75);
    line-height: 1.65;
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 0.05rem;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
}

.percorsi-main-card-desc p {
    margin: 0;
}

.percorsi-main-card-desc p + p {
    margin-top: 0.5rem;
}

.percorsi-main-card-pills {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 0.45rem;
    flex-shrink: 0;
}

/* Nessuna pill: la CTA resta agganciata in fondo come il blocco pill+cta */
.percorsi-main-card-desc + .percorsi-main-card-cta {
    margin-top: auto;
    padding-top: 0.45rem;
}

.percorsi-main-card-pills + .percorsi-main-card-cta {
    margin-top: 0.2rem;
}

.percorsi-main-card-cta {
    align-self: flex-end;
    font-size: 0.86rem;
    font-weight: 800;
    color: var(--daimon-oro);
    letter-spacing: 0.02em;
    flex-shrink: 0;
}

/* Card “speciale” (pagina elenco percorsi): viola, testi chiari, titolo oro */
.percorsi-main-card--special {
    background: var(--daimon-viola);
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: 0 18px 50px rgba(55, 15, 103, 0.35);
    color: var(--daimon-bianco);
}
.percorsi-main-card--special:hover {
    transform: translateY(-3px);
    background: var(--daimon-viola-chiaro);
    box-shadow: 0 22px 60px rgba(55, 15, 103, 0.42);
}
/* Immagine come le altre card: stesso fondo neutro, nessun overlay viola né filtro che scurisce */
.percorsi-main-card--special .percorsi-main-card-img-wrap {
    background: rgba(55, 15, 103, 0.03);
}
.percorsi-main-card--special .percorsi-main-card-img-wrap img {
    filter: brightness(0.92);
    transform: scale(1.02);
}
.percorsi-main-card--special .percorsi-main-card-tag-badge {
    background: var(--daimon-oro);
    color: var(--daimon-viola);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.percorsi-main-card--special .percorsi-main-card-title {
    color: var(--daimon-oro);
}
.percorsi-main-card--special .percorsi-main-card-sub {
    color: rgba(255, 255, 255, 0.82);
}
.percorsi-main-card--special .percorsi-main-card-desc {
    color: rgba(255, 255, 255, 0.9);
}
.percorsi-main-card--special .percorsi-main-card-desc a {
    color: var(--daimon-oro);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}
.percorsi-main-card--special .percorsi-main-card-desc a:hover {
    color: #ddb24d;
}
.percorsi-main-card--special .percorsi-main-card-desc .color-viola {
    color: rgba(255, 255, 255, 0.95) !important;
}
.percorsi-main-card--special .percorsi-main-card-desc .color-oro {
    color: var(--daimon-oro) !important;
}
.percorsi-main-card--special .percorsi-main-card-desc .color-rosa {
    color: rgba(255, 210, 225, 0.95) !important;
}
.percorsi-main-card--special .percorsi-main-card-desc .color-bordo {
    color: rgba(255, 255, 255, 0.88) !important;
}
.percorsi-main-card--special .percorsi-main-card-pills .pill {
    background: rgba(255, 255, 255, 0.12);
    color: var(--daimon-bianco);
    border: 1px solid rgba(255, 255, 255, 0.22);
}
.percorsi-main-card--special .percorsi-main-card-cta {
    color: var(--daimon-oro);
}

.percorsi-gruppo-section {
    padding: clamp(4rem, 8vh, 7rem) var(--main-padding-x);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    background-color: var(--daimon-bianco);
}
#percorsi-gruppo.percorsi-gruppo-section {
    padding-top: clamp(0.85rem, 1.5vh, 1.15rem);
    padding-bottom: clamp(2.65rem, 5.33vh, 4.65rem);
    padding-left: var(--main-padding-x);
    padding-right: var(--main-padding-x);
}

.percorsi-gruppo-section .section-intro p {
    margin: 0;
}

/* Ancore /percorsi#…: offset sotto header fisso */
#percorsi-main-hero,
#percorsi-gruppo,
#percorsi-callcontact {
    scroll-margin-top: 5rem;
}

/* Pagina elenco Percorsi: niente margini extra tra sezioni (vince su section+section e main>section).
   Padding call ~⅔ del generico .percorsi-callcontact: meno vuoto sotto le card, stesso ritmo hero→oro. */
main #percorsi-callcontact.percorsi-callcontact {
    margin-top: 0;
    padding-top: clamp(1.65rem, 4vh, 3rem);
    padding-bottom: clamp(1.65rem, 4vh, 3rem);
}
/* Intestazione “Esperienze condivise”: intro a tutta larghezza contenitore (no 60ch); 1rem sopra le card */
.percorsi-gruppo-section .section-intro {
    margin-bottom: 0;
    max-width: none;
}
.percorsi-gruppo-section .percorsi-main-cards {
    margin-top: 1rem;
}
.percorsi-gruppo-section h2.section-title {
    margin-bottom: 0.5rem;
}

/* Call (viola) + richiesta info (oro), full-bleed; contenuto in colonna come il resto del sito */
.percorsi-callcontact {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    padding: clamp(2.5rem, 6vh, 4.5rem) 0;
    background: var(--daimon-bianco);
}
.percorsi-callcontact-inner {
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--main-padding-x);
    padding-right: var(--main-padding-x);
    box-sizing: border-box;
}
.percorsi-callcontact-layout {
    margin-top: 0;
    gap: 1.25rem;
    align-items: stretch;
}
@media (min-width: 768px) {
    /* --breakpoint-tablet */
    .percorsi-callcontact-layout {
        gap: 1.5rem;
    }
}
.percorsi-callcontact .contatti-info {
    background: var(--daimon-viola);
    color: var(--daimon-bianco);
    padding: var(--card-padding);
    border-radius: var(--radius-lg);
    box-sizing: border-box;
}
.percorsi-callcontact .contatti-info h2 {
    color: var(--daimon-bianco);
    margin-top: 0;
}
.percorsi-callcontact .contatti-info p {
    color: rgba(248, 248, 242, 0.9);
}
.percorsi-callcontact .contatti-info a {
    color: var(--daimon-oro);
}
.percorsi-callcontact .contatti-info a:hover {
    color: var(--daimon-oro-hover);
}
.percorsi-callcontact .contatti-form-section {
    background: var(--daimon-oro);
    color: var(--daimon-viola-scuro);
    padding: var(--card-padding);
    border-radius: var(--radius-lg);
    box-sizing: border-box;
}
.percorsi-callcontact .contatti-form-section h2 {
    color: var(--daimon-viola);
    margin-top: 0;
}
.percorsi-callcontact .contatti-form-section .form-row label,
.percorsi-callcontact .contatti-form-section .form-row-duo .form-cell label {
    color: var(--daimon-viola-scuro);
}
.percorsi-callcontact .contatti-form-section input[type="text"],
.percorsi-callcontact .contatti-form-section input[type="email"],
.percorsi-callcontact .contatti-form-section input[type="tel"],
.percorsi-callcontact .contatti-form-section textarea {
    background: rgba(248, 248, 242, 0.95);
    border-color: rgba(55, 15, 103, 0.22);
    color: var(--daimon-testo);
}
.percorsi-callcontact .contatti-form-section input:focus-visible,
.percorsi-callcontact .contatti-form-section textarea:focus-visible {
    border-color: var(--daimon-viola);
    outline-color: var(--daimon-viola);
}
.percorsi-callcontact .contatti-form-section button[type="submit"],
.percorsi-callcontact .contatti-form-section input[type="submit"] {
    background: var(--daimon-viola) !important;
    color: var(--daimon-bianco) !important;
    border-color: var(--daimon-viola) !important;
}
.percorsi-callcontact .contatti-form-section button[type="submit"]:hover,
.percorsi-callcontact .contatti-form-section input[type="submit"]:hover {
    background: var(--daimon-viola-scuro) !important;
    border-color: var(--daimon-viola-scuro) !important;
}

/* ── Pagina Chi è DAiMON ──
 * Hero: stesso layout corso (testo a sinistra, immagine a destra), immagine in background virata + figura che fluttua come home.
 */
.hero-wrapper--daimon .hero-scroll-hint { display: none; }
.hero-figure--daimon-float {
    animation: hero-figure-float 5s ease-in-out infinite;
}
.chi-e-daimon-inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding-left: var(--main-padding-x);
    padding-right: var(--main-padding-x);
}
.chi-e-daimon-content-section {
    padding-top: var(--section-spacing);
    padding-bottom: var(--section-spacing);
    background-color: var(--daimon-bianco);
}
@media (max-width: 767px) {
    .chi-e-daimon-content-section {
        padding-top: var(--section-spacing-mobile);
        padding-bottom: var(--section-spacing-mobile);
    }
}
@media (min-width: 1024px) {
    .chi-e-daimon-content-section {
        padding-top: var(--section-spacing-desktop);
        padding-bottom: var(--section-spacing-desktop);
    }
}
.chi-e-daimon-prose-title {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 600;
    color: var(--daimon-viola);
    margin: 0 0 1.25rem;
    line-height: 1.2;
}
.chi-e-daimon-prose {
    max-width: 48rem;
    font-size: 1rem;
    line-height: 1.75;
    color: var(--daimon-testo);
}
.chi-e-daimon-prose p {
    margin-bottom: 1.25rem;
}
.chi-e-daimon-prose p:last-of-type { margin-bottom: 0; }
.chi-e-daimon-prose strong { color: var(--daimon-viola); }
.chi-e-daimon-prose em { color: var(--daimon-testo-muted); font-style: italic; }
.chi-e-daimon-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(55, 15, 103, 0.1);
}

.sessioni-individuali-section {
    background-color: var(--daimon-grigio-caldo);
    padding: clamp(4rem, 8vh, 7rem) clamp(1.5rem, 5vw, 4rem);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}
.sessioni-ind-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
}
.sessione-ind-card {
    background: var(--daimon-bianco);
    border-radius: var(--radius-lg);
    padding: 2rem 1.75rem;
    border: 1px solid rgba(55, 15, 103, 0.08);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.sessione-ind-card h3 {
    font-family: var(--daimon-font-titoli);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--daimon-viola);
    line-height: 1.2;
}
.sessione-ind-card p {
    font-size: 0.9rem;
    color: var(--daimon-testo-muted);
    line-height: 1.65;
    flex: 1;
}

/* ── Pagina Pratiche ── */
.pratiche-intro {
    padding: clamp(3rem, 6vh, 5rem) var(--main-padding-x) 0;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    background: var(--daimon-bianco);
}
.pratiche-intro h1 {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(2.2rem, 4.5vw, 3.2rem);
    color: var(--daimon-viola);
    margin-bottom: 1rem;
}
.pratiche-section {
    padding: clamp(3rem, 6vh, 5rem) var(--main-padding-x);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    background: var(--daimon-bianco);
}
.pratiche-section--alt {
    background-color: var(--daimon-grigio-caldo);
    padding: clamp(3rem, 6vh, 5rem) clamp(1.5rem, 5vw, 4rem);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}
.pratiche-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.5rem;
}
.pratica-card {
    background: var(--daimon-bianco);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(55, 15, 103, 0.08);
    overflow: hidden;
    transition: box-shadow var(--transition-ease), transform var(--transition-ease);
}
.pratica-card:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-2px);
}
.pratica-card-body {
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.pratica-card-body h3 {
    font-family: var(--daimon-font-titoli);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--daimon-viola);
    line-height: 1.2;
}
.pratica-card-body p {
    font-size: 0.9rem;
    color: var(--daimon-testo-muted);
    line-height: 1.65;
}
.pratica-data {
    font-size: 0.78rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--daimon-oro);
    font-weight: 600;
}
.pratica-spots {
    font-size: 0.82rem;
    color: var(--daimon-rosa);
    font-weight: 600;
}
.pratica-sessions {
    font-size: 0.82rem;
    color: var(--daimon-viola);
    font-weight: 600;
    font-family: var(--daimon-font-subtitle);
}
.pratiche-empty {
    color: var(--daimon-testo-muted);
    font-style: italic;
}
.pratiche-coming-soon {
    background: rgba(194, 150, 57, 0.07);
    padding: clamp(3rem, 6vh, 5rem) clamp(1.5rem, 5vw, 4rem);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}
.pratiche-coming-text {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.1rem, 2vw, 1.35rem);
    color: var(--daimon-testo-muted);
    font-style: italic;
    line-height: 1.6;
    max-width: 50ch;
    margin: 0 auto;
}

/* ── Pagina Trattamenti ── */
main.main--pagina-trattamenti > section + section {
    margin-top: 0;
}
.trattamenti-intro {
    padding: clamp(1.5rem, 3vh, 2.5rem) calc(var(--main-padding-x) / 2) 0;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 0;
    margin-bottom: 0;
    box-sizing: border-box;
    background: var(--daimon-bianco);
}
.trattamenti-intro h1 {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(2.2rem, 4.5vw, 3.2rem);
    color: var(--daimon-viola);
    margin-bottom: 0.5rem;
}
.trattamenti-intro .section-intro {
    margin-bottom: 1.5rem;
}
.trattamento-section {
    padding: clamp(1.5rem, 3vh, 2.5rem) calc(var(--main-padding-x) / 2);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 0;
    margin-bottom: 0;
    box-sizing: border-box;
    border-bottom: 1px solid rgba(55, 15, 103, 0.06);
    background: var(--daimon-bianco);
}
.trattamento-section:last-child {
    border-bottom: none;
}
.trattamento-section--oro {
    background: var(--daimon-oro);
    border-bottom-color: rgba(55, 15, 103, 0.12);
}
.trattamento-section--oro .section-label {
    color: var(--daimon-viola);
}
.trattamento-section--oro .section-title {
    color: var(--daimon-viola);
}
.trattamento-section--oro .trattamento-content p {
    color: var(--daimon-viola-scuro);
}
.trattamento-section--oro .trattamento-opzioni li {
    color: var(--daimon-viola-scuro);
}
.trattamento-section--oro .trattamento-opzioni li::before {
    color: var(--daimon-viola);
}
.trattamento-section--oro .trattamento-modo {
    color: rgba(42, 12, 79, 0.85);
}
/* CTA su sfondo oro: contrasto viola + testo bianco (btn-primary default è oro su oro) */
.trattamento-section--oro .trattamento-content .btn-primary {
    background: var(--daimon-viola) !important;
    color: var(--daimon-bianco) !important;
    border-color: var(--daimon-viola) !important;
}
.trattamento-section--oro .trattamento-content .btn-primary:hover {
    background: var(--daimon-viola-scuro) !important;
    border-color: var(--daimon-viola-scuro) !important;
    color: var(--daimon-bianco) !important;
    box-shadow: 0 8px 24px rgba(55, 15, 103, 0.35);
}
.trattamento-section--alt {
    background-color: var(--daimon-grigio-caldo);
    padding: clamp(1.5rem, 3vh, 2.5rem) clamp(0.75rem, 2.5vw, 2rem);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 0;
    margin-bottom: 0;
    box-sizing: border-box;
}
.trattamento-content {
    max-width: 70ch;
    line-height: 1.8;
}
.trattamento-content p {
    margin-bottom: 1rem;
    color: var(--daimon-testo);
}
.trattamento-opzioni {
    list-style: none;
    list-style-type: none;
    padding: 0;
    margin: 1rem 0 1.5rem;
}
.trattamento-opzioni li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 0.75rem;
    line-height: 1.6;
    /* Solo rombi da ::before: Pico/main può lasciare marker nativi (es. quadrati) sui <li> */
    list-style: none;
    list-style-type: none;
    list-style-image: none;
}
.trattamento-opzioni li::marker {
    content: '';
}
.trattamento-opzioni li::before {
    content: '\25C6';
    position: absolute;
    left: 0;
    color: var(--daimon-oro);
    font-size: 0.6em;
    top: 0.5em;
}
.trattamento-modo {
    font-size: 0.9rem;
    color: var(--daimon-testo-muted);
}

/* Equialibriom: riquadro distinto con bordo oro */
.trattamento-equialibriom {
    background: rgba(194, 150, 57, 0.05);
    padding: clamp(1.5rem, 3vh, 2.5rem) clamp(0.75rem, 2.5vw, 2rem);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 0;
    margin-bottom: 0;
    box-sizing: border-box;
    border-bottom: none;
}
.trattamento-equialibriom-content {
    border-left: 3px solid var(--daimon-oro);
    padding-left: 0.75rem;
}
.equialibriom-date {
    margin-top: 1rem;
    padding: 0.5rem 0.625rem;
    background: rgba(194, 150, 57, 0.08);
    border-radius: var(--radius);
}
.equialibriom-date p {
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}
.equialibriom-date p:last-child {
    margin-bottom: 0;
}

/* ── DAiMON v2 — Sistema foto e placeholder ──────────────────────────────── */

/* Aspect ratio standard */
.img-ratio-hero   { aspect-ratio: 3 / 4; }
.img-ratio-card   { aspect-ratio: 16 / 9; }
.img-ratio-square { aspect-ratio: 1 / 1; }
.img-ratio-golden { aspect-ratio: 1.618 / 1; }

/* Contenitore foto con hover zoom */
.photo-frame {
    overflow: hidden;
    border-radius: var(--radius-lg);
    width: 100%;
    position: relative;
}
.photo-frame img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform 0.5s ease;
}
.photo-frame:hover img { transform: scale(1.03); }

/* Placeholder visivo (usa quando l'immagine non c'è ancora) */
.photo-placeholder {
    width: 100%; height: 100%;
    min-height: 160px;
    background: linear-gradient(
        135deg,
        rgba(55,15,103,0.05) 0%,
        rgba(194,150,57,0.07) 50%,
        rgba(55,15,103,0.03) 100%
    );
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 0.6rem;
    color: rgba(55,15,103,0.25);
    font-family: var(--daimon-font-subtitle);
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border: 1.5px dashed rgba(55,15,103,0.12);
    border-radius: var(--radius-lg);
}
.photo-placeholder svg { width: 1.75rem; height: 1.75rem; opacity: 0.35; }

/* Card con foto sopra e corpo sotto */
.card-with-photo {
    background: var(--daimon-bianco);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(55,15,103,0.08);
    overflow: hidden;
    box-shadow: var(--shadow-card);
    display: flex; flex-direction: column;
    transition: box-shadow var(--transition-smooth), transform var(--transition-smooth);
}
.card-with-photo:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-3px);
}
.card-with-photo .card-photo { aspect-ratio: 16 / 9; overflow: hidden; }
.card-with-photo .card-photo img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform 0.5s ease;
}
.card-with-photo:hover .card-photo img { transform: scale(1.04); }
.card-with-photo .card-body {
    padding: 1.25rem; flex: 1;
    display: flex; flex-direction: column; gap: 0.5rem;
}

/* Split testo + foto (Chi sono, pagine interne) */
.section-split {
    display: grid;
    grid-template-columns: 1fr 1.618fr; /* golden ratio: foto | testo */
    gap: clamp(2rem, 4vw, 4rem);
    align-items: center;
}
@media (max-width: 768px) {
    .section-split { grid-template-columns: 1fr; }
    .section-split .split-photo { order: -1; }
}
.section-split .split-photo {
    border-radius: var(--radius-2xl);
    overflow: hidden;
    aspect-ratio: 1 / 1.1;
    box-shadow: 0 16px 48px rgba(55,15,103,0.12);
}
.section-split .split-photo img { width: 100%; height: 100%; object-fit: cover; }

/* Griglie responsive */
.cards-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}
@media (max-width: 900px) { .cards-grid-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px)  { .cards-grid-3 { grid-template-columns: 1fr; } }

.cards-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}
@media (max-width: 640px) { .cards-grid-2 { grid-template-columns: 1fr; } }

/* ── Pagina corso (template percorso) ───────────────────────────────────────
 * Hero: immagine in background virata al viola, eyebrow sopra, bottoni a sinistra, no freccia scroll.
 */
.hero-wrapper--corso .hero-logo { display: none; }
.hero-wrapper--corso .hero-scroll-hint { display: none; }

/* Background hero corso: stessa immagine virata al viola (opacity + gradiente) */
.hero-corso-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}
.hero-corso-bg__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    opacity: 0.2;
}
.hero-corso-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at top, rgba(255, 255, 255, 0.12), transparent 35%);
    pointer-events: none;
}
.hero-wrapper--corso .hero-geometry,
.hero-wrapper--corso .hero {
    position: relative;
    z-index: 1;
}

.hero--corso { align-items: start; text-align: left; }
.hero--corso .hero-content { display: block; }

/* Mobile (≤767px): sequenza = titolo (oro), foto, sottotitolo, descrizione, bottoni */
@media (max-width: 63.99em) {
    /* --breakpoint-mobile: contenuto hero come figli diretti per poter riordinare */
    .hero--corso .hero-content { display: contents; }
    .hero--corso .hero-eyebrow--corso { order: -1; }
    .hero--corso .hero-title-corso { order: 0; }
    .hero--corso .hero-figure { order: 1; }
    .hero--corso .hero-subtitle-corso { order: 2; }
    .hero--corso .hero-intro-corso { order: 3; }
    .hero--corso .hero-cta { order: 4; }
    /* Sottotitolo visibile in hero corso (la regola generale nasconde .hero .lead su mobile) */
    .hero--corso .lead.hero-subtitle-corso { display: block; }
    /* Bottoni affiancati, testo corto (Call Conoscitiva / Prova Gratuita) già da .hero-cta-label--short */
    .hero-wrapper--corso .hero-cta { flex-wrap: nowrap; }
    /* Contatti: niente figura a destra; evitiamo display:contents così order:2 dei .hero-subtitle-corso non mescola titoli e link */
    .hero--corso.hero--contatti .hero-content {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
        width: 100%;
        gap: 0;
    }
    .hero--corso.hero--contatti .hero-content > * {
        order: 0;
    }
}

/* Mobile (≤767px): riduci aria sopra l'eyebrow nelle hero corso */
@media (max-width: 767px) { /* --breakpoint-mobile */
    .hero-wrapper--corso {
        /* Solo mobile: riduci lo “spazio di testa” della hero corso (non è margin dell'eyebrow).
           Manteniamo comunque un buffer per l'header fisso. */
        padding-top: calc(3.75rem + clamp(0.0625rem, 0.2vh, 0.1875rem));
        /* Più respiro sotto i bottoni, senza cambiare l'altezza della hero */
        padding-bottom: clamp(1rem, 3vh, 1.75rem);
    }

    /* Eyebrow più vicino al top */
    .hero--corso .hero-eyebrow--corso {
        margin-top: 0;
        margin-bottom: 0.4rem;
    }

    /* Bottoni: non appiccicati al bordo inferiore */
    .hero-wrapper--corso .hero-cta {
        margin-bottom: clamp(0.5rem, 2vh, 1.25rem);
    }
}

/* Griglia: eyebrow sopra, poi contenuto a sinistra; figura a destra (proporzione orizzontale/quadrata) */
@media (min-width: 64em) {
    .hero--corso {
        grid-template-rows: auto 1fr;
        grid-template-columns: 1fr min(42vw, 480px);
        align-items: center;
    }
    .hero--corso .hero-eyebrow--corso { grid-column: 1; grid-row: 1; }
    .hero--corso .hero-content { grid-column: 1; grid-row: 2; }
    .hero--corso .hero-figure { grid-column: 2; grid-row: 1 / -1; align-self: center; }
    /* Pagina Contatti: una sola colonna, senza immagine flottante a destra */
    .hero--corso.hero--contatti {
        grid-template-columns: minmax(0, 42rem);
        justify-content: start;
    }
    .hero--corso.hero--contatti .hero-content {
        max-width: 42rem;
    }
}

/* Bottoni hero corso: allineati a sinistra, padding verticale ridotto (più schiacciati) */
.hero-wrapper--corso .hero-cta {
    justify-content: flex-start;
}
.hero-wrapper--corso .hero-cta .btn {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}

/* Figura hero corso: proporzione più orizzontale/quadrata come nel mockup (h 340, w 440 desktop) */
.hero-figure--corso {
    aspect-ratio: 440 / 340;
}
.hero-figure--corso img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
@media (min-width: 64em) {
    .hero-figure--corso {
        width: 100%;
        max-width: 440px;
        height: auto;
        aspect-ratio: 440 / 340;
    }
}
@media (max-width: 63.99em) {
    .hero-figure--corso {
        aspect-ratio: 4 / 3;
        max-height: 340px;
    }
}

/* Prova: se l'immagine in evidenza diventerebbe troppo bassa su mobile, la togliamo. */
@media (max-width: 767px) and (max-height: 720px) { /* --breakpoint-mobile */
    .hero-figure--corso { display: none; }
}

.hero-eyebrow--corso {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 0.5rem;
}
.hero-title-corso {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.5rem, 4vw + 0.5rem, 2.5rem);
    font-weight: 600;
    line-height: 1.2; /* molto vicina, ma con aria sufficiente per leggere con chiarezza */
    color: var(--daimon-oro);
    margin: 0 0 0.5rem;
    min-width: 0; /* consente alla colonna di restringersi così il titolo va a capo invece di andare sotto l'immagine */
}
@media (min-width: 64em) {
    .hero-title-corso { font-size: clamp(1.75rem, 3vw + 1rem, 3rem); }
}
/* Pre e post: più piccoli, a capo; interlina aderente ma leggibile */
.hero-title-prefix,
.hero-title-suffix {
    display: block;
    font-size: 0.6em;
    font-weight: 500;
    opacity: 0.95;
    line-height: 1.2;
}
.hero-title-prefix { margin-bottom: 0; }
/* Titolo che va a capo all'ultimo (no nowrap: non deve finire sotto l'immagine hero) */
.hero-title-center {
    display: block;
    line-height: 1.2;
    white-space: normal;
    overflow-wrap: break-word;
}
.hero-title-suffix { margin-top: 0; }
.hero-subtitle-corso,
.hero-intro-corso {
    color: rgba(255, 255, 255, 0.88);
    font-size: 1rem;
    line-height: 1.5; /* vicina, con aria per chiarezza */
    margin: 0.5rem 0 0;
}
.hero-intro-corso p { margin: 0 0 0.5rem; }
.hero-intro-corso p:last-child { margin-bottom: 0; }
.hero-subtitle-corso p { margin: 0 0 0.5rem; }
.hero-subtitle-corso p:last-child { margin-bottom: 0; }

/* Pico imposta color su p, liste, blockquote… (var(--pico-color)): su hero viola il wrapper ha il bianco DAIMON ma i figli restano scuri senza inherit */
.hero-wrapper--corso .hero-subtitle-corso :is(p, ul, ol, li, blockquote, dl, dt, dd, pre, address, table),
.hero-wrapper--corso .hero-intro-corso :is(p, ul, ol, li, blockquote, dl, dt, dd, pre, address, table),
.hero-wrapper--corso .hero-subtitle-corso :is(h1, h2, h3, h4, h5, h6),
.hero-wrapper--corso .hero-intro-corso :is(h1, h2, h3, h4, h5, h6) {
    color: inherit;
}
.hero-wrapper--percorsi .hero-percorsi-lead :is(p, ul, ol, li, blockquote, dl, dt, dd, pre, address, table),
.hero-wrapper--percorsi .hero-percorsi-detail :is(p, ul, ol, li, blockquote, dl, dt, dd, pre, address, table),
.hero-wrapper--percorsi .hero-percorsi-lead :is(h1, h2, h3, h4, h5, h6),
.hero-wrapper--percorsi .hero-percorsi-detail :is(h1, h2, h3, h4, h5, h6) {
    color: inherit;
}

@media (min-width: 64em) {
    .hero-subtitle-corso { font-size: 1.125rem; }
    .hero-intro-corso { font-size: 1rem; max-width: 32em; }
}

/* Catena senza overflow nascosto così position:sticky sulla sidebar funziona */
.percorso-page--template,
.percorso-body,
.percorso-grid { overflow: visible; }

/* Mobile: sfugge al padding di .container (come hero e footer),
   così i colori di sfondo arrivano edge-to-edge */
.percorso-body {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0 0 var(--section-spacing-mobile);
    box-sizing: border-box;
}
.percorso-cta-row {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}
@media (min-width: 768px) {
    .percorso-body {
        width: auto;
        margin-left: 0;
        margin-right: 0;
        padding: 0 0 var(--section-spacing);
    }
    .percorso-cta-row {
        width: auto;
        margin-left: 0;
        margin-right: 0;
    }
}

.percorso-grid {
    display: grid;
    gap: 0;
    width: 100%;
}
/* Mobile: main e aside full-width, niente margini laterali */
.percorso-main {
    padding: 0;
}
.percorso-aside {
    margin-top: 0;
}
@media (min-width: 768px) {
    .percorso-grid {
        grid-template-columns: minmax(0, 1fr) 360px;
        gap: 2.5rem;
        padding: 0 var(--main-padding-x);
        /* stretch: aside alto quanto il main, indispensabile per sticky */
        align-items: stretch;
    }
    .percorso-main {
        padding: 0; /* su desktop il padding è sul grid */
        min-height: 0;
    }
    .percorso-aside { align-self: stretch; }
    /* Sticky sul reepilogo: si blocca a top:6rem e si sblocca
       quando il fondo dell'aside (= fine del main) esce dal viewport,
       cioè esattamente quando arriviamo alla zona Call/Prova */
    .percorso-reepilogo {
        position: -webkit-sticky;
        position: sticky;
        top: 6rem;
    }
}

/* Riga Call + Prova: fuori dal grid, stesse proporzioni della colonna sopra. */
.percorso-cta-row {
    display: grid;
    gap: 0;
}
@media (min-width: 768px) {
    .percorso-cta-row {
        max-width: var(--container-max);
        margin: 0 auto;
        padding: 2.5rem var(--main-padding-x) 0;
        grid-template-columns: minmax(0, 1fr) 360px;
        gap: 2.5rem;
        align-items: start;
    }
    .percorso-cta-row--servizio-solo-info {
        grid-template-columns: minmax(0, 22rem);
        justify-content: end;
        margin-right: 0;
        margin-left: auto;
    }
    /* Call + blocco Informazioni (servizio 1:1): meno spazio tra colonne, call più stretta e modulo info più largo */
    .percorso-cta-row:has(.percorso-prova--servizio-info):not(.percorso-cta-row--servizio-solo-info) {
        gap: var(--card-padding);
        grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    }
}

/* Mobile: sezioni incollate, il colore di sfondo separa. Desktop: gap tra sezioni. */
.percorso-section { margin-bottom: 0; }
@media (min-width: 768px) {
    .percorso-section { margin-bottom: 2rem; }
    .percorso-section:last-child { margin-bottom: 0; }
}

/* Mobile: card flat, full-width, niente angoli né shadow.
   Su desktop: angoli e shadow tornano. */
.percorso-card {
    border-radius: 0;
    padding: var(--card-padding) var(--main-padding-x);
    box-shadow: none;
    width: 100%;
}
@media (min-width: 768px) {
    .percorso-card {
        border-radius: var(--radius-2xl);
        padding: 2rem;
        box-shadow: var(--shadow-card);
        width: auto;
    }
}
.percorso-card--white {
    background: var(--daimon-bianco);
    border: 1px solid rgba(0, 0, 0, 0.06);
}
.percorso-card--cream {
    background: var(--daimon-grigio-caldo);
    border: 1px solid rgba(194, 150, 57, 0.2);
}
.percorso-card--viola {
    background: var(--daimon-viola);
    color: #fff;
    border: none;
}

.percorso-heading {
    font-family: var(--daimon-font-titoli);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--daimon-viola);
    margin: 0 0 1rem;
}
@media (min-width: 768px) { .percorso-heading { font-size: 1.75rem; } }
.percorso-heading--light { color: #fff; }
.percorso-eyebrow {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: rgba(255, 255, 255, 0.8);
    margin: 0 0 0.25rem;
}
.percorso-eyebrow--oro { color: var(--daimon-oro); }
.percorso-card--viola .percorso-eyebrow { color: rgba(233, 215, 168, 0.95); }

.percorso-body-text {
    font-size: 1.0625rem;
    line-height: 1.65;
    color: var(--daimon-testo);
    margin-bottom: 1rem;
}
.percorso-body-text p { margin-bottom: 0.75rem; }
.percorso-body-text p:last-child { margin-bottom: 0; }

.percorso-quotes { margin: 1rem 0; }
.percorso-quote {
    font-style: italic;
    color: var(--daimon-testo-muted);
    border-left: 3px solid var(--daimon-oro);
    padding-left: 1rem;
    margin: 0.75rem 0;
}

.percorso-images-grid {
    display: grid;
    gap: 1.5rem;
    margin-top: 1.5rem;
}
@media (min-width: 768px) { .percorso-images-grid { grid-template-columns: repeat(2, 1fr); } }
.percorso-figure {
    margin: 0;
    border-radius: var(--radius-xl);
    overflow: hidden;
    background: var(--daimon-grigio-caldo);
}
.percorso-figure img {
    width: 100%;
    height: 16rem;
    object-fit: cover;
    display: block;
}
.percorso-figure figcaption {
    font-size: 0.875rem;
    color: var(--daimon-testo-muted);
    padding: 0.75rem 1rem;
}

.percorso-bullets {
    display: grid;
    gap: 0.75rem;
}
@media (min-width: 640px) { .percorso-bullets { grid-template-columns: repeat(2, 1fr); } }
.percorso-bullet {
    background: rgba(255, 255, 255, 0.7);
    border: 1px solid rgba(194, 150, 57, 0.15);
    border-radius: var(--radius-xl);
    padding: 1rem 1.25rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--daimon-testo);
}

/* Call viola: editor spesso inserisce <div> per nuove righe; Pico colora i div — forziamo il testo chiaro su tutti i blocchi dell’intro */
.percorso-intro-light {
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 1rem;
}
.percorso-intro-light p,
.percorso-intro-light div,
.percorso-intro-light li {
    color: rgba(255, 255, 255, 0.85);
}
.percorso-intro-light > *:not(:last-child) {
    margin-bottom: 0.5rem;
}
.percorso-intro-light > *:last-child {
    margin-bottom: 0;
}
.percorso-intro-light a {
    color: var(--daimon-oro);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}
.percorso-intro-light a:hover {
    color: #fff;
}

.percorso-cal-embed { margin-top: 1rem; }
.percorso-cal-iframe {
    width: 100%;
    min-height: 600px;
    border: 0;
    border-radius: var(--radius-lg);
}

/* Riepilogo sidebar */
.percorso-reepilogo {
    background: var(--daimon-bianco);
    border-radius: 0; /* mobile: full-width, niente angoli */
    overflow: hidden;
    box-shadow: none;
    border: none;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    margin-bottom: 0;
}
@media (min-width: 768px) {
    .percorso-reepilogo {
        border-radius: var(--radius-xl); /* desktop: metà di radius-2xl */
        box-shadow: var(--shadow-card);
        border: 1px solid rgba(0, 0, 0, 0.06);
        margin-bottom: 0;
    }
}
.percorso-reepilogo-header {
    background: var(--daimon-viola);
    color: #fff;
    padding: 1.25rem 1.5rem;
}
.percorso-reepilogo-header .percorso-heading {
    color: #fff;
    margin: 0.25rem 0 0;
    font-size: 1.6rem;
}
.percorso-reepilogo-body {
    padding: 1rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.percorso-reepilogo-highlight {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.75rem 1rem;
    border-radius: var(--radius);
    font-weight: 600;
}
.percorso-reepilogo--orario { background: rgba(55, 15, 103, 0.08); color: var(--daimon-viola); }
.percorso-reepilogo--costo { background: rgba(194, 150, 57, 0.15); color: var(--daimon-viola-scuro); }
.percorso-reepilogo--promo { background: rgba(194, 150, 57, 0.22); color: var(--daimon-viola-scuro); }
.percorso-reepilogo-pacchetto .percorso-reepilogo-pacchetto-title {
    display: block;
    margin-bottom: 0.5rem;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--daimon-testo-muted);
    font-weight: 500;
}
.percorso-reepilogo-pacchetto-dl {
    margin: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.35rem 0.75rem;
    align-items: baseline;
    font-weight: 600;
}
.percorso-reepilogo-pacchetto-dl dt {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--daimon-testo-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.percorso-reepilogo-pacchetto-dl dd {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--daimon-viola-scuro);
    line-height: 1.35;
}
/* Costo singola sessione + riga sconto subito sotto: meno interlinea sul prezzo */
.percorso-reepilogo-pacchetto-dl:has(+ .percorso-reepilogo-pacchetto-sconto-prima) dd {
    line-height: 1.15;
}
/* Riga compatta tipo: Sessioni: 3 in 1 mese (va a capo se stretto) */
.percorso-reepilogo-pacchetto-sessioni-periodo {
    margin: 0.35rem 0 0;
    padding: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--daimon-viola-scuro);
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
}
/* Sotto il costo della singola sessione: es. -20% sulla prima sessione (€ 80,00) — compatto sotto “Costo” */
.percorso-reepilogo-pacchetto-sconto-prima {
    margin: 0.08rem 0 0;
    padding: 0;
    font-size: calc(0.9375rem - 0.2rem);
    font-weight: 600;
    color: var(--daimon-viola-scuro);
    line-height: 1.15;
}
.percorso-reepilogo-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--daimon-testo-muted);
    font-weight: 500;
}
.percorso-reepilogo-value { font-size: 1rem; }
.percorso-reepilogo-details {
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    padding-top: 0.75rem;
    margin-top: 0.25rem;
}
.percorso-reepilogo-block {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.5rem 0;
    font-size: 0.9375rem;
}
.percorso-reepilogo-block .percorso-reepilogo-label { font-weight: 500; }
.percorso-reepilogo-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.5rem;
    padding: 0.5rem 0;
    font-size: 0.9375rem;
}
.percorso-reepilogo-row .percorso-reepilogo-label { font-weight: 500; }

/* Calendario date (percorsi non periodici) – stesso layout delle altre voci: label sopra, elenco sotto a tutta larghezza */
.percorso-reepilogo-calendario-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    width: 100%;
}
.percorso-reepilogo-calendario-item {
    padding: 0.5rem 0.75rem;
    background: rgba(55, 15, 103, 0.06);
    border-left: 3px solid var(--daimon-viola);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    font-size: 0.9375rem;
    color: var(--daimon-viola-scuro);
    line-height: 1.35;
}
.percorso-reepilogo-calendario-item:first-child {
    margin-top: 0;
}

.percorso-reepilogo-placeholder {
    margin: 0.75rem 0 0;
    font-size: 0.9rem;
    color: var(--daimon-testo-muted);
    font-style: italic;
}
.percorso-reepilogo--unavailable .percorso-reepilogo-hint {
    margin: 0.5rem 0 0;
    font-size: 0.875rem;
    color: var(--daimon-testo-muted);
}

/* Incontro di prova */
/* Mobile: flat, full-width come le altre sezioni */
.percorso-prova {
    background: var(--daimon-grigio-caldo);
    border: none;
    border-radius: 0;
    padding: var(--card-padding) var(--main-padding-x);
    box-shadow: none;
}
@media (min-width: 768px) {
    .percorso-prova {
        border: 1px solid rgba(194, 150, 57, 0.2);
        border-radius: var(--radius-2xl);
        padding: 1.5rem;
        box-shadow: var(--shadow-card);
    }
}
.percorso-prova .percorso-heading { margin-top: 0.25rem; }
.percorso-prova-intro {
    font-size: 0.875rem;
    color: var(--daimon-testo);
    margin-bottom: 1rem;
}
.percorso-prova-intro p { margin: 0 0 0.5rem; }
.percorso-prova-intro p:last-child { margin-bottom: 0; }
.percorso-prova-form label { display: block; margin-top: 0.75rem; }
.percorso-prova-form label:first-of-type { margin-top: 0; }
/* Nel blocco pagamento ogni <label> è :first-of-type nel proprio contesto: uniformare (no solo “Bonifico” più su). */
.percorso-prova-form .evento-pay-options-row .evento-pay-option {
    margin-top: 0;
}
.percorso-prova-form--info .form-row-duo { margin-bottom: 0; }
.percorso-prova-form--info .form-row-duo .form-cell label { margin-top: 0; margin-bottom: 0.25rem; }
.percorso-prova-form--info .form-row { margin-bottom: 0; }
.percorso-prova-form--info .form-row label { margin-top: 0; margin-bottom: 0.25rem; }
.percorso-prova-form--info .form-row + .form-row { margin-top: 0.75rem; }
.percorso-prova-form--info .form-row-duo + .form-row { margin-top: 0.75rem; }
.percorso-prova-info-lead {
    margin: 0 0 1rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--daimon-testo-muted);
}
.percorso-prova-form--info textarea {
    min-height: 6rem;
}
.percorso-prova-form input[type="text"],
.percorso-prova-form input[type="email"],
.percorso-prova-form input[type="tel"],
.percorso-prova-form input[type="date"],
.percorso-prova-form textarea {
    width: 100%;
    margin-top: 0.25rem;
    border-radius: var(--radius);
}
.percorso-prova-form--info .form-row-duo input[type="text"],
.percorso-prova-form--info .form-row-duo input[type="tel"] {
    margin-top: 0.25rem;
}
.percorso-prova-consent { font-size: 0.875rem; margin-top: 1rem; }
.percorso-prova-consent input { margin-right: 0.5rem; }
.percorso-prova-date {
    width: 100%;
    margin-top: 0.25rem;
    border-radius: var(--radius);
    border: 1px solid var(--pico-form-element-border-color);
    padding: 0.625rem 0.75rem;
    background: var(--pico-form-element-background-color);
    color: var(--daimon-testo);
}
.percorso-prova-date[aria-disabled="true"] { opacity: 0.7; }
.percorso-prova-feedback {
    margin-top: 0.75rem;
    font-size: 0.9375rem;
}
.percorso-prova-feedback.success { color: var(--daimon-viola); }
.percorso-prova-feedback.error { color: var(--daimon-rosa); }
.percorso-prova-submit { margin-top: 1rem; width: 100%; }

/* Servizio 1:1 — prenotazione (pagina percorso) */
.percorso-servizio-1to1 {
    margin-top: var(--section-spacing);
}
@media (max-width: 767px) { /* --breakpoint-mobile */
    .percorso-servizio-1to1 {
        margin-top: var(--section-spacing-mobile);
    }
}
/*
 * Prenota una sessione — sempre tre blocchi in verticale:
 * 1) testo CMS (1rem), larghezza blocco o leggermente meno (max-width lettura);
 * 2) a capo: Dal | Al | bottone (in fila da tablet su, colonna su mobile);
 * 3) a capo: istruzioni (1rem − 0,1rem).
 */
.percorso-servizio-1to1-row1 {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}
.percorso-servizio-1to1-prova-copy {
    font-size: 1rem;
    line-height: 1.5;
    color: var(--daimon-testo);
    margin: 0;
    width: 100%;
    max-width: 42rem;
}
.percorso-servizio-1to1-prova-copy p { margin: 0 0 0.5rem; }
.percorso-servizio-1to1-prova-copy p:last-child { margin-bottom: 0; }
.percorso-servizio-1to1-dates {
    margin: 0;
}
.percorso-servizio-1to1-lead {
    margin: 0 0 1rem;
    width: 100%;
    font-size: calc(1rem - 0.1rem);
    line-height: 1.5;
    color: var(--daimon-testo);
}
/* Mobile: Dal, Al, bottone in colonna */
.percorso-servizio-1to1-toolbar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
}
.percorso-servizio-1to1-input-group {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    margin: 0;
    border: 1px solid rgba(194, 150, 57, 0.5);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--daimon-bianco);
    min-height: 2.75rem;
    cursor: pointer;
}
.percorso-servizio-1to1-input-group:focus-within {
    outline: 2px solid var(--daimon-viola);
    outline-offset: 2px;
}
.percorso-servizio-1to1-input-addon {
    display: flex;
    align-items: center;
    padding: 0 0.65rem;
    background: rgba(194, 150, 57, 0.38);
    color: var(--daimon-viola-scuro);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    flex-shrink: 0;
    border-right: 1px solid rgba(194, 150, 57, 0.45);
}
.percorso-servizio-1to1-input-group .percorso-servizio-1to1-date-input {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    border: 0;
    border-radius: 0;
    padding: 0.5rem 0.65rem;
    margin: 0;
    background: transparent;
    color: var(--daimon-testo);
    font-size: 1rem;
    line-height: 1.25;
    min-height: 2.75rem;
    box-shadow: none;
}
.percorso-servizio-1to1-input-group .percorso-servizio-1to1-date-input:focus {
    box-shadow: none;
    outline: none;
}
/* Pico aggiunge margin-bottom ai button; con flex-end sulla toolbar disallinea «Mostra orari disponibili». */
.percorso-servizio-1to1-load {
    width: 100%;
    min-height: 2.75rem;
    padding: 0.625rem 1rem;
    font-size: 1.0625rem;
    line-height: 1.25;
    align-self: stretch;
    margin-bottom: 0;
}
@media (min-width: 768px) { /* --breakpoint-tablet */
    .percorso-servizio-1to1-toolbar {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: flex-end;
        gap: 0.65rem;
    }
    .percorso-servizio-1to1-input-group {
        flex: 1 1 0;
        min-width: 8.5rem;
    }
    .percorso-servizio-1to1-load {
        width: auto;
        flex: 0 0 auto;
        white-space: nowrap;
    }
}
.percorso-servizio-1to1-slots-wrap { margin-top: 1rem; }
.percorso-servizio-1to1-day {
    border: 1px solid rgba(55, 15, 103, 0.12);
    border-radius: var(--radius);
    padding: var(--card-padding);
    margin-bottom: var(--card-padding);
}
.percorso-servizio-1to1-day-legend {
    font-family: var(--daimon-font-subtitle);
    padding: 0 0.35rem;
}
.percorso-servizio-1to1-slot {
    display: flex;
    align-items: flex-start;
    gap: var(--button-gap);
    margin-top: 0.5rem;
    cursor: pointer;
}
.percorso-servizio-1to1-slot input { margin-top: 0.2rem; flex-shrink: 0; }
.percorso-servizio-1to1-slot-label { flex: 1; line-height: 1.4; }
.percorso-servizio-1to1-book-form { margin-top: 1.25rem; }
.percorso-servizio-1to1-success {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(55, 15, 103, 0.1);
}
.percorso-servizio-1to1-success-title {
    font-family: var(--daimon-font-titoli);
    font-size: 1.125rem;
    margin: 0 0 0.5rem;
}
.percorso-servizio-1to1-success-detail { margin: 0 0 0.75rem; }
.percorso-servizio-1to1-token-label {
    font-size: 0.875rem;
    margin: 0 0 0.25rem;
}
.percorso-servizio-1to1-token {
    display: block;
    word-break: break-all;
    padding: 0.5rem 0.75rem;
    margin: 0 0 1rem;
    background: rgba(55, 15, 103, 0.06);
    border-radius: var(--radius-sm);
    font-size: 0.8125rem;
}
.percorso-servizio-1to1-cancel-form { margin-top: 0.5rem; }
.percorso-servizio-1to1-cancel-btn { margin-top: 0; }

/* Pagina lista /eventi */
.eventi-list-section {
    padding-top: var(--section-spacing-mobile);
    padding-bottom: var(--section-spacing-mobile);
}
@media (min-width: 1024px) {
    .eventi-list-section {
        padding-top: var(--section-spacing);
        padding-bottom: var(--section-spacing);
    }
}

/* /eventi: meno vuoto verticale; margini tra sezioni contenuto azzerati, padding sezioni dimezzato */
main.main--pagina-eventi > .hero-wrapper + section {
    margin-top: calc(var(--section-spacing-mobile) / 2);
}
@media (min-width: 1024px) {
    /* --breakpoint-desktop */
    main.main--pagina-eventi > .hero-wrapper + section {
        margin-top: calc(var(--section-spacing) / 2);
    }
}
main.main--pagina-eventi > section + section {
    margin-top: 0;
}
main.main--pagina-eventi .eventi-list-section {
    padding-top: calc(var(--section-spacing-mobile) / 2);
    padding-bottom: calc(var(--section-spacing-mobile) / 2);
}
@media (min-width: 1024px) {
    main.main--pagina-eventi .eventi-list-section {
        padding-top: calc(var(--section-spacing) / 2);
        padding-bottom: calc(var(--section-spacing) / 2);
    }
}

/* Due categorie in un’unica sezione: titoli h2 e blocchi in sequenza */
.eventi-page-unified .eventi-category-title {
    margin-bottom: 0.35rem;
}
.eventi-page-unified .eventi-category-intro {
    margin-bottom: 0.5rem;
    max-width: 65ch;
}
.eventi-page-unified .eventi-category-block--segue {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(55, 15, 103, 0.08);
}
@media (min-width: 768px) {
    /* --breakpoint-tablet */
    .eventi-page-unified .eventi-category-block--segue {
        margin-top: 1.5rem;
        padding-top: 1.5rem;
    }
}
.eventi-page-unified .eventi-page-empty {
    margin-top: 0.5rem;
}

.eventi-page-grid {
    display: grid;
    gap: 1rem;
    margin-top: 0.75rem;
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    /* --breakpoint-tablet: fino a 2 colonne */
    .eventi-page-grid:not(.eventi-page-grid--archivio) {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.125rem;
    }
    /* Una sola card: non occupa 1/2 larghezza “vuota”, larghezza contenuta */
    .eventi-page-grid:not(.eventi-page-grid--archivio) > :only-child {
        grid-column: 1 / -1;
        max-width: min(28rem, 100%);
        justify-self: start;
    }
}
@media (min-width: 1024px) {
    /* --breakpoint-desktop: fino a 3 colonne */
    .eventi-page-grid:not(.eventi-page-grid--archivio) {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.25rem;
    }
    .eventi-page-grid:not(.eventi-page-grid--archivio) > :only-child {
        max-width: min(28rem, 100%);
    }
}
.eventi-page-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}
.eventi-page-empty {
    margin-top: 1rem;
    color: var(--daimon-testo-muted);
}
.eventi-page-card-period {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--daimon-viola);
    margin: 0 0 0.5rem;
}
.eventi-page-sessions {
    font-size: 0.875rem;
    color: var(--daimon-testo-muted);
    margin: 0.25rem 0 0;
}
.eventi-archivio-section {
    background: var(--daimon-grigio-caldo);
}
.eventi-page-grid--archivio {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 0.75rem;
}
@media (min-width: 768px) {
    /* --breakpoint-tablet */
    .eventi-page-grid--archivio {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.25rem;
    }
}
@media (min-width: 1024px) {
    /* --breakpoint-desktop */
    .eventi-page-grid--archivio {
        grid-template-columns: repeat(3, 1fr);
    }
}
.eventi-archivio-more {
    margin-top: 0.75rem;
    text-align: center;
    color: var(--daimon-testo-muted);
    font-size: 0.9rem;
}
.percorso-cta-row--evento {
    align-items: stretch;
}
.percorso-cta-row--evento-past {
    grid-template-columns: 1fr !important;
    max-width: 40rem;
    margin-left: auto;
    margin-right: auto;
}
.percorso-cta-row--evento-past .evento-forms-stack--past-solo {
    width: 100%;
}
@media (min-width: 768px) {
    .percorso-cta-row--evento {
        grid-template-columns: 1fr 1fr;
    }
    .percorso-cta-row--evento-workshop.percorso-cta-row--evento-past {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto;
        max-width: 40rem;
    }
}
/* Workshop: seconda riga griglia = modulo info a tutta larghezza */
@media (min-width: 768px) {
    /* --breakpoint-tablet */
    .percorso-cta-row--evento-workshop > .evento-info-fullwidth {
        grid-column: 1 / -1;
        width: 100%;
    }
}
.evento-info-fullwidth {
    width: 100%;
    padding-left: var(--main-padding-x);
    padding-right: var(--main-padding-x);
    box-sizing: border-box;
}

/* Workshop: call + iscrizione affiancate senza spazio orizzontale; spazio solo sopra il blocco info */
.percorso-page--workshop .percorso-cta-row--evento-workshop {
    gap: 1.5rem 0;
    padding-top: 0;
}
@media (min-width: 768px) {
    /* --breakpoint-tablet */
    .percorso-page--workshop .percorso-cta-row--evento-workshop {
        grid-template-columns: minmax(0, 36%) minmax(0, 64%);
        grid-template-rows: auto auto;
        align-items: stretch;
    }
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-forms-stack {
    gap: 0;
    min-height: 100%;
    display: flex;
    flex-direction: column;
}
.percorso-page--workshop .percorso-cta-row--evento-workshop > .percorso-section--call {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .percorso-section--call .percorso-card {
    flex: 1;
    display: flex;
    flex-direction: column;
    border-radius: 0;
    box-shadow: none;
    width: 100%;
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .percorso-section--call .percorso-card--viola {
    background: var(--daimon-grigio-caldo);
    color: var(--daimon-testo);
    border: none;
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .percorso-section--call .percorso-heading--light {
    color: var(--daimon-viola);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .percorso-section--call .percorso-eyebrow {
    color: var(--daimon-oro);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .percorso-intro-light,
.percorso-page--workshop .percorso-cta-row--evento-workshop .percorso-intro-light p,
.percorso-page--workshop .percorso-cta-row--evento-workshop .percorso-intro-light div,
.percorso-page--workshop .percorso-cta-row--evento-workshop .percorso-intro-light li {
    color: var(--daimon-testo);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .percorso-intro-light a {
    color: var(--daimon-viola);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .percorso-intro-light a:hover {
    color: var(--daimon-viola-scuro);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block {
    flex: 1;
    margin: 0;
    background: var(--daimon-oro);
    border-radius: 0;
    box-shadow: none;
    padding: var(--card-padding) var(--main-padding-x);
}
@media (min-width: 768px) {
    /* --breakpoint-tablet */
    .percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block {
        padding: 2rem;
    }
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block .percorso-eyebrow--oro {
    color: var(--daimon-viola-scuro);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block .percorso-heading {
    color: var(--daimon-viola);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block .percorso-prova-intro,
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block .percorso-prova-intro p {
    color: var(--daimon-viola-scuro);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block .percorso-prova-form label {
    color: var(--daimon-viola-scuro);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block input[type="text"],
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block input[type="tel"],
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block input[type="email"],
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block input[type="date"],
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block select,
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block textarea {
    background-color: var(--daimon-bianco);
    color: var(--daimon-testo);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block .percorso-prova-consent {
    color: var(--daimon-viola-scuro);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-block .evento-iscrizione-pagamento-intro {
    color: rgba(42, 12, 79, 0.82);
}
.percorso-page--workshop .percorso-cta-row--evento-workshop .evento-iscrizione-fieldset legend {
    color: var(--daimon-viola);
}

.evento-forms-stack {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.evento-iscrizione-fieldset {
    border: none;
    padding: 0;
    margin: 0 0 0.5rem;
}
.evento-iscrizione-fieldset legend {
    padding: 0;
    font-weight: 600;
    margin-bottom: 0.5rem;
}
.evento-iscrizione-pagamento-intro {
    font-size: 0.875rem;
    color: var(--daimon-testo-muted);
    margin: 0 0 0.75rem;
}
.evento-pay-options-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem 1.25rem;
}
.evento-pay-option {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.4rem;
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.35;
}
.evento-pay-option input[type="radio"] {
    margin: 0.2rem 0 0;
    flex-shrink: 0;
}
.evento-pay-option--disabled {
    opacity: 0.55;
    pointer-events: none;
}
.evento-input-upper {
    text-transform: uppercase;
}
/* Form iscrizione evento: via+civico; CAP | città | prov. */
.evento-iscrizione-form .evento-iscrizione-row-street {
    margin-bottom: 0.75rem;
}
@media (min-width: 480px) {
    .evento-iscrizione-form .evento-iscrizione-row-street {
        grid-template-columns: minmax(0, 1fr) minmax(3.25rem, 5rem);
    }
}
.evento-iscrizione-form .evento-iscrizione-cell-civico input {
    text-align: center;
}
.evento-iscrizione-form .form-row-trio {
    display: grid;
    gap: 0.75rem 1rem;
    grid-template-columns: 1fr;
    margin-bottom: 0.75rem;
}
@media (min-width: 480px) {
    /* Città (più larga) · CAP · Provincia */
    .evento-iscrizione-form .evento-iscrizione-row-cap {
        grid-template-columns: minmax(0, 1fr) minmax(4.75rem, 6.25rem) minmax(2.25rem, 3.25rem);
    }
}
.evento-iscrizione-form .evento-iscrizione-cell-cap input,
.evento-iscrizione-form .evento-iscrizione-cell-prov input {
    text-align: center;
}
.evento-iscrizione-form .evento-iscrizione-row-street .form-cell label,
.evento-iscrizione-form .evento-iscrizione-row-cap .form-cell label {
    margin-top: 0;
    margin-bottom: 0.25rem;
}
.evento-simple-reep aside.percorso-aside {
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
}
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ── fine pagina corso ──────────────────────────────────────────────────── */

/* ── Cookie policy banner (semplice, senza profilazione) ───────────────── */
.cookie-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999;
    background: rgba(248, 248, 242, 0.96);
    border-top: 1px solid rgba(55, 15, 103, 0.12);
    backdrop-filter: blur(6px);
}

.cookie-banner-inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: calc(var(--card-padding) * 0.65) var(--main-padding-x);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.cookie-banner-text {
    margin: 0;
    color: var(--daimon-testo-muted);
    font-size: 0.95rem;
    line-height: 1.45;
}

.cookie-banner-link {
    color: var(--daimon-viola);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.cookie-banner-accept {
    min-height: var(--button-min-height);
    padding: var(--button-padding-y) var(--button-padding-x);
    border-radius: var(--radius);
    border: none;
    background: var(--daimon-viola);
    color: var(--daimon-bianco);
    cursor: pointer;
    white-space: nowrap;
}

.cookie-banner-accept:hover {
    background: var(--daimon-viola-scuro);
}

@media (max-width: 767px) {
    .cookie-banner-inner {
        flex-direction: column;
        align-items: flex-start;
    }
    .cookie-banner-accept {
        width: 100%;
    }
}

/* ── Template pagina evento workshop (tema chiaro, design system) ───────── */
/* Stessa larghezza utile della banda viola workshop (nessun padding extra rispetto alle sezioni sopra) */
.percorso-page--workshop .percorso-body {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
    max-width: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}

@media (min-width: 1024px) {
    /* --breakpoint-desktop */
    .percorso-page--workshop .percorso-body {
        padding-top: 0;
    }
}

/* CTA evento workshop: stessa larghezza della banda contenuti (no max-width + padding laterali della riga generica) */
.percorso-page--workshop .percorso-body > .percorso-cta-row {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}
@media (min-width: 768px) {
    /* --breakpoint-tablet */
    .percorso-page--workshop .percorso-body > .percorso-cta-row {
        padding-left: 0;
        padding-right: 0;
    }
}

.evento-workshop {
    color: var(--daimon-testo);
    font-family: var(--daimon-font-body);
    font-size: max(22px, 1.125rem);
    line-height: 1.65;
}

.evento-workshop__hero {
    text-align: center;
    padding: calc(var(--section-spacing-mobile) / 2) var(--main-padding-x) 1.25rem;
    background: linear-gradient(165deg, var(--daimon-bianco) 0%, var(--daimon-grigio-caldo) 45%, rgba(194, 150, 57, 0.08) 100%);
    border-bottom: 1px solid rgba(55, 15, 103, 0.08);
    position: relative;
}

.evento-workshop__hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(55, 15, 103, 0.06) 1px, transparent 1px);
    background-size: 28px 28px;
    pointer-events: none;
    opacity: 0.5;
}

.evento-workshop__hero > * {
    position: relative;
    z-index: 1;
}

.evento-workshop__eyebrow {
    font-size: 0.75rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--daimon-oro);
    margin: 0 0 1rem;
    font-weight: 600;
}

.evento-workshop__title {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.85rem, 4.5vw, 2.75rem);
    font-weight: 500;
    color: var(--daimon-viola);
    line-height: 1.2;
    margin: 0 0 0.5rem;
    letter-spacing: 0.02em;
}

.evento-workshop__subtitle {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.1rem, 2.2vw, 1.35rem);
    font-style: italic;
    color: var(--daimon-testo-muted);
    margin: 0 0 1.5rem;
}

.evento-workshop__divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin: 0 auto 1.5rem;
    max-width: 14rem;
}

.evento-workshop__divider span:first-child,
.evento-workshop__divider span:last-child {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--daimon-oro));
}

.evento-workshop__divider span:last-child {
    background: linear-gradient(90deg, var(--daimon-oro), transparent);
}

.evento-workshop__divider-star {
    flex: 0 0 auto;
    color: var(--daimon-oro);
    font-size: 1rem;
}

.evento-workshop__lead {
    max-width: 36rem;
    margin: 0 auto 1.75rem;
    color: var(--daimon-testo);
    font-size: max(22px, 1.05rem);
    line-height: 1.75;
}

.evento-workshop__pills {
    list-style: none;
    margin: 0 auto 1.75rem;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.65rem;
    justify-content: center;
    max-width: 52rem;
}

.evento-workshop__pills li {
    list-style: none;
    list-style-type: none;
    margin: 0;
    padding: 0.3rem;
}

.evento-workshop__pills li::marker {
    content: none;
    font-size: 0;
}

.evento-workshop__pill {
    font-size: max(0.8125rem, 0.74em);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--daimon-viola-scuro);
    border: 1px solid var(--daimon-oro);
    background: rgba(194, 150, 57, 0.18);
    border-radius: 999px;
    padding: 0.6rem 1.2rem;
    font-weight: 600;
    box-shadow: 0 1px 0 rgba(55, 15, 103, 0.06);
}

.evento-workshop__hero-cta-wrap {
    margin: 0;
}

.evento-workshop__btn {
    display: inline-block;
    text-decoration: none;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.8rem;
    padding: 0.85rem 1.75rem;
    border-radius: var(--radius-sm);
    transition: transform var(--transition-ease), box-shadow var(--transition-ease);
}

.evento-workshop__btn--primary {
    background: linear-gradient(135deg, var(--daimon-oro), var(--daimon-oro-hover));
    color: var(--daimon-viola-scuro);
    box-shadow: var(--shadow-card);
}

.evento-workshop__btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-card-hover);
    color: var(--daimon-viola-scuro);
}

.evento-workshop__section {
    margin: 0;
    padding: calc(var(--section-spacing-mobile) / 2) var(--main-padding-x);
}

@media (min-width: 768px) {
    /* --breakpoint-tablet */
    .evento-workshop__section {
        padding-top: calc(var(--section-spacing) / 2);
        padding-bottom: calc(var(--section-spacing) / 2);
    }
}

.evento-workshop__section--promise {
    background: var(--daimon-bianco);
}

.evento-workshop__section--program {
    background: var(--daimon-bg-warm);
    margin-top: 0;
    padding-top: calc(var(--section-spacing-mobile) / 2);
}

@media (min-width: 768px) {
    /* --breakpoint-tablet */
    .evento-workshop__section--program {
        padding-top: calc(var(--section-spacing) / 2);
    }
}

.evento-workshop__section--techniques {
    background: var(--daimon-bianco);
}

.evento-workshop__section--audio {
    background: linear-gradient(165deg, rgba(55, 15, 103, 0.04), rgba(194, 150, 57, 0.06));
}

.evento-workshop__section--path {
    background: var(--daimon-bg-warm);
}

.evento-workshop__section--practical {
    background: var(--daimon-bianco);
}

.evento-workshop__section--final {
    background: linear-gradient(165deg, var(--daimon-viola) 0%, var(--daimon-viola-scuro) 100%);
    color: var(--daimon-bianco);
    text-align: center;
}

.evento-workshop__section--final .evento-workshop__h2--on-dark,
.evento-workshop__section--final .evento-workshop__h2--on-dark * {
    color: var(--daimon-bianco);
}

.evento-workshop__section--final .evento-workshop__final-intro,
.evento-workshop__section--final .evento-workshop__final-intro * {
    color: rgba(248, 248, 242, 0.96);
}

.evento-workshop__section--final .evento-workshop__final-note,
.evento-workshop__section--final .evento-workshop__final-note * {
    color: rgba(248, 248, 242, 0.9);
}

.evento-workshop__section--final .evento-workshop__final-price {
    color: var(--daimon-oro);
}

.evento-workshop__inner {
    max-width: 40rem;
    margin: 0 auto;
}

.evento-workshop__inner--wide {
    max-width: 48rem;
}

.evento-workshop__inner--narrow {
    max-width: 36rem;
}

.evento-workshop__section-label {
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--daimon-oro);
    margin: 0 0 0.65rem;
    font-weight: 600;
}

.evento-workshop__section-label--on-dark {
    color: var(--daimon-oro);
}

.evento-workshop__h2 {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.35rem, 2.8vw, 1.85rem);
    color: var(--daimon-viola);
    margin: 0 0 0.65rem;
    line-height: 1;
    font-weight: 500;
}

.evento-workshop__h2 p {
    margin: 0;
    line-height: 1;
    color: var(--daimon-viola);
    font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
}

.evento-workshop__h2--on-dark {
    color: var(--daimon-bianco);
}

.evento-workshop__h2--on-dark p {
    color: var(--daimon-bianco);
}

.evento-workshop__p,
.evento-workshop__intro {
    margin: 0 0 0.85rem;
    color: var(--daimon-testo);
    line-height: 1.75;
}

.evento-workshop__section--final .evento-workshop__intro,
.evento-workshop__final-intro {
    margin: 0 auto 1rem;
    max-width: 32rem;
}

.evento-workshop__section--final .evento-workshop__intro,
.evento-workshop__section--final .evento-workshop__intro * {
    color: rgba(248, 248, 242, 0.96);
}

.evento-workshop__promise-box {
    margin-top: 1.5rem;
    padding: 1.65rem 1.25rem 1.05rem;
    border: 1px solid rgba(194, 150, 57, 0.45);
    border-radius: var(--radius);
    background: rgba(194, 150, 57, 0.06);
    text-align: center;
    position: relative;
}

.evento-workshop__promise-box em,
.evento-workshop__promise-box i {
    color: var(--daimon-rosa);
    font-style: italic;
}

.evento-workshop__promise-box::before {
    content: "✦";
    position: absolute;
    top: -0.65rem;
    left: 50%;
    transform: translateX(-50%);
    background: var(--daimon-bianco);
    padding: 0 0.5rem;
    color: var(--daimon-oro);
    font-size: 1rem;
}

.evento-workshop__session {
    margin-bottom: 1rem;
}

.evento-workshop__session-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem 1rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(55, 15, 103, 0.12);
}

.evento-workshop__session-time {
    font-size: max(20px, 0.85rem);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--daimon-oro);
}

.evento-workshop__session-title {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.2rem, 2.2vw, 1.4rem);
    font-weight: 700;
    color: var(--daimon-viola);
}

.evento-workshop__program-list {
    list-style: none;
    list-style-type: none;
    margin: 0;
    padding: 0;
}

.evento-workshop__program-list li {
    position: relative;
    padding-left: 1.85rem;
    margin-bottom: 0.5rem;
    color: var(--daimon-testo);
    list-style: none;
    list-style-type: none;
}

.evento-workshop__program-list li::marker {
    content: none;
    font-size: 0;
}

.evento-workshop__program-list li::before {
    content: "—";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--daimon-oro);
    font-weight: 600;
}

.evento-workshop__grid {
    display: grid;
    gap: 1rem;
    margin-top: 1.5rem;
}

.evento-workshop__grid--tech {
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .evento-workshop__grid--tech {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 960px) {
    .evento-workshop__grid--tech {
        grid-template-columns: repeat(3, 1fr);
    }
}

.evento-workshop__card {
    background: var(--daimon-bianco);
    border: 1px solid rgba(55, 15, 103, 0.1);
    border-radius: var(--radius);
    padding: 1.15rem;
    box-shadow: var(--shadow-card);
    transition: transform var(--transition-ease), box-shadow var(--transition-ease);
}

.evento-workshop__card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-card-hover);
}

.evento-workshop__card-num {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--daimon-rosa);
    letter-spacing: 0.06em;
    margin: 0 0 0.35rem;
}

.evento-workshop__card-title {
    font-size: max(22px, 1rem);
    margin: 0 0 0.5rem;
    color: var(--daimon-viola);
    font-family: var(--daimon-font-body);
    font-weight: 600;
}

.evento-workshop__card-body {
    font-size: max(22px, 0.95rem);
    color: var(--daimon-testo-muted);
    line-height: 1.65;
    margin: 0;
}

.evento-workshop__grid--audio {
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .evento-workshop__grid--audio {
        grid-template-columns: repeat(3, 1fr);
    }
}

.evento-workshop__audio-card {
    text-align: center;
    padding: 1.1rem;
    border: 1px solid rgba(194, 150, 57, 0.35);
    border-radius: var(--radius);
    background: var(--daimon-bianco);
    transition: box-shadow var(--transition-ease), transform var(--transition-ease);
}

.evento-workshop__audio-card:hover {
    box-shadow: 0 16px 44px rgba(55, 15, 103, 0.16), 0 8px 22px rgba(194, 150, 57, 0.22);
    transform: translateY(-3px);
}

.evento-workshop__audio-icon {
    color: var(--daimon-oro);
    margin-bottom: 0.55rem;
    display: flex;
    justify-content: center;
    align-items: center;
}

.evento-workshop__audio-icon .evento-workshop__icon-svg {
    width: 45px;
    height: 45px;
}

.evento-workshop__audio-title {
    font-size: max(22px, 0.9rem);
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--daimon-viola);
    margin: 0 0 0.35rem;
}

.evento-workshop__audio-desc {
    font-size: max(22px, 0.85rem);
    color: var(--daimon-testo-muted);
    line-height: 1.55;
    margin: 0;
}

.evento-workshop__path {
    list-style: none;
    margin: 1.5rem 0 0;
    padding: 0;
}

.evento-workshop__path-step {
    display: flex;
    gap: 1rem;
    padding-bottom: 1.5rem;
    position: relative;
}

.evento-workshop__path-step:not(:last-child)::before {
    content: "";
    position: absolute;
    left: calc(1.15rem - 1px);
    top: 2.5rem;
    bottom: 0;
    width: 2px;
    background: linear-gradient(to bottom, rgba(194, 150, 57, 0.5), rgba(194, 150, 57, 0.1));
}

.evento-workshop__path-dot {
    flex-shrink: 0;
    width: 2.3rem;
    height: 2.3rem;
    border-radius: 50%;
    border: 2px solid var(--daimon-oro);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--daimon-oro);
    background: var(--daimon-bg-warm);
    position: relative;
    z-index: 1;
}

.evento-workshop__path-title {
    font-size: max(22px, 0.95rem);
    margin: 0 0 0.35rem;
    color: var(--daimon-viola);
    font-weight: 600;
}

.evento-workshop__path-desc {
    font-size: max(22px, 0.95rem);
    color: var(--daimon-testo-muted);
    line-height: 1.65;
    margin: 0;
}

.evento-workshop__practical-grid {
    display: grid;
    gap: 1.25rem;
    margin-top: 1.5rem;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .evento-workshop__practical-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.evento-workshop__prac-item {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
}

.evento-workshop__prac-icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    border: 1px solid rgba(194, 150, 57, 0.4);
    background: rgba(194, 150, 57, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--daimon-oro);
}

.evento-workshop__prac-label {
    font-size: 0.75rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--daimon-oro);
    font-weight: 600;
    margin: 0 0 0.2rem;
}

.evento-workshop__prac-value {
    font-size: max(22px, 0.95rem);
    color: var(--daimon-testo);
    line-height: 1.55;
    margin: 0;
}

.evento-workshop__final-price {
    font-family: var(--daimon-font-titoli);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    color: var(--daimon-oro);
    margin: 0 0 0.25rem;
    font-weight: 600;
}

.evento-workshop__final-note {
    font-size: max(22px, 0.9rem);
    font-style: italic;
    margin: 0 auto 1.25rem;
    max-width: 28rem;
}

.evento-workshop__final-cta {
    margin: 0 0 1.5rem;
}

.evento-workshop__section--final .evento-workshop__btn--primary {
    background: linear-gradient(135deg, var(--daimon-oro), var(--daimon-oro-hover));
    color: var(--daimon-viola-scuro);
}

.evento-workshop__mission {
    margin: 2rem 0 0;
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(248, 248, 242, 0.45);
    font-weight: 600;
}

@media (max-width: 767px) {
    .evento-workshop__session-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }
}

