  /* ─────────────────────────────────────────────────────
       TOKENS
    ───────────────────────────────────────────────────── */
    :root {
      --red:      #E63946;
      --red-dark: #b52d38;
      --black:    #0a0a0a;
      --black2:   #0a0a0a;
      --black3:   #0a0a0a;
      --white:    #ffffff;
      --off:      #f2f0ed;
      --grey:     #888888;
      --grey-lt:  #cccccc;
      --border:   rgba(255,255,255,.07);
      --border-dk:rgba(0,0,0,.1);

      --fd: 'Barlow Condensed', sans-serif;  /* display / headlines */
      --fb: 'Barlow', sans-serif;            /* body */
    }

    /* ─────────────────────────────────────────────────────
       BASE
    ───────────────────────────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; margin:0; padding:0; }
    html { scroll-behavior: smooth; }

    body {
      font-family: var(--fb);
      background: var(--black);
      color: var(--white);
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }

    img { display: block; max-width: 100%; }

    /* ─────────────────────────────────────────────────────
       SKIP LINK
    ───────────────────────────────────────────────────── */
    .skip-link {
      position: absolute; top: -50px; left: 0;
      background: var(--red); color: var(--white);
      padding: 10px 20px; z-index: 9999;
      font-weight: 700; text-decoration: none;
      font-family: var(--fb); transition: top .2s;
    }
    .skip-link:focus { top: 0; }

    /* ─────────────────────────────────────────────────────
       NAVBAR
    ───────────────────────────────────────────────────── */
    .site-nav {
      position: fixed; top: 0; left: 0; right: 0;
      z-index: 1000;
      transition: background .35s ease;
    }
    .site-nav.solid {
      background: var(--black);
      border-bottom: 1px solid rgba(255,255,255,.06);
    }

    .nav-wrap {
      display: flex; align-items: center; justify-content: space-between;
      padding: 1.2rem 0;
      transition: padding .3s;
    }
    .site-nav.solid .nav-wrap { padding: .85rem 0; }

    .nav-logo img { height: 36px; width: auto; }

    .nav-menu {
      display: flex; align-items: center; list-style: none;
      gap: 0; margin: 0; padding: 0;
    }
    .nav-menu a {
      font-family: var(--fb);
      font-size: .82rem; font-weight: 500;
      letter-spacing: .06em; text-transform: uppercase;
      color: rgba(255,255,255,.55); text-decoration: none;
      padding: .55rem .9rem; display: block;
      transition: color .2s;
      white-space: nowrap;
    }
    .nav-menu a:hover, .nav-menu a.active { color: var(--white); }

    /* Red CTA pill */
    .nav-menu .n-cta {
      background: var(--red); color: var(--white) !important;
      font-weight: 700; padding: .5rem 1.25rem;
      margin-left: .6rem;
      transition: background .2s, transform .15s;
    }
    .nav-menu .n-cta:hover {
      background: var(--red-dark); transform: translateY(-1px);
    }

    /* Mobile toggle */
    .nav-btn {
      display: none; flex-direction: column; gap: 5px;
      background: none; border: none; cursor: pointer; padding: .3rem;
    }
    .nav-btn span {
      width: 22px; height: 1.5px; background: var(--white);
      border-radius: 1px; transition: transform .3s, opacity .3s;
    }
    .nav-btn.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
    .nav-btn.open span:nth-child(2) { opacity: 0; }
    .nav-btn.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

    /* Mobile drawer */
    .mob-drawer {
      display: none; position: fixed; inset: 0;
      background: var(--black); z-index: 999;
      flex-direction: column; align-items: flex-start;
      justify-content: center; padding: 3rem;
      gap: .3rem;
    }
    .mob-drawer.open { display: flex; }
    .mob-drawer a {
      font-family: var(--fd);
      font-size: clamp(2rem, 8vw, 4.5rem);
      font-weight: 800; letter-spacing: -.01em; text-transform: uppercase;
      color: rgba(255,255,255,.2); text-decoration: none;
      line-height: 1.1;
      transition: color .2s;
    }
    .mob-drawer a:hover { color: var(--white); }
    .mob-drawer .mob-cta { color: var(--red) !important; }

    @media (max-width: 991.98px) {
      .nav-menu { display: none; }
      .nav-btn  { display: flex; }
    }

    /* ─────────────────────────────────────────────────────
       HERO — Full-screen, testo gigante
    ───────────────────────────────────────────────────── */
    .hero-wrap {
      position: relative;
      height: 100dvh; min-height: 620px;
      overflow: hidden;
    }

    .hero-swiper,
    .hero-swiper .swiper-wrapper { height: 100%; }

    .hero-slide {
      position: relative;
      height: 100dvh; min-height: 720px;
      overflow: hidden;
    }

    /* Background photo */
    .h-bg {
      position: absolute; inset: 0;
      background-size: cover; background-position: center;
      z-index: 0;
      transform: scale(1.06);
      transition: transform 10s ease;
      will-change: transform;
    }
    .swiper-slide-active .h-bg { transform: scale(1); }

    /* Heavy dark overlay — enfasi contrasto */
    .h-overlay {
      position: absolute; inset: 0; z-index: 1;
      background: linear-gradient(
        105deg,
        rgba(0,0,0,.88) 0%,
        rgba(0,0,0,.65) 45%,
        rgba(0,0,0,.2)  100%
      );
    }

    /* Striscia rossa verticale sinistra — firma industriale */
    .h-stripe {
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 6px;
      background: var(--red);
      z-index: 3;
    }

    /* Contenuto testo */
    .h-content {
      position: absolute; inset: 0; z-index: 4;
      display: flex; flex-direction: column; justify-content: flex-end;
      padding: 0 clamp(2.5rem, 7vw, 7rem);
      padding-bottom: clamp(5rem, 10vh, 8rem);
    }

    .h-label {
      display: inline-flex; align-items: center; gap: .7rem;
      font-family: var(--fb);
      font-size: .7rem; font-weight: 600; letter-spacing: .25em;
      text-transform: uppercase; color: var(--red);
      margin-bottom: 1.4rem;
    }
    .h-label::before {
      content: ''; width: 32px; height: 2px; background: var(--red);
    }

    .h-title {
      font-family: var(--fd);
      font-size: clamp(4rem, 10vw, 10rem);
      font-weight: 900; line-height: .95;
      letter-spacing: -.02em; text-transform: uppercase;
      color: var(--white);
      margin-bottom: 1.75rem;
    }
    /* Parola in rosso */
    .h-title .r { color: var(--red); }
    /* Parola italic/thin per variazione */
    .h-title .t {
      font-weight: 300; font-style: italic;
      color: rgba(255,255,255,.5);
    }

    .h-desc {
      font-size: clamp(.88rem, 1.4vw, 1rem);
      font-weight: 400; color: rgba(255,255,255,.55);
      line-height: 1.75; max-width: 500px;
    }

    /* Swiper controls */
    .hero-swiper .swiper-pagination {
      bottom: 2.5rem !important;
      right: clamp(2.5rem, 6vw, 5rem) !important;
      left: auto !important; width: auto !important;
      display: flex; gap: .5rem; align-items: center;
    }
    .hero-swiper .swiper-pagination-bullet {
      width: 24px; height: 2px; border-radius: 0;
      background: rgba(255,255,255,.3); opacity: 1;
      transition: width .3s, background .3s;
    }
    .hero-swiper .swiper-pagination-bullet-active {
      width: 40px; background: var(--red);
    }

    .hero-swiper .swiper-button-prev,
    .hero-swiper .swiper-button-next {
      width: 48px; height: 48px;
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.12);
      color: rgba(255,255,255,.6);
      transition: background .2s, color .2s;
    }
    .hero-swiper .swiper-button-prev::after,
    .hero-swiper .swiper-button-next::after { font-size: .95rem; font-weight: 900; }
    .hero-swiper .swiper-button-prev:hover,
    .hero-swiper .swiper-button-next:hover {
      background: var(--red); color: var(--white);
      border-color: var(--red);
    }

    /* Scroll indicator */
    .h-scroll {
      position: absolute; bottom: 2.5rem; left: clamp(2.5rem, 7vw, 7rem);
      z-index: 5; display: flex; align-items: center; gap: .8rem;
      font-family: var(--fb); font-size: .62rem; font-weight: 600;
      letter-spacing: .22em; text-transform: uppercase;
      color: rgba(255,255,255,.25);
    }
    .h-scroll-line {
      width: 40px; height: 1px; background: rgba(255,255,255,.2);
      position: relative; overflow: hidden;
    }
    .h-scroll-line::after {
      content: ''; position: absolute; left: -100%; top: 0;
      width: 100%; height: 100%; background: var(--red);
      animation: scanLine 2.5s ease infinite;
    }
    @keyframes scanLine {
      0%   { left: -100%; }
      50%  { left: 0; }
      100% { left: 100%; }
    }

    @media (max-width: 767.98px) {
      .h-title { font-size: clamp(3rem, 14vw, 6rem); }
      .h-stripe { width: 4px; }
      .hero-swiper .swiper-button-prev,
      .hero-swiper .swiper-button-next { display: none; }
      .h-scroll { display: none; }
    .hero-slide {
      height: 690px;
    }
        .hero-wrap {
      height: 690px;
    }

    }

    /* ─────────────────────────────────────────────────────
       PARTNER STRIP
    ───────────────────────────────────────────────────── */
    .partner-strip {
      background: var(--black);
      border-top: 1px solid rgba(255,255,255,.05);
      border-bottom: 1px solid rgba(255,255,255,.05);
      padding: 2.5rem 0;
      overflow: hidden;
    }
    .strip-label {
      font-family: var(--fb); font-size: .62rem; font-weight: 700;
      letter-spacing: .25em; text-transform: uppercase;
      color: rgba(255,255,255,.18); text-align: center; margin-bottom: 1.8rem;
    }

    /* Logo slider */
    .logo-slider.swiper,
    .logo-slider .swiper-wrapper,
    .logo-slider .swiper-slide { height: auto !important; }
    .logo-slider .swiper-wrapper { align-items: center; transition-timing-function: linear !important; }
    .logo-slider .swiper-slide {
      display: flex; align-items: center; justify-content: center;
      padding: 0 !important; background: transparent; width: 150px;
    }
    @media (min-width: 768px)  { .logo-slider .swiper-slide { width: 168px; } }
    @media (min-width: 1200px) { .logo-slider .swiper-slide { width: 185px; } }
    .logo-slider img {
      max-height: 86px; height: auto; width: auto; object-fit: contain;
      transition: opacity .3s, filter .3s, transform .25s;
    }
    .logo-slider a { display: flex; align-items: center; justify-content: center; line-height: 0; }
    .logo-slider a:hover img, .logo-slider a:focus-visible img {
      opacity: .85; filter: none; transform: translateY(-2px);
    }
    @media (hover: none) and (pointer: coarse), (max-width: 767.98px) {
      .logo-slider img { filter: grayscale(30%) brightness(1.5); opacity: .5; }
    }

    /* ─────────────────────────────────────────────────────
       LAYOUT HELPERS
    ───────────────────────────────────────────────────── */
    .s-pad { padding: clamp(5rem, 10vw, 9rem) 0; }
    .s-pad-sm { padding: clamp(3rem, 6vw, 5.5rem) 0; }

    /* Sezione chiara */
    .s-light { background: var(--off); color: var(--black); }
    .s-dark  { background: var(--black); color: var(--white); }
    .s-mid   { background: var(--black2); color: var(--white); }
    .s-black3 { background: var(--black3); color: var(--white); }

    /* ─────────────────────────────────────────────────────
       TIPOGRAFIA SEZIONI
    ───────────────────────────────────────────────────── */
    .sec-overline {
      display: inline-flex; align-items: center; gap: .6rem;
      font-family: var(--fb); font-size: .68rem; font-weight: 700;
      letter-spacing: .22em; text-transform: uppercase; color: var(--red);
      margin-bottom: 1.25rem;
    }
    .sec-overline::before { content: ''; width: 24px; height: 2px; background: var(--red); }

    .sec-overline.dark { color: var(--red); }

    .sec-h {
      font-family: var(--fd);
      font-size: clamp(2.4rem, 5vw, 4.5rem);
      font-weight: 900; line-height: .95;
      letter-spacing: -.01em; text-transform: uppercase;
      margin-bottom: 1.75rem;
    }
    .sec-h.light { color: var(--white); }
    .sec-h.dark  { color: var(--black); }
    .sec-h .r    { color: var(--red); }
    .sec-h .dim  { color: rgba(255, 255, 255, 0.466)}
    .sec-h .dim-dk { color: rgba(0,0,0,.2); }

    /* Body text */
    .body-t { font-family: var(--fb); font-size: .94rem; line-height: 1.8; }
    .body-t.light { color: rgba(255,255,255,.55); }
    .body-t.dark  { color: rgba(0,0,0,.55); }
    .body-t strong { font-weight: 600; }
    .body-t.light strong { color: rgba(255,255,255,.9); }
    .body-t.dark  strong { color: var(--black); }

    /* ─────────────────────────────────────────────────────
       IMAGE BLOCKS
    ───────────────────────────────────────────────────── */
    .img-block { position: relative; overflow: hidden; }
    .img-block img {
      width: 100%; height: clamp(320px, 48vw, 780px);
      object-fit: cover; display: block;
      transition: transform .8s cubic-bezier(.25,.46,.45,.94);
    }
    .img-block:hover img { transform: scale(1.04); }

    /* Barra rossa in basso sinistra sulle immagini */
    .img-block::after {
      content: '';
      position: absolute; bottom: 0; left: 0;
      width: 60px; height: 4px; background: var(--red);
    }

    .img-caption {
      position: absolute; bottom: 0px; left: 0; right: 0;
      padding: 2.5rem 1.5rem 1.25rem;
      background: linear-gradient(to top, rgba(0,0,0,.75) 0%, transparent 100%);
      color: rgba(255,255,255,.75); font-size: .82rem;
      font-family: var(--fb); font-weight: 500;
    }

    /* ─────────────────────────────────────────────────────
       STAT BLOCK
    ───────────────────────────────────────────────────── */
    .stat-row { display: flex; gap: 0; border-top: 1px solid rgba(255,255,255,.07); margin-top: 2.5rem; }
    .stat-item {
      flex: 1; padding: 1.5rem 1.25rem 1.25rem;
      border-right: 1px solid rgba(255,255,255,.07);
    }
    .stat-item:last-child { border-right: none; }
    .stat-n {
      font-family: var(--fd);
      font-size: clamp(2.8rem, 5vw, 4rem); font-weight: 900; line-height: 1;
      color: var(--red);
    }
    .stat-l {
      font-family: var(--fb); font-size: .75rem; font-weight: 500;
      color: rgba(255,255,255,.3); letter-spacing: .06em; margin-top: .3rem;
      text-transform: uppercase;
    }

    /* Light stat */
    .stat-row.on-light { border-top-color: rgba(0,0,0,.08); margin-top: 2.5rem; }
    .stat-row.on-light .stat-item { border-right-color: rgba(0,0,0,.08); }
    .stat-row.on-light .stat-l { color: rgba(0,0,0,.35); }

    /* ─────────────────────────────────────────────────────
       FEATURE LIST — partnership
    ───────────────────────────────────────────────────── */
    .feat-list { list-style: none; padding: 0; margin: 0; }
    .feat-item {
      display: flex; gap: 1.25rem; align-items: flex-start;
      padding: 1.5rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }
    .feat-item:last-child { border-bottom: none; }
    .feat-n {
      font-family: var(--fd);
      font-size: 2rem; font-weight: 900; line-height: 1;
      color: rgba(255, 255, 255, 0.12); flex-shrink: 0; min-width: 2rem;
      padding-top: .1rem;
    }
    .feat-body h4 {
      font-family: var(--fb); font-size: .95rem; font-weight: 700;
      color: var(--off); margin-bottom: .4rem;
    }
    .feat-body p {
      font-family: var(--fb); font-size: .86rem;
      color: rgba(255, 255, 255, 0.5); line-height: 1.7; margin: 0;
    }

    /* ─────────────────────────────────────────────────────
       NEWS CARDS
    ───────────────────────────────────────────────────── */
    .news-card {
      background: var(--black3); border: 1px solid rgba(255,255,255,.06);
      overflow: hidden; height: 100%;
      transition: border-color .3s, transform .35s cubic-bezier(.25,.46,.45,.94), box-shadow .35s;
    }
    .news-card:hover {
      border-color: var(--red);
      transform: translateY(-6px);
      box-shadow: 0 16px 48px rgba(0,0,0,.5);
    }
    .nc-img { height: 400px; overflow: hidden; }
    .nc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
    .news-card:hover .nc-img img { transform: scale(1.06); }
    .nc-body { padding: 1.5rem; }

    .nc-cat {
      display: inline-block;
      font-family: var(--fb); font-size: .62rem; font-weight: 700;
      letter-spacing: .14em; text-transform: uppercase;
      padding: .3rem .7rem; margin-bottom: .9rem;
    }
    .nc-cat.ist  { background: rgba(230,57,70,.15); color: var(--red); }
    .nc-cat.vis  { background: rgba(255,255,255,.07); color: rgba(255,255,255,.5); }
    .nc-cat.cul  { background: rgba(69,123,157,.15); color: #6aaac9; }

    .nc-body h3 {
      font-family: var(--fd); font-size: 1.2rem; font-weight: 800;
      letter-spacing: -.01em; text-transform: uppercase; line-height: 1.2;
      color: var(--white); margin-bottom: .8rem;
    }
    .nc-body p {
      font-family: var(--fb); font-size: .83rem;
      color: rgba(255,255,255,.4); line-height: 1.7; margin-bottom: 1.25rem;
    }
    .nc-link {
      display: inline-flex; align-items: center; gap: .45rem;
      font-family: var(--fb); font-size: .72rem; font-weight: 700;
      letter-spacing: .1em; text-transform: uppercase;
      color: var(--red); text-decoration: none;
      transition: gap .2s;
    }
    .nc-link:hover { gap: .75rem; color: var(--red); }

    /* ─────────────────────────────────────────────────────
       GALLERY MOSAIC
    ───────────────────────────────────────────────────── */
    .g-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 3px;
    }
    .g-cell { position: relative; overflow: hidden; aspect-ratio: 4/3; cursor: pointer; }
    .g-cell img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
    .g-cell:hover img { transform: scale(1.07); }
    .g-cell::before {
      content: ''; position: absolute; inset: 0; z-index: 1;
      background: rgba(230,57,70,0);
      transition: background .3s;
    }
    .g-cell:hover::before { background: rgba(230,57,70,.15); }

    @media (max-width: 575.98px) { .g-grid { grid-template-columns: repeat(1, 1fr); } }

    /* ─────────────────────────────────────────────────────
       CTA SECTION
    ───────────────────────────────────────────────────── */
    .cta-wrap {
      display: grid; grid-template-columns: 1fr 1fr;
      overflow: hidden;
    }
    @media (max-width: 991.98px) { .cta-wrap { grid-template-columns: 1fr; } }

    .cta-video { position: relative; min-height: 380px; }
    .cta-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

    .cta-txt {
      padding: clamp(3rem, 5vw, 5rem);
      background: var(--black3);
      display: flex; flex-direction: column; justify-content: center;
      border-left: 4px solid var(--red);
    }
    @media (max-width: 991.98px) {
      .cta-txt { border-left: none; border-top: 4px solid var(--red); }
    }

    .cta-h {
      font-family: var(--fd);
      font-size: clamp(2.2rem, 4vw, 3.8rem); font-weight: 900;
      line-height: .95; letter-spacing: -.01em; text-transform: uppercase;
      color: var(--white); margin-bottom: 1.25rem;
    }
    .cta-h .r { color: var(--red); }

    .cta-p {
      font-family: var(--fb); font-size: .9rem;
      color: rgba(255,255,255,.45); line-height: 1.8; margin-bottom: 2rem;
    }

    /* Brand text accanto al logo */
.nav-logo {
  display: flex;
  align-items: center;
  gap: .6rem;
  text-decoration: none;
}
.nav-brand-text {
  font-family: var(--fd);
  font-size: .80rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
  line-height: 1.2;
  white-space: nowrap;
}
.nav-brand-text em {
  display: block;
  font-family: var(--fb);
  font-style: italic;
  font-weight: 500;
  font-size: .8rem;
  letter-spacing: .04em;
  text-transform: none;
  color: var(--red-dark);
}


    /* ─────────────────────────────────────────────────────
       BUTTONS
    ───────────────────────────────────────────────────── */
    .btn-red {
      display: inline-flex; align-items: center; gap: .6rem;
      background: var(--red); color: var(--white);
      font-family: var(--fb); font-size: .78rem; font-weight: 700;
      letter-spacing: .1em; text-transform: uppercase;
      border: none; padding: .9rem 2rem;
      text-decoration: none; cursor: pointer;
      transition: background .2s, transform .2s;
    }
    .btn-red:hover { background: var(--red-dark); color: var(--white); transform: translateY(-2px); }

    .btn-outline {
      display: inline-flex; align-items: center; gap: .6rem;
      background: transparent; color: var(--white);
      font-family: var(--fb); font-size: .78rem; font-weight: 700;
      letter-spacing: .1em; text-transform: uppercase;
      border: 1px solid rgba(255,255,255,.2); padding: .88rem 2rem;
      text-decoration: none; cursor: pointer;
      transition: border-color .2s, background .2s, transform .2s;
    }
    .btn-outline:hover {
      border-color: var(--white); background: rgba(255,255,255,.05);
      color: var(--white); transform: translateY(-2px);
    }

    .btn-black {
      display: inline-flex; align-items: center; gap: .6rem;
      background: var(--black); color: var(--white);
      font-family: var(--fb); font-size: .78rem; font-weight: 700;
      letter-spacing: .1em; text-transform: uppercase;
      border: none; padding: .9rem 2rem;
      text-decoration: none; cursor: pointer;
      transition: background .2s, transform .2s;
    }
    .btn-black:hover { background: #222; color: var(--white); transform: translateY(-2px); }

    .btn-outline-dk {
      display: inline-flex; align-items: center; gap: .6rem;
      background: transparent; color: var(--black);
      font-family: var(--fb); font-size: .78rem; font-weight: 700;
      letter-spacing: .1em; text-transform: uppercase;
      border: 1px solid rgba(0,0,0,.25); padding: .88rem 2rem;
      text-decoration: none; cursor: pointer;
      transition: border-color .2s, background .2s, transform .2s;
    }
    .btn-outline-dk:hover {
      border-color: var(--black); background: rgba(0,0,0,.05);
      color: var(--black); transform: translateY(-2px);
    }

    /* ─────────────────────────────────────────────────────
       FLOATING SOCIALS
    ───────────────────────────────────────────────────── */
    .floating-btn {
      position: fixed; right: .9rem;
      width: 40px; height: 40px;
      color: #fff; display: flex; align-items: center; justify-content: center;
      text-decoration: none; z-index: 500;
      box-shadow: 0 4px 16px rgba(0,0,0,.35);
      transition: transform .2s, box-shadow .2s;
    }
    .floating-btn i { font-size: 1.1rem; }
    .floating-btn:hover { color: #fff; transform: translateY(-3px); }
    .floating-ig { bottom: .9rem; background: linear-gradient(135deg,#dd2a7b 40%,#8134af 70%,#515bd4); }
    .floating-fb { bottom: calc(.9rem + 48px); background: #1877F2; }
    @media (max-width: 575.98px) {
      .floating-ig { bottom: 1rem; right: 1rem; }
      .floating-fb { bottom: calc(1rem + 48px); right: 1rem; }
    }
    @media print { .floating-btn { display: none !important; } }

    /* ─────────────────────────────────────────────────────
       FOOTER
    ───────────────────────────────────────────────────── */
    .site-footer {
      background: #060606;
      border-top: 3px solid var(--red);
      padding: clamp(4rem, 8vw, 7rem) 0 2.5rem;
    }

    .ft-logo { margin-bottom: 1rem; }
    .ft-logo img { height: 68px; width: auto; }

    .ft-brand-name {
      font-family: var(--fd); font-size: 1.1rem; font-weight: 800;
      letter-spacing: .03em; text-transform: uppercase;
      color: var(--white); margin-bottom: .5rem;
    }
    .ft-brand-sub {
      font-family: var(--fb); font-size: .8rem;
      color: rgba(255, 255, 255, 0.493); line-height: 1.65; max-width: 220px;
    }

    .ft-col-title {
      font-family: var(--fb); font-size: .75rem; font-weight: 700;
      letter-spacing: .22em; text-transform: uppercase;
      color: var(--red); margin-bottom: 1.25rem;
    }

    .ft-links { list-style: none; padding: 0; margin: 0; }
    .ft-links li { margin-bottom: .45rem; }
    .ft-links a {
      font-family: var(--fb); font-size: .83rem;
      color: rgba(255, 255, 255, 0.555); text-decoration: none;
      transition: color .2s;
    }
    .ft-links a:hover { color: var(--white); }

    .ft-contact-row {
      display: flex; align-items: center; gap: .6rem;
      font-family: var(--fb); font-size: .83rem;
      color: rgba(255, 255, 255, 0.589); text-decoration: none;
      margin-bottom: .5rem; transition: color .2s;
    }
    .ft-contact-row:hover { color: rgba(255,255,255,.75); }
    .ft-contact-row i { font-size: .82rem; flex-shrink: 0; }

    .ft-hr { border: none; border-top: 1px solid rgba(255, 255, 255, 0.151); margin: 3rem 0 1.75rem; }

    .ft-bottom {
      display: flex; justify-content: space-between; flex-wrap: wrap; gap: .75rem;
      font-family: var(--fb); font-size: .74rem; color: rgba(255, 255, 255, 0.514);
    }
    .ft-bottom a { color: rgba(255, 255, 255, 0.685); text-decoration: none; transition: color .2s; }
    .ft-bottom a:hover { color: rgba(255,255,255,.6); }

    /* AOS */
    [data-aos] { transition-duration: 700ms !important; }

    /* ── Page hero ── */
    .page-hero { position:relative; height:75vh !important; overflow:hidden; display:flex; align-items:flex-end; }
    .page-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; z-index:0; transform:scale(1.04); transition:transform 8s ease; }
    .page-hero.in-view .page-hero-bg { transform:scale(1); }
    .page-hero-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(105deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,.55) 50%,rgba(0,0,0,.15) 100%); }
    .page-hero-stripe { position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--red); z-index:2; }
    .page-hero-content { position:relative; z-index:3; padding:0 clamp(2.5rem,7vw,7rem) clamp(3rem,6vh,5rem); max-width:min(900px,100%); }
    .page-hero-content .h-label { display:inline-flex; align-items:center; gap:.7rem; font-family:var(--fb); font-size:.7rem; font-weight:600; letter-spacing:.25em; text-transform:uppercase; color:var(--red); margin-bottom:1.2rem; }
    .page-hero-content .h-label::before { content:''; width:32px; height:2px; background:var(--red); }
    .page-hero-title { font-family:var(--fd); font-size:clamp(2.5rem,6vw,5.5rem); font-weight:900; line-height:.92; letter-spacing:-.02em; text-transform:uppercase; color:var(--white); margin-bottom:1rem; }
    .page-hero-title .r { color:var(--red); }
    .page-hero-title .dim { color:rgba(255, 255, 255, 0.747); font-weight:300; }
    @media (max-width:767.98px) { .page-hero-title { font-size:clamp(2rem,10vw,3.5rem); } .page-hero-stripe { width:4px; } }

    .breadcrumb-bar { background:var(--black2); border-bottom:1px solid rgba(255,255,255,.05); padding:.75rem 0; }
    .breadcrumb-bar nav { font-family:var(--fb); font-size:.75rem; }
    .breadcrumb-bar a { color:rgba(255,255,255,.35); text-decoration:none; transition:color .2s; }
    .breadcrumb-bar a:hover { color:var(--white); }
    .breadcrumb-bar .sep { color:rgba(255,255,255,.2); margin:0 .5rem; }
    .breadcrumb-bar .current { color:var(--red); font-weight:600; }

    /* ── Article body — dark ── */
    .article-section { background:var(--black); }

    .news-meta { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin-bottom:1rem; }
    .news-tag { font-family:var(--fb); font-size:.62rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; padding:.25rem .7rem; color:#fff; }
    .news-tag.t-eccellenza    { background:#c0392b; }
    .news-tag.t-istituzionale { background:var(--red); }
    .news-tag.t-visita        { background:#1877F2; }
    .news-tag.t-cultura       { background:#374151; }
    .news-tag.t-promozione    { background:#374151; }
    .news-meta-info { font-family:var(--fb); font-size:.75rem; color:rgba(255,255,255,.3); display:flex; align-items:center; gap:.3rem; }

    .art-title { font-family:var(--fd); font-size:clamp(2rem,4vw,3.5rem); font-weight:900; line-height:1; letter-spacing:-.02em; text-transform:uppercase; color:var(--white); margin-bottom:1.25rem; }
    .art-title .r { color:var(--red); }
    .news-rule { width:40px; height:3px; background:var(--red); margin-bottom:1.75rem; }

    .news-body-text { font-family:var(--fb); font-size:.95rem; color:rgba(255,255,255,.5); line-height:1.85; margin-bottom:1rem; }
    .news-body-text strong { color:rgba(255,255,255,.85); font-weight:700; }

    .news-speaker { font-family:var(--fb); font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--red); margin-bottom:.35rem; display:block; margin-top:1.5rem; }
    .news-quote { border-left:4px solid var(--red); padding:1rem 1.5rem; margin:.5rem 0 1.5rem; background:rgba(255,255,255,.03); }
    .news-quote p { font-family:var(--fb); font-size:.92rem; color:rgba(255,255,255,.4); line-height:1.8; margin:0; font-style:italic; }
    .news-quote strong { color:rgba(255,255,255,.75); font-style:normal; }

    .news-img { overflow:hidden; position:relative; }
    .news-img img { width:100%; display:block; object-fit:cover; transition:transform .7s cubic-bezier(.25,.46,.45,.94); }
    .news-img:hover img { transform:scale(1.04); }
    .news-img::after { content:''; position:absolute; bottom:0; left:0; width:48px; height:3px; background:var(--red); }
    .news-caption { font-family:var(--fb); font-size:.75rem; color:rgba(255,255,255,.2); margin-top:.6rem; line-height:1.5; }

    .back-link { display:inline-flex; align-items:center; gap:.4rem; font-family:var(--fb); font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--red); text-decoration:none; margin-bottom:2.5rem; transition:gap .2s, color .2s; }
    .back-link i { font-size:.7rem; transition:transform .2s; }
    .back-link:hover { color:var(--white); gap:.7rem; }
    .back-link:hover i { transform:translateX(-3px); }

    .other-news { background:var(--black2); border-top:1px solid rgba(255,255,255,.06); }
    .on-card { border:1px solid rgba(255,255,255,.07); border-top:3px solid var(--red); background:var(--black2); padding:1.5rem; display:block; text-decoration:none; height:100%; transition:transform .25s, box-shadow .25s, border-color .2s; }
    .on-card:hover { transform:translateY(-4px); box-shadow:0 10px 28px rgba(0,0,0,.4); border-color:var(--red); }
    .on-label { font-family:var(--fb); font-size:.6rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--red); margin-bottom:.5rem; display:block; }
    .on-title { font-family:var(--fd); font-size:1rem; font-weight:900; letter-spacing:-.01em; text-transform:uppercase; color:var(--white); line-height:1.1; }
    .on-date { font-family:var(--fb); font-size:.72rem; color:rgba(255,255,255,.25); margin-top:.5rem; }

