/* ==========================================================
   SPOSI IN · Redesign editoriale
   Brand accent: #f26c63 · Base: bianco + grigi chiari
   Tipografia: Playfair Display (serif) + Inter (sans)
   Sistema spacing: base 8px
   ========================================================== */

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Inter',system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.65;color:var(--ink);background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11"}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none;transition:color .25s ease}
button{font-family:inherit;cursor:pointer;border:0;background:none;padding:0;color:inherit}
h1,h2,h3,h4{margin:0;font-weight:500;letter-spacing:-.01em}
figure{margin:0}
ul{margin:0;padding:0;list-style:none}
dl{margin:0}

:root{
  /* Palette · brand ufficiale Sposi In 2026
     #D40A54 magenta (primary) · #494444 charcoal (dark) · #FCEBEB cream (soft) */
  --bg:#ffffff;
  --bg-soft:#f8f8f8;
  --bg-gray:#f8f8f8;
  --ink:#494444;
  --ink-2:#494444;
  --ink-3:#7a7575;
  --line:#e6e1e1;
  --line-soft:#efeaea;

  --coral:#D40A54;
  --coral-dark:#A8083F;
  --coral-soft:#FCEBEB;

  /* Tipografia */
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;

  /* Sistema 8px */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px;
  --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px; --s-10:128px;

  /* Layout */
  --container:1280px;
  --pad-x:clamp(20px,5vw,56px);
  --section-y:clamp(64px,6vw,95px);
  --radius:8px;
  --radius-lg:16px;

  /* Shadows soft */
  --shadow-xs:0 1px 3px rgba(26,26,26,.05);
  --shadow-sm:0 4px 16px rgba(26,26,26,.06);
  --shadow-md:0 8px 28px rgba(26,26,26,.08);
  --shadow-lg:0 20px 48px rgba(26,26,26,.1);

  --ease:cubic-bezier(.22,.61,.36,1);
  --hdr-h:72px;
}

/* ============ CONTAINER ============ */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--pad-x)}

.section{padding:var(--section-y) 0;position:relative}
.section--light{background:var(--bg-soft)}
.section--soft{background:#fcebeb75}
.section--dark{background:var(--ink);color:#fff}

/* ============ TIPOGRAFIA UI ============ */
.kicker{display:inline-block;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--coral);margin:0 0 var(--s-5)}
.kicker--light{color:rgba(255,255,255,.8)}
.kicker--accent{color:var(--coral)}

.h-display{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3vw,42px);line-height:1.08;letter-spacing:-.012em;color:var(--ink);margin:0}
.h-display em{font-style:normal;font-weight:500;color:var(--coral)}
.h-display--light{color:#fff}
.h-display--light em{color:#fff}

.lead{font-size:clamp(16px,1.3vw,19px);line-height:1.7;color:var(--ink-2);margin:0 0 var(--s-4);font-weight:400}

.link-arrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--ink);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:4px;transition:all .3s var(--ease)}
.link-arrow svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.link-arrow:hover{color:var(--coral);border-color:var(--coral)}
.link-arrow:hover svg{transform:translateX(4px)}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:4px;font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:all .3s var(--ease);cursor:pointer;border:1.5px solid transparent;white-space:nowrap;line-height:1}
.btn svg{width:16px;height:16px}
.btn--primary{background:var(--coral);color:#fff;border-color:var(--coral)}
.btn--primary:hover{background:var(--coral-dark);border-color:var(--coral-dark)}
.btn--outline{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn--outline:hover{background:var(--ink);color:#fff}
.btn--outline-accent{background:transparent;border-color:var(--coral);color:var(--coral)}
.btn--outline-accent:hover{background:var(--coral);color:#fff;border-color:var(--coral)}
.btn--outline-light{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
.btn--outline-light:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn--ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--ghost-light{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.7);color:#fff;backdrop-filter:blur(6px)}
.btn--ghost-light:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn--text{background:transparent;color:var(--ink);padding:8px 0;border-radius:0;border:none;border-bottom:1.5px solid var(--ink)}
.btn--text:hover{color:var(--coral);border-color:var(--coral)}
.btn--sm{padding:10px 18px;font-size:11px}
.btn--lg{padding:16px 30px;font-size:14px}
.btn--block{display:flex;width:100%}

/* ============ HEADER ============ */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:transparent;border-bottom:1px solid transparent;transition:background .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease),padding .3s var(--ease)}
.site-header.is-scrolled,
.site-header.is-mega-open,
.site-header.is-solid{background:rgba(255,255,255,.98);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line-soft);box-shadow:0 1px 12px rgba(26,26,26,.04)}
.site-header:not(.is-scrolled):not(.is-mega-open):not(.is-solid) .brand__img{filter:brightness(0) invert(1)}
.site-header:not(.is-scrolled):not(.is-mega-open):not(.is-solid) .mainnav__list > li > a{color:#fff}
.site-header:not(.is-scrolled):not(.is-mega-open):not(.is-solid) .mainnav__list > li > a:hover{color:var(--coral)}
.site-header:not(.is-scrolled):not(.is-mega-open):not(.is-solid) .burger{color:#fff}
.site-header__inner{max-width:var(--container);margin:0 auto;padding:0 var(--pad-x);display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:var(--hdr-h)}

.brand{display:inline-flex;align-items:center;flex-shrink:0}
.brand__img{height:40px;width:auto;display:block;transition:height .3s var(--ease)}

.mainnav{display:none}
.mainnav__list{display:flex;gap:32px;align-items:center}
.mainnav__list > li{position:relative}
.mainnav__list > li > a{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500;color:var(--ink);padding:28px 0;letter-spacing:.02em;position:relative;transition:color .25s}
.mainnav__list > li > a::after{content:"";position:absolute;left:0;right:0;bottom:20px;height:1.5px;background:var(--coral);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.mainnav__list > li > a:hover{color:var(--coral)}
.mainnav__list > li > a:hover::after,
.mainnav__list > li.is-open > a::after{transform:scaleX(1)}
.mainnav__list .caret{width:12px;height:12px;transition:transform .3s}
.mainnav__list .has-mega.is-open .caret{transform:rotate(180deg)}

/* Megamenu */
.mega{position:fixed;left:0;right:0;top:var(--hdr-h);background:#fff;border-top:1px solid var(--line-soft);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;max-height:calc(100svh - var(--hdr-h));overflow-y:auto}
.has-mega.is-open .mega,.has-mega:hover .mega{opacity:1;visibility:visible;transform:translateY(0)}
.mega__inner{max-width:var(--container);margin:0 auto;padding:40px var(--pad-x);display:grid;grid-template-columns:repeat(4,1fr) 1.2fr;gap:40px}
.mega__col h4{font-family:var(--sans);font-size:12px;font-weight:600;color:var(--ink);margin-bottom:12px;letter-spacing:.18em;text-transform:uppercase}
.mega__col a{display:block;font-size:14px;color:var(--ink-2);padding:6px 0;transition:color .2s,padding .2s}
.mega__col a:hover{color:var(--coral);padding-left:6px}
.mega__feature{display:flex;flex-direction:column;justify-content:flex-end;gap:4px;padding:24px;border-radius:var(--radius-lg);background-size:cover;background-position:center;color:#fff;position:relative;overflow:hidden;min-height:180px;transition:transform .4s var(--ease)}
.mega__feature::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,26,26,.1) 30%,rgba(26,26,26,.75) 100%)}
.mega__feature > *{position:relative;z-index:1}
.mega__feature:hover{transform:scale(1.02)}
.mega__feature-kicker{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.85);font-weight:500}
.mega__feature-title{font-family:var(--sans);font-size:20px;font-weight:600;color:#fff;line-height:1.25;letter-spacing:-.005em}
.mega__feature-cta{font-size:13px;margin-top:8px;color:#fff;font-weight:500}

.site-header__cta{display:none}
.burger{width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--ink)}
.burger span{display:block;width:22px;height:2px;background:currentColor;border-radius:2px;transition:transform .3s var(--ease),opacity .3s}
.burger.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger.is-open span:nth-child(2){opacity:0}
.burger.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* Drawer mobile · header compatto + menu pulito */
.drawer{position:fixed;inset:0;z-index:50;background:#fff;transform:translateY(-16px);opacity:0;visibility:hidden;transition:transform .4s var(--ease),opacity .3s var(--ease),visibility .3s;overflow-y:auto;padding:0}
.drawer.is-open{transform:translateY(0);opacity:1;visibility:visible}
.drawer__header{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:14px var(--pad-x);border-bottom:1px solid var(--line-soft);background:#fff;position:sticky;top:0;z-index:2}
.drawer__brand{display:inline-flex;align-items:center;padding:3px 0}
.drawer__logo{height:46px;width:auto;display:block;max-width:none}
.drawer__close{width:40px;height:40px;display:grid;place-items:center;color:var(--coral);border:0;background:transparent;transition:opacity .2s var(--ease),transform .2s var(--ease)}
.drawer__close:hover,.drawer__close:focus-visible{opacity:.7}
.drawer__close svg{width:24px;height:24px}
.drawer__inner{max-width:var(--container);margin:0 auto;padding:var(--s-4) var(--pad-x) var(--s-6)}
.drawer__menu{display:flex;flex-direction:column;margin-bottom:var(--s-5)}
.drawer__menu > a,.drawer__details summary{font-family:var(--sans);font-size:17px;font-weight:500;color:var(--ink);padding:14px 0;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;line-height:1.3;letter-spacing:-.005em;transition:color .2s var(--ease)}
.drawer__menu > a:hover,.drawer__details summary:hover{color:var(--coral)}
.drawer__details summary::-webkit-details-marker{display:none}
.drawer__details summary svg{width:16px;height:16px;transition:transform .3s;color:var(--ink-3)}
.drawer__details[open] summary svg{transform:rotate(180deg)}
.drawer__sub{padding:6px 0 16px 0;display:flex;flex-direction:column;gap:2px}
.drawer__sub a{font-family:var(--sans);font-size:14px;color:var(--ink-2);padding:6px 0;font-weight:400}
.drawer__sub a:hover{color:var(--coral)}
.drawer__actions{display:grid;gap:10px;padding-top:var(--s-5)}
.drawer__social{display:flex;gap:var(--s-5);justify-content:center;margin-top:var(--s-5);padding-top:var(--s-4)}
.drawer__social a{padding:6px;color:var(--ink);display:grid;place-items:center;transition:color .3s var(--ease),transform .3s var(--ease)}
.drawer__social a:hover{color:var(--coral)}
.drawer__social a svg{width:28px;height:28px}

/* ============ HERO · SLIDER (scorrimento orizzontale, no zoom) ============ */
.hero{position:relative;min-height:82svh;color:#fff;background:var(--ink);display:flex;align-items:center;padding:calc(var(--hdr-h) + var(--s-6)) 0 calc(var(--s-9) + 40px)}
.hero__slider{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero__track{display:flex;width:100%;height:100%;transition:transform 1s cubic-bezier(.65,.05,.36,1);will-change:transform}
.hero__slide{flex:0 0 100%;width:100%;height:100%;overflow:hidden;position:relative}
.hero__slide picture{display:block;width:100%;height:100%}
.hero__slide img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
/* Mobile: SOLO la slide banner mostra l'immagine alla dimensione naturale
   (width=schermo, height proporzionale), allineata in basso, gap superiore bianco */
@media (max-width:639px){
  .hero__slide--banner{background:#fff}
  .hero__slide--banner picture{height:auto;position:absolute;left:0;right:0;bottom:0}
  .hero__slide--banner img{height:auto;object-fit:initial}
}
/* Veil a 2 livelli: top/bottom sempre dark (sicurezza card e nav),
   strato centrale che si "accende/spegne" come una luce sul banner vs altre slide */
.hero__veil{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(26,26,26,.65) 0%,
    rgba(26,26,26,0) 28%,
    rgba(26,26,26,0) 72%,
    rgba(26,26,26,.8) 100%)
}
.hero__veil::after{
  content:'';
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(26,26,26,0) 18%, rgba(26,26,26,.45) 45%, rgba(26,26,26,.45) 60%, rgba(26,26,26,0) 90%),
    linear-gradient(90deg, rgba(26,26,26,.45) 0%, rgba(26,26,26,0) 60%);
  opacity:1;
  transition:opacity 1.1s var(--ease);
}
.hero--banner .hero__veil::after{opacity:0}

.hero__content{position:relative;z-index:2;width:100%;opacity:1;transform:translateY(0);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:.25s}
.hero__content .container{width:100%}

/* Stato "pulito" (banner + ultima slide poco prima del loop): solo il blocco contenuti scompare;
   blocco date e veil restano visibili */
.hero--clean .hero__content{opacity:0;transform:translateY(20px);pointer-events:none;transition-delay:0s}
.hero__title{font-family:var(--serif);font-weight:400;font-size:clamp(46px,6.8vw,90px);line-height:.98;letter-spacing:-.025em;margin:0 0 var(--s-5);color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero__title em{font-style:italic;font-weight:400;color:var(--coral)}
.hero__sub{font-family:var(--sans);font-size:clamp(16px,1.4vw,19px);line-height:1.55;max-width:560px;color:rgba(255,255,255,.96);margin:0 0 var(--s-6);font-weight:400;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px}

/* Slider dots · trattini bianchi sopra la card date, attivo coral */
.hero__dots{position:absolute;left:50%;bottom:clamp(80px,9vh,110px);transform:translateX(-50%);z-index:5;display:flex;gap:8px;align-items:center;opacity:1!important;pointer-events:auto!important}
.hero__dot{width:24px;height:2px;border-radius:999px;background:#fff;opacity:.55;transition:opacity .35s var(--ease),width .35s var(--ease),background .35s var(--ease);cursor:pointer;padding:0;border:0}
.hero__dot:hover{opacity:.85}
.hero__dot.is-active{opacity:1;width:36px;background:var(--coral)}

/* Card info che sporge: dimezzata su hero, dimezzata sovrapposta alla sezione successiva */
.hero__card{position:absolute;left:50%;bottom:0;transform:translate(-50%,50%);z-index:4;width:calc(100% - 2*var(--pad-x));max-width:calc(var(--container) - 2 * var(--pad-x));background:#fff;border-bottom:4px solid var(--coral);border-radius:4px;box-shadow:0 0 10px rgba(26,26,26,.22),0 0 0 rgba(26,26,26,.1);padding:var(--s-5) var(--s-6)}
.hero__card-grid{display:grid;gap:var(--s-4);grid-template-columns:1fr}
.info-item{display:flex;flex-direction:column;gap:4px;min-width:0}
.info-item__kicker{font-size:10px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--coral)}
.info-item__value{font-family:var(--sans);font-size:clamp(16px,1.55vw,20px);font-weight:600;color:var(--ink);line-height:1.25;letter-spacing:-.005em}
.info-item__meta{font-size:12.5px;color:var(--ink-3);line-height:1.5}

/* Variante data: forza tabular-nums per allineare i numeri della data */
.info-item--date .info-item__value{font-variant-numeric:tabular-nums}

/* ============ INTRO EDITORIALE ============ */
/* Padding extra top SOLO quando segue .hero della home
   (per compensare la .hero__card che sporge dall'hero).
   Su pagine interne con .page-hero il padding standard di .section basta. */
.hero + .intro{padding-top:calc(var(--section-y) + 220px)}
.intro__grid{display:grid;gap:var(--s-5);grid-template-columns:1fr}
.intro__fig{margin:40px 0 0;overflow:hidden;border-radius:8px;background:var(--bg-gray);aspect-ratio:3/4;max-width:320px}
.intro__fig img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.intro__right p{font-size:clamp(15px,1.2vw,17px);line-height:1.75;color:var(--ink-2);margin:0 0 var(--s-3)}
.intro__right p a{color:var(--coral);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .25s var(--ease)}
.intro__right p a:hover{border-bottom-color:var(--coral)}

/* ============ MEDIA SHOWCASE (banner + video · altezze uguali) ============ */
.media-showcase{display:grid;gap:var(--s-4);grid-template-columns:1fr;margin-top:var(--s-6);align-items:stretch}
.media-showcase__banner{position:relative;overflow:hidden;border-radius:6px;background:var(--bg-gray);aspect-ratio:16/10;margin:0;height:100%}
.media-showcase__banner img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.media-showcase__banner:hover img{transform:scale(1.03)}
.media-showcase__banner figcaption{position:absolute;left:20px;bottom:20px;right:20px;color:#fff;display:flex;flex-direction:column;gap:4px;text-shadow:0 2px 16px rgba(0,0,0,.4)}
.media-showcase__banner figcaption .kicker{color:#fff;margin:0;opacity:.92}
.media-showcase__banner-title{font-family:var(--sans);font-size:clamp(18px,1.9vw,24px);font-weight:700;line-height:1.15;letter-spacing:-.01em}
.media-showcase__banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,26,26,0) 55%,rgba(26,26,26,.55) 100%);pointer-events:none}

.media-showcase__video{position:relative;overflow:hidden;border-radius:6px;background:var(--ink);aspect-ratio:16/10;cursor:pointer;height:100%}
.media-showcase__poster{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .5s var(--ease);filter:brightness(.7)}
.media-showcase__video:hover .media-showcase__poster{transform:scale(1.03);filter:brightness(.55)}
.media-showcase__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);color:var(--coral);display:grid;place-items:center;transition:background .25s var(--ease),color .25s var(--ease)}
.media-showcase__play svg{width:30px;height:30px;transform:translateX(2px)}
.media-showcase__video:hover .media-showcase__play{background:var(--coral);color:#fff}
.media-showcase__caption{position:absolute;left:20px;bottom:20px;right:20px;color:#fff;display:flex;flex-direction:column;gap:2px;pointer-events:none}
.media-showcase__caption .kicker{margin:0}
.media-showcase__video-title{font-family:var(--sans);font-size:clamp(16px,1.5vw,18px);font-weight:700;line-height:1.25;letter-spacing:-.005em}
.media-showcase__video.is-playing{cursor:default}
.media-showcase__video.is-playing .media-showcase__play,
.media-showcase__video.is-playing .media-showcase__caption,
.media-showcase__video.is-playing .media-showcase__poster{display:none}
.media-showcase__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ============ MEDIA ROW · video Shorts (9:16) + banner orizzontale (13:6) ============ */
.media-row{margin-top:var(--s-7);display:flex;flex-direction:column;gap:var(--s-3)}
@media (min-width:1024px){.media-row{margin-top:var(--s-9)}}

/* Banner evento · solo mobile: sostituisce il banner della media-row e
   si colloca in cima alla sezione "L'evento", subito sotto il box informazioni */
.event-banner-mobile{display:none}
@media (max-width:639px){
  .event-banner-mobile{display:block;margin:22px 0}
  .event-banner-mobile img{width:100%;height:auto;display:block;border-radius:8px}
  .media-row__banner{display:none}
}
.media-row > *{margin:0}
.media-row__video{position:relative;border-radius:8px;overflow:hidden;background:#000;aspect-ratio:9/16;max-width:280px;margin:0 auto;width:100%}
.media-row__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.media-row__banner{border-radius:8px;overflow:hidden;background:var(--bg-gray);aspect-ratio:13/6}
.media-row__banner img{width:100%;height:100%;object-fit:cover;display:block}
/* Desktop: 2 colonne, stessa altezza bassa · video 9:16 stretto, banner 13:6 ampio */
@media (min-width:1024px){
  .media-row{flex-direction:row;align-items:stretch;justify-content:center;gap:var(--s-4)}
  .media-row__video,
  .media-row__banner{height:clamp(320px,34vw,400px);aspect-ratio:auto;max-width:none;margin:0;width:auto}
  .media-row__video{flex:0 0 auto;width:calc(clamp(320px,34vw,400px) * 9 / 16)}
  .media-row__banner{flex:1 1 auto;min-width:0}
}

/* ============ SECTION HEAD ============ */
.section-head{display:flex;flex-direction:column;gap:var(--s-4);align-items:flex-start;margin-bottom:var(--s-6);justify-content:space-between}
.section-head--center{align-items:center;text-align:center}
.section-head--center .h-display{max-width:none}

/* ============ CAT CAROUSEL · ESPOSITORI (tutte equali) ============ */
.cat-carousel{position:relative}
.cat-carousel__viewport{overflow:hidden;margin:0 calc(-1 * var(--pad-x));padding:0 var(--pad-x) 4px}
.cat-carousel__track{display:flex;gap:var(--s-4);scroll-snap-type:x mandatory;overflow-x:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
.cat-carousel__track::-webkit-scrollbar{display:none}
.cat-carousel__track > li{flex:0 0 78%;scroll-snap-align:start;list-style:none}

.cat-card{position:relative;display:block;border-radius:6px;overflow:hidden;aspect-ratio:3/4;background:var(--bg-gray);transition:transform .4s var(--ease),box-shadow .4s var(--ease);isolation:isolate}
.cat-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);z-index:0}
.cat-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,26,26,0) 38%,rgba(26,26,26,.72) 100%);z-index:1;transition:background .4s var(--ease)}
.cat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.cat-card:hover .cat-card__img{transform:scale(1.06)}
.cat-card:hover::before{background:linear-gradient(180deg,rgba(242,108,99,.08) 0%,rgba(26,26,26,.86) 100%)}
.cat-card__content{position:absolute;left:18px;right:18px;bottom:18px;z-index:2;color:#fff;display:flex;flex-direction:column}
.cat-card__tag{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.18);backdrop-filter:blur(8px);padding:4px 10px;border-radius:999px;margin-bottom:10px;align-self:flex-start}
.cat-card__content h3{font-family:var(--sans);font-size:clamp(15px,1.3vw,17px);font-weight:700;line-height:1.25;color:#fff;margin:0;letter-spacing:-.005em}

/* Dots carousel · trattini, attivo più vivido (coerente con hero) */
.cat-carousel__dots{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:var(--s-5);flex-wrap:wrap}
.cat-carousel__dot{width:24px;height:2px;border-radius:999px;background:var(--line);opacity:1;transition:background .35s var(--ease),width .35s var(--ease);cursor:pointer;padding:0;border:0}
.cat-carousel__dot:hover{background:var(--ink-3)}
.cat-carousel__dot.is-active{background:var(--coral);width:36px}

/* ============ LOCATION · collage 3 foto (stesso schema del riferimento) ============ */
.location__grid{display:grid;gap:var(--s-6);grid-template-columns:1fr}
.location__grid + .location__grid{margin-top:var(--s-8)}
.location__media{display:grid;gap:var(--s-4);grid-template-columns:1fr;position:relative}
.location__media-col{display:flex;flex-direction:column;gap:var(--s-4)}

/* Banner Sposi In 2026 (blocco 2 location, linkato a registrazione) · minimal, no effetti */
.location__banner{display:block;border-radius:8px;overflow:hidden;aspect-ratio:1/1;background:var(--bg-gray);max-width:360px;margin:0 auto;width:100%}
.location__banner img{width:100%;height:100%;object-fit:cover;display:block}

.location__fig{border-radius:8px;overflow:hidden;margin:0;background:var(--bg-gray)}
.location__fig img{width:100%;height:100%;object-fit:cover;display:block}
.location__fig--lg{aspect-ratio:9/16}
.location__fig--sm{aspect-ratio:16/17}
.location__fig--xs{aspect-ratio:4/5}

/* Su mobile mostra solo la foto con badge IG (xs) */
@media (max-width:639px){
  .location__fig--lg,.location__fig--sm{display:none}
  .location__media-col{gap:0}

  /* Hero: card info abbassata + bottoni più piccoli */
  .hero__card{bottom:-75px}
  .hero__actions .btn--lg{padding:13px 24px;font-size:13px}
}

/* Instagram badge floating in basso a destra del collage */
.location__badge{position:absolute;bottom:var(--s-3);right:var(--s-2);z-index:3;display:inline-flex;align-items:center;gap:8px;background:var(--coral);color:#fff;padding:10px 16px;border-radius:999px;font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.01em;transition:background .25s var(--ease);text-decoration:none}
.location__badge:hover{background:var(--coral-dark);color:#fff}
.location__badge svg{width:18px;height:18px;flex-shrink:0}

.location__text .h-display{margin-bottom:var(--s-5)}
.location__body{display:flex;flex-direction:column;gap:var(--s-5);margin-top:var(--s-5)}
.location__body .lead{margin:0}
.location__body p{font-size:clamp(15px,1.2vw,16px);line-height:1.7;color:var(--ink-2);margin:0}
.location__body .lead{font-size:clamp(16px,1.3vw,19px);line-height:1.7;color:var(--ink-2);font-weight:400}
.location__highlight{padding-left:var(--s-4);border-left:2px solid var(--coral);font-style:italic;color:var(--ink) !important;font-weight:500}

/* Facts list con icone inline (pin, calendar, ticket) */
.location__facts{display:flex;flex-direction:column;gap:12px}
.location__facts li{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.55;color:var(--ink-2);padding:0}
.location__facts-icon{width:18px;height:18px;flex-shrink:0;color:var(--coral);margin-top:2px}

.row-actions{display:flex;flex-wrap:wrap;gap:var(--s-4);align-items:center}

/* ============ COUNTDOWN STRIP · coral + tondi (cita il logo "o" del brand) ============ */
.countdown-strip{background:var(--coral);color:#fff;padding:var(--s-6) 0;position:relative;overflow:hidden}
.countdown-strip__inner{position:relative;display:flex;flex-direction:column;gap:var(--s-5);align-items:flex-start;justify-content:space-between}
.countdown-strip__mark{height:clamp(40px,4vw,52px);width:auto;flex-shrink:0;display:block}
.countdown-strip__text{display:flex;flex-direction:column;gap:var(--s-2)}
.countdown-strip__text .kicker{color:rgba(255,255,255,.88);margin:0}
.countdown-strip__text h3{font-family:var(--sans);font-size:clamp(20px,2.2vw,26px);font-weight:600;color:#fff;margin:0;line-height:1.25;letter-spacing:-.01em}
/* Bottone su bg coral: bg bianco + testo coral (cosi' contrasta) */
.countdown-strip .btn--primary{background:#fff;color:var(--coral);border-color:#fff}
.countdown-strip .btn--primary:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.countdown{display:flex;align-items:center;gap:var(--s-3)}
.countdown__cell{display:flex;flex-direction:column;align-items:center;gap:10px}
.countdown__cell b{
  display:grid;place-items:center;
  width:clamp(60px,6.6vw,82px);height:clamp(60px,6.6vw,82px);
  border-radius:50%;border:1.5px solid rgba(255,255,255,.55);
  font-family:var(--sans);font-weight:500;font-size:clamp(20px,2.2vw,28px);
  color:#fff;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em
}
.countdown__cell span{font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.85);font-weight:500}

/* ============ NEWS / MAGAZINE · card minimali stile editoriale ============ */
.news-section{background:#fff;position:relative}

/* Griglia news — tutte card equivalenti, minimali, senza box */
.news-grid{display:grid;gap:var(--s-6) var(--s-4);grid-template-columns:1fr}
.news-card{display:flex;flex-direction:column;background:transparent;border-radius:0;overflow:visible;transition:transform .4s var(--ease);gap:var(--s-3)}
.news-card:hover{transform:translateY(-3px)}
.news-card__fig{overflow:hidden;aspect-ratio:1/1;background:var(--bg-gray);border-radius:2px}
.news-card__fig img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.news-card:hover .news-card__fig img{transform:scale(1.04)}
.news-card__body{display:flex;flex-direction:column;gap:6px;padding:0}
.news-card__kicker{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--ink-2);line-height:1.4;letter-spacing:0}
.news-card__body h3{font-family:var(--sans);font-size:16px;font-weight:700;line-height:1.35;color:var(--ink);margin:0;letter-spacing:-.005em;transition:color .25s var(--ease)}
.news-card:hover .news-card__body h3{color:var(--coral)}


/* ============ INSTAGRAM FEED (preview/demo) ============ */
.ig-feed{background:#fff}
/* Mobile: carousel orizzontale con 2 post visibili per snap */
.ig-feed__grid{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px;margin:0 calc(-1 * var(--pad-x));padding-left:var(--pad-x);padding-right:var(--pad-x)}
.ig-feed__grid::-webkit-scrollbar{display:none}
.ig-post{position:relative;flex:0 0 calc(50% - 4px);scroll-snap-align:start;display:block;aspect-ratio:1/1;overflow:hidden;background:var(--bg-gray);border-radius:6px}
.ig-post img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.ig-post__overlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(212,10,84,.45);opacity:0;transition:opacity .3s var(--ease);color:#fff;pointer-events:none}
.ig-post__overlay svg{width:38px;height:38px}
.ig-post:hover img{transform:scale(1.04)}
.ig-post:hover .ig-post__overlay{opacity:1}
.ig-feed__note{font-size:13px;color:var(--ink-3);text-align:center;margin:var(--s-5) 0 0;font-style:italic}

/* ============ SPLIT CTA ============ */
.split-cta{display:grid;grid-template-columns:1fr;min-height:auto}
.split-cta__side{padding:var(--s-7) var(--pad-x);display:flex;align-items:center;justify-content:center}
.split-cta__side--light{background:var(--bg-soft)}
/* "Esponi con noi" su rosa tenue (palette ufficiale --coral-soft) per equilibrio col lato sposi */
.split-cta__side--dark{background:var(--coral-soft);color:var(--ink)}
.split-cta__content{max-width:520px;width:100%}
.split-cta__content p{font-size:16px;line-height:1.7;color:var(--ink-2);margin:var(--s-4) 0 var(--s-6)}
.split-cta__side--dark .split-cta__content p{color:var(--ink-2)}
.split-cta__list{display:grid;gap:12px;margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--line)}
.split-cta__list li{font-size:14px;color:var(--ink-2);position:relative;padding-left:28px;line-height:1.5}
.split-cta__list li::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 10.5l3.5 3.5L16 6' stroke='%23f26c63' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain}
.split-cta__list--light{border-top-color:rgba(255,255,255,.2)}
.split-cta__list--light li{color:#fff}
.split-cta__list--light li::before{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 10.5l3.5 3.5L16 6' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}

/* ============ PARTNERS ============ */
.partners{padding:var(--section-y) 0;background:#fff;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.partners__label{font-size:11px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-3);text-align:center;margin:0 0 var(--s-6)}
.partners__grid{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s-6) var(--s-7);max-width:1000px;margin:0 auto}
.partners__grid img{max-height:44px;width:auto;opacity:.7;filter:grayscale(100%);transition:all .35s var(--ease)}
.partners__grid img:hover{opacity:1;filter:grayscale(0)}
/* Marquee automatico: classe .is-marquee aggiunta via JS solo se i loghi non entrano in una riga */
.partners__track{display:flex;align-items:center;gap:var(--s-7);flex:0 0 auto;padding-right:var(--s-7)}
.partners__grid.is-marquee{flex-wrap:nowrap;justify-content:flex-start;max-width:100%;overflow:hidden;gap:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.partners__grid.is-marquee .partners__track{animation:partners-scroll 28s linear infinite}
.partners__grid.is-marquee:hover .partners__track{animation-play-state:paused}
@keyframes partners-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.partners__grid.is-marquee .partners__track{animation:none}}

/* ============ FOOTER ============ */
.footer{background:var(--ink);color:rgba(255,255,255,.88);padding:var(--section-y) 0 var(--s-6);font-size:14px}
.footer__top{display:grid;gap:var(--s-7);grid-template-columns:1fr;padding-bottom:var(--s-7);border-bottom:1px solid rgba(255,255,255,.12)}
.footer__logo{display:inline-block;margin-bottom:var(--s-4)}
.footer__logo-img{height:52px;width:auto;opacity:.95}
.footer__brand p{font-size:14px;line-height:1.7;max-width:380px;margin:0 0 var(--s-5);color:rgba(255,255,255,.78)}
.social{display:flex;gap:var(--s-4)}
.social a{padding:4px;display:grid;place-items:center;color:#fff;transition:color .2s var(--ease)}
.social a svg{width:26px;height:26px}
.social a:hover{color:var(--coral)}
.footer__col h4{font-family:var(--sans);color:#fff;font-size:13px;font-weight:600;margin-bottom:var(--s-4);letter-spacing:.18em;text-transform:uppercase}
.footer__col a{display:block;color:rgba(255,255,255,.78);padding:5px 0;font-size:14px;transition:color .25s}
.footer__col a:hover{color:var(--coral)}
.footer__contact{margin-bottom:var(--s-4)}
.footer__label{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--coral);font-weight:600;margin-bottom:4px}
.footer__bottom{padding-top:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3);font-size:12px;color:rgba(255,255,255,.6)}
.footer__bottom p{margin:0}
.footer__legal{display:flex;gap:20px;flex-wrap:wrap}
.footer__legal a:hover{color:var(--coral)}

/* ============ STICKY MOBILE BAR ============ */
.sticky-bar{position:fixed;bottom:0;left:0;right:0;z-index:45;background:rgba(255,255,255,.98);backdrop-filter:blur(14px);border-top:1px solid var(--line-soft);padding:10px var(--pad-x);display:flex;gap:10px;align-items:center;justify-content:space-between;box-shadow:0 -6px 24px rgba(26,26,26,.06);transition:opacity .3s var(--ease),transform .3s var(--ease)}
.sticky-bar .btn{flex:1}
.sticky-bar.is-hidden{opacity:0;transform:translateY(100%);pointer-events:none}
body{padding-bottom:64px}
body.drawer-open .sticky-bar{opacity:0;transform:translateY(100%);pointer-events:none}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}

/* ============================================================
   TABLET · 640px+
   ============================================================ */
@media (min-width: 640px){
  .hero__card{padding:var(--s-5) var(--s-7)}
  .hero__card-grid{grid-template-columns:repeat(3,1fr);gap:var(--s-5);align-items:center}
  .hero__card-grid .info-item{padding-left:var(--s-5);border-left:1px solid var(--line)}
  .hero__card-grid .info-item:first-child{border-left:0;padding-left:0}
  .hero + .intro{padding-top:calc(var(--section-y) + 80px)}
  .cat-carousel__track > li{flex-basis:46%}
  .media-showcase{grid-template-columns:1fr 1fr;gap:var(--s-4)}
  .news-grid{grid-template-columns:repeat(2,1fr);gap:var(--s-6) var(--s-5)}
  .ig-feed__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;overflow:visible;margin:0;padding:0}
  .ig-post{flex:none}
  .countdown-strip__inner{flex-direction:row;align-items:center;gap:var(--s-5);justify-content:flex-start}
  .countdown-strip__inner .countdown,
  .countdown-strip__inner .row-actions{margin-left:auto}
  .section-head{flex-direction:row;align-items:flex-end;gap:var(--s-6)}
  .footer__top{grid-template-columns:2fr 1fr 1fr;gap:var(--s-7)}
  .footer__col--contact{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:var(--s-6);margin-top:var(--s-3)}
  .footer__contact{display:inline-block;margin-right:var(--s-7);vertical-align:top}
  .footer__bottom{flex-direction:row;justify-content:space-between;align-items:center}
}

/* ============================================================
   DESKTOP · 1024px+
   ============================================================ */
@media (min-width: 1024px){
  body{padding-bottom:0}
  .sticky-bar{display:none}
  .mainnav{display:block}
  .site-header__cta{display:block}
  .burger{display:none}

  .hero__content{padding-top:var(--s-5)}

  .hero + .intro{padding-top:calc(var(--section-y) + 60px)}
  .intro__grid{grid-template-columns:.9fr 1.1fr;gap:var(--s-8);align-items:start}
  .intro__right{padding-top:var(--s-2)}

  .media-showcase{grid-template-columns:1fr 1fr;gap:var(--s-5);margin-top:var(--s-7)}
  .media-showcase__banner,.media-showcase__video{aspect-ratio:16/9}

  /* Carousel: 4 card visibili su desktop */
  .cat-carousel__track > li{flex-basis:calc((100% - 3 * var(--s-4)) / 4)}

  /* Location · collage (larghezze uguali, sm -15% altezza / xs +15% altezza) */
  .location__grid{grid-template-columns:1.05fr 1fr;gap:var(--s-8);align-items:center}
  .location__grid--alt{grid-template-columns:1.15fr 1fr;align-items:center}
  .location__media{grid-template-columns:1fr 1fr;gap:var(--s-4);align-items:start}
  .location__fig--lg{aspect-ratio:9/16}
  .location__media-col{gap:var(--s-4)}
  .location__fig--sm{aspect-ratio:16/17}
  .location__fig--xs{aspect-ratio:4/5}

  .news-grid{grid-template-columns:repeat(4,1fr);gap:var(--s-5)}

  .split-cta{grid-template-columns:1fr 1fr;min-height:440px}
  .split-cta__side{padding:var(--s-7) var(--s-8)}

  .partners__grid{gap:var(--s-7) var(--s-8)}
  .partners__grid img{max-height:48px}

  .footer__top{grid-template-columns:2.2fr 1fr 1fr 1.3fr;gap:var(--s-7);align-items:start}
  .footer__col--contact{grid-column:auto;border-top:0;padding-top:0;margin-top:0}
  .footer__contact{display:block;margin-right:0}
}

/* ============================================================
   LARGE DESKTOP · 1280px+
   ============================================================ */
@media (min-width: 1280px){
  .cat-carousel__track > li{flex-basis:calc((100% - 3 * var(--s-4)) / 4)}
}

/* ============================================================
   MOBILE OPTIMIZATIONS  (<=639px)
   Aggiustamenti puntuali per smartphone: spaziature ridotte,
   font scalati, layout stack, foto piu' contenute.
   ============================================================ */
@media (max-width: 639px){
  :root{
    --hdr-h: 60px;
    /* Allinea --pad-x al padding effettivo del container su mobile
       così i caroselli con margin negativo non sbordano */
    --pad-x: var(--s-4);
  }

  /* Container base un pelo piu' arioso ai lati */
  .container{padding:0 var(--s-4)}

  /* --- PAGE HERO interno (scuro) --- */
  .page-hero{height:auto;min-height:auto;padding-top:0}
  .page-hero__inner{padding:calc(var(--hdr-h) + var(--s-7)) 0 var(--s-6)}
  .page-hero__kicker{font-size:11px;letter-spacing:.14em;padding:5px 11px;margin-bottom:var(--s-3)}
  .page-hero__title{font-size:30px;line-height:1.08;margin-bottom:var(--s-3);max-width:none}
  .page-hero__sub{font-size:15px;line-height:1.55;margin-bottom:var(--s-4)}
  .page-hero__meta{flex-direction:column;gap:6px;font-size:13px}
  .breadcrumb{font-size:12px;margin-bottom:var(--s-3)}
  .breadcrumb__sep{margin:0 6px}

  /* --- EXPO HERO (scheda espositore, chiaro) --- */
  .expo-hero{padding:calc(var(--hdr-h) + var(--s-3)) 0 var(--s-5)}
  .expo-hero .breadcrumb{margin-bottom:var(--s-3)!important}
  .expo-hero__grid{grid-template-columns:1fr;gap:var(--s-3)}
  .expo-hero__category{font-size:11px;padding:5px 11px}
  .expo-hero__name{font-size:30px;line-height:1.08;margin-bottom:var(--s-3)}
  .expo-hero__claim{font-size:15px;line-height:1.55;margin-bottom:var(--s-3)}
  .expo-hero__media{aspect-ratio:4/3;order:-1;margin:0}

  /* CTA "incontralo in fiera" su mobile: bottone full width + info sotto */
  .expo-hero .btn{width:100%;justify-content:center}
  .expo-hero [style*="margin-left"]{display:block;margin:var(--s-3) 0 0 !important;text-align:center}

  /* --- CONTACT STRIP (chip contatti) --- */
  .contact-strip{gap:8px;flex-direction:row;flex-wrap:wrap}
  .contact-strip a{font-size:12.5px;padding:8px 12px}
  .contact-strip a svg{width:14px;height:14px}

  /* --- STATS --- */
  .stats{gap:0}
  .stats__item{padding:var(--s-4) 0;border-left:0;border-top:1px solid var(--line)}
  .stats__item:first-child{border-top:0;padding-top:0}
  .stats__num{font-size:36px;margin-bottom:6px}
  .stats__label{font-size:11px;letter-spacing:.1em}

  /* --- PROSE (testo lungo) --- */
  .prose{max-width:100%}
  .prose p{font-size:16px;line-height:1.7;margin-bottom:var(--s-4)}
  .prose p.lead{font-family:var(--serif);font-size:19px;line-height:1.45;margin-bottom:var(--s-5);font-weight:500}
  .prose h3{font-size:21px;line-height:1.2;margin:var(--s-6) 0 var(--s-3)}

  /* --- INFO CARDS --- */
  .info-cards{gap:var(--s-3)}
  .info-cards__item{padding:var(--s-5)}
  .info-cards__icon{width:42px;height:42px}
  .info-cards__icon svg{width:20px;height:20px}
  .info-cards__title{font-size:19px}
  .info-cards__text{font-size:14px;line-height:1.55}
  .info-cards__meta{font-size:12px}

  /* --- FEATURE BLOCK --- */
  .feature-block{border-radius:var(--radius)}
  .feature-block__media{min-height:220px;aspect-ratio:4/3}
  .feature-block__body{padding:var(--s-5)}
  .feature-block__title{font-size:24px;line-height:1.15;margin:var(--s-3) 0}
  .feature-block__text{font-size:15px;line-height:1.6}
  .feature-block__meta{font-size:12px;gap:6px var(--s-3)}

  /* --- PROGRAM --- */
  .program{gap:var(--s-3)}
  .program__item{padding:var(--s-5)}
  .program__title{font-size:18px}
  .program__text{font-size:14px;line-height:1.55}
  .program__time{font-size:11px;letter-spacing:.12em;padding:5px 10px;margin-bottom:var(--s-3)}

  /* --- CATEGORIES GRID --- */
  .cat-grid{gap:var(--s-2)}
  .cat-grid__item{padding:var(--s-4)}
  .cat-grid__name{font-size:18px}

  /* --- GALLERY GRID --- */
  .gallery-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:var(--s-3)}
  .gallery-grid__item{aspect-ratio:4/3}
  .gallery-grid__item--lg,.gallery-grid__item--md,
  .gallery-grid__item--sm,.gallery-grid__item--wide{grid-column:span 1;grid-row:span 1}

  /* --- MAP EMBED --- */
  .map-embed{padding-top:80%;border-radius:var(--radius)}

  /* --- FAQ --- */
  .faq__item summary{font-size:17px;padding:var(--s-4) 0;gap:var(--s-3)}
  .faq__item summary::after{width:11px;height:11px}
  .faq__answer{font-size:15px;line-height:1.65;padding-bottom:var(--s-4)}

  /* --- SERVICES LIST --- */
  .services-list{gap:0;grid-template-columns:1fr}
  .services-list li{padding:var(--s-3) 0;border-top:1px solid var(--line)}
  .services-list li:first-child{border-top:0}
  .services-list li:nth-child(2){border-top:1px solid var(--line)}
  .services-list__text{font-size:15px}

  /* --- SECTION HEAD --- */
  .section-head{margin-bottom:var(--s-5);gap:var(--s-3)}
  .section-head .link-arrow{font-size:12px}

  /* --- KICKER + H DISPLAY --- */
  .kicker{font-size:11px;letter-spacing:.18em;margin-bottom:var(--s-3)}
  .h-display{font-size:26px;line-height:1.15}

  /* --- SPLIT CTA padding ridotto --- */
  .split-cta__side{padding:var(--s-6) var(--s-4)}
  .split-cta__content p{font-size:15px;margin:var(--s-3) 0 var(--s-5)}
  .split-cta__list{margin-top:var(--s-4);padding-top:var(--s-4)}

  /* --- COUNTDOWN STRIP --- */
  .countdown-strip{padding:var(--s-5) 0}
  .countdown-strip__inner{gap:var(--s-4)}
  .countdown-strip__text h3{font-size:19px}
  .countdown{gap:var(--s-2);width:100%;justify-content:space-between}
  .countdown__cell b{width:56px;height:56px;font-size:19px}
  .countdown__cell span{font-size:9px}

  /* --- ROW ACTIONS (bottoni hero) --- */
  .row-actions{gap:var(--s-3)}
  .row-actions .btn--lg{flex:1 1 100%;justify-content:center}

  /* --- BUTTONS: bottoni LG su mobile = bottoni MD (meno overflow) --- */
  .btn--lg{padding:13px 22px;font-size:13px}
  .btn{font-size:12.5px}

  /* --- SECTION padding-y ridotto su mobile --- */
  .section{padding:var(--s-7) 0}

  /* --- INTRO dopo hero (home): la .hero__card sporge molto su mobile
         (3 info-item stacked verticalmente -> card alta ~270px),
         servono almeno 220px di padding-top per non far coprire il contenuto --- */
  .hero + .intro{padding-top:220px}

  /* --- FOOTER --- */
  .footer{padding:var(--s-7) 0 var(--s-5)}
  .footer__top{gap:var(--s-5);padding-bottom:var(--s-5)}
  .footer__logo-img{height:44px}
  .footer__brand p{font-size:13.5px}

  /* --- PARTNERS --- */
  .partners{padding:var(--s-7) 0}
  .partners__grid{gap:var(--s-5) var(--s-4)}
  .partners__grid img{max-height:36px}

  /* --- STICKY BAR (gia' OK ma rifinisco) --- */
  .sticky-bar{padding:8px var(--s-4);gap:8px}
  .sticky-bar .btn--sm{padding:9px 14px;font-size:11px}

  /* --- CTA BANNER (versione mobile) --- */
  .cta-banner{padding:var(--s-7) 0;text-align:left}
  .cta-banner p{font-size:15px;margin-bottom:var(--s-4)}
  .cta-banner .btn--lg{width:100%;justify-content:center}

  /* --- EXPO GRID (directory) versione mobile --- */
  .expo-grid{grid-template-columns:1fr;gap:var(--s-4)}
  .expo-card__body{padding:var(--s-4)}
  .expo-card__name{font-size:22px}
}

/* Extra small screens (<= 380px): titoli ulteriormente ridotti */
@media (max-width: 380px){
  .page-hero__title{font-size:26px}
  .expo-hero__name{font-size:26px}
  .feature-block__title{font-size:22px}
  .h-display{font-size:24px}
  .stats__num{font-size:32px}
  .countdown__cell b{width:50px;height:50px;font-size:17px}
}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ==========================================================
   INTERNAL PAGES  ·  componenti riutilizzabili per pagine interne
   ========================================================== */

/* --- Page hero (compatto, sostituisce l'hero slideshow della home) --- */
.page-hero{position:relative;height:clamp(560px,64vh,640px);min-height:560px;display:flex;align-items:flex-end;color:#fff;overflow:hidden;isolation:isolate;background:#1a1a1a}
.page-hero__media{position:absolute;inset:0;z-index:-2}
.page-hero__media img{width:100%;height:100%;object-fit:cover;opacity:.78}
.page-hero__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.55) 70%,rgba(0,0,0,.75) 100%)}
.page-hero__inner{padding:calc(var(--s-9) + 60px) 0 var(--s-7);width:100%}
.page-hero__kicker{display:inline-block;font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#fff;opacity:.9;padding:6px 14px;border:1px solid rgba(255,255,255,.4);border-radius:999px;margin-bottom:var(--s-4)}
.page-hero__title{font-family:var(--serif);font-weight:500;font-size:clamp(36px,4.4vw,58px);line-height:1.05;letter-spacing:-.015em;margin:0 0 var(--s-4);max-width:none;color:#fff}
.page-hero__title em{font-style:italic;color:#fff}
.page-hero__sub{font-size:clamp(16px,1.4vw,19px);line-height:1.55;max-width:60ch;color:rgba(255,255,255,.92);margin:0 0 var(--s-5)}
.page-hero__meta{display:flex;flex-wrap:wrap;gap:var(--s-4) var(--s-6);font-size:14px;color:rgba(255,255,255,.85)}
.page-hero__meta b{font-weight:500;color:#fff;letter-spacing:.04em}

/* --- Breadcrumb --- */
.breadcrumb{font-size:13px;color:rgba(255,255,255,.78);margin-bottom:var(--s-4);letter-spacing:.02em}
.breadcrumb a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s}
.breadcrumb a:hover{border-bottom-color:rgba(255,255,255,.4)}
.breadcrumb__sep{margin:0 8px;opacity:.5}
.breadcrumb__current{color:#fff}
.section .breadcrumb{color:var(--ink-3)}
.section .breadcrumb a:hover{border-bottom-color:var(--coral)}
.section .breadcrumb__current{color:var(--ink)}

/* --- Stats strip (numeri grandi) --- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s-1)}
.stats__item{padding:var(--s-6) var(--s-5);border-left:1px solid var(--line);text-align:left}
.stats__item:first-child{border-left:0}
.stats__num{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(40px,4vw,56px);line-height:1;color:var(--ink);margin-bottom:var(--s-2)}
.stats__num em{font-style:italic;color:var(--coral)}
.stats__label{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}

/* === BANDA NUMERI con foto BG scurita + PARALLAX (stile romantico/suggestivo, testi negativi, font Inter) === */
.stats-band{position:relative;overflow:hidden;padding:var(--section-y) 0;color:#fff;background-size:cover;background-position:center;background-repeat:no-repeat;isolation:isolate;background-color:#1a1a1a}
.stats-band--parallax{background-attachment:fixed}
.stats-band--solid{background-image:none}
.stats-band--solid .stats-band__veil{display:none}
.stats-band__veil{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(26,26,26,.78) 0%,rgba(26,26,26,.62) 50%,rgba(26,26,26,.82) 100%)}
.stats-band__inner{position:relative;z-index:1}
/* iOS Safari non supporta background-attachment:fixed in modo stabile -> fallback scroll */
@media (max-width:1024px),(hover:none){
  .stats-band--parallax{background-attachment:scroll}
}
.stats-band__head{margin-bottom:var(--s-7)}
.stats-band__head .kicker{margin:0 0 var(--s-3)}
.stats-band__head .h-display{margin:0}

/* Variante stats per banda negativa: font Inter, bianco, separatori bianchi tenui */
.stats--negative{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s-1)}
.stats--negative .stats__item{padding:var(--s-5) var(--s-5);border-left:1px solid rgba(255,255,255,.18);text-align:left}
.stats--negative .stats__item:first-child{border-left:0;padding-left:0}
.stats--negative .stats__num{font-family:var(--sans);font-weight:500;font-size:clamp(40px,4.4vw,60px);line-height:1;color:#fff;margin-bottom:var(--s-2);letter-spacing:-.025em}
.stats--negative .stats__num em{font-style:normal;color:var(--coral)}
.stats--negative .stats__label{font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.82);font-weight:500}
@media (max-width:680px){.stats__item{border-left:0;border-top:1px solid var(--line);padding:var(--s-5) 0}.stats__item:first-child{border-top:0}}

/* --- Programma / Timeline appuntamenti --- */
/* PROGRAMMA · card stile "save the date" con chip giorno+ora a sinistra, body a destra */
.program{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:var(--s-4)}
.program__item{display:grid;grid-template-columns:96px 1fr;gap:var(--s-5);align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s-5);transition:border-color .25s var(--ease)}
.program__item:hover{border-color:var(--coral)}
.program__when{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--s-3) 0;background:var(--coral-soft);border-radius:8px;text-align:center;flex-shrink:0;aspect-ratio:1/1}
.program__day{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--coral);line-height:1}
.program__hour{font-family:var(--sans);font-size:22px;font-weight:600;color:var(--coral);margin-top:6px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}
.program__body{display:flex;flex-direction:column;gap:var(--s-2);min-width:0}
.program__title{font-family:var(--sans);font-size:clamp(17px,1.4vw,20px);font-weight:600;line-height:1.25;color:var(--ink);margin:0;letter-spacing:-.005em}
.program__text{font-size:14.5px;line-height:1.55;color:var(--ink-2);margin:0}
@media (max-width:639px){
  .program{grid-template-columns:1fr}
  .program__item{grid-template-columns:80px 1fr;gap:var(--s-4);padding:var(--s-4)}
  .program__when{aspect-ratio:auto;padding:var(--s-3)}
  .program__hour{font-size:18px}
}

/* PROGRAMMA · LAYOUT lista date sx + foto dx (nuovo stile editoriale) */
.program-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--s-7);align-items:start}
.program-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.program-list__item{display:grid;grid-template-columns:110px 1fr;gap:var(--s-5);align-items:flex-start;padding:var(--s-5) 0;border-bottom:1px solid var(--line)}
.program-list__item:first-child{padding-top:0}
.program-list__item:last-child{border-bottom:0;padding-bottom:0}
.program-list__when{display:flex;flex-direction:column;gap:4px;padding-top:2px;border-left:2px solid var(--coral);padding-left:var(--s-3)}
.program-list__day{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--coral);line-height:1}
.program-list__hour{font-family:var(--sans);font-size:18px;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1;font-variant-numeric:tabular-nums}
.program-list__body{display:flex;flex-direction:column;gap:6px;min-width:0}
.program-list__title{font-family:var(--sans);font-size:clamp(17px,1.4vw,20px);font-weight:600;line-height:1.25;color:var(--ink);margin:0;letter-spacing:-.005em}
.program-list__text{font-size:14.5px;line-height:1.55;color:var(--ink-2);margin:0}

.program-photo{margin:0;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-gray);position:sticky;top:calc(var(--hdr-h) + var(--s-4))}
.program-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}

.program-note{margin:var(--s-7) 0 0;text-align:center;color:var(--ink-3);font-size:13px;font-style:italic}

@media (max-width:900px){
  .program-layout{grid-template-columns:1fr;gap:var(--s-6)}
  .program-photo{position:static;order:-1}
  .program-photo img{aspect-ratio:16/10}
}
@media (max-width:639px){
  .program-list__item{grid-template-columns:90px 1fr;gap:var(--s-4)}
  .program-list__hour{font-size:16px}
}

/* --- Categories grid (per categoria espositori) --- */
/* CAT-GRID · stile matrimonio.com: icona sinistra + categoria/gruppo a destra */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s-3)}
.cat-grid__item{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-4) var(--s-5);background:#fff;border:1px solid var(--line);border-radius:var(--radius);transition:border-color .25s var(--ease),background .25s var(--ease);text-decoration:none;color:inherit;min-width:0}
.cat-grid__item:hover{border-color:var(--coral);background:var(--coral-soft)}
.cat-grid__icon{flex-shrink:0;width:46px;height:46px;display:grid;place-items:center;background:var(--coral-soft);border-radius:50%;color:var(--coral);transition:background .25s var(--ease),color .25s var(--ease)}
.cat-grid__item:hover .cat-grid__icon{background:var(--coral);color:#fff}
.cat-grid__icon svg{width:22px;height:22px}
.cat-grid__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.cat-grid__group{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--coral);font-weight:600;line-height:1}
.cat-grid__name{font-family:var(--sans);font-size:16px;font-weight:600;color:var(--ink);line-height:1.3;letter-spacing:-.005em;margin-top:4px}

/* --- Feature block (riquadro evidenziato: madrina, persona o tema) --- */
.feature-block{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--bg-soft);border-radius:var(--radius-lg);overflow:hidden;align-items:stretch}
.feature-block__media{min-height:380px;background-size:cover;background-position:center;background-color:#ddd}
.feature-block__body{padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;justify-content:center}
.feature-block__title{font-family:var(--serif);font-weight:500;font-size:clamp(28px,3vw,40px);line-height:1.1;margin:var(--s-3) 0 var(--s-4);color:var(--ink)}
.feature-block__title em{font-style:italic;color:var(--coral)}
.feature-block__lead{font-family:var(--serif);font-size:clamp(19px,1.9vw,23px);line-height:1.45;color:var(--ink);margin:0 0 var(--s-4);font-weight:500;letter-spacing:-.005em}
.feature-block__text{font-size:16px;line-height:1.7;color:var(--ink-2);margin:0 0 var(--s-5)}
.feature-block__text + .feature-block__text{margin-top:0}
.feature-block__meta{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);font-size:13px;color:var(--ink-3);letter-spacing:.04em}
.feature-block__meta b{color:var(--ink);font-weight:500}
@media (max-width:820px){.feature-block{grid-template-columns:1fr}.feature-block__media{min-height:280px}}

/* --- FAQ collapsible --- */
.faq{max-width:920px;margin:0 auto}

/* Sezione FAQ a 2 colonne (titolo stretto sx, lista FAQ ampia dx) */
@media (min-width:1024px){
  .section--faq-split > .container{display:grid;grid-template-columns:1fr 2fr;gap:var(--s-8);align-items:start}
  .section--faq-split .section-head{margin-bottom:0;position:sticky;top:calc(var(--hdr-h) + var(--s-5))}
  .section--faq-split .faq{max-width:none;margin:0}
}
.faq__item{border-top:1px solid var(--line)}
.faq__item:last-child{border-bottom:1px solid var(--line)}
.faq__item summary{list-style:none;cursor:pointer;padding:var(--s-5) 0;display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);font-family:var(--serif);font-size:clamp(18px,1.6vw,22px);font-weight:500;color:var(--ink);transition:color .2s}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:'';flex-shrink:0;width:14px;height:14px;border-right:1.5px solid var(--ink-2);border-bottom:1.5px solid var(--ink-2);transform:rotate(45deg);transition:transform .3s ease}
.faq__item[open] summary::after{transform:rotate(-135deg)}
.faq__item:hover summary{color:var(--coral)}
.faq__answer{padding:0 0 var(--s-5);font-size:16px;line-height:1.7;color:var(--ink-2);max-width:70ch}
.faq__answer p{margin:0 0 var(--s-3)}

/* --- Info cards (Come arrivare / icona + titolo + testo) --- */
.info-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--s-5)}
.info-cards__item{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-3);transition:border-color .25s var(--ease)}
.info-cards__item:hover{border-color:var(--coral)}
.info-cards__icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--coral-soft);border-radius:50%;color:var(--coral);flex-shrink:0;margin-bottom:var(--s-2)}
.info-cards__icon svg{width:26px;height:26px}
.info-cards__title{font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.2;color:var(--ink);margin:0}
.info-cards__text{font-size:15px;line-height:1.65;color:var(--ink-2);margin:0}
.info-cards__text + .info-cards__text{margin-top:var(--s-2)}
.info-cards__meta{margin-top:auto;padding-top:var(--s-3);font-size:13px;color:var(--ink-3);letter-spacing:.04em}

/* === COME ARRIVARE · sezione con bg foto Palazzina parallax, card che spiccano === */
.come-arrivare{position:relative;color:#fff;padding:var(--section-y) 0;background-size:cover;background-position:center;background-repeat:no-repeat;isolation:isolate}
.come-arrivare--parallax{background-attachment:fixed}
@media (max-width:1024px),(hover:none){
  .come-arrivare--parallax{background-attachment:scroll}
}
.come-arrivare__veil{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(26,26,26,.68) 0%,rgba(26,26,26,.52) 50%,rgba(26,26,26,.72) 100%)}
.come-arrivare__inner{position:relative;z-index:1}
/* Card che risaltano sul bg scuro: ombra soffusa + nessun movimento hover */
.come-arrivare .info-cards__item{box-shadow:0 14px 40px rgba(0,0,0,.22);background:#fff}
.come-arrivare .info-cards__item:hover{border-color:var(--coral)}

/* --- Gallery grid (foto Palazzina / espositore) --- */
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--s-3);grid-auto-rows:160px}
.gallery-grid__item{overflow:hidden;border-radius:var(--radius);background:#eee;cursor:pointer}
.gallery-grid__item img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.gallery-grid__item:hover img{transform:scale(1.05)}
.gallery-grid__item--lg{grid-column:span 8;grid-row:span 2}
.gallery-grid__item--md{grid-column:span 4;grid-row:span 1}
.gallery-grid__item--sm{grid-column:span 4;grid-row:span 1}
.gallery-grid__item--wide{grid-column:span 8;grid-row:span 1}

/* Gallery masonry (CSS columns) · niente buchi, rispetta le proporzioni native */
.gallery-masonry{column-count:3;column-gap:var(--s-3)}
.gallery-masonry__item{break-inside:avoid;margin:0 0 var(--s-3) 0;border-radius:var(--radius);overflow:hidden;background:#eee;cursor:pointer;display:block}
.gallery-masonry__item img{width:100%;height:auto;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.gallery-masonry__item:hover img{transform:scale(1.04)}
@media (max-width:1024px){.gallery-masonry{column-count:2}}
@media (max-width:639px){.gallery-masonry{column-count:1}}
/* Dentro scheda espositore (colonna piu' stretta) → 2 colonne anche da desktop */
.expo-page__main .gallery-masonry{column-count:2}
@media (max-width:639px){.expo-page__main .gallery-masonry{column-count:1}}
@media (max-width:820px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}
  .gallery-grid__item--lg{grid-column:span 2;grid-row:span 2}
  .gallery-grid__item--md,.gallery-grid__item--sm,.gallery-grid__item--wide{grid-column:span 1;grid-row:span 1}
}

/* --- Map embed responsivo --- */
.map-embed{position:relative;width:100%;padding-top:42%;border-radius:var(--radius-lg);overflow:hidden;background:#eee;border:1px solid var(--line)}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width:680px){.map-embed{padding-top:75%}}

/* --- Services list (icona check + label, per scheda espositore) --- */
.services-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s-3) var(--s-5);list-style:none;padding:0;margin:0}
.services-list li{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--line)}
.services-list li:first-child,.services-list li:nth-child(2){border-top:0}
@media (max-width:680px){.services-list li:nth-child(2){border-top:1px solid var(--line)}}
.services-list__check{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--coral-soft);color:var(--coral);display:flex;align-items:center;justify-content:center;margin-top:2px}
.services-list__check svg{width:12px;height:12px}
.services-list__text{font-size:16px;line-height:1.5;color:var(--ink-2)}

/* --- Contact strip (chips contatto orizzontale) --- */
.contact-strip{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.contact-strip a{display:inline-flex;align-items:center;gap:var(--s-2);padding:10px var(--s-4);background:#fff;border:1px solid var(--line);border-radius:999px;font-size:14px;color:var(--ink);transition:border-color .2s,color .2s,transform .2s}
.contact-strip a:hover{border-color:var(--coral);color:var(--coral);transform:translateY(-1px)}
.contact-strip a svg{width:16px;height:16px}

/* --- Espositore hero (variante chiara del page-hero) --- */
.expo-hero{position:relative;background:var(--bg-soft);padding:calc(var(--s-9) + 30px) 0 var(--s-7)}
.expo-hero .breadcrumb{color:var(--ink-3)}
.expo-hero .breadcrumb a:hover{border-bottom-color:var(--coral)}
.expo-hero .breadcrumb__current{color:var(--ink)}
.expo-hero__grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(32px,5vw,80px);align-items:center}
.expo-hero__text{display:flex;flex-direction:column;gap:var(--s-3)}
.expo-hero__category{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--coral);font-weight:500;padding:6px 14px;background:var(--coral-soft);border-radius:999px;width:fit-content;margin-bottom:var(--s-2)}
.expo-hero__name{font-family:var(--serif);font-weight:500;font-size:clamp(36px,4.5vw,62px);line-height:1.05;color:var(--ink);margin:0 0 var(--s-3)}
.expo-hero__claim{font-size:18px;line-height:1.55;color:var(--ink-2);max-width:50ch;margin:0 0 var(--s-4)}
.expo-hero__media{position:relative;aspect-ratio:4/5;border-radius:var(--radius-lg);overflow:hidden;background:#eee}
.expo-hero__media img{width:100%;height:100%;object-fit:cover}
@media (max-width:820px){.expo-hero__grid{grid-template-columns:1fr}.expo-hero__media{aspect-ratio:5/4}}

/* --- Sidebar info (per scheda espositore: contatti + mappa compatti) --- */
.expo-sidebar{display:flex;flex-direction:column;gap:var(--s-4);background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s-6);position:sticky;top:calc(var(--header-h) + var(--s-3));align-self:flex-start}
.expo-sidebar__title{font-family:var(--serif);font-size:22px;font-weight:500;margin:0 0 var(--s-3);color:var(--ink)}
.expo-sidebar__row{display:flex;align-items:flex-start;gap:var(--s-3);font-size:14px;line-height:1.5;color:var(--ink-2);padding:var(--s-2) 0;border-top:1px solid var(--line-soft)}
.expo-sidebar__row:first-of-type{border-top:0}
.expo-sidebar__row svg{flex-shrink:0;width:18px;height:18px;color:var(--coral);margin-top:1px}
.expo-sidebar__row a{color:var(--ink-2);border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
.expo-sidebar__row a:hover{color:var(--coral);border-bottom-color:var(--coral)}
.expo-sidebar__cta{margin-top:var(--s-3)}

/* --- Layout 2 colonne con sidebar (per scheda espositore) --- */
.expo-layout{display:grid;grid-template-columns:1fr 360px;gap:clamp(32px,5vw,72px);align-items:start}
@media (max-width:980px){.expo-layout{grid-template-columns:1fr}.expo-sidebar{position:static}}

/* --- Filtro categorie (pagina /espositori/) --- */
.expo-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--s-6)}
.expo-filter__chip{font-family:var(--sans);font-size:13.5px;line-height:1;padding:9px 15px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink-2);cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}
.expo-filter__chip span{color:var(--ink-3);font-size:12px}
.expo-filter__chip:hover{border-color:var(--coral);color:var(--coral-dark)}
.expo-filter__chip.is-active{background:var(--coral);border-color:var(--coral);color:#fff}
.expo-filter__chip.is-active span{color:rgba(255,255,255,.82)}
.expo-empty{text-align:center;color:var(--ink-3);padding:var(--s-6) 0}

/* --- Expo grid (directory categoria espositori) --- */
.expo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s-5)}
.expo-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;color:inherit;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s}
.expo-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.07);border-color:var(--coral)}
.expo-card__fig{aspect-ratio:4/3;overflow:hidden;margin:0;background:#eee}
.expo-card__fig img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.expo-card:hover .expo-card__fig img{transform:scale(1.05)}
.expo-card__body{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-2);flex:1}
.expo-card__tag{display:inline-block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--coral);background:var(--coral-soft);padding:4px 10px;border-radius:999px;margin-bottom:6px;align-self:flex-start;width:fit-content}
.expo-card__name{font-family:var(--serif);font-size:24px;font-weight:500;line-height:1.15;color:var(--ink);margin:0;letter-spacing:-.01em;transition:color .25s}
.expo-card:hover .expo-card__name{color:var(--coral)}
.expo-card__cta{margin-top:auto;padding-top:var(--s-3);font-size:13px;font-weight:500;color:var(--ink-2);letter-spacing:.04em;transition:color .25s;border-top:1px solid var(--line-soft)}
.expo-card:hover .expo-card__cta{color:var(--coral)}

/* ============================================================
   SCHEDA ESPOSITORE · layout "vetrina" stile matrimonio.com
   2 colonne: main content + sticky sidebar
============================================================ */
.expo-page{padding:var(--s-4) 0 var(--section-y)}
.expo-page__grid{display:grid;grid-template-columns:1fr;gap:var(--s-6);min-width:0}
.expo-page__main{min-width:0}
/* Breadcrumb espositore: padding-top per non finire sotto la navbar fixed */
.expo-breadcrumb-row{padding-top:var(--s-7)}

@media (min-width:1024px){
  .expo-page__grid{grid-template-columns:1fr 360px;gap:var(--s-8);align-items:start}
  /* Sidebar STICKY: segue lo scroll restando visibile finche' c'e' contenuto a sinistra */
  .expo-page__sidebar{align-self:flex-start;position:sticky;top:calc(var(--hdr-h) + var(--s-4))}
}

/* --- HERO SLIDER (carousel draggable, frecce visibili solo on hover, counter, lightbox trigger) --- */
.expo-hero-slider{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16/10;background:var(--bg-gray);margin-bottom:var(--s-5);cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.expo-hero-slider.is-dragging{cursor:grabbing}
.expo-hero-slider__track{display:flex;width:100%;height:100%;transition:transform .7s cubic-bezier(.65,.05,.36,1);will-change:transform}
.expo-hero-slide{flex:0 0 100%;width:100%;height:100%;overflow:hidden}
.expo-hero-slide img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;cursor:zoom-in;-webkit-user-drag:none;user-drag:none;pointer-events:auto}
.expo-hero-slider.is-dragging .expo-hero-slide img{cursor:grabbing}
.expo-hero-slider__cat{position:absolute;top:var(--s-4);left:var(--s-4);background:rgba(255,255,255,.95);backdrop-filter:blur(6px);padding:6px 14px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);z-index:2;pointer-events:none}

/* Frecce: opacità 0 di default, visibili solo on hover (desktop). Su touch sempre visibili. */
.expo-hero-slider__nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.92);border:0;color:var(--ink);display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px);transition:opacity .3s var(--ease),background .25s var(--ease),transform .25s var(--ease);z-index:3;opacity:0}
.expo-hero-slider__nav svg{width:18px;height:18px;pointer-events:none}
.expo-hero-slider__nav:hover{background:var(--ink);color:#fff;transform:translateY(-50%)}
.expo-hero-slider__nav--prev{left:var(--s-3)}
.expo-hero-slider__nav--next{right:var(--s-3)}
.expo-hero-slider:hover .expo-hero-slider__nav,
.expo-hero-slider:focus-within .expo-hero-slider__nav{opacity:1}
@media (hover:none){
  .expo-hero-slider__nav{opacity:1}
}

.expo-hero-slider__counter{position:absolute;bottom:var(--s-4);right:var(--s-4);background:rgba(26,26,26,.75);color:#fff;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;backdrop-filter:blur(4px);z-index:2;letter-spacing:.04em;pointer-events:none}

/* Cursor zoom-in sulle immagini cliccabili della gallery */
.gallery-grid img[data-lightbox]{cursor:zoom-in}

/* --- LIGHTBOX overlay full-screen --- */
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.95);display:none;align-items:center;justify-content:center;animation:lightboxFadeIn .3s ease}
.lightbox.is-open{display:flex}
@keyframes lightboxFadeIn{from{opacity:0}to{opacity:1}}
.lightbox__img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:4px;cursor:zoom-out}
.lightbox__close{position:absolute;top:20px;right:20px;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.1);border:0;color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .25s var(--ease);z-index:2}
.lightbox__close:hover{background:rgba(255,255,255,.25)}
.lightbox__close svg{width:22px;height:22px}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.1);border:0;color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .25s var(--ease);z-index:2}
.lightbox__nav svg{width:22px;height:22px}
.lightbox__nav:hover{background:rgba(255,255,255,.25)}
.lightbox__nav--prev{left:20px}
.lightbox__nav--next{right:20px}
.lightbox__counter{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.85);font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:.08em;background:rgba(255,255,255,.08);padding:6px 14px;border-radius:999px}
@media (max-width:639px){
  .lightbox__nav{width:42px;height:42px}
  .lightbox__nav--prev{left:10px}
  .lightbox__nav--next{right:10px}
  .lightbox__close{top:12px;right:12px;width:42px;height:42px}
}

/* --- MODALE "Contatta espositore" (fallback :target + enhancement .is-open) --- */
.expo-modal{position:fixed;inset:0;z-index:1100;display:none;align-items:center;justify-content:center;padding:var(--s-4)}
.expo-modal:target,.expo-modal.is-open{display:flex;animation:lightboxFadeIn .25s ease}
.expo-modal__backdrop{position:absolute;inset:0;background:rgba(26,26,26,.55);backdrop-filter:blur(2px);cursor:pointer}
.expo-modal__box{position:relative;z-index:2;background:#fff;border-radius:var(--radius-lg);box-shadow:0 24px 60px rgba(26,26,26,.28);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:var(--s-6) var(--s-6) var(--s-6)}
.expo-modal__close{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;background:var(--bg-soft);border:0;color:var(--ink-2);display:grid;place-items:center;cursor:pointer;font-size:26px;line-height:1;text-decoration:none;transition:background .2s var(--ease),color .2s var(--ease)}
.expo-modal__close:hover{background:var(--coral-soft);color:var(--coral)}
.expo-modal__box .h-display{font-size:clamp(24px,3.2vw,32px)}
.expo-modal__box .form{margin-top:var(--s-2)}
@media (max-width:639px){
  .expo-modal{padding:0;align-items:flex-end}
  .expo-modal__box{max-width:none;max-height:92vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--s-5) var(--s-4) calc(var(--s-5) + env(safe-area-inset-bottom))}
}

/* --- TAB NAV in-page (sticky sotto navbar) --- */
.expo-tabs{display:flex;gap:var(--s-5);padding:0;border-bottom:1px solid var(--line);margin-bottom:var(--s-6);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.expo-tabs::-webkit-scrollbar{display:none}
.expo-tabs a{flex-shrink:0;padding:var(--s-3) 0;border:0;background:none;font-size:14px;font-weight:500;color:var(--ink-2);text-decoration:none;transition:color .2s var(--ease),border-color .2s var(--ease);white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}
.expo-tabs a:hover{color:var(--coral);border-bottom-color:var(--coral)}
.expo-tabs a.is-active{color:var(--coral);border-bottom-color:var(--coral)}

/* --- SECTION BLOCKS interne --- */
.expo-section{margin-bottom:var(--s-8)}
.expo-section__name{font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.4vw,42px);line-height:1.05;color:var(--ink);margin:0 0 var(--s-3);letter-spacing:-.012em}
.expo-section__claim{font-size:21px;line-height:1.6;color:var(--ink);max-width:60ch;margin:0;font-weight:400}
@media (max-width:639px){.expo-section__claim{font-size:18px;line-height:1.55}}
.expo-section__title{font-family:var(--sans);font-weight:600;font-size:clamp(20px,2vw,24px);color:var(--ink);margin:0 0 var(--s-4);letter-spacing:-.005em}

/* --- SIDEBAR INFO CARD (sticky aside) --- */
.expo-info-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s-5);box-shadow:0 1px 3px rgba(0,0,0,.04);min-width:0;overflow:hidden}
.expo-info-card__cat{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--coral);background:var(--coral-soft);padding:5px 12px;border-radius:999px;margin-bottom:var(--s-3);width:fit-content}
.expo-info-card__name{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.1;margin:0 0 8px;color:var(--ink);letter-spacing:-.01em;overflow-wrap:anywhere}
.expo-info-card__tagline{font-size:13px;color:var(--ink-3);margin:0 0 var(--s-4);font-style:italic;line-height:1.4}
.expo-info-card__location{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:14px;margin:0 0 var(--s-4);padding-bottom:var(--s-4);border-bottom:1px solid var(--line-soft)}
.expo-info-card__location svg{width:18px;height:18px;color:var(--coral);flex-shrink:0}
.expo-info-card__quick{list-style:none;padding:0;margin:0 0 var(--s-5);display:flex;flex-direction:column;gap:var(--s-4)}
.expo-info-card__quick li{display:flex;gap:12px;font-size:14px;color:var(--ink-2);line-height:1.45;min-width:0}
.expo-info-card__quick li svg{width:20px;height:20px;flex-shrink:0;color:var(--coral);margin-top:1px}
.expo-info-card__quick li > span,
.expo-info-card__quick li > a{min-width:0;overflow-wrap:anywhere;word-break:break-word;flex:1 1 auto}
.expo-info-card__quick a{color:var(--ink);text-decoration:none;font-weight:500}
.expo-info-card__quick a:hover{color:var(--coral)}
.expo-info-card .btn{margin-top:8px}
.expo-info-card .btn:first-of-type{margin-top:0}
.expo-info-card__meta{font-size:12px;color:var(--ink-3);text-align:center;margin:var(--s-3) 0 0;letter-spacing:.04em}

/* Mobile summary (sotto la hero) + sticky-bar mobile · solo viewport <640px */
.expo-mobile-summary{display:none}
.expo-mobile-bar{display:none}
@media (max-width:639px){
  /* Breadcrumb nascosta su mobile: l'hero va attaccata sotto la navbar */
  .expo-breadcrumb-row{display:none}

  /* Expo page: niente padding-top su mobile cosi' la hero tocca la navbar.
     Overflow hidden SOLO su mobile (su desktop romperebbe position:sticky della sidebar) */
  .expo-page{padding-top:0;overflow:hidden}
  .expo-page > .container{padding-left:0;padding-right:0}
  .expo-page__main{padding:0}

  /* Hero slider mobile: edge-to-edge, 4/5 (verticale), no border-radius, no margin-bottom */
  .expo-hero-slider{border-radius:0;aspect-ratio:4/5;margin-bottom:0}
  /* Su mobile: niente frecce (invadenti), l'autoplay le sostituisce */
  .expo-hero-slider__nav{display:none}

  /* I contenuti dopo la hero rientrano nel padding del container */
  .expo-mobile-summary,
  .expo-page__main > .expo-tabs,
  .expo-page__main > .expo-section{padding-left:var(--s-4);padding-right:var(--s-4)}

  /* Summary mobile · categoria + nome + tagline + location */
  .expo-mobile-summary{display:block;padding-top:var(--s-5);padding-bottom:var(--s-3)}
  .expo-mobile-summary__cat{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--coral);background:var(--coral-soft);padding:5px 12px;border-radius:999px;margin-bottom:var(--s-3);width:fit-content}
  .expo-mobile-summary__name{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.08;color:var(--ink);margin:0 0 var(--s-2);letter-spacing:-.01em;overflow-wrap:anywhere}
  .expo-mobile-summary__tagline{font-size:13px;color:var(--ink-3);margin:0 0 var(--s-3);font-style:italic;line-height:1.4}
  .expo-mobile-summary__location{display:flex;align-items:flex-start;gap:8px;color:var(--ink-2);font-size:14px;line-height:1.45;padding-top:var(--s-3);border-top:1px solid var(--line-soft)}
  .expo-mobile-summary__location svg{width:18px;height:18px;color:var(--coral);flex-shrink:0;margin-top:2px}

  /* Nasconde il duplicato H1 nella sezione informazioni (gia' in summary) */
  #informazioni > .expo-section__name{display:none}

  /* Sticky-bar mobile · 2 CTA in basso (Incontralo + Contatta) */
  .expo-mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;background:rgba(255,255,255,.98);backdrop-filter:blur(14px);border-top:1px solid var(--line-soft);padding:10px var(--s-4) calc(10px + env(safe-area-inset-bottom));gap:10px;box-shadow:0 -6px 24px rgba(26,26,26,.08)}
  .expo-mobile-bar__btn{flex:1;padding:13px 14px;font-size:12.5px;letter-spacing:.04em}

  /* Padding-bottom su body cosi' nessun contenuto resta nascosto sotto la sticky-bar */
  body:has(.expo-mobile-bar){padding-bottom:calc(72px + env(safe-area-inset-bottom))}

  /* Sidebar in fondo: torna ad avere padding orizzontale (il container ora e' 0) */
  .expo-page__sidebar{padding:0 var(--s-4)}
}

/* --- PUNTI DI FORZA (4 card icone) --- */
.forte-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-4)}
.forte-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:var(--s-4);text-align:left}
.forte-card__icon{width:44px;height:44px;display:grid;place-items:center;background:var(--coral-soft);border-radius:50%;margin-bottom:var(--s-3);color:var(--coral)}
.forte-card__icon svg{width:22px;height:22px}
.forte-card__title{font-family:var(--sans);font-size:15px;font-weight:600;color:var(--ink);margin:0 0 4px;line-height:1.2}
.forte-card__desc{font-size:13px;color:var(--ink-3);margin:0;line-height:1.45}
@media (min-width:768px){.forte-grid{grid-template-columns:repeat(4,1fr)}}

/* --- SERVIZI OFFERTI (2 col con check) --- */
.servizi-grid{display:grid;grid-template-columns:1fr;gap:12px;list-style:none;padding:0;margin:0}
.servizi-grid li{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;color:var(--ink-2);line-height:1.45}
.servizi-grid li svg{width:18px;height:18px;flex-shrink:0;color:var(--coral);margin-top:2px}
@media (min-width:640px){.servizi-grid{grid-template-columns:repeat(2,1fr);gap:14px var(--s-5)}}

/* --- ORARI APERTURA (tabella) --- */
.orari-table{width:100%;border-collapse:collapse;border-top:1px solid var(--line-soft);font-size:14px}
.orari-table td{padding:14px 0;border-bottom:1px solid var(--line-soft);vertical-align:top}
.orari-table td:first-child{font-weight:600;color:var(--ink);width:40%;padding-right:var(--s-3)}
.orari-table td:last-child{color:var(--ink-2)}
.orari-table__note{display:block;font-size:12px;color:var(--ink-3);margin-top:3px;font-style:italic}
.orari-note{font-size:13px;color:var(--ink-3);margin:var(--s-3) 0 0;font-style:italic}

/* --- MAP CARD sotto la mappa --- */
.map-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:var(--s-4);display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);margin-top:var(--s-3);flex-wrap:wrap}
.map-card > div{min-width:0;overflow-wrap:anywhere;word-break:break-word;flex:1 1 auto}
.map-card strong{font-family:var(--sans);font-weight:600;color:var(--ink);font-size:15px}
.map-card__addr{font-size:13px;color:var(--ink-3);line-height:1.5}

/* ============================================================
   MAGAZINE · pagina articolo (news detail)
   Layout coerente: tutto centrato in una colonna 760px (hero, cover, body, share)
============================================================ */
.article-hero{padding:var(--s-6) 0 var(--s-4)}
.article-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:13px;color:var(--ink-3);margin:0 auto var(--s-4);max-width:760px;letter-spacing:.02em}
.article-meta__sep{color:var(--line);user-select:none}
.article-meta .kicker{margin:0}
.article-meta time{color:var(--ink-2)}
.article-hero__title{max-width:760px;margin:0 auto;font-size:clamp(34px,5vw,58px);line-height:1.05;letter-spacing:-.014em}

.article-cover{margin:var(--s-6) 0 var(--s-5)}
.article-cover img{max-width:760px;width:100%;height:auto;margin:0 auto;border-radius:var(--radius-lg);aspect-ratio:16/9;object-fit:cover;display:block;background:var(--bg-gray)}

/* Deck/intro · paragrafo serif sotto la cover, fa da "subtitle editoriale" */
.article-deck{font-family:var(--serif);font-size:clamp(19px,1.9vw,23px);line-height:1.45;color:var(--ink);max-width:760px;margin:0 auto var(--s-6);font-weight:500;letter-spacing:-.005em}

.article-body{padding:var(--s-3) 0 var(--s-7)}
.article-body .prose{max-width:760px;margin:0 auto}

.article-share .container{max-width:760px}

.article-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--line-soft)}
.article-tag{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);background:var(--bg-soft);padding:6px 12px;border-radius:999px}

.article-share{padding:var(--s-5) 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin-bottom:var(--s-7);background:#fff}
.article-share .container{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}
.article-share__label{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink)}
.article-share__links{display:flex;gap:8px;flex-wrap:wrap}
.share-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--ink-2);background:transparent;cursor:pointer;text-decoration:none;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
.share-btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.share-btn svg{width:16px;height:16px}
.share-btn.is-copied{background:var(--coral);border-color:var(--coral);color:#fff}

/* --- CTA banner (full-width coral) per fine pagine "scheda" --- */
.cta-banner{background:var(--coral);color:#fff;padding:var(--section-y) 0;text-align:center}
.cta-banner .kicker{color:rgba(255,255,255,.85);margin-bottom:var(--s-3)}
.cta-banner .h-display{color:#fff;margin:0 0 var(--s-4)}
.cta-banner .h-display em{color:#fff;font-style:italic}
.cta-banner p{font-size:17px;line-height:1.6;max-width:600px;margin:0 auto var(--s-5);color:rgba(255,255,255,.92)}
.cta-banner .btn--outline-light{background:rgba(255,255,255,.1)}
.cta-banner .btn--outline-light:hover{background:#fff;color:var(--coral)}

/* --- Container row (sezione testo lungo) --- */
.prose{max-width:760px;margin:0 auto}
.prose p{font-size:17px;line-height:1.75;color:var(--ink-2);margin:0 0 var(--s-5)}
.prose p.lead{font-family:var(--serif);font-size:clamp(19px,1.9vw,23px);line-height:1.5;color:var(--ink);margin-bottom:var(--s-6);font-weight:500;letter-spacing:-.005em}
.prose h3{font-family:var(--serif);font-size:clamp(24px,2vw,28px);font-weight:500;margin:var(--s-7) 0 var(--s-4);color:var(--ink)}
.prose ul{margin:0 0 var(--s-5);padding-left:var(--s-5)}
.prose ul li{font-size:17px;line-height:1.7;color:var(--ink-2);margin-bottom:var(--s-2);list-style:disc}
.prose strong{color:var(--ink);font-weight:600}

/* --- FORM (registrazione, esporre, contatti) --- */
.form-intro{max-width:680px;margin:0 0 var(--s-6)}

/* --- "I Plus" pagina Esporre --- */
.plus-block{margin-top:var(--s-7)}
.plus-block__title{font-family:var(--serif);font-size:24px;font-weight:500;margin:0 0 var(--s-5)}
.plus-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}
@media (min-width:768px){.plus-list{grid-template-columns:1fr 1fr;gap:var(--s-3) var(--s-6)}}
.plus-list li{position:relative;padding-left:30px;color:var(--ink-2);line-height:1.55}
.plus-list li::before{content:"";position:absolute;left:0;top:2px;width:19px;height:19px;border-radius:50%;background-color:var(--coral-soft);
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d85850' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;background-size:11px}
.plus-cta{text-align:center;margin-top:var(--s-7)}
.plus-cta__claim{font-family:var(--serif);font-style:italic;font-size:23px;color:var(--ink);margin:0 0 var(--s-4)}
.form{display:grid;gap:var(--s-4);max-width:760px}
.form__row{display:grid;gap:var(--s-4);grid-template-columns:1fr}
@media (min-width:640px){.form__row--2{grid-template-columns:1fr 1fr}.form__row--3{grid-template-columns:2fr 1fr 1.5fr}}
.form__group{display:flex;flex-direction:column;gap:6px}
.form__group label{font-size:13px;font-weight:500;color:var(--ink-2);letter-spacing:.02em}
.form__group label .req{color:var(--coral)}
@media (min-width:640px){
  /* nelle righe a piu' colonne, le etichette su 2 righe non devono disallineare i campi:
     altezza minima uniforme + testo ancorato in basso -> input allineati */
  .form__row .form__group > label{min-height:32px;display:flex;align-items:flex-end;flex-wrap:wrap;gap:0 5px}
}
.form__group input,
.form__group select,
.form__group textarea{
  font-family:var(--sans);font-size:15px;color:var(--ink);background:#fff;
  border:1.5px solid var(--line);border-radius:var(--radius);padding:12px 14px;width:100%;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease)
}
.form__group textarea{min-height:120px;resize:vertical}
/* select: freccia custom + niente sovrapposizione testo/freccia (resa coerente cross-browser) */
.form__group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding-right:40px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a6864' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px}
.form__group input:focus,
.form__group select:focus,
.form__group textarea:focus{outline:none;border-color:var(--coral);box-shadow:0 0 0 3px var(--coral-soft)}
.form__group--error input,
.form__group--error select,
.form__group--error textarea{border-color:var(--coral-dark)}
.form__err{font-size:12.5px;color:var(--coral-dark)}
.form__check{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;color:var(--ink-2)}
.form__check input{width:18px;height:18px;flex-shrink:0;margin-top:2px;accent-color:var(--coral)}
.form__check a{color:var(--coral);border-bottom:1px solid var(--coral)}
.form__actions{margin-top:var(--s-2)}
.form__note{font-size:12.5px;color:var(--ink-3);margin-top:var(--s-2)}
/* honeypot: invisibile agli umani */
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ============ REGISTRAZIONE · layout 2 colonne (testo / form box / banner) ============ */
.reg-layout{display:grid;grid-template-columns:1fr;gap:var(--s-7);align-items:start}
.reg-layout__intro .section-head{margin-bottom:var(--s-5)}
.reg-layout__intro .form-intro{max-width:none;margin:0 0 var(--s-4)}
.reg-layout__intro .form-intro:last-of-type{margin-bottom:0}
.reg-layout__banner{margin:0;border-radius:8px;overflow:hidden;background:var(--bg-gray);max-width:320px;aspect-ratio:1/1;display:block}
.reg-layout__banner img{width:100%;height:100%;object-fit:cover;display:block}

/* Form box rosa tenue + bordo coral di accento */
.reg-layout__form{background:var(--coral-soft);padding:var(--s-6);border-radius:12px;border:1.5px solid var(--coral)}
.reg-layout__form .form{max-width:none;display:grid;gap:var(--s-4)}
.reg-layout__form .form-msg{margin-bottom:var(--s-5)}

/* Sfilata e consensi separati da divider sottile */
.form__divider{height:1px;background:var(--line);margin:var(--s-3) 0 var(--s-2);border:0}
.form__sfilata{display:flex;flex-direction:column;gap:var(--s-3)}
.form__sfilata .kicker{margin:0}

/* Bottone submit più presente */
.reg-layout__form .form__actions{margin-top:var(--s-3)}
.reg-layout__form .form__note{text-align:center}

/* Desktop: 2 colonne, banner in col sx riga 2, form col dx full height */
@media (min-width:1024px){
  .reg-layout{grid-template-columns:0.9fr 1.1fr;grid-template-rows:auto 1fr;gap:var(--s-7) var(--s-9)}
  .reg-layout__intro{grid-column:1;grid-row:1}
  .reg-layout__banner{grid-column:1;grid-row:2}
  .reg-layout__form{grid-column:2;grid-row:1 / -1;padding:var(--s-7)}
}

/* Mobile: stack naturale (intro → form → banner), padding ridotto */
@media (max-width:639px){
  .reg-layout__form{padding:var(--s-5)}
  .reg-layout__banner{max-width:none}
}

/* ============ ESPORRE · layout 2 colonne (plus a sx / form box rosa a dx) ============ */
.esporre-layout{display:grid;grid-template-columns:1fr;gap:var(--s-7);align-items:start;margin-top:var(--s-7)}
.esporre-layout__plus .plus-block__title{font-family:var(--serif);font-size:clamp(22px,2vw,28px);font-weight:500;color:var(--ink);margin:0 0 var(--s-5)}
.esporre-layout__plus .plus-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--s-4);grid-template-columns:1fr}
@media (min-width:768px){.esporre-layout__plus .plus-list{grid-template-columns:1fr}}
.esporre-layout__plus .plus-list li{font-size:15px;line-height:1.6;color:var(--ink-2);padding-left:30px;position:relative}
.esporre-layout__plus .plus-list li::before{content:"";position:absolute;left:0;top:3px;width:18px;height:18px;border-radius:50%;background:var(--coral-soft) url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 10.5l3 3 7-7' stroke='%23D40A54' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / 14px}

/* Form box rosa tenue + bordo coral */
.esporre-layout__form{background:var(--coral-soft);padding:var(--s-6);border-radius:12px;border:1.5px solid var(--coral)}
.esporre-layout__form .section-head{margin-bottom:var(--s-5)}
.esporre-layout__form .form{max-width:none;display:grid;gap:var(--s-4)}
.esporre-layout__form .form-msg{margin-bottom:var(--s-5)}
.esporre-layout__form .form__actions{margin-top:var(--s-3)}
.esporre-layout__form .form__note{text-align:center}

/* Desktop: 2 colonne — plus 0.9fr / form 1.1fr */
@media (min-width:1024px){
  .esporre-layout{grid-template-columns:0.9fr 1.1fr;gap:var(--s-9);margin-top:var(--s-8)}
  .esporre-layout__form{padding:var(--s-7)}
}
/* Mobile: padding ridotto */
@media (max-width:639px){
  .esporre-layout__form{padding:var(--s-5)}
}

/* Form: intestazione, messaggi e campi nella STESSA colonna centrata,
   cosi' il titolo e allineato esattamente al bordo sinistro del form.
   Niente :has() per massima compatibilita': si usa la classe .section--form. */
.form{max-width:720px}
@media (min-width:640px){
  .section--form .section-head,
  .section--form .form,
  .section--form .form-msg,
  .section--form .form-intro,
  .section--form .thanks{max-width:720px;margin-left:auto;margin-right:auto}
}

/* messaggio esito form */
.form-msg{padding:var(--s-5);border-radius:var(--radius-lg);margin-bottom:var(--s-5);font-size:15px;line-height:1.6}
.form-msg--ok{background:#eef7ee;border:1px solid #cfe6cf;color:#1f6b34}
.form-msg--err{background:var(--coral-soft);border:1px solid #f3c9c5;color:var(--coral-dark)}
.form-msg__title{display:block;font-family:var(--serif);font-size:22px;font-weight:500;margin-bottom:6px}

/* grazie box centrato */
.thanks{max-width:620px;margin:0 auto;text-align:center;padding:var(--s-7) 0}
.thanks__icon{width:64px;height:64px;border-radius:50%;background:var(--coral-soft);color:var(--coral);display:grid;place-items:center;margin:0 auto var(--s-5)}
.thanks__icon svg{width:30px;height:30px}

/* ==========================================================
   SPAZI SPONSOR · banner premium 970×250 (Billboard) + rotator 300×250 (MPU)
   I placeholder visivi sono inline: nessuna immagine richiesta in demo.
========================================================== */

/* --- Billboard 970×250 (premium, sopra Partners) --- */
.ad-billboard{background:var(--bg-soft);padding:var(--s-7) 0;border-top:1px solid var(--line-soft)}
.ad-billboard .container{display:flex;flex-direction:column;align-items:center;gap:var(--s-3)}
.ad-billboard__label{font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3)}
.ad-billboard__slot{display:block;width:100%;max-width:970px;aspect-ratio:970/250;overflow:hidden;border-radius:4px;background:#fff;border:1px solid var(--line-soft);transition:border-color .25s var(--ease),transform .25s var(--ease);text-decoration:none}
.ad-billboard__slot:hover{border-color:var(--coral);transform:translateY(-2px)}
.ad-billboard__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;background:repeating-linear-gradient(45deg,#fafafa 0,#fafafa 12px,#f0eded 12px,#f0eded 24px);color:var(--ink-3);gap:6px;padding:var(--s-3)}
.ad-billboard__placeholder strong{font-family:var(--sans);font-size:clamp(16px,2vw,22px);font-weight:600;letter-spacing:.18em;color:var(--ink);text-transform:uppercase}
.ad-billboard__placeholder small{font-family:var(--sans);font-size:12px;letter-spacing:.12em;color:var(--ink-3)}
/* Mobile: cambia aspect ratio a 320:100 (mobile leaderboard) */
@media (max-width:639px){
  .ad-billboard{padding:var(--s-6) 0}
  .ad-billboard__slot{aspect-ratio:320/100;max-width:320px}
  .ad-billboard__placeholder strong{font-size:13px;letter-spacing:.12em}
  .ad-billboard__placeholder small{font-size:10px}
}

/* --- Layout news + rotator affiancato (mobile stack, desktop 2 colonne) --- */
.news-layout{display:grid;grid-template-columns:1fr;gap:var(--s-7);align-items:start}
.news-layout--full{grid-template-columns:1fr}
.news-layout__main{min-width:0}
.news-aside{display:flex;flex-direction:column;gap:var(--s-5);align-items:center}
@media (min-width:1024px){
  /* Desktop: news 2/3 a sinistra + colonna sponsor 1/3 a destra */
  .news-layout{grid-template-columns:2fr 1fr;gap:var(--s-8)}
  .news-section .news-grid{grid-template-columns:repeat(2,1fr)}
  /* Senza sponsor: news a tutta larghezza, griglia a 4 colonne */
  .news-layout--full{grid-template-columns:1fr}
  .news-section .news-layout--full .news-grid{grid-template-columns:repeat(4,1fr)}
}

/* --- Rotator banner sponsor (MPU 300×250 + Half-page 300×600) --- */
.ad-rotator{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);width:100%}
.ad-rotator--tall .ad-rotator__viewport{aspect-ratio:300/600}
.ad-rotator__label{font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3)}
.ad-rotator__viewport{position:relative;width:100%;max-width:300px;aspect-ratio:300/250;border:1px solid var(--line-soft);border-radius:4px;background:#fff;overflow:hidden}
.ad-rotator__slot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-decoration:none;opacity:0;visibility:hidden;transition:opacity .6s var(--ease),visibility .6s var(--ease)}
.ad-rotator__slot.is-active{opacity:1;visibility:visible}
.ad-rotator__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;color:var(--ink-3);gap:6px;padding:var(--s-3)}
.ad-rotator__placeholder strong{font-family:var(--sans);font-size:18px;font-weight:600;letter-spacing:.18em;color:var(--ink);text-transform:uppercase}
.ad-rotator__placeholder small{font-family:var(--sans);font-size:12px;letter-spacing:.12em;color:var(--ink-3)}
/* Pattern colorato distintivo per ogni sponsor placeholder (3 varianti) */
.ad-rotator__placeholder--a{background:repeating-linear-gradient(45deg,#fafafa 0,#fafafa 12px,#f0eded 12px,#f0eded 24px)}
.ad-rotator__placeholder--b{background:repeating-linear-gradient(-45deg,#fdf3f3 0,#fdf3f3 12px,#f6e0e0 12px,#f6e0e0 24px)}
.ad-rotator__placeholder--c{background:repeating-linear-gradient(45deg,#f6f6f9 0,#f6f6f9 12px,#e9e9ee 12px,#e9e9ee 24px)}
