@font-face{font-family:'Gelasio';src:url('/assets/fonts/gelasio-normal.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:'Gelasio';src:url('/assets/fonts/gelasio-italic.woff2') format('woff2');font-style:italic;font-weight:400 700;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('/assets/fonts/cormorant-normal.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('/assets/fonts/cormorant-italic.woff2') format('woff2');font-style:italic;font-weight:400 700;font-display:swap}
@font-face{font-family:'Marcellus';src:url('/assets/fonts/marcellus-normal.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}


/* tokens/fonts.css */
/* ============================================================
   GIGLIO DE DEA — WEBFONTS
   The brand is set entirely in Georgia — a transitional serif
   with sturdy, legible forms suited to dense legal prose.
   Georgia is preinstalled on most systems; where it is not,
   we load GELASIO, a metric-compatible Georgia substitute, so
   line breaks and measure stay identical.

   ⚠ SUBSTITUTION: Gelasio (Google Fonts) stands in for Georgia
   on systems lacking it. If you have a licensed webfont build
   of Georgia, drop the binaries in assets/fonts/ and replace
   the @import below with local @font-face rules.
   ============================================================ */



/* ============================================================
   DISPLAY \u2014 Cormorant Garamond
   A refined, high-contrast Garamond for the premium/marketing
   surfaces: hero headlines, section titles, the wordmark. Almost
   heraldic at large sizes; pairs with Georgia for body. Used only
   on web/marketing \u2014 the document system stays all-Georgia.
   ============================================================ */


/* tokens/colors.css */
/* ============================================================
   GIGLIO DE DEA — COLOR TOKENS
   A document-first identity. One blue does the work: the
   "blu giglio" of the fleur-de-lis (#1F4E79). Deep ink for
   text, slate for meta, a single pale tint for table fills.
   No accent colors — gravitas comes from restraint.
   ============================================================ */

:root {
  /* ---- Brand blue ramp (anchored on the logo navy #1F4E79) ---- */
  --blu-50:  #F2F6FB;
  --blu-100: #E3EAF4;
  --blu-150: #EEF2F7;   /* the document table-fill tint */
  --blu-200: #C6D5E7;
  --blu-300: #9DB6D2;
  --blu-400: #5A82AE;
  --blu-500: #2E6098;   /* lighter navy — links, hover */
  --blu-600: #1F4E79;   /* PRIMARY — blu giglio, the logo blue */
  --blu-700: #1A4267;
  --blu-800: #143251;   /* press / deep panels */
  --blu-900: #1F2A44;   /* ink navy — titles, amounts */

  /* ---- Neutral ink & slate ---- */
  --ink-900: #1F2A44;   /* deepest text */
  --ink-800: #2C3650;
  --slate-600: #4B5563;
  --slate-500: #6B7280;  /* captions, footer, metadata */
  --slate-400: #9CA3AF;
  --line-300:  #D4DCE6;  /* hairline borders */
  --line-200:  #E6EBF1;
  --paper-50:  #FCFCFD;  /* off-white page */
  --white:     #FFFFFF;

  /* ============================================================
     PREMIUM INSTITUTIONAL LAYER (marketing / web)
     Blu notte + avorio + oro discreto. Sits ALONGSIDE the navy
     document system above — adds depth and a refined accent
     without replacing it. Boutique-advisory register.
     ============================================================ */

  /* ---- Blu notte — deep midnight, the premium ground ---- */
  --notte-900: #0B1526;   /* deepest — hero grounds, footer */
  --notte-800: #0F1E38;   /* primary blu notte */
  --notte-700: #16294B;   /* raised panels on dark */
  --notte-600: #1F345C;
  --notte-hairline: rgba(199,169,104,0.28); /* gold hairline on dark */

  /* ---- Avorio / panna — warm ivory paper ---- */
  --avorio-50:  #FBF8F1;  /* lightest panna */
  --avorio-100: #F6F1E6;  /* primary ivory page */
  --avorio-200: #EFE7D6;  /* sunken ivory / cards */
  --avorio-300: #E4D8C0;  /* ivory borders */
  --avorio-line: #DACFB8;

  /* ---- Oro discreto — antique, muted gold (never bright yellow) ---- */
  --oro-700: #6F5426;   /* deep — text on ivory (scurito per contrasto AA) */
  --oro-600: #A6824A;   /* primary gold */
  --oro-500: #C0A062;   /* lighter — on dark grounds */
  --oro-300: #D8C291;   /* faint — hairlines, glints */
  --oro-100: #EFE4CB;   /* gold wash fill */

  /* ---- Semantic status (used sparingly, legal register) ---- */
  --positive-600: #2F6E4F;
  --positive-100: #E4EFE8;
  --caution-600:  #9A6B16;
  --caution-100:  #F5ECD9;
  --critical-600: #97362E;
  --critical-100: #F3E2E0;

  /* ============================================================
     SEMANTIC ALIASES — reference these in components
     ============================================================ */
  --color-primary:        var(--blu-600);
  --color-primary-hover:  var(--blu-500);
  --color-primary-press:  var(--blu-800);
  --color-primary-tint:   var(--blu-150);

  --text-primary:   var(--ink-900);
  --text-heading:   var(--blu-600);
  --text-body:      var(--ink-800);
  --text-muted:     var(--slate-500);
  --text-faint:     var(--slate-400);
  --text-on-dark:   var(--white);
  --text-link:      var(--blu-600);

  --surface-page:   var(--white);
  --surface-paper:  var(--paper-50);
  --surface-tint:   var(--blu-150);
  --surface-sunken: var(--blu-50);
  --surface-dark:   var(--blu-600);
  --surface-ink:    var(--ink-900);

  --border-default: var(--line-300);
  --border-subtle:  var(--line-200);
  --border-strong:  var(--blu-600);
  --border-ink:     var(--ink-900);

  --focus-ring:     var(--blu-500);

  /* ============================================================
     PREMIUM SEMANTIC ALIASES — reference on web/marketing
     ============================================================ */
  --color-accent:        var(--oro-600);
  --color-accent-bright: var(--oro-500);
  --color-accent-deep:   var(--oro-700);

  --surface-night:    var(--notte-800);
  --surface-night-deep: var(--notte-900);
  --surface-ivory:    var(--avorio-100);
  --surface-ivory-raised: var(--avorio-50);
  --surface-ivory-sunken: var(--avorio-200);

  --text-on-night:       #F3EDE0;          /* warm ivory text on midnight */
  --text-on-night-muted: rgba(243,237,224,0.62);
  --text-on-ivory:       var(--notte-800);
  --text-on-ivory-muted: #6F6450;          /* warm slate on ivory */
  --text-gold:           var(--oro-600);

  --border-ivory:     var(--avorio-300);
  --border-gold:      var(--oro-300);
  --hairline-on-night: var(--notte-hairline);
}

/* tokens/typography.css */
/* ============================================================
   GIGLIO DE DEA — TYPOGRAPHY TOKENS
   One family, Georgia/Gelasio. Hierarchy is built from size,
   weight, italics and uppercase tracking — never from a second
   typeface. Numbers and amounts sit in the same serif.
   ============================================================ */

:root {
  /* ---- Family ---- */
  --font-serif: Georgia, 'Gelasio', 'Times New Roman', 'Times', serif;
  --font-body:  var(--font-serif);
  --font-head:  var(--font-serif);
  /* Display \u2014 premium/web surfaces only (hero, section titles, wordmark) */
  --font-display: 'Cormorant Garamond', Georgia, 'Gelasio', serif;
  /* Inscriptional \u2014 wordmark & small-caps labels (Roman caps) */
  --font-inscribed: 'Marcellus', 'Cormorant Garamond', Georgia, serif;
  /* Tabular figures for fee tables / amounts */
  --font-numeric: Georgia, 'Gelasio', 'Times New Roman', serif;

  /* ---- Weights (Georgia ships 400/700; Gelasio fills 500/600) ---- */
  --weight-regular: 400;
  --weight-medium:  500;
  --weight-semibold:600;
  --weight-bold:    700;

  /* ---- Type scale (rem on a 16px base) ---- */
  --text-2xs:  0.6875rem;  /* 11px — fine print, REA / P.IVA lines */
  --text-xs:   0.8125rem;  /* 13px — captions, table meta */
  --text-sm:   0.9375rem;  /* 15px — small body, deliverables */
  --text-base: 1.0625rem;  /* 17px — running legal body */
  --text-md:   1.1875rem;  /* 19px — lead paragraphs */
  --text-lg:   1.5rem;     /* 24px — subsection titles */
  --text-xl:   2rem;       /* 32px — section titles */
  --text-2xl:  2.5rem;     /* 40px — document title */
  --text-3xl:  3.25rem;    /* 52px — cover display */
  --text-4xl:  4.25rem;    /* 68px — hero numerals */
  --text-5xl:  5.5rem;     /* 88px — premium hero (display serif) */
  --text-6xl:  7rem;       /* 112px — oversized brand moments */

  /* ---- Line heights ---- */
  --leading-none:    1.05;
  --leading-tight:   1.18;
  --leading-snug:    1.32;
  --leading-normal:  1.55;  /* body default */
  --leading-relaxed: 1.72;  /* dense legal paragraphs */

  /* ---- Letter spacing ---- */
  --tracking-eyebrow: 0.22em;  /* PREMESSA / METODO uppercase labels */
  --tracking-wide:    0.08em;
  --tracking-normal:  0;
  --tracking-tight:  -0.01em;

  /* ============================================================
     SEMANTIC ROLE TOKENS
     ============================================================ */
  --type-eyebrow-size:    var(--text-xs);
  --type-eyebrow-spacing: var(--tracking-eyebrow);
  --type-eyebrow-weight:  var(--weight-bold);

  --type-display-size:    var(--text-3xl);
  --type-title-size:      var(--text-2xl);
  --type-section-size:    var(--text-xl);
  --type-subsection-size: var(--text-lg);
  --type-lead-size:       var(--text-md);
  --type-body-size:       var(--text-base);
  --type-body-leading:    var(--leading-relaxed);
  --type-caption-size:    var(--text-xs);

  /* Optimal measure for legal prose */
  --measure: 68ch;
  --measure-narrow: 52ch;
}

/* tokens/spacing.css */
/* ============================================================
   GIGLIO DE DEA — SPACING, RADII, BORDERS, SHADOWS, LAYOUT
   The system is rectilinear and quiet: thin hairlines do the
   structural work, radii stay small, shadows are barely there.
   Spacing follows a 4px base, with document-scale measures for
   page margins.
   ============================================================ */

:root {
  /* ---- Spacing scale (4px base) ---- */
  --space-0:   0;
  --space-px:  1px;
  --space-1:   0.25rem;  /* 4  */
  --space-2:   0.5rem;   /* 8  */
  --space-3:   0.75rem;  /* 12 */
  --space-4:   1rem;     /* 16 */
  --space-5:   1.5rem;   /* 24 */
  --space-6:   2rem;     /* 32 */
  --space-7:   2.5rem;   /* 40 */
  --space-8:   3rem;     /* 48 */
  --space-9:   4rem;     /* 64 */
  --space-10:  5rem;     /* 80 */
  --space-12:  6rem;     /* 96 */

  /* ---- Document page geometry (A4-ish, screen) ---- */
  --page-width:   794px;   /* A4 @ 96dpi */
  --page-margin:  72px;    /* generous classical margin */
  --page-gap:     32px;

  /* ---- Radii — small; the brand is sharp and formal ---- */
  --radius-none: 0;
  --radius-xs:   2px;
  --radius-sm:   3px;
  --radius-md:   5px;
  --radius-lg:   8px;
  --radius-pill: 999px;

  /* ---- Border widths ---- */
  --border-hairline: 1px;
  --border-rule:     2px;   /* navy section rules */
  --border-heavy:    3px;

  /* ---- Shadows — minimal; reserved for floating paper ---- */
  --shadow-none: none;
  --shadow-xs:   0 1px 2px rgba(31, 42, 68, 0.06);
  --shadow-sm:   0 1px 3px rgba(31, 42, 68, 0.08), 0 1px 2px rgba(31, 42, 68, 0.04);
  --shadow-md:   0 4px 14px rgba(31, 42, 68, 0.10);
  --shadow-page: 0 2px 8px rgba(31, 42, 68, 0.08), 0 16px 48px rgba(31, 42, 68, 0.12);
  --shadow-focus: 0 0 0 3px rgba(46, 96, 152, 0.35);

  /* ---- Motion — restrained, no bounce ---- */
  --ease-standard: cubic-bezier(0.2, 0, 0.2, 1); /* @kind other */
  --ease-out:      cubic-bezier(0.16, 1, 0.3, 1); /* @kind other */
  --duration-fast: 120ms; /* @kind other */
  --duration-base: 200ms; /* @kind other */
  --duration-slow: 320ms; /* @kind other */

  /* ---- Z-index ---- */
  --z-base: 1; /* @kind other */
  --z-sticky: 100; /* @kind other */
  --z-overlay: 1000; /* @kind other */
  --z-toast: 1100; /* @kind other */
}






  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin: 0; background: var(--avorio-100); color: var(--text-on-ivory); font-family: var(--font-serif); -webkit-font-smoothing: antialiased; }
  ::selection { background: var(--oro-300); color: var(--notte-900); }

  .s-root { --s-accent: var(--oro-600); --s-accent-on-dark: var(--oro-500); --s-rule: 1px; }
  .s-root[data-gold="hairline"]  { --s-numcolor: var(--notte-700); --s-rule: 1px; --s-markw: 14px; }
  .s-root[data-gold="moderate"]  { --s-numcolor: var(--oro-600);   --s-rule: 1px; --s-markw: 20px; }
  .s-root[data-gold="expressive"]{ --s-numcolor: var(--oro-600);   --s-rule: 2px; --s-markw: 30px; }

  .s-shell { max-width: 1200px; margin: 0 auto; padding: 0 48px; }

  /* ---------- Eyebrow ---------- */
  .s-eyebrow { display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-inscribed); font-size: 0.82rem; letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 22px; }
  .s-eyebrow--ivory { color: #6a4f20; }
  .s-eyebrow--night { color: var(--oro-500); }
  .s-eyebrow-mark { display: inline-block; width: var(--s-markw, 20px); height: 1px; background: currentColor; opacity: 0.8; }
  /* Hero kicker — reso più evidente (punto 3) */
  .s-hero .s-eyebrow { font-size: 0.95rem; letter-spacing: 0.15em; font-weight: 700; margin-bottom: 26px; }
  .s-hero--ivory .s-eyebrow { color: var(--oro-700); }
  .s-hero .s-eyebrow-mark { width: 40px; height: 2px; opacity: 1; }

  /* ---------- Headings ---------- */
  .s-h2 { font-family: var(--font-display); font-weight: 500; font-size: clamp(2rem, 3.4vw, 3.1rem); line-height: 1.08; letter-spacing: -0.01em; color: var(--notte-800); margin: 0; max-width: 32ch; text-wrap: balance; }
  .s-h2--onDark { color: var(--text-on-night); }
  .s-lead-p { font-size: var(--text-md); line-height: var(--leading-snug); color: var(--text-on-ivory-muted); margin: 0 0 18px; max-width: 62ch; }

  /* ---------- Nav ---------- */
  .s-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 200; transition: background var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard), border-color var(--duration-base); border-bottom: 1px solid transparent; }
  .s-nav.is-scrolled { background: rgba(251,248,241,0.92); backdrop-filter: blur(10px); border-bottom-color: var(--avorio-line); box-shadow: 0 1px 0 rgba(0,0,0,0.02); }
  .s-nav-inner { max-width: 1200px; margin: 0 auto; padding: 16px 48px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
  .s-nav-brand { background: none; border: none; cursor: pointer; padding: 0; }
  .s-nav-links { display: flex; gap: 4px; }
  /* Burger + menu mobile */
  .s-nav-burger { display: none; flex-direction: column; gap: 5px; width: 44px; height: 44px; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; }
  .s-burger-line { display: block; width: 24px; height: 2px; background: var(--notte-800); transition: transform 0.3s var(--ease-out), opacity 0.2s; }
  .s-nav--onDark .s-burger-line { background: #fff; }
  .s-nav.is-menu-open .s-burger-line { background: var(--notte-800); }
  .s-nav.is-menu-open .s-burger-line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .s-nav.is-menu-open .s-burger-line:nth-child(2) { opacity: 0; }
  .s-nav.is-menu-open .s-burger-line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .s-nav-mobile { display: none; }
  .s-nav-link { font-family: var(--font-serif); font-size: 0.92rem; color: var(--notte-700); background: none; border: none; padding: 8px 14px; cursor: pointer; position: relative; transition: color var(--duration-base); }
  .s-nav-link::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 1px; background: var(--oro-600); transform: scaleX(0); transform-origin: left; transition: transform var(--duration-base) var(--ease-out); }
  .s-nav-link:hover { color: var(--notte-900); }
  .s-nav-link:hover::after { transform: scaleX(1); }
  .s-nav-link.is-active { color: var(--notte-900); }
  .s-nav-link.is-active::after { transform: scaleX(1); }
  .s-nav--onDark .s-nav-link { color: rgba(243,237,224,0.86); }
  .s-nav--onDark .s-nav-link::after { background: var(--oro-500); }
  .s-nav--onDark .s-nav-link:hover, .s-nav--onDark .s-nav-link.is-active { color: var(--text-on-night); }

  /* ---------- Hero ---------- */
  .s-hero { position: relative; padding: 168px 0 96px; overflow: hidden; }
  /* v10: hero a piena altezza — il video/sfondo arriva fino al counter */
  .s-hero--full { min-height: 100vh; padding: 132px 0 72px; display: flex; flex-direction: column; justify-content: center; }

  /* Variante "Fascia": media esteso a tutta la sezione (titolo + frase sotto) */
  .s-hero--band { padding: 0; overflow: visible; background: var(--avorio-50); }
  .s-hero-band { position: relative; overflow: hidden; min-height: 88vh; display: flex; flex-direction: column; justify-content: center;
      background: linear-gradient(160deg, #101f38 0%, #0d1a2f 55%, #0b1526 100%); }
  .s-hero-band-top { position: relative; z-index: 2; padding: 128px 0 26px; text-align: center; width: 100%; }
  .s-hero-band-top .s-eyebrow { justify-content: center; }
  .s-hero-band .s-hero-title { color: #fff; max-width: 900px; margin: 22px auto 0; font-size: clamp(2.2rem, 4.8vw, 58px);
      text-shadow: 0 1px 24px rgba(0,0,0,0.5), 0 1px 3px rgba(0,0,0,0.35); }
  .s-hero-band .s-hero-em { color: var(--oro-400, #d8b878); display: block; }
  .s-hero-band .s-eyebrow { color: var(--oro-300, #e3c48f); font-size: 0.95rem; letter-spacing: 0.15em; font-weight: 700; }
  .s-hero-band .s-eyebrow-mark { display: none; }
  .s-hero-band .s-eyebrow { gap: 0; }
  .s-hero-band-body { position: relative; z-index: 2; padding: 8px 0 120px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 26px; }
  .s-hero-band-body .s-hero-lead { max-width: 40ch; margin: 0 auto; font-weight: 400; color: #fff; font-size: clamp(1.4rem, 2.4vw, 1.85rem); line-height: 1.42; letter-spacing: -0.005em; text-wrap: balance;
      text-shadow: 0 2px 14px rgba(0,0,0,0.55), 0 1px 3px rgba(0,0,0,0.5); }
  /* Link secondario "I nostri servizi": chiaro sul video */
  .s-hero-band-body .s-textlink { color: var(--oro-300, #e3c48f); font-weight: 600; letter-spacing: 0.02em;
      transition: color var(--duration-base) var(--ease-standard); }
  .s-hero-band-body .s-textlink:hover { color: #fff; }
  .s-hero--band .s-hero-band-body .s-chip { background: rgba(9,17,31,0.35); }
  .s-hero--band .s-hero-bg-veil { background: linear-gradient(180deg, rgba(9,17,31,0.42) 0%, rgba(9,17,31,0.34) 45%, rgba(9,17,31,0.52) 100%); }

  /* Sfondo video/foto a piena pagina */
  .s-hero-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
  .s-hero-bg-veil { position: absolute; inset: 0;
      background:
        linear-gradient(180deg, rgba(9,17,31,0.72) 0%, rgba(9,17,31,0.30) 16%, rgba(9,17,31,0.14) 34%, rgba(9,17,31,0.58) 100%); }
  /* Video non scurito: scritte bianche e brillanti che risaltano da sole */
  .s-hero--bg .s-hero-title { color: #fff; }
  .s-hero--bg .s-hero-em { color: var(--oro-300); }
  .s-hero--bg .s-eyebrow { color: var(--oro-300) !important; text-shadow: 0 1px 10px rgba(0,0,0,0.55); }
  .s-hero--bg .s-eyebrow-mark { background: var(--oro-300); }
  /* Filo oro a sinistra (variante 2) */
  .s-hero--bg .s-hero-lead { position: relative; display: inline-block; font-size: clamp(1.02rem, 1.3vw, 1.2rem); line-height: 1.6; color: #f3ede0; max-width: 50ch; width: 50ch;
      font-style: normal; font-weight: 400; letter-spacing: 0.005em; margin-top: 26px; text-align: left;
      border-left: 3px solid var(--oro-400, #d8b878); padding: 4px 0 4px 22px;
      text-shadow: 0 2px 16px rgba(0,0,0,0.8); }
  /* Pulsanti hero più in basso quando c'è il video */
  .s-hero--bg .s-hero-actions { margin-top: 52px; }
  .s-hero--bg .s-chip { background: rgba(9,17,31,0.35); }
  .s-hero--bg .s-hero-grain { opacity: 0.25; }
  .s-hero--bg .s-shell { position: relative; z-index: 2; }
  .s-hero-bg-ctrl { position: absolute; z-index: 3; bottom: 18px; right: 20px; display: flex; gap: 8px; }
  .s-hero-bg-btn { font-family: var(--font-inscribed); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase;
      padding: 8px 15px; border-radius: var(--radius-pill); cursor: pointer;
      border: 1px solid rgba(255,255,255,0.4); background: rgba(11,21,38,0.5); color: #fff;
      backdrop-filter: blur(6px); transition: background var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard); }
  .s-hero-bg-btn:hover { background: rgba(11,21,38,0.72); border-color: var(--oro-500); }
  .s-hero--ivory:not(.s-hero--bg) .s-hero-bg-btn { border-color: var(--avorio-line); background: rgba(255,255,255,0.7); color: var(--notte-800); backdrop-filter: none; }
  .s-hero--ivory:not(.s-hero--bg) .s-hero-bg-btn:hover { background: #fff; border-color: var(--oro-600); }
  .s-hero--ivory { background:
      radial-gradient(120% 90% at 85% 0%, var(--avorio-50) 0%, var(--avorio-100) 45%, var(--avorio-200) 100%); }
  .s-hero--night { background:
      radial-gradient(120% 100% at 80% -10%, var(--notte-700) 0%, var(--notte-800) 45%, var(--notte-900) 100%); }
  .s-hero-grain { position: absolute; inset: 0; pointer-events: none; opacity: 0.5;
      background-image: repeating-linear-gradient(135deg, transparent 0 22px, rgba(166,130,74,0.03) 22px 23px); }
  .s-hero-inner { position: relative; display: grid; grid-template-columns: 1.55fr 1fr; gap: 56px; align-items: center; }
  /* centered hero (no side media) */
  .s-hero-inner--centered { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .s-hero-inner--centered .s-hero-title { max-width: 30ch; margin-left: auto; margin-right: auto; line-height: 1.12; margin-bottom: 40px; }
  .s-hero-inner--centered .s-hero-em { display: block; }
  .s-hero-inner--centered .s-hero-lead { margin-left: auto; margin-right: auto; }
  .s-hero-inner--centered .s-hero-actions { justify-content: center; }
  .s-hero-inner--centered .s-hero-chips { justify-content: center; }
  .s-hero-title { font-family: var(--font-display); font-weight: 500; font-size: clamp(2.6rem, 5.6vw, 70px); line-height: 1.06; letter-spacing: -0.015em; margin: 0 0 28px; max-width: 16ch; text-wrap: balance; }
  .s-hero-em { font-style: italic; }
  .s-hero--ivory .s-hero-em { color: var(--oro-700); }
  .s-hero--night .s-hero-em { color: var(--oro-500); }
  .s-hero--ivory .s-hero-title { color: var(--notte-800); }
  .s-hero--night .s-hero-title { color: var(--text-on-night); }
  .s-hero-line { display: block; }
  .s-hero--ivory .s-hero-line:last-child { color: var(--oro-700); font-style: italic; }
  .s-hero--night .s-hero-line:last-child { color: var(--oro-500); font-style: italic; }
  .s-hero-lead { font-size: clamp(1.3rem, 1.9vw, 1.6rem); line-height: 1.45; max-width: 46ch; margin: 0 0 34px; letter-spacing: -0.005em; }
  .s-hero--ivory .s-hero-lead { color: var(--text-on-ivory-muted); }
  .s-hero--night .s-hero-lead { color: var(--text-on-night-muted); }
  .s-hero-actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
  .s-hero-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 40px; }
  .s-chip { font-family: var(--font-serif); font-size: 0.8rem; letter-spacing: 0.02em; padding: 6px 14px; border-radius: var(--radius-pill); border: 1px solid; }
  .s-hero--ivory .s-chip { border-color: var(--avorio-line); color: var(--text-on-ivory-muted); background: rgba(255,255,255,0.4); }
  .s-hero--night .s-chip { border-color: var(--notte-hairline); color: var(--text-on-night-muted); }

  /* hero — variante "disteso" (editoriale, arioso) */
  .s-hero-spread { position: relative; }
  .s-hero-spread-top { display: grid; grid-template-columns: 1.25fr 1fr; gap: 64px; align-items: end; margin-top: 10px; }
  .s-hero-spread .s-hero-title { max-width: 18ch; margin: 0; }
  .s-hero-spread-side { padding-bottom: 8px; }
  .s-hero-spread .s-hero-lead { max-width: 42ch; margin: 0 0 30px; }
  .s-hero-chiprow { display: flex; flex-wrap: wrap; align-items: center; margin-top: 60px; padding-top: 26px; border-top: 1px solid var(--avorio-line); }
  .s-hero--night .s-hero-chiprow { border-top-color: var(--notte-hairline); }
  .s-hero-chiprow .s-chip { border: none; background: none; padding: 4px 26px; border-radius: 0; font-size: 0.92rem; position: relative; }
  .s-hero-chiprow .s-chip:first-child { padding-left: 0; }
  .s-hero-chiprow .s-chip:not(:last-child)::after { content: ''; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 1px; height: 15px; background: var(--avorio-line); }
  .s-hero--night .s-hero-chiprow .s-chip:not(:last-child)::after { background: var(--notte-hairline); }

  .s-hero-aside { display: flex; flex-direction: column; align-items: center; gap: 28px; }
  .s-hero-crest { display: flex; justify-content: center; }
  .s-hero-figure { width: 100%; aspect-ratio: 4/5; border: 1px solid var(--oro-300); border-radius: 2px; position: relative; display: flex; align-items: flex-end; justify-content: center; padding: 16px;
      background: repeating-linear-gradient(135deg, rgba(166,130,74,0.05) 0 10px, transparent 10px 20px); }
  .s-hero--night .s-hero-figure { border-color: var(--notte-hairline); }
  .s-figure-cap { font-style: italic; font-size: 0.75rem; letter-spacing: 0.04em; color: var(--text-on-ivory-muted); }
  .s-hero--night .s-figure-cap { color: var(--text-on-night-muted); }

  /* ---------- Buttons text link ---------- */
  .s-textlink { background: none; border: none; cursor: pointer; font-family: var(--font-serif); font-size: 1rem; color: var(--oro-700); letter-spacing: 0.01em; display: inline-flex; align-items: center; gap: 9px; padding: 6px 2px; }
  .s-hero--night .s-textlink { color: var(--oro-500); }
  .s-textlink .s-arrow { transition: transform var(--duration-base) var(--ease-out); }
  .s-textlink:hover .s-arrow { transform: translateX(5px); }
  .s-textlink--down:hover .s-arrow { transform: translateY(4px); }
  .s-textlink { position: relative; }
  .s-textlink::after { content: ""; position: absolute; left: 2px; right: 2px; bottom: -1px; height: 1.5px; background: currentColor; opacity: 0.75; transform: scaleX(0); transform-origin: left; transition: transform var(--duration-base) var(--ease-out); }
  .s-textlink:hover::after { transform: scaleX(1); }

  /* ---------- Divisore tra sezioni ---------- */
  .s-divide { position: relative; height: 0; z-index: 4; }
  .s-divide-badge { position: absolute; left: 50%; top: 0; transform: translate(-50%, -50%); width: 40px; height: 40px; border-radius: 50%; background: #F1EADB; border: 1px solid var(--avorio-line); color: var(--oro-600); display: flex; align-items: center; justify-content: center; font-size: 0.82rem; box-shadow: 0 2px 12px rgba(15,30,56,0.05); }

  /* ---------- Sections ---------- */
  .s-sec { padding: 110px 0; }
  .s-sec--ivory { background: var(--avorio-100); }
  .s-sec--raised { background: #ECE2CD; border-top: 1px solid var(--avorio-line); border-bottom: 1px solid var(--avorio-line); }
  .s-sec--night { background: var(--notte-800); }
  .s-sec-head { margin-bottom: 56px; }
  .s-sec-head--split { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; flex-wrap: wrap; }
  .s-note { font-style: italic; font-size: var(--text-sm); color: var(--text-on-ivory-muted); max-width: 34ch; }

  /* ---------- Studio ---------- */
  .s-studio-head { margin-bottom: 40px; }
  .s-studio-body { display: block; column-gap: 56px; max-width: 72ch; }
  .s-pillars { margin-top: 64px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px; }
  .s-pillar-rule { width: 34px; height: var(--s-rule); background: var(--oro-600); margin-bottom: 18px; }
  .s-pillar-k { font-family: var(--font-display); font-size: 1.32rem; font-weight: 600; color: var(--notte-800); margin-bottom: 8px; }
  .s-pillar-v { font-size: 0.95rem; line-height: 1.5; color: var(--text-on-ivory-muted); }

  /* ---------- Servizi ---------- */
  .s-serv-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--avorio-line); border: 1px solid var(--avorio-line); }
  .s-serv { background: var(--avorio-50); padding: 30px 26px 34px; display: flex; flex-direction: column; transition: background var(--duration-base) var(--ease-standard); position: relative; }
  .s-serv::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--oro-600); transform: scaleX(0); transform-origin: left; transition: transform 0.4s var(--ease-out); }
  .s-serv:hover::before { transform: scaleX(1); }
  .s-serv:hover { background: var(--white); }
  .s-serv:hover .s-serv-n { color: var(--oro-700); }
  .s-serv-n { transition: color var(--duration-base) var(--ease-standard); }
  .s-serv-n { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; color: var(--s-numcolor, var(--oro-600)); margin-bottom: 18px; }
  .s-serv-t { font-family: var(--font-display); font-size: 1.28rem; font-weight: 600; color: var(--notte-800); margin: 0 0 10px; line-height: 1.18; }
  .s-serv-d { font-size: 0.9rem; line-height: 1.5; color: var(--text-on-ivory-muted); margin: 0; }

  /* ---------- Destinatari (night) ---------- */
  .s-dest-head { margin-bottom: 48px; max-width: 30ch; }
  .s-dest-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--notte-hairline); border: 1px solid var(--notte-hairline); }
  .s-dest-item { background: var(--notte-800); padding: 26px 22px; display: flex; align-items: center; gap: 12px; font-family: var(--font-display); font-size: 1.2rem; font-weight: 500; color: var(--text-on-night); transition: background var(--duration-base); }
  .s-dest-item:hover { background: var(--notte-700); }
  .s-dest-mark { color: var(--oro-500); font-size: 0.7rem; }

  /* ---------- Approccio ---------- */
  .s-appr-head { max-width: none; margin-bottom: 56px; }
  .s-appr-head .s-h2 { margin-bottom: 22px; max-width: none; }
  /* Approccio — trittico convergente (tre profili → un principio) */
  .s-tri { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--oro-600); }
  .s-lens { padding: 32px 32px 34px; border-left: 1px solid var(--avorio-line); position: relative; transition: background var(--duration-base) var(--ease-standard); }
  .s-lens:first-child { border-left: none; padding-left: 0; }
  .s-lens:last-child { padding-right: 0; }
  .s-lens::before { content: ''; position: absolute; left: 0; right: 0; top: -2px; height: 2px; background: var(--oro-700); transform: scaleX(0); transform-origin: left; transition: transform 0.45s var(--ease-out); }
  .s-lens:hover::before { transform: scaleX(1); }
  .s-lens-n { display: block; font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 2.1rem; line-height: 1; color: var(--oro-600); margin-bottom: 20px; transition: color var(--duration-base) var(--ease-standard); }
  .s-lens:hover .s-lens-n { color: var(--oro-700); }
  .s-lens-t { font-family: var(--font-display); font-weight: 600; font-size: 1.42rem; line-height: 1.18; color: var(--notte-800); margin: 0 0 12px; text-wrap: balance; min-height: 2.36em; }
  .s-lens-d { font-size: 0.95rem; line-height: 1.55; color: var(--text-on-ivory-muted); margin: 0; }
  .s-tri-cnv { display: none; }
  .s-terz--sintesi { margin-top: 48px; }
  @media (max-width: 820px) {
    .s-tri { grid-template-columns: 1fr; }
    .s-lens { border-left: none; padding: 26px 0; border-top: 1px solid var(--avorio-line); }
    .s-lens:first-child { border-top: none; }
    .s-tri-cnv { display: none; }
    .s-terz--sintesi { margin-top: 32px; }
  }
  .s-terz { margin-top: 40px; display: grid; grid-template-columns: 120px 1fr; gap: 32px; align-items: baseline; border-top: 2px solid var(--oro-600); padding-top: 30px; }
  .s-terz-label { font-family: var(--font-inscribed); font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--oro-700); }
  .s-terz-text { font-family: var(--font-display); font-weight: 500; font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.3; color: var(--notte-800); margin: 0; max-width: 40ch; }

  /* ---------- Esperienza (legacy) ---------- */
  .s-exp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .s-exp { display: flex; align-items: baseline; gap: 16px; padding: 26px 28px; background: var(--white); border: 1px solid var(--avorio-line); border-radius: 2px; }
  .s-exp-idx { font-family: var(--font-display); font-size: 0.95rem; color: var(--oro-600); font-variant-numeric: tabular-nums; }
  .s-exp-t { font-family: var(--font-display); font-size: 1.2rem; font-weight: 600; color: var(--notte-800); }

  /* ---------- Stats band ---------- */
  .s-statsband { background: var(--notte-900); border-top: 1px solid var(--notte-hairline); border-bottom: 1px solid var(--notte-hairline); }
  .s-stats { display: grid; grid-template-columns: repeat(4, 1fr); }
  .s-stat { padding: 40px 28px; border-left: 1px solid var(--notte-hairline); }
  .s-stat:first-child { border-left: none; padding-left: 0; }
  .s-stat-v { font-family: var(--font-display); font-weight: 600; font-size: clamp(2rem, 3.4vw, 2.9rem); color: var(--oro-500); line-height: 1; letter-spacing: -0.01em; }
  .s-stat-k { font-size: 0.86rem; line-height: 1.45; color: var(--text-on-night-muted); margin-top: 12px; max-width: 22ch; }

  /* ---------- Lo studio · founder + selettività ---------- */
  .s-studio-split { margin-top: 72px; display: grid; grid-template-columns: 1.5fr 1fr; gap: 40px; align-items: start; }
  .s-studio-split--nophoto { grid-template-columns: 1fr; }
  .s-founder-card { display: flex; gap: 22px; align-items: flex-start; margin-top: 18px; background: var(--white); border: 1px solid var(--avorio-line); border-radius: 12px; padding: 28px 30px; box-shadow: 0 12px 32px rgba(15,30,56,0.05); }
  .s-founder-name { font-family: var(--font-display); font-weight: 600; font-size: 1.4rem; color: var(--notte-800); }
  .s-founder-role { font-family: var(--font-inscribed); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oro-700); font-style: normal; margin-top: 6px; }
  .s-founder-bio { font-size: 0.98rem; line-height: 1.55; color: var(--text-on-ivory-muted); margin: 14px 0 16px; max-width: 52ch; }
  .s-founder-creds { display: flex; flex-wrap: wrap; gap: 8px; }
  .s-cred { font-size: 0.72rem; letter-spacing: 0.04em; padding: 5px 12px; border: 1px solid var(--avorio-line); border-radius: var(--radius-pill); color: var(--text-on-ivory-muted); }
  .s-selett { background: var(--avorio-200); border-top: 3px solid var(--oro-600); padding: 32px 30px; border-radius: 12px; box-shadow: 0 12px 32px rgba(15,30,56,0.04); }
  /* Slot foto (fondatore) */
  .s-selett-mark { color: var(--oro-600); font-size: 1.1rem; margin-bottom: 14px; }
  .s-selett-t { font-family: var(--font-display); font-weight: 600; font-size: 1.4rem; color: var(--notte-800); margin: 0 0 12px; }
  .s-selett-p { font-size: 0.95rem; line-height: 1.6; color: var(--text-on-ivory-muted); margin: 0; }

  /* ---------- Settori (lista editoriale a righe) ---------- */
  .s-sett-list { border-top: 1px solid var(--avorio-line); }
  .s-sett-row { display: grid; grid-template-columns: 28px minmax(220px, 0.9fr) 1.6fr; gap: 28px; align-items: baseline; padding: 26px 8px 26px 0; border-bottom: 1px solid var(--avorio-line); position: relative; transition: background var(--duration-base) var(--ease-standard); }
  .s-sett-row::after { content: ''; position: absolute; left: 0; bottom: -1px; width: 0; height: 2px; background: var(--oro-600); transition: width 0.45s var(--ease-out); }
  .s-sett-row:hover::after { width: 100%; }
  .s-sett-row:hover { background: rgba(255,255,255,0.55); }
  .s-sett-mark { align-self: center; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid var(--oro-500); transition: background var(--duration-base) var(--ease-standard); }
  .s-sett-row:hover .s-sett-mark { background: var(--oro-500); }
  .s-sett-t { font-family: var(--font-display); font-weight: 600; font-size: 1.34rem; color: var(--notte-800); margin: 0; line-height: 1.2; }
  .s-sett-d { font-size: 0.95rem; line-height: 1.5; color: var(--text-on-ivory-muted); margin: 0; }
  @media (max-width: 720px) {
    .s-sett-row { grid-template-columns: 20px 1fr; }
    .s-sett-d { grid-column: 2; }
  }
  /* Settori — solo nomi, due colonne compatte */
  .s-sett-names { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--avorio-line); }
  .s-sett-name { display: flex; align-items: center; gap: 15px; padding: 20px 32px 20px 4px; border-bottom: 1px solid var(--avorio-line); position: relative; transition: background var(--duration-base) var(--ease-standard); }
  .s-sett-name:nth-child(odd) { border-right: 1px solid var(--avorio-line); }
  .s-sett-name:nth-child(even) { padding-left: 32px; padding-right: 4px; }
  .s-sett-name::after { content: ''; position: absolute; left: 0; bottom: -1px; width: 0; height: 2px; background: var(--oro-600); transition: width 0.4s var(--ease-out); }
  .s-sett-name:hover::after { width: 100%; }
  .s-sett-name:hover { background: rgba(255,255,255,0.55); }
  .s-sett-name:hover .s-sett-mark { background: var(--oro-500); }
  .s-sett-name .s-sett-t { font-size: 1.18rem; }
  @media (max-width: 640px) {
    .s-sett-names { grid-template-columns: 1fr; }
    .s-sett-name:nth-child(odd) { border-right: none; }
    .s-sett-name:nth-child(even) { padding-left: 4px; }
  }

  /* ---------- Note (indice editoriale) ---------- */
  .s-idx { border-top: 1px solid var(--avorio-line); }
  .s-idx-row { display: grid; grid-template-columns: 52px 1fr auto 24px; gap: 28px; align-items: center; padding: 26px 8px; border-bottom: 1px solid var(--avorio-line); text-decoration: none; position: relative; transition: background var(--duration-base) var(--ease-standard); }
  .s-idx-row::after { content: ''; position: absolute; left: 0; bottom: -1px; width: 0; height: 2px; background: var(--oro-600); transition: width 0.5s var(--ease-out); }
  .s-idx-row:hover::after { width: 100%; }
  .s-idx-row:hover { background: rgba(255,255,255,0.6); }
  .s-idx-num { font-family: var(--font-display); font-style: italic; font-size: 1.2rem; color: var(--oro-700); font-variant-numeric: tabular-nums; }
  .s-idx-main { min-width: 0; }
  .s-idx-cat { display: block; font-family: var(--font-inscribed); font-size: 0.64rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oro-700); margin-bottom: 8px; }
  .s-idx-t { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.2rem, 1.7vw, 1.55rem); line-height: 1.24; color: var(--notte-800); margin: 0; transition: color var(--duration-base) var(--ease-standard); text-wrap: balance; }
  .s-idx-row:hover .s-idx-t { color: var(--oro-800, #6a4f20); }
  .s-idx-meta { font-size: 0.8rem; font-style: italic; color: var(--text-faint); white-space: nowrap; }
  .s-idx-arrow { font-family: var(--font-display); font-size: 1.2rem; color: var(--oro-600); transition: transform var(--duration-base) var(--ease-out); }
  .s-idx-row:hover .s-idx-arrow { transform: translateX(6px); }
  @media (max-width: 720px) {
    .s-idx-row { grid-template-columns: 40px 1fr 20px; }
    .s-idx-meta { display: none; }
  }

  /* ---------- Operazioni (track record) — riga singola scorrevole ---------- */
  .s-op-headr { display: flex; flex-direction: column; align-items: flex-end; gap: 18px; }
  .s-op-headr .s-note { text-align: right; }
  .s-op-controls { display: flex; align-items: center; gap: 18px; }
  .s-op-count { font-family: var(--font-display); font-size: 1rem; color: var(--text-on-ivory-muted); font-variant-numeric: tabular-nums; letter-spacing: 0.03em; }
  .s-op-count b { color: var(--oro-700); font-weight: 600; }
  .s-op-btns { display: flex; gap: 8px; }
  .s-op-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--avorio-line); background: var(--white); color: var(--notte-800); font-family: var(--font-display); font-size: 1.3rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s var(--ease-standard), color 0.2s, border-color 0.2s, opacity 0.2s; }
  .s-op-btn:hover:not(:disabled) { background: var(--notte-800); color: var(--text-on-night); border-color: var(--notte-800); }
  .s-op-btn:disabled { opacity: 0.3; cursor: default; }
  .s-op-scroll { position: relative; }
  .s-op-scroll::before, .s-op-scroll::after { content: ''; position: absolute; top: 0; bottom: 18px; width: 60px; pointer-events: none; z-index: 2; transition: opacity 0.3s var(--ease-standard); }
  .s-op-scroll::before { left: 0; background: linear-gradient(to right, #ECE2CD, rgba(236,226,205,0)); }
  .s-op-scroll::after { right: 0; background: linear-gradient(to left, #ECE2CD, rgba(236,226,205,0)); }
  .s-op-scroll.is-start::before { opacity: 0; }
  .s-op-scroll.is-end::after { opacity: 0; }
  .s-op-grid { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, 1fr); gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 18px; scrollbar-width: thin; scrollbar-color: var(--oro-400, #d8b878) transparent; }
  .s-op-grid::-webkit-scrollbar { height: 6px; }
  .s-op-grid::-webkit-scrollbar-track { background: var(--avorio-line); border-radius: 3px; }
  .s-op-grid::-webkit-scrollbar-thumb { background: var(--oro-400, #d8b878); border-radius: 3px; }
  .s-op { scroll-snap-align: start; }
  .s-op { background: var(--white); border: 1px solid var(--avorio-line); border-top: 3px solid var(--notte-700); border-radius: 2px; padding: 28px 26px 30px; display: flex; flex-direction: column; transition: box-shadow var(--duration-base) var(--ease-standard), transform var(--duration-base) var(--ease-out), border-top-color var(--duration-base) var(--ease-standard); }
  .s-op:hover { box-shadow: 0 16px 40px rgba(15,30,56,0.12); transform: translateY(-4px); border-top-color: var(--oro-600); }
  .s-op-tag { font-family: var(--font-inscribed); font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--notte-700); margin-bottom: 18px; }
  .s-op-meta { display: flex; flex-direction: column; gap: 12px; padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid var(--avorio-line); }
  .s-op-meta > div { display: grid; grid-template-columns: 92px 1fr; align-items: baseline; gap: 12px; }
  .s-op-meta dt { font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-faint); margin: 0; padding-top: 3px; }
  .s-op-meta dd { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: 1.04rem; line-height: 1.2; color: var(--notte-800); text-align: left; }
  .s-op-meta dd.val { color: var(--oro-700); }
  .s-op-d { font-size: 0.9rem; line-height: 1.55; color: var(--text-on-ivory-muted); margin: 0; }
  .s-op-foot { margin-top: auto; padding-top: 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .s-op-more { font-family: var(--font-inscribed); font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oro-700); transition: color var(--duration-base) var(--ease-standard); }
  .s-op-arrow { font-family: var(--font-display); font-size: 1.1rem; color: var(--oro-600); transition: transform var(--duration-base) var(--ease-out); }
  .s-op:hover .s-op-arrow { transform: translateX(6px); }
  .s-op:hover .s-op-more { color: var(--oro-800, #6a4f20); }

  /* ---------- Note / Insights ---------- */
  .s-ins-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--avorio-line); border: 1px solid var(--avorio-line); }
  .s-ins { background: var(--avorio-50); padding: 30px 28px; display: flex; flex-direction: column; min-height: 230px; transition: background var(--duration-base) var(--ease-standard); cursor: pointer; position: relative; }
  .s-ins::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--oro-600); transform: scaleX(0); transform-origin: left; transition: transform 0.4s var(--ease-out); }
  .s-ins:hover::before { transform: scaleX(1); }
  .s-ins:hover { background: var(--white); }
  .s-ins-cat { font-family: var(--font-inscribed); font-size: 0.66rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oro-700); margin-bottom: 18px; }
  .s-ins-t { font-family: var(--font-display); font-weight: 600; font-size: 1.32rem; line-height: 1.22; color: var(--notte-800); margin: 0; }
  .s-ins-foot { margin-top: auto; padding-top: 22px; display: flex; align-items: center; justify-content: space-between; font-size: 0.78rem; font-style: italic; color: var(--text-faint); }
  .s-ins-arrow { font-style: normal; color: var(--oro-600); transition: transform var(--duration-base) var(--ease-out); }
  .s-ins:hover .s-ins-arrow { transform: translateX(5px); }

  /* ---------- Due percorsi ---------- */
  .s-percorsi-head { max-width: none; margin-bottom: 48px; }
  .s-percorsi-head .s-h2 { margin-bottom: 18px; max-width: none; }
  .s-perc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
  .s-perc { border-radius: 3px; padding: 44px 40px; display: flex; flex-direction: column; border: 1px solid; }
  .s-perc--ivory { background: var(--avorio-50); border-color: var(--avorio-line); border-top: 3px solid var(--oro-600); }
  .s-perc--night { background: var(--avorio-50); border-color: var(--avorio-line); border-top: 3px solid var(--notte-700); }
  .s-perc-top { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
  .s-perc-num { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 2.2rem; line-height: 1; width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; border-radius: 50%; flex: none; }
  .s-perc--ivory .s-perc-num { color: var(--oro-700); box-shadow: inset 0 0 0 1px var(--oro-300); }
  .s-perc--night .s-perc-num { color: var(--notte-700); box-shadow: inset 0 0 0 1px rgba(15,30,56,0.22); }
  .s-perc-kicker { font-family: Gelasio, var(--font-display); font-weight: 700; font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; display: inline-block; padding: 6px 13px; border-radius: 5px; }
  .s-perc--ivory .s-perc-kicker { color: var(--oro-800, #6a4f20); background: rgba(166,130,74,0.14); }
  .s-perc--night .s-perc-kicker { color: var(--notte-800); background: rgba(15,30,56,0.09); }
  .s-perc-title { font-family: var(--font-display); font-weight: 600; font-size: 1.7rem; line-height: 1.2; margin: 0 0 14px; }
  .s-perc--ivory .s-perc-title { color: var(--notte-800); }
  .s-perc--night .s-perc-title { color: var(--notte-800); }
  .s-perc-text { font-size: 1rem; line-height: 1.6; margin: 0 0 24px; }
  .s-perc--ivory .s-perc-text { color: var(--text-on-ivory-muted); }
  .s-perc--night .s-perc-text { color: var(--text-on-ivory-muted); }
  .s-perc-list { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
  .s-perc-list li { display: flex; align-items: baseline; gap: 12px; font-size: 0.98rem; line-height: 1.4; }
  .s-perc--ivory .s-perc-list li { color: var(--notte-800); border-top: 1px solid var(--avorio-line); padding-top: 12px; }
  .s-perc--night .s-perc-list li { color: var(--notte-800); border-top: 1px solid var(--avorio-line); padding-top: 12px; }
  .s-tick { color: var(--oro-600); font-size: 0.66rem; flex: none; }
  .s-perc--night .s-tick { color: var(--notte-700); }
  .s-perc-cta { margin-top: auto; align-self: flex-start; background: none; border: none; cursor: pointer; font-family: var(--font-serif); font-size: 1rem; display: inline-flex; align-items: center; gap: 9px; padding: 6px 2px; }
  .s-perc--ivory .s-perc-cta { color: var(--oro-700); }
  .s-perc--night .s-perc-cta { color: var(--notte-700); }
  .s-perc-cta .s-arrow { transition: transform var(--duration-base) var(--ease-out); }
  .s-perc-cta:hover .s-arrow { transform: translateX(5px); }

  /* ---------- Claim band ---------- */
  .s-claimband { background: var(--notte-800); padding: 60px 0; border-top: 1px solid var(--notte-hairline); border-bottom: 1px solid var(--notte-hairline); }
  .s-claim-inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 20px; }
  .s-claim-fleur { height: 62px; width: auto; opacity: 0.95; }
  .s-claim-text { font-family: var(--font-display); font-weight: 500; font-style: italic; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.15; color: var(--text-on-night); margin: 0; max-width: 20ch; text-wrap: balance; }

  /* ---------- Contatti ---------- */
  .s-cont { display: grid; grid-template-columns: 1.3fr 1fr; gap: 64px; align-items: center; }
  .s-cont-title { max-width: 18ch; text-align: left; }
  .s-cont-lead { font-size: 1.02rem; line-height: 1.55; color: var(--text-on-night-muted); margin: 18px 0 0; max-width: 42ch; }
  .s-cont-r { border-left: 1px solid var(--notte-hairline); padding-left: 56px; }
  .s-cont-dl { margin: 0; display: flex; flex-direction: column; gap: 20px; }
  .s-cont-dl > div { display: flex; flex-direction: column; gap: 4px; }
  .s-cont-dl dt { font-family: var(--font-inscribed); font-size: 0.66rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--oro-500); }
  .s-cont-dl dd { margin: 0; font-size: 0.98rem; line-height: 1.5; color: var(--text-on-night); }

  /* ---------- Footer ---------- */
  .s-foot { background: var(--notte-900); padding: 48px 0 40px; }
  .s-foot-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
  .s-foot-nav { display: flex; gap: 6px; flex-wrap: wrap; }
  .s-foot-nav button { background: none; border: none; cursor: pointer; font-family: var(--font-serif); font-size: 0.85rem; color: var(--text-on-night-muted); padding: 6px 10px; transition: color var(--duration-base); }
  .s-foot-nav button:hover { color: var(--text-on-night); }
  .s-foot-fine { width: 100%; border-top: 1px solid var(--notte-hairline); padding-top: 20px; margin-top: 8px; font-size: 0.75rem; color: var(--text-on-night-muted); letter-spacing: 0.02em; }

  .s-loading { display: flex; align-items: center; justify-content: center; min-height: 100vh; color: var(--text-on-ivory-muted); font-style: italic; }

  /* Effetti hover coerenti in tutto il sito (punto 3): filetto oro che cresce + lift */
  .s-serv, .s-sett, .s-ins { position: relative; }
  .s-serv::after, .s-sett::after, .s-ins::after { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--oro-600); transform: scaleX(0); transform-origin: left; transition: transform 0.4s var(--ease-out); }
  .s-serv:hover::after, .s-sett:hover::after, .s-ins:hover::after { transform: scaleX(1); }
  .s-perc { transition: transform 0.3s var(--ease-out), box-shadow 0.3s var(--ease-standard); }
  .s-perc:hover { transform: translateY(-3px); box-shadow: 0 14px 38px rgba(15,30,56,0.08); }
  .s-founder-card { transition: transform 0.3s var(--ease-out), box-shadow 0.3s var(--ease-standard), border-color 0.3s var(--ease-standard); }
  .s-founder-card:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(15,30,56,0.10); border-color: var(--oro-300); }
  .s-stat { transition: transform 0.3s var(--ease-out); }
  .s-op { transition: transform 0.3s var(--ease-out), box-shadow var(--duration-base) var(--ease-standard), border-top-color var(--duration-base) var(--ease-standard); }
  .s-op:hover { transform: translateY(-4px); }
  .s-cont-dl dd { transition: color var(--duration-base) var(--ease-standard); }
  .s-cont-dl > div:hover dd { color: var(--oro-300); }

  /* Comparsa in dissolvenza allo scroll (punto 3) */
  @media (prefers-reduced-motion: no-preference) {
    .s-reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.75s var(--ease-out), transform 0.75s var(--ease-out); }
    .s-reveal.is-revealed { opacity: 1; transform: none; }
  }

  /* ---------- Form contatti ---------- */
  .s-form { margin-top: 30px; padding-top: 30px; border-top: 1px solid var(--notte-hairline); display: grid; grid-template-columns: 1fr 1fr; gap: 22px 28px; }
  .s-field { display: flex; flex-direction: column; gap: 9px; }
  .s-field--full { grid-column: 1 / -1; }
  .s-field > label { font-family: var(--font-inscribed); font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oro-300); }
  .s-input, .s-textarea { background: rgba(255,255,255,0.10); border: 1px solid rgba(243,237,224,0.30); border-radius: 5px; padding: 13px 15px; color: var(--text-on-night); font-family: var(--font-serif); font-size: 0.98rem; transition: border-color 0.25s var(--ease-standard), background 0.25s var(--ease-standard), box-shadow 0.25s var(--ease-standard); }
  .s-input option { color: #14203a; background: #F3EDE0; }
  .s-input::placeholder, .s-textarea::placeholder { color: rgba(243,237,224,0.6); }
  .s-input:focus, .s-textarea:focus { outline: none; border-color: var(--oro-500); background: rgba(255,255,255,0.15); box-shadow: 0 0 0 3px rgba(192,160,98,0.28); }
  .s-textarea { resize: vertical; min-height: 128px; line-height: 1.5; }
  .s-seg { display: flex; gap: 12px; }
  .s-seg-opt { flex: 1; position: relative; cursor: pointer; }
  .s-seg-opt input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
  .s-seg-opt span { display: block; text-align: center; padding: 12px 14px; border: 1px solid var(--notte-hairline); border-radius: 5px; color: rgba(243,237,224,0.82); font-size: 0.92rem; transition: border-color 0.25s, color 0.25s, background 0.25s; }
  .s-seg-opt input:checked + span { border-color: var(--oro-500); color: var(--text-on-night); background: rgba(166,130,74,0.14); }
  .s-form-foot { grid-column: 1 / -1; display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
  .s-form-note { font-size: 0.78rem; font-style: italic; color: var(--text-on-night-muted); max-width: 44ch; margin: 0; }
  .s-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .s-form-status { flex-basis: 100%; min-height: 1.4em; margin: 0; font-size: 0.88rem; color: var(--text-on-night-muted); }
  .s-form-status.is-success { color: #d8c58e; }
  .s-form-status.is-error { color: #f0b2ad; }
  .s-form button:disabled { cursor: wait; opacity: .7; }

  @media (max-width: 900px) {
    .s-hero-inner, .s-cont { grid-template-columns: 1fr; }
    .s-hero-spread-top { grid-template-columns: 1fr; gap: 24px; align-items: start; }
    .s-hero-aside { display: none; }
    .s-pillars, .s-serv-grid, .s-dest-list, .s-stats, .s-sett-grid, .s-op-grid, .s-ins-list { grid-template-columns: repeat(2, 1fr); }
    .s-perc-grid { grid-template-columns: 1fr; }
    .s-exp-grid { grid-template-columns: 1fr; }
    .s-studio-split { grid-template-columns: 1fr; }
    .s-terz { grid-template-columns: 1fr; gap: 14px; }
    .s-stat:first-child { padding-left: 28px; }
    .s-stat:nth-child(3) { border-left: none; padding-left: 28px; }
    .s-cont-r { border-left: none; padding-left: 0; border-top: 1px solid var(--notte-hairline); padding-top: 32px; }
    .s-form { grid-template-columns: 1fr; }
  }

  /* La barra desktop ha bisogno di più spazio: passa al menu mobile già a 1080px */
  @media (max-width: 1080px) {
    .s-nav-links { display: none; }
    .s-nav-cta { display: none; }
    .s-nav-burger { display: flex; }
    .s-nav.is-menu-open { background: var(--avorio-50); border-bottom: 1px solid var(--avorio-line); }
    .s-nav.is-menu-open .s-nav-mobile { display: flex; flex-direction: column; padding: 8px 24px 24px; background: var(--avorio-50); border-bottom: 1px solid var(--avorio-line); }
    .s-nav-mobile-link { font-family: var(--font-serif); font-size: 1.05rem; color: var(--notte-800); background: none; border: none; border-top: 1px solid var(--avorio-line); padding: 15px 4px; text-align: left; cursor: pointer; }
    .s-nav-mobile-link.is-active { color: var(--oro-700); }
    .s-nav-mobile-cta { margin-top: 16px; font-family: var(--font-inscribed); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 14px; background: var(--notte-800); color: #fff; border: none; border-radius: var(--radius-pill); cursor: pointer; }
  }

  @media (max-width: 560px) {
    .s-pillars, .s-serv-grid, .s-dest-list, .s-stats, .s-sett-grid, .s-op-grid, .s-ins-list, .s-exp-grid { grid-template-columns: 1fr; }
    .s-stat { border-left: none !important; padding: 18px 0 !important; }
    .s-statsband .s-shell { padding-top: 6px; padding-bottom: 6px; }
    .s-sec { padding: 28px 0; }
    .s-sec-head { margin-bottom: 18px; }
    /* Card servizio compatte: freccetta a fianco del titolo, descrizione (se presente) sotto */
    .s-serv { flex-direction: row; align-items: baseline; flex-wrap: wrap; column-gap: 12px; padding: 14px 18px; }
    .s-serv-n { margin-bottom: 0; font-size: 1.1rem; }
    .s-serv-t { margin: 0; font-size: 1.04rem; line-height: 1.25; }
    .s-serv-d { flex-basis: 100%; margin: 3px 0 0; }
    .s-lens { display: grid; grid-template-columns: 38px 1fr; column-gap: 14px; padding: 22px 0; }
    .s-lens-n { grid-column: 1; grid-row: 1; margin-bottom: 0; font-size: 1.7rem; }
    .s-lens-t { grid-column: 2; grid-row: 1; min-height: 0; margin: 0 0 8px; align-self: center; }
    .s-lens-d { grid-column: 2; grid-row: 2; }
    .s-hero-band { min-height: 100svh; justify-content: flex-start; }
    .s-hero-band-top { padding: 104px 0 8px; }
    .s-hero-band-body { padding: 22px 0 56px; gap: 20px; align-items: stretch; text-align: left; }
    .s-hero-band-body .s-hero-lead { text-align: left; margin: 0; }
    .s-hero-band .s-hero-title { margin-top: 16px; }
    .s-nav-inner { padding: 14px 22px; }
    /* Sezioni un po' più strette su cellulare */
    .s-shell { padding-left: 24px; padding-right: 24px; }
    /* Lead con sfondo: niente larghezza fissa (evita il taglio a destra su cellulare) */
    .s-hero--bg .s-hero-lead { width: auto; max-width: 100%; display: block; font-size: 1.02rem; padding-left: 16px; border-left-width: 2px; margin-top: 20px; }
    .s-hero-actions { gap: 16px 20px; }
    .s-hero-bg-ctrl { bottom: 12px; right: 12px; }
    .s-hero-bg-btn { font-size: 0.62rem; padding: 7px 11px; }
    /* Hero riempie lo schermo: i counter restano sotto la piega su cellulare */
    .s-hero--full { min-height: 100svh; justify-content: flex-start; padding: 104px 0 48px; }
    .s-hero--bg .s-hero-actions { margin-top: 30px; }
    .s-hero-inner--centered .s-hero-title { margin-bottom: 24px; }
    .s-claim-text { max-width: 16ch; }
    /* Su cellulare l'inquadratura del video si sposta a destra per mostrare la ruspa */
    .s-hero-video { object-position: 80% center !important; }
  }
/* Navigazione e footer condivisi con la homepage. */
.gdd-shared-brand{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none}
.gdd-shared-brand img{width:auto;height:42px;display:block}
.gdd-shared-brand-rule{width:1px;height:34px;background:var(--oro-500);opacity:.85}
.gdd-shared-brand-name{font-family:var(--font-inscribed);font-size:1.12rem;font-weight:600;letter-spacing:.16em;color:#f3ede0;white-space:nowrap}
.gdd-shared-foot{padding:48px 0 34px}
.gdd-shared-foot-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.gdd-shared-foot-nav{display:flex;gap:6px;flex-wrap:wrap}
.gdd-shared-foot-nav a{padding:6px 10px;color:var(--text-on-night-muted);font-size:.85rem;text-decoration:none}
.gdd-shared-foot-nav a:hover,.gdd-shared-foot-contact a:hover,.gdd-shared-foot-fine a:hover{color:#fff}
.gdd-shared-foot-contact{width:100%;margin:4px 0 0;color:var(--text-on-night-muted);font-size:.82rem;font-style:normal;line-height:1.6}
.gdd-shared-foot-contact a,.gdd-shared-foot-fine a{color:inherit}
.gdd-shared-foot-fine{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:0}
.s-nav--onDark.is-scrolled .s-nav-link{color:var(--notte-700)}
.s-nav--onDark.is-scrolled .s-nav-link:hover,.s-nav--onDark.is-scrolled .s-nav-link.is-active{color:var(--notte-900)}
.s-nav--onDark.is-scrolled .s-nav-link::after{background:var(--oro-600)}
.s-nav--onDark.is-scrolled .gdd-shared-brand-name{color:var(--notte-800)}
.s-nav--onDark.is-scrolled .s-burger-line{background:var(--notte-800)}
[id]{scroll-margin-top:92px}
@media(max-width:760px){
  .gdd-shared-brand-name{font-size:1rem}
  .gdd-shared-foot-inner{align-items:flex-start}
  .gdd-shared-foot-nav{width:100%}
  /* Card-grid con grid-template inline (repeat 2/3/4): 2 colonne su tablet, evita overflow orizzontale */
  .s-serv-grid[style*="repeat("]{grid-template-columns:repeat(2,1fr)!important}
  /* Sezioni piu' accorpate su tablet */
  .s-sec{padding:60px 0}
  .s-sec-head{margin-bottom:36px}
}
@media(max-width:560px){
  .s-serv-grid[style*="repeat("]{grid-template-columns:1fr!important}
  .s-svc-layout{grid-template-columns:1fr!important}
  .gdd-shared-foot-nav{display:grid;grid-template-columns:1fr 1fr}
}

/* Osservatorio: unico sistema per i contenuti delle note. */
.s-article{color:var(--text-on-ivory);font-family:var(--font-serif)}
.s-article>*:first-child{margin-top:0}
.s-article h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.5rem,2.4vw,2rem);color:var(--notte-800);margin:1.9em 0 .45em;max-width:34ch;line-height:1.18}
.s-article h3{font-family:var(--font-display);font-weight:600;font-size:clamp(1.12rem,1.5vw,1.28rem);color:var(--notte-800);margin:1.5em 0 .4em;max-width:40ch;line-height:1.3}
.s-article p{max-width:70ch;line-height:1.75;margin:0 0 1.05em}
.s-article a{color:var(--blu-600);text-decoration:none;border-bottom:1px solid var(--oro-300)}
.s-article a:hover{color:var(--blu-500);border-bottom-color:var(--oro-600)}
.s-article strong{font-weight:600;color:var(--notte-800)}
.s-article ul{list-style:none;padding:0;max-width:66ch;margin:0 0 1.2em}
.s-article ul li{position:relative;padding-left:26px;margin-bottom:.5em;line-height:1.6}
.s-article ul li::before{content:"";position:absolute;left:2px;top:.62em;width:7px;height:7px;background:var(--oro-600);transform:rotate(45deg)}
.s-article ol{max-width:66ch;margin:0 0 1.2em;padding-left:22px}
.s-article ol li{margin-bottom:.5em;line-height:1.6}
.s-article .kick{font-style:italic;color:var(--text-on-ivory-muted);margin-bottom:24px}
.s-article .lead-lg{font-size:1.18rem;line-height:1.6}

.s-art-callout{background:var(--avorio-200);border-top:3px solid var(--oro-600);border-radius:12px;padding:24px 28px;margin:2em 0;max-width:68ch}
.s-art-callout>*:last-child{margin-bottom:0}
.s-art-callout .s-art-label{display:block;font-family:var(--font-inscribed);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#6a4f20;margin-bottom:10px}
.s-art-callout p{max-width:none;font-size:.98rem}
.s-art-callout--warn{border-top-color:var(--blu-600)}
.s-art-callout--warn .s-art-label{color:var(--blu-600)}

.s-art-quote{margin:2em 0;padding:4px 0 4px 24px;border-left:2px solid var(--oro-600);max-width:66ch}
.s-art-quote p{font-style:italic;color:var(--text-on-ivory-muted);margin-bottom:.5em}
.s-art-quote cite{display:block;font-style:normal;font-size:.82rem;letter-spacing:.04em;color:var(--notte-700)}

.s-art-tablewrap{margin:2em 0;overflow-x:auto}
.s-art-table{width:100%;border-collapse:collapse;font-size:.95rem}
.s-art-table caption{text-align:left;font-family:var(--font-inscribed);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#6a4f20;padding-bottom:12px}
.s-art-table th,.s-art-table td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--avorio-line);vertical-align:top;line-height:1.55}
.s-art-table thead th{font-family:var(--font-inscribed);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--notte-800);border-bottom:1px solid var(--notte-800)}
.s-art-table tbody th{font-weight:600;color:var(--notte-800);width:26%}

.s-art-steps{list-style:none;counter-reset:st;margin:2em 0;padding:0;max-width:68ch}
.s-art-steps li{counter-increment:st;position:relative;padding:0 0 18px 52px;border-bottom:1px solid var(--avorio-line);margin-bottom:18px;line-height:1.6}
.s-art-steps li:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.s-art-steps li::before{content:counter(st,decimal-leading-zero);position:absolute;left:0;top:-2px;font-family:var(--font-inscribed);font-size:.9rem;letter-spacing:.08em;color:var(--oro-600)}
.s-art-steps li strong{display:block;margin-bottom:4px}

.s-art-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--avorio-line);border:1px solid var(--avorio-line);margin:2em 0}
.s-art-kpi>div{background:var(--avorio-50);padding:22px 20px}
.s-art-kpi b{display:block;font-family:var(--font-display);font-weight:500;font-size:1.7rem;line-height:1.1;color:var(--notte-800)}
.s-art-kpi span{display:block;margin-top:7px;font-size:.84rem;line-height:1.45;color:var(--text-on-ivory-muted)}

.s-art-fig{margin:2.2em 0}
.s-art-fig svg,.s-art-fig img{display:block;width:100%;height:auto}
.s-art-fig figcaption{margin-top:12px;font-size:.84rem;line-height:1.5;color:var(--text-on-ivory-muted);border-top:1px solid var(--avorio-line);padding-top:10px}

.s-art-faq{margin:2.2em 0;border-top:1px solid var(--avorio-line)}
.s-art-faq details{border-bottom:1px solid var(--avorio-line)}
.s-art-faq summary{cursor:pointer;list-style:none;padding:16px 32px 16px 0;position:relative;font-weight:600;color:var(--notte-800);line-height:1.5}
.s-art-faq summary::-webkit-details-marker{display:none}
.s-art-faq summary::after{content:"+";position:absolute;right:4px;top:14px;color:var(--oro-600);font-size:1.1rem}
.s-art-faq details[open] summary::after{content:"\2013"}
.s-art-faq details>p{padding:0 0 18px;max-width:66ch;margin:0}

.s-art-takeaway{margin:2.4em 0 0;padding:26px 0 0;border-top:2px solid var(--notte-800);max-width:68ch}
.s-art-takeaway .s-art-label{display:block;font-family:var(--font-inscribed);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--notte-800);margin-bottom:12px}

@media(max-width:820px){
  .s-svc-layout{grid-template-columns:1fr!important}
  .s-svc-layout aside{position:static!important}
}
@media(max-width:640px){
  .s-art-callout{padding:20px}
  .s-art-kpi b{font-size:1.45rem}
}

/* Skip-link: reso visibile al focus da tastiera (override dell'inline left:-9999px) */
.s-skip:focus{left:16px !important;top:12px !important;border-radius:6px;outline:3px solid var(--oro-300);outline-offset:2px;text-decoration:none}

/* Breadcrumb spostata SOPRA l'hero (da align-pages): resa scura e coerente con l'hero --night,
   con clearance per la nav fixed; l'hero non deve piu' fare da spaziatore per la nav. */
.s-crumb{background:var(--notte-900)!important;border-bottom:1px solid var(--notte-hairline)!important;padding-top:80px}
.s-crumb a{color:var(--text-on-night-muted)!important;text-decoration:none}
.s-crumb a:hover{color:var(--oro-300)!important}
.s-crumb [aria-current]{color:var(--text-on-night)!important}
.s-crumb + .s-hero{padding-top:36px}
@media(max-width:600px){
  .s-crumb{padding-top:74px}
  .s-crumb ol{padding-top:11px!important;padding-bottom:12px!important}
  .s-crumb + .s-hero{padding-top:22px}
  .s-hero{padding-bottom:46px}
}
