*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ── EB Garamond ── */
@font-face { font-family:'EB Garamond'; font-weight:400; font-style:normal; font-display:swap;
  src: url('fonts/eb-garamond-latin-ext-400-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'EB Garamond'; font-weight:400; font-style:normal; font-display:swap;
  src: url('fonts/eb-garamond-greek-400-normal.woff2') format('woff2'); unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family:'EB Garamond'; font-weight:400; font-style:normal; font-display:swap;
  src: url('fonts/eb-garamond-latin-400-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'EB Garamond'; font-weight:400; font-style:italic; font-display:swap;
  src: url('fonts/eb-garamond-latin-ext-400-italic.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'EB Garamond'; font-weight:400; font-style:italic; font-display:swap;
  src: url('fonts/eb-garamond-latin-400-italic.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'EB Garamond'; font-weight:500; font-style:normal; font-display:swap;
  src: url('fonts/eb-garamond-latin-ext-500-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'EB Garamond'; font-weight:500; font-style:normal; font-display:swap;
  src: url('fonts/eb-garamond-greek-500-normal.woff2') format('woff2'); unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family:'EB Garamond'; font-weight:500; font-style:normal; font-display:swap;
  src: url('fonts/eb-garamond-latin-500-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'EB Garamond'; font-weight:500; font-style:italic; font-display:swap;
  src: url('fonts/eb-garamond-latin-ext-500-italic.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'EB Garamond'; font-weight:500; font-style:italic; font-display:swap;
  src: url('fonts/eb-garamond-latin-500-italic.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'EB Garamond'; font-weight:600; font-style:normal; font-display:swap;
  src: url('fonts/eb-garamond-latin-ext-600-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'EB Garamond'; font-weight:600; font-style:normal; font-display:swap;
  src: url('fonts/eb-garamond-greek-600-normal.woff2') format('woff2'); unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family:'EB Garamond'; font-weight:600; font-style:normal; font-display:swap;
  src: url('fonts/eb-garamond-latin-600-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'EB Garamond'; font-weight:600; font-style:italic; font-display:swap;
  src: url('fonts/eb-garamond-latin-ext-600-italic.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'EB Garamond'; font-weight:600; font-style:italic; font-display:swap;
  src: url('fonts/eb-garamond-latin-600-italic.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'EB Garamond'; font-weight:700; font-style:normal; font-display:swap;
  src: url('fonts/eb-garamond-latin-ext-700-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'EB Garamond'; font-weight:700; font-style:normal; font-display:swap;
  src: url('fonts/eb-garamond-latin-700-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* ── Inter ── */
@font-face { font-family:'Inter'; font-weight:300; font-style:normal; font-display:swap;
  src: url('fonts/inter-latin-ext-300-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter'; font-weight:300; font-style:normal; font-display:swap;
  src: url('fonts/inter-latin-300-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'Inter'; font-weight:400; font-style:normal; font-display:swap;
  src: url('fonts/inter-latin-ext-400-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter'; font-weight:400; font-style:normal; font-display:swap;
  src: url('fonts/inter-latin-400-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'Inter'; font-weight:500; font-style:normal; font-display:swap;
  src: url('fonts/inter-latin-ext-500-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter'; font-weight:500; font-style:normal; font-display:swap;
  src: url('fonts/inter-latin-500-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'Inter'; font-weight:600; font-style:normal; font-display:swap;
  src: url('fonts/inter-latin-ext-600-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter'; font-weight:600; font-style:normal; font-display:swap;
  src: url('fonts/inter-latin-600-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'Inter'; font-weight:700; font-style:normal; font-display:swap;
  src: url('fonts/inter-latin-ext-700-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter'; font-weight:700; font-style:normal; font-display:swap;
  src: url('fonts/inter-latin-700-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* Fallback fonts with adjusted metrics — reduces layout shift during font load */
@font-face {
  font-family: 'EBGaramond-fallback';
  src: local('Times New Roman'), local('Georgia');
  size-adjust: 116%;
  ascent-override: 82%;
  descent-override: 22%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Inter-fallback';
  src: local('Helvetica Neue'), local('Arial'), local('sans-serif');
  size-adjust: 107%;
  ascent-override: 90%;
  descent-override: 23%;
  line-gap-override: 0%;
}

:root {
  --gold: #c9973a;
  --gold-light: #e8c97a;
  --text: #e8e0f0;
  --text-muted: #c4b8d0;
  --text-reading: #dcd5e6;  /* lettura lunga: un soffio sotto --text per non abbagliare */
  --band: rgba(201,151,58,0.035);  /* fascia di ritmo a piena larghezza */
  --card-shadow: 0 1px 2px rgba(0,0,0,0.25);
  --bg: #0d0b1a;
  --surface: rgba(255,255,255,0.04);
  --surface-hover: rgba(255,255,255,0.07);
  --border: rgba(201,151,58,0.18);
  --border-hover: rgba(201,151,58,0.4);
  --font-serif: 'EB Garamond', 'EBGaramond-fallback', Georgia, serif;
  --font-sans: 'Inter', 'Inter-fallback', system-ui, sans-serif;
  --font-display: 'EB Garamond', 'EBGaramond-fallback', Georgia, serif;
  /* Timings di transizione — voce cinetica unificata */
  --t-fast: 0.18s ease;   /* color, opacity */
  --t-base: 0.25s ease;   /* background, border, transform, box-shadow */
  --t-slow: 0.4s ease;    /* max-height, accordion */
}

/* ── FONT FEATURE SHORTCUTS ── */
/* Applica font-features display a tutti gli elementi con font-display */
.section-title, .section-sub, .section-blockquote, .hero h1, .hero-motto, .hero-motto-sub, .hero-slogan, .nav-logo, .card-title, .pillar-title, .teacher-name, .quote-block p, .quote-oracle-text, .lesson-panel-title, .lesson-quote, .video-facade-title, .video-facade-sub, .video-facade-symbol, .contact-info h3, .footer-logo, .serif-footer, .serif-heading-sm, .chiave-num, .event-day, .event-sub, .anno-tab {
  font-feature-settings: "kern" 1, "liga" 1, "dlig" 1, "onum" 1, "calt" 1;
  font-variant-numeric: oldstyle-nums;
}
/* Applica font-features tabular ai badge e label */
.badge, .teacher-role, .event-month, .submit-btn, .footer-links a {
  font-feature-settings: "kern" 1, "liga" 1, "tnum" 1, "ss01" 1;
  font-variant-numeric: tabular-nums;
}

/* ── TEMA CHIARO — v2 (pergamena + gerarchia oro restituita) ── */
[data-theme="light"] {
  /* Sfondo pergamena */
  --bg-1: #f8f2e6;
  --bg-2: #ede4d0;
  --bg: #f5f0e8; /* fallback per chi referenzia var(--bg) */

  /* Inchiostri caldi (era #4a4055 grigio freddo) */
  --text: #2a1f08;
  --text-muted: #5a4a3a;
  --text-reading: #3a2c14;
  --band: rgba(120,90,30,0.05);
  --card-shadow: 0 1px 3px rgba(80,60,30,0.10), 0 4px 18px rgba(80,60,30,0.07);
  --text-soft: #7a6852;

  /* Gerarchia ORO a due livelli (era collassata su un solo tono) */
  /* Toni scuriti per conformità WCAG AA (contrasto ≥4.5:1 su sfondo chiaro) */
  --gold: #816018;          /* oro scuro — testo, bordi, accenti */
  --gold-light: #7d5b1c;    /* ambra chiara — italici, hover, dettagli */
  --gold-deep: #6b4f18;     /* oro profondo — alto contrasto */

  --surface: rgba(80,60,30,0.07);
  --surface-hover: rgba(80,60,30,0.12);
  --border: rgba(120,90,30,0.30);
  --border-hover: rgba(120,90,30,0.55);
}
/* Pergamena: gradient warm centro-alto → bordi */
[data-theme="light"] body {
  background:
    radial-gradient(ellipse 1400px 900px at 50% 0%, var(--bg-1) 0%, transparent 70%),
    linear-gradient(180deg, var(--bg-1) 0%, var(--bg-2) 100%);
  background-attachment: fixed;
}
/* Mobile: disabilita background-attachment fixed (causa repaint ogni frame su iOS/Android) */
@media (max-width: 768px) {
  [data-theme="light"] body { background-attachment: scroll; }
}
/* Vignette dall'alto: alba dorata (era fantasma a 0.08) */
/* Selezione testo coerente con palette */
[data-theme="light"] ::selection { background: rgba(232,201,122,0.55); color: #2a1f08; }
[data-theme="light"] ::-moz-selection { background: rgba(232,201,122,0.55); color: #2a1f08; }
[data-theme="light"] nav {
  background: rgba(245,240,232,0.92);
}
[data-theme="light"] .hero::before {
  background: radial-gradient(circle, rgba(201,151,58,0.12) 0%, rgba(201,151,58,0.06) 25%, rgba(123,94,167,0.04) 50%, transparent 70%);
}
[data-theme="light"] .hero::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:120px;
  background: linear-gradient(to bottom, transparent, rgba(201,151,58,0.03));
  pointer-events:none; z-index:0;
}
[data-theme="light"] .btn-ghost {
  border: 1px solid rgba(120,90,30,0.35);
  color: #7a5a14;
}
[data-theme="light"] .btn-ghost:hover {
  background: rgba(201,151,58,0.1);
  border-color: rgba(120,90,30,0.5);
}
/* Card "pergamena rilevata" — shadow calda, leggero sollevamento al hover */
[data-theme="light"] .glass-card,
[data-theme="light"] .pillar-card,
[data-theme="light"] .event-row,
[data-theme="light"] .quote-oracle,
[data-theme="light"] .contact-form {
  background: rgba(255,253,247,0.92);
  box-shadow: 0 2px 14px rgba(80,60,30,0.07);
  border: 0.5px solid rgba(120,90,30,0.18);
  transition: box-shadow var(--t-base), transform var(--t-base), border-color var(--t-base), background var(--t-base);
}
[data-theme="light"] .glass-card:hover,
[data-theme="light"] .pillar-card:hover,
[data-theme="light"] .event-row:hover {
  background: rgba(255,253,247,0.98);
  border-color: rgba(120,90,30,0.4);
  box-shadow: 0 6px 22px rgba(80,60,30,0.1);
  transform: translateY(-2px);
}
[data-theme="light"] .quote-block {
  background: rgba(184,138,46,0.08);
  border: 0.5px solid rgba(120,90,30,0.18);
}
/* Niente più "buco" var(--bg) — usa il tono pergamena chiaro */
[data-theme="light"] .quote-block::before {
  background: var(--bg-1);
  color: var(--gold-light);
}
/* FOOTER — opzione A: crema scuro armonioso (era marrone quasi-nero) */
[data-theme="light"] footer {
  background: linear-gradient(180deg, #ede4d0 0%, #e3d9c0 100%);
  color: var(--text-muted);
  border-top: 0.5px solid rgba(120,90,30,0.3);
}
[data-theme="light"] footer p,
[data-theme="light"] footer .footer-copyright,
[data-theme="light"] footer .serif-footer,
[data-theme="light"] footer .serif-footer-motto,
[data-theme="light"] footer .serif-footer-quote {
  color: var(--text-muted);
}
[data-theme="light"] footer .footer-logo {
  color: var(--gold-deep);
}
[data-theme="light"] footer a {
  color: var(--text-muted);
}
[data-theme="light"] footer a:hover {
  color: var(--gold);
}
[data-theme="light"] .footer-inner {
  border-color: rgba(120,90,30,0.35);
  background: rgba(248,242,230,0.5);
}
[data-theme="light"] .footer-inner::before {
  border-color: rgba(120,90,30,0.2);
}
[data-theme="light"] .footer-links {
  background: transparent;
}
[data-theme="light"] .footer-links a {
  color: var(--text-soft);
}
[data-theme="light"] .footer-links a:hover {
  color: var(--gold);
}
[data-theme="light"] footer nav.footer-links {
  background: transparent;
  backdrop-filter: none;
  border: none;
}
[data-theme="light"] .footer-social a {
  color: var(--gold); border-color: rgba(120,90,30,0.4); background: transparent;
}
[data-theme="light"] .footer-social a:hover {
  color: var(--gold-deep); border-color: var(--gold); background: rgba(184,138,46,0.12);
}
[data-theme="light"] .footer-seal {
  border-color: rgba(120,90,30,0.5);
  color: var(--gold-deep);
}
[data-theme="light"] .footer-rule::before,
[data-theme="light"] .footer-rule::after {
  background: linear-gradient(90deg, transparent 0%, rgba(120,90,30,0.5) 50%, transparent 100%);
}
[data-theme="light"] .footer-rule {
  color: var(--gold);
}
[data-theme="light"] footer span,
[data-theme="light"] footer [id="email-footer"] a {
  color: var(--text-muted) !important;
}
[data-theme="light"] footer [id="email-footer"] a:hover {
  color: var(--gold) !important;
}
[data-theme="light"] .back-to-top {
  background: rgba(255,255,255,0.95) !important;
  color: var(--gold) !important;
  border-color: rgba(120,90,30,0.25) !important;
}
[data-theme="light"] .back-to-top:hover {
  background: #ffffff !important;
  border-color: rgba(120,90,30,0.45) !important;
}
[data-theme="light"] .field input,
[data-theme="light"] .field textarea {
  background: rgba(255,255,255,0.7);
  color: #1a1520;
}
[data-theme="light"] .video-facade {
  background: #f0eadd;
}
[data-theme="light"] .section-band::before {
  background: linear-gradient(180deg, rgba(201,151,58,0.04) 0%, rgba(201,151,58,0.08) 50%, rgba(201,151,58,0.04) 100%);
}
[data-theme="light"] .esp-banner {
  background: rgba(29,158,117,0.06);
}
[data-theme="light"] .lesson-panel {
  background: rgba(255,255,255,0.5);
}
[data-theme="light"] .tag-studio {
  background: rgba(80,60,30,0.07);
  color: #4a4055;
  border: 0.5px solid rgba(80,60,30,0.2);
}
/* Citazioni planetarie: più leggibili su sfondo chiaro */
[data-theme="light"] .em-urano { color: #8a6a10; }
[data-theme="light"] .em-nettuno { color: #6b5a9e; }
[data-theme="light"] .em-plutone { color: #a84040; }
/* Detail pill: più visibile su chiaro */
[data-theme="light"] .detail-pill {
  background: rgba(201,151,58,0.12);
  color: #7a5a14;
  border: 0.5px solid rgba(201,151,58,0.35);
}
[data-theme="light"] .event-row.has-detail:hover .detail-pill {
  background: rgba(201,151,58,0.22);
}
[data-theme="light"] .event-row.open .detail-pill {
  background: rgba(201,151,58,0.2);
}
/* Stelline → punti d'inchiostro su pergamena (inverte logica: era oro chiaro su crema, invisibile) */
[data-theme="light"] section#chi-siamo::before,
[data-theme="light"] section#ispirazioni::before {
  opacity: 0.85;
  background-image:
    radial-gradient(circle at 15% 20%, rgba(80,60,30,0.18) 0, rgba(80,60,30,0.18) 1px, transparent 2px),
    radial-gradient(circle at 72% 15%, rgba(120,90,30,0.14) 0, rgba(120,90,30,0.14) 1px, transparent 2px),
    radial-gradient(circle at 85% 65%, rgba(80,60,30,0.16) 0, rgba(80,60,30,0.16) 1px, transparent 2px),
    radial-gradient(circle at 30% 80%, rgba(120,90,30,0.14) 0, rgba(120,90,30,0.14) 1px, transparent 2px),
    radial-gradient(circle at 55% 45%, rgba(80,60,30,0.10) 0, rgba(80,60,30,0.10) 1px, transparent 2px),
    radial-gradient(circle at 8% 60%, rgba(120,90,30,0.12) 0, rgba(120,90,30,0.12) 1px, transparent 2px);
}
/* Theme toggle button */
.theme-toggle {
  background: none; border: 0.5px solid var(--border);
  border-radius: 999px; padding: 5px 14px 5px 10px;
  cursor: pointer; color: var(--gold-light);
  font-size: 13px; line-height: 1;
  font-family: var(--font-sans); font-weight: 500;
  letter-spacing: 0.04em;
  transition: border-color var(--t-base), color var(--t-fast), background var(--t-base);
  display: flex; align-items: center; justify-content: center; gap: 5px;
  white-space: nowrap;
}
.theme-toggle:hover { border-color: var(--border-hover); color: var(--gold); background: var(--surface); }
.theme-toggle-icon { font-size: 16px; line-height: 1; }
/* Separatore prima del toggle nella nav desktop */
.nav-links .theme-toggle { margin-left: 0.75rem; padding-left: 14px; }
@media (max-width: 768px) {
  .nav-links .theme-toggle { margin-left: 0; margin-top: 0.5rem; align-self: center; }
  .theme-toggle .lbl { display: none; }
  .theme-toggle { padding: 6px 10px; }
}

html { scroll-behavior: smooth; overflow-x: hidden; scroll-padding-top: 1rem; }

/* Ancore: distanza dalla nav sticky quando si naviga via #hash */
section[id], header[id], main [id] {
  scroll-margin-top: 0;
}
@media (max-width: 768px) {
  html { scroll-padding-top: 0.5rem; }
  section[id], header[id], main [id] {
    scroll-margin-top: 0;
  }
}
body {
  font-family: var(--font-sans);
  background: var(--bg); color: var(--text);
  line-height: 1.65; font-weight: 400;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "ss01" 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  position: relative; z-index: 1;
}

/* NAV */
nav {
  position: sticky; top: 0; z-index: 100;
  background: rgba(13,11,26,0.9); backdrop-filter: blur(16px);
  border-bottom: 0.5px solid var(--border);
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 2.5rem; flex-wrap: wrap; gap: 0.75rem;
}
.nav-logo { font-family: var(--font-display); font-size: 20px; font-weight: 600; color: var(--gold-light); letter-spacing: 0.04em; text-decoration: none; }
.nav-links { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.nav-links a {
  font-size: 15px; color: var(--text-muted); text-decoration: none;
  letter-spacing: 0.04em;
  position: relative; padding-bottom: 2px;
  transition: color var(--t-fast);
}
.nav-links a::after {
  content: ''; position: absolute;
  left: 50%; bottom: 0;
  width: 0; height: 0.5px;
  background: var(--gold);
  opacity: 0.85;
  transition: width 0.24s ease, left 0.24s ease;
}
.nav-links a:hover::after { width: 100%; left: 0; }
.nav-links a:hover { color: var(--gold-light); }

/* Scroll-spy: voce di menu della sezione corrente */
.nav-links a.active { color: var(--gold-light); }
.nav-links a.active::after { width: 100%; left: 0; }

/* Scroll progress bar — filetto dorato sopra la nav */
.scroll-progress {
  position: fixed; top: 0; left: 0; right: 0;
  height: 2px; z-index: 101;
  background: linear-gradient(90deg, var(--gold-light) 0%, var(--gold) 100%);
  transform-origin: left center;
  transform: scaleX(var(--scroll-pct, 0));
  transition: transform 0.06s linear;
  pointer-events: none;
  opacity: 0.85;
}
@media (prefers-reduced-motion: reduce) {
  .scroll-progress { transition: none; }
}

/* SFONDO VIVO — gradiente che respira */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  background: 
    radial-gradient(ellipse 80% 60% at 20% 30%, rgba(30,18,50,0.7) 0%, transparent 70%),
    radial-gradient(ellipse 70% 50% at 80% 70%, rgba(15,25,45,0.6) 0%, transparent 70%),
    radial-gradient(ellipse 90% 80% at 50% 50%, rgba(20,12,35,0.4) 0%, transparent 80%);
  background-color: var(--bg);
  animation: sfondo-respira 35s ease-in-out infinite;
}
@keyframes sfondo-respira {
  0% { background-position: 0% 0%, 100% 100%, 50% 50%; }
  25% { background-position: 30% 20%, 70% 80%, 40% 60%; }
  50% { background-position: 60% 40%, 40% 60%, 60% 40%; }
  75% { background-position: 20% 60%, 80% 30%, 30% 70%; }
  100% { background-position: 0% 0%, 100% 100%, 50% 50%; }
}
[data-theme="light"] body::before {
  background: 
    radial-gradient(ellipse 80% 60% at 20% 30%, rgba(232,201,122,0.06) 0%, transparent 70%),
    radial-gradient(ellipse 70% 50% at 80% 70%, rgba(180,150,90,0.04) 0%, transparent 70%),
    radial-gradient(ellipse 90% 80% at 50% 50%, rgba(200,170,100,0.03) 0%, transparent 80%);
  background-color: var(--bg-1);
}

/* HERO */
.hero { position: relative; min-height: auto; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 6rem 2rem 4rem; overflow: hidden; }
.hero-emblem { width: 200px; height: 200px; margin-bottom: 1.75rem; position: relative; z-index: 2; filter: drop-shadow(0 8px 32px rgba(201, 151, 58, 0.25)); animation: emblem-float 8s ease-in-out infinite; }
@keyframes emblem-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.hero::before { content: ''; position: absolute; top: 5rem; left: 50%; transform: translateX(-50%); width: 520px; height: 520px; background: radial-gradient(circle, rgba(201, 151, 58, 0.10) 0%, rgba(201, 151, 58, 0.05) 25%, rgba(123, 94, 167, 0.035) 50%, transparent 70%); border-radius: 50%; z-index: 0; pointer-events: none; animation: halo-pulse 6s ease-in-out infinite; }
@keyframes halo-pulse { 0%, 100% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } }
@media (max-width: 640px) {
  .hero-emblem { width: 150px; height: 150px; }
  .hero::before { width: 380px; height: 380px; }
}
.hero h1 { font-family: var(--font-display); font-size: clamp(34px, 6.4vw, 54px); font-weight: 500; color: var(--text); letter-spacing: 0.02em; line-height: 1.1; margin-bottom: 1.5rem; position: relative; z-index: 2; }
.hero h1 span { color: var(--gold-light); font-weight: 500; }
.hero-motto { font-family: var(--font-display); font-size: clamp(24px, 4vw, 40px); font-weight: 500; color: var(--gold-light); margin-bottom: 0.5rem; letter-spacing: 0.04em; line-height: 1.2; position: relative; z-index: 2; }
.hero-motto-sub { font-family: var(--font-display); font-size: clamp(13px, 1.6vw, 16px); color: var(--text); opacity: 0.75; margin-bottom: 2rem; font-style: italic; letter-spacing: 0.1em; position: relative; z-index: 2; }
.hero-motto-sub::after { content: '✶'; display: block; color: var(--gold); font-size: 12px; margin-top: 1.5rem; opacity: 0.7; letter-spacing: 0; }
.hero-slogan { font-family: var(--font-display); font-size: clamp(16px, 2.2vw, 20px); color: var(--text); max-width: 520px; line-height: 1.7; margin-bottom: 2.5rem; position: relative; z-index: 2; opacity: 0.85; letter-spacing: 0.01em; }
.hero-ctas { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; position: relative; z-index: 2; }
.btn-primary { display: inline-block; padding: 0.85rem 2.25rem; background: linear-gradient(135deg, var(--gold) 0%, #a8782a 100%); border: none; border-radius: 999px; color: #1a1000; font-size: 15px; font-weight: 500; text-decoration: none; letter-spacing: 0.07em; text-transform: uppercase; transition: opacity 0.2s, transform 0.2s; cursor: pointer; }
.btn-primary:hover { opacity: 0.88; transform: translateY(-2px); }
.btn-ghost { display: inline-block; padding: 0.85rem 2.25rem; background: transparent; border: 0.5px solid var(--border-hover); border-radius: 999px; color: var(--gold-light); font-size: 15px; text-decoration: none; letter-spacing: 0.07em; text-transform: uppercase; transition: background 0.2s, transform 0.2s; cursor: pointer; }
.btn-ghost:hover { background: rgba(201,151,58,0.08); transform: translateY(-2px); }

/* SECTIONS */
section { padding: clamp(4rem, 9vw, 6.5rem) 2rem; max-width: 900px; margin: 0 auto; }
/* Fasce di ritmo — fondo alternato a piena larghezza (full-bleed via box-shadow+clip) */
section#insegnamenti, section#seminario, section#faq {
  background: var(--band);
  box-shadow: 0 0 0 100vmax var(--band);
  clip-path: inset(0 -100vmax);
}

/* ── SISTEMA DECORATIVO ── */
/* Eyebrow numerato */
.section-eyebrow {
  display: flex; align-items: center; justify-content: flex-start;
  gap: 0.75rem; margin-bottom: 0.75rem;
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--gold); font-weight: 500;
}
.section-eyebrow.center { justify-content: center; }
.section-eyebrow .roman {
  font-family: var(--font-display); font-style: italic;
  font-size: 15px; color: var(--gold-light); letter-spacing: 0.05em;
  text-transform: none; font-weight: 500;
  font-feature-settings: "kern" 1, "liga" 1, "dlig" 1, "onum" 1;
}
.section-eyebrow::before,
.section-eyebrow::after {
  content: ''; display: block; width: 36px; height: 0.5px;
  background: linear-gradient(90deg, transparent 0%, rgba(201,151,58,0.55) 100%);
}
.section-eyebrow::after {
  background: linear-gradient(90deg, rgba(201,151,58,0.55) 0%, transparent 100%);
}

/* Filetto epigrafico — separatore tra sezioni con glifo centrale */
.epigraphic-rule {
  display: flex; align-items: center; justify-content: center;
  gap: 1.25rem; max-width: 700px; margin: 0 auto; padding: 2rem;
}
.epigraphic-rule::before,
.epigraphic-rule::after {
  content: ''; flex: 1; height: 0.5px;
  background: linear-gradient(90deg, transparent 0%, rgba(201,151,58,0.08) 15%, rgba(201,151,58,0.45) 50%, rgba(201,151,58,0.08) 85%, transparent 100%);
}
.epigraphic-rule .glyph {
  color: var(--gold); font-size: 14px; flex-shrink: 0;
  display: inline-flex; align-items: center; gap: 0.9rem;
  letter-spacing: 0.3em;
}
.epigraphic-rule .glyph::before,
.epigraphic-rule .glyph::after {
  content: '◆'; font-size: 5px; color: var(--gold); opacity: 0.55;
  transform: translateY(-3px);
}

/* Capolettera — drop cap editoriale (rimosso: non funziona bene su fondo scuro) */

.section-title { font-family: var(--font-display); font-size: clamp(28px,5vw,42px); font-weight: 500; color: var(--text); margin-bottom: 0.75rem; line-height: 1.15; letter-spacing: 0; }
.section-sub { font-size: 17px; color: var(--text-reading); max-width: 68ch; line-height: 1.75; margin-bottom: 2.5rem; letter-spacing: 0; }

/* GLASS CARD — stile "pergamena": doppio filetto interno + angoli ornamentali */
.glass-card {
  position: relative;
  background: rgba(255,255,255,0.018);
  border: 0.5px solid var(--border);
  border-radius: 14px;
  padding: 1.85rem 1.85rem;
  transition: border-color var(--t-base), background var(--t-base), box-shadow var(--t-base);
  box-shadow: var(--card-shadow), inset 0 0 0 0 rgba(201,151,58,0);
}
/* Doppio filetto interno — cornice oro distanziata dal bordo */
.glass-card::before {
  content: ''; position: absolute;
  inset: 6px; border-radius: 9px;
  border: 0.5px solid rgba(201,151,58,0.12);
  pointer-events: none;
  transition: border-color var(--t-base);
}
/* Angoli — rimossi (creavano rumore visivo) */
.glass-card:hover { background: rgba(255,255,255,0.032); border-color: rgba(201,151,58,0.5); box-shadow: 0 6px 24px rgba(201,151,58,0.1), 0 2px 8px rgba(0,0,0,0.3); transform: translateY(-2px); }
.glass-card:hover::before { border-color: rgba(201,151,58,0.4); }
.glass-card > * { position: relative; z-index: 1; }
.card-title { font-family: var(--font-display); font-size: 20px; font-weight: 500; margin-bottom: 0.6rem; color: var(--text); display: flex; align-items: center; gap: 0.6rem; letter-spacing: 0.01em; }
.card-title .text-gold {
  font-size: 1.35em;
  line-height: 1;
  width: 2rem; height: 2rem;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(201,151,58,0.1);
  border: 0.5px solid rgba(201,151,58,0.25);
  border-radius: 50%;
  flex-shrink: 0;
}
/* quote-block: coerente con section-blockquote */
.quote-block { position: relative; border-left: 3.5px solid var(--gold); padding: 1.4rem 1.75rem 1.4rem 1.5rem; margin: 2rem 0; background: rgba(201,151,58,0.04); border-radius: 0 12px 12px 0; }
.quote-block::before {
  content: '◆  ◆  ◆'; position: absolute; top: -0.6rem; left: 1.25rem;
  background: var(--bg); padding: 0 0.6rem;
  font-size: 8px; line-height: 1; color: var(--gold); opacity: 0.7;
  letter-spacing: 0.1em;
}
.quote-block p { font-family: var(--font-display); font-size: clamp(16px,2.5vw,20px); font-style: italic; font-weight: 400; color: var(--text); line-height: 1.7; margin-bottom: 0.5rem; }
.quote-block cite { font-size: 12px; color: var(--gold); letter-spacing: 0.1em; text-transform: uppercase; }

/* GRIDS */
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 640px) { .about-grid { grid-template-columns: 1fr; } }
.chiavi-list { display: flex; flex-direction: column; gap: 14px; }
.chiave-item { display: flex; align-items: flex-start; gap: 1.75rem; padding: 1.5rem 1.75rem; }
.chiave-num { font-family: var(--font-display); font-size: clamp(2.5rem, 5vw, 3.5rem); font-weight: 700; color: var(--gold); opacity: 0.25; line-height: 1; flex-shrink: 0; width: 2.5rem; text-align: center; margin-top: -0.15rem; }
.chiave-content { flex: 1; }
.chiave-content .card-title { margin-bottom: 0.6rem; }
@media (max-width: 480px) { .chiave-item { flex-direction: column; gap: 0.5rem; } .chiave-num { font-size: 2rem; width: auto; } }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: stretch; }
@media (max-width: 640px) { .two-col { grid-template-columns: 1fr; } }

/* PILLAR — stile pergamena */
.pillar-card {
  position: relative;
  background: rgba(255,255,255,0.018);
  border: 0.5px solid var(--border);
  border-radius: 14px;
  padding: 1.85rem;
  display: flex; flex-direction: column;
  box-shadow: 0 1px 2px rgba(0,0,0,0.25);
  transition: border-color var(--t-base), background var(--t-base);
}
.pillar-card::before {
  content: ''; position: absolute;
  inset: 6px; border-radius: 9px;
  border: 0.5px solid rgba(201,151,58,0.12);
  pointer-events: none;
  transition: border-color var(--t-base);
}
.pillar-card:hover { background: rgba(255,255,255,0.028); border-color: rgba(201,151,58,0.42); }
.pillar-card:hover::before { border-color: rgba(201,151,58,0.35); }
.pillar-card > * { position: relative; z-index: 1; }
.pillar-title { font-family: var(--font-display); font-size: 24px; font-weight: 500; color: var(--gold-light); margin-bottom: 1.25rem; display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; padding-bottom: 0.75rem; border-bottom: 1px solid rgba(201, 151, 58, 0.15); letter-spacing: 0.01em; }
.pillar-title span[aria-hidden="true"] { font-size: 28px; opacity: 0.85; }
/* Glifi disegnati come SVG inline (oro, monocromatici) — rendering identico su ogni dispositivo, niente lotteria font/emoji */
.glyph-svg { width: 1em; height: 1em; vertical-align: -0.12em; display: inline-block; }
.pillar-title .glyph-svg { width: 28px; height: 28px; vertical-align: middle; }
.pillar-list { list-style: none; flex: 1; }
.pillar-list li:last-child { border-bottom: none; }
.pillar-list li::before { content: '✶ '; color: var(--gold); font-size: 11px; }

/* BOOK — layout editoriale */
.book-editorial {
  display: grid; grid-template-columns: 280px 1fr;
  gap: 3rem; align-items: start; margin-bottom: 2.5rem;
}
.book-cover-wrap { position: sticky; top: 6rem; perspective: 800px; }
.book-cover-editorial {
  width: 100%; height: auto; border-radius: 4px;
  box-shadow: 12px 12px 30px rgba(0,0,0,0.5), 4px 4px 10px rgba(0,0,0,0.3), inset -2px 0 4px rgba(255,255,255,0.05);
  transform: rotateY(-3deg);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.book-cover-wrap:hover .book-cover-editorial { transform: rotateY(0deg); box-shadow: 8px 8px 24px rgba(0,0,0,0.4), 2px 2px 8px rgba(0,0,0,0.2); }
.book-cover-wrap::before {
  content: ''; position: absolute; left: -3px; top: 4px; bottom: 4px;
  width: 6px; background: linear-gradient(90deg, rgba(60,40,10,0.6), rgba(100,70,20,0.3), transparent);
  border-radius: 2px 0 0 2px; z-index: 2;
}
.book-publisher-tag { font-size: 11px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.75rem; display: block; }
.book-title-editorial { font-family: var(--font-display); font-size: clamp(28px,4vw,38px); font-weight: 500; color: var(--text); line-height: 1.15; margin-bottom: 0.35rem; letter-spacing: 0.01em; }
.book-subtitle-editorial { font-family: var(--font-display); font-size: clamp(16px,2.5vw,20px); font-style: italic; font-weight: 400; color: var(--gold-light); margin-bottom: 1rem; letter-spacing: 0.02em; }
.book-authors-editorial { font-size: 15px; color: var(--text-muted); margin-bottom: 1.5rem; line-height: 1.5; }
.book-desc-editorial { font-size: 16px; color: var(--text); line-height: 1.72; margin-bottom: 1.5rem; opacity: 0.9; }
.book-quote-editorial { font-family: var(--font-display); font-size: 17px; font-style: italic; color: var(--text); line-height: 1.7; border-left: 3px solid var(--gold); padding-left: 1.25rem; margin: 1.5rem 0; opacity: 0.9; }
.book-quote-editorial cite { display: block; font-size: 12px; font-style: normal; color: var(--gold); margin-top: 0.4rem; letter-spacing: 0.08em; text-transform: uppercase; }
.book-where-editorial { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 1.25rem; }
.book-where-pill { font-size: 13px; padding: 6px 14px; border-radius: 999px; background: rgba(201,151,58,0.1); border: 0.5px solid rgba(201,151,58,0.3); color: var(--gold-light); display: inline-flex; align-items: center; gap: 6px; }
.book-contents-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
.book-content-card {
  position: relative; background: rgba(255,255,255,0.018); border: 0.5px solid var(--border);
  border-radius: 14px; padding: 1.5rem; text-align: center;
  transition: border-color 0.25s, background 0.25s;
}
.book-content-card::before { content: ''; position: absolute; inset: 6px; border-radius: 9px; border: 0.5px solid rgba(201,151,58,0.12); pointer-events: none; }
.book-content-card:hover { background: rgba(255,255,255,0.032); border-color: rgba(201,151,58,0.42); }
.book-content-card > * { position: relative; z-index: 1; }
.book-content-num { font-family: var(--font-display); font-size: clamp(36px,5vw,48px); font-weight: 700; color: var(--gold); opacity: 0.3; line-height: 1; margin-bottom: 0.25rem; }
.book-content-label { font-family: var(--font-display); font-size: 17px; font-weight: 500; color: var(--gold-light); margin-bottom: 0.5rem; }
.book-content-desc { font-size: 13px; color: var(--text-muted); line-height: 1.6; }
/* Expandable book content cards */
.book-content-card { cursor: pointer; }
.book-content-summary { list-style: none; display: flex; flex-direction: column; align-items: center; }
.book-content-summary::-webkit-details-marker { display: none; }
.book-content-summary::after { content: 'Approfondisci ▾'; font-family: var(--font-sans); font-size: 12px; font-weight: 500; color: var(--gold-light); margin-top: 0.75rem; padding: 4px 14px; border-radius: 999px; border: 0.5px solid var(--border); background: var(--surface); transition: background 0.25s, border-color 0.25s; letter-spacing: 0.04em; }
.book-content-card:hover .book-content-summary::after { background: var(--surface-hover); border-color: var(--border-hover); }
.book-content-card[open] .book-content-summary::after { content: 'Mostra meno ▴'; background: var(--surface-hover); border-color: var(--border-hover); }
.book-content-detail { text-align: left; margin-top: 1rem; padding-top: 1rem; border-top: 0.5px solid rgba(201,151,58,0.15); }
.book-content-card[open] { grid-column: 1 / -1; }
@media (max-width: 700px) {
  .book-editorial { grid-template-columns: 1fr; gap: 2rem; text-align: center; }
  .book-cover-wrap { position: static; max-width: 220px; margin: 0 auto; }
  .book-cover-editorial { transform: none; }
  .book-cover-wrap::before { display: none; }
  .book-contents-grid { grid-template-columns: 1fr; }
  .book-quote-editorial { text-align: left; }
}
[data-theme="light"] .book-cover-editorial { box-shadow: 12px 12px 30px rgba(80,60,30,0.2), 4px 4px 10px rgba(80,60,30,0.12); }
[data-theme="light"] .book-content-card { background: rgba(255,253,247,0.92); box-shadow: 0 2px 14px rgba(80,60,30,0.07); }

/* TEACHERS — stile storytelling */
.conductor-story {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 2.5rem;
  align-items: start;
  margin-bottom: 2.5rem;
}
.conductor-story.reverse {
  grid-template-columns: 1fr 200px;
}
.conductor-story.reverse .conductor-photo-wrap { order: 2; }
.conductor-story.reverse .conductor-text { order: 1; }
.conductor-photo-wrap { position: sticky; top: 6rem; }
.conductor-photo-lg {
  width: 200px; height: 200px;
  border-radius: 16px; object-fit: cover;
  border: 1px solid var(--border-hover);
  box-shadow: 0 4px 24px rgba(0,0,0,0.3);
}
.conductor-name {
  font-family: var(--font-display);
  font-size: clamp(24px, 4vw, 32px);
  font-weight: 500; color: var(--text);
  margin-bottom: 0.2rem; line-height: 1.2;
}
.conductor-role {
  font-size: 12px; color: var(--gold);
  letter-spacing: 0.12em; text-transform: uppercase;
  margin-bottom: 1rem;
}
.conductor-bio {
  font-size: 16px; color: var(--text);
  line-height: 1.72; margin-bottom: 1.25rem;
}
.conductor-tags-wrap { margin-top: 0.5rem; }
.conductor-tags-btn {
  display: inline-flex; align-items: center; gap: 0.4rem;
  font-family: var(--font-sans); font-size: 13px; font-weight: 500;
  color: var(--gold-light); cursor: pointer; list-style: none;
  padding: 5px 14px; border-radius: 999px;
  border: 0.5px solid var(--border);
  background: var(--surface);
  transition: background var(--t-base), border-color var(--t-base), color var(--t-fast);
  letter-spacing: 0.04em;
}
.conductor-tags-btn:hover { background: var(--surface-hover); border-color: var(--border-hover); color: var(--gold); }
.conductor-tags-btn::-webkit-details-marker { display: none; }
.conductor-tags-btn::after { content: '▾'; font-size: 11px; transition: transform .3s ease; }
.conductor-tags-wrap[open] .conductor-tags-btn::after { transform: rotate(180deg); }
.conductor-tags-wrap[open] .conductor-tags-btn { background: var(--surface-hover); border-color: var(--border-hover); }
.conductor-tags {
  display: flex; flex-wrap: wrap; gap: 6px; margin-top: 0.75rem;
}
.conductor-tags .bio-tag {
  font-size: 11px; font-weight: 500;
  padding: 4px 12px; border-radius: 999px;
  letter-spacing: 0.04em; white-space: nowrap;
}
.shared-story {
  position: relative;
  background: rgba(255,255,255,0.018);
  border: 0.5px solid var(--border);
  border-radius: 14px;
  padding: 2rem;
  margin-top: 0.5rem; margin-bottom: 2rem;
}
.shared-story::before {
  content: ''; position: absolute;
  inset: 6px; border-radius: 9px;
  border: 0.5px solid rgba(201,151,58,0.12);
  pointer-events: none;
}
.shared-story > * { position: relative; z-index: 1; }
.shared-story p { font-size: 15px; color: var(--text-muted); line-height: 1.72; margin-bottom: 1rem; }
.shared-story p:last-child { margin-bottom: 0; }
.collab-card {
  display: flex; align-items: center; gap: 1.5rem;
  padding: 1.5rem;
  background: rgba(255,255,255,0.018);
  border: 0.5px solid var(--border);
  border-radius: 14px;
}
.collab-photo {
  width: 80px; height: 80px;
  border-radius: 50%; object-fit: cover;
  border: 1px solid var(--border-hover);
  flex-shrink: 0;
}
@media (max-width: 640px) {
  .conductor-story,
  .conductor-story.reverse {
    grid-template-columns: 1fr; gap: 1.25rem; text-align: center;
  }
  .conductor-story.reverse .conductor-photo-wrap,
  .conductor-story.reverse .conductor-text { order: unset; }
  .conductor-photo-wrap { position: static; display: flex; justify-content: center; }
  .conductor-photo-lg { width: 160px; height: 160px; }
  .conductor-tags { justify-content: center; }
  .collab-card { flex-direction: column; text-align: center; }
}
[data-theme="light"] .conductor-photo-lg { box-shadow: 0 4px 20px rgba(80,60,30,0.12); }
[data-theme="light"] .shared-story { background: rgba(255,253,247,0.92); box-shadow: 0 2px 14px rgba(80,60,30,0.07); }
[data-theme="light"] .collab-card { background: rgba(255,253,247,0.92); box-shadow: 0 2px 14px rgba(80,60,30,0.07); }
.teacher-name { font-family: var(--font-display); font-size: 20px; font-weight: 500; color: var(--text); margin-bottom: 0.3rem; letter-spacing: 0.01em; }
.teacher-role { font-size: 12px; color: var(--gold); letter-spacing: 0.1em; text-transform: uppercase; font-family: var(--font-sans); }

/* CALENDARIO — event-row stile pergamena (più snella) */
.calendar-list { display: flex; flex-direction: column; gap: 14px; position: relative; padding-left: 3.5rem; }
.event-row {
  position: relative;
  background: rgba(255,255,255,0.018);
  border: 0.5px solid var(--border);
  border-radius: 12px;
  padding: 1.1rem 1.4rem;
  display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap;
  transition: background var(--t-base), border-color var(--t-base);
  box-shadow: 0 1px 2px rgba(0,0,0,0.2);
}
.event-row:hover { background: rgba(255,255,255,0.028); border-color: rgba(201,151,58,0.42); }
.event-date { text-align: center; min-width: 42px; }
.event-day { font-family: var(--font-display); font-size: 32px; font-weight: 500; color: var(--gold-light); line-height: 1; font-variant-numeric: lining-nums tabular-nums; font-feature-settings: "kern" 1, "lnum" 1, "tnum" 1; }
.event-month { font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--text-muted); font-family: var(--font-sans); }
.event-vline { width: 0.5px; height: 38px; background: var(--border); flex-shrink: 0; }
.event-info { flex: 1; }
.event-title { font-size: 16px; font-weight: 500; color: var(--text); margin-bottom: 2px; }
.event-sub { font-family: var(--font-display); font-size: 16px; font-weight: 500; font-style: italic; color: var(--text); line-height: 1.4; margin-bottom: 2px; }

/* BADGE */
.badge { font-size: 11px; font-weight: 500; padding: 3px 11px; border-radius: 999px; letter-spacing: 0.05em; white-space: nowrap; align-self: center; flex-shrink: 0; }
.badge-gold { background: rgba(201,151,58,0.12); color: var(--gold-light); border: 0.5px solid rgba(201,151,58,0.3); }
.badge-purple { background: rgba(123,94,167,0.15); color: #b49fe0; border: 0.5px solid rgba(123,94,167,0.3); }
.badge-green { background: rgba(40,160,80,0.12); color: #7de0a0; border: 0.5px solid rgba(40,160,80,0.3); }
.badge-muted { background: rgba(255,255,255,0.04); color: var(--text-muted); border: 0.5px solid rgba(255,255,255,0.08); }

/* stato "in corso" — bordo dorato sottile (gemma sulla timeline pulsa, non il bordo) */
.event-row.in-corso { border-color: rgba(232,201,122,0.55); }

/* stato "prossima" */
.event-row.prossima { border-color: rgba(201,151,58,0.5); }

/* stato "passata" */
.event-row.passata { opacity: 0.78; }

/* PANNELLO ESPANDIBILE LEZIONE */
.lesson-wrap { display: flex; flex-direction: column; }
.event-row { cursor: pointer; user-select: none; }
.event-row.has-detail {
  cursor: pointer;
  border-color: rgba(201,151,58,0.28);
}
.event-row.has-detail:hover {
  background: rgba(255,255,255,0.028);
  border-color: rgba(201,151,58,0.42);
}
.event-row .expand-arrow {
  font-size: 13px; color: var(--text-muted); flex-shrink: 0;
  transition: transform var(--t-base); align-self: center;
}
.event-row.open .expand-arrow { transform: rotate(180deg); }

/* pill "Dettagli" visibile sulle lezioni con contenuto */
.detail-pill {
  font-size: 11px; font-weight: 500;
  padding: 3px 10px; border-radius: 999px;
  background: rgba(201,151,58,0.1);
  color: var(--gold-light);
  border: 0.5px solid rgba(201,151,58,0.3);
  white-space: nowrap; flex-shrink: 0; align-self: center;
  letter-spacing: 0.05em;
  transition: background var(--t-base);
}
.event-row.has-detail:hover .detail-pill {
  background: rgba(201,151,58,0.22);
}
.event-row.open .detail-pill {
  background: rgba(201,151,58,0.18);
}

/* hint testuale sotto il titolo */
.lesson-panel {
  max-height: 0; overflow: hidden;
  transition: max-height var(--t-slow), opacity var(--t-base);
  opacity: 0;
}
.lesson-panel.open { max-height: none; opacity: 1; }

.lesson-panel-inner {
  background: rgba(255,255,255,0.03);
  border: 0.5px solid var(--border);
  border-top: none;
  border-radius: 0 0 14px 14px;
  padding: 1.25rem 1.5rem 1.5rem;
  margin-top: -4px;
}
.lesson-panel-inner strong { color: var(--text); }
.lesson-panel-title {
  font-family: var(--font-display);
  font-size: 18px; font-weight: 500;
  color: var(--gold-light); margin-bottom: 0.75rem; line-height: 1.3;
  letter-spacing: 0.01em;
}
.lesson-topics {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 4px 1rem; margin-bottom: 1rem;
  list-style: none;
}
@media (max-width: 480px) { .lesson-topics { grid-template-columns: 1fr; } }
.lesson-topics li {
  font-size: 15px; color: var(--text); line-height: 1.72;
  padding: 0.2rem 0; border-bottom: 0.5px solid rgba(201,151,58,0.06);
  letter-spacing: 0;
}
.lesson-topics li::before { content: '✶ '; color: var(--gold); font-size: 10px; }
.lesson-quote {
  font-family: var(--font-display);
  font-size: 16px; font-style: normal;
  color: var(--text); opacity: 0.9; line-height: 1.7;
  border-left: 2px solid var(--gold);
  padding-left: 0.75rem; margin-top: 0.5rem;
}
.lesson-quote cite { display: block; font-size: 12px; color: var(--gold); margin-top: 0.3rem; letter-spacing: 0.08em; text-transform: uppercase; font-style: normal; }

/* TABS ANNO */
.anno-tab {
  font-family: var(--font-sans);
  font-size: 13px; font-weight: 500;
  padding: 6px 16px; border-radius: 999px;
  border: 0.5px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  cursor: pointer; letter-spacing: 0.05em;
  transition: background var(--t-base), border-color var(--t-base), color var(--t-fast);
}
.anno-tab:hover { background: var(--surface-hover); border-color: var(--border-hover); color: var(--text); }
.anno-tab.active { background: rgba(201,151,58,0.15); border-color: rgba(201,151,58,0.5); color: var(--gold-light); }
.anno-tab.disabled { opacity: 0.4; cursor: default; }
.anno-tab.disabled:hover { background: var(--surface); border-color: var(--border); color: var(--text-muted); }

/* PENSIERI & ISPIRAZIONI — see oracle styles below */


/* ORACOLO ISPIRAZIONI */
.quote-oracle {
  position: relative;
  background: rgba(255,255,255,0.018);
  border: 0.5px solid var(--border);
  border-radius: 14px;
  padding: 3rem 2.5rem;
  text-align: center;
  min-height: 220px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  overflow: hidden;
}
.quote-oracle::before {
  content: ''; position: absolute; inset: 8px; border-radius: 9px;
  border: 0.5px solid rgba(201,151,58,0.14); pointer-events: none;
}
.quote-oracle > * { position: relative; z-index: 1; }
.quote-oracle-symbol { font-size: 28px; color: var(--gold); opacity: 0.4; margin-bottom: 1.25rem; }
.quote-oracle-text {
  font-family: var(--font-display); font-size: clamp(17px,3vw,23px);
  font-style: italic; font-weight: 400; color: var(--text);
  line-height: 1.75; max-width: 700px; margin: 0 auto 1.25rem;
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.quote-oracle-author {
  font-size: 12px; color: var(--gold); letter-spacing: 0.14em;
  text-transform: uppercase; transition: opacity 0.4s ease;
}
.quote-oracle.fading .quote-oracle-text,
.quote-oracle.fading .quote-oracle-author { opacity: 0; transform: translateY(8px); }
.quote-oracle-btn {
  display: inline-flex; align-items: center; gap: 0.5rem;
  margin-top: 2rem; padding: 8px 22px; border-radius: 999px;
  border: 0.5px solid var(--border); background: var(--surface);
  color: var(--gold-light); font-family: var(--font-display);
  font-size: 15px; font-weight: 500; cursor: pointer;
  transition: background 0.25s, border-color 0.25s, transform 0.2s;
  letter-spacing: 0.02em;
}
.quote-oracle-btn:hover { background: var(--surface-hover); border-color: var(--border-hover); transform: translateY(-1px); }
.quote-oracle-btn:active { transform: translateY(0); }
.quote-oracle-btn svg { width: 16px; height: 16px; transition: transform 0.4s ease; }
.quote-oracle-btn:hover svg { transform: rotate(180deg); }
.quote-oracle-counter { font-size: 11px; color: var(--text-muted); opacity: 0.4; margin-top: 1rem; letter-spacing: 0.08em; }
@media (max-width: 640px) { .quote-oracle { padding: 2rem 1.5rem; } }
[data-theme="light"] .quote-oracle { background: rgba(255,253,247,0.92); box-shadow: 0 2px 14px rgba(80,60,30,0.07); }


/* CONTATTI */
.contact-wrapper { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; align-items: start; }
@media (max-width: 640px) { .contact-wrapper { grid-template-columns: 1fr; } }
.contact-info h3 { font-family: var(--font-display); font-size: 24px; font-weight: 500; margin-bottom: 0.5rem; color: var(--text); letter-spacing: 0.01em; }
.contact-info p { font-size: 16px; color: var(--text-muted); line-height: 1.72; margin-bottom: 1.5rem; letter-spacing: 0; }
.contact-detail { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 15px; color: var(--text-muted); margin-bottom: 0.75rem; }
.contact-detail-icon { width: 32px; height: 32px; border-radius: 8px; background: rgba(201,151,58,0.08); border: 0.5px solid var(--border); display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0; }
.contact-detail strong { display: block; font-size: 11px; color: var(--gold); letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 1px; }
.contact-detail span { color: var(--text); font-size: 15px; }
.contact-form {
  position: relative;
  background: rgba(255,255,255,0.018);
  border: 0.5px solid var(--border);
  border-radius: 14px;
  padding: 1.85rem;
  display: flex; flex-direction: column; gap: 1rem;
  box-shadow: 0 1px 2px rgba(0,0,0,0.25);
}
.contact-form::before {
  content: ''; position: absolute;
  inset: 6px; border-radius: 9px;
  border: 0.5px solid rgba(201,151,58,0.12);
  pointer-events: none;
}
.contact-form > * { position: relative; z-index: 1; }
.field label { display: block; font-size: 11px; font-weight: 500; color: var(--text-muted); margin-bottom: 5px; letter-spacing: 0.12em; text-transform: uppercase; }
.field input, .field textarea { width: 100%; font-family: var(--font-sans); font-size: 16px; padding: 10px 14px; background: rgba(255,255,255,0.03); border: 0.5px solid var(--border); border-radius: 10px; color: var(--text); outline: none; transition: border-color 0.2s; font-feature-settings: "kern" 1, "liga" 1; }
.field input:focus, .field textarea:focus { border-color: var(--gold); }
.field input::placeholder, .field textarea::placeholder { color: var(--text-muted); }
.field textarea { resize: none; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 480px) { .form-row { grid-template-columns: 1fr; } }
.submit-btn { padding: 0.85rem; background: linear-gradient(135deg, var(--gold) 0%, #a8782a 100%); border: none; border-radius: 10px; color: #1a1000; font-family: var(--font-sans); font-size: 15px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; transition: opacity 0.2s, transform 0.2s; }
.submit-btn:hover { opacity: 0.85; transform: translateY(-1px); }
.submit-btn:disabled { opacity: 0.4; cursor: not-allowed; transform: none; }

/* Video facade — lazy inline YouTube player with CSS custom thumbnail */
.video-facade { position: relative; width: 100%; aspect-ratio: 16/9; border-radius: 16px; overflow: hidden; border: 0.5px solid var(--border); cursor: pointer; background: #0f0b1e; isolation: isolate; }
.video-facade-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at center, rgba(201,151,58,0.18) 0%, rgba(15,11,30,0.4) 50%, rgba(10,8,20,1) 100%); z-index: 1; }
.video-facade-symbol { position: absolute; top: 42%; left: 50%; transform: translate(-50%, -50%); font-family: var(--font-display); font-size: clamp(180px, 35vw, 320px); color: rgba(201,151,58,0.08); line-height: 1; z-index: 2; user-select: none; pointer-events: none; }
.video-facade-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.25); transition: background var(--t-base); z-index: 3; }
.video-facade:hover .video-facade-overlay,
.video-facade:focus-visible .video-facade-overlay { background: rgba(0,0,0,0.1); }
.video-facade-play { position: absolute; top: 42%; left: 50%; transform: translate(-50%,-50%); width: 72px; height: 72px; background: rgba(201,151,58,0.9); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: transform 0.2s, background 0.2s; z-index: 4; box-shadow: 0 4px 24px rgba(201,151,58,0.3); }
.video-facade-play::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 240px; height: 240px; background: radial-gradient(circle, rgba(201,151,58,0.35) 0%, rgba(201,151,58,0.15) 30%, transparent 65%); border-radius: 50%; z-index: -1; pointer-events: none; transition: opacity 0.3s; }
.video-facade:hover .video-facade-play,
.video-facade:focus-visible .video-facade-play { transform: translate(-50%,-50%) scale(1.08); background: rgba(201,151,58,1); }
.video-facade:hover .video-facade-play::before,
.video-facade:focus-visible .video-facade-play::before { opacity: 1.3; }
.video-facade-triangle { width: 0; height: 0; border-top: 14px solid transparent; border-bottom: 14px solid transparent; border-left: 22px solid #1a1000; margin-left: 3px; }
.video-facade-content { position: absolute; bottom: 1.25rem; left: 1.25rem; right: 1.25rem; text-align: center; z-index: 4; pointer-events: none; }
.video-facade-title { font-family: var(--font-display); font-size: clamp(18px, 2.5vw, 24px); font-weight: 500; color: var(--gold-light); margin-bottom: 0.15rem; letter-spacing: 0.03em; }
.video-facade-sub { font-family: var(--font-display); font-size: clamp(14px, 1.8vw, 17px); font-style: italic; color: rgba(255,255,255,0.7); }
.video-facade-duration { position: absolute; top: 1rem; right: 1rem; background: rgba(0,0,0,0.6); color: rgba(255,255,255,0.85); font-size: 11px; padding: 3px 8px; border-radius: 4px; font-family: var(--font-sans); letter-spacing: 0.05em; z-index: 4; }
.video-facade iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 10; }
.video-facade:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* Privacy consent */
.privacy-consent { display: flex; align-items: flex-start; gap: 0.6rem; font-size: 13px; color: var(--text-muted); line-height: 1.5; }
.privacy-consent input[type="checkbox"] { flex-shrink: 0; margin-top: 3px; width: 16px; height: 16px; accent-color: var(--gold); cursor: pointer; }
.privacy-consent label { font-size: 13px; color: var(--text-muted); line-height: 1.5; letter-spacing: normal; text-transform: none; margin: 0; cursor: pointer; font-weight: 400; }
.privacy-consent details { margin-top: 0.3rem; }
.privacy-consent details summary { font-size: 12px; color: var(--gold-light); cursor: pointer; display: inline-block; }
.privacy-consent details summary:hover { text-decoration: underline; }
.privacy-consent details[open] summary { margin-bottom: 0.4rem; }
.privacy-consent details p { font-size: 12px; color: var(--text-muted); line-height: 1.6; margin: 0.3rem 0; }

/* Contact detail links (WhatsApp, tel, maps) */
.contact-detail a.contact-link { color: var(--text); font-size: 15px; text-decoration: none; transition: color var(--t-fast); }
.contact-detail a.contact-link:hover { color: var(--gold-light); }

/* Honeypot field — hidden from real users */
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* Form feedback states */
.form-feedback { display: none; padding: 1rem 1.25rem; border-radius: 10px; font-size: 15px; line-height: 1.5; margin-top: 0.5rem; }
.form-feedback.visible { display: block; animation: feedbackFadeIn 0.3s ease; }
.form-feedback.success { background: rgba(40,160,80,0.1); border: 0.5px solid rgba(40,160,80,0.3); color: #7de0a0; }
.form-feedback.error { background: rgba(224,125,125,0.08); border: 0.5px solid rgba(224,125,125,0.3); color: #e8a0a0; }
.form-feedback strong { display: block; font-family: var(--font-display); font-size: 16px; font-weight: 600; margin-bottom: 0.3rem; font-feature-settings: "kern" 1, "liga" 1, "dlig" 1, "onum" 1, "calt" 1; font-variant-numeric: oldstyle-nums; }
@keyframes feedbackFadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* Loading spinner inside submit button */
.submit-btn.is-loading { position: relative; color: transparent; pointer-events: none; }
.submit-btn.is-loading::after {
  content: ''; position: absolute; top: 50%; left: 50%;
  width: 16px; height: 16px; margin: -8px 0 0 -8px;
  border: 2px solid rgba(26,16,0,0.25); border-top-color: #1a1000;
  border-radius: 50%; animation: submitSpin 0.7s linear infinite;
}
@keyframes submitSpin { to { transform: rotate(360deg); } }


/* PRELOADER */
/* No entry animation on body — fonts are preloaded above, the swap is imperceptible. */



/* SKIP TO CONTENT */
.skip-link { position: absolute; top: -100%; left: 1rem; background: var(--gold); color: #1a1000; padding: 0.5rem 1rem; border-radius: 0 0 8px 8px; font-size: 15px; font-weight: 500; z-index: 200; text-decoration: none; }
.skip-link:focus { top: 0; }

/* FOCUS RING — targeted to interactive elements only */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
summary:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 4px;
  transition: outline-offset 0.15s ease, outline-color 0.15s ease;
}
/* Form fields: use border color change instead of outline (more elegant) */
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: none;
  border-color: var(--gold);
}
/* Buttons that are already gold — brighten outline for contrast */
.video-facade-play:focus-visible,
.back-to-top:focus-visible {
  outline-color: var(--gold-light);
}

/* HAMBURGER MENU */
.nav-toggle { display: none; background: none; border: 0.5px solid var(--border); border-radius: 8px; padding: 6px 10px; cursor: pointer; color: var(--gold-light); font-size: 20px; line-height: 1; }
@media (max-width: 768px) {
  .nav-toggle { display: block; }
  .nav-links { display: none; width: 100%; flex-direction: column; gap: 0.5rem; padding-top: 0.75rem; border-top: 0.5px solid var(--border); }
  .nav-links.open { display: flex; }
  .nav-links a { padding: 0.5rem 0; font-size: 16px; }
}

/* (carousel counter removed — oracle uses .quote-oracle-counter) */

/* UTILITY CLASSES (extracted from inline styles) */
.evento-card { background:var(--surface); border:0.5px solid var(--border); border-radius:12px; padding:0.9rem 1.25rem; display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.evento-data { text-align:center; min-width:38px; }
.evento-giorno { font-family:var(--font-display); font-size:22px; font-weight:500; color:var(--gold-light); line-height:1; font-variant-numeric: lining-nums tabular-nums; font-feature-settings: "kern" 1, "lnum" 1, "tnum" 1; }
.evento-mese { font-size: 11px; text-transform:uppercase; letter-spacing:0.12em; color:var(--text-muted); }
.evento-vline { width:0.5px; height:32px; background:var(--border); flex-shrink:0; }
.evento-titolo { font-size: 16px; font-weight:500; color:var(--text); }
.evento-dettaglio { font-size: 13px; color:var(--text-muted); }

/* Body text reusable */
.body-text { font-size: 17px; color:var(--text-reading); line-height:1.8; max-width: 68ch; }
.body-text + .body-text, .body-text.mt-125 { margin-top: 1.5rem; }
.body-text-sm { font-size: 16px; color:var(--text-reading); line-height:1.75; }
.body-text-xs { font-size: 13px; color:var(--text-muted); }
.body-text-xxs { font-size: 12px; color:var(--text-muted); }
.text-center { text-align:center; }
.text-gold { color:var(--gold); }
.text-gold-light { color:var(--gold-light); }
.mb-1 { margin-bottom:1rem; }
.mt-1 { margin-top:1rem; }
.mt-125 { margin-top:1.25rem; }
.mt-15 { margin-top:1.5rem; }
.mt-2 { margin-top:2rem; }

/* Serif display heading (used inline in Libro, Conduttori, Footer) */
.serif-heading-sm { font-family:var(--font-display); font-size:16px; font-weight:600; color:var(--text); margin-bottom:0.2rem; }
.serif-footer { font-family:var(--font-display); color:rgba(201,151,58,0.85); font-size:16px; }

/* Archetipi planetari */
.archetype-row { display:flex; gap:0.75rem; align-items:flex-start; padding:0.75rem 0; border-top:0.5px solid rgba(201,151,58,0.12); }
.archetype-symbol { font-size:20px; flex-shrink:0; padding-left:8px; }
.archetype-symbol-urano { border-left:3px solid #c9973a; }
.archetype-symbol-nettuno { border-left:3px solid #b49fe0; }
.archetype-symbol-plutone { border-left:3px solid #e07d7d; }
.em-urano { color:rgba(232,201,122,0.95); }
.em-nettuno { color:rgba(180,159,224,0.95); }
.em-plutone { color:rgba(224,125,125,0.95); }

/* Conduttori: bio card layout */
.teacher-bio { font-size: 16px; color:var(--text-reading); line-height:1.8; margin-bottom:0.75rem; }

/* Bio detail card */
.bio-divider { height:0.5px; background:linear-gradient(90deg,transparent,rgba(201,151,58,0.3),transparent); margin:1rem 0; }

/* Esperienziali banner */
.esp-banner { background:rgba(201,151,58,0.07); border:0.5px solid rgba(201,151,58,0.35); border-radius:14px; padding:1.1rem 1.4rem; display:flex; gap:0.75rem; align-items:flex-start; margin-top:10px; }
.esp-banner-title { font-size: 16px; font-weight:500; color:var(--gold-light); margin-bottom:0.3rem; }
.anno-tab-esp { border-color:rgba(201,151,58,0.5); color:var(--gold-light); }
.percorso-blocks { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin: 1.75rem 0 2.5rem; }
.percorso-block { padding: 1.5rem 1.75rem; border-left: 2px solid rgba(201,151,58,0.3); }
.percorso-block-label { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); font-weight: 600; margin-bottom: 0.85rem; }
@media (max-width: 640px) { .percorso-blocks { grid-template-columns: 1fr; gap: 1rem; } }

/* Presentazioni list */
.pres-list { display:flex; flex-direction:column; gap:8px; }

/* Chi siamo: separatore ornamentale sotto il titolo */
#chi-siamo .section-sub {
  position: relative;
  padding-bottom: 1.75rem;
  margin-bottom: 0.25rem;
}
#chi-siamo .section-sub::after {
  content: '';
  display: block;
  position: absolute;
  bottom: 0; left: 0;
  width: 52px; height: 1.5px;
  background: linear-gradient(90deg, var(--gold) 0%, transparent 100%);
  opacity: 0.55;
}

/* Section blockquote (chi siamo) */
.section-blockquote {
  margin: 2rem 0;
  padding: 1.4rem 1.75rem 1.4rem 1.5rem;
  border-left: 3.5px solid var(--gold);
  font-family: var(--font-display);
  font-size: 19px;
  font-style: italic;
  line-height: 1.72;
  color: var(--gold-light);
  background: rgba(201,151,58,0.04);
  border-radius: 0 10px 10px 0;
  position: relative;
}
.section-blockquote::before {
  content: '◆  ◆  ◆';
  position: absolute;
  top: -0.6rem;
  left: 1.25rem;
  background: var(--bg);
  padding: 0 0.5rem;
  font-size: 7px;
  line-height: 1;
  color: var(--gold);
  opacity: 0.65;
  letter-spacing: 0.12em;
  font-style: normal;
}

/* Footer elements */
.footer-copyright { margin-top:0.75rem; font-size: 12px; opacity:0.7; }

/* SVG inline icons */
.icon-svg { width:1em; height:1em; fill:currentColor; vertical-align:-0.125em; flex-shrink:0; }
.icon-svg-lg { width:20px; height:20px; }
.contact-detail-icon .icon-svg { width:18px; height:18px; }
.footer-social a .icon-svg { width:20px; height:20px; }

/* Remaining utilities */
.flex-1 { flex:1; }
.icon-lg { font-size:20px; flex-shrink:0; }
.narrow-text { max-width:680px; margin:0 auto; }
.anno-tabs-wrap { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:1.25rem; }
.serif-footer-motto { margin-top:0.3rem; }
.serif-footer-quote { margin-top:0.75rem; font-style:italic; }

/* GIOCHI — griglia e card */
.giochi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.giochi-grid-lg{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.gioco-card{text-decoration:none;color:inherit;display:flex;align-items:center;gap:14px;padding:18px 20px;position:relative}
.gioco-card-lg{text-decoration:none;color:inherit;display:flex;align-items:center;gap:14px;padding:20px 22px;position:relative}
/* Sigillo conquistato sulla card del gioco */
.card-sigillo{position:absolute;top:8px;right:10px;font-size:14px;color:var(--gold-light);text-shadow:0 0 10px rgba(232,201,122,0.5);pointer-events:none}
.gioco-icon{width:28px;height:28px;flex-shrink:0;filter:brightness(0) saturate(100%) invert(72%) sepia(50%) saturate(500%) hue-rotate(5deg)}
.gioco-icon-lg{width:36px;height:36px;flex-shrink:0;filter:brightness(0) saturate(100%) invert(72%) sepia(50%) saturate(500%) hue-rotate(5deg)}
.gioco-title{color:var(--gold-light);font-size:1.05rem}
.gioco-title-lg{color:var(--gold-light);font-size:1.1rem}
.gioco-sub{color:var(--text-muted);font-size:.85rem;line-height:1.45}
.gioco-sub-lg{color:var(--text-muted);font-size:.87rem;line-height:1.45}

/* BIO TAGS */
.bio-tag { font-size: 11px; padding:3px 10px; border-radius:999px; letter-spacing:0.03em; white-space:nowrap; }
.tag-ermetica { background:rgba(201,151,58,0.12); color:var(--gold-light); border:0.5px solid rgba(201,151,58,0.3); }
/* Forza un a-capo: i badge dorati occupano l'intera larghezza disponibile del loro "slot" */
.tag-olistica { background:rgba(123,94,167,0.12); color:#b49fe0; border:0.5px solid rgba(123,94,167,0.25); }
.tag-coaching { background:rgba(40,160,80,0.1); color:#7de0a0; border:0.5px solid rgba(40,160,80,0.25); }
.tag-studio { background:rgba(255,255,255,0.04); color:var(--text-muted); border:0.5px solid rgba(255,255,255,0.1); }

/* SECTION VISUAL VARIATION — full-width bands */
.section-band {
  position:relative; width:100vw; margin-left:calc(-50vw + 50%);
  padding:5rem 2rem; max-width:none;
}
.section-band::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(201,151,58,0.03) 0%, rgba(201,151,58,0.06) 50%, rgba(201,151,58,0.03) 100%);
  pointer-events:none; z-index:0;
}
.section-band > * { position:relative; z-index:1; max-width:900px; margin-left:auto; margin-right:auto; }

/* ANIMATED BACKGROUND — rimossa per coerenza visiva */
/* bg-drift animation rimossa per coerenza visiva */

/* Rispetta le preferenze utente per il moto ridotto */
@media (prefers-reduced-motion: reduce) {
  /* Disable all motion globally — WCAG-recommended pattern */
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .hero-emblem { animation: none; }
  .hero::before { animation: none; }
  .sr { transition: none; opacity: 1; transform: none; }
  .sr-stagger > * { transition: none; opacity: 1; transform: none; }
}

/* ENHANCED FOOTER */
.footer-inner {
  max-width: 720px; margin: 0 auto;
  position: relative;
  padding: 2.5rem 2rem;
  border: 0.5px solid rgba(201,151,58,0.2);
  border-radius: 6px;
}
.footer-inner::before {
  content: ''; position: absolute;
  inset: 6px; border-radius: 3px;
  border: 0.5px solid rgba(201,151,58,0.1);
  pointer-events: none;
}
.footer-inner > * { position: relative; z-index: 1; }
.footer-links { display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:center; margin-bottom:0; }
.footer-links a { font-size: 12px; color:var(--text-muted); text-decoration:none; letter-spacing:0.14em; transition: color var(--t-fast); text-transform: uppercase; font-family: var(--font-sans); }
.footer-links a:hover { color:var(--gold-light); }
.footer-social { display:flex; gap:14px; justify-content:center; margin-top:1.25rem; }
.footer-social a { display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:transparent; border:0.5px solid rgba(201,151,58,0.3); color:var(--gold); font-size: 16px; text-decoration:none; transition: all 0.2s; }
.footer-social a:hover { background:rgba(201,151,58,0.08); border-color:var(--gold); color:var(--gold-light); }

/* COOKIE BANNER — GDPR / ePrivacy */
.cookie-banner {
  position: fixed;
  bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
  left: 50%; transform: translateX(-50%);
  z-index: 9999;
  max-width: 560px; width: calc(100% - 2rem);
  background: rgba(13, 11, 26, 0.97);
  backdrop-filter: blur(16px);
  border: 0.5px solid var(--border-hover);
  border-radius: 14px;
  padding: 1.25rem 1.4rem;
  box-shadow: 0 12px 40px rgba(0,0,0,0.45), 0 0 0 1px rgba(201,151,58,0.08);
  font-family: var(--font-sans);
  animation: cookieSlideUp 0.4s ease;
}
.cookie-banner::before {
  content: ''; position: absolute;
  inset: 6px; border-radius: 9px;
  border: 0.5px solid rgba(201,151,58,0.12);
  pointer-events: none;
}
.cookie-banner > * { position: relative; z-index: 1; }
.cookie-banner-title {
  font-family: var(--font-display); font-size: 17px; font-weight: 500;
  color: var(--gold-light); margin-bottom: 0.4rem; letter-spacing: 0.01em;
  display: flex; align-items: center; gap: 0.5rem;
}
.cookie-banner-title::before {
  content: '◆'; font-size: 8px; color: var(--gold); opacity: 0.7;
}
.cookie-banner p {
  font-size: 14px; color: var(--text-muted); line-height: 1.6;
  margin-bottom: 1rem; letter-spacing: 0;
}
.cookie-banner p a { color: var(--gold-light); text-decoration: underline; text-underline-offset: 2px; }
.cookie-banner p a:hover { color: var(--gold); }
.cookie-actions { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.cookie-btn {
  flex: 1; min-width: 110px;
  padding: 0.7rem 1.25rem;
  border-radius: 999px;
  font-family: var(--font-sans); font-size: 13px; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase;
  cursor: pointer; transition: opacity 0.2s, transform 0.2s, background 0.2s, border-color 0.2s;
  text-decoration: none; text-align: center;
  border: none;
}
.cookie-btn-accept {
  background: linear-gradient(135deg, var(--gold) 0%, #a8782a 100%);
  color: #1a1000;
}
.cookie-btn-accept:hover { opacity: 0.88; transform: translateY(-1px); }
.cookie-btn-reject {
  background: transparent;
  border: 0.5px solid var(--border-hover);
  color: var(--gold-light);
}
.cookie-btn-reject:hover { background: rgba(201,151,58,0.08); }
@keyframes cookieSlideUp {
  from { opacity: 0; transform: translate(-50%, 20px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}
/* tema chiaro */
[data-theme="light"] .cookie-banner {
  background: rgba(245, 240, 232, 0.97);
  border-color: rgba(120, 90, 30, 0.3);
}
[data-theme="light"] .cookie-banner-title { color: #7a5a14; }
[data-theme="light"] .cookie-btn-reject { color: #7a5a14; border-color: rgba(120,90,30,0.4); }
@media (max-width: 480px) {
  .cookie-banner { padding: 1rem 1.1rem; }
  .cookie-actions { flex-direction: column; }
  .cookie-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .cookie-banner { animation: none; }
}

/* WHATSAPP STICKY (mobile only) */
.wa-sticky {
  position:fixed;
  bottom:calc(1.25rem + env(safe-area-inset-bottom, 0px));
  right:calc(1.25rem + env(safe-area-inset-right, 0px));
  z-index:90;
  width:52px; height:52px; border-radius:50%;
  background:linear-gradient(135deg,#25d366,#128c7e);
  border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 16px rgba(37,211,102,0.35);
  transition:transform 0.2s, box-shadow 0.2s;
  text-decoration:none;
}
.wa-sticky:hover { transform:scale(1.08); box-shadow:0 6px 24px rgba(37,211,102,0.45); }
.wa-sticky svg { width:26px; height:26px; fill:#fff; }
@media (min-width:769px) { .wa-sticky { display:none; } }

/* BACK TO TOP */
.back-to-top {
  position:fixed;
  bottom:calc(1.25rem + env(safe-area-inset-bottom, 0px));
  right:calc(1.25rem + env(safe-area-inset-right, 0px));
  z-index:9998;
  width:44px; height:44px; border-radius:50%;
  background:rgba(13,11,26,0.95); border:1px solid var(--gold);
  color:var(--gold-light); font-size:20px; line-height:1;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; opacity:0; pointer-events:none;
  transition:opacity 0.3s, transform 0.2s, background 0.2s, border-color 0.2s;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
.back-to-top.visible { opacity:1; pointer-events:auto; }
/* Hover effects only on devices with real hover capability (desktop with mouse) */
@media (hover: hover) {
  .back-to-top:hover { background:var(--surface-hover); border-color:var(--gold-light); transform:translateY(-2px); }
}
/* Tactile feedback on click/tap */
.back-to-top:active { transform:scale(0.92); transition:transform 0.1s; }
/* On mobile, lift the back-to-top above the WhatsApp sticky (52px + 12px gap) */
@media (max-width:768px) {
  .back-to-top {
    bottom:calc(1.25rem + 52px + 12px + env(safe-area-inset-bottom, 0px));
  }
}

/* SCROLL REVEAL */
.sr { opacity:0; transform:translateY(24px); transition:opacity 0.7s ease, transform 0.7s ease; }
.sr.visible { opacity:1; transform:translateY(0); }

/* SCROLL REVEAL STAGGER — figli di un contenitore appaiono in sequenza */
.sr-stagger > * { opacity:0; transform:translateY(16px); transition:opacity 0.5s ease, transform 0.5s ease; }
.sr-stagger.visible > * { opacity:1; transform:translateY(0); }
.sr-stagger.visible > *:nth-child(1) { transition-delay:0ms; }
.sr-stagger.visible > *:nth-child(2) { transition-delay:80ms; }
.sr-stagger.visible > *:nth-child(3) { transition-delay:160ms; }
.sr-stagger.visible > *:nth-child(4) { transition-delay:240ms; }
.sr-stagger.visible > *:nth-child(5) { transition-delay:320ms; }
.sr-stagger.visible > *:nth-child(6) { transition-delay:400ms; }
.sr-stagger.visible > *:nth-child(7) { transition-delay:480ms; }
.sr-stagger.visible > *:nth-child(8) { transition-delay:560ms; }

/* FOOTER — epigrafe finale */
footer {
  background: rgba(0,0,0,0.55);
  border-top: 0.5px solid var(--border);
  color: var(--text-muted);
  text-align: center;
  padding: 4rem 2rem 2.5rem;
  position: relative;
}
.footer-logo {
  font-family: var(--font-display); font-size: 24px; font-weight: 600;
  color: var(--gold-light); margin-bottom: 0.4rem;
  letter-spacing: 0.02em;
}
footer p { font-size: 15px; line-height: 1.72; letter-spacing: 0; }
footer a { color: var(--text-muted); text-decoration: none; transition: color var(--t-fast); }
footer a:hover { color: var(--gold-light); }

/* Footer seal — sigillo epigrafico in alto */
.footer-seal {
  width: 56px; height: 56px; margin: 0 auto 1.5rem;
  border-radius: 50%;
  border: 0.5px solid rgba(201,151,58,0.45);
  display: flex; align-items: center; justify-content: center;
  color: var(--gold);
  font-size: 20px; line-height: 1;
  box-shadow: 0 0 0 4px rgba(13,11,26,1), 0 0 0 5px rgba(201,151,58,0.18);
}

/* Footer rule — versione sottile dell'epigraphic-rule */
.footer-rule {
  display: flex; align-items: center; gap: 0.85rem;
  margin: 1.5rem auto;
  max-width: 280px;
  color: var(--gold); opacity: 0.55;
}
.footer-rule::before, .footer-rule::after {
  content: ''; flex: 1; height: 0.5px;
  background: linear-gradient(90deg, transparent 0%, rgba(201,151,58,0.4) 50%, transparent 100%);
}
.footer-rule span {
  font-size: 6px; letter-spacing: 0.45em; line-height: 1;
  flex-shrink: 0;
}
.footer-divider { display: none; }

/* Greek motto (Γνῶθι Σεαυτόν) */
[lang="el"] {
  font-family: var(--font-display);
  font-feature-settings: "kern" 1, "liga" 1;
  letter-spacing: 0.02em;
}

/* SECTION DECORATIONS */

/* Sezione "Chi siamo" — starfield dorato */
section#chi-siamo {
  position: relative;
}
section#chi-siamo::before {
  content: '';
  position: absolute;
  inset: -2rem 0;
  background-image:
    radial-gradient(1.5px 1.5px at 12% 25%, rgba(232, 201, 122, 0.5), transparent),
    radial-gradient(1px 1px at 78% 18%, rgba(201, 151, 58, 0.4), transparent),
    radial-gradient(1.5px 1.5px at 88% 72%, rgba(232, 201, 122, 0.45), transparent),
    radial-gradient(1px 1px at 22% 85%, rgba(201, 151, 58, 0.35), transparent),
    radial-gradient(2px 2px at 55% 50%, rgba(232, 201, 122, 0.3), transparent),
    radial-gradient(1px 1px at 5% 55%, rgba(201, 151, 58, 0.35), transparent),
    radial-gradient(1.5px 1.5px at 65% 8%, rgba(232, 201, 122, 0.4), transparent),
    radial-gradient(1px 1px at 40% 95%, rgba(201, 151, 58, 0.3), transparent);
  pointer-events: none;
  z-index: 0;
}
section#chi-siamo > * { position: relative; z-index: 1; }

/* Sezione "Insegnamenti" — pull-quote centrale, nessuna decorazione di sfondo */
/* Aggiungo un bloccone centrale prima dei pillar */

/* Sezione "Libro" — fascia più calda, con riga oro doppia */
section#libro {
  position: relative;
}
section#libro::before,
section#libro::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: min(640px, 80%);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201, 151, 58, 0.5), transparent);
}
section#libro::before { top: 2rem; }
section#libro::after { bottom: 2rem; }

/* Sezione "Conduttori" — sfondo leggero caldo */
section#conduttori {
  position: relative;
}
section#conduttori::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 50%,
    rgba(123, 94, 167, 0.06) 0%,
    transparent 70%);
  pointer-events: none;
  z-index: 0;
}
section#conduttori > * { position: relative; z-index: 1; }

/* Sezione "Ispirazioni" — starfield più denso */
section#ispirazioni {
  position: relative;
}
section#ispirazioni::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(1.5px 1.5px at 10% 20%, rgba(232, 201, 122, 0.55), transparent),
    radial-gradient(1px 1px at 25% 50%, rgba(201, 151, 58, 0.4), transparent),
    radial-gradient(1px 1px at 45% 15%, rgba(232, 201, 122, 0.4), transparent),
    radial-gradient(1.5px 1.5px at 60% 80%, rgba(201, 151, 58, 0.45), transparent),
    radial-gradient(1px 1px at 75% 30%, rgba(232, 201, 122, 0.35), transparent),
    radial-gradient(1.5px 1.5px at 90% 70%, rgba(201, 151, 58, 0.4), transparent),
    radial-gradient(1px 1px at 15% 75%, rgba(232, 201, 122, 0.3), transparent),
    radial-gradient(1px 1px at 85% 10%, rgba(201, 151, 58, 0.35), transparent);
  pointer-events: none;
  z-index: 0;
}
section#ispirazioni > * { position: relative; z-index: 1; }

/* CARD DEPTH */
/* ==========================================================
   TIMELINE VERTICALE — calendario lezioni come cammino iniziatico
   ========================================================== */

/* Container: aggiunge la linea dorata verticale continua a sinistra */
.calendar-list::before {
  content: '';
  position: absolute;
  left: 1.25rem;
  top: 1.5rem;
  bottom: 1.5rem;
  width: 1px;
  background: linear-gradient(to bottom,
    transparent 0%,
    rgba(201, 151, 58, 0.5) 8%,
    rgba(201, 151, 58, 0.5) 92%,
    transparent 100%);
  pointer-events: none;
}
/* Ornamento al top della linea — rimosso (era ridondante con la prima gemma) */

/* Wrap lezione: gemma dorata sulla timeline (rombo + glow) */
.calendar-list .lesson-wrap {
  position: relative;
}
.calendar-list .lesson-wrap::before {
  content: '';
  position: absolute;
  left: -2.3rem;
  top: 1.55rem;
  width: 9px;
  height: 9px;
  background: var(--gold);
  transform: rotate(45deg);
  box-shadow:
    0 0 0 3px var(--bg, #0d0b1a),
    0 0 0 4px rgba(201, 151, 58, 0.4),
    0 0 14px rgba(201, 151, 58, 0.45);
  z-index: 2;
  transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}
.calendar-list .lesson-wrap:hover::before {
  transform: rotate(45deg) scale(1.3);
  background: var(--gold-light);
  box-shadow:
    0 0 0 3px var(--bg, #0d0b1a),
    0 0 0 5px rgba(232, 201, 122, 0.6),
    0 0 22px rgba(232, 201, 122, 0.75);
}
/* Lezione passata: gemma spenta */
.calendar-list .lesson-wrap:has(.event-row.passata)::before {
  background: rgba(201,151,58,0.35);
  box-shadow:
    0 0 0 3px var(--bg, #0d0b1a),
    0 0 0 4px rgba(201, 151, 58, 0.15);
}
/* Lezione in corso: gemma pulsante */
.calendar-list .lesson-wrap:has(.event-row.in-corso)::before {
  background: var(--gold-light);
  animation: gem-pulse 2.4s ease-in-out infinite;
}
@keyframes gem-pulse {
  0%, 100% {
    box-shadow:
      0 0 0 3px var(--bg, #0d0b1a),
      0 0 0 4px rgba(232, 201, 122, 0.4),
      0 0 14px rgba(232, 201, 122, 0.5);
  }
  50% {
    box-shadow:
      0 0 0 3px var(--bg, #0d0b1a),
      0 0 0 6px rgba(232, 201, 122, 0.7),
      0 0 28px rgba(232, 201, 122, 0.95);
  }
}

/* Numerazione romana grande a sinistra della card (sopra la timeline) */
.calendar-list .event-date {
  position: absolute;
  left: -2.9rem;
  top: 50%;
  transform: translateY(-50%);
  min-width: 0;
  text-align: left;
  pointer-events: none;
  z-index: 1;
}
/* Nascondiamo il contenuto originale del box data */
.calendar-list .event-date .event-day,
.calendar-list .event-date .event-month {
  display: none;
}
/* Pseudo-elemento con numero romano, generato via data attr sul lesson-wrap */
.calendar-list .lesson-wrap > .event-row::before {
  content: counter(lezione, upper-roman);
  position: absolute;
  left: -2.75rem;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 500;
  color: var(--gold-light);
  letter-spacing: 0.08em;
  opacity: 0;
  pointer-events: none;
  z-index: 3;
  background: var(--bg, #0a0806);
  padding: 2px 6px;
  border-radius: 4px;
}

/* La vline separatrice interna non serve più, la timeline fa il suo lavoro */
.calendar-list .event-vline {
  display: none;
}

/* Rimuovi tutti i badge di stato nell'anno 1 (prossima/in corso/passata) */
.calendar-list .badge {
  display: none;
}

/* Event-row riposizionato: relative, padding sinistro normale */
.calendar-list .event-row {
  position: relative;
  padding-left: 1.4rem;
}

/* Titoli lezione: numerazione romana inline dentro event-title */
.calendar-list .event-title {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  opacity: 0.85;
  margin-bottom: 4px;
}
.calendar-list .event-sub {
  font-size: 17px;
  font-style: normal;
  font-weight: 500;
  color: var(--text);
}



/* Rimuovi traslazione orizzontale hover (conflitto con pallino timeline) */
.calendar-list .event-row:hover,
.calendar-list .event-row.has-detail:hover {
  transform: none;
}

/* Microinterazione: filetto oro che scorre sotto event-row al hover */
.calendar-list .event-row::after {
  content: ''; position: absolute;
  left: 1.4rem; right: 1rem; bottom: 4px;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(201,151,58,0.7) 50%, transparent 100%);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.4s ease;
  pointer-events: none;
  z-index: 2;
}
.calendar-list .event-row:hover::after {
  transform: scaleX(1);
}

/* Mobile: timeline più stretta */
@media (max-width: 640px) {
  .calendar-list {
    padding-left: 2.5rem;
  }
  .calendar-list::before {
    left: 0.75rem;
  }
  .calendar-list .lesson-wrap::before {
    left: -1.85rem;
    width: 10px;
    height: 10px;
  }
}

/* Pannello esperienziali: stile dorato coerente */
#panel-anno-esp .calendar-list::before {
  background: linear-gradient(to bottom,
    transparent 0%,
    rgba(201, 151, 58, 0.5) 8%,
    rgba(201, 151, 58, 0.5) 92%,
    transparent 100%);
}
#panel-anno-esp .ev-num-esp {
  display: none;
}
#panel-anno-esp .event-date-esp {
  display: none;
}
#panel-anno-esp .event-vline-esp {
  display: none;
}
/* Esperienziali non hanno numerazione */
#panel-anno-esp .calendar-list .event-date p {
  display: none;
}


/* ── ARMONIZZAZIONE GLOBALE ── */

/* section-eyebrow con glifo ✦ come sotto-label interno alle sezioni */
.section-eyebrow .roman { min-width: 1.2em; text-align: center; }

/* section-label-small → allineato al sistema eyebrow */
.section-label-small {
  font-size: 11px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--gold); margin-bottom:0.75rem;
  display: flex; align-items: center; gap: 0.5rem;
}
.section-label-small::before {
  content: ''; display: block; width: 24px; height: 0.5px;
  background: linear-gradient(90deg, transparent, rgba(201,151,58,0.5));
  flex-shrink: 0;
}

/* card-body: leggero upgrade per leggibilità */
.card-body { font-size: 16px; color: var(--text-reading); line-height: 1.78; letter-spacing: 0; }

/* pillar-card: stessa dimensione testo del card-body */
.pillar-list li { font-size: 16px; color: var(--text-reading); line-height: 1.78; padding: 0.5rem 0; border-bottom: 0.5px solid rgba(201,151,58,0.07); letter-spacing: 0; }

/* contact-info h3 → già rimosso, ma preveniamo stili orfani */
.contact-info .section-eyebrow { margin-bottom: 0.75rem; }

/* footer: più aria sopra i contatti */
.footer-inner > p:first-of-type { margin-top: 0.5rem; }

/* Definizioni Ricchezza/Abbondanza/Mission: responsive */
@media (max-width: 640px) {
  #libro .about-grid .glass-card > div { grid-template-columns: 1fr !important; }
}


/* Classi generate dinamicamente dal JS */
.ev-num { font-size: 18px; color: #b49fe0; text-align: center; }
.ev-num-esp { font-size: 20px; color: var(--gold-light); text-align: center; }
.event-row-esp {
  opacity: 0.9;
  border-color: rgba(201,151,58,0.3);
}
.event-vline-esp { background: rgba(201,151,58,0.3); }
.event-date-esp { min-width: 32px; }
.detail-pill-esp {
  background: rgba(201,151,58,0.12);
  color: var(--gold-light);
  border-color: rgba(201,151,58,0.3);
}

/* Griglia 3 definizioni (Ricchezza, Abbondanza, Mission) */
.three-defs-grid { display:grid; grid-template-columns: 1fr 1fr 1fr; gap: 1.5rem; }
@media(max-width:640px){
  .three-defs-grid { grid-template-columns: 1fr; gap: 0; }
  .three-defs-grid > div { padding: 1.25rem 0; border-bottom: 0.5px solid rgba(201,151,58,0.15); }
  .three-defs-grid > div:last-child { border-bottom: none; padding-bottom: 0; }
  .three-defs-grid > div:first-child { padding-top: 0; }
}


/* ============================================================
   SFONDO — texture noise + vignetta (aggiunta automatica)
   Solo additivo: nessuna regola esistente sovrascritta.
   ============================================================ */

/* Noise sottile (~4% opacità) — usa body::after che è libero */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.04;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 0.85 0 0 0 0 0.55 0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size: 200px 200px;
  mix-blend-mode: overlay;
}

/* Vignetta radiale + sussurro d'oro caldo in alto — usa html::before (libero) */
html::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(ellipse at center, transparent 0%, transparent 45%, rgba(0,0,0,0.35) 100%),
    radial-gradient(ellipse at top, rgba(201,151,58,0.04) 0%, transparent 50%);
}

/* Tema chiaro: vignetta più tenue, niente bagliore d'oro (già pergamena) */
[data-theme="light"] body::after { opacity: 0.025; mix-blend-mode: multiply; }
[data-theme="light"] html::before {
  background: radial-gradient(ellipse at center, transparent 0%, transparent 50%, rgba(120,90,30,0.15) 100%);
}

/* ===== ANNUNCIO SEMINARIO ESTIVO ===== */
.seminar-announce{position:relative;background:linear-gradient(135deg,rgba(201,151,58,0.14),rgba(201,151,58,0.06));border-bottom:0.5px solid rgba(201,151,58,0.4);padding:0.55rem 2.8rem 0.55rem 1rem;text-align:center;font-size:13.5px;color:var(--text);}
.seminar-announce>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media (max-width: 480px){ .seminar-announce>span{white-space:normal;overflow:visible;} }
.seminar-announce a.seminar-announce-link{color:var(--gold-light);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(201,151,58,0.5);}
.seminar-announce a.seminar-announce-link:hover{color:var(--gold);}
.seminar-announce strong{color:var(--gold-light);font-weight:600;}
.seminar-announce-close{position:absolute;right:0.9rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:20px;line-height:1;cursor:pointer;padding:0.2rem 0.4rem;border-radius:6px;}
.seminar-announce-close:hover{color:var(--gold-light);background:rgba(201,151,58,0.1);}
[data-theme="light"] .seminar-announce{background:linear-gradient(135deg,rgba(129,96,24,0.12),rgba(129,96,24,0.05));border-bottom-color:rgba(129,96,24,0.35);}

/* ===== COUNTDOWN EVENTI ===== */
.seminar-countdown{display:inline-flex;align-items:center;gap:0.5rem;margin-bottom:1rem;flex-wrap:wrap}
.countdown-number{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:58px;padding:7px 11px;background:rgba(201,151,58,0.08);border:0.5px solid rgba(201,151,58,0.35);border-radius:10px}
.countdown-value{font-family:var(--font-display);font-size:32px;font-weight:600;color:var(--gold-light);line-height:1.1;font-variant-numeric:tabular-nums}
.countdown-label{font-family:var(--font-sans);font-size:10px;font-weight:500;color:var(--gold);letter-spacing:0.1em;text-transform:uppercase;opacity:0.8}
.countdown-sep{font-family:var(--font-display);font-size:20px;color:var(--gold);opacity:0.4;margin:0 2px}
.countdown-tag{display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-sans);font-size:12px;font-weight:500;color:var(--gold-light);letter-spacing:0.06em;margin-left:0.75rem;padding:4px 12px;border-radius:999px;background:rgba(201,151,58,0.1);border:0.5px solid rgba(201,151,58,0.25)}
.countdown-tag .pulse-dot{width:6px;height:6px;border-radius:50%;background:#7de0a0;animation:cd-pulse 2s ease-in-out infinite}
@keyframes cd-pulse{0%,100%{box-shadow:0 0 0 0 rgba(125,224,160,0.4)}50%{box-shadow:0 0 0 4px rgba(125,224,160,0.1)}}
.countdown-urgent .countdown-number{background:rgba(220,80,60,0.08);border-color:rgba(220,80,60,0.4)}
.countdown-urgent .countdown-value{color:#f0a090}
.countdown-urgent .countdown-label{color:#e07060}
.countdown-urgent .countdown-tag{background:rgba(220,80,60,0.1);border-color:rgba(220,80,60,0.3);color:#f0a090}
.countdown-urgent .pulse-dot{background:#f07060}
.countdown-past .countdown-tag{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.08);color:var(--text-muted)}
@media(max-width:480px){.countdown-number{min-width:44px;padding:5px 8px}.countdown-value{font-size:22px}.countdown-tag{margin-left:0;margin-top:0.5rem}}
[data-theme="light"] .countdown-number{background:rgba(201,151,58,0.06)}
[data-theme="light"] .countdown-urgent .countdown-number{background:rgba(220,80,60,0.06)}

/* ===== SEZIONE SEMINARIO ===== */
.seminar-section{background:rgba(201,151,58,0.04);border:0.5px solid rgba(201,151,58,0.3);border-radius:16px;padding:2rem;margin:0 auto;max-width:760px;display:flex;flex-direction:column;align-items:center;gap:1.8rem;}
@media(max-width:768px){.seminar-section{gap:1.5rem;padding:1.4rem;}}
.seminar-flyer{width:100%;display:flex;justify-content:center;}
.seminar-flyer img{width:100%;max-width:400px;height:auto;border-radius:8px;border:1px solid var(--border-hover);padding:10px;background:var(--surface);box-shadow:var(--card-shadow);display:block;}
.seminar-content{width:100%;}
.seminar-content h3{font-family:var(--font-display);color:var(--gold-light);font-size:24px;margin-bottom:0.3rem;line-height:1.25;}
.seminar-content .seminar-sub{font-style:italic;color:var(--text-muted);font-size:15px;margin-bottom:1.1rem;}
.seminar-questions{list-style:none;padding:0;margin:0 0 1.2rem;}
.seminar-questions li{position:relative;padding-left:1.5rem;margin-bottom:0.55rem;font-size:15px;color:var(--text);line-height:1.5;}
.seminar-questions li::before{content:"\2728";position:absolute;left:0;top:0;font-size:13px;}
.seminar-details{border-top:0.5px solid rgba(201,151,58,0.25);padding-top:1.1rem;font-size:14.5px;line-height:1.7;}
.seminar-details .seminar-detail-row{display:flex;gap:0.5rem;margin-bottom:0.35rem;justify-content:center;text-align:center;}
.seminar-details .seminar-detail-icon{flex-shrink:0;}
.seminar-prices{margin:0.9rem 0 0;padding:0.8rem 1rem;background:rgba(201,151,58,0.06);border-radius:10px;font-size:14px;}
.seminar-prices .price-line{margin-bottom:0.3rem;}
.seminar-prices .price-line:last-child{margin-bottom:0;}
.seminar-cta{display:inline-block;margin-top:1.2rem;}
.seminar-content .seminar-cta-wrap{text-align:center;}
.seminar-badge{display:inline-block;background:rgba(201,151,58,0.15);border:0.5px solid rgba(201,151,58,0.4);color:var(--gold-light);font-size:11.5px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;padding:0.3rem 0.7rem;border-radius:999px;margin-bottom:0.7rem;}
[data-theme="light"] .seminar-badge{background:rgba(129,96,24,0.12);border-color:rgba(129,96,24,0.35);color:#816018;}


/* Contatore del lightbox gallery (markup ricostruito da app.js) */
.lightbox-counter{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;letter-spacing:0.08em;opacity:0.85;}
