@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,500;1,600&family=Inter:wght@400;500;600;700;800&display=swap');

:root {
  --granata: #5f151e;
  --granata-dark: #120104;
  --oro: #d7ad57;
  --oro-light: #f3d88c;
  --avorio: #fff3dd;
  --brand-white: rgb(255, 243, 221);
  --text-soft: rgba(255, 243, 221, .84);
  --font-title: "Aptos Display", "Segoe UI Variable Display", "Segoe UI", Arial, sans-serif;
  --font-text: "Aptos", "Segoe UI Variable Text", "Segoe UI", Arial, sans-serif;
  --serif: var(--font-title);
  --sans: var(--font-text);
  --card-glow-duration: .22s;
  --card-glow-easing: cubic-bezier(.16, 1, .3, 1);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}

html.intro-scroll-locked,
html.intro-scroll-locked body {
  overflow: hidden;
  overscroll-behavior: none;
}

html.content-top-scroll-locked {
  overflow: hidden;
  scroll-behavior: auto;
  overscroll-behavior: none;
}

html.content-top-scroll-locked body {
  overscroll-behavior: none;
}

body.content-top-body-locked {
  position: fixed;
  right: 0;
  left: 0;
  width: 100%;
}

body {
  margin: 0;
  min-height: 100%;
  background: #070101;
  color: var(--avorio);
  font-family: var(--sans);
  overflow-x: hidden;
}

.video-layer {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background-color: #070101;
}

.bg-video {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: transparent;
}



.play-video {
  display: none;
  position: fixed;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  z-index: 50;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid rgba(243,216,140,.45);
  background: rgba(24,3,6,.76);
  color: var(--avorio);
  backdrop-filter: blur(12px);
  cursor: pointer;
  font-family: var(--sans);
}

.video-blocked .play-video {
  display: block;
}

.site-header,
.glass-menu,
main {
  position: relative;
  z-index: 5;
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 24px clamp(36px, 4vw, 64px);
  pointer-events: none;
  opacity: 0;
  transform: translateY(-16px);
  filter: blur(8px);
  transition: opacity .14s ease, transform .14s ease, filter .14s ease;
}

.content-entered .site-header {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
  pointer-events: auto;
}

.header-brand,
.menu-toggle {
  pointer-events: none;
}

.content-entered .header-brand,
.content-entered .menu-toggle {
  pointer-events: auto;
}

.header-brand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: inherit;
  text-decoration: none;
}

.header-logo,
.intro-logo {
  display: block;
  flex: 0 0 auto;
  background: url("logo-gabriele-berto.svg") center / contain no-repeat;
}

.header-logo {
  width: 66px;
  height: 66px;
}

.intro-logo {
  width: 104px;
  height: 104px;
}

.header-brand-text {
  display: grid;
  gap: 4px;
  justify-items: start;
  text-align: left;
}

.header-name {
  padding: 0;
  font-family: var(--font-title);
  font-size: clamp(1.84rem, 2.25vw, 2.58rem);
  line-height: .98;
  font-weight: 700;
  letter-spacing: .012em;
  color: rgb(255, 243, 221);
}

.header-role {
  display: none;
}

.menu-toggle {
  margin-left: auto;
  width: 66px;
  height: 66px;
  border-radius: 50%;
  border: 2px solid rgb(255, 243, 221);
  background: transparent;
  display: grid;
  place-content: center;
  gap: 6px;
  backdrop-filter: none;
  cursor: pointer;
  box-sizing: border-box;
}

.menu-toggle span {
  display: block;
  width: 28px;
  height: 3px;
  border-radius: 999px;
  background: rgb(255, 243, 221);
}

.glass-menu {
  position: fixed;
  top: 92px;
  right: clamp(36px, 4vw, 64px);
  z-index: 21;
  width: max-content;
  max-width: calc(100vw - 56px);
  padding: 18px;
  border-radius: 24px;
  background: rgba(24,3,6,.48);
  border: 1px solid rgba(243,216,140,.24);
  box-shadow: 0 24px 72px rgba(0,0,0,.34);
  backdrop-filter: blur(18px);
  opacity: 0;
  transform: translateY(-12px) scale(.98);
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}

.glass-menu.is-open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.glass-menu a {
  display: block;
  padding: 12px 8px;
  white-space: nowrap;
  border-bottom: 1px solid rgba(243,216,140,.13);
  color: var(--avorio);
  text-decoration: none;
  font-family: var(--sans);
  font-weight: 600;
}

.glass-menu a:hover {
  color: var(--oro-light);
}

.intro {
  min-height: 100vh;
  display: grid;
  align-items: center;
  position: relative;
  padding: 92px clamp(40px, 4.3vw, 78px) 90px;
}

.intro-content {
  width: 930px;
  max-width: 52vw;
  cursor: default;
  user-select: none;
  -webkit-user-select: none;
}

.intro-identity {
  display: inline-flex;
  align-items: center;
  gap: 28px;
  margin-bottom: 42px;
  opacity: 0;
  transform: translateY(20px);
  filter: blur(10px);
  animation: introIdentityIn 1.05s cubic-bezier(.18,.88,.2,1) 2.8s forwards;
}

.intro-identity > div {
  display: grid;
  justify-items: start;
  text-align: left;
}

.intro-name {
  margin: 0;
  padding: 0;
  font-family: var(--font-title);
  font-size: clamp(2.28rem, 3.16vw, 3.56rem);
  font-weight: 700;
  line-height: 1.01;
  letter-spacing: .014em;
  color: rgb(255, 243, 221);
  text-shadow: 0 18px 42px rgba(0,0,0,.42);
}

.intro-role {
  margin: 10px 0 0;
  padding: 0;
  display: block;
  text-align: left;
  color: var(--oro-light);
  font-size: clamp(1.12rem, 1.24vw, 1.34rem);
  font-family: var(--sans);
  font-weight: 600;
  letter-spacing: .012em;
}

.intro-title {
  margin: 0;
  font-family: var(--font-title);
  font-weight: 700;
  line-height: 1.03;
  letter-spacing: .010em;
  text-shadow: 0 18px 42px rgba(0,0,0,.42);
  opacity: 0;
  transform: translateY(18px);
  filter: blur(10px);
  animation: introTitleIn 1.05s cubic-bezier(.18,.88,.2,1) 4.05s forwards;
}

.intro-title span {
  display: block;
}

.white-line {
  color: var(--avorio);
  font-size: clamp(2.30rem, 3.46vw, 3.96rem);
  letter-spacing: .014em;
}

.gold-line {
  color: var(--oro-light);
  font-style: normal;
  font-size: clamp(1.68rem, 2.58vw, 2.93rem);
  line-height: 1.08;
  letter-spacing: .016em;
  font-weight: 650;
}

.intro-title > .gold-line:nth-child(3) {
  margin-top: 24px;
}

.discover {
  margin-top: 44px;
  appearance: none;
  border: 1.4px solid rgba(243,216,140,.68);
  border-radius: 8px;
  background: rgba(10,1,2,.38);
  color: var(--avorio);
  display: inline-flex;
  align-items: center;
  gap: 34px;
  cursor: default;
  pointer-events: none;
  padding: 18px 31px;
  min-width: 340px;
  font: 700 clamp(.86rem, .98vw, 1.04rem) var(--font-text);
  letter-spacing: .055em;
  box-shadow: 0 18px 45px rgba(0,0,0,.30), 0 0 28px rgba(215,173,87,.14);
  backdrop-filter: blur(10px);
  opacity: 0;
  transform: translateY(18px);
  animation: discoverIn .9s ease 5.25s forwards;
}

.discover.is-ready,
.discover.is-ready * {
  cursor: pointer;
}

.discover.is-ready {
  pointer-events: auto;
}

.arrow {
  margin-left: auto;
  font-size: 1.55em;
  color: var(--avorio);
  line-height: 1;
  font-weight: 400;
}

.content {
  width: min(1120px, calc(100vw - 96px));
  margin: 0 auto 90px;
  display: grid;
  gap: 26px;
  padding-top: 32px;
  padding-bottom: var(--end-scroll-space, 0px);
  scroll-margin-top: 92px;
}

.glass-card {
  position: relative;
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 28px;
  align-items: start;
  padding: clamp(26px, 3vw, 42px);
  border-radius: 30px;
  background: linear-gradient(135deg, rgba(255,255,255,.11), rgba(255,255,255,.04));
  border: 1px solid rgba(243,216,140,.25);
  box-shadow:
    0 28px 80px rgba(0,0,0,.32),
    inset 0 0 0 1px rgba(255,255,255,.07);
  backdrop-filter: blur(16px) saturate(1.16);
  overflow: hidden;
  transition-property: background, border-color, box-shadow, backdrop-filter;
  transition-duration: var(--card-glow-duration);
  transition-timing-function: var(--card-glow-easing);
  transition-delay: 0s;
  will-change: border-color, box-shadow;
  opacity: 1;
  transform: none;
  filter: none;
}

.glass-card::before {
  content: "";
  position: absolute;
  inset: 10px;
  border-radius: 22px;
  border: 1px solid rgba(243,216,140,.12);
  pointer-events: none;
  transition-property: box-shadow;
  transition-duration: var(--card-glow-duration);
  transition-timing-function: var(--card-glow-easing);
  transition-delay: 0s;
  will-change: box-shadow;
}


@media (hover: hover) and (pointer: fine) {
  .glass-card.is-pointer-over,
  .glass-card.is-menu-selected {
    background: linear-gradient(135deg, rgba(16,1,0,.82), rgba(8,1,2,.78));
    border-color: rgba(255,236,171,.98);
    -webkit-backdrop-filter: blur(16px) brightness(.84) saturate(.98);
    backdrop-filter: blur(16px) brightness(.84) saturate(.98);
    box-shadow:
      0 30px 86px rgba(0,0,0,.38),
      0 0 0 1px rgba(255,243,221,.88),
      0 0 12px rgba(255,224,128,.92),
      0 0 30px rgba(235,184,74,.72),
      0 0 62px rgba(196,118,27,.48),
      inset 0 0 0 1px rgba(255,250,232,.18),
      inset 0 0 24px rgba(235,184,74,.08);
  }

  .glass-card.is-pointer-over::before,
  .glass-card.is-menu-selected::before {
    border-color: rgba(255,229,144,.76);
    box-shadow:
      0 0 12px rgba(255,224,128,.36),
      inset 0 0 24px rgba(235,184,74,.16);
  }

  .glass-card.pointer-switch-off:not(.is-focus-card),
  .glass-card.pointer-switch-off:not(.is-focus-card)::before {
    transition: none !important;
  }
}

.glass-card::after {
  content: none;
}

.card-icon {
  position: relative;
  z-index: 1;
  width: 78px;
  height: 78px;
  border-radius: 24px;
  display: grid;
  place-items: center;
  background: transparent;
  box-shadow: 0 16px 30px rgba(0,0,0,.28), 0 0 24px rgba(215,173,87,.12);
}

.card-icon.amber {
  background: transparent;
}

.card-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.card-icon svg {
  width: 44px;
  height: 44px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.card-body {
  position: relative;
  z-index: 1;
}

.card-body h2 {
  margin: -2px 0 12px;
  font-family: var(--font-title);
  font-size: clamp(1.72rem, 2.25vw, 2.35rem);
  line-height: 1.08;
  font-weight: 650;
  color: var(--oro-light);
}

.card-body p,
.card-body li {
  color: var(--text-soft);
  font-size: clamp(.99rem, 1.1vw, 1.06rem);
  line-height: 1.58;
  font-family: var(--sans);
}

.card-body p {
  margin: 0 0 12px;
}

.card-body strong {
  color: #fff8ed;
  font-weight: 700;
}

.tips {
  max-height: none;
  overflow: visible;
  position: relative;
  -webkit-mask-image: none;
  mask-image: none;
}

.tips ul {
  margin: 16px 0 0;
  padding-left: 1.2rem;
}

.tips li {
  margin-bottom: 12px;
}

.contact-lines {
  margin-top: 18px;
}

@keyframes introIdentityIn {
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes introTitleIn {
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes discoverIn {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes mobileIntroIdentityIn {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes mobileIntroTitleIn {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes panelIn {
  0% { opacity: 0; transform: translateY(44px) scale(.975); filter: blur(14px); }
  60% { opacity: .88; filter: blur(3px); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

@keyframes shine {
  to { transform: translateX(130%); }
}

/* Barra di navigazione per tutte le dimensioni desktop.
   La versione mobile sotto 900 px resta intenzionalmente da progettare. */
@media (min-width: 901px) {
  html {
    /* 0224: sul desktop la pagina usa schermate fisse e non necessita
       della riserva permanente per la scrollbar. La sua rimozione evita
       la striscia vuota a destra della fascia superiore. */
    scrollbar-gutter: auto;
  }

  .site-header {
    --header-logo-size: clamp(52px, 3.4vw, 66px);
    min-height: 96px;
    padding: 14px clamp(36px, 4vw, 64px);
    gap: 22px;
    background:
      radial-gradient(
        ellipse at 18% -70%,
        rgba(143, 39, 57, .50) 0%,
        rgba(96, 19, 34, .27) 31%,
        rgba(40, 5, 13, .08) 53%,
        rgba(10, 1, 3, 0) 70%
      ),
      linear-gradient(
        180deg,
        rgba(28, 4, 10, .995) 0%,
        rgba(16, 2, 6, .992) 58%,
        rgba(7, 0, 2, .998) 100%
      );
    border-bottom: 0;
    box-shadow:
      0 14px 38px rgba(0, 0, 0, .44),
      inset 0 1px 0 rgba(255, 243, 221, .07),
      inset 0 -16px 30px rgba(95, 21, 30, .09);
    -webkit-backdrop-filter: blur(18px) saturate(1.08);
    backdrop-filter: blur(18px) saturate(1.08);
  }

  .site-header::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: linear-gradient(
      90deg,
      rgba(215, 173, 87, .44) 0%,
      rgba(243, 216, 140, .62) 50%,
      rgba(215, 173, 87, .44) 100%
    );
    box-shadow: 0 0 7px rgba(215, 173, 87, .20);
    pointer-events: none;
  }

  .header-brand {
    min-width: 0;
    gap: calc(var(--header-logo-size) * .22);
  }

  .header-logo {
    width: var(--header-logo-size);
    height: var(--header-logo-size);
  }

  .menu-toggle {
    width: var(--header-logo-size);
    height: var(--header-logo-size);
    border-width: 2px;
    gap: calc(var(--header-logo-size) * .09);
  }

  .menu-toggle span {
    width: calc(var(--header-logo-size) * .42);
    height: 3px;
  }

  .header-brand-text {
    min-width: 0;
  }

  .header-name {
    font-size: calc(var(--header-logo-size) * .38);
    line-height: 1;
    white-space: nowrap;
  }

  .glass-menu {
    top: 106px;
  }

  .content,
  .glass-card {
    scroll-margin-top: 114px;
  }
}

/* Variante più compatta per portatili e finestre desktop ridotte. */
@media (min-width: 901px) and (max-width: 1550px) {
  .site-header {
    min-height: 80px;
    padding: 10px 28px;
    gap: 18px;
  }

  .header-name {
    letter-spacing: .008em;
  }

  .menu-toggle {
    border-width: 1.5px;
  }

  .menu-toggle span {
    height: 3px;
  }

  .glass-menu {
    top: 90px;
    right: 28px;
  }

  .content,
  .glass-card {
    scroll-margin-top: 98px;
  }
}



/* --- Layout editoriale desktop: pannello unico con sezioni espandibili --- */

.content.content-editorial {
  width: min(1160px, calc(100vw - 96px));
  margin: 0 auto 100px;
  padding-top: 30px;
  padding-bottom: var(--end-scroll-space, 0px);
  scroll-margin-top: 110px;
}

.editorial-shell {
  position: relative;
  overflow-anchor: none;
  border-radius: 34px;
  padding: 14px 18px;
  background: linear-gradient(180deg, rgba(10,1,2,.54), rgba(8,1,2,.44));
  border: 1px solid rgba(243,216,140,.26);
  box-shadow:
    0 28px 82px rgba(0,0,0,.34),
    inset 0 0 0 1px rgba(255,255,255,.045);
  backdrop-filter: blur(14px) saturate(1.05);
}

.editorial-shell::before {
  content: "";
  position: absolute;
  inset: 10px;
  border-radius: 26px;
  border: 1px solid rgba(243,216,140,.12);
  pointer-events: none;
}

.editorial-shell .glass-card.editorial-section {
  --section-motion-duration: var(--section-runtime-duration, .62s);
  --section-motion-easing: cubic-bezier(.16, 1, .3, 1);
  --section-chevron-duration: var(--section-runtime-duration, .62s);
  --section-chevron-easing: cubic-bezier(.16, 1, .3, 1);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  padding: 0;
  border: none;
  border-radius: 24px;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  overflow: hidden;
  scroll-margin-top: 122px;
  transition:
    background var(--card-glow-duration) var(--card-glow-easing),
    box-shadow var(--card-glow-duration) var(--card-glow-easing),
    border-color var(--card-glow-duration) var(--card-glow-easing);
}

.editorial-shell .glass-card.editorial-section::before,
.editorial-shell .glass-card.editorial-section::after {
  content: none;
}

.editorial-section + .editorial-section {
  border-top: 1px solid rgba(243,216,140,.26);
  box-shadow: inset 0 1px 0 rgba(255,248,235,.035);
}

.section-trigger {
  grid-area: 1 / 1;
  position: relative;
  z-index: 2;
  align-self: start;
  width: 100%;
  padding: 24px 22px;
  border: 0;
  background: transparent;
  color: inherit;
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr) 55.2px;
  gap: 24px;
  align-items: start;
  text-align: left;
  cursor: pointer;
}

.section-trigger:focus-visible {
  outline: 2px solid rgba(243,216,140,.76);
  outline-offset: -2px;
  border-radius: 20px;
}

.section-head-copy {
  min-width: 0;
  display: grid;
  align-self: start;
  margin-top: 7px;
}

.section-title {
  display: block;
  font-family: var(--font-title);
  font-size: clamp(1.30rem, 1.47vw, 1.48rem);
  line-height: 1.05;
  font-weight: 700;
  color: var(--oro-light);
  letter-spacing: .003em;
}

.editorial-section.is-animating {
  --section-motion-duration: var(--section-runtime-duration, .62s);
  --section-motion-easing: cubic-bezier(.16, 1, .3, 1);
  --section-chevron-duration: var(--section-runtime-duration, .62s);
  --section-chevron-easing: cubic-bezier(.16, 1, .3, 1);
}

.editorial-section.is-opening {
  --card-glow-duration: var(--section-runtime-duration, .62s);
  --card-glow-easing: cubic-bezier(.16, 1, .3, 1);
}

.editorial-section.is-closing {
  --section-motion-easing: cubic-bezier(.4, 0, .2, 1);
  --section-chevron-easing: cubic-bezier(.4, 0, .2, 1);
  --card-glow-duration: var(--section-runtime-duration, .62s);
  --card-glow-easing: cubic-bezier(.4, 0, .2, 1);
}

/* Nelle chiusure avviate dal menu, sfondo, bordo e bagliore si
   spengono insieme seguendo la stessa durata reale della contrazione. */
.editorial-section.is-menu-batch-closing {
  --card-glow-duration: var(--section-runtime-duration, .62s);
  --card-glow-easing: cubic-bezier(.4, 0, .2, 1);
}

.section-chevron {
  position: relative;
  width: 52.8px;
  height: 52.8px;
  margin-top: 7.6px;
  border-radius: 50%;
  border: 1px solid rgba(243,216,140,.65);
}

.section-chevron::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  border-right: 2.4px solid rgba(255,243,221,.96);
  border-bottom: 2.4px solid rgba(255,243,221,.96);
  transform: translate(-50%, -62%) rotate(45deg);
  transition: transform var(--section-chevron-duration) var(--section-chevron-easing);
}

.editorial-section.is-open .section-chevron::before {
  transform: translate(-50%, -38%) rotate(-135deg);
}

.section-content {
  grid-area: 1 / 1;
  position: relative;
  z-index: 1;
  align-self: start;
  height: var(--section-preview-height, 1.62em);
  margin-top: 62px;
  overflow: hidden;
  pointer-events: auto;
  transition: height var(--section-motion-duration) var(--section-motion-easing);
}

.section-content-inner {
  min-height: 0;
  overflow: hidden;
  opacity: 1;
}

.editorial-section.is-open .section-content {
  height: auto;
}

.section-richtext {
  padding: 0 30px 24px 132px;
}

/* Il primo capoverso appartiene allo stesso flusso degli altri. Soltanto
   nello stato completamente chiuso viene ridotto a una riga con puntini. */
.editorial-section:not(.is-open):not(.is-animating)
.section-richtext > p:first-child {
  padding-right: 68px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.editorial-section.is-open .section-richtext > p:first-child,
.editorial-section.is-animating .section-richtext > p:first-child {
  padding-right: 68px;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.section-richtext p,
.section-richtext li {
  color: var(--text-soft);
  font-size: clamp(.99rem, 1.08vw, 1.06rem);
  line-height: 1.62;
  font-family: var(--sans);
}

.section-richtext p {
  margin: 0 0 14px;
}

.section-richtext > :last-child,
.section-richtext > :last-child > :last-child {
  margin-bottom: 0;
}

.section-richtext strong {
  color: #fff8ed;
  font-weight: 700;
}

.editorial-section.is-open {
  background: linear-gradient(135deg, rgba(28,4,8,.26), rgba(10,1,2,.12));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}

@media (hover: hover) and (pointer: fine) {
  .editorial-shell .glass-card.editorial-section.is-pointer-over,
  .editorial-shell .glass-card.editorial-section.is-menu-selected {
    background: linear-gradient(135deg, rgba(12,1,3,.78), rgba(8,1,2,.68));
    box-shadow:
      0 0 0 1px rgba(255,243,221,.90),
      0 0 12px rgba(255,224,128,.58),
      0 0 34px rgba(196,118,27,.28),
      inset 0 0 0 1px rgba(255,250,232,.12);
  }

  .editorial-shell .glass-card.editorial-section.is-open.is-pointer-over,
  .editorial-shell .glass-card.editorial-section.is-open.is-menu-selected {
    background: linear-gradient(135deg, rgba(12,1,3,.78), rgba(8,1,2,.68));
    box-shadow:
      0 0 0 1px rgba(255,243,221,.90),
      0 0 12px rgba(255,224,128,.58),
      0 0 34px rgba(196,118,27,.28),
      inset 0 0 0 1px rgba(255,250,232,.12);
  }
}

.editorial-section .card-icon {
  width: 68px;
  height: 68px;
  border-radius: 21px;
  box-shadow: 0 14px 28px rgba(0,0,0,.24), 0 0 24px rgba(215,173,87,.12);
}

.editorial-section .card-icon svg {
  width: 38px;
  height: 38px;
}

.editorial-section .tips {
  max-height: none;
}

.editorial-section .contact-lines {
  margin-top: 20px;
}

@media (min-width: 901px) and (max-width: 1550px) {
  .content.content-editorial {
    width: min(1080px, calc(100vw - 64px));
  }

  .editorial-shell {
    border-radius: 30px;
    padding: 12px 16px;
  }

  .section-trigger {
    grid-template-columns: 76px minmax(0, 1fr) 55.2px;
    gap: 20px;
    padding: 22px 20px;
  }

  .section-content {
    margin-top: 59px;
  }

  .section-richtext {
    padding: 0 24px 24px 116px;
  }

  .editorial-section:not(.is-open):not(.is-animating)
  .section-richtext > p:first-child,
  .editorial-section.is-open .section-richtext > p:first-child,
  .editorial-section.is-animating .section-richtext > p:first-child {
    padding-right: 64px;
  }

  .section-title {
    font-size: clamp(1.22rem, 1.55vw, 1.40rem);
  }

}

/* Lo stato attivo usa la stessa intensità forte dell'hover: apertura e
   chiusura non producono variazioni di bordo, sfondo o bagliore. */
.editorial-shell .glass-card.editorial-section.is-section-active,
.editorial-shell .glass-card.editorial-section.is-closing:not(.is-menu-batch-closing) {
  background: linear-gradient(135deg, rgba(12,1,3,.78), rgba(8,1,2,.68));
  box-shadow:
    0 0 0 1px rgba(255,243,221,.90),
    0 0 12px rgba(255,224,128,.58),
    0 0 34px rgba(196,118,27,.28),
    inset 0 0 0 1px rgba(255,250,232,.12);
}

/* Durante la sola chiusura desktop comandata dal menu, un overlay
   replica lo sfondo attivo e ne consente la dissolvenza progressiva.
   Il contenuto resta sopra l'overlay e non viene attenuato. */
@media (min-width: 901px) {
  .editorial-shell .glass-card.editorial-section.is-menu-batch-closing::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(12,1,3,.78), rgba(8,1,2,.68));
    opacity: 0;
    pointer-events: none;
    transition:
      opacity var(--section-runtime-duration, .62s)
      cubic-bezier(.4, 0, .2, 1);
  }

  .editorial-shell .glass-card.editorial-section.is-menu-batch-closing.is-section-active::before {
    opacity: 1;
    transition: none;
  }
}

/* Separazione raffinata tra i riquadri editoriali. */
.editorial-shell {
  display: grid;
  gap: 29px;
}

.editorial-section + .editorial-section {
  border-top: 0;
  box-shadow: none;
}

.editorial-shell .glass-card.editorial-section {
  overflow: visible;
}

.editorial-shell .glass-card.editorial-section:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: -15px;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(243,216,140,.18) 5%,
    rgba(243,216,140,.48) 18%,
    rgba(243,216,140,.58) 50%,
    rgba(243,216,140,.48) 82%,
    rgba(243,216,140,.18) 95%,
    transparent 100%
  );
  box-shadow: 0 0 6px rgba(215,173,87,.10);
  pointer-events: none;
}

/* ================================================================
   VERSIONE MOBILE 0130
   Regole isolate: nessuna modifica al layout desktop sopra 900 px.
   ================================================================ */
@media (max-width: 900px) {
  html.mobile-reset-pending .editorial-shell .glass-card.editorial-section,
  html.mobile-reset-pending .section-content,
  html.mobile-reset-pending .section-chevron::before {
    transition: none !important;
  }

  :root {
    --mobile-header-height: 76px;
    --mobile-side-space: 14px;
    --mobile-intro-top-space: max(46px, 6svh, env(safe-area-inset-top));
    --mobile-intro-bottom-space: max(24px, env(safe-area-inset-bottom));
  }

  html {
    scrollbar-gutter: auto;
    scroll-padding-top: calc(var(--mobile-header-height) + 12px);
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  html.intro-scroll-locked,
  html.intro-scroll-locked body {
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  body {
    min-height: 100svh;
    background: #050001;
  }

  .video-layer {
    background-color: #050001;
  }

  .bg-video {
    object-position: center center;
  }



  .play-video {
    bottom: 20px;
    max-width: calc(100vw - 32px);
    padding: 11px 17px;
    font-size: .92rem;
  }

  .site-header {
    min-height: var(--mobile-header-height);
    padding: 9px var(--mobile-side-space);
    gap: 12px;
    background: linear-gradient(180deg, rgba(6,0,1,.985), rgba(14,1,4,.97));
    border-bottom: 1px solid rgba(243,216,140,.46);
    box-shadow: 0 10px 30px rgba(0,0,0,.42);
    -webkit-backdrop-filter: blur(16px) saturate(1.08);
    backdrop-filter: blur(16px) saturate(1.08);
    opacity: 0;
    transform: translateY(-100%);
    filter: none;
    pointer-events: none;
    transition: opacity .22s ease, transform .22s ease;
  }

  body.mobile-content .site-header {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  body.mobile-home .site-header {
    display: none;
  }

  .header-brand {
    min-width: 0;
    gap: 10px;
  }

  .header-logo {
    width: 49px;
    height: 49px;
  }

  .header-brand-text {
    min-width: 0;
  }

  .header-name {
    max-width: calc(100vw - 138px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: clamp(1.18rem, 5.3vw, 1.42rem);
    line-height: 1;
  }

  .menu-toggle {
    flex: 0 0 auto;
    width: 49px;
    height: 49px;
    gap: 5px;
    border-width: 1.5px;
  }

  .menu-toggle span {
    width: 21px;
    height: 2px;
    transition: transform .22s ease, opacity .18s ease;
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .glass-menu {
    top: calc(var(--mobile-header-height) + 11px);
    right: var(--mobile-side-space);
    left: var(--mobile-side-space);
    width: auto;
    max-width: none;
    max-height: calc(100svh - var(--mobile-header-height) - 24px);
    overflow-y: auto;
    padding: 8px;
    border-radius: 16px;
    background:
      linear-gradient(180deg, rgba(43,7,14,.995) 0%, rgba(22,3,8,.995) 48%, rgba(9,1,4,.998) 100%);
    border: 1px solid rgba(215,173,87,.50);
    box-shadow:
      0 30px 82px rgba(0,0,0,.76),
      0 10px 28px rgba(0,0,0,.48),
      inset 0 1px 0 rgba(255,243,221,.06),
      inset 0 0 0 1px rgba(95,21,30,.16);
    -webkit-backdrop-filter: blur(8px) saturate(.94);
    backdrop-filter: blur(8px) saturate(.94);
    transform: translateY(-8px) scale(.985);
  }

  body.mobile-home .glass-menu {
    display: none;
  }

  .glass-menu.is-open {
    transform: translateY(0) scale(1);
  }

  .glass-menu a {
    position: relative;
    padding: 15px 12px;
    white-space: normal;
    border-bottom: 1px solid rgba(243,216,140,.13);
    border-radius: 8px;
    color: rgba(255,243,221,.90);
    font-size: 1rem;
    line-height: 1.22;
    font-weight: 650;
    transition: background .18s ease, color .18s ease;
  }

  .glass-menu a.is-current {
    color: var(--oro-light);
    background: linear-gradient(90deg, rgba(95,21,30,.52), rgba(95,21,30,.16));
    box-shadow: inset 3px 0 0 rgba(215,173,87,.76);
  }

  .glass-menu a:active {
    background: rgba(95,21,30,.38);
  }

  .glass-menu a:last-child {
    border-bottom: 0;
  }

  .menu-toggle:disabled {
    pointer-events: none;
  }

  .intro {
    min-height: 100svh;
    height: 100svh;
    display: flex;
    align-items: flex-start;
    padding:
      var(--mobile-intro-top-space)
      18px
      var(--mobile-intro-bottom-space);
  }

  .intro-content {
    width: 100%;
    max-width: 100%;
    min-height: calc(100svh - var(--mobile-intro-top-space) - var(--mobile-intro-bottom-space));
    margin: 0;
    display: flex;
    flex-direction: column;
  }

  .intro-identity {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 13px;
    margin: 0 0 clamp(34px, 7svh, 58px);
    filter: none;
    will-change: opacity, transform;
    animation: mobileIntroIdentityIn 1.05s cubic-bezier(.18,.88,.2,1) 2.8s forwards;
  }

  .intro-logo {
    width: clamp(58px, 17vw, 72px);
    height: clamp(58px, 17vw, 72px);
  }

  .intro-identity > div {
    min-width: 0;
  }

  .intro-name {
    font-size: clamp(1.72rem, 7.4vw, 2.12rem);
    line-height: .98;
  }

  .intro-role {
    margin-top: 7px;
    max-width: 270px;
    font-size: clamp(.79rem, 3.35vw, .94rem);
    line-height: 1.32;
  }

  .intro-title {
    width: 100%;
    text-align: left;
    margin-top: clamp(140px, 18svh, 210px);
    margin-bottom: 0;
    filter: none;
    will-change: opacity, transform;
    animation: mobileIntroTitleIn 1.05s cubic-bezier(.18,.88,.2,1) 4.05s forwards;
  }

  .white-line {
    font-size: clamp(1.92rem, 8.55vw, 2.58rem);
    line-height: 1.02;
    letter-spacing: .006em;
  }

  .gold-line {
    font-size: clamp(1.63rem, 7.25vw, 2.18rem);
    line-height: 1.07;
    letter-spacing: .006em;
  }

  .intro-title > .gold-line:nth-child(3) {
    margin-top: 14px;
  }

  .discover {
    min-width: 0;
    width: min(278px, 78vw);
    margin-top: 26px;
    margin-bottom: 0;
    align-self: flex-start;
    padding: 15px 20px;
    gap: 20px;
    border-radius: 5px;
    background: rgba(10,1,2,.50);
    font-size: .88rem;
    letter-spacing: .04em;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    will-change: opacity, transform;
    animation: discoverIn .9s ease 5.25s forwards;
  }

  body.mobile-intro-complete .intro-identity,
  body.mobile-intro-complete .intro-title,
  body.mobile-intro-complete .discover {
    opacity: 1;
    transform: translateY(0);
    animation: none;
  }

  body.mobile-home .content {
    display: none;
  }

  body.mobile-content .intro {
    display: none;
  }

  body.mobile-content main {
    min-height: 100svh;
  }

  .content.content-editorial {
    width: calc(100% - (var(--mobile-side-space) * 2));
    margin: 0 auto 48px;
    padding-top: calc(var(--mobile-header-height) + 11px);
    padding-bottom: 26px;
    scroll-margin-top: calc(var(--mobile-header-height) + 10px);
  }

  .editorial-shell {
    display: grid;
    gap: 22px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  .editorial-shell::before {
    content: none;
  }

  .editorial-shell .glass-card.editorial-section {
    display: block;
    overflow: visible;
    scroll-margin-top: calc(var(--mobile-header-height) + 12px);
    border: 1px solid rgba(243,216,140,.28);
    border-radius: 20px;
    background: linear-gradient(145deg, rgba(23,3,6,.78), rgba(7,0,2,.68));
    box-shadow:
      0 16px 42px rgba(0,0,0,.34),
      inset 0 0 0 1px rgba(255,255,255,.035);
    -webkit-backdrop-filter: blur(12px) saturate(1.03);
    backdrop-filter: blur(12px) saturate(1.03);
    transition:
      background var(--mobile-section-visual-duration, .28s) var(--mobile-section-easing, ease),
      border-color var(--mobile-section-visual-duration, .28s) var(--mobile-section-easing, ease),
      box-shadow var(--mobile-section-visual-duration, .28s) var(--mobile-section-easing, ease);
  }


  .editorial-shell .glass-card.editorial-section:not(.is-open) {
    width: 100%;
    aspect-ratio: 17 / 10;
  }

  .editorial-shell .glass-card.editorial-section.is-section-active,
  .editorial-shell .glass-card.editorial-section.is-open,
  .editorial-shell .glass-card.editorial-section.is-closing:not(.is-menu-batch-closing) {
    border-color: rgba(255,232,158,.88);
    background: linear-gradient(145deg, rgba(17,1,4,.94), rgba(7,0,2,.88));
    box-shadow:
      0 18px 50px rgba(0,0,0,.42),
      0 0 0 1px rgba(255,243,221,.55),
      0 0 14px rgba(255,224,128,.36),
      0 0 34px rgba(196,118,27,.18),
      inset 0 0 0 1px rgba(255,250,232,.08);
  }

  .editorial-shell .glass-card.editorial-section:not(:last-child)::after {
    left: 5px;
    right: 5px;
    bottom: -12px;
    background: linear-gradient(
      90deg,
      transparent 0%,
      rgba(243,216,140,.18) 6%,
      rgba(243,216,140,.54) 22%,
      rgba(243,216,140,.62) 50%,
      rgba(243,216,140,.54) 78%,
      rgba(243,216,140,.18) 94%,
      transparent 100%
    );
  }

  .section-trigger {
    grid-area: auto;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) 40px;
    gap: 12px;
    align-items: center;
    padding: 14px 13px 10px;
    border-radius: 19px 19px 0 0;
    -webkit-tap-highlight-color: transparent;
  }

  .section-head-copy {
    align-self: center;
    margin-top: 0;
  }

  .section-title {
    font-size: clamp(1.12rem, 5.1vw, 1.34rem);
    line-height: 1.08;
    letter-spacing: 0;
  }

  .editorial-section .card-icon {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    box-shadow: 0 10px 22px rgba(0,0,0,.28), 0 0 20px rgba(215,173,87,.10);
  }

  .editorial-section .card-icon svg {
    width: 29px;
    height: 29px;
  }

  .section-chevron {
    width: 40px;
    height: 40px;
    margin-top: 0;
    align-self: center;
  }

  .section-chevron::before {
    width: 9px;
    height: 9px;
    border-right-width: 2px;
    border-bottom-width: 2px;
    transition-duration: var(--mobile-chevron-duration, .46s);
    transition-timing-function: var(--mobile-section-easing, cubic-bezier(.16, 1, .3, 1));
  }

  .section-content {
    grid-area: auto;
    height: 0;
    margin-top: 0;
    overflow: hidden;
    transition:
      height var(--mobile-section-duration, .46s)
      var(--mobile-section-easing, cubic-bezier(.16, 1, .3, 1));
  }

  .editorial-section.is-open .section-content {
    height: auto;
  }

  .section-content-inner {
    position: relative;
    height: 100%;
    overflow: hidden;
  }

  .section-richtext {
    position: relative;
    width: 100%;
    max-width: none;
    padding: 0 11px 18px;
  }

  /* Il testo non viene mai modificato: nei riquadri chiusi resta fermo e
     viene semplicemente ritagliato dall'altezza del contenitore. */
  .editorial-section:not(.is-open) .section-richtext {
    height: 100%;
    overflow: hidden;
  }

  .section-mobile-ellipsis {
    position: absolute;
    z-index: 3;
    display: none;
    color: var(--text-soft);
    font-family: var(--sans);
    font-size: clamp(1rem, 4.15vw, 1.075rem);
    font-weight: 400;
    line-height: 1.58;
    white-space: nowrap;
    pointer-events: none;
  }

  .section-mobile-ellipsis.is-visible,
  .section-mobile-ellipsis.is-measuring {
    display: block;
  }

  .section-mobile-ellipsis.is-measuring {
    visibility: hidden;
  }

  .editorial-section .section-richtext > p:first-child {
    padding-right: 0;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  .section-richtext p,
  .section-richtext li {
    width: auto;
    max-width: none;
    font-size: clamp(1rem, 4vw, 1.05rem);
    line-height: 1.58;
    letter-spacing: normal;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    -webkit-hyphens: none;
  }

  .section-richtext p {
    margin-bottom: 15px;
  }

  .section-richtext ul {
    padding-left: 1.24rem;
  }

  .section-richtext li {
    margin-bottom: 11px;
  }

  .contact-lines {
    margin-top: 16px;
  }
}

@media (max-width: 380px) {
  :root {
    --mobile-header-height: 70px;
    --mobile-side-space: 12px;
    --mobile-intro-top-space: max(38px, 5svh, env(safe-area-inset-top));
    --mobile-intro-bottom-space: max(22px, env(safe-area-inset-bottom));
  }

  .header-logo,
  .menu-toggle {
    width: 45px;
    height: 45px;
  }

  .header-name {
    font-size: 1.13rem;
  }

  .intro {
    padding-right: 15px;
    padding-left: 15px;
  }

  .intro-identity {
    margin-bottom: 30px;
  }

  .white-line {
    font-size: clamp(1.78rem, 8.45vw, 2.04rem);
  }

  .gold-line {
    font-size: clamp(1.52rem, 7.15vw, 1.82rem);
  }

  .section-trigger {
    grid-template-columns: 48px minmax(0, 1fr) 38px;
    gap: 10px;
    padding-right: 11px;
    padding-left: 11px;
  }

  .editorial-section .card-icon {
    width: 48px;
    height: 48px;
  }

  .section-chevron {
    width: 38px;
    height: 38px;
  }

  .section-richtext {
    padding-right: 14px;
    padding-left: 14px;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .intro-identity,
  .intro-title,
  .discover {
    animation-duration: .01ms !important;
    animation-delay: 0s !important;
  }

  .site-header,
  .glass-menu,
  .section-content,
  .editorial-shell .glass-card.editorial-section,
  .section-chevron::before {
    transition-duration: .01ms !important;
  }
}

/* Correzioni di collaudo mobile 0130: contenimento orizzontale,
   anteprime multilinea e spazio tecnico per l'allineamento da menu. */
@media (max-width: 900px) {
  .intro {
    align-items: flex-start;
    padding-top: var(--mobile-intro-top-space);
  }

  .intro-identity {
    margin-bottom: clamp(32px, 5.2svh, 46px);
  }

  .intro-role {
    color: var(--oro-light);
  }

  .intro-title span {
    white-space: nowrap;
  }

  .intro-title .white-line:nth-child(3) {
    margin-top: 10px;
    font-size: clamp(1.46rem, 5.6vw, 1.78rem);
    line-height: 1.08;
  }

  .white-line {
    font-size: clamp(1.91rem, 8.50vw, 2.50rem);
    line-height: .98;
  }

  .gold-line {
    font-size: clamp(1.58rem, 6.85vw, 2.02rem);
    line-height: 1.05;
  }

  .intro-title > .gold-line:nth-child(3) {
    margin-top: 20px;
  }

  .content.content-editorial {
    padding-bottom: calc(100svh - var(--mobile-header-height) - 34px);
  }

  .editorial-shell,
  .editorial-shell .glass-card.editorial-section,
  .section-trigger,
  .section-content,
  .section-content-inner,
  .section-richtext {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .section-head-copy {
    min-width: 0;
  }

  .section-title {
    overflow-wrap: break-word;
    word-break: normal;
  }

  .section-richtext p,
  .section-richtext li {
    overflow-wrap: normal;
    word-break: normal;
  }

}

@media (max-width: 380px) {
  .white-line {
    font-size: clamp(1.77rem, 8.28vw, 2.01rem);
  }

  .gold-line {
    font-size: clamp(1.45rem, 6.62vw, 1.73rem);
  }
}

/* Correzione mobile 0153: il primo capoverso deve utilizzare la stessa
   larghezza naturale di tutti gli altri capoversi, in ogni stato. */
@media (max-width: 900px) {
  .editorial-section:not(.is-open):not(.is-animating)
  .section-richtext > p:first-child,
  .editorial-section.is-open
  .section-richtext > p:first-child,
  .editorial-section.is-animating
  .section-richtext > p:first-child {
    width: auto;
    max-width: none;
    padding-right: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    -webkit-hyphens: none;
  }
}
/* ================================================================
   VERSIONE DESKTOP 0175
   Griglia 2 righe x 3 colonne + pannello esteso separato.
   Regole completamente isolate sopra 900 px.
   ================================================================ */
@media (min-width: 901px) {
  body.desktop-grid-layout .content.content-editorial {
    width: min(1320px, calc(100vw - 80px));
    margin-bottom: 90px;
    padding-top: 28px;
  }

  body.desktop-grid-layout .editorial-shell {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    padding: 18px;
    border-radius: 32px;
    background: linear-gradient(180deg, rgba(10,1,2,.58), rgba(8,1,2,.48));
    overflow: visible;
  }

  body.desktop-grid-layout .editorial-shell::before {
    inset: 10px;
    border-radius: 24px;
  }

  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section {
    display: block;
    min-width: 0;
    min-height: 196px;
    padding: 0;
    border: 1px solid rgba(243,216,140,.25);
    border-radius: 22px;
    background: linear-gradient(145deg, rgba(24,3,7,.72), rgba(8,1,2,.62));
    box-shadow:
      0 18px 48px rgba(0,0,0,.30),
      inset 0 0 0 1px rgba(255,255,255,.035);
    -webkit-backdrop-filter: blur(12px) saturate(1.04);
    backdrop-filter: blur(12px) saturate(1.04);
    overflow: hidden !important;
    scroll-margin-top: 110px;
    transition:
      background .34s cubic-bezier(.16,1,.3,1),
      border-color .34s cubic-bezier(.16,1,.3,1),
      box-shadow .34s cubic-bezier(.16,1,.3,1),
      transform .34s cubic-bezier(.16,1,.3,1);
  }

  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section::before,
  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section::after {
    content: none !important;
  }

  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section.is-open {
    background: linear-gradient(145deg, rgba(24,3,7,.72), rgba(8,1,2,.62));
    box-shadow:
      0 18px 48px rgba(0,0,0,.30),
      inset 0 0 0 1px rgba(255,255,255,.035);
  }

  body.desktop-grid-layout .section-trigger {
    grid-area: auto;
    width: 100%;
    min-height: 92px;
    padding: 18px 18px 10px;
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 15px;
    align-items: center;
    cursor: pointer;
  }

  body.desktop-grid-layout .section-head-copy {
    align-self: center;
    margin-top: 0;
  }

  body.desktop-grid-layout .section-title {
    font-size: clamp(1.12rem, 1.34vw, 1.36rem);
    line-height: 1.08;
    white-space: nowrap;
  }

  body.desktop-grid-layout .section-title .desktop-title-break {
    display: block;
  }

  body.desktop-grid-layout .is-focus-card .section-title .desktop-title-break {
    display: none;
  }

  body.desktop-grid-layout .is-focus-card.is-focus-title-compact
  .section-title .desktop-title-break {
    display: block;
  }

  body.desktop-grid-layout .editorial-shell
  .glass-card.editorial-section:not(.is-focus-card) {
    cursor: pointer;
  }

  body.desktop-grid-layout .editorial-shell
  .glass-card.editorial-section.is-focus-card {
    cursor: default;
  }

  body.desktop-grid-layout .editorial-section .card-icon {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    box-shadow:
      0 12px 24px rgba(0,0,0,.26),
      0 0 22px rgba(215,173,87,.11);
  }

  body.desktop-grid-layout .editorial-section .card-icon svg {
    width: 32px;
    height: 32px;
  }

  body.desktop-grid-layout .section-chevron {
    display: none;
  }

  body.desktop-grid-layout .section-content,
  body.desktop-grid-layout .editorial-section.is-open .section-content {
    grid-area: auto;
    position: relative;
    height: auto !important;
    margin-top: 0;
    overflow: hidden;
    pointer-events: none;
    transition: none !important;
  }

  body.desktop-grid-layout .section-content-inner {
    overflow: hidden;
  }

  body.desktop-grid-layout .editorial-section .section-richtext {
    padding: 0 18px 18px;
  }

  body.desktop-grid-layout .editorial-section .section-richtext > * {
    display: none;
  }

  body.desktop-grid-layout .editorial-section .section-richtext > p:first-child {
    display: -webkit-box !important;
    margin: 0;
    padding: 0 !important;
    color: rgba(255,243,221,.75);
    font-size: clamp(.88rem, .88vw, .98rem);
    line-height: 1.48;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section.is-section-active {
    background: linear-gradient(145deg, rgba(12,1,3,.92), rgba(7,0,2,.84));
    border-color: rgba(255,232,158,.90);
    box-shadow:
      0 20px 54px rgba(0,0,0,.38),
      0 0 0 1px rgba(255,243,221,.62),
      0 0 14px rgba(255,224,128,.46),
      0 0 34px rgba(196,118,27,.24),
      inset 0 0 0 1px rgba(255,250,232,.08);
  }

  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section:focus-within {
    border-color: rgba(255,232,158,.72);
  }

  @media (hover: hover) and (pointer: fine) {
    body.desktop-grid-layout .editorial-shell .glass-card.editorial-section.is-pointer-over {
      background: linear-gradient(145deg, rgba(16,1,4,.84), rgba(7,0,2,.76));
      border-color: rgba(255,232,158,.74);
      box-shadow:
        0 20px 54px rgba(0,0,0,.35),
        0 0 0 1px rgba(255,243,221,.38),
        0 0 12px rgba(255,224,128,.30),
        0 0 28px rgba(196,118,27,.16),
        inset 0 0 0 1px rgba(255,250,232,.06);
      transform: translateY(-2px);
    }

    body.desktop-grid-layout .editorial-shell .glass-card.editorial-section.is-section-active.is-pointer-over {
      background: linear-gradient(145deg, rgba(12,1,3,.94), rgba(7,0,2,.86));
      border-color: rgba(255,232,158,.94);
      box-shadow:
        0 20px 56px rgba(0,0,0,.40),
        0 0 0 1px rgba(255,243,221,.66),
        0 0 15px rgba(255,224,128,.50),
        0 0 36px rgba(196,118,27,.26),
        inset 0 0 0 1px rgba(255,250,232,.09);
    }
  }

  body.desktop-grid-layout .desktop-detail-wrap {
    grid-column: 1 / -1;
    min-width: 0;
    display: grid;
    grid-template-rows: 0fr;
    margin-top: -18px;
    opacity: 0;
    transition:
      grid-template-rows .68s cubic-bezier(.16,1,.3,1),
      margin-top .68s cubic-bezier(.16,1,.3,1),
      opacity .30s ease;
  }

  body.desktop-grid-layout .desktop-detail-wrap.is-visible {
    grid-template-rows: 1fr;
    margin-top: 4px;
    opacity: 1;
  }

  body.desktop-grid-layout .desktop-detail-overflow {
    min-height: 0;
    overflow: hidden;
  }

  body.desktop-grid-layout .desktop-detail-panel {
    position: relative;
    min-width: 0;
    padding: 26px 30px 30px;
    border: 1px solid rgba(255,232,158,.74);
    border-radius: 24px;
    background: linear-gradient(145deg, rgba(12,1,3,.91), rgba(7,0,2,.84));
    box-shadow:
      0 24px 68px rgba(0,0,0,.40),
      0 0 0 1px rgba(255,243,221,.30),
      0 0 16px rgba(255,224,128,.20),
      0 0 38px rgba(196,118,27,.13),
      inset 0 0 0 1px rgba(255,250,232,.06);
    transform: translateY(-12px);
    transition: transform .68s cubic-bezier(.16,1,.3,1);
  }

  body.desktop-grid-layout .desktop-detail-wrap.is-visible .desktop-detail-panel {
    transform: translateY(0);
  }

  body.desktop-grid-layout .desktop-detail-head {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) 48px;
    gap: 18px;
    align-items: center;
    margin-bottom: 20px;
  }

  body.desktop-grid-layout .desktop-detail-icon {
    width: 68px;
    height: 68px;
  }

  body.desktop-grid-layout .desktop-detail-icon .card-icon {
    width: 68px;
    height: 68px;
  }

  body.desktop-grid-layout .desktop-detail-icon .card-icon svg {
    width: 38px;
    height: 38px;
  }

  body.desktop-grid-layout .desktop-detail-title {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(1.42rem, 1.80vw, 1.76rem);
    line-height: 1.08;
    font-weight: 700;
    color: var(--oro-light);
    letter-spacing: .003em;
  }

  body.desktop-grid-layout .desktop-detail-close {
    position: relative;
    width: 46px;
    height: 46px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(243,216,140,.65);
    background: rgba(10,1,2,.18);
    cursor: pointer;
    transition:
      border-color .22s ease,
      background .22s ease,
      box-shadow .22s ease;
  }

  body.desktop-grid-layout .desktop-detail-close::before,
  body.desktop-grid-layout .desktop-detail-close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 17px;
    height: 2px;
    border-radius: 999px;
    background: rgba(255,243,221,.94);
  }

  body.desktop-grid-layout .desktop-detail-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  body.desktop-grid-layout .desktop-detail-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  body.desktop-grid-layout .desktop-detail-close:hover {
    border-color: rgba(255,232,158,.92);
    background: rgba(95,21,30,.28);
    box-shadow:
      0 0 12px rgba(255,224,128,.24),
      0 0 28px rgba(196,118,27,.12);
  }

  body.desktop-grid-layout .desktop-detail-close:focus-visible {
    outline: 2px solid rgba(243,216,140,.76);
    outline-offset: 3px;
  }

  body.desktop-grid-layout .desktop-detail-content .section-richtext {
    padding: 0;
  }

  body.desktop-grid-layout .desktop-detail-content .section-richtext p,
  body.desktop-grid-layout .desktop-detail-content .section-richtext li {
    font-size: clamp(.99rem, 1.04vw, 1.05rem);
    line-height: 1.62;
  }

  body.desktop-grid-layout .desktop-detail-content .section-richtext > p:first-child {
    padding-right: 0;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  body.desktop-grid-layout .desktop-detail-content .tips {
    max-height: none;
    overflow: visible;
  }

  body.desktop-grid-layout .desktop-detail-content .contact-lines {
    margin-top: 20px;
  }
}

@media (min-width: 901px) and (max-width: 1150px) {
  body.desktop-grid-layout .content.content-editorial {
    width: calc(100vw - 48px);
  }

  body.desktop-grid-layout .editorial-shell {
    gap: 14px;
    padding: 14px;
  }

  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section {
    min-height: 184px;
  }

  body.desktop-grid-layout .section-trigger {
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 12px;
    padding: 15px 14px 8px;
  }

  body.desktop-grid-layout .editorial-section .card-icon {
    width: 52px;
    height: 52px;
    border-radius: 16px;
  }

  body.desktop-grid-layout .editorial-section .card-icon svg {
    width: 29px;
    height: 29px;
  }

  body.desktop-grid-layout .section-title {
    font-size: clamp(1.02rem, 1.65vw, 1.22rem);
  }

  body.desktop-grid-layout .editorial-section .section-richtext {
    padding: 0 14px 15px;
  }

  body.desktop-grid-layout .desktop-detail-panel {
    padding: 24px 24px 28px;
  }
}
/* ================================================================
   VERSIONE DESKTOP 0194
   Il riquadro selezionato sostituisce progressivamente la griglia.
   Il contenitore mantiene fermo il proprio bordo superiore e cresce
   soltanto verso il basso quando il contenuto richiede maggiore altezza.
   ================================================================ */
@media (min-width: 901px) {
  body.desktop-grid-layout .desktop-detail-wrap {
    display: none !important;
  }

  body.desktop-grid-layout .editorial-shell {
    position: relative;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(196px, auto));
    align-items: stretch;
    align-content: start;
    transition: none;
  }

  body.desktop-grid-layout #profilo {
    grid-column: 1;
    grid-row: 1;
  }

  body.desktop-grid-layout #ambito {
    grid-column: 2;
    grid-row: 1;
  }

  body.desktop-grid-layout #seconda-valutazione {
    grid-column: 3;
    grid-row: 1;
  }

  body.desktop-grid-layout #rapporto-diretto {
    grid-column: 1;
    grid-row: 2;
  }

  body.desktop-grid-layout #consigli {
    grid-column: 2;
    grid-row: 2;
  }

  body.desktop-grid-layout #contatti {
    grid-column: 3;
    grid-row: 2;
  }

  body.desktop-grid-layout .desktop-grid-placeholder {
    min-width: 0;
    min-height: 196px;
    visibility: hidden;
    pointer-events: none;
  }

  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section {
    opacity: 1;
    transform: translateY(0) scale(1);
    transform-origin: center center;
    transition:
      opacity .46s cubic-bezier(.4,0,.2,1),
      transform .72s cubic-bezier(.16,1,.3,1),
      background .34s cubic-bezier(.16,1,.3,1),
      border-color .34s cubic-bezier(.16,1,.3,1),
      box-shadow .34s cubic-bezier(.16,1,.3,1);
  }

  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section.is-grid-faded {
    opacity: 0;
    transform: translateY(9px) scale(.982);
    pointer-events: none;
  }

  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section.is-grid-returning {
    transition:
      opacity .54s cubic-bezier(.16,1,.3,1) .12s,
      transform .74s cubic-bezier(.16,1,.3,1) .08s,
      background .34s cubic-bezier(.16,1,.3,1),
      border-color .34s cubic-bezier(.16,1,.3,1),
      box-shadow .34s cubic-bezier(.16,1,.3,1);
  }

  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section.is-focus-card {
    position: absolute;
    grid-column: auto !important;
    grid-row: auto !important;
    min-width: 0;
    min-height: 0;
    margin: 0;
    opacity: 1 !important;
    transform: none !important;
    overflow: hidden !important;
    pointer-events: auto;
    z-index: 12;
    background: linear-gradient(145deg, rgba(12,1,3,.94), rgba(7,0,2,.87));
    border-color: rgba(255,232,158,.90);
    box-shadow:
      0 24px 68px rgba(0,0,0,.40),
      0 0 0 1px rgba(255,243,221,.54),
      0 0 15px rgba(255,224,128,.38),
      0 0 36px rgba(196,118,27,.20),
      inset 0 0 0 1px rgba(255,250,232,.08);
  }

  body.desktop-grid-layout .editorial-shell .glass-card.editorial-section.is-focus-card.is-pointer-over {
    transform: none !important;
  }

  body.desktop-grid-layout .is-focus-card .section-trigger {
    min-height: 92px;
    padding: 18px 18px 10px;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 15px;
    align-items: center;
    pointer-events: none;
  }

  body.desktop-grid-layout .is-focus-card .section-head-copy {
    align-self: center;
  }

  body.desktop-grid-layout .is-focus-card .section-title {
    font-size: clamp(1.12rem, 1.34vw, 1.36rem);
    line-height: 1.08;
  }

  body.desktop-grid-layout .is-focus-card .card-icon {
    width: 58px;
    height: 58px;
    border-radius: 18px;
  }

  body.desktop-grid-layout .is-focus-card .card-icon svg {
    width: 32px;
    height: 32px;
  }

  body.desktop-grid-layout .is-focus-card .section-content,
  body.desktop-grid-layout .is-focus-card.is-open .section-content {
    position: relative;
    height: auto !important;
    margin-top: 0;
    overflow: visible;
    pointer-events: auto;
    transition: none !important;
  }

  body.desktop-grid-layout .is-focus-card .section-content-inner {
    overflow: visible;
  }

  body.desktop-grid-layout .is-focus-card .section-richtext {
    padding: 0 18px 30px;
  }

  body.desktop-grid-layout .is-focus-card .section-richtext > * {
    display: block;
  }

  body.desktop-grid-layout .is-focus-card .section-richtext > p:first-child {
    display: block !important;
    margin: 0 0 14px;
    padding: 0 !important;
    color: rgba(255,243,221,.75);
    font-size: clamp(.88rem, .88vw, .98rem);
    line-height: 1.48;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    -webkit-line-clamp: unset;
    transition: margin-bottom .15s ease;
  }

  body.desktop-grid-layout .is-focus-card.is-focus-preview-swap
  .section-richtext > p:first-child {
    margin-bottom: 0;
  }

  body.desktop-grid-layout .is-focus-card .section-richtext p,
  body.desktop-grid-layout .is-focus-card .section-richtext li {
    color: rgba(255,243,221,.75);
    font-size: clamp(.88rem, .88vw, .98rem);
    line-height: 1.48;
  }

  body.desktop-grid-layout .is-focus-card .section-content-inner {
    opacity: 1;
    transition: opacity .15s ease;
  }

  body.desktop-grid-layout .is-focus-card.is-focus-preview-swap
  .section-content-inner {
    opacity: 0;
  }

  body.desktop-grid-layout .desktop-compact-preview-clone {
    position: absolute;
    top: 92px;
    left: 18px;
    z-index: 16;
    width: calc(var(--desktop-compact-preview-width) - 36px);
    margin: 0;
    padding: 0;
    color: rgba(255,243,221,.75);
    font-family: var(--sans);
    font-size: clamp(.88rem, .88vw, .98rem);
    line-height: 1.48;
    white-space: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s ease;
  }

  body.desktop-grid-layout .desktop-compact-preview-clone.is-visible {
    opacity: 1;
  }

  body.desktop-grid-layout .desktop-focus-close {
    display: none;
    position: absolute;
    top: 27px;
    right: 28px;
    z-index: 18;
    width: 46px;
    height: 46px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(243,216,140,.65);
    background: rgba(10,1,2,.18);
    opacity: 0;
    cursor: pointer;
    pointer-events: none;
    transition:
      opacity .30s ease,
      border-color .22s ease,
      background .22s ease,
      box-shadow .22s ease;
  }

  body.desktop-grid-layout .is-focus-card .desktop-focus-close {
    display: block;
  }

  body.desktop-grid-layout .editorial-shell.is-grid-focus-settled
  .is-focus-card .desktop-focus-close {
    opacity: 1;
    pointer-events: auto;
  }

  body.desktop-grid-layout .desktop-focus-close::before,
  body.desktop-grid-layout .desktop-focus-close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 17px;
    height: 2px;
    border-radius: 999px;
    background: rgba(255,243,221,.94);
  }

  body.desktop-grid-layout .desktop-focus-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  body.desktop-grid-layout .desktop-focus-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  body.desktop-grid-layout .desktop-focus-close:hover {
    border-color: rgba(255,232,158,.92);
    background: rgba(95,21,30,.28);
    box-shadow:
      0 0 12px rgba(255,224,128,.24),
      0 0 28px rgba(196,118,27,.12);
  }

  body.desktop-grid-layout .desktop-focus-close:focus-visible {
    outline: 2px solid rgba(243,216,140,.76);
    outline-offset: 3px;
  }

  body.desktop-grid-layout .editorial-shell.is-grid-focus-mode::before {
    opacity: .84;
  }
}

@media (min-width: 901px) and (max-width: 1150px) {
  body.desktop-grid-layout .editorial-shell {
    grid-template-rows: repeat(2, minmax(184px, auto));
  }

  body.desktop-grid-layout .desktop-grid-placeholder {
    min-height: 184px;
  }

  body.desktop-grid-layout .is-focus-card .section-trigger {
    min-height: 92px;
    padding: 15px 14px 8px;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 12px;
  }

  body.desktop-grid-layout .is-focus-card .section-title {
    font-size: clamp(1.02rem, 1.65vw, 1.22rem);
  }

  body.desktop-grid-layout .is-focus-card .card-icon {
    width: 52px;
    height: 52px;
    border-radius: 16px;
  }

  body.desktop-grid-layout .is-focus-card .card-icon svg {
    width: 29px;
    height: 29px;
  }

  body.desktop-grid-layout .is-focus-card .section-richtext {
    padding: 0 14px 26px;
  }

  body.desktop-grid-layout .desktop-compact-preview-clone {
    top: 92px;
    left: 14px;
    width: calc(var(--desktop-compact-preview-width) - 28px);
  }

  body.desktop-grid-layout .desktop-focus-close {
    top: 24px;
    right: 24px;
  }
}


/* ================================================================
   VERSIONE 0194
   Home e Contenuti sono due schermate indipendenti nello stesso index.
   Il video è unico e resta realmente fermo durante la consultazione.
   ================================================================ */

@media (min-width: 901px) {
  html.desktop-screen-preinit,
  html.desktop-screen-preinit body,
  body.desktop-screen-layout {
    width: 100%;
    height: 100%;
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  html.desktop-screen-preinit main,
  body.desktop-screen-layout main {
    position: static;
  }

  html.desktop-screen-preinit .intro,
  body.desktop-screen-layout .intro {
    position: fixed;
    inset: 0;
    z-index: 6;
    width: 100%;
    min-height: 100vh;
    height: 100vh;
    transform: translateY(0);
    transition: transform .82s cubic-bezier(.22,.82,.22,1);
    will-change: transform;
  }

  html.desktop-screen-preinit .content.content-editorial,
  body.desktop-screen-layout .content.content-editorial {
    position: fixed;
    inset: 0;
    z-index: 7;
    width: 100vw !important;
    max-width: none !important;
    height: 100vh;
    margin: 0 !important;
    padding:
      calc(96px + clamp(86px, 11vh, 118px))
      0
      var(--end-scroll-space, 0px);
    display: block;
    overflow-x: hidden;
    overflow-y: hidden;
    overscroll-behavior: contain;
    transform: translateY(100vh);
    transition: transform .82s cubic-bezier(.22,.82,.22,1);
    will-change: transform;
    scrollbar-gutter: stable;
  }

  html.initial-content-screen .intro,
  body.desktop-screen-layout.content-entered .intro {
    transform: translateY(-100vh);
  }

  html.initial-content-screen .content.content-editorial,
  body.desktop-screen-layout.content-entered .content.content-editorial {
    transform: translateY(0);
  }

  html.initial-content-screen .intro,
  html.initial-content-screen .content.content-editorial {
    transition: none !important;
  }

  body.desktop-screen-layout .content.content-editorial.is-focus-scroll {
    overflow-y: auto;
  }

  html.desktop-screen-preinit .content.content-editorial > .editorial-shell,
  body.desktop-screen-layout .content.content-editorial > .editorial-shell {
    width: min(1320px, calc(100vw - 80px));
    margin: 0 auto 90px;
  }

  body.desktop-screen-layout .site-header,
  body.desktop-screen-layout .glass-menu {
    position: fixed;
  }
}

@media (min-width: 901px) and (max-width: 1550px) {
  html.desktop-screen-preinit .content.content-editorial,
  body.desktop-screen-layout .content.content-editorial {
    padding-top: calc(80px + clamp(86px, 11vh, 118px));
  }
}

@media (min-width: 901px) and (max-width: 1150px) {
  html.desktop-screen-preinit .content.content-editorial > .editorial-shell,
  body.desktop-screen-layout .content.content-editorial > .editorial-shell {
    width: calc(100vw - 48px);
  }
}

@media (min-width: 901px) and (prefers-reduced-motion: reduce) {
  html.desktop-screen-preinit .intro,
  body.desktop-screen-layout .intro,
  html.desktop-screen-preinit .content.content-editorial,
  body.desktop-screen-layout .content.content-editorial {
    transition-duration: .01ms !important;
  }
}


/* ================================================================
   VERSIONE MOBILE 0196
   Anteprima continua dei riquadri chiusi.
   Le dimensioni dei riquadri restano ESATTAMENTE quelle della 0194.
   ================================================================ */
@media (max-width: 900px) {
  .editorial-section:not(.is-open):not(.is-mobile-opening):not(.is-mobile-closing)
  .section-richtext > p {
    display: inline;
    margin: 0;
  }

  .editorial-section.is-open .section-richtext > p,
  .editorial-section.is-mobile-opening .section-richtext > p,
  .editorial-section.is-mobile-closing .section-richtext > p {
    display: block;
  }
}


/* ================================================================
   VERSIONE MOBILE 0200
   Unisce:
   - apertura del riquadro fluida come nella 0196;
   - testo a capoversi stabili, senza salto tipografico;
   - gap 0 da chiuso e 15 px da aperto.
   ================================================================ */
@media (max-width: 900px) {

  /* I capoversi non cambiano più display durante l'apertura. */
  .editorial-section:not(.is-open):not(.is-mobile-opening):not(.is-mobile-closing)
  .section-richtext > p,
  .editorial-section.is-open .section-richtext > p,
  .editorial-section.is-mobile-opening .section-richtext > p,
  .editorial-section.is-mobile-closing .section-richtext > p {
    display: block !important;
  }

  /* Da chiuso non esiste la riga vuota fra capoversi. */
  .editorial-section:not(.is-open):not(.is-mobile-opening)
  .section-richtext > p:not(:last-child),
  .editorial-section.is-mobile-closing
  .section-richtext > p:not(:last-child) {
    margin-bottom: 0 !important;
  }

  /* In apertura e da aperto torna gradualmente la spaziatura originale. */
  .editorial-section.is-open
  .section-richtext > p:not(:last-child),
  .editorial-section.is-mobile-opening
  .section-richtext > p:not(:last-child) {
    margin-bottom: 15px !important;
  }

  .editorial-section .section-richtext > p:not(:last-child) {
    transition:
      margin-bottom var(--mobile-section-duration, 820ms)
      var(--mobile-section-easing, cubic-bezier(.4, 0, .2, 1));
  }

  /* Misurazione invisibile dell'altezza finale aperta:
     fondamentale neutralizzare il ritaglio height:100% dello stato chiuso. */
  .editorial-section.is-mobile-open-measuring .section-content-inner,
  .editorial-section.is-mobile-open-measuring .section-richtext {
    height: auto !important;
    overflow: visible !important;
  }

  .editorial-section.is-mobile-open-measuring .section-richtext > p {
    display: block !important;
  }

  .editorial-section.is-mobile-open-measuring
  .section-richtext > p:not(:last-child) {
    margin-bottom: 15px !important;
    transition: none !important;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .editorial-section .section-richtext > p:not(:last-child) {
    transition-duration: .01ms !important;
  }
}


/* ================================================================
   VERSIONE MOBILE 0204
   Correzione della misurazione finale dell'altezza aperta.
   La regola è volutamente più specifica di quella dello stato chiuso,
   così durante la misurazione invisibile vengono realmente inclusi
   i 15 px di spazio fra i capoversi.
   ================================================================ */
@media (max-width: 900px) {
  .editorial-section.is-mobile-open-measuring:not(.is-open):not(.is-mobile-opening)
  .section-richtext > p:not(:last-child) {
    margin-bottom: 15px !important;
    transition: none !important;
  }
}


/* ================================================================
   VERSIONE MOBILE 0207
   Nessuna modifica grafica.
   L'apertura usa un profilo comune a tutti i riquadri:
   180 ms di accelerazione + tratto centrale a 900 px/s
   + 180 ms di rallentamento.
   La correzione 0204 dello scatto finale resta invariata.
   ================================================================ */


/* ================================================================
   VERSIONE DESKTOP 0208
   Miglioramento della leggibilità del corpo testo.
   - dimensione: 16–17 px circa;
   - spaziatura lettere: incremento molto lieve (0.008em);
   - titoli, geometria, animazioni e mobile invariati.
   ================================================================ */
@media (min-width: 901px) {
  body.desktop-grid-layout
  .editorial-section .section-richtext > p:first-child,
  body.desktop-grid-layout
  .is-focus-card .section-richtext p,
  body.desktop-grid-layout
  .is-focus-card .section-richtext li,
  body.desktop-grid-layout
  .desktop-compact-preview-clone {
    font-size: clamp(1.08rem, .98vw, 1.125rem);
    letter-spacing: .008em;
  }

  body.desktop-grid-layout
  .desktop-detail-content .section-richtext p,
  body.desktop-grid-layout
  .desktop-detail-content .section-richtext li {
    font-size: clamp(1.08rem, .98vw, 1.125rem);
    letter-spacing: .008em;
  }
}


/* ================================================================
   VERSIONE DESKTOP 0218
   Elimina il lampo dello stato attivo di "Formazione" al reload.
   Durante la pre-inizializzazione, l'eventuale stato HTML iniziale
   viene reso graficamente identico a un riquadro neutro.
   ================================================================ */
@media (min-width: 901px) {
  html.desktop-screen-preinit
  body.desktop-grid-layout
  .editorial-shell .glass-card.editorial-section.is-section-active {
    background: linear-gradient(145deg, rgba(24,3,7,.72), rgba(8,1,2,.62)) !important;
    border-color: rgba(243,216,140,.25) !important;
    box-shadow:
      0 18px 48px rgba(0,0,0,.30),
      inset 0 0 0 1px rgba(255,255,255,.035) !important;
  }
}


/* ================================================================
   VERSIONE MOBILE 0220
   Correzione chirurgica dello scatto del secondo capoverso in apertura.
   Dopo la misurazione dell'altezza finale, lo spazio fra i capoversi
   viene consolidato a 0 px senza transizione; la normale transizione
   viene poi ripristinata prima dell'apertura 0 -> 15 px.
   Desktop, geometria e tempi di apertura restano invariati.
   ================================================================ */
@media (max-width: 900px) {
  .editorial-section.is-mobile-gap-reset
  .section-richtext > p:not(:last-child) {
    margin-bottom: 0 !important;
    transition: none !important;
  }
}


/* ================================================================
   VERSIONE 0221
   Home page desktop e mobile:
   la riga dei titoli professionali (.intro-role) passa da peso 500 a 600.
   Nessun'altra modifica grafica o funzionale.
   ================================================================ */

/* ================================================================
   VERSIONE DESKTOP 0224
   Correzione della fascia superiore rispetto al tentativo 0223.
   - bordeaux premium più percepibile, sempre sobrio;
   - filetto inferiore oro continuo su tutta la larghezza disponibile;
   - rimozione della riserva scrollbar desktop che lasciava una fascia
     vuota sul lato destro;
   - mobile, geometrie, contenuti e animazioni invariati.
   ================================================================ */


/* ================================================================
   VERSIONE 0226
   Correzione chirurgica dell'avvio online del video hero.
   - placeholder del primo fotogramma incorporato direttamente nell'HTML;
   - nessun poster PNG esterno prima dell'avvio;
   - sfondo del video trasparente finché il primo frame non viene disegnato;
   - meccanismo di autoplay/playback della 0224 mantenuto, con load() esplicito.
   ================================================================ */


/* ================================================================
   VERSIONE 0227
   Ottimizzazione del caricamento iniziale:
   - le sei icone dei contenuti non vengono richieste durante la Home;
   - il loro download parte solo dopo il buffering completo del video,
     oppure immediatamente se l'utente richiede i Contenuti;
   - icone ridotte deterministicamente a 256x256 PNG.
   Nessun'altra modifica grafica o funzionale.
   ================================================================ */

/* ================================================================
   VERSIONE MOBILE 0228
   Correzione chirurgica del lampo di "Formazione" nel passaggio
   Home -> Scopri di più -> panoramica Contenuti.
   Durante i soli fotogrammi di preparazione della schermata vengono
   neutralizzate le transizioni del riquadro inizialmente attivo.
   Le normali animazioni tornano immediatamente dopo il primo layout.
   ================================================================ */
@media (max-width: 900px) {
  html.mobile-content-entering
  .editorial-shell .glass-card.editorial-section,
  html.mobile-content-entering .section-content,
  html.mobile-content-entering .section-chevron::before,
  html.mobile-content-entering
  .editorial-section .section-richtext > p:not(:last-child) {
    transition: none !important;
  }
}

/* ================================================================
   VERSIONE MOBILE 0230
   Fondo pagina dinamico:
   - a riposo resta sotto "Contatti" soltanto lo stesso margine di 11 px
     presente tra la barra superiore e "Formazione";
   - durante apertura di un riquadro o navigazione da menu viene
     ripristinato temporaneamente lo spazio tecnico della 0229;
   - a operazione conclusa lo spazio tecnico viene rimosso.
   Animazioni, geometrie dei riquadri e desktop restano invariati.
   ================================================================ */
@media (max-width: 900px) {
  .content.content-editorial {
    margin-bottom: 0;
    padding-bottom: 11px;
  }

  .content.content-editorial.mobile-technical-end-space {
    margin-bottom: 48px;
    padding-bottom: calc(100svh - var(--mobile-header-height) - 34px);
  }
}

/* ================================================================
   VERSIONE MOBILE 0231
   Compensazione dello scroll durante la chiusura manuale dei riquadri.
   Se la contrazione renderebbe impossibile la posizione di scroll
   corrente, viene aggiunta temporaneamente in fondo una riserva pari
   alla contrazione del riquadro. Lo scroll viene accompagnato verso
   il nuovo limite naturale durante la stessa animazione di chiusura.
   Terminata l'operazione, torna il margine finale di 11 px della 0230.
   Desktop, apertura, menu, testi e geometrie restano invariati.
   ================================================================ */
@media (max-width: 900px) {
  .content.content-editorial.mobile-close-scroll-compensation {
    padding-bottom:
      calc(11px + var(--mobile-close-scroll-compensation, 0px));
  }
}

/* ================================================================
   VERSIONE MOBILE 0232
   Strategia di chiusura in due fasi:
   - prima della contrazione viene predisposta una riserva finale ampia;
   - durante la chiusura lo scroll resta fermo;
   - soltanto a chiusura completata la pagina viene accompagnata verso
     il nuovo limite naturale;
   - la riserva viene eliminata solo dopo il riposizionamento.
   Il fondo compatto di 11 px della 0230 resta invariato.
   Nessuna modifica a desktop, aperture, menu, testi o geometrie.
   ================================================================ */

/* ================================================================
   VERSIONE MOBILE 0233
   Chiusura dei riquadri in fondo pagina con compensazione visiva FLIP:
   - la riserva tecnica resta fino alla chiusura completa;
   - la riserva viene poi rimossa e lo scroll fisico viene portato
     istantaneamente al nuovo limite naturale prima del paint;
   - il pannello editoriale riceve nello stesso ciclo una traslazione
     opposta, che annulla visivamente il clamp del browser;
   - soltanto la traslazione grafica rientra poi dolcemente a zero.
   Il fondo compatto di 11 px della 0230 resta invariato.
   Desktop, aperture, menu, video, testi e geometrie restano invariati.
   ================================================================ */

/* ================================================================
   VERSIONE MOBILE 0234
   Stabilizzazione dei cicli ripetuti di chiusura in fondo pagina:
   - ogni ciclo di compensazione visiva è completamente autonomo;
   - eliminati transitionend e timer della 0233;
   - la compensazione viene predisposta prima della rimozione della
     riserva e corretta sulla posizione geometrica reale del pannello;
   - il rientro grafico usa requestAnimationFrame e viene azzerato
     completamente al termine di ogni ciclo;
   - rientro moderatamente rallentato e durata proporzionale alla distanza.
   Il fondo compatto di 11 px della 0230 resta invariato.
   Desktop, aperture, menu, video, testi e geometrie restano invariati.
   ================================================================ */
