/**
 * style-custom.css
 *
 * Stili progetto-specifici.
 * Il tema parte da una base grafica neutra; colori, tipografia,
 * spaziature e componenti verranno definiti dal design del progetto.
 *
 * @package GDS-Fullcreative
 */

/* =========================================================
   INIZIO: Variabili globali progetto
   ========================================================= */
:root {
  /* Layout XD */
  --gds-canvas-width: 1920px;
  --gds-content-width: 1400px;
  /* Home mobile (XD 430px): container 358px → ~36px per lato. */
  --gds-home-pad-x: clamp(24px, 8.37vw, 36px);
  /* Tipografia home mobile condivisa (hero-navbar.svg / about-us.svg). */
  --gds-home-title-fs: clamp(26px, 7.6vw, 33px);
  --gds-home-title-lh: 1.18;
  --gds-home-text-fs: clamp(18px, 5.1vw, 22px);
  --gds-home-text-lh: 1.27;
  /* Spaziature verticali hero (430px): titolo→grafico 63 · grafico→testo 36 · testo→CTA 36. */
  --gds-home-gap-title-graphic: clamp(40px, 14.65vw, 63px);
  --gds-home-gap-graphic-text: clamp(24px, 8.37vw, 36px);
  --gds-home-gap-text-cta: clamp(24px, 8.37vw, 36px);
  --gds-home-gap-title-lead: clamp(28px, 10vw, 43px);
  --gds-home-hero-pt: clamp(20px, 6.75vw, 29px);
  /* DIKW mobile (DIKW.svg su 430px). */
  --gds-home-cerchi-bg: #e5e2e4;
  --gds-home-cerchi-pt: clamp(32px, 12.6vw, 54px);
  --gds-home-gap-cerchi-text: clamp(32px, 10.7vw, 46px);
  /* Testo nel buco centrale: 4 righe con <br>, leggermente sotto il titolo sezione. */
  --gds-home-cerchi-label-fs: clamp(19px, 5.35vw, 26px);
  --gds-home-cerchi-label-lh: 1.22;
  /* CTA home mobile (XD 430px): 16px · lh 18 · altezza 39. */
  --gds-home-btn-fs: 16px;
  --gds-home-btn-lh: 18px;
  --gds-home-btn-h: 39px;
  /* Allineamento contenuto al bordo sinistro del container (logo navbar) */
  --gds-content-offset-x: max(20px, calc((100vw - var(--gds-content-width)) / 2));
  --gds-navbar-height-expanded: 84px;
  --gds-navbar-height-compact: 72px;
  --gds-navbar-height: var(--gds-navbar-height-expanded);
  --gds-navbar-bg: #ffffff;
  --gds-navbar-link: var(--gds-color-gray);
  --gds-navbar-border: var(--gds-color-gray);
  --gds-footer-height: 330px;
  /* Footer mobile (footer-mobile.svg 430×355). */
  --gds-footer-pad-x: var(--gds-home-pad-x);
  --gds-footer-mobile-height: clamp(320px, 82.56vw, 355px);
  --gds-footer-mobile-pt: 26px;
  --gds-footer-mobile-pb: clamp(44px, 10.93vw, 47px);
  --gds-footer-logo-w: clamp(97px, 27.21vw, 117px);
  --gds-footer-logo-h: clamp(33px, 9.31vw, 40px);
  --gds-footer-logo-mb: clamp(15px, 4.65vw, 20px);
  --gds-footer-address-mb: clamp(28px, 7.67vw, 33px);
  --gds-footer-registration-mb: clamp(32px, 8.84vw, 38px);
  --gds-footer-text-fs: 16px;
  --gds-footer-text-lh: 25px;
  --gds-footer-legal-lh: 19px;
  --gds-footer-credit-lh: 19px;
  --gds-footer-legal-item-gap: 0;
  --gds-footer-legal-credits-gap: clamp(22px, 6.05vw, 26px);
  --gds-footer-credits-gap: 0;

  /* Palette XD */
  --gds-color-gold: #ac8a30;
  --gds-color-gold-bright: #d4a018;
  --gds-color-lavender: #9b6fe3;
  --gds-color-purple: #4b3f72;
  --gds-color-teal-dark: #2c6567;
  --gds-color-teal: #0fa2a4;
  --gds-color-navy: #032a5d;
  --gds-color-slate: #2a2f3a;
  --gds-color-black: #0f1115;
  --gds-color-gray: #64676e;
  --gds-color-light: #f2f2f2;
  --gds-color-red: #c72a29;
  --gds-color-blue: #003fda;
  /* Case study / XD aggiuntivi (non usati altrove) */
  --gds-color-aqua: #3ed1d4;
  --gds-color-moss: #83c15a;
  --gds-color-petrol: #0aaaaa;

  /* Template Case Study — ordine griglia XD (blocchi.svg): #003fda · #9b6fe3 · #3ed1d4 · #4b3f72 · #83c15a · #0aaaaa */

  /* Case study — blocchi XD (canvas 1920) */
  --gds-cs-card-width: 960px;
  --gds-cs-card-height: 650px;
  /* Larghezza massima contenitore testo XD (CLIENT + SUMMARY + BODY) */
  --gds-cs-card-text-width: 580px;
  --gds-cs-gap-title-summary: clamp(28px, 2.24vw, 34px); /* Δ anchor y 571→653, meno allineamenti interni */
  --gds-cs-gap-summary-body: 30px; /* spaziatura fissa tra sottotitolo e corpo (XD) */
  --gds-cs-gap-body-button: clamp(28px, 2.656vw, 51px); /* XD: dopo paragrafo, prima FIND MORE — ora tra .gds-cs-card__text e .gds-cs-card__more */
  /* Hero Case Study (XD) */
  --gds-cs-hero-title-max-width: 1396px;
  --gds-cs-hero-lead-wrap-width: 972px; /* L (larghezza) blocco testo hero in Figma/XD */
  --gds-cs-hero-lead-color: #0a1729;
  --gds-cs-hero-lead-fs: clamp(18px, 1.53vw, 22px);
  --gds-cs-hero-lead-lh: 1.5;
  --gds-cs-hero-lead-tracking: 0;
  /* Case Study mobile (430px): card = slide, altezza artboard 523px. */
  --gds-cs-mobile-slide-h: clamp(462px, 121.63vw, 523px);
  --gds-cs-mobile-dots-offset: clamp(48px, 11.16vw, 56px);
  --gds-cs-mobile-hero-title-fs: clamp(26px, 7.67vw, 33px);
  --gds-cs-mobile-hero-title-lh: clamp(30px, 8.84vw, 38px);
  --gds-cs-mobile-hero-title-max-w: clamp(280px, 83.49vw, 359px);
  --gds-cs-mobile-hero-lead-fs: clamp(18px, 5.12vw, 22px);
  --gds-cs-mobile-hero-lead-lh: clamp(23px, 6.51vw, 28px);
  --gds-cs-mobile-hero-lead-tracking: 0.03em;
  --gds-cs-mobile-hero-text-color: #0d0f11;
  --gds-cs-mobile-card-client-fs: clamp(32px, 9.3vw, 40px);
  --gds-cs-mobile-card-client-lh: clamp(32px, 9.3vw, 40px);
  --gds-cs-mobile-card-summary-fs: clamp(24px, 6.98vw, 30px);
  --gds-cs-mobile-card-summary-lh: clamp(28px, 8.14vw, 35px);
  --gds-cs-mobile-card-body-fs: clamp(24px, 6.98vw, 30px);
  --gds-cs-mobile-card-body-lh: clamp(28px, 8.14vw, 35px);
  --gds-cs-mobile-gap-hero-title-lead: clamp(20px, 5.58vw, 24px);
  --gds-cs-mobile-gap-title-summary: 40px;
  --gds-cs-mobile-gap-summary-body: clamp(16px, 4.19vw, 18px);
  --gds-cs-mobile-cta-text-color: #0d0f11;
  --gds-cs-mobile-cta-gap-title-subtitle: clamp(20px, 5.58vw, 24px);
  --gds-cs-mobile-cta-gap-subtitle-button: clamp(28px, 7.44vw, 32px);

  /* About Us — mockup: sfondo scuro #1A1D23, 3 sezioni grafiche full width */
  --gds-color-about-section: #1a1d23;
  --gds-about-journey-min-height: 0;
  /* Titoli sezioni About + chiusura: 35px ancorato a 1440 (come hero/home). */
  --gds-about-section-title-fs: clamp(28px, 2.43vw, 35px);
  --gds-about-section-title-lh: 1.26;
  --gds-about-journey-title-fw: 300;
  --gds-about-journey-lead-fs: 22px;
  --gds-about-journey-lead-lh: 33px;
  --gds-about-journey-lead-tracking: 0;
  --gds-about-cta-title-fs: clamp(28px, 2.43vw, 35px);
  --gds-about-cta-title-lh: 1.26;
  --gds-about-cta-subtitle-fs: clamp(18px, 1.53vw, 22px);
  --gds-about-cta-subtitle-lh: 1.5;
  --gds-about-cta-subtitle-tracking: 0;
  --gds-about-journey-gap-title-lead: 12px;
  --gds-about-journey-text-max: 972px;
  --gds-about-journey-figure-pt: 88px; /* distanza sottotitolo → grafico (Figma) */
  --gds-about-journey-grid-max: min(100%, 1400px);
  --gds-about-journey-cell-pad-x: clamp(20px, 4vw, 48px);
  --gds-about-journey-cell-pad-y: clamp(24px, 3.5vw, 40px);
  --gds-about-journey-caption-fs: clamp(16px, 1.39vw, 20px);
  --gds-about-journey-caption-lh: 1.4;
  --gds-about-journey-caption-gap: clamp(16px, 2vw, 24px);
  --gds-about-journey-divider: rgba(255, 255, 255, 0.35);
  --gds-about-journey-mobile-slide-min-h: clamp(280px, 72vw, 420px);
  --gds-about-journey-mobile-dots-offset: clamp(20px, 5vw, 32px);
  /* Unica variabile: scala grafici About su mobile (1 = 100%, 0.6 = 60%). */
  --gds-about-mobile-graphic-scale: 0.9;
  --gds-about-journey-fade-duration: 1.15s;
  /* Un passo alla volta: il successivo parte a fade del precedente concluso (1 → 2 → 3 → 4). */
  --gds-about-journey-fade-gap: 0.2s;
  --gds-about-journey-fade-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --gds-about-expertise-card-bg: #003fda;
  --gds-about-expertise-card-radius: 50px;
  --gds-about-expertise-card-min-h: clamp(220px, 56vw, 309px);
  --gds-about-expertise-card-pad: clamp(28px, 7vw, 40px);
  --gds-about-expertise-icon-max: clamp(56px, 14vw, 80px);
  --gds-about-expertise-card-title-fs: clamp(22px, 5.5vw, 32px);
  --gds-about-expertise-card-title-lh: 1.25;
  --gds-about-expertise-text-fs: clamp(16px, 4.1vw, 18px);
  --gds-about-expertise-text-lh: 1.5;
  --gds-about-expertise-gap-header-carousel: clamp(32px, 8vw, 48px);
  --gds-about-expertise-gap-card-text: clamp(20px, 5vw, 28px);
  --gds-about-expertise-mobile-dots-offset: clamp(16px, 4vw, 24px);
  --gds-about-expertise-mobile-card-radius-bottom: 50px;
  --gds-about-expertise-mobile-rule-color: rgba(255, 255, 255, 0.92);
  --gds-about-expertise-connector-max-w: min(100%, 420px);
  --gds-about-expertise-mobile-stage-max: min(100%, 430px);
  /* Mockup mobile cornice expertise: valori a larghezza stage 430px, scala con 100cqw. */
  --gds-about-expertise-mobile-ref-w: 430;
  /* Pavimenti tipografia cornice (scala su --gds-about-expertise-mobile-scale nello stage). */
  --gds-about-expertise-mobile-body-fs-floor: 17px;
  --gds-about-expertise-mobile-title-fs-floor: 22px;
  /* Cornice: 3 fasce viewport — 430 (base), 341–385 (mid), ≤340 (narrow). */
  --gds-about-expertise-mobile-mid-vp: 385;
  --gds-about-expertise-mobile-body-fs-mid-max: 20px;
  --gds-about-expertise-mobile-title-fs-mid-max: 31px;
  --gds-about-expertise-mobile-card-title-fs-mid-max: 25px;
  --gds-about-expertise-mobile-narrow-vp: 340;
  --gds-about-expertise-mobile-body-fs-narrow-max: 18px;
  --gds-about-expertise-mobile-body-fs-narrow-floor: 15px;
  --gds-about-expertise-mobile-title-fs-narrow-max: 30px;
  --gds-about-expertise-mobile-frame-carousel-y: 836;
  /* Riferimento distanze: schema-cerchi-about (442×1080), variabili sovrascritte inline da ACF. */
  --gds-about-expertise-mobile-frame-design-w: 442;
  --gds-about-expertise-mobile-frame-design-h: 1080;
  /* Sotto l’arco superiore tratteggiato (y≈354 nel file schema-cerchi). */
  --gds-about-expertise-mobile-frame-title-y: 310;
  --gds-about-expertise-mobile-frame-title-lh-design: 38;
  --gds-about-expertise-mobile-frame-intro-y: 675;
  --gds-about-expertise-mobile-frame-intro-w-design: 358;
  /* Senza cornice: padding normale. Con cornice: offset titolo proporzionale all’altezza del mockup. */
  --gds-about-expertise-mobile-content-pt: clamp(48px, 12vw, 72px);
  --gds-about-expertise-mobile-content-pb: clamp(48px, 12vw, 72px);
  --gds-about-expertise-mobile-frame-content-pb-design: 32;
  /* Sotto 430px stage: riserva extra per l’arco tratteggiato (in unità design 442×1080). */
  --gds-about-expertise-mobile-frame-content-pb-narrow: 120;
  /* Footer carousel: 22px / 28px a stage 430px; sotto 430px scala con cqw (es. 370px → ~19px). */
  --gds-about-expertise-mobile-footer-design-w: 430;
  --gds-about-expertise-mobile-footer-mt: clamp(18px, 4.5vw, 28px);
  --gds-about-expertise-mobile-footer-px: 36px;
  /* Titolo + intro blocchi testuali mobile About (cornice expertise + header embedded) */
  --gds-about-mobile-framed-title-fs: clamp(28px, 8.2vw, 33px);
  --gds-about-mobile-framed-title-lh: 38px;
  --gds-about-mobile-framed-title-ls: 0;
  --gds-about-mobile-framed-intro-fs: 22px;
  --gds-about-mobile-framed-intro-lh: 28px;
  --gds-about-mobile-framed-intro-ls: 0.03em;
  --gds-about-mobile-framed-text-max-w: 358px;
  --gds-about-mobile-framed-text-px: 36px;
  --gds-about-expertise-mobile-title-fs: var(--gds-about-mobile-framed-title-fs);
  --gds-about-expertise-mobile-title-lh: var(--gds-about-mobile-framed-title-lh);
  --gds-about-expertise-mobile-title-ls: var(--gds-about-mobile-framed-title-ls);
  --gds-about-expertise-mobile-intro-fs: var(--gds-about-mobile-framed-intro-fs);
  --gds-about-expertise-mobile-intro-lh: var(--gds-about-mobile-framed-intro-lh);
  --gds-about-expertise-mobile-intro-ls: var(--gds-about-mobile-framed-intro-ls);
  --gds-about-expertise-mobile-footer-fs: 22px;
  --gds-about-expertise-mobile-footer-lh: 28px;
  --gds-about-expertise-mobile-footer-ls: 0.03em;
  /* Chiusura pagina About sotto i grafici (XD mobile: 359×153, 33/38, px 36) */
  --gds-about-page-closing-mobile-fs: clamp(28px, 8.2vw, 33px);
  --gds-about-page-closing-mobile-lh: 38px;
  --gds-about-page-closing-mobile-ls: 0;
  --gds-about-page-closing-mobile-px: 36px;
  --gds-about-page-closing-mobile-max-w: 359px;
  --gds-about-expertise-mobile-gap-title-intro: 12px;
  --gds-about-expertise-mobile-gap-intro-rule: 35px;
  --gds-about-expertise-mobile-card-w: 232px;
  --gds-about-expertise-mobile-card-h: 193px;
  --gds-about-expertise-mobile-card-pad: 20px 16px;
  --gds-about-expertise-mobile-card-inner-gap: 12px;
  --gds-about-expertise-mobile-card-title-fs: 27px;
  --gds-about-expertise-mobile-card-title-lh: 29px;
  /* Box icona uniforme: altezza fissa + max larghezza (SVG con aspect ratio diversi). */
  --gds-about-expertise-mobile-icon-box-h: 56px;
  --gds-about-expertise-mobile-icon-box-w: 168px;
  /* Ratio grafici: letti da width/height del file caricato (viewBox SVG), non forzati in CSS */
  /* Spazio verticale tra una sezione About e la successiva (stesso ordine di grandezza del mockup) */
  --gds-about-section-stack-gap: 0;
  --gds-about-embedded-closing-mt: clamp(40px, 5vw, 88px);
  --gds-about-embedded-section-pb: clamp(48px, 6vw, 88px);

  /* Pagina Services — hero DIKW (animazioni/servizi/services-hero.svg) */
  --gds-services-hero-gap-title-lead: 12px;
  --gds-services-hero-figure-pt: 88px;
  --gds-services-hero-text-max: 972px;
  --gds-services-hero-title-fs: clamp(28px, 2.43vw, 35px);
  --gds-services-hero-title-lh: 1.26;
  --gds-services-hero-title-tracking: 0;
  --gds-services-hero-lead-fs: clamp(18px, 1.53vw, 22px);
  --gds-services-hero-lead-lh: 1.5;
  --gds-services-hero-lead-tracking: 0;
  --gds-services-hero-figure-max-w: 1490.96px;
  --gds-services-hero-graphic-max-w: 1490.96px;
  --gds-services-hero-graphic-max-h: 427.69px;
  --gds-services-hero-graphic-ratio: 1490.96 / 427.69;
  /* Pannello D — colonna sinistra (Figma / pannello_d) */
  --gds-services-d-panel-title-fs: 36px;
  --gds-services-d-panel-title-lh: 44px;
  --gds-services-d-panel-title-tracking: 0;
  --gds-services-d-panel-text-tracking: 0; /* AV 30 */
  --gds-services-d-panel-eyebrow-fs: 20px;
  --gds-services-d-panel-eyebrow-lh: 31px;
  --gds-services-d-panel-intro-fs: 20px;
  --gds-services-d-panel-intro-lh: 31px;
  --gds-services-d-panel-list-fs: 20px;
  --gds-services-d-panel-list-lh: 41px;
  --gds-services-d-panel-content-max-w: 593px;
  --gds-services-d-panel-head-gap: 0;
  --gds-services-d-panel-mark-to-eyebrow-gap: 46px;
  --gds-services-d-panel-eyebrow-to-title-gap: 16px;
  --gds-services-d-panel-title-to-intro-gap: 20px;

  --gds-services-data-value-bg: #E5E2E4;
  --gds-services-data-value-min-h: 1080px;
  --gds-services-data-value-inner-pt: 76px;
  --gds-services-data-value-inner-pb: 72px;
  --gds-services-data-value-text-max: 972px;
  --gds-services-data-value-gap-title-lead: 12px;
  --gds-services-data-value-gap-lead-timeline: 96px;
  --gds-services-data-value-gap-timeline-cta: 80px;
  --gds-services-data-value-title-fs: clamp(28px, 2.43vw, 35px);
  --gds-services-data-value-title-lh: 1.26;
  --gds-services-data-value-title-tracking: 0;
  --gds-services-data-value-lead-fs: clamp(18px, 1.53vw, 22px);
  --gds-services-data-value-lead-lh: 1.5;
  --gds-services-data-value-lead-tracking: 0;
  --gds-services-data-value-timeline-max-w: 1403px;
  --gds-services-data-value-timeline-ratio: 1403 / 468;
  --gds-services-data-value-timeline-mobile-max-w: 377px;
  --gds-services-data-value-timeline-mobile-ratio: 377 / 1115;
  --gds-services-d-panel-main-gap: 40px;
  /* Lettera D pannello (ridotta ~26% rispetto a XD 285,65 × 194,82 per guadagnare spazio verticale) */
  --gds-services-d-panel-mark-native-w: 106.409;
  --gds-services-d-panel-mark-native-h: 142.217;
  --gds-services-d-panel-mark-w: 210px;
  --gds-services-d-panel-mark-h: 143px;
  /* Native SVG altri pannelli — display proporzionale all'altezza mark D */
  --gds-services-i-panel-mark-native-w: 30.499;
  --gds-services-i-panel-mark-native-h: 144.375;
  --gds-services-k-panel-mark-native-w: 114.015;
  --gds-services-k-panel-mark-native-h: 142.216;
  --gds-services-w-panel-mark-native-w: 150.808;
  --gds-services-w-panel-mark-native-h: 148.269;
  /* Blocco lista capabilities (Adobe XD: L 593px) */
  --gds-services-d-panel-capabilities-max-w: 593px;
  --gds-services-d-panel-hero-gap: var(--gds-services-d-panel-mark-to-eyebrow-gap);
  /* Pannello D — padding superiore colonne navy + blu */
  --gds-services-d-panel-col-padding-top: 48px;
  --gds-services-d-panel-col-padding-bottom: clamp(48px, 8vh, 96px);
  --gds-services-d-panel-col-padding-left: var(--gds-content-offset-x);
  --gds-services-d-panel-viewport-max-h: 100vh;
  --gds-services-d-panel-viewport-max-h: 100dvh;
  --gds-services-d-panel-col-min-height: 100%;
  /* Colonna blu — blocchi feature (Figma: contenuto ~622px larghezza; testo 22 / lh 33 / Light / AV 30) */
  --gds-services-d-feature-max-w: 622px;
  --gds-services-d-feature-fs: 20px;
  --gds-services-d-feature-lh: 31px;
  --gds-services-d-feature-icon-gap: 23px;
  --gds-services-d-feature-stack-gap: clamp(36px, 4vw, 56px);
  /* Colonna blu pannello D — padding sinistro (Figma) */
  --gds-services-d-panel-blue-pl: 88px;
}
/* =========================================================
   FINE: Variabili globali progetto
   ========================================================= */

/* =========================================================
   INIZIO: Debug layout (rimuovere a fine progetto)
   ========================================================= */
.gds-debug-border {
  border: 1px solid var(--gds-color-red);
}

/* =========================================================
   FINE: Debug layout
   ========================================================= */

/* Navbar ridotta dopo scroll: una sola variabile aggiorna padding e altezze */
body.gds-nav-is-compact {
  --gds-navbar-height: var(--gds-navbar-height-compact);
}

/* =========================================================
   INIZIO: Desktop - Struttura generale
   ========================================================= */
.container,
.gds-home-section__inner,
.gds-services-section__inner {
  width: min(100% - 40px, var(--gds-content-width));
  margin-inline: auto;
}
/* =========================================================
   FINE: Desktop - Struttura generale
   ========================================================= */

/* =========================================================
   INIZIO: Desktop - Navbar
   ========================================================= */
.site-header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1000;
  min-height: var(--gds-navbar-height);
  background-color: var(--gds-navbar-bg);
  transition: min-height 0.35s ease, background-color 0.35s ease;
}

.site-header .container {
  position: relative;
  min-height: var(--gds-navbar-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  transition: min-height 0.35s ease, gap 0.35s ease;
}

.site-header .container::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background-color: var(--gds-navbar-border);
}

.site-branding {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}

.custom-logo-link {
  display: block;
}

.custom-logo {
  width: 140px;
  height: auto;
  transition: width 0.35s ease;
}

body.gds-nav-is-compact .site-header .custom-logo {
  width: 120px;
}

.wp-custom-logo .site-branding__text {
  display: none;
}

.site-title {
  margin: 0;
}

.site-title a {
  color: var(--gds-navbar-link);
  text-decoration: none;
}

.site-description {
  display: none;
}

.main-navigation {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 1 1 auto;
}

.main-navigation ul {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 33px;
  margin: 0;
  padding: 0;
  list-style: none;
  transition: gap 0.35s ease;
}

body.gds-nav-is-compact .main-navigation ul {
  gap: 22px;
}

.main-navigation a {
  position: relative;
  display: inline-block;
  color: var(--gds-navbar-link);
  font-family: var(--font-primary);
  font-size: 17px;
  font-weight: 300;
  line-height: 20px;
  letter-spacing: 0;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 0.25s ease, font-size 0.35s ease, line-height 0.35s ease;
}

body.gds-nav-is-compact .main-navigation a {
  font-size: 14px;
  line-height: 17px;
}

.main-navigation a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -8px;
  left: 0;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease, bottom 0.35s ease;
}

body.gds-nav-is-compact .main-navigation a::after {
  bottom: -5px;
}

.main-navigation a:hover,
.main-navigation a:focus-visible {
  color: var(--gds-navbar-link);
}

.main-navigation a:hover::after,
.main-navigation a:focus-visible::after {
  transform: scaleX(1);
}

/* Voce della pagina corrente: linea sempre visibile, del colore della voce
   (currentColor = --gds-navbar-link: #64676e di default, oppure il colore ACF/pagina). */
.main-navigation .current-menu-item > a::after,
.main-navigation .current_page_item > a::after,
.main-navigation .current-menu-ancestor > a::after,
.main-navigation .current-page-ancestor > a::after {
  transform: scaleX(1);
}

/* Off-canvas mobile menu — base (desktop: hamburger/X/overlay nascosti,
   il pannello è trasparente alla griglia così il menu resta inline). */
.menu-toggle,
.menu-close {
  display: none;
}

.menu-toggle {
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--gds-navbar-link);
  cursor: pointer;
}

.menu-toggle__bars {
  display: block;
  width: 30px;
  height: 30px;
  background-color: currentColor;
  -webkit-mask: url("../images/hamburger-menu.svg") center / contain no-repeat;
  mask: url("../images/hamburger-menu.svg") center / contain no-repeat;
}

.gds-mobile-panel {
  display: contents;
}

.menu-close {
  position: absolute;
  top: 14px;
  right: 16px;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--gds-color-slate, #3d4b70);
  cursor: pointer;
}

.menu-close__icon {
  position: relative;
  display: block;
  width: 24px;
  height: 24px;
}

.menu-close__icon::before,
.menu-close__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background-color: currentColor;
}

.menu-close__icon::before {
  transform: translateY(-50%) rotate(45deg);
}

.menu-close__icon::after {
  transform: translateY(-50%) rotate(-45deg);
}

.gds-menu-overlay {
  display: none;
}
/* =========================================================
   FINE: Desktop - Navbar
   ========================================================= */

/* =========================================================
   INIZIO: Mobile - Menu off-canvas (≤979px)
   ========================================================= */
@media (max-width: 979px) {
  .menu-toggle {
    display: inline-flex;
  }

  .gds-mobile-panel {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1100;
    width: min(84vw, 320px);
    padding: 72px 28px 40px;
    background: #ffffff;
    box-shadow: -12px 0 40px rgba(0, 0, 0, 0.18);
    overflow-y: auto;
    overscroll-behavior: contain;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  }

  body.gds-menu-open .gds-mobile-panel {
    transform: translateX(0);
  }

  .menu-close {
    display: inline-flex;
    color: var(--gds-navbar-link);
  }

  .main-navigation .gds-mobile-panel #primary-menu {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    width: 100%;
  }

  .main-navigation .gds-mobile-panel #primary-menu > li {
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  }

  .main-navigation .gds-mobile-panel #primary-menu a {
    display: block;
    padding: 16px 0;
    color: var(--gds-navbar-link);
    font-size: 18px;
    line-height: 1.2;
  }

  .main-navigation .gds-mobile-panel #primary-menu a::after {
    display: none;
  }

  .main-navigation .gds-mobile-panel #primary-menu .current-menu-item > a,
  .main-navigation .gds-mobile-panel #primary-menu .current_page_item > a {
    color: var(--gds-color-red, #c72a29);
  }

  .gds-menu-overlay {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1090;
    background: rgba(17, 19, 24, 0.5);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
  }

  body.gds-menu-open .gds-menu-overlay {
    opacity: 1;
    visibility: visible;
  }

  body.gds-menu-open {
    overflow: hidden;
  }
}
/* =========================================================
   FINE: Mobile - Menu off-canvas
   ========================================================= */

/* =========================================================
   INIZIO: Desktop - Homepage
   ========================================================= */
.site-content {
  min-height: calc(100vh - var(--gds-navbar-height));
  min-height: calc(100dvh - var(--gds-navbar-height));
}

.gds-home {
  width: 100%;
}

.gds-home-section {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  scroll-margin-top: var(--gds-navbar-height);
}

.gds-home-section__inner {
  position: relative;
  z-index: 1;
  min-height: inherit;
}

.gds-home-section__full-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gds-home-section--hero {
  --gds-home-hero-bg: #ffffff;
  --gds-home-hero-text: var(--gds-color-black);
  --gds-home-hero-desc-color: var(--gds-color-slate);
  --gds-home-hero-btn-border: var(--gds-color-red);
  --gds-home-hero-btn-text: var(--gds-color-red);
  padding-top: var(--gds-navbar-height);
  background-color: var(--gds-home-hero-bg);
}

.gds-home-section--hero .gds-home-section__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  column-gap: 80px;
}

.gds-hero__content,
.gds-hero__graphic {
  min-height: 520px;
}

.gds-hero__graphic {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  /* padding-right: 150px; */
}

.gds-hero__graphic-image {
  display: block;
  width: min(100%, 712px);
  height: auto;
  max-width: 100%;
  aspect-ratio: 550 / 377;
  object-fit: contain;
  margin-right: 0;
  margin-bottom: 48px;
}

.gds-hero__content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  max-width: 500px;
}

.gds-hero__title {
  max-width: 560px;
  margin: 0 0 38px;
  color: var(--gds-home-hero-text);
  font-family: var(--font-primary);
  /* 35px ancorato a 1440px (larghezza a cui il container si blocca a 1400). Scala solo sotto. */
  font-size: clamp(28px, 2.43vw, 35px);
  font-weight: 300;
  line-height: 1.26;
  letter-spacing: 0;
}

.gds-hero__description {
  max-width: 560px;
  margin: 0 0 62px;
  color: var(--gds-home-hero-desc-color);
  font-family: var(--font-primary);
  /* 22px ancorato a 1440px; scala solo sotto. */
  font-size: clamp(18px, 1.53vw, 22px);
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0;
}

.gds-hero__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 156px;
  min-height: 50px;
  padding: 0 20px;
  border: 1px solid var(--gds-home-hero-btn-border);
  border-radius: 999px;
  color: var(--gds-home-hero-btn-text);
  font-family: var(--font-primary);
  font-size: var(--gds-home-btn-fs, 16px);
  font-weight: 300;
  line-height: var(--gds-home-btn-lh, 18px);
  letter-spacing: 0;
  text-decoration: none;
  text-transform: uppercase;
}

.gds-home-section--two {
  background-color: var(--gds-home-cerchi-bg, #e5e2e4);
}

.gds-home-section--three {
	background-color: #2a2f3a;
}

.gds-home-section--four {
  background-color: #ffffff;
}

.gds-hcs {
	background: #ffffff;
}

@media (max-width: 1280px) {
  :root {
    /* hero-navbar.svg: linea separatrice a y≈90.5 su artboard 430. */
    --gds-navbar-height-expanded: 90px;
    --gds-navbar-height: var(--gds-navbar-height-expanded);
  }

  .gds-home .gds-home-section__inner {
    width: 100%;
    max-width: none;
    padding-inline: var(--gds-home-pad-x);
    box-sizing: border-box;
  }

  .site-header .container {
    width: 100%;
    max-width: none;
    padding-inline: var(--gds-home-pad-x);
    box-sizing: border-box;
  }

  /* Linea separatrice allineata al contenuto (non full-width del border box). */
  .site-header .container::after {
    left: var(--gds-home-pad-x);
    right: var(--gds-home-pad-x);
  }

  /* Logo mobile (hero-navbar.svg: ~148×51, y≈26). */
  .custom-logo {
    width: 130px;
  }

  /* Su mobile i <br> ACF nei titoli sezione vengono ignorati (riflusso naturale).
     Eccezione: cerchi-visual__label mantiene gli a capo — servono per il buco centrale del grafico. */
  .gds-home .gds-hero__title br,
  .gds-home .about-us-home__title br,
  .gds-home .gds-hcs__title br {
    display: none;
  }
}

/* Mobile/Tablet: hero a colonna singola.
   Ordine: titolo → grafico → descrizione → bottone (display:contents per
   far partecipare i figli di .gds-hero__content alla griglia). */
@media (max-width: 1280px) {
  .gds-home-section--hero {
    min-height: auto;
  }

  .gds-home-section--hero .gds-home-section__inner {
    grid-template-columns: 1fr;
    align-items: start;
    column-gap: 0;
    row-gap: 0;
    padding-top: var(--gds-home-hero-pt);
    padding-bottom: clamp(40px, 8vw, 56px);
  }

  .gds-home-section--hero .gds-hero__content {
    display: contents;
  }

  .gds-home-section--hero .gds-hero__title {
    order: 1;
    max-width: none;
    margin: 0 0 var(--gds-home-gap-title-graphic);
    color: var(--gds-home-hero-text);
    font-size: var(--gds-home-title-fs);
    line-height: var(--gds-home-title-lh);
    letter-spacing: 0;
  }

  .gds-home-section--hero .gds-hero__graphic {
    order: 2;
    min-height: 0;
    margin-bottom: var(--gds-home-gap-graphic-text);
    justify-content: flex-start;
  }

  .gds-home-section--hero .gds-hero__description {
    order: 3;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0 0 var(--gds-home-gap-text-cta);   
    color: var(--gds-home-hero-desc-color);
    font-size: var(--gds-home-text-fs);
    line-height: var(--gds-home-text-lh);
    letter-spacing: 0;
  }

  .gds-home-section--hero .gds-hero__graphic-image {
    width: calc(100% * var(--gds-about-mobile-graphic-scale));
    max-width: 100%;
    margin-inline: auto;
  }

  /* display:contents → il bottone è item di griglia: justify-self evita stretch full-width. */
  .gds-home-section--hero .gds-hero__button {
    order: 4;
    justify-self: start;
    align-self: start;
    width: auto;
    max-width: 100%;
    white-space: nowrap;
  }
}
/* =========================================================
   FINE: Desktop - Homepage
   ========================================================= */

/* =========================================================
   INIZIO: Desktop - Template pagine
   ========================================================= */
.gds-page {
  min-height: 100vh;
  padding-top: var(--gds-navbar-height);
  background-color: #ffffff;
  transition: padding-top 0.35s ease;
}

/* =========================================================
   Pagine di default (404, page, blog, search, archive, single):
   impaginazione coerente col tema (offset navbar + container).
   ========================================================= */
.gds-page--default .content-area {
  box-sizing: border-box;
  width: min(100% - 40px, var(--gds-content-width));
  margin-inline: auto;
  padding-block: clamp(48px, 6vw, 96px);
}

.gds-page--default .page-header,
.gds-page--default .entry-header {
  margin-bottom: clamp(24px, 3vw, 40px);
}

.gds-page--default .page-title,
.gds-page--default .entry-title {
  margin: 0 0 16px;
  color: var(--gds-color-black);
  font-family: var(--font-primary);
  font-size: clamp(28px, 2.43vw, 35px);
  font-weight: 300;
  line-height: 1.26;
  letter-spacing: 0;
}

.gds-page--default .entry-content,
.gds-page--default .page-content {
  color: var(--gds-color-slate);
  font-family: var(--font-primary);
  font-size: clamp(18px, 1.53vw, 22px);
  font-weight: 300;
  line-height: 1.5;
}

.gds-page--default .entry-content > * + *,
.gds-page--default .page-content > * + * {
  margin-top: 1.2em;
}

.gds-page--default .entry-content h2,
.gds-page--default .page-content h2 {
  font-size: clamp(22px, 1.8vw, 28px);
  font-weight: 300;
  line-height: 1.3;
}

.gds-page--default .entry-content h3,
.gds-page--default .page-content h3 {
  font-size: clamp(20px, 1.5vw, 24px);
  font-weight: 300;
  line-height: 1.3;
}

.gds-page--default .entry-content a,
.gds-page--default .page-content a {
  color: var(--gds-color-red);
}

/* 404 centrato */
.gds-page--404 .error-404 {
  max-width: 640px;
  margin-inline: auto;
  text-align: center;
}

.gds-page--404 .widget {
  margin-top: clamp(24px, 3vw, 40px);
  text-align: left;
}

/* Form di ricerca */
.gds-page--default .search-form {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0;
}

.gds-page--default .search-form .search-field {
  box-sizing: border-box;
  height: 44px;
  padding: 0 16px;
  border: 1px solid var(--gds-color-gray);
  border-radius: 999px;
  font-family: var(--font-primary);
  font-size: 16px;
  font-weight: 300;
}

.gds-page--default .search-form .search-submit {
  height: 44px;
  padding: 0 20px;
  border: 1px solid var(--gds-color-red);
  border-radius: 999px;
  background: transparent;
  color: var(--gds-color-red);
  font-family: var(--font-primary);
  font-size: clamp(14px, 0.83vw, 16px);
  font-weight: 300;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.gds-page--default .search-form .search-submit:hover,
.gds-page--default .search-form .search-submit:focus-visible {
  background-color: var(--gds-color-red);
  color: #ffffff;
}

/* Widget (archivi, categorie) */
.gds-page--default .widget-title {
  margin: 0 0 12px;
  font-family: var(--font-primary);
  font-size: 20px;
  font-weight: 400;
  color: var(--gds-color-black);
}

.gds-page--default .widget ul {
  margin: 0;
  padding-left: 18px;
  line-height: 1.8;
}

.gds-page--default .widget a {
  color: var(--gds-color-red);
}

/* Paginazione */
.gds-page--default .pagination,
.gds-page--default .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: clamp(32px, 4vw, 56px);
  font-family: var(--font-primary);
}

.gds-page-hero {
  min-height: calc(100vh - var(--gds-navbar-height));
  display: flex;
  align-items: stretch;
}

.gds-page-hero__inner {
  width: min(100% - 40px, var(--gds-content-width));
  min-height: inherit;
  margin-inline: auto;
}

/* Pagina About Us — mockup: Journey → Embedded → Expertise → CTA */
.gds-page--about-us {
  background-color: #ffffff;
  overflow-x: clip;
}

.gds-about-section {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  box-sizing: border-box;
  background-color: var(--gds-about-section-bg, var(--gds-color-about-section));
  color: var(--gds-about-section-lead, #ffffff);
}

.gds-about-section--journey {
  min-height: var(--gds-about-journey-min-height);
  padding-bottom: 0;
}

.gds-about-section--embedded {
  padding-bottom: clamp(24px, 3vw, 48px);
}

.gds-about-section--expertise {
  padding-bottom: clamp(40px, 6vw, 88px);
}

.gds-about-section--embedded + .gds-about-section--expertise {
  padding-top: 0;
}

.gds-about-expertise__connector {
  display: block;
  width: var(--gds-about-expertise-connector-max-w);
  margin: 0 auto clamp(24px, 5vw, 40px);
  padding: 0;
}

.gds-about-expertise__connector-graphic {
  display: block;
  width: 100%;
  height: auto;
  margin-inline: auto;
  object-fit: contain;
}

.gds-about-section--expertise .gds-about-expertise-layout__header {
  padding-top: 0;
}

/* Expertise: desktop e mobile sono layout separati */
.gds-about-expertise-layout--desktop {
  display: none;
}

.gds-about-expertise-mobile {
  display: none;
}

.gds-about-expertise {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
}

.gds-about-expertise-layout--desktop .gds-about-expertise--desktop {
  margin: var(--gds-about-expertise-gap-header-carousel) 0 0;
  padding: clamp(24px, 5vw, 40px) 0 0;
  border-top: 1px dashed var(--gds-about-journey-divider);
}

/* —— Expertise mobile: cornice SVG + contenuto sopra —— */
.gds-about-expertise-mobile {
  box-sizing: border-box;
  flex: 0 0 auto;
  width: 100%;
  margin: clamp(32px, 8vw, 48px) 0 0;
  padding: 0;
}

.gds-about-expertise-mobile__stage {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: auto;
}

.gds-about-expertise-mobile__stage--has-frame {
  position: relative;
  display: grid;
  align-items: start;
  justify-items: center;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: visible;
  --gds-about-expertise-mobile-scale: min(100vw, 430px);
  /* Tipografia cornice: un solo posto per le 3 fasce (i figli usano solo var()). */
  --gds-expertise-frame-body-fs: clamp(
    var(--gds-about-expertise-mobile-body-fs-floor),
    calc(22 / var(--gds-about-expertise-mobile-ref-w) * var(--gds-about-expertise-mobile-scale)),
    22px
  );
  --gds-expertise-frame-title-fs: clamp(
    var(--gds-about-expertise-mobile-title-fs-floor),
    calc(33 / var(--gds-about-expertise-mobile-ref-w) * var(--gds-about-expertise-mobile-scale)),
    33px
  );
  --gds-expertise-frame-card-title-fs: clamp(
    var(--gds-about-expertise-mobile-body-fs-floor),
    calc(27 / var(--gds-about-expertise-mobile-ref-w) * var(--gds-about-expertise-mobile-scale)),
    27px
  );
  --gds-expertise-frame-body-lh: 28px;
  --gds-expertise-frame-title-lh: 38px;
  --gds-expertise-frame-text-max-w: 358px;
  /* Nessun aspect-ratio: altezza = max(SVG, contenuto). Con aspect-ratio + overflow:hidden l’arco in basso viene tagliato. */
  container-type: inline-size;
  container-name: gds-expertise-mobile-frame;
}

/* Cornice nel flusso: definisce l’altezza minima dello stage (arco completo). */
.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise-mobile__frame {
  grid-area: 1 / 1;
  justify-self: center;
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  object-fit: contain;
  object-position: top center;
  pointer-events: none;
  user-select: none;
}

.gds-about-expertise-mobile__stage--no-frame .gds-about-expertise-mobile__frame {
  display: none;
}

.gds-about-expertise-mobile__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  padding: 0;
}

.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise-mobile__content {
  grid-area: 1 / 1;
  justify-self: stretch;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  align-self: stretch;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 100%;
  overflow-x: clip;
  overflow-y: visible;
  pointer-events: none;
  padding-top: calc(
    var(--gds-about-expertise-mobile-frame-title-y)
    / var(--gds-about-expertise-mobile-frame-design-w)
    * 100cqw
  );
  padding-right: calc(36px * 100cqw / var(--gds-about-expertise-mobile-ref-w));
  padding-bottom: max(
    calc(100px * 100cqw / var(--gds-about-expertise-mobile-ref-w)),
    calc(
      var(--gds-about-expertise-mobile-frame-content-pb-narrow)
      / var(--gds-about-expertise-mobile-frame-design-w)
      * 100cqw
    )
  );
  padding-left: calc(36px * 100cqw / var(--gds-about-expertise-mobile-ref-w));
}

.gds-about-expertise-mobile__header {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: none;
  margin-inline: auto;
  row-gap: var(--gds-about-expertise-mobile-gap-title-intro);
  text-align: center;
}

.gds-about-expertise-mobile__title,
.gds-about-expertise-mobile__intro {
  box-sizing: border-box;
  width: 100%;
  max-width: min(100%, var(--gds-about-mobile-framed-text-max-w));
  margin: 0 auto;
  padding: 0;
  font-family: var(--font-primary);
  font-weight: 300;
  text-align: center;
}

.gds-about-expertise-mobile__title {
  font-size: var(--gds-about-expertise-mobile-title-fs);
  line-height: var(--gds-about-expertise-mobile-title-lh);
  letter-spacing: var(--gds-about-expertise-mobile-title-ls);
  color: var(--gds-about-section-title, #ffffff);
}

.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise-mobile__title {
  font-size: var(--gds-expertise-frame-title-fs);
  line-height: var(--gds-expertise-frame-title-lh);
  letter-spacing: 0;
}

.gds-about-expertise-mobile__intro {
  font-size: var(--gds-about-expertise-mobile-intro-fs);
  line-height: var(--gds-about-expertise-mobile-intro-lh);
  letter-spacing: var(--gds-about-expertise-mobile-intro-ls);
  color: var(--gds-about-section-lead, #ffffff);
}

/* Intro e footer: stesso font-size, letter-spacing 0, stessa larghezza testo. */
.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise-mobile__intro,
.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise-mobile__footer {
  box-sizing: border-box;
  width: 100%;
  max-width: min(100%, var(--gds-expertise-frame-text-max-w));
  margin-inline: auto;
  font-size: var(--gds-expertise-frame-body-fs);
  line-height: var(--gds-expertise-frame-body-lh);
  letter-spacing: 0;
}

.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise-mobile__intro {
  margin-bottom: 0.75em;
}

.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise-mobile__header {
  row-gap: 0.75em;
  width: 100%;
  max-width: min(100%, var(--gds-expertise-frame-text-max-w));
}

.gds-about-expertise--mobile {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: var(--gds-about-expertise-mobile-gap-intro-rule) 0 0;
}

.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise--mobile {
  margin: 1.05em 0 0;
}

.gds-about-expertise-mobile__carousel-top {
  flex: 0 0 auto;
  width: 100%;
  margin: 0;
  padding: 0;
  line-height: 0;
}

.gds-about-expertise-mobile__rule {
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--gds-about-expertise-mobile-rule-color);
}

.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise-mobile__content > * {
  pointer-events: auto;
}

.gds-about-expertise-mobile__footer {
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: var(--gds-about-expertise-mobile-footer-mt) 0 0;
  padding: 0 var(--gds-about-expertise-mobile-footer-px);
  font-family: var(--font-primary);
  font-size: var(--gds-about-expertise-mobile-footer-fs);
  font-weight: 300;
  font-style: normal;
  line-height: var(--gds-about-expertise-mobile-footer-lh);
  letter-spacing: var(--gds-about-expertise-mobile-footer-ls);
  text-align: center;
  color: var(--gds-about-section-lead, #ffffff);
}

.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise-mobile__footer {
  margin: 1.125em 0 0.5em;
  padding: 0;
}

.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise--mobile .gds-about-expertise__card {
  width: min(100%, 14.5em);
  height: 12.0625em;
  min-height: 12.0625em;
  padding: 1.25em 1em;
  gap: 0.75em;
  border-radius: 0 0 3.125em 3.125em;
}

.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise--mobile .gds-about-expertise__card-title {
  font-size: var(--gds-expertise-frame-card-title-fs);
  line-height: 29px;
  letter-spacing: 0;
}

.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise--mobile .gds-about-expertise__icon {
  height: 3.5em;
  min-height: 3.5em;
}

.gds-about-expertise-mobile__stage--has-frame .gds-about-expertise--mobile .gds-about-expertise__icon img {
  max-width: 100%;
  max-height: 3.5em;
  height: 100%;
}

/* <430px: riduce line-height e larghezza testo (con font-size già in scala). */
@media (max-width: 430px) {
  .gds-about-expertise-mobile__stage--has-frame {
    --gds-expertise-frame-body-lh: clamp(
      22px,
      calc(28 / var(--gds-about-expertise-mobile-ref-w) * min(100vw, 430px)),
      28px
    );
    --gds-expertise-frame-title-lh: clamp(
      30px,
      calc(38 / var(--gds-about-expertise-mobile-ref-w) * min(100vw, 430px)),
      38px
    );
    --gds-expertise-frame-text-max-w: calc(
      var(--gds-about-mobile-framed-text-max-w)
      * min(100vw, 430px)
      / var(--gds-about-expertise-mobile-ref-w)
    );
  }
}

/* 341px–385px: aggiorna solo le variabili sullo stage (nessun font-size sui figli). */
@media (max-width: 385px) {
  .gds-about-expertise-mobile__stage--has-frame {
    --gds-expertise-frame-body-fs: clamp(
      var(--gds-about-expertise-mobile-body-fs-floor),
      calc(20 / 385 * min(100vw, 385px)),
      var(--gds-about-expertise-mobile-body-fs-mid-max)
    );
    --gds-expertise-frame-title-fs: clamp(
      var(--gds-about-expertise-mobile-title-fs-floor),
      calc(31 / 385 * min(100vw, 385px)),
      var(--gds-about-expertise-mobile-title-fs-mid-max)
    );
    --gds-expertise-frame-card-title-fs: clamp(
      var(--gds-about-expertise-mobile-body-fs-floor),
      calc(25 / 385 * min(100vw, 385px)),
      var(--gds-about-expertise-mobile-card-title-fs-mid-max)
    );
  }
}

/* ≤340px */
@media (max-width: 340px) {
  .gds-about-expertise-mobile__stage--has-frame {
    --gds-expertise-frame-body-fs: clamp(
      var(--gds-about-expertise-mobile-body-fs-narrow-floor),
      calc(18 / 340 * min(100vw, 340px)),
      var(--gds-about-expertise-mobile-body-fs-narrow-max)
    );
    --gds-expertise-frame-title-fs: clamp(
      var(--gds-about-expertise-mobile-title-fs-floor),
      calc(30 / 340 * min(100vw, 340px)),
      var(--gds-about-expertise-mobile-title-fs-narrow-max)
    );
    --gds-expertise-frame-card-title-fs: clamp(
      var(--gds-about-expertise-mobile-body-fs-narrow-floor),
      calc(24 / 340 * min(100vw, 340px)),
      24px
    );
  }
}

.gds-about-expertise__viewport {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.gds-about-expertise__track {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gds-about-expertise__slide {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  min-width: 0;
  text-align: center;
}

.gds-about-expertise__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: min(100% - (2 * var(--gds-home-pad-x)), 349px);
  min-height: var(--gds-about-expertise-card-min-h);
  margin: 0;
  padding: var(--gds-about-expertise-card-pad);
  border-radius: var(--gds-about-expertise-card-radius);
  background-color: var(--gds-about-expertise-card-bg);
  color: #ffffff;
  gap: clamp(16px, 4vw, 24px);
}

.gds-about-expertise__icon {
  display: block;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
}

.gds-about-expertise__icon img {
  display: block;
  width: auto;
  max-width: var(--gds-about-expertise-icon-max);
  height: auto;
  max-height: var(--gds-about-expertise-icon-max);
  margin-inline: auto;
  object-fit: contain;
}

.gds-about-expertise__card-title {
  margin: 0;
  font-family: var(--font-primary);
  font-size: var(--gds-about-expertise-card-title-fs);
  font-weight: 700;
  font-style: normal;
  line-height: var(--gds-about-expertise-card-title-lh);
  letter-spacing: 0;
  text-align: center;
  color: #ffffff;
}

.gds-about-expertise__text-wrap {
  width: min(100% - (2 * var(--gds-home-pad-x)), 520px);
  margin: var(--gds-about-expertise-gap-card-text) 0 0;
  padding: 0;
}

.gds-about-expertise__text {
  margin: 0;
  font-family: var(--font-primary);
  font-size: var(--gds-about-expertise-text-fs);
  font-weight: 300;
  font-style: normal;
  line-height: var(--gds-about-expertise-text-lh);
  letter-spacing: 0;
  text-align: center;
  color: var(--gds-about-section-lead, #ffffff);
}

@media (min-width: 1281px) {
  .gds-about-expertise-layout--desktop {
    display: block;
  }

  .gds-about-expertise-mobile {
    display: none !important;
  }

  /* Expertise solo mobile (mockup intero già in embedded.svg su desktop). */
  .gds-about-section--expertise:not(:has(.gds-about-expertise-layout--desktop)) {
    display: none;
  }

  .gds-about-expertise--desktop .gds-about-expertise__track {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(24px, 3vw, 48px);
    width: min(100% - 40px, var(--gds-content-width));
    margin-inline: auto;
    align-items: start;
  }

  .gds-about-expertise--desktop .gds-about-expertise__slide {
    padding: 0;
  }

  .gds-about-expertise--desktop .gds-about-expertise__card {
    width: 100%;
    max-width: none;
    min-height: var(--gds-about-expertise-card-min-h);
  }

  .gds-about-expertise--desktop .gds-about-expertise__text-wrap {
    width: 100%;
    max-width: none;
    margin-top: clamp(20px, 2vw, 28px);
  }
}

@media (max-width: 1280px) {
  .gds-about-expertise-layout--desktop {
    display: none !important;
  }

  .gds-about-section--expertise {
    isolation: isolate;
    overflow: visible;
  }

  .gds-about-expertise-mobile,
  .gds-about-expertise-mobile__stage,
  .gds-about-expertise-mobile__stage--has-frame {
    overflow: visible !important;
  }

  .gds-about-expertise-mobile {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 0;
  }

  .gds-about-expertise-mobile__stage,
  .gds-about-expertise-mobile__stage--has-frame {
    width: 100%;
    max-width: var(--gds-about-expertise-mobile-stage-max);
    min-width: 0;
    margin-inline: auto;
  }

  /* Header embedded (es. «Embedded teams») — stessi valori XD del blocco cornice */
  .gds-about-section--embedded .gds-about-section__header {
    width: 100%;
    max-width: none;
    padding-inline: var(--gds-about-mobile-framed-text-px);
    box-sizing: border-box;
    align-items: center;
    text-align: center;
  }

  .gds-about-section--embedded .gds-about-section__title {
    width: min(100%, var(--gds-about-mobile-framed-text-max-w));
    max-width: var(--gds-about-mobile-framed-text-max-w);
    margin-inline: auto;
    padding: 0;
    font-size: var(--gds-about-mobile-framed-title-fs);
    font-weight: 300;
    line-height: var(--gds-about-mobile-framed-title-lh);
    letter-spacing: var(--gds-about-mobile-framed-title-ls);
    text-align: center;
  }

  .gds-about-section--embedded .gds-about-section__lead {
    width: min(100%, var(--gds-about-mobile-framed-text-max-w));
    max-width: var(--gds-about-mobile-framed-text-max-w);
    margin-inline: auto;
    padding: 0;
    font-size: var(--gds-about-mobile-framed-intro-fs);
    font-weight: 300;
    line-height: var(--gds-about-mobile-framed-intro-lh);
    letter-spacing: var(--gds-about-mobile-framed-intro-ls);
    text-align: center;
  }

  .gds-about-expertise-mobile__stage--has-frame {
    display: grid;
    overflow: visible !important;
  }

  .gds-about-expertise-mobile__stage--has-frame .gds-about-expertise-mobile__frame {
    grid-area: 1 / 1;
    justify-self: center;
    position: relative;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    object-position: top center;
  }

  .gds-about-expertise-mobile__stage--has-frame .gds-about-expertise-mobile__content {
    grid-area: 1 / 1;
    position: relative;
    inset: auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 100%;
    overflow-x: clip;
  }

  .gds-page--about-us .gds-about-expertise--mobile .gds-about-expertise__track {
    min-width: 0;
  }

  .gds-page--about-us .gds-about-section--expertise {
    overflow: visible;
  }

  /* overflow-x:clip sulla pagina forza overflow-y:auto e può tagliare figli che “escono” in basso. */
  .gds-page--about-us .gds-about-section--expertise,
  .gds-page--about-us .gds-about-expertise-mobile {
    overflow: visible;
  }

  /* Niente margin tra sezioni: altrimenti si vede lo sfondo bianco della pagina (striscia). */
  .gds-about-section--expertise:has(.gds-about-expertise-mobile) {
    padding-bottom: 0;
  }

  .gds-about-section--expertise:has(.gds-about-expertise-mobile)
    + .gds-about-section--page-closing {
    margin-top: 0;
    padding-top: clamp(20px, 5vw, 32px);
  }

  .gds-about-section--page-closing .gds-about-section__closing {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--gds-about-page-closing-mobile-max-w);
    margin-inline: auto;
    padding-inline: var(--gds-about-page-closing-mobile-px);
    font-size: var(--gds-about-page-closing-mobile-fs);
    font-weight: 300;
    line-height: var(--gds-about-page-closing-mobile-lh);
    letter-spacing: var(--gds-about-page-closing-mobile-ls);
    text-align: center;
  }

  .gds-about-expertise--mobile .gds-about-expertise__viewport {
    overflow: hidden;
    position: relative;
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-top: 0;
    touch-action: pan-y;
  }

  .gds-about-expertise-mobile__stage--no-frame .gds-about-expertise--mobile .gds-about-expertise__card {
    width: min(100%, var(--gds-about-expertise-mobile-card-w));
    height: var(--gds-about-expertise-mobile-card-h);
    min-height: var(--gds-about-expertise-mobile-card-h);
    margin-top: 0;
    padding: var(--gds-about-expertise-mobile-card-pad);
    border-radius: 0 0 var(--gds-about-expertise-mobile-card-radius-bottom) var(--gds-about-expertise-mobile-card-radius-bottom);
    gap: var(--gds-about-expertise-mobile-card-inner-gap);
  }

  .gds-about-expertise-mobile__stage--no-frame .gds-about-expertise--mobile .gds-about-expertise__card-title {
    font-size: var(--gds-about-expertise-mobile-card-title-fs);
    font-weight: 700;
    line-height: var(--gds-about-expertise-mobile-card-title-lh);
    letter-spacing: 0;
  }

  .gds-about-expertise--mobile .gds-about-expertise__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .gds-about-expertise-mobile__stage--no-frame .gds-about-expertise--mobile .gds-about-expertise__icon {
    height: var(--gds-about-expertise-mobile-icon-box-h);
    min-height: var(--gds-about-expertise-mobile-icon-box-h);
  }

  .gds-about-expertise--mobile .gds-about-expertise__icon img {
    display: block;
    width: auto;
    height: 100%;
    margin: 0;
    object-fit: contain;
    object-position: center;
  }

  .gds-about-expertise-mobile__stage--no-frame .gds-about-expertise--mobile .gds-about-expertise__icon img {
    max-width: min(100%, var(--gds-about-expertise-mobile-icon-box-w));
    max-height: var(--gds-about-expertise-mobile-icon-box-h);
  }

  .gds-about-expertise--mobile .gds-about-expertise__text-wrap {
    display: none;
  }

  .gds-page--about-us .gds-about-expertise--mobile .gds-about-expertise__track {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }

  .gds-page--about-us .gds-about-expertise--mobile.is-dragging .gds-about-expertise__track {
    transition: none;
  }

  .gds-page--about-us .gds-about-expertise--mobile .gds-about-expertise__slide {
    flex: 0 0 100%;
    width: 100%;
    padding: 0 0 calc(var(--gds-about-expertise-mobile-dots-offset) + 20px);
  }

  .gds-about-expertise--mobile .gds-about-expertise__dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 2;
    margin: 0;
    padding: 0 0 8px;
    pointer-events: none;
  }

  .gds-about-expertise--mobile .gds-about-expertise__dot {
    display: block;
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.45);
    cursor: pointer;
    pointer-events: auto;
    transition: transform 0.2s ease, background-color 0.2s ease;
  }

  .gds-about-expertise--mobile .gds-about-expertise__dot[aria-selected="true"] {
    width: 10px;
    height: 10px;
    background-color: #ffffff;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gds-page--about-us .gds-about-expertise--mobile .gds-about-expertise__track {
    transition: none !important;
  }
}

/* Due grafici consecutivi: niente gap tra sezione 1 e 2 (stesso sfondo scuro) */
.gds-about-section--journey + .gds-about-section--embedded {
  padding-top: 110px;
}

@media (max-width: 1280px) {
  .gds-about-section--journey + .gds-about-section--embedded {
    padding-top: 40px;
  }
}

.gds-about-section--page-closing {
  padding-top: 0;
  padding-bottom: var(--gds-about-embedded-section-pb);
}

.gds-about-section__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: min(100% - 40px, var(--gds-content-width));
  margin-inline: auto;
  row-gap: var(--gds-about-journey-gap-title-lead);
}

.gds-about-section--journey .gds-about-section__header {
  padding-top: clamp(24px, 3.5vw, 48px);
}

.gds-about-section__title {
  margin: 0;
  max-width: var(--gds-about-journey-text-max);
  font-family: var(--font-primary);
  font-size: var(--gds-about-section-title-fs);
  font-weight: var(--gds-about-journey-title-fw);
  line-height: var(--gds-about-section-title-lh);
  letter-spacing: 0;
  color: var(--gds-about-section-title, #ffffff);
}

/* About: a capo ACF nel titolo hero solo su mobile (≤1280px). */
.gds-page--about-us .gds-about-section--journey .gds-about-section__title br {
  display: none;
}

.gds-about-section__lead {
  margin: 0;
  width: 100%;  
  font-family: var(--font-primary);
  font-size: var(--gds-about-journey-lead-fs);
  font-weight: 300;
  line-height: var(--gds-about-journey-lead-lh);
  letter-spacing: var(--gds-about-journey-lead-tracking);
  color: var(--gds-about-section-lead, #ffffff);
}

.gds-about-section__closing {
  margin: 0 auto;
  padding: 0;
  max-width: var(--gds-about-journey-text-max);
  width: min(100% - 40px, var(--gds-content-width));
  font-family: var(--font-primary);
  font-size: var(--gds-about-section-title-fs);
  font-weight: 300;
  line-height: var(--gds-about-section-title-lh);
  letter-spacing: 0;
  text-align: center;
  color: var(--gds-about-section-closing, var(--gds-about-section-title, #ffffff));
}

.gds-page--about-us .gds-cs-section--cta {
  background-color: var(--gds-about-section-bg, #ffffff);
}

.gds-page--about-us .gds-cs-cta__title {
  color: var(--gds-about-section-title, var(--gds-color-black));
  font-size: var(--gds-about-cta-title-fs);
  line-height: var(--gds-about-cta-title-lh);
  letter-spacing: 0;
}

.gds-page--about-us .gds-cs-cta__subtitle {
  color: var(--gds-about-section-lead, var(--gds-color-gray));
  font-size: var(--gds-about-cta-subtitle-fs);
  line-height: var(--gds-about-cta-subtitle-lh);
  letter-spacing: var(--gds-about-cta-subtitle-tracking);
}

.gds-about-section__figure {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: var(--gds-about-journey-figure-pt) 0 0;
  padding: 0;
}

.gds-about-section--embedded .gds-about-section__header {
  padding-top: 0;
}

.gds-about-section--embedded .gds-about-section__figure {
  width: min(100% - 40px, var(--gds-content-width));
  max-width: var(--gds-content-width);
  margin-inline: auto;
}

.gds-about-section__graphic {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: auto;
  margin-inline: auto;
  object-fit: contain;
}

/* Journey: full bleed orizzontale */
.gds-about-section--journey .gds-about-section__graphic {
  max-width: none;
}

/* About — data journey (griglia 2×2 desktop, carousel ≤1280px) */
.gds-about-journey {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  margin: var(--gds-about-journey-figure-pt) 0 0;
  padding: 0;
}

.gds-about-journey__viewport {
  width: 100%;
}

.gds-about-journey__track {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gds-about-journey__slide {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  min-width: 0;
}

.gds-about-journey__figure {
  display: block;
  flex: 1 1 auto;
  margin: 0;
  padding: 0;
}

.gds-about-journey__graphic {
  display: block;
  box-sizing: border-box;  
  max-width: 100%;
  height: auto;
  margin-inline: auto;
  object-fit: contain;
}

.gds-about-journey__caption {
  flex: 0 0 auto;
  margin: var(--gds-about-journey-caption-gap) 0 0;
  padding: var(--gds-about-journey-caption-gap) 0 0;
  border-top: 1px dashed var(--gds-about-journey-divider);
  font-family: var(--font-primary);
  font-size: var(--gds-about-journey-caption-fs);
  font-style: italic;
  font-weight: 400;
  line-height: var(--gds-about-journey-caption-lh);
  letter-spacing: 0;
  text-align: center;
  color: var(--gds-about-section-lead, #ffffff);
}

@media (min-width: 1281px) {
  .gds-about-journey__track {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    grid-auto-flow: row;
    width: var(--gds-about-journey-grid-max);
    margin-inline: auto;
  }

  .gds-about-journey__slide {
    padding:
      var(--gds-about-journey-cell-pad-y)
      var(--gds-about-journey-cell-pad-x);
  }

  /* Griglia 2×2: lettura 1 | 2 / 3 | 4 (ordine ACF = ordine animazione). */
  .gds-about-journey__slide[data-gds-journey-step="1"] {
    grid-column: 1;
    grid-row: 1;
  }

  .gds-about-journey__slide[data-gds-journey-step="2"] {
    grid-column: 2;
    grid-row: 1;
  }

  .gds-about-journey__slide[data-gds-journey-step="3"] {
    grid-column: 1;
    grid-row: 2;
  }

  .gds-about-journey__slide[data-gds-journey-step="4"] {
    grid-column: 2;
    grid-row: 2;
  }

 /*  .gds-about-journey__slide:nth-child(odd) {
    border-right: 1px dashed var(--gds-about-journey-divider);
  }

  .gds-about-journey__slide:nth-child(-n + 2) {
    border-bottom: 1px dashed var(--gds-about-journey-divider);
  } */

  .gds-about-journey__dots {
    display: none !important;
  }

  /* Dissolvenza scaglionata 4 grafici (solo desktop) */
  .gds-about-journey:not(.gds-about-journey--revealed) .gds-about-journey__slide {
    opacity: 0;
  }

  /* both = opacity 0 durante animation-delay, poi fade fino a 1 (evita flash tutti visibili). */
  .gds-about-journey--revealed .gds-about-journey__slide {
    opacity: 0;
    animation: gds-about-journey-fade-in var(--gds-about-journey-fade-duration) var(--gds-about-journey-fade-ease) both;
  }

  .gds-about-journey--revealed .gds-about-journey__slide[data-gds-journey-step="1"] {
    animation-delay: 0s;
  }

  .gds-about-journey--revealed .gds-about-journey__slide[data-gds-journey-step="2"] {
    animation-delay: calc((var(--gds-about-journey-fade-duration) + var(--gds-about-journey-fade-gap)) * 1);
  }

  .gds-about-journey--revealed .gds-about-journey__slide[data-gds-journey-step="3"] {
    animation-delay: calc((var(--gds-about-journey-fade-duration) + var(--gds-about-journey-fade-gap)) * 2);
  }

  .gds-about-journey--revealed .gds-about-journey__slide[data-gds-journey-step="4"] {
    animation-delay: calc((var(--gds-about-journey-fade-duration) + var(--gds-about-journey-fade-gap)) * 3);
  }
}

@keyframes gds-about-journey-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@media (max-width: 1280px) {
  .gds-about-journey__slide {
    opacity: 1;
    animation: none !important;
  }

  .gds-about-journey__viewport {
    overflow: hidden;
    position: relative;
    touch-action: pan-y;
  }

  .gds-page--about-us .gds-about-journey__track {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }

  .gds-page--about-us .gds-about-journey.is-dragging .gds-about-journey__track {
    transition: none;
  }

  .gds-page--about-us .gds-about-section__header {
    width: 100%;
    max-width: none;
    padding-inline: 36px;
    box-sizing: border-box;
  }

  /* Hero journey About (titolo + lead in cima pagina) */
  .gds-about-section--journey .gds-about-section__title {
    width: min(100%, var(--gds-about-mobile-framed-text-max-w));
    max-width: var(--gds-about-mobile-framed-text-max-w);
    margin-inline: auto;
    font-size: var(--gds-about-mobile-framed-title-fs);
    line-height: var(--gds-about-mobile-framed-title-lh);
    letter-spacing: var(--gds-about-mobile-framed-title-ls);
  }

  .gds-about-section--journey .gds-about-section__lead {
    width: min(100%, var(--gds-about-mobile-framed-text-max-w));
    max-width: var(--gds-about-mobile-framed-text-max-w);
    margin-inline: auto;
    font-size: var(--gds-about-mobile-framed-intro-fs);
    line-height: var(--gds-about-mobile-framed-intro-lh);
    letter-spacing: var(--gds-about-mobile-framed-intro-ls);
  }

  .gds-page--about-us .gds-about-journey__slide {
    flex: 0 0 100%;
    width: 100%;
    min-height: var(--gds-about-journey-mobile-slide-min-h);
    padding:
      0
      clamp(8px, 2vw, 16px)
      calc(var(--gds-about-journey-mobile-dots-offset) + 28px);
  }

  .gds-page--about-us .gds-about-journey__figure {
    width: calc(100% * var(--gds-about-mobile-graphic-scale));
    max-width: 100%;
    margin-inline: auto;
  }

  .gds-page--about-us .gds-about-journey__graphic {
    width: 100%;
  }

  .gds-about-journey__dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    margin: 0;
    padding: 0 0 var(--gds-about-journey-mobile-dots-offset);
    pointer-events: none;
  }

  .gds-about-journey__dot {
    display: block;
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.45);
    cursor: pointer;
    pointer-events: auto;
    transition: transform 0.2s ease, background-color 0.2s ease;
  }

  .gds-about-journey__dot[aria-selected="true"] {
    width: 10px;
    height: 10px;
    background-color: #ffffff;
  }

  /* Chiusura pagina: <br> ACF off per riflusso naturale; titoli/lead hero restano come in ACF. */
  .gds-page--about-us .gds-about-section--page-closing .gds-about-section__closing br {
    display: none;
  }

  .gds-page--about-us .gds-about-section--journey .gds-about-section__title br {
    display: inline;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gds-page--about-us .gds-about-journey__track {
    transition: none !important;
  }

  .gds-about-journey__slide {
    opacity: 1 !important;
    animation: none !important;
  }
}

/* Embedded: grafici da ACF (desktop / mobile separati) */
.gds-about-section--embedded .gds-about-section__graphic {
  display: block;
  max-width: min(100%, 1399px);
  height: auto;
  margin-inline: auto;
  object-fit: contain;
}

.gds-about-section__embedded-mobile-graphic {
  display: none;
}

@media (max-width: 1280px) {
  .gds-about-section__figure--embedded {
    display: none;
    margin: 0;
    padding: 0;
  }

  .gds-about-section--embedded-composite .gds-about-section__graphic--embedded-desktop {
    display: none;
  }

  .gds-about-section__embedded-mobile-graphic {
    display: block;
    width: min(
      calc((100% - (2 * var(--gds-home-pad-x))) * var(--gds-about-mobile-graphic-scale)),
      calc(var(--gds-content-width) * var(--gds-about-mobile-graphic-scale))
    );
    max-width: calc(var(--gds-content-width) * var(--gds-about-mobile-graphic-scale));
    margin-inline: auto;
  }

  .gds-about-section__embedded-mobile-graphic .gds-about-section__graphic--embedded-mobile {
    display: block;
    width: 100%;
    max-width: min(100%, 1399px);
    height: auto;
    margin-inline: auto;
    object-fit: contain;
  }
}

@media (min-width: 1281px) {
  .gds-about-section__embedded-mobile-graphic {
    display: none !important;
  }

  .gds-about-section__graphic--embedded-mobile {
    display: none !important;
  }
}

@media (max-width: 640px) {
  :root {
    --gds-about-journey-min-height: 0;
    /* Lead journey resta 22px (vedi --gds-about-mobile-framed-intro-fs su ≤1280px) */
    --gds-about-cta-subtitle-lh: 1.5;
    --gds-services-hero-title-lh: 1.26;
    --gds-services-hero-lead-lh: 1.5;
    --gds-services-d-panel-title-fs: 28px;
    --gds-services-d-panel-title-lh: 34px;
    --gds-services-d-panel-title-to-intro-gap: 14px;
    --gds-services-d-panel-eyebrow-fs: 16px;
    --gds-services-d-panel-eyebrow-lh: 26px;
    --gds-services-d-panel-intro-fs: 16px;
    --gds-services-d-panel-intro-lh: 26px;
    --gds-services-d-panel-list-fs: 16px;
    --gds-services-d-panel-list-lh: 28px;
    --gds-services-d-panel-mark-to-eyebrow-gap: 32px;
    --gds-services-d-panel-eyebrow-to-title-gap: 12px;
    --gds-services-d-panel-col-padding-top: 40px;
    --gds-services-d-panel-col-padding-bottom: clamp(32px, 6vh, 56px);
    --gds-services-d-feature-fs: 16px;
    --gds-services-d-feature-lh: 26px;
    --gds-services-d-feature-stack-gap: 28px;
    --gds-services-d-panel-blue-pl: 24px;
    --gds-services-data-value-title-lh: 1.26;
    --gds-services-data-value-lead-lh: 1.5;
    --gds-services-data-value-gap-lead-timeline: 64px;
    --gds-services-data-value-gap-timeline-cta: 56px;
    --gds-services-data-value-inner-pt: 56px;
    --gds-services-data-value-inner-pb: 56px;
  }
}

/* Pagina Services: sezioni full-viewport sotto la navbar fissa */
.gds-page--services {
  overflow-x: clip;
}

/* Evita scroll orizzontale accidentale sui pannelli (100vw vs scrollbar) */
body:has(.gds-page--services) {
  overflow-x: clip;
}

.gds-services-section {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  box-sizing: border-box;
  min-height: calc(100vh - var(--gds-navbar-height));
  min-height: calc(100svh - var(--gds-navbar-height));
  min-height: calc(100dvh - var(--gds-navbar-height));
  overflow: hidden;
  transition: min-height 0.35s ease;
}

.gds-services-section__inner {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  width: min(100% - 40px, var(--gds-content-width));
  min-height: 0;
  margin-inline: auto;
}

.gds-services-section--cta .gds-services-section__inner {
  min-height: calc(100vh - var(--gds-navbar-height));
  min-height: calc(100svh - var(--gds-navbar-height));
  min-height: calc(100dvh - var(--gds-navbar-height));
  transition: min-height 0.35s ease;
}

.gds-services-section--hero .gds-services-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: calc(100vh - var(--gds-navbar-height));
  min-height: calc(100svh - var(--gds-navbar-height));
  min-height: calc(100dvh - var(--gds-navbar-height));
  transition: min-height 0.35s ease;
}

.gds-services-section--hero {
  background-color: #ffffff;
  overflow: visible;
}

.gds-services-hero__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  max-width: min(100%, var(--gds-content-width));
  margin-inline: auto;
  row-gap: var(--gds-services-hero-gap-title-lead);
}

.gds-services-hero__title {
  margin: 0;
  max-width: var(--gds-services-hero-text-max);
  font-family: var(--font-primary);
  font-size: var(--gds-services-hero-title-fs);
  font-weight: 300;
  line-height: var(--gds-services-hero-title-lh);
  letter-spacing: var(--gds-services-hero-title-tracking);
  color: var(--gds-color-black);
}

.gds-services-hero__lead {
  margin: 0;
  max-width: var(--gds-services-hero-text-max);
  font-family: var(--font-primary);
  font-size: var(--gds-services-hero-lead-fs);
  font-weight: 300;
  line-height: var(--gds-services-hero-lead-lh);
  letter-spacing: var(--gds-services-hero-lead-tracking);
  color: var(--gds-color-black);
}

.gds-services-hero__figure {
  display: block;
  width: min(100% - 40px, var(--gds-services-hero-figure-max-w));
  max-width: var(--gds-services-hero-figure-max-w);
  margin: var(--gds-services-hero-figure-pt) auto 0;
  padding: 0;
}

.gds-services-hero__graphic {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: var(--gds-services-hero-graphic-max-w);
  height: auto;
  margin-inline: auto;
  aspect-ratio: var(--gds-services-hero-graphic-ratio);
  object-fit: contain;
}

/* overflow: clip su entrambi gli assi — evita scroll orizzontale globale senza alterare lo scroll container di ScrollTrigger. */
.gds-services-section--dikw {
  overflow: hidden;
  width: 100%;
  max-width: none;
  min-height: 100vh;
  min-height: 100dvh;
  transition: none;
}

.gds-services-section--dikw .pin-spacer {
  overflow: visible !important;
}

.gds-services-dikw__viewport {
  position: relative;
  flex: 1 1 auto;
  align-self: stretch;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  min-height: var(--gds-services-d-panel-viewport-max-h);
  height: var(--gds-services-d-panel-viewport-max-h);
  overflow: clip;
  --gds-dikw-fit-scale: 1;
}

.gds-services-dikw__track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  box-sizing: border-box;
  width: max-content;
  min-height: var(--gds-services-d-panel-viewport-max-h);
  height: var(--gds-services-d-panel-viewport-max-h);
  will-change: transform;
}

.gds-services-dikw__panel {
  display: flex;
  align-items: stretch;
  flex: 0 0 auto;
  box-sizing: border-box;
  min-height: var(--gds-services-d-panel-viewport-max-h);
  height: var(--gds-services-d-panel-viewport-max-h);
  overflow: hidden;
  background: linear-gradient(
    to right,
    var(--gds-panel-bg-left, var(--gds-color-navy)) 50%,
    var(--gds-panel-bg-right, var(--gds-color-blue)) 50%
  );
  /* larghezza impostata da site-animations.js (clientWidth viewport) */
}

.gds-services-dikw__panel--d {
  --gds-services-letter-mark-w: var(--gds-services-d-panel-mark-w);
  --gds-services-letter-mark-h: var(--gds-services-d-panel-mark-h);
}

.gds-services-dikw__panel--i {
  --gds-services-letter-mark-w: calc(
    var(--gds-services-i-panel-mark-native-w) * var(--gds-services-d-panel-mark-h) /
      var(--gds-services-i-panel-mark-native-h) * 1px
  );
  --gds-services-letter-mark-h: var(--gds-services-d-panel-mark-h);
}

.gds-services-dikw__panel--k {
  --gds-services-letter-mark-w: calc(
    var(--gds-services-k-panel-mark-native-w) * var(--gds-services-d-panel-mark-h) /
      var(--gds-services-k-panel-mark-native-h) * 1px
  );
  --gds-services-letter-mark-h: var(--gds-services-d-panel-mark-h);
}

.gds-services-dikw__panel--w {
  --gds-services-letter-mark-w: calc(
    var(--gds-services-w-panel-mark-native-w) * var(--gds-services-d-panel-mark-h) /
      var(--gds-services-w-panel-mark-native-h) * 1px
  );
  --gds-services-letter-mark-h: var(--gds-services-d-panel-mark-h);
}

/* Pannelli DIKW a due colonne (split figlio diretto del pannello) */
.gds-services-dikw__panel--d > .gds-services-dikw-panel__split,
.gds-services-dikw__panel--i > .gds-services-dikw-panel__split,
.gds-services-dikw__panel--k > .gds-services-dikw-panel__split,
.gds-services-dikw__panel--w > .gds-services-dikw-panel__split {
  flex: 1 1 auto;
  align-self: stretch;
  min-width: 0;
  min-height: 100%;
  height: 100%;
}

.gds-services-dikw-panel__split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  box-sizing: border-box;
  align-self: stretch;
  width: calc(100% / var(--gds-dikw-fit-scale, 1));
  min-height: 100%;
  height: 100%;
  transform: scale(var(--gds-dikw-fit-scale, 1));
  transform-origin: top left;
}

.gds-services-dikw-panel__column {
  box-sizing: border-box;
  min-height: 100%;
  height: 100%;
  padding: clamp(12px, 4vw, 56px) clamp(16px, 5vw, 56px);
  padding-bottom: var(--gds-services-d-panel-col-padding-bottom);
  background-color: transparent;
  color: #ffffff;
  font-family: var(--font-primary);
}

.gds-services-dikw-panel__column--navy,
.gds-services-dikw-panel__column--i-left,
.gds-services-dikw-panel__column--k-left,
.gds-services-dikw-panel__column--w-left {
  padding-top: var(--gds-services-d-panel-col-padding-top);
  padding-right: clamp(24px, 4vw, 56px);
  padding-bottom: var(--gds-services-d-panel-col-padding-bottom);
  padding-left: var(--gds-services-d-panel-col-padding-left);
}

.gds-services-dikw-panel__column--blue,
.gds-services-dikw-panel__column--i-right,
.gds-services-dikw-panel__column--k-right,
.gds-services-dikw-panel__column--w-right {
  display: flex;
  flex-direction: column;
  padding-top: var(--gds-services-d-panel-col-padding-top);
  padding-bottom: var(--gds-services-d-panel-col-padding-bottom);
  padding-left: var(--gds-services-d-panel-blue-pl);
  overflow: visible;
}

.gds-services-dikw-letter__main {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--gds-services-d-panel-main-gap);
  width: 100%;
  max-width: none;
  min-width: 0;
}

.gds-services-dikw-letter__hero-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--gds-services-d-panel-hero-gap);
  width: 100%;
}

.gds-services-dikw-letter__mark-wrap {
  flex: 0 0 auto;
  width: var(--gds-services-letter-mark-w);
  max-width: var(--gds-services-letter-mark-w);
  align-self: flex-start;
}

.gds-services-dikw-letter__mark-img {
  display: block;
  width: var(--gds-services-letter-mark-w);
  height: var(--gds-services-letter-mark-h);
  object-fit: contain;
  object-position: left top;
}

.gds-services-dikw-letter__head {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--gds-services-d-panel-head-gap);
  width: 100%;
  max-width: var(--gds-services-d-panel-content-max-w);
  min-width: 0;
}

.gds-services-dikw-letter__eyebrow {
  margin: 0;
  font-size: var(--gds-services-d-panel-eyebrow-fs);
  font-weight: 300;
  line-height: var(--gds-services-d-panel-eyebrow-lh);
  letter-spacing: var(--gds-services-d-panel-text-tracking);
  text-transform: uppercase;
  color: #ffffff;
}

.gds-services-dikw-letter__title {
  margin: var(--gds-services-d-panel-eyebrow-to-title-gap) 0 0;
  font-size: var(--gds-services-d-panel-title-fs);
  font-weight: 300;
  line-height: var(--gds-services-d-panel-title-lh);
  letter-spacing: var(--gds-services-d-panel-title-tracking);
  color: #ffffff;
}

.gds-services-dikw-letter__intro {
  margin: var(--gds-services-d-panel-title-to-intro-gap) 0 0;
  font-size: var(--gds-services-d-panel-intro-fs);
  font-weight: 300;
  line-height: var(--gds-services-d-panel-intro-lh);
  letter-spacing: var(--gds-services-d-panel-text-tracking);
  color: #ffffff;
}

.gds-services-dikw-letter__capabilities {
  box-sizing: border-box;
  margin-left: 0;
  width: 100%;
  max-width: var(--gds-services-d-panel-capabilities-max-w);
}

.gds-services-dikw-letter__capabilities-label {
  margin: 0;
  font-size: var(--gds-services-d-panel-list-fs);
  font-weight: 300;
  line-height: var(--gds-services-d-panel-list-lh);
  letter-spacing: var(--gds-services-d-panel-text-tracking);
  color: #ffffff;
}

.gds-services-dikw-letter__capabilities-label strong {
  font-weight: 700;
}

.gds-services-dikw-letter__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gds-services-dikw-letter__list li {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  min-height: var(--gds-services-d-panel-list-lh);
  font-size: var(--gds-services-d-panel-list-fs);
  font-weight: 300;
  line-height: var(--gds-services-d-panel-list-lh);
  letter-spacing: var(--gds-services-d-panel-text-tracking);
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
  color: #ffffff;
}

.gds-services-dikw-letter__list li:first-child {
  border-top: 1px solid rgba(255, 255, 255, 0.35);
}

@media (max-width: 640px) {
  .gds-services-dikw-letter__mark-wrap {
    flex-basis: auto;
    width: min(var(--gds-services-letter-mark-w), 72vw);
    max-width: min(var(--gds-services-letter-mark-w), 72vw);
  }

  .gds-services-dikw-letter__mark-img {
    width: 100%;
    height: auto;
    aspect-ratio: var(--gds-services-letter-mark-w) / var(--gds-services-letter-mark-h);
    max-width: var(--gds-services-letter-mark-w);
  }
}

/* Tre card in colonna */
.gds-services-dikw-letter__features {
  display: flex;
  flex-direction: column;
  gap: var(--gds-services-d-feature-stack-gap);
  justify-content: flex-start;
  width: 100%;
  max-width: var(--gds-services-d-feature-max-w);
}

.gds-services-dikw-letter__feature {
  margin: 0;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: var(--gds-services-d-feature-max-w);
}

.gds-services-dikw-letter__feature-icon {
  margin-bottom: var(--gds-services-d-feature-icon-gap);
}

.gds-services-dikw-letter__feature-icon img {
  display: block;
  width: auto;
  height: auto;
  max-height: 56px;
  max-width: min(120px, 100%);
  object-fit: contain;
}

.gds-services-dikw-letter__feature-title {
  margin: 0 0 0;
  font-size: var(--gds-services-d-feature-fs);
  font-weight: 300;
  letter-spacing: var(--gds-services-d-panel-text-tracking);
  text-transform: uppercase;
  line-height: var(--gds-services-d-feature-lh);
  color: #ffffff;
}

.gds-services-dikw-letter__feature-text {
  margin: 0;
  font-size: var(--gds-services-d-feature-fs);
  font-weight: 300;
  line-height: var(--gds-services-d-feature-lh);
  letter-spacing: var(--gds-services-d-panel-text-tracking);
  color: #ffffff;
}

@media (max-height: 820px) {
  :root {
    --gds-services-d-panel-col-padding-top: 36px;
    --gds-services-d-panel-col-padding-bottom: clamp(32px, 5vh, 56px);
    --gds-services-d-panel-mark-to-eyebrow-gap: 32px;
    --gds-services-d-panel-main-gap: 28px;
    --gds-services-d-panel-mark-w: 180px;
    --gds-services-d-panel-mark-h: 123px;
  }
}

@media (max-height: 700px) {
  :root {
    --gds-services-d-panel-col-padding-top: 28px;
    --gds-services-d-panel-title-fs: 32px;
    --gds-services-d-panel-title-lh: 38px;
    --gds-services-d-panel-title-to-intro-gap: 16px;
    --gds-services-d-panel-eyebrow-fs: 18px;
    --gds-services-d-panel-eyebrow-lh: 26px;
    --gds-services-d-panel-intro-fs: 18px;
    --gds-services-d-panel-intro-lh: 26px;
    --gds-services-d-panel-list-fs: 18px;
    --gds-services-d-panel-list-lh: 34px;
    --gds-services-d-feature-fs: 18px;
    --gds-services-d-feature-lh: 26px;
    --gds-services-d-panel-mark-w: 150px;
    --gds-services-d-panel-mark-h: 102px;
    --gds-services-d-panel-main-gap: 20px;
    --gds-services-d-panel-mark-to-eyebrow-gap: 24px;
  }
}

@media (max-width: 900px) {
  .gds-services-dikw-panel__split {
    grid-template-columns: 1fr;
  }

  .gds-services-dikw__panel {
    background: linear-gradient(
      to bottom,
      var(--gds-panel-bg-left, var(--gds-color-navy)) 50%,
      var(--gds-panel-bg-right, var(--gds-color-blue)) 50%
    );
  }
}

/* Services — DIKW mobile/tablet: ogni metà-pannello = slide (come Case Study listing). Desktop invariato sopra 1280px. */
@media (max-width: 1280px) {
  .gds-page--services {
    /* Services mobile (430px): metà-pannello = slide, altezza artboard 931px. */
    --gds-services-mobile-slide-h: clamp(822px, 216.51vw, 931px);
    --gds-services-mobile-dots-offset: clamp(32px, 8.37vw, 36px);
    /* Metà pannello sinistro — XD singolo-pannello-mobile.svg @430 (screenshot transform/testo) */
    --gds-services-d-panel-eyebrow-fs: clamp(14px, 3.72vw, 16px);
    --gds-services-d-panel-eyebrow-lh: clamp(14px, 3.72vw, 16px);
    --gds-services-d-panel-title-fs: clamp(28px, 7.67vw, 33px);
    --gds-services-d-panel-title-lh: 1;
    --gds-services-d-panel-title-tracking: 0;
    --gds-services-d-panel-eyebrow-tracking: 0;
    --gds-services-d-panel-intro-tracking: 0;
    --gds-services-d-panel-capabilities-tracking: 0;
    --gds-services-d-panel-list-tracking: 0;
    --gds-services-d-panel-text-tracking: 0;
    --gds-services-d-panel-intro-fs: clamp(18px, 5.12vw, 22px);
    --gds-services-d-panel-intro-lh: clamp(23px, 6.51vw, 28px);
    --gds-services-d-panel-list-fs: clamp(18px, 4.65vw, 20px);
    --gds-services-d-panel-list-lh: clamp(20px, 4.65vw, 22px);
    /* Mark — stesso box per D/I/K/W @430 (191.63 × 130.69); SVG in object-fit contain */
    --gds-services-d-panel-mark-w: clamp(168px, 44.57vw, 191.63px);
    --gds-services-d-panel-mark-h: clamp(114px, 30.39vw, 130.69px);
    --gds-services-d-panel-mark-to-eyebrow-gap: clamp(22px, 5.93vw, 25.5px);
    --gds-services-d-panel-eyebrow-to-title-gap: clamp(8px, 2.33vw, 10px);
    --gds-services-d-panel-title-to-intro-gap: clamp(12px, 3.26vw, 14px);
    --gds-services-d-panel-main-gap: clamp(32px, 8.37vw, 36px);
    --gds-services-d-panel-head-gap: 0;
    --gds-services-d-panel-col-padding-top: clamp(32px, 8.37vw, 36px);
    --gds-services-d-panel-col-padding-bottom: clamp(32px, 8.37vw, 36px);
    /* Hero DIKW mobile — altezza da contenuto + grafico (non più artboard 700px pieno). */
    --gds-services-hero-mobile-min-h: 0;
    --gds-services-hero-mobile-px: 36px;
    --gds-services-hero-mobile-pt: 28px;
    --gds-services-hero-figure-pt: calc(clamp(24px, 6.51vw, 28px) + 50px);
    --gds-services-hero-gap-title-lead: clamp(12px, 3.26vw, 14px);
    --gds-services-hero-text-max: none;
    --gds-services-hero-title-fs: clamp(28px, 7.67vw, 33px);
    --gds-services-hero-title-lh: clamp(32px, 8.84vw, 38px);
    --gds-services-hero-title-tracking: 0;
    --gds-services-hero-lead-fs: clamp(18px, 5.12vw, 22px);
    --gds-services-hero-lead-lh: clamp(23px, 6.51vw, 28px);
    --gds-services-hero-lead-tracking: 0.03em;
    --gds-services-hero-figure-max-w: none;
    --gds-services-hero-graphic-max-w: none;
    --gds-services-hero-graphic-ratio: 459 / 427;
    --gds-services-hero-mobile-graphic-h: clamp(360px, 93.02vw, 427px);
    /* Spazio tra sottotitolo e cluster pallini. */
    --gds-services-hero-mobile-graphic-gap: clamp(24px, 6.51vw, 28px);
    /* Distanza grafico → fondo hero (@430 ≈ 70px). */
    --gds-services-hero-mobile-graphic-inset: clamp(48px, 16.28vw, 70px);
    /* Fine-tuning orizzontale sul cluster (0 = centrato viewport). */
    --gds-services-hero-mobile-graphic-offset: -4px;
  }

  .gds-page--services .gds-services-section--hero {
    display: block;
    position: relative;
    overflow: visible;
    min-height: 0;
    height: auto;
  }

  .gds-page--services .gds-services-section--hero .gds-services-section__inner {
    position: relative;
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    min-height: var(--gds-services-hero-mobile-min-h);
    padding-top: var(--gds-services-hero-mobile-pt);
    padding-inline: var(--gds-services-hero-mobile-px);
    padding-bottom: calc(
      var(--gds-services-hero-mobile-graphic-h)
      + var(--gds-services-hero-mobile-graphic-gap)
      + var(--gds-services-hero-mobile-graphic-inset)
    );
    box-sizing: border-box;
  }

  .gds-page--services .gds-services-hero__header {
    position: relative;
    z-index: 1;
    align-items: flex-start;
    text-align: left;
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .gds-page--services .gds-services-hero__title,
  .gds-page--services .gds-services-hero__lead {
    max-width: none;
    width: 100%;
  }

  .gds-page--services .gds-services-hero__figure--desktop {
    display: none;
  }

  .gds-page--services .gds-services-hero__figure--mobile {
    position: absolute;
    left: 50%;
    bottom: var(--gds-services-hero-mobile-graphic-inset);
    z-index: 0;
    width: 84vw;
    max-width: none;
    margin: 0;
    padding: 0;
    transform: translateX(calc(-50% + var(--gds-services-hero-mobile-graphic-offset, 0px)));
    pointer-events: none;
  }

  .gds-page--services .gds-services-section--dikw {
    min-height: 0;
    height: auto;
    overflow: visible;
  }

  .gds-page--services .gds-services-section--dikw .pin-spacer {
    min-height: 0 !important;
    height: auto !important;
  }

  .gds-page--services .gds-services-dikw {
    width: 100%;
  }

  .gds-page--services .gds-services-dikw__viewport {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: var(--gds-services-mobile-slide-h);
    min-height: var(--gds-services-mobile-slide-h);
    max-height: none;
    touch-action: pan-y;
  }

  .gds-page--services .gds-services-dikw__track {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
    height: 100%;
    min-height: 0;
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }

  .gds-page--services .gds-services-dikw.is-dragging .gds-services-dikw__track {
    transition: none;
  }

  .gds-page--services .gds-services-dikw__panel,
  .gds-page--services .gds-services-dikw-panel__split {
    display: contents;
  }

  .gds-page--services .gds-services-dikw-panel__split {
    width: auto;
    min-height: 0;
    height: auto;
    transform: none;
  }

  .gds-page--services .gds-services-dikw-panel__column {
    flex: 0 0 100%;
    width: 100%;
    height: var(--gds-services-mobile-slide-h);
    min-height: var(--gds-services-mobile-slide-h);
    max-height: var(--gds-services-mobile-slide-h);
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding:
      var(--gds-services-d-panel-col-padding-top)
      var(--gds-home-pad-x)
      calc(var(--gds-services-mobile-dots-offset) + clamp(28px, 7.44vw, 32px));
  }

  .gds-page--services .gds-services-dikw-panel__column--navy,
  .gds-page--services .gds-services-dikw-panel__column--i-left,
  .gds-page--services .gds-services-dikw-panel__column--k-left,
  .gds-page--services .gds-services-dikw-panel__column--w-left {
    background-color: var(--gds-panel-bg-left, var(--gds-color-navy));
    padding-left: var(--gds-home-pad-x);
  }

  .gds-page--services .gds-services-dikw-panel__column--blue,
  .gds-page--services .gds-services-dikw-panel__column--i-right,
  .gds-page--services .gds-services-dikw-panel__column--k-right,
  .gds-page--services .gds-services-dikw-panel__column--w-right {
    background-color: var(--gds-panel-bg-right, var(--gds-color-blue));
    padding-left: var(--gds-home-pad-x);
  }

  .gds-page--services .gds-services-dikw-letter__features {
    max-width: none;
  }

  .gds-page--services .gds-services-dikw__panel--d,
  .gds-page--services .gds-services-dikw__panel--i,
  .gds-page--services .gds-services-dikw__panel--k,
  .gds-page--services .gds-services-dikw__panel--w {
    --gds-services-letter-mark-w: var(--gds-services-d-panel-mark-w);
    --gds-services-letter-mark-h: var(--gds-services-d-panel-mark-h);
  }

  .gds-page--services .gds-services-dikw-letter__mark-wrap {
    flex: 0 0 auto;
    width: var(--gds-services-d-panel-mark-w);
    max-width: var(--gds-services-d-panel-mark-w);
    height: var(--gds-services-d-panel-mark-h);
  }

  .gds-page--services .gds-services-dikw-letter__mark-img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    aspect-ratio: auto;
    object-fit: contain;
    object-position: left top;
  }

  .gds-page--services .gds-services-dikw-letter__hero-row {
    gap: var(--gds-services-d-panel-mark-to-eyebrow-gap);
  }

  .gds-page--services .gds-services-dikw-letter__eyebrow {
    letter-spacing: var(--gds-services-d-panel-eyebrow-tracking);
  }

  .gds-page--services .gds-services-dikw-letter__title {
    font-size: var(--gds-services-d-panel-title-fs);
    line-height: 1;
    letter-spacing: 0;
  }

  .gds-page--services .gds-services-dikw-letter__title br {
    display: none;
  }

  .gds-page--services .gds-services-dikw-letter__intro {
    letter-spacing: var(--gds-services-d-panel-intro-tracking);
  }

  .gds-page--services .gds-services-dikw-letter__capabilities {
    display: flex;
    flex-direction: column;
    gap: clamp(8px, 2.33vw, 10px);
  }

  .gds-page--services .gds-services-dikw-letter__capabilities-label {
    font-size: clamp(18px, 5.12vw, 22px);
    font-weight: 700;
    line-height: clamp(23px, 6.51vw, 28px);
    letter-spacing: var(--gds-services-d-panel-capabilities-tracking);
    margin: 0;
  }

  .gds-page--services .gds-services-dikw-letter__list li {
    display: block;
    align-items: unset;
    min-height: 0;
    padding: clamp(10px, 2.79vw, 12px) 0;
    letter-spacing: var(--gds-services-d-panel-list-tracking);
    border-bottom: 1.5px solid #ffffff;
    line-height: var(--gds-services-d-panel-list-lh);
  }

  .gds-page--services .gds-services-dikw-letter__list li:first-child {
    border-top: 1.5px solid #ffffff;
  }

  .gds-page--services .gds-services-dikw__dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    margin: 0;
    padding: 0 0 var(--gds-services-mobile-dots-offset);
    background-color: transparent;
    pointer-events: none;
  }

  .gds-page--services .gds-services-dikw__dot {
    display: block;
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background-color: #989898;
    cursor: pointer;
    pointer-events: auto;
    transition: transform 0.2s ease, background-color 0.2s ease;
  }

  .gds-page--services .gds-services-dikw__dot[aria-selected="true"] {
    background-color: #ffffff;
  }

  /* Mobile/tablet in landscape: viewport basso — evita hero/DIKW giganti (vw su larghezza). */
  @media (orientation: landscape) {
    .gds-page--services {
      --gds-services-mobile-slide-h: calc(100dvh - var(--gds-navbar-height));
      --gds-services-mobile-dots-offset: clamp(12px, 2.5vh, 20px);
      --gds-services-hero-mobile-graphic-h: min(
        260px,
        calc(100dvh - var(--gds-navbar-height) - 9.5rem)
      );
      --gds-services-hero-mobile-graphic-gap: clamp(10px, 2vh, 14px);
      --gds-services-hero-mobile-graphic-inset: clamp(12px, 2.5vh, 20px);
      --gds-services-hero-mobile-pt: clamp(12px, 2vh, 16px);
      --gds-services-hero-mobile-px: clamp(20px, 4vw, 36px);
    }

    .gds-page--services .gds-services-hero__figure--mobile {
      width: min(68vw, 360px);
    }

    .gds-page--services .gds-services-hero__figure--mobile .gds-services-hero__graphic-svg-wrap {
      height: var(--gds-services-hero-mobile-graphic-h);
      width: 100%;
    }

    .gds-page--services .gds-services-hero__figure--mobile .gds-services-hero__graphic-svg-wrap svg {
      width: 100%;
      height: 100%;
      max-height: var(--gds-services-hero-mobile-graphic-h);
    }
  }
}

.gds-services-section--data-value {
  min-height: var(--gds-services-data-value-min-h);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  background-color: var(--gds-services-data-value-bg);
}

.gds-services-section--data-value .gds-services-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: var(--gds-services-data-value-inner-pt);
  padding-bottom: var(--gds-services-data-value-inner-pb);
}

/* Figma: pill 156×50, 16px Light, bordo rosso */
.gds-services-data-value__cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 156px;
  min-height: 50px;
  margin: 0;
  padding: 0 20px;
  border: 1px solid var(--gds-color-red);
  border-radius: 999px;
  background-color: #ffffff;
  color: var(--gds-color-red);
  font-family: var(--font-primary);
  font-size: clamp(14px, 0.83vw, 16px);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.gds-services-data-value__cta-btn:hover,
.gds-services-data-value__cta-btn:focus-visible {
  background-color: var(--gds-color-red);
  color: #ffffff;
}

.gds-services-data-value__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: var(--gds-services-data-value-text-max);
  margin: 0 auto var(--gds-services-data-value-gap-lead-timeline);
  row-gap: var(--gds-services-data-value-gap-title-lead);
}

.gds-services-data-value__header h2 {
  margin: 0;
  font-family: var(--font-primary);
  font-size: var(--gds-services-data-value-title-fs);
  font-weight: 300;
  line-height: var(--gds-services-data-value-title-lh);
  letter-spacing: var(--gds-services-data-value-title-tracking);
  color: var(--gds-color-black);
}

.gds-services-data-value__lead {
  margin: 0;
  font-family: var(--font-primary);
  font-size: var(--gds-services-data-value-lead-fs);
  font-weight: 300;
  line-height: var(--gds-services-data-value-lead-lh);
  letter-spacing: var(--gds-services-data-value-lead-tracking);
  color: var(--gds-color-black);
}

.gds-services-data-value__timeline {
  width: min(100%, var(--gds-services-data-value-timeline-max-w));
  margin: 0 auto var(--gds-services-data-value-gap-timeline-cta);
}

.gds-services-data-value__timeline img,
.gds-services-data-value__timeline svg {
  display: block;
  width: min(100%, var(--gds-services-data-value-timeline-max-w));
  height: auto;
  max-width: 100%;
  aspect-ratio: var(--gds-services-data-value-timeline-ratio);
}

.gds-services-data-value__figure {
  margin: 0 auto;
  display: flex;
  justify-content: center;
}

.gds-services-data-value__figure svg,
.gds-services-data-value__figure img {
  display: block;
  width: min(100%, 1294px);
  height: auto;
  max-width: 100%;
  aspect-ratio: 1294 / 707;
}

.gds-services-section--cta {
  background-color: #ffffff;
}

/* =========================================================
   INIZIO: Pagina Case Study
   ========================================================= */
.gds-page--case-study {
  overflow-x: clip;
}

body:has(.gds-page--case-study) {
  overflow-x: hidden;
}

.gds-cs-section {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  box-sizing: border-box;
}

.gds-cs-section--hero {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 360px;
  flex-shrink: 0;
  background-color: #ffffff;
  box-sizing: border-box;
}

.gds-cs-section__inner {
  flex: 1 1 auto;
  width: min(100% - 40px, var(--gds-content-width));
  margin-inline: auto;
}

.gds-cs-section--hero .gds-cs-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 0;
  text-align: center;
}

.gds-cs-hero__title {
  max-width: min(var(--gds-cs-hero-title-max-width), 100%);
  margin: 0 0 12px;
  color: var(--gds-color-black);
  font-family: var(--font-primary);
  font-size: clamp(28px, 2.43vw, 35px);
  font-weight: 300;
  line-height: 1.26;
  letter-spacing: 0;
}

.gds-cs-hero__lead-wrap {
  box-sizing: border-box;
  width: min(var(--gds-cs-hero-lead-wrap-width), 100%);
  max-width: 100%;
  margin: 0;
}

.gds-cs-hero__lead {
  margin: 0;
  max-width: 100%;
  color: var(--gds-cs-hero-lead-color);
  font-family: var(--font-primary);
  font-size: var(--gds-cs-hero-lead-fs);
  font-weight: 300;
  line-height: var(--gds-cs-hero-lead-lh);
  letter-spacing: var(--gds-cs-hero-lead-tracking);
}

.gds-cs-section--grid {
  width: 100%;
  padding: 0;
  margin: 0;
  background-color: transparent;
}

/* CTA sotto la griglia Case Study (XD) */
.gds-cs-section--cta {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 340px;
  flex-shrink: 0;
  background-color: #ffffff;
}

.gds-cs-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: min(100% - 40px, var(--gds-content-width));
  margin-inline: auto;
  padding: 24px 20px;
  text-align: center;
}

.gds-cs-cta__title {
  margin: 0 0 14px;
  color: var(--gds-color-black);
  font-family: var(--font-primary);
  /* 35px ancorato a 1440, coerente con titoli sezione. */
  font-size: clamp(28px, 2.43vw, 35px);
  font-weight: 300;
  line-height: 1.26;
  letter-spacing: 0;
}

.gds-cs-cta__subtitle {  
  margin: 0 0 64px;
  color: var(--gds-color-gray);
  font-family: var(--font-primary);
  font-size: clamp(18px, 1.53vw, 22px);
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0;
}

.gds-cs-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 156px;
  min-height: 50px;
  padding: 0 20px;
  border: 1px solid var(--gds-color-red);
  border-radius: 999px;
  background-color: #ffffff;
  color: var(--gds-color-red);
  font-family: var(--font-primary);
  font-size: clamp(14px, 0.83vw, 16px);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.gds-cs-cta__button:hover,
.gds-cs-cta__button:focus-visible {
  background-color: var(--gds-color-red);
  color: #ffffff;
}

.gds-page--case-study .gds-cs-cta__title,
.gds-page--case-study .gds-cs-cta__subtitle {
  color: var(--gds-cs-mobile-cta-text-color, #0d0f11);
}

.gds-page--case-study .gds-cs-cta__subtitle {
    letter-spacing: 0.00em;
}

/* Griglia XD (blocchi.svg): full bleed; card Case Study height fissa (--gds-cs-card-height) */
.gds-page--case-study .gds-cs-grid {
  container-type: inline-size;
  container-name: gds-cs-grid;
}

/* Griglia: 2×3 colonne @1920, card h 715px, testo x 261 (sx) · x 1076 dx (+116) */
.gds-cs-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  max-width: none;
  margin-inline: 0;
  gap: 0;
  box-sizing: border-box;
  /* Larghezza utile container e margine come .container (evita calc annidati ripetuti) */
  --gds-cs-w: min(calc(100vw - 40px), var(--gds-content-width));
  --gds-cs-inset: max(20px, calc((100vw - var(--gds-cs-w)) / 2));
}

.gds-cs-card {
  display: flex;
  align-items: stretch;
  box-sizing: border-box;
  width: 100%;
  justify-self: stretch;
  min-height: 0;
  aspect-ratio: 960 / 715;
  height: auto;
  max-height: none;
  color: #ffffff;
}

.gds-page--case-study .gds-cs-card {
  aspect-ratio: auto;
  box-sizing: border-box;
  min-height: var(--gds-cs-card-height);
  overflow: visible;
}

@media (max-width: 979px) {
  .gds-cs-grid {
    grid-template-columns: 1fr;
    width: 100%;
  }
}

.gds-cs-card__logo {
  display: block;
  max-width: 160px;
  max-height: 60px;
  width: auto;
  height: auto;
  margin-bottom: 1.5rem;
  object-fit: contain;
}

.gds-cs-card__inner {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  justify-content: flex-start;
  align-items: center;
  text-align: center;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 100%;
  row-gap: var(--gds-cs-gap-body-button); /* XD: solo tra blocco tipografico e FIND MORE */
  padding-top: clamp(52px, 4.64vw, 89px); /* primo titolo SVG (571+39) − bordo alto cella dopo translate artboard ≈89 */
  padding-bottom: clamp(40px, 3.54vw, 60px); /* alto cella +715 − (bordo bottone 1079 −482) − h50 ≈68 */
  padding-right: clamp(20px, 6.25vw, 120px);
  overflow-x: clip;
}

.gds-page--case-study .gds-cs-card__inner {
  min-height: 0;
  overflow: hidden;
}

/* Testo che può crescere: occupa lo spazio tra padding e FIND MORE, senza scrollbar */
.gds-page--case-study .gds-cs-card__text {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
/* Contenitore 580px: solo gli elementi dentro wrappano a quella lunghezza (come nell’ XD) */
.gds-cs-card__text {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  box-sizing: border-box;
  width: min(var(--gds-cs-card-text-width), 100%);
  max-width: 100%;
  min-width: 0;
}

.gds-cs-card:nth-child(odd) .gds-cs-card__inner {
  padding-left: var(--gds-cs-inset);
}

@media (min-width: 980px) {
  /* 1076 − 960 = 116 px dal bordo sx della semicolonna dx (blocchi.svg) */
  .gds-cs-card:nth-child(even) .gds-cs-card__inner {
    padding-left: clamp(72px, 6.042vw, 116px);
  }
}

@media (max-width: 979px) {
  .gds-cs-card:nth-child(even) .gds-cs-card__inner {
    padding-left: var(--gds-cs-inset);
  }
}

.gds-cs-card__client {
  margin: 0 0 var(--gds-cs-gap-title-summary);
  font-family: var(--font-primary);
  font-size: 35px;
  font-weight: 700;
  line-height: 39px;
  letter-spacing: 0;
  color: #ffffff;
  max-width: 100%;
}

.gds-cs-card__summary {
  margin: 0 0 var(--gds-cs-gap-summary-body);
  font-family: var(--font-primary);
  font-size: 30px;
  font-weight: 300;
  line-height: 36px;
  letter-spacing: 0;
  color: #ffffff;
  max-width: 100%;
}

.gds-cs-card__body {
  margin: 0 auto;
  font-family: var(--font-primary);
  font-size: 22px;
  font-weight: 300;
  line-height: 30px;
  letter-spacing: 0;
  color: #ffffff;
  max-width: 540px;
  width: 100%;
}

/* Slide mobile: titolo + sottotitolo dedicati (desktop usa .gds-cs-card__client + summary/body). */
.gds-cs-card__slide-title,
.gds-cs-card__slide-subtitle,
.gds-cs-card__slide-subtitle-wrap {
  display: none;
}

.gds-cs-card__more {
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 156px;
  min-height: 50px;
  padding: 0 20px;
  border: 1px solid #ffffff;
  border-radius: 25px; /* blocchi.svg: rx 25 su rect 156×50 */
  box-sizing: border-box;
  color: #ffffff;
  font-family: var(--font-primary);
  font-size: clamp(14px, 0.83vw, 16px);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.gds-cs-card__more:hover,
.gds-cs-card__more:focus-visible {
  background-color: #ffffff;
  color: var(--gds-color-slate);
}

.gds-cs-card--navy {
  background-color: var(--gds-color-blue);
}

.gds-cs-card--lavender {
  background-color: var(--gds-color-lavender);
}

.gds-cs-card--purple {
  background-color: var(--gds-color-moss);
}

.gds-cs-card--teal {
  background-color: var(--gds-color-aqua);
}

.gds-cs-card--teal-dark {
  background-color: var(--gds-color-purple);
}

.gds-cs-card--blue {
  background-color: var(--gds-color-petrol);
}

.gds-cs-slider__dots {
  display: none;
}

/* Case Study page — mobile/tablet: hero allineato a sx, card = slider con dots. */
@media (max-width: 1280px) {
  .gds-page--case-study .gds-cs-section--hero {
    min-height: 0;
    padding: clamp(32px, 8.37vw, 48px) 0 clamp(28px, 7.44vw, 32px);
  }

  .gds-page--case-study .gds-cs-section--hero .gds-cs-section__inner {
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
    max-width: none;
    padding-inline: var(--gds-home-pad-x);
    box-sizing: border-box;
    text-align: left;
  }

  .gds-page--case-study .gds-cs-hero__title {
    max-width: var(--gds-cs-mobile-hero-title-max-w);
    margin: 0 0 var(--gds-cs-mobile-gap-hero-title-lead);
    color: var(--gds-cs-mobile-hero-text-color);
    font-size: var(--gds-cs-mobile-hero-title-fs);
    font-weight: 300;
    line-height: var(--gds-cs-mobile-hero-title-lh);
    letter-spacing: 0;
    text-align: left;
  }

  .gds-page--case-study .gds-cs-hero__lead-wrap {
    width: 100%;
    max-width: var(--gds-cs-mobile-hero-title-max-w);
  }

  .gds-page--case-study .gds-cs-hero__lead {
    color: var(--gds-cs-mobile-hero-text-color);
    font-size: var(--gds-cs-mobile-hero-lead-fs);
    font-weight: 300;
    line-height: var(--gds-cs-mobile-hero-lead-lh);
    letter-spacing: var(--gds-cs-mobile-hero-lead-tracking);
    text-align: left;
  }

  .gds-cs-slider {
    width: 100%;
  }

  .gds-cs-slider__viewport {
    overflow: hidden;
    width: 100%;
    position: relative;
    height: var(--gds-cs-mobile-slide-h);
    touch-action: pan-y;
  }

  .gds-page--case-study .gds-cs-slider__track {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    grid-template-columns: none;
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }

  .gds-page--case-study .gds-cs-slider.is-dragging .gds-cs-slider__track {
    transition: none;
  }

  .gds-page--case-study .gds-cs-slider.is-dragging .gds-cs-card__more {
    pointer-events: none;
  }

  .gds-page--case-study .gds-cs-slider__track.gds-cs-grid {
    --gds-cs-inset: 0;
  }

  .gds-page--case-study .gds-cs-card {
    flex: 0 0 100%;
    width: 100%;
    height: var(--gds-cs-mobile-slide-h);
    min-height: var(--gds-cs-mobile-slide-h);
    aspect-ratio: auto;
  }

  .gds-page--case-study .gds-cs-card__logo {
    display: none;
  }

  .gds-page--case-study .gds-cs-card__inner {
    justify-content: center;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    box-sizing: border-box;
    padding:
      clamp(40px, 10.23vw, 44px)
      var(--gds-home-pad-x)
      calc(var(--gds-cs-mobile-dots-offset) + clamp(24px, 6.05vw, 28px));
  }

  .gds-page--case-study .gds-cs-card__text {
    flex: 0 1 auto;
    overflow: visible;
  }

  .gds-page--case-study .gds-cs-card__slide-title {
    display: block;
    margin: 0 0 var(--gds-cs-mobile-gap-title-summary);
    width: 100%;
    max-width: none;
    color: #ffffff;
    font-family: var(--font-primary);
    font-size: var(--gds-cs-mobile-card-client-fs);
    font-weight: 700;
    line-height: var(--gds-cs-mobile-card-client-lh);
    letter-spacing: 0;
    text-align: center;
  }

  .gds-page--case-study .gds-cs-card__client {
    display: none;
  }

  .gds-page--case-study .gds-cs-card__slide-subtitle-wrap {
    display: block;
    box-sizing: border-box;
    width: calc(100% + (2 * var(--gds-home-pad-x)));
    margin-inline: calc(-1 * var(--gds-home-pad-x));
    padding-inline: 36px;
  }

  .gds-page--case-study .gds-cs-card__slide-subtitle {
    display: block;
    margin: 0;
    width: 100%;
    max-width: none;
    color: #ffffff;
    font-family: var(--font-primary);
    font-size: var(--gds-cs-mobile-card-summary-fs);
    font-weight: 400;
    line-height: var(--gds-cs-mobile-card-summary-lh);
    letter-spacing: 0;
    text-align: center;
  }

  .gds-page--case-study .gds-cs-card__summary,
  .gds-page--case-study .gds-cs-card__body {
    display: none;
  }

  .gds-page--case-study .gds-cs-card:nth-child(odd) .gds-cs-card__inner,
  .gds-page--case-study .gds-cs-card:nth-child(even) .gds-cs-card__inner {
    padding-left: var(--gds-home-pad-x);
    padding-right: var(--gds-home-pad-x);
  }

  .gds-page--case-study .gds-cs-card__more {
    position: relative;
    z-index: 3;
    border-radius: 999px;
    white-space: nowrap;
  }

  .gds-cs-slider__dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    margin-top: 0;
    padding: 0 0 clamp(24px, 6.05vw, 28px);
    background-color: transparent;
    pointer-events: none;
  }

  .gds-cs-slider__dot {
    display: block;
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.45);
    cursor: pointer;
    pointer-events: auto;
    transition: transform 0.2s ease, background-color 0.2s ease;
  }

  .gds-cs-slider__dot[aria-selected="true"] {
    width: 10px;
    height: 10px;
    background-color: #ffffff;
  }

  .gds-page--case-study .gds-cs-section--cta {
    min-height: 0;
    padding: clamp(40px, 10.23vw, 44px) 0 clamp(48px, 12.56vw, 54px);
  }

  .gds-page--case-study .gds-cs-cta__inner {
    width: 100%;
    max-width: none;
    padding-inline: var(--gds-home-pad-x);
  }

  .gds-page--case-study .gds-cs-cta__title {
    margin-bottom: var(--gds-cs-mobile-cta-gap-title-subtitle);
    font-size: var(--gds-cs-mobile-hero-title-fs);
    line-height: var(--gds-cs-mobile-hero-title-lh);
    letter-spacing: 0;
  }

  .gds-page--case-study .gds-cs-cta__subtitle {
    margin-bottom: var(--gds-cs-mobile-cta-gap-subtitle-button);
    font-size: var(--gds-cs-mobile-hero-lead-fs);
    line-height: var(--gds-cs-mobile-hero-lead-lh);
      letter-spacing: 0.00em;
  }

}

@media (prefers-reduced-motion: reduce) {
  .gds-page--case-study .gds-cs-slider__track {
    transition: none !important;
  }
}

/* Singolo case study (CPT) — layout mockup CERN */
.gds-single--case-study {
  --gds-cs-single-dark-bg: #1a1d23;
  --gds-cs-single-section-bg: var(--gds-cs-single-dark-bg);
  --gds-cs-single-section-title: #ffffff;
  --gds-cs-single-section-text: #ffffff;
  --gds-cs-single-highlight-bg: var(--gds-color-blue);
  --gds-cs-single-highlight-text: #ffffff;
  overflow-x: clip;
}

body:has(.gds-single--case-study) {
  overflow-x: hidden;
  --gds-navbar-bg: var(--gds-cs-single-dark-bg);
  --gds-navbar-link: #ffffff;
  --gds-navbar-border: color-mix(in srgb, #ffffff 35%, transparent);
}

.gds-single--case-study .gds-cs-section--single-hero,
.gds-single--case-study .gds-cs-section--compare {
  background-color: var(--gds-cs-single-section-bg);
  color: var(--gds-cs-single-section-text);
}

/* Hero — XD @1920: intro 346×148, icon 84×107, gap intro→icon 29px, icon→list 19px */
.gds-single--case-study .gds-cs-section--single-hero {
  --gds-cs-hero-intro-w: 346px;
  --gds-cs-hero-icon-w: 84px;
  --gds-cs-hero-icon-h: 107px;
  --gds-cs-hero-gap-intro-icon: 29px;
  --gds-cs-hero-gap-icon-list: 19px;
  --gds-cs-hero-gap-intro-list: 132px;
  padding-top: 33px;
}

.gds-single--case-study .gds-cs-single-hero__inner {
  width: min(100% - 40px, var(--gds-content-width));
  margin-inline: auto;
}

.gds-single--case-study .gds-cs-single-hero__title {
  margin: 0 0 clamp(24px, 3vw, 40px);
  color: var(--gds-cs-single-section-title);
  font-family: var(--font-primary);
  font-size: clamp(28px, 2.43vw, 35px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: 0;
  text-transform: uppercase;
}

@media (min-width: 1281px) {
  .gds-single--case-study .gds-cs-single-hero__title br {
    display: none;
  }
}

.gds-single--case-study .gds-cs-single-hero__grid {
  display: grid;
  grid-template-columns:
    minmax(0, var(--gds-cs-hero-intro-w))
    var(--gds-cs-hero-gap-intro-icon)
    var(--gds-cs-hero-icon-w)
    var(--gds-cs-hero-gap-icon-list)
    minmax(0, 1fr);
  align-items: start;
  width: 100%;
}

.gds-single--case-study .gds-cs-single-hero__grid:not(:has(.gds-cs-single-hero__icon-wrap)) {
  grid-template-columns:
    minmax(0, var(--gds-cs-hero-intro-w))
    var(--gds-cs-hero-gap-intro-list)
    minmax(0, 1fr);
}

.gds-single--case-study .gds-cs-single-hero__grid:not(:has(.gds-cs-single-hero__intro)):has(.gds-cs-single-hero__icon-wrap) {
  grid-template-columns:
    var(--gds-cs-hero-icon-w)
    var(--gds-cs-hero-gap-icon-list)
    minmax(0, 1fr);
}

.gds-single--case-study .gds-cs-single-hero__intro {
  grid-column: 1;
  box-sizing: border-box;
  max-width: var(--gds-cs-hero-intro-w);
  min-width: 0;
  align-self: start;
}

.gds-single--case-study .gds-cs-single-hero__grid:has(.gds-cs-single-hero__icon-wrap) .gds-cs-single-hero__intro {
  grid-column: 1;
}

.gds-single--case-study .gds-cs-single-hero__grid:not(:has(.gds-cs-single-hero__icon-wrap)) .gds-cs-single-hero__intro {
  grid-column: 1;
}

.gds-single--case-study .gds-cs-single-hero__grid:not(:has(.gds-cs-single-hero__intro)) .gds-cs-single-hero__outcomes {
  grid-column: 3;
}

.gds-single--case-study .gds-cs-single-hero__grid:has(.gds-cs-single-hero__icon-wrap) .gds-cs-single-hero__icon-wrap {
  grid-column: 3;
}

.gds-single--case-study .gds-cs-single-hero__grid:not(:has(.gds-cs-single-hero__intro)) .gds-cs-single-hero__icon-wrap {
  grid-column: 1;
}

.gds-single--case-study .gds-cs-single-hero__grid:has(.gds-cs-single-hero__icon-wrap) .gds-cs-single-hero__outcomes {
  grid-column: 5;
}

.gds-single--case-study .gds-cs-single-hero__grid:not(:has(.gds-cs-single-hero__icon-wrap)) .gds-cs-single-hero__outcomes {
  grid-column: 3;
}

.gds-single--case-study .gds-cs-single-hero__lead {
  margin: 0;
  max-width: var(--gds-cs-hero-intro-w);
  color: var(--gds-cs-single-section-text);
  font-family: var(--font-primary);
  font-size: clamp(18px, 1.53vw, 22px);
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0;
}

.gds-single--case-study .gds-cs-single-hero__icon-wrap {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  box-sizing: border-box;
  width: var(--gds-cs-hero-icon-w);
  align-self: start;
  flex-shrink: 0;
}

.gds-single--case-study .gds-cs-single-hero__icon {
  display: block;
  width: var(--gds-cs-hero-icon-w);
  height: var(--gds-cs-hero-icon-h);
  object-fit: contain;
}

.gds-single--case-study .gds-cs-single-hero__outcomes {
  box-sizing: border-box;
  min-width: 0;
  align-self: start;
}

.gds-single--case-study .gds-cs-single-hero__outcome-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gds-single--case-study .gds-cs-single-hero__outcome-item {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  min-height: calc(167px / 4);
  border-bottom: 1px solid color-mix(in srgb, var(--gds-cs-single-section-text) 30%, transparent);
  color: var(--gds-cs-single-section-text);
  font-family: var(--font-primary);
  font-size: 22px;
  font-weight: 300;
  line-height: 40px;
  letter-spacing: 0;
}

.gds-single--case-study .gds-cs-single-hero__outcome-item:first-child {
  border-top: 1px solid color-mix(in srgb, var(--gds-cs-single-section-text) 30%, transparent);
}

.gds-cs-section--compare {
  padding: clamp(40px, 5vw, 72px) 0 clamp(56px, 6vw, 96px);
}

.gds-cs-compare__inner {
  width: min(100% - 40px, var(--gds-content-width));
  margin-inline: auto;
}

.gds-cs-compare__timeline {
  display: none;
}

.gds-cs-compare__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(32px, 5vw, 80px);
}

.gds-cs-compare__column--challenge,
.gds-cs-compare__column--solution {
  --gds-cs-compare-label-bg: var(--gds-color-blue);
  --gds-cs-compare-label-text: #ffffff;
}

.gds-cs-compare__label {
  display: inline-flex;
  align-items: center;
  margin: 0 0 28px;
  padding: 8px 18px;
  border-radius: 999px;
  background-color: var(--gds-cs-compare-label-bg);
  color: var(--gds-cs-compare-label-text);
  font-family: var(--font-primary);
  font-size: 22px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: none;
}

.gds-cs-compare__label--solution {
  text-transform: none;
  letter-spacing: 0.04em;
}

.gds-cs-compare__list {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 2.5vw, 18px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.gds-cs-compare__item-title {
  margin: 0 0 6px;
  color: var(--gds-cs-single-section-title);
  font-family: var(--font-primary);
  font-size: 24px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 0;
}

.gds-cs-compare__item-text {
  margin: 0;
  color: var(--gds-cs-single-section-text);
  font-family: var(--font-primary);
  font-size: clamp(16px, 1.15vw, 22px);
  font-weight: 300;
  line-height: 1.5; 
}

.gds-single--case-study .gds-cs-section--highlight {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 166px;
  height: 166px;
  padding: 0;
}

.gds-cs-section--highlight {
  background-color: var(--gds-cs-single-highlight-bg);
  color: var(--gds-cs-single-highlight-text);
}

.gds-cs-section--highlight[style*="--gds-cs-single-section-bg"] {
  background-color: var(--gds-cs-single-section-bg);
  color: var(--gds-cs-single-section-title);
}

.gds-cs-highlight__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 12px;
  width: min(100% - 40px, var(--gds-content-width));
  height: 100%;
  margin-inline: auto;
  text-align: left;
  
}

.gds-cs-highlight__quote {
  margin: 0;
  width: 100%;
  max-width: none;
  color: inherit;
  font-family: var(--font-primary);
  font-size: 30px;
  font-weight: 700;
  line-height: 45px;
  letter-spacing: 0;
}

.gds-cs-highlight__tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gds-cs-highlight__tag {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 20px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-family: var(--font-primary);
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.04em;
}

.gds-cs-section--feature-image {
  background-color: #ffffff;
}

.gds-cs-feature-image__frame {
  width: 100%;
  background-color: var(--gds-color-light);
}

.gds-cs-feature-image__img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}

.gds-single--case-study .gds-cs-section--cta {
  min-height: 340px;
}

/* Singolo case study — mobile/tablet (single-casi-studio.svg @430px). Desktop invariato sopra 1280px. */
@media (max-width: 1280px) {
  .gds-single--case-study {
    --gds-cs-single-mobile-pad-x: var(--gds-home-pad-x);
    --gds-cs-single-mobile-hero-title-fs: clamp(28px, 8.14vw, 35px);
    --gds-cs-single-mobile-hero-title-lh: clamp(28px, 8.14vw, 35px);
    --gds-cs-single-mobile-body-fs: clamp(18px, 5.12vw, 22px);
    --gds-cs-single-mobile-body-lh: clamp(23px, 6.51vw, 28px);
    --gds-cs-single-mobile-gap-title-lead: clamp(16px, 4.19vw, 18px);
    --gds-cs-single-mobile-gap-lead-icon: clamp(32px, 8.6vw, 37px);
    --gds-cs-single-mobile-gap-icon-outcomes: clamp(24px, 6.51vw, 28px);
    --gds-cs-single-mobile-gap-outcome-items: clamp(24px, 6.51vw, 28px);
    --gds-cs-single-mobile-compare-pill-h: clamp(42px, 10.93vw, 47px);
    --gds-cs-single-mobile-compare-pill-left: clamp(-118px, -32.56vw, -140px);
    --gds-cs-single-mobile-compare-pill-pad-left: clamp(108px, 29.07vw, 125px);
    --gds-cs-single-mobile-compare-pill-pad-right: 10px;
    --gds-cs-single-mobile-compare-pill-challenge-w: clamp(240px, 66.09vw, 283px);
    --gds-cs-single-mobile-compare-pill-solution-w: clamp(232px, 60.93vw, 262px);
    --gds-cs-single-mobile-compare-pill-solution-bleed: 7px;
    --gds-cs-single-mobile-compare-gap-pill-list: clamp(16px, 4.19vw, 18px);
    --gds-cs-single-mobile-compare-gap-items: clamp(24px, 6.51vw, 28px);
    --gds-cs-single-mobile-compare-gap-columns: clamp(40px, 10.23vw, 44px);
    --gds-cs-single-mobile-highlight-min-h: clamp(380px, 100.7vw, 433px);
    --gds-cs-single-mobile-highlight-quote-fs: clamp(24px, 6.98vw, 30px);
    --gds-cs-single-mobile-highlight-quote-lh: clamp(32px, 9.3vw, 40px);
    --gds-cs-single-mobile-highlight-tag-h: clamp(36px, 9.07vw, 39px);
    --gds-cs-single-mobile-highlight-tag-fs: clamp(15px, 3.95vw, 17px);
    --gds-cs-single-mobile-timeline-offset: clamp(30px, 8.37vw, 36px);
  }

  .gds-single--case-study .gds-cs-section--single-hero {
    padding-top: clamp(24px, 6.51vw, 28px);
    padding-bottom: clamp(32px, 8.37vw, 36px);
  }

  .gds-single--case-study .gds-cs-single-hero__inner,
  .gds-single--case-study .gds-cs-compare__inner,
  .gds-single--case-study .gds-cs-highlight__inner {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: var(--gds-cs-single-mobile-pad-x);
    box-sizing: border-box;
  }

  .gds-single--case-study .gds-cs-single-hero__title {
    margin: 0 0 var(--gds-cs-single-mobile-gap-title-lead);
    font-size: var(--gds-cs-single-mobile-hero-title-fs);
    line-height: var(--gds-cs-single-mobile-hero-title-lh);
  }

  .gds-single--case-study .gds-cs-single-hero__grid {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    width: 100%;
  }

  .gds-single--case-study .gds-cs-single-hero__intro,
  .gds-single--case-study .gds-cs-single-hero__icon-wrap,
  .gds-single--case-study .gds-cs-single-hero__outcomes {
    max-width: none;
    width: 100%;
  }

  .gds-single--case-study .gds-cs-single-hero__intro {
    margin: 0;
  }

  .gds-single--case-study .gds-cs-single-hero__lead {
    max-width: none;
    font-size: var(--gds-cs-single-mobile-body-fs);
    line-height: var(--gds-cs-single-mobile-body-lh);
      letter-spacing: 0.00em;
  }

  .gds-single--case-study .gds-cs-single-hero__icon-wrap {
    display: flex;
    justify-content: flex-start;
    width: auto;
    margin-top: var(--gds-cs-single-mobile-gap-lead-icon);
  }

  .gds-single--case-study .gds-cs-single-hero__icon {
    width: var(--gds-cs-hero-icon-w);
    height: var(--gds-cs-hero-icon-h);
  }

  .gds-single--case-study .gds-cs-single-hero__outcomes {
    margin-top: var(--gds-cs-single-mobile-gap-icon-outcomes);
  }

  .gds-single--case-study .gds-cs-single-hero__outcome-list {
    gap: 0;
  }

  .gds-single--case-study .gds-cs-single-hero__outcome-item {
    display: block;
    min-height: 0;
    padding: var(--gds-cs-single-mobile-gap-outcome-items) 0;
    border-bottom: 1px solid color-mix(in srgb, var(--gds-cs-single-section-text) 30%, transparent);
    font-size: var(--gds-cs-single-mobile-body-fs);
    line-height: var(--gds-cs-single-mobile-body-lh);
      letter-spacing: 0.00em;
  }

  .gds-single--case-study .gds-cs-single-hero__outcome-item:first-child {
    border-top: 1px solid color-mix(in srgb, var(--gds-cs-single-section-text) 30%, transparent);
  }

  .gds-single--case-study .gds-cs-section--compare {
    position: relative;
    overflow: visible;
    padding: clamp(32px, 8.37vw, 36px) 0 clamp(40px, 10.23vw, 44px);
  }

  .gds-single--case-study .gds-cs-compare__inner {
    position: relative;
    overflow: visible;
    padding-right: calc(var(--gds-cs-single-mobile-pad-x) + var(--gds-cs-single-mobile-timeline-offset));
  }

  .gds-single--case-study .gds-cs-compare__timeline {
    display: block;
    position: absolute;
    top: 0;
    right: var(--gds-cs-single-mobile-pad-x);
    width: var(--gds-cs-single-mobile-timeline-offset);
    height: var(--gds-cs-single-mobile-compare-pill-h);
    pointer-events: none;
  }

  .gds-single--case-study .gds-cs-compare__timeline-icon {
    position: absolute;
    top: calc(var(--gds-cs-single-mobile-compare-pill-h) / 2);
    left: 50%;
    width: clamp(32px, 8.37vw, 37px);
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: contain;
  }

  .gds-single--case-study .gds-cs-compare__grid {
    display: flex;
    flex-direction: column;
    gap: var(--gds-cs-single-mobile-compare-gap-columns);
    max-width: none;
  }

  .gds-single--case-study .gds-cs-compare__column--challenge,
  .gds-single--case-study .gds-cs-compare__column--solution {
    position: relative;
    width: 100%;
    padding-top: calc(var(--gds-cs-single-mobile-compare-pill-h) + var(--gds-cs-single-mobile-compare-gap-pill-list));
  }

  .gds-single--case-study .gds-cs-compare__label {
    position: absolute;
    top: 0;
    left: var(--gds-cs-single-mobile-compare-pill-left);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    box-sizing: border-box;
    width: var(--gds-cs-single-mobile-compare-pill-challenge-w);
    height: var(--gds-cs-single-mobile-compare-pill-h);
    margin: 0;
    padding-top: 3px;
    padding-bottom: 0;
    padding-left: var(--gds-cs-single-mobile-compare-pill-pad-left);
    padding-right: var(--gds-cs-single-mobile-compare-pill-pad-right);
    border-radius: calc(var(--gds-cs-single-mobile-compare-pill-h) / 2);
    font-size: clamp(18px, 5.12vw, 22px);
    font-weight: 700;
    line-height: clamp(45px, 11.63vw, 50px);
    letter-spacing: 0;
    text-transform: uppercase;
  }

  .gds-single--case-study .gds-cs-compare__column--challenge .gds-cs-compare__label {
    width: var(--gds-cs-single-mobile-compare-pill-challenge-w);
  }

  .gds-single--case-study .gds-cs-compare__column--solution .gds-cs-compare__label {
    width: var(--gds-cs-single-mobile-compare-pill-solution-w);
    left: calc(var(--gds-cs-single-mobile-compare-pill-left) + var(--gds-cs-single-mobile-compare-pill-solution-bleed));
  }

  .gds-single--case-study .gds-cs-compare__list {
    gap: var(--gds-cs-single-mobile-compare-gap-items);
  }

  .gds-single--case-study .gds-cs-compare__item-title {
    margin: 0 0 0;
    font-size: var(--gds-cs-single-mobile-body-fs);
    font-weight: 700;
    line-height: var(--gds-cs-single-mobile-body-lh);
      letter-spacing: 0.00em;
  }

  .gds-single--case-study .gds-cs-compare__item-text {
    margin: 0;
    font-size: var(--gds-cs-single-mobile-body-fs);
    font-weight: 300;
    line-height: var(--gds-cs-single-mobile-body-lh);
      letter-spacing: 0.00em;
  }

  .gds-single--case-study .gds-cs-section--highlight {
    height: auto;
    min-height: var(--gds-cs-single-mobile-highlight-min-h);
    padding: clamp(36px, 9.77vw, 42px) 0 clamp(40px, 10.23vw, 44px);
  }

  .gds-single--case-study .gds-cs-highlight__inner {
    height: auto;
    min-height: 0;
    gap: clamp(28px, 7.44vw, 32px);
  }

  .gds-single--case-study .gds-cs-highlight__quote {
    font-size: var(--gds-cs-single-mobile-highlight-quote-fs);
    font-weight: 500;
    line-height: var(--gds-cs-single-mobile-highlight-quote-lh);
  }

  .gds-single--case-study .gds-cs-highlight__tags {
    gap: clamp(12px, 3.26vw, 14px) clamp(14px, 3.72vw, 16px);
  }

  .gds-single--case-study .gds-cs-highlight__tag {
    min-height: var(--gds-cs-single-mobile-highlight-tag-h);
    padding: 0 clamp(16px, 4.65vw, 20px);
    font-size: var(--gds-cs-single-mobile-highlight-tag-fs);
      letter-spacing: 0.00em;
  }

  .gds-single--case-study .gds-cs-section--cta {
    min-height: 0;
    padding: clamp(40px, 10.23vw, 44px) 0 clamp(48px, 12.56vw, 54px);
  }

  .gds-single--case-study .gds-cs-cta__inner {
    width: 100%;
    max-width: none;
    padding-inline: var(--gds-home-pad-x);
  }

  .gds-single--case-study .gds-cs-cta__title {
    margin-bottom: var(--gds-cs-mobile-cta-gap-title-subtitle);
    color: var(--gds-cs-mobile-cta-text-color);
    font-size: var(--gds-cs-mobile-hero-title-fs);
    line-height: var(--gds-cs-mobile-hero-title-lh);
  }

  .gds-single--case-study .gds-cs-cta__subtitle {
    margin-bottom: var(--gds-cs-mobile-cta-gap-subtitle-button);
    color: var(--gds-cs-mobile-cta-text-color);
    font-size: var(--gds-cs-mobile-hero-lead-fs);
    line-height: var(--gds-cs-mobile-hero-lead-lh);
      letter-spacing: 0.00em;
  }

}

/* =========================================================
   FINE: Pagina Case Study
   ========================================================= */

/* =========================================================
   INIZIO: Pagina Contact
   ========================================================= */
.gds-page--contact {
  --gds-contact-bg: var(--gds-color-gold);
  --gds-contact-text: #ffffff;
  --gds-contact-input-bg: #ffffff;
  --gds-contact-input-text: var(--gds-color-black);
  --gds-contact-input-placeholder: #9a9a9a;
  --gds-contact-field-gap: 16px;
  --gds-contact-input-height: 52px;
  background-color: var(--gds-contact-bg);
  color: var(--gds-contact-text);
  overflow-x: clip;
}

.gds-contact {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  min-height: calc(100vh - var(--gds-navbar-height));
  min-height: calc(100dvh - var(--gds-navbar-height));
  padding: clamp(32px, 4vw, 90px) 0 clamp(20px, 2vw, 20px);
}

.gds-contact__inner {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: min(100% - 40px, var(--gds-content-width));
  margin-inline: auto;
}

.gds-contact__header {
  margin: 0 0 clamp(40px, 5vw, 64px);
  text-align: center;
}

.gds-contact__title {
  margin: 0 0 14px;
  color: var(--gds-contact-text);
  font-family: var(--font-primary);
  /* 35px ancorato a 1440, coerente con le altre pagine. */
  font-size: clamp(28px, 2.43vw, 35px);
  font-weight: 300;
  line-height: 1.26;
  letter-spacing: 0;
}

.gds-contact__subtitle {
  margin: 0;
  color: var(--gds-contact-text);
  font-family: var(--font-primary);
  /* 22px come le altre descrizioni. */
  font-size: clamp(18px, 1.53vw, 22px);
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0;
}

.gds-contact__form-wrap {
  flex: 1 1 auto;
  width: 100%;
}

.gds-contact__form-placeholder {
  margin: 0;
  text-align: center;
  font-family: var(--font-primary);
  font-size: 18px;
  font-weight: 300;
  line-height: 1.5;
  opacity: 0.85;
}

/* Contact Form 7 — layout mockup 2 colonne */
.gds-page--contact .gds-contact-form,
.gds-page--contact .wpcf7 {
  width: 100%;
}

.gds-page--contact .wpcf7 form.wpcf7-form {
  margin: 0;
}

/* CF7 base reset — il foglio di stile del plugin è disattivato su questa pagina */
.gds-page--contact .wpcf7 .hidden-fields-container {
  display: none;
}

.gds-page--contact .wpcf7 .screen-reader-response {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  white-space: nowrap;
  word-wrap: normal;
}

.gds-page--contact .wpcf7-form .wpcf7-form-control-wrap:not([data-name="consent"]) {
  display: block;
  width: 100%;
}

.gds-page--contact .gds-contact-form__main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--gds-contact-field-gap) clamp(24px, 3vw, 40px);
  align-items: start;
}

.gds-page--contact .gds-contact-form__fields {
  display: flex;
  flex-direction: column;
  gap: var(--gds-contact-field-gap);
}

.gds-page--contact .gds-contact-form__fields > p,
.gds-page--contact .gds-contact-form__message > p,
.gds-page--contact .gds-contact-form__submit > p,
.gds-page--contact .gds-contact-form__consent > p {
  width: 100%;
  margin: 0;
}

.gds-page--contact .gds-contact-form__message {
  display: flex;
  flex-direction: column;
  align-self: start;
  width: 100%;
}

.gds-page--contact .gds-contact-form__message > p,
.gds-page--contact .gds-contact-form__message .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  margin: 0;
}

/* Toggle consenso */
.gds-page--contact .gds-contact-form__consent,
.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] {
  display: flex;
  align-items: center;
  width: auto;
  max-width: 100%;
  margin-top: 4px;
  background: transparent;
}

.gds-page--contact .gds-contact-form__consent .wpcf7-form-control-wrap,
.gds-page--contact .gds-contact-form__consent .wpcf7-acceptance,
.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"],
.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] .wpcf7-acceptance {
  display: flex;
  align-items: center;
  width: auto;
  max-width: 100%;
  background: transparent;
  padding: 0;
}

.gds-page--contact .gds-contact-form__consent span.wpcf7-form-control:not(.wpcf7-acceptance),
.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] span.wpcf7-form-control:not(.wpcf7-acceptance) {
  display: inline-block;
  width: auto;
  background: transparent;
  padding: 0;
}

.gds-page--contact .gds-contact-form__consent .wpcf7-list-item,
.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] .wpcf7-list-item {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gds-page--contact .gds-contact-form__consent label,
.gds-page--contact .gds-contact-form__consent-label,
.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] label {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  width: auto;
  max-width: 100%;
  margin: 0;
  padding: 0;
  cursor: pointer;
  color: var(--gds-contact-text);
  font-family: var(--font-primary);
  font-size: 11px;
  font-weight: 300;
  line-height: 24px;
  letter-spacing: -0.05em;
}

.gds-page--contact .gds-contact-form__consent .wpcf7-list-item-label,
.gds-page--contact .gds-contact-form__consent-text,
.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] .wpcf7-list-item-label {
  display: inline-block;
  margin: 0;
  padding: 0;
  line-height: 24px;
  font-family: var(--font-primary);
  font-size: 11px;
  font-weight: 300;
  letter-spacing: -0.05em;
  color: var(--gds-contact-text);
  white-space: normal;
}

.gds-page--contact .gds-contact-form__consent input[type="checkbox"],
.gds-page--contact .gds-contact-form__consent-input,
.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] input[type="checkbox"] {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 44px;
  height: 24px;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background-color: color-mix(in srgb, var(--gds-contact-text) 35%, transparent);
  appearance: none;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.gds-page--contact .gds-contact-form__consent input[type="checkbox"]::after,
.gds-page--contact .gds-contact-form__consent-input::after,
.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] input[type="checkbox"]::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-color: var(--gds-contact-text);
  transition: transform 0.2s ease, background-color 0.2s ease;
}

.gds-page--contact .gds-contact-form__consent input[type="checkbox"]:checked,
.gds-page--contact .gds-contact-form__consent-input:checked,
.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] input[type="checkbox"]:checked {
  background-color: var(--gds-color-red);
}

.gds-page--contact .gds-contact-form__consent input[type="checkbox"]:checked::after,
.gds-page--contact .gds-contact-form__consent-input:checked::after,
.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] input[type="checkbox"]:checked::after {
  transform: translateX(20px);
  background-color: #ffffff;
}

.gds-page--contact .gds-contact-form__submit {
  display: flex;
  justify-content: center;
  margin-top: clamp(32px, 4vw, 48px);
}

.gds-page--contact .gds-contact-form__submit > p {
  display: flex;
  justify-content: center;
}

.gds-page--contact .wpcf7-form p {
  margin: 0;
}

.gds-page--contact .gds-contact-form__input,
.gds-page--contact .gds-contact-form__textarea,
.gds-page--contact .wpcf7-form input.wpcf7-form-control:not([type="submit"]):not([type="checkbox"]),
.gds-page--contact .wpcf7-form textarea.wpcf7-form-control,
.gds-page--contact .wpcf7-form input[type="text"],
.gds-page--contact .wpcf7-form input[type="email"],
.gds-page--contact .wpcf7-form input[type="tel"],
.gds-page--contact .wpcf7-form input[type="url"],
.gds-page--contact .wpcf7-form textarea {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0 18px;
  border: 0;
  border-radius: 0;
  background-color: var(--gds-contact-input-bg);
  color: var(--gds-contact-input-text);
  font-family: var(--font-primary);
  font-size: 18px;
  font-weight: 300;
  line-height: 1.4;
  letter-spacing: 0;
  appearance: none;
}

.gds-page--contact .gds-contact-form__input,
.gds-page--contact .wpcf7-form .wpcf7-form-control.wpcf7-text,
.gds-page--contact .wpcf7-form .wpcf7-form-control.wpcf7-email,
.gds-page--contact .wpcf7-form .wpcf7-form-control.wpcf7-tel,
.gds-page--contact .wpcf7-form input[type="text"],
.gds-page--contact .wpcf7-form input[type="email"],
.gds-page--contact .wpcf7-form input[type="tel"],
.gds-page--contact .wpcf7-form input[type="url"] {
  height: var(--gds-contact-input-height);
}

.gds-page--contact .gds-contact-form__textarea,
.gds-page--contact .wpcf7-form .wpcf7-form-control.wpcf7-textarea,
.gds-page--contact .wpcf7-form textarea {
  flex: 0 0 auto;
  height: calc((var(--gds-contact-input-height) * 4) + (var(--gds-contact-field-gap) * 3));
  min-height: calc((var(--gds-contact-input-height) * 4) + (var(--gds-contact-field-gap) * 3));
  padding-top: 16px;
  padding-bottom: 16px;
  resize: vertical;
}

.gds-page--contact .gds-contact-form__input::placeholder,
.gds-page--contact .gds-contact-form__textarea::placeholder,
.gds-page--contact .wpcf7-form input::placeholder,
.gds-page--contact .wpcf7-form textarea::placeholder {
  color: var(--gds-contact-input-placeholder);
  opacity: 1;
}

.gds-page--contact .gds-contact-form__button,
.gds-page--contact .wpcf7-form input[type="submit"],
.gds-page--contact .gds-contact-form__button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 156px;
  min-height: 50px;
  padding: 0 20px;
  border: 1px solid var(--gds-contact-text);
  border-radius: 999px;
  background-color: transparent;
  color: var(--gds-contact-text);
  font-family: var(--font-primary);
  font-size: clamp(14px, 0.83vw, 16px);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.gds-page--contact .gds-contact-form__button:hover,
.gds-page--contact .gds-contact-form__button:focus-visible,
.gds-page--contact .wpcf7-form input[type="submit"]:hover,
.gds-page--contact .wpcf7-form input[type="submit"]:focus-visible,
.gds-page--contact .gds-contact-form__button[type="submit"]:hover,
.gds-page--contact .gds-contact-form__button[type="submit"]:focus-visible {
  background-color: var(--gds-contact-text);
  color: var(--gds-contact-bg);
}

.gds-page--contact .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  color: #ffffff;
  font-family: var(--font-primary);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.3;
}

.gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] .wpcf7-not-valid-tip {
  margin-top: 8px;
}

.gds-page--contact .wpcf7-response-output {
  display: none;
  margin: 24px 0 0;
  padding: 12px 16px;
  border: 1px solid color-mix(in srgb, var(--gds-contact-text) 50%, transparent);
  border-radius: 0;
  color: var(--gds-contact-text);
  font-family: var(--font-primary);
  font-size: 16px;
  text-align: center;
}

.gds-page--contact .wpcf7-form.invalid .wpcf7-response-output,
.gds-page--contact .wpcf7-form.failed .wpcf7-response-output,
.gds-page--contact .wpcf7-form.sent .wpcf7-response-output,
.gds-page--contact .wpcf7-form.spam .wpcf7-response-output,
.gds-page--contact .wpcf7-form.aborted .wpcf7-response-output,
.gds-page--contact .wpcf7-form.unaccepted .wpcf7-response-output,
.gds-page--contact .wpcf7-form.payment-required .wpcf7-response-output {
  display: block;
}

.gds-page--contact .wpcf7-response-output:empty,
.gds-page--contact .wpcf7-response-output[aria-hidden="true"]:empty {
  display: none;
  margin: 0;
  padding: 0;
  border: 0;
}

.gds-page--contact .wpcf7 form .wpcf7-spinner {
  margin-left: 12px;
  vertical-align: middle;
}

@media (max-width: 979px) {
  .gds-page--contact .gds-contact-form__main {
    display: flex;
    flex-direction: column;
    gap: var(--gds-contact-field-gap);
    grid-template-columns: none;
  }

  /* Consenso dopo textarea su mobile; desktop resta in colonna sinistra */
  .gds-page--contact .gds-contact-form__fields {
    display: contents;
  }

  .gds-page--contact .gds-contact-form__message {
    order: 5;
  }

  .gds-page--contact .gds-contact-form__consent,
  .gds-page--contact .wpcf7-form-control-wrap[data-name="consent"] {
    order: 6;
    margin-top: 0;
  }

  .gds-page--contact .gds-contact-form__textarea,
  .gds-page--contact .wpcf7-form textarea {
    min-height: 180px;
    height: 180px;
  }
}

/* =========================================================
   FINE: Pagina Contact
   ========================================================= */
/* =========================================================
   FINE: Desktop - Template pagine
   ========================================================= */

/* =========================================================
   INIZIO: Desktop - Footer
   ========================================================= */
.site-footer {
  min-height: var(--gds-footer-height);
  background-color: #ffffff;
  overflow-x: clip;
}

.site-footer .container {
  position: relative;
  box-sizing: border-box;
  width: min(100% - 40px, var(--gds-content-width));
  max-width: var(--gds-content-width);
  margin-inline: auto;
  min-height: var(--gds-footer-height);
}

.site-footer .container::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background-color: var(--gds-color-gray);
}

.gds-footer__inner {
  display: grid;
  grid-template-columns: minmax(0, 200px) minmax(0, 240px) minmax(0, 120px) minmax(0, 1fr);
  column-gap: clamp(24px, 5vw, 100px);
  align-items: start;
  padding-top: 82px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.gds-footer__brand .custom-logo,
.gds-footer__logo {
  display: block;
  width: 203px;
  max-width: 100%;
  height: auto;
}

.gds-footer__company,
.gds-footer__navigation,
.gds-footer__legal {
  margin-top: 8px;
}

.gds-footer__site-name,
.gds-footer__address,
.gds-footer__registration,
.gds-footer__navigation a,
.gds-footer__legal-navigation a,
.gds-footer__copyright,
.gds-footer__credit,
.gds-footer__credit a {
  color: var(--gds-color-slate);
  font-family: var(--font-primary);
  font-size: 16px;
  font-weight: 300;
  font-style: normal;
  line-height: 25px;
  letter-spacing: 0;
  text-decoration: none;
}

.gds-footer__address {
  margin: 0 0 42px;
}

.gds-footer__navigation ul,
.gds-footer__legal-navigation ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gds-footer__navigation a,
.gds-footer__legal-navigation a,
.gds-footer__credit a {
  transition: color 0.25s ease;
}

.gds-footer__legal-navigation a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gds-footer__navigation a:hover,
.gds-footer__navigation a:focus-visible,
.gds-footer__legal-navigation a:hover,
.gds-footer__legal-navigation a:focus-visible,
.gds-footer__credit a:hover,
.gds-footer__credit a:focus-visible {
  color: var(--gds-color-red);
}

.gds-footer__legal {
  display: grid;
  grid-template-columns: minmax(0, 184px) minmax(0, max-content);
  column-gap: clamp(24px, 4vw, 115px);
  min-width: 0;
}

.gds-footer__credits {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.gds-footer__copyright,
.gds-footer__credit {
  margin: 0;
}

@media (max-width: 1100px) {
  .gds-footer__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: clamp(28px, 4vw, 40px);
  }

  /* Ultima cella: Terms/Privacy + credits affiancati se c’è spazio */
  .gds-footer__legal {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: clamp(16px, 3vw, 48px);
  }
}

/* Footer mobile/tablet (footer-mobile.svg 430×355): colonna unica, linea inset 36px. */
@media (max-width: 1280px) {
  .site-footer {
    min-height: var(--gds-footer-mobile-height);
  }

  .site-footer .container {
    min-height: var(--gds-footer-mobile-height);
    width: 100%;
    max-width: none;
    padding-inline: var(--gds-footer-pad-x);
    box-sizing: border-box;
  }

  .site-footer .container::before {
    left: var(--gds-footer-pad-x);
    right: var(--gds-footer-pad-x);
  }

  .gds-footer__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    row-gap: 0;
    column-gap: 0;
    box-sizing: border-box;
    min-height: calc(var(--gds-footer-mobile-height) - 1px);
    padding-top: var(--gds-footer-mobile-pt);
    padding-bottom: var(--gds-footer-mobile-pb);
  }

  .gds-footer__brand .custom-logo,
  .gds-footer__logo {
    display: block;
    width: var(--gds-footer-logo-w);
    max-width: 100%;
    height: var(--gds-footer-logo-h);
    object-fit: contain;
    object-position: left center;
  }

  .gds-footer__brand {
    margin-bottom: var(--gds-footer-logo-mb);
  }

  /* Nel mockup mobile non c’è il menu di navigazione (About, Services…). */
  .gds-footer__navigation {
    display: none;
  }

  .gds-footer__company,
  .gds-footer__navigation,
  .gds-footer__legal {
    margin-top: 0;
    width: 100%;
  }

  .gds-footer__address {
    margin: 0 0 var(--gds-footer-address-mb);
  }

  .gds-footer__registration {
    margin: 0 0 var(--gds-footer-registration-mb);
  }

  .gds-footer__site-name,
  .gds-footer__address,
  .gds-footer__registration,
  .gds-footer__navigation a {
    font-size: var(--gds-footer-text-fs);
    line-height: var(--gds-footer-text-lh);
    letter-spacing: 0;
  }

  .gds-footer__legal-navigation a {
    font-size: var(--gds-footer-text-fs);
    line-height: inherit;
    letter-spacing: 0;
  }

  .gds-footer__legal {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    width: 100%;
  }

  .gds-footer__legal-navigation {
    margin-bottom: var(--gds-footer-legal-credits-gap);
  }

  .gds-footer__legal-navigation ul {
    gap: var(--gds-footer-legal-item-gap);
    margin: 0;
  }

  .gds-footer__legal-navigation li {
    line-height: var(--gds-footer-legal-lh);
  }

  .gds-footer__credits {
    display: flex;
    flex-direction: column;
    gap: var(--gds-footer-credits-gap);
    padding-top: 0;
  }

  .gds-footer__copyright,
  .gds-footer__credit {
    margin: 0;
    font-size: var(--gds-footer-text-fs);
    line-height: var(--gds-footer-credit-lh);
    letter-spacing: 0;
  }

  .gds-footer__credit a {
    line-height: inherit;
    text-decoration: none;
  }
}
/* =========================================================
   FINE: Desktop - Footer
   ========================================================= */
