/* =========================================================================
   GEPI Expo 2026 — production stylesheet
   Implemented from the Claude Design handoff (colors_and_type.css = source of truth).
   Gotham self-hosted · Roboto Slab (Google) for institutional/italic accents.
   ========================================================================= */

@import url("https://fonts.googleapis.com/css2?family=Roboto+Slab:ital,wght@0,400;0,600;1,400;1,600&display=swap");

/* ---------- GOTHAM (official brand font, self-hosted) ---------- */
@font-face { font-family:"Gotham"; src:url("../fonts/Gotham_Thin.woff2") format("woff2");        font-weight:100; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../fonts/Gotham_Extra_Light.woff2") format("woff2"); font-weight:200; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../fonts/Gotham_Light.woff2") format("woff2");       font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../fonts/Gotham_Book.woff2") format("woff2");        font-weight:350; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../fonts/Gotham_Regular.woff2") format("woff2");     font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../fonts/Gotham_Italic.woff2") format("woff2");      font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../fonts/Gotham_Medium.woff2") format("woff2");      font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../fonts/Gotham_Bold.woff2") format("woff2");        font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../fonts/Gotham_Bold_Italic.woff2") format("woff2"); font-weight:700; font-style:italic; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../fonts/Gotham_Black.woff2") format("woff2");       font-weight:800; font-style:normal; font-display:swap; }
@font-face { font-family:"Gotham"; src:url("../fonts/Gotham_Ultra.woff2") format("woff2");       font-weight:900; font-style:normal; font-display:swap; }

:root{
  /* Brand palette — exact hex from gepiexpo.it */
  --gepi-red:#E20614; --gepi-red-ink:#B20510;
  --gepi-gold:#FAB800; --gepi-gold-ink:#D89F00;
  --gepi-peach:#FFBC7D; --gepi-peach-50:#FFE4CC;
  --gepi-black:#000000; --gepi-white:#FFFFFF;
  --gepi-ink:#1A1614; --gepi-dark:#0A0A0A;
  --gepi-slate-80:#3A322E; --gepi-slate-60:#6B615B; --gepi-slate-40:#A8A09A; --gepi-slate-20:#E4DED8;
  --gepi-cream:#FBF7F1; --gepi-sand:#F4EDE3;
  --line:#E4DED8;

  /* Semantic */
  --fg-1:var(--gepi-ink); --fg-2:var(--gepi-slate-60); --fg-3:var(--gepi-slate-40);
  --bg-page:var(--gepi-cream); --bg-card:var(--gepi-white);

  /* Type */
  --font-display:"Gotham","Helvetica Neue",Arial,sans-serif;
  --font-body:"Gotham","Helvetica Neue",Arial,sans-serif;
  --font-serif:"Roboto Slab",Georgia,"Times New Roman",serif;
  --fw-regular:400; --fw-medium:500; --fw-bold:700; --fw-black:800; --fw-ultra:900;

  /* Spacing / radius / shadow / motion */
  --wrap:1280px;
  --sp-section:100px; --sp-gutter:40px;
  --radius-sm:8px; --radius-md:12px; --radius-lg:20px; --radius-pill:999px;
  --shadow-md:0 6px 18px rgba(26,22,20,.10);
  --shadow-lg:0 16px 40px rgba(26,22,20,.14);
  --shadow-xl:0 24px 64px rgba(26,22,20,.16);
  --shadow-red:0 6px 20px rgba(226,6,20,.30);
  --shadow-gold:0 6px 20px rgba(250,184,0,.30);
  --ease:cubic-bezier(.22,1,.36,1);
  --dur:200ms;
}

/* ---------- reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--gepi-white); color:var(--fg-1);
  font-family:var(--font-body); font-size:18px; line-height:1.5;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img,svg,video{ display:block; max-width:100%; }
button{ cursor:pointer; font-family:inherit; }
a{ color:var(--gepi-red); text-decoration:none; }
a:hover{ color:var(--gepi-red-ink); }
::selection{ background:var(--gepi-gold); color:var(--gepi-black); }

/* ---------- layout ---------- */
.wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:var(--sp-gutter); }
.section{ padding:var(--sp-section) var(--sp-gutter); }
.section--cream{ background:var(--gepi-cream); }
.section--white{ background:var(--gepi-white); }
.section--sand{ background:var(--gepi-sand); }
.section--red{ background:var(--gepi-red); color:var(--gepi-white); }
.section--gold{ background:var(--gepi-gold); color:var(--gepi-ink); }
.section--dark{ background:var(--gepi-dark); color:var(--gepi-white); }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:96px; align-items:center; }
.grid-2 > *{ min-width:0; }

/* ---------- typography ---------- */
.eyebrow-row{ display:flex; align-items:center; gap:10px; margin-bottom:20px; }
.eyebrow-row .bar{ width:28px; height:3px; border-radius:2px; background:var(--gepi-red); flex:none; }
.eyebrow{ font-family:var(--font-display); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gepi-red); }
.eyebrow--gold{ color:var(--gepi-gold); } .eyebrow--gold .bar{ background:var(--gepi-gold); }
.eyebrow--white{ color:var(--gepi-white); } .eyebrow--white .bar{ background:var(--gepi-white); }

.display{ font-family:var(--font-display); font-weight:900; line-height:1.0; letter-spacing:-.025em; margin:0; text-wrap:balance; }
.h-hero{ font-size:clamp(42px,5.2vw,80px); }
.h-1{ font-size:clamp(36px,4.4vw,64px); }
.h-2{ font-size:clamp(32px,4vw,56px); }
.h-3{ font-size:clamp(26px,3vw,40px); }
.lede{ font-size:clamp(17px,1.6vw,20px); line-height:1.6; color:var(--fg-2); margin:0; }
.serif-italic{ font-family:var(--font-serif); font-style:italic; }
.text-red{ color:var(--gepi-red); } .text-gold{ color:var(--gepi-gold); }
.divider{ font-family:var(--font-display); font-weight:700; letter-spacing:.2em; text-transform:uppercase; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-display); font-size:14px; font-weight:700; letter-spacing:.04em;
  min-height:48px; padding:0 28px; border:0; border-radius:var(--radius-sm);
  transition:transform 150ms var(--ease), box-shadow 150ms var(--ease), background var(--dur);
  text-align:center; white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0) scale(.985); }
.btn--primary{ background:var(--gepi-red); color:var(--gepi-white); box-shadow:var(--shadow-red); }
.btn--primary:hover{ color:#fff; background:var(--gepi-red-ink); }
.btn--gold{ background:var(--gepi-gold); color:var(--gepi-black); box-shadow:var(--shadow-gold); }
.btn--gold:hover{ background:var(--gepi-gold-ink); }
.btn--secondary{ background:transparent; color:var(--gepi-ink); border:2px solid var(--gepi-ink); }
.btn--secondary:hover{ background:var(--gepi-ink); color:#fff; }
.btn--ghost{ background:transparent; color:var(--gepi-red); border:2px solid var(--gepi-red); }
.btn--ghost:hover{ background:var(--gepi-red); color:#fff; }
.btn--ghost-light{ background:transparent; color:#fff; border:2px solid rgba(255,255,255,.4); }
.btn--ghost-light:hover{ background:rgba(255,255,255,.12); color:#fff; }
.btn-row{ display:flex; gap:14px; flex-wrap:wrap; }

/* ---------- header / nav ---------- */
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--gepi-red); color:#fff; padding:10px 16px; border-radius:0 0 8px 0; z-index:500; }
.skip-link:focus{ left:0; color:#fff; }
.site-header{ position:sticky; top:0; z-index:200; background:rgba(255,255,255,.98); border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.nav{ max-width:1440px; margin-inline:auto; padding:0 40px; height:104px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.nav__logo img{ height:92px; width:auto; }
.nav__menu{ display:flex; align-items:center; gap:2px; list-style:none; margin:0; padding:0; }
.nav__item{ position:relative; }
.nav__link{ display:inline-flex; align-items:center; gap:5px; font-family:var(--font-display); font-size:17px; font-weight:500; letter-spacing:.01em; padding:10px 16px; background:transparent; color:var(--gepi-ink); border:0; border-radius:6px; white-space:nowrap; }
.nav__link:hover,.nav__item:hover > .nav__link{ background:#FEF0E6; color:var(--gepi-red); }
.nav__link[aria-current="page"]{ background:#FEF0E6; color:var(--gepi-red); }
.nav__caret{ font-size:10px; opacity:.5; }
.nav__sub{ position:absolute; top:100%; left:0; min-width:220px; background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,.10); padding:6px 0; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity 150ms var(--ease),transform 150ms var(--ease); list-style:none; margin:0; }
.nav__item:hover .nav__sub, .nav__item:focus-within .nav__sub{ opacity:1; visibility:visible; transform:translateY(0); }
.nav__sub a{ display:block; font-family:var(--font-display); font-size:13px; font-weight:500; color:var(--gepi-ink); padding:10px 18px; }
.nav__sub a:hover{ background:var(--gepi-cream); color:var(--gepi-ink); }
.nav__cta{ display:flex; gap:10px; flex:none; }
.nav__cta .btn{ font-size:15px; min-height:50px; padding:0 24px; }
.nav__toggle{ display:none; width:46px; height:46px; border:1px solid var(--line); border-radius:8px; background:#fff; align-items:center; justify-content:center; }
.nav__toggle span,.nav__toggle span::before,.nav__toggle span::after{ content:""; display:block; width:20px; height:2px; background:var(--gepi-ink); transition:transform 200ms var(--ease),opacity 200ms; }
.nav__toggle span::before{ transform:translateY(-6px); } .nav__toggle span::after{ transform:translateY(4px); }
body.nav-open .nav__toggle span{ background:transparent; }
body.nav-open .nav__toggle span::before{ transform:rotate(45deg); }
body.nav-open .nav__toggle span::after{ transform:rotate(-45deg) translateY(-2px); }

/* ---------- hero shared ---------- */
.hero{ position:relative; overflow:hidden; }
.hero__bg{ position:absolute; inset:0; background-size:cover; background-position:center; }
.hero__overlay{ position:absolute; inset:0; }
.hero__inner{ position:relative; z-index:2; }
.ghost-word{ position:absolute; right:-40px; top:50%; transform:translateY(-50%); font-family:var(--font-display); font-weight:900; line-height:1; color:rgba(255,255,255,.05); pointer-events:none; user-select:none; }

/* ---------- area cards (homepage grid) ---------- */
.areas-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.area-card{ border-radius:16px; overflow:hidden; display:flex; flex-direction:column; color:inherit; transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.area-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.area-card__img{ height:240px; background-size:cover; background-position:center top; flex:none; }
.area-card__body{ padding:24px 24px 28px; display:flex; flex-direction:column; gap:10px; flex:1; }
.area-card__name{ font-family:var(--font-display); font-size:22px; font-weight:800; line-height:1.05; letter-spacing:-.01em; }
.area-card__desc{ font-family:var(--font-body); font-size:14px; line-height:1.55; opacity:.85; }
.area-card__more{ margin-top:auto; padding-top:16px; font-family:var(--font-display); font-size:12px; font-weight:700; letter-spacing:.10em; text-transform:uppercase; border-top:1px solid rgba(0,0,0,.10); }
.area-card--red{ background:var(--gepi-red); color:#fff; } .area-card--red .area-card__more{ color:var(--gepi-gold); border-top-color:rgba(255,255,255,.15); }
.area-card--gold{ background:var(--gepi-gold); color:var(--gepi-black); } .area-card--gold .area-card__more{ color:var(--gepi-red); }
.area-card--dark{ background:var(--gepi-dark); color:#fff; } .area-card--dark .area-card__more{ color:var(--gepi-gold); border-top-color:rgba(255,255,255,.15); }
.area-card--cream{ background:var(--gepi-cream); color:var(--gepi-ink); } .area-card--cream .area-card__more{ color:var(--gepi-red); }

/* badge / pill */
.tag{ display:inline-block; font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; padding:7px 14px; }
.pill{ display:inline-block; font-family:var(--font-display); font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:12px 22px; border-radius:var(--radius-sm); }

/* photo frame */
.frame{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-xl); }
.frame img{ width:100%; height:100%; object-fit:cover; }
.ratio-4-3{ aspect-ratio:4/3; }

/* ---------- numbered list (why / programma) ---------- */
.numlist{ display:flex; flex-direction:column; }
.numlist__item{ display:flex; gap:24px; padding:28px 0; border-bottom:1px solid rgba(255,255,255,.15); }
.numlist__item:last-child{ border-bottom:0; }
.numlist__n{ font-family:var(--font-display); font-weight:900; font-size:42px; line-height:1; color:var(--gepi-gold); flex:none; width:48px; }
.numlist__t{ font-family:var(--font-display); font-weight:700; font-size:20px; margin:0 0 6px; }
.numlist__d{ font-size:15px; line-height:1.5; opacity:.78; margin:0; }

/* reasons grid (esporre) */
.reasons{ display:grid; grid-template-columns:1fr 1fr; }
.reason{ padding:32px 40px; border-bottom:1px solid var(--line); }
.reason:nth-child(odd){ border-right:1px solid var(--line); }
.reason__n{ font-family:var(--font-display); font-size:13px; font-weight:700; letter-spacing:.12em; color:var(--gepi-red); margin-bottom:10px; }
.reason__t{ font-family:var(--font-display); font-size:22px; font-weight:800; color:var(--gepi-ink); margin:0 0 10px; line-height:1.2; }
.reason__d{ font-size:15px; color:var(--fg-2); line-height:1.55; margin:0; }

/* ---------- listino ---------- */
.listino{ display:grid; grid-template-columns:1.4fr 1fr; gap:24px; align-items:stretch; }
.price-table{ border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; }
.price-table__head,.price-table__row{ display:grid; grid-template-columns:2.4fr 1fr; align-items:center; }
.price-table__head{ padding:16px 28px; background:var(--gepi-ink); color:#fff; font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.price-table__row{ padding:20px 28px; border-bottom:1px solid var(--line); }
.price-table__name{ font-size:16px; font-weight:500; color:var(--gepi-ink); }
.price-table__price{ font-size:17px; font-weight:700; color:var(--gepi-red); text-align:right; }
.price-table__note{ padding:14px 28px; background:var(--gepi-cream); font-family:var(--font-serif); font-style:italic; font-size:13px; color:var(--fg-2); border-top:1px solid var(--line); }
.keycard{ background:var(--gepi-red); color:#fff; border-radius:var(--radius-md); padding:36px 32px; display:flex; flex-direction:column; gap:12px; position:relative; overflow:hidden; box-shadow:var(--shadow-red); }
.keycard__flag{ position:absolute; top:20px; right:20px; background:var(--gepi-gold); color:var(--gepi-black); font-family:var(--font-display); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; padding:6px 12px; border-radius:4px; }
.keycard__price{ font-family:var(--font-display); font-weight:900; font-size:60px; line-height:.95; letter-spacing:-.03em; }
.keycard ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.keycard li{ display:flex; gap:10px; font-size:14px; }
.keycard li .ck{ color:var(--gepi-gold); font-weight:900; flex:none; }

/* ---------- forms ---------- */
.field label{ display:block; font-family:var(--font-display); font-size:12px; font-weight:700; letter-spacing:.10em; text-transform:uppercase; color:var(--fg-2); margin-bottom:8px; }
.field input,.field select,.field textarea{ width:100%; font-family:var(--font-body); font-size:15px; color:var(--gepi-ink); padding:0 16px; height:48px; border:1.5px solid var(--line); border-radius:var(--radius-sm); background:#fff; outline:none; transition:border-color 150ms; }
.field textarea{ height:auto; padding:14px 16px; resize:vertical; line-height:1.5; }
.field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--gepi-red); }
.form-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-md); padding:48px 44px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-grid .col-2{ grid-column:1/-1; }
.contact-ico{ width:44px; height:44px; background:var(--gepi-gold); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:18px; flex:none; }

/* newsletter inline */
.subscribe{ display:flex; gap:10px; max-width:460px; margin-inline:auto; }
.subscribe input{ flex:1; font-family:var(--font-body); font-size:15px; padding:0 18px; height:48px; border:0; border-radius:var(--radius-sm); outline:none; color:var(--gepi-ink); }

/* ---------- footer ---------- */
.site-footer{ background:var(--gepi-dark); color:#fff; padding:72px 40px 36px; }
.site-footer__grid{ display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:56px; margin-bottom:56px; }
.site-footer__logo{ height:52px; width:auto; filter:brightness(0) invert(1); margin-bottom:20px; }
.site-footer__blurb{ font-family:var(--font-serif); font-style:italic; font-size:14px; color:rgba(255,255,255,.5); line-height:1.65; margin:0 0 16px; max-width:280px; }
.site-footer__col-title{ font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--gepi-gold); margin-bottom:18px; }
.site-footer ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.site-footer__col a,.site-footer__col span{ font-family:var(--font-display); font-size:14px; color:rgba(255,255,255,.75); line-height:1.4; }
.site-footer__col a:hover{ color:var(--gepi-gold); }
.site-footer__orgs{ display:flex; align-items:center; gap:16px; margin-top:20px; }
.site-footer__orgs img{ width:auto; filter:brightness(0) invert(1); opacity:.6; }
.site-footer__bottom{ border-top:1px solid rgba(255,255,255,.08); padding-top:24px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.site-footer__bottom span{ font-family:var(--font-display); font-size:12px; color:rgba(255,255,255,.35); }

/* ---------- accessibility ---------- */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{ outline:3px solid var(--gepi-red); outline-offset:2px; border-radius:4px; }
.section--dark :focus-visible,.section--red :focus-visible{ outline-color:var(--gepi-gold); }
.visually-hidden{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* ---------- responsive ---------- */
@media (max-width:1024px){
  :root{ --sp-section:80px; --sp-gutter:28px; }
  .grid-2{ gap:56px; }
  .site-footer__grid{ grid-template-columns:1fr 1fr; gap:40px; }
}
@media (max-width:900px){
  .nav{ height:80px; }
  .nav__logo img{ height:60px; }
  body.nav-open .nav__menu{ inset:80px 0 auto 0; max-height:calc(100vh - 80px); }
  .nav__menu,.nav__cta{ display:none; }
  .nav__toggle{ display:inline-flex; }
  body.nav-open .nav__menu{ display:flex; position:fixed; inset:104px 0 auto 0; flex-direction:column; gap:0; background:#fff; border-bottom:1px solid var(--line); padding:8px 0; box-shadow:var(--shadow-lg); max-height:calc(100vh - 104px); overflow:auto; }
  body.nav-open .nav__item{ width:100%; }
  body.nav-open .nav__link{ width:100%; border-radius:0; padding:14px 28px; font-size:16px; }
  body.nav-open .nav__sub{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; border-radius:0; padding:0 0 8px; }
  body.nav-open .nav__sub a{ padding:10px 44px; }
  .grid-2{ grid-template-columns:1fr; gap:40px; }
  .grid-2--media-first .media{ order:-1; }
  .areas-grid{ grid-template-columns:1fr 1fr; }
  .reasons{ grid-template-columns:1fr; }
  .reason:nth-child(odd){ border-right:0; }
  .listino{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  :root{ --sp-section:56px; --sp-gutter:20px; }
  .areas-grid{ grid-template-columns:1fr; }
  .site-footer__grid{ grid-template-columns:1fr; gap:32px; }
  .btn{ width:100%; }
  .btn-row .btn{ width:auto; flex:1 1 auto; }
  .keycard__price{ font-size:48px; }
  .subscribe{ flex-direction:column; }
  .subscribe .btn{ width:100%; }
}

/* ---------- motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
}

/* =========================================================================
   PAGE COMPONENTS (reused across the 6 pages)
   ========================================================================= */
.logo-invert{ filter:brightness(0) invert(1); }
[id]{ scroll-margin-top:88px; }

/* home hero (dark, logo + 2x2 photo grid) */
.hero-home{ min-height:62vh; display:flex; align-items:center; background:var(--gepi-dark); }
.hero-home__grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; padding:56px 0; }
.hero-home__logo{ height:auto; max-height:150px; width:auto; max-width:420px; margin-bottom:24px; }
.hero-photos{ display:grid; grid-template-columns:1fr 1fr; gap:12px; height:460px; }
.photo-tile{ position:relative; border-radius:12px; overflow:hidden; }
.photo-tile__img{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform 400ms var(--ease); }
.photo-tile:hover .photo-tile__img{ transform:scale(1.05); }
.photo-tile__grad{ position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 55%); }
.photo-tile__label{ position:absolute; bottom:14px; left:16px; font-family:var(--font-display); font-size:12px; font-weight:700; letter-spacing:.12em; color:#fff; text-transform:uppercase; }

/* concept media + year badge */
.concept-media{ position:relative; height:500px; }
.concept-media .frame{ position:absolute; inset:0; }
.year-badge{ position:absolute; bottom:28px; left:-24px; background:var(--gepi-gold); color:var(--gepi-black); font-family:var(--font-display); font-weight:900; font-size:56px; line-height:1; padding:14px 22px; border-radius:14px; box-shadow:0 12px 28px rgba(250,184,0,.4); }

/* inner page hero (colored band) */
.inner-hero{ position:relative; overflow:hidden; padding:80px 40px 72px; }
.inner-hero .wrap{ position:relative; z-index:2; }
.anchor-chips{ display:flex; gap:10px; flex-wrap:wrap; }
.anchor-chip{ font-family:var(--font-display); font-size:13px; font-weight:600; letter-spacing:.06em; padding:10px 20px; border:1.5px solid rgba(255,255,255,.25); border-radius:999px; background:transparent; color:#fff; transition:all 150ms var(--ease); }
.anchor-chip:hover{ color:#fff; background:rgba(255,255,255,.12); }

/* alternating area sections (aree page) */
.area-feature{ padding:100px 40px; }
.area-feature__grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.area-feature--flip .media{ order:2; }
.area-sub{ font-family:var(--font-serif); font-style:italic; font-size:20px; line-height:1.45; opacity:.9; margin:0 0 24px; }

/* calendar / day cards */
.day-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.day-card{ border-radius:12px; padding:32px 28px; display:flex; flex-direction:column; gap:16px; min-height:240px; }
.day-card__tipo{ font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.day-card__data{ font-family:var(--font-display); font-weight:900; font-size:22px; line-height:1.1; }
.day-card__desc{ font-size:14px; line-height:1.6; opacity:.8; margin-top:auto; }

/* press kit cards */
.kit-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.kit-card{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:36px 32px; display:flex; flex-direction:column; gap:14px; }
.kit-card__ico{ font-size:36px; }
.kit-card__t{ font-family:var(--font-display); font-weight:800; font-size:22px; color:var(--gepi-ink); }
.kit-card__d{ font-size:15px; color:var(--fg-2); line-height:1.55; flex:1; }

/* how-to-reach + contact rows */
.info-row{ display:flex; gap:16px; align-items:flex-start; }
.info-row + .info-row{ margin-top:20px; }
.info-row__t{ font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--gepi-ink); margin:0 0 4px; }
.info-row__d{ font-size:14px; color:var(--fg-2); line-height:1.55; margin:0; white-space:pre-line; }
.map-box{ background:#E8E3DC; aspect-ratio:4/3; border-radius:20px; box-shadow:var(--shadow-lg); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; text-align:center; padding:24px; }

.success-panel{ text-align:center; }
.success-panel__ck{ font-family:var(--font-display); font-weight:900; font-size:64px; color:var(--gepi-gold); line-height:1; margin-bottom:16px; }

@media (max-width:900px){
  .hero-home__grid{ grid-template-columns:1fr; gap:48px; padding:56px 0; }
  .hero-photos{ height:380px; }
  .concept-media{ height:auto; aspect-ratio:4/3; }
  .year-badge{ left:0; font-size:44px; }
  .area-feature__grid{ grid-template-columns:1fr; gap:40px; }
  .area-feature--flip .media{ order:-1; }
  .day-grid{ grid-template-columns:1fr 1fr; }
  .kit-grid{ grid-template-columns:1fr; }
  .form-grid{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .hero-photos{ height:300px; }
  .day-grid{ grid-template-columns:1fr; }
}

/* ===== form privacy + stato errore (go-live 2026-07) ===== */
.field--consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--fg-2);line-height:1.5}
.field--consent input{margin-top:3px;width:16px;height:16px;flex:none;accent-color:var(--gepi-red)}
.field--consent a{color:inherit;text-decoration:underline}
.form-error{display:none;margin-top:16px;padding:14px 16px;background:#FDECEA;color:#7A1610;border-left:3px solid var(--gepi-red);font-size:14px;line-height:1.5}
.form-error.is-visible{display:block}
.subscribe{flex-wrap:wrap}
.subscribe .field--consent{flex-basis:100%;justify-content:center;margin-top:14px;text-align:left}
.subscribe .form-error{flex-basis:100%}
.btn[disabled]{opacity:.6;cursor:wait}

/* ===== cookie banner ===== */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;max-width:520px;margin:0 auto;background:var(--gepi-ink,#141414);color:#fff;padding:22px 24px;box-shadow:0 12px 40px rgba(0,0,0,.35);display:none}
.cookie-banner.is-visible{display:block}
.cookie-banner p{font-size:13.5px;line-height:1.55;margin:0 0 14px;color:rgba(255,255,255,.85)}
.cookie-banner p a{color:#fff;text-decoration:underline}
.cookie-banner__row{display:flex;gap:10px;flex-wrap:wrap}
.cookie-banner .btn{min-height:40px;padding:0 18px;font-size:13px}

/* ===== FAQ + planimetrie (contenuti app, go-live) ===== */
.faq{border:1px solid var(--line);background:#fff;margin-bottom:12px}
.faq summary{cursor:pointer;padding:18px 22px;font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--gepi-ink);list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq summary::after{content:"+";font-size:22px;color:var(--gepi-red);font-weight:400}
.faq[open] summary::after{content:"–"}
.faq p{padding:0 22px 20px;margin:0;font-size:15.5px;line-height:1.6;color:var(--fg-1)}
@media (max-width:760px){ .plan-grid{grid-template-columns:1fr !important} }
