:root{
  --black:#151414;
  --beige:#E7CFB0;
  --ivory:#FAF7F2;
  --brown:#3A3634;
  --media-accent:#E7CFB0;
  --events-accent:#8C3B34;
  --nissi-accent:#00BEE2;
  --nissi-accent-text:#00778C;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  /* --- animation tokens --- */
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --dur-s:400ms; --dur-m:700ms; --dur-l:1100ms;
  --stagger:80ms;
}
/* ---- VIEW TRANSITIONS ---- */
@view-transition{navigation:auto;}
::view-transition-old(root),::view-transition-new(root){animation-duration:var(--dur-s);}
.logo img{view-transition-name:site-logo; contain:layout;}
::view-transition-old(site-logo),::view-transition-new(site-logo){animation:none;}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
h1,h2{text-wrap:balance;}
p{text-wrap:pretty;}
body{
  font-family:var(--sans);
  background:var(--ivory);
  color:var(--black);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.container{max-width:1180px; margin:0 auto; padding:0 32px;}
section{position:relative;}

/* ---------- NAV ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:22px 0;
  background:rgba(21,20,20,.82);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
header .container{display:flex; align-items:center; justify-content:space-between;}
.logo{display:flex; align-items:center;}
.logo img{height:22px; width:auto; display:block;}
nav ul{display:flex; gap:36px; list-style:none;}
nav a{font-size:12.5px; color:var(--beige); font-weight:500; text-transform:uppercase; letter-spacing:0.08em;}
nav a.is-active{border-bottom:1px solid var(--beige); padding-bottom:2px;}
.nav-cta{
  border:1px solid var(--beige); color:var(--beige);
  padding:10px 22px; border-radius:2px; font-size:12px;
  text-transform:uppercase; letter-spacing:0.14em; font-weight:600;
  transition:background .25s ease, color .25s ease;
}
.nav-cta:hover{background:var(--beige); color:var(--black);}

/* ---------- PRELOADER ---------- */
.preloader{
  position:fixed; inset:0; z-index:999;
  background:var(--black);
  display:flex; align-items:center; justify-content:center;
  transition:transform .9s cubic-bezier(.76,0,.24,1);
}
.preloader.is-done{transform:translateY(-100%);}
.preloader__inner{display:flex; flex-direction:column; align-items:center; gap:28px;}
.preloader__logo{width:min(260px,52vw); opacity:0; animation:preFade .8s ease forwards;}
.preloader__bar{width:min(260px,52vw); height:1px; background:rgba(231,207,176,.22);}
.preloader__bar span{
  display:block; height:100%; width:0; background:var(--beige);
  animation:preLoad 1.2s cubic-bezier(.65,0,.35,1) .25s forwards;
}
@keyframes preFade{to{opacity:1;}}
@keyframes preLoad{to{width:100%;}}
.skip-preloader .preloader{display:none;}

/* ---------- HERO ---------- */
.hero{
  min-height:100vh;
  background:var(--black);
  color:var(--ivory);
  display:flex; flex-direction:column; justify-content:center;
  padding:140px 0 80px;
  position:relative;
  overflow:hidden;
}
.hero--page{min-height:70vh;}
.hero--page h1{font-size:clamp(42px,6vw,82px);}
.hero-eyebrow{
  font-size:12.5px; color:var(--beige); margin-bottom:26px; font-weight:600;
  text-transform:uppercase; letter-spacing:0.22em;
  display:flex; align-items:center; gap:14px;
}
.hero-eyebrow::before{content:""; width:32px; height:1px; background:var(--beige);}
.hero-eyebrow--events{color:var(--events-accent);}
.hero-eyebrow--events::before{background:var(--events-accent);}
.hero-eyebrow--nissi{color:var(--nissi-accent);}
.hero-eyebrow--nissi::before{background:var(--nissi-accent);}
.hero h1{
  font-family:var(--sans);
  font-size:clamp(48px,8vw,108px);
  font-weight:800;
  line-height:0.96;
  letter-spacing:-0.04em;
  max-width:900px;
}
.hero-sub{
  max-width:520px;
  margin-top:28px;
  font-size:18px;
  color:#C9C4BE;
  line-height:1.65;
}
/* Hero background image */
.hero-bg{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%;
  object-fit:cover; object-position:right center;
  will-change:transform;
}
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(100deg,
    rgba(21,20,20,.94) 0%,
    rgba(21,20,20,.80) 38%,
    rgba(21,20,20,.30) 70%,
    rgba(21,20,20,.50) 100%);
  pointer-events:none;
}

/* Hero entry animation */
.js-preloading .hero-anim{opacity:0; transform:translateY(20px);}
.js-preloading.is-ready .hero-anim{animation:heroEnter var(--dur-m) var(--ease-out) both;}
.js-preloading.is-ready .anim-eyebrow{animation-delay:0ms;}
.js-preloading.is-ready .anim-h1{animation-delay:90ms;}
.js-preloading.is-ready .anim-sub{animation-delay:180ms;}
.js-preloading.is-ready .anim-meta{animation-delay:270ms;}
.js-preloading.is-ready .anim-cta{animation-delay:360ms;}
@keyframes heroEnter{
  from{opacity:0; transform:translateY(20px);}
  to{opacity:1; transform:translateY(0);}
}

/* Hero background scale reveal */
.js-preloading .hero-bg{transform:scale(1.05);}
.js-preloading.is-ready .hero-bg{animation:heroBgReveal 1.4s ease-out both;}
@keyframes heroBgReveal{
  from{transform:scale(1.05);}
  to{transform:scale(1);}
}

/* Hero meta-labels */
.hero-meta{display:flex; gap:24px; margin-top:36px; flex-wrap:wrap;}
.hero-meta span{
  font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:0.18em;
  color:rgba(231,207,176,.55);
}

/* Hero CTA coppia */
.hero-ctas{display:flex; gap:14px; margin-top:36px; flex-wrap:wrap;}
.hero-cta-outline{
  font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:0.14em;
  color:var(--ivory); border:1px solid rgba(255,255,255,.28);
  padding:13px 26px; border-radius:2px; text-decoration:none;
  transition:border-color var(--dur-s) var(--ease-out), background var(--dur-s) var(--ease-out);
}
.hero-cta-outline:hover{border-color:rgba(255,255,255,.7); background:rgba(255,255,255,.06);}
.hero-cta-filled{
  font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:0.14em;
  color:var(--black); background:var(--beige);
  padding:13px 26px; border-radius:2px; text-decoration:none;
  border:1px solid var(--beige);
  transition:background var(--dur-s) var(--ease-out), border-color var(--dur-s) var(--ease-out);
}
.hero-cta-filled:hover{background:#d4b995; border-color:#d4b995;}

/* ---------- STATS ---------- */
.stats{background:var(--black); color:var(--ivory); padding:70px 0 90px; border-top:1px solid #2a2826;}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.stat-num{font-family:var(--sans); font-weight:800; letter-spacing:-0.02em; font-size:52px; color:var(--beige); font-variant-numeric:tabular-nums;}
.stat-label{font-size:12.5px; color:#9c9791; margin-top:10px; text-transform:uppercase; letter-spacing:0.14em;}

/* ---------- SECTION HEADS ---------- */
.section-pad{padding:120px 0;}
.section-head{max-width:640px; margin-bottom:64px;}
.section-kicker{
  font-size:12.5px; color:var(--brown); opacity:.7; margin-bottom:16px;
  text-transform:uppercase; letter-spacing:0.2em; font-weight:600;
}
.section-head h2{
  font-family:var(--sans);
  font-size:clamp(32px,4vw,46px);
  font-weight:700;
  letter-spacing:-0.03em;
  line-height:1.15;
  text-wrap:balance;
}

/* ---------- DIVISIONS ---------- */
.division{
  display:grid; grid-template-columns:1fr 1fr;
  gap:64px; align-items:center;
  padding:80px 0;
  border-top:1px solid rgba(21,20,20,.1);
}
.division-visual{
  aspect-ratio:4/5; border-radius:3px;
  background:linear-gradient(160deg,var(--media-accent),#B99D74);
  position:relative; overflow:hidden;
}
.division-visual.events{background:linear-gradient(160deg,var(--events-accent),#3f1613);}
.division-visual.nissi{background:linear-gradient(160deg,var(--nissi-accent),#2c351f);}
.division-tag{
  display:block; font-size:12.5px; text-transform:uppercase; letter-spacing:0.2em;
  color:var(--brown); opacity:.7; font-weight:600; margin-bottom:20px;
}
.division-body h3{font-family:var(--sans); font-size:38px; font-weight:800; letter-spacing:-0.025em; margin-bottom:18px;}
.division-body p{color:var(--brown); font-size:16.5px; line-height:1.65; max-width:440px; margin-bottom:26px;}
.division-list{list-style:none; display:flex; flex-wrap:wrap; gap:0; margin-bottom:28px; border-top:1px solid rgba(21,20,20,.12);}
.division-list li{font-size:13.5px; padding:12px 18px 12px 0; border-bottom:1px solid rgba(21,20,20,.12); flex:1 1 45%;}
.link-arrow{
  font-weight:600; font-size:13.5px; text-transform:uppercase; letter-spacing:0.12em;
  display:inline-flex; align-items:center; gap:10px;
  padding-bottom:6px; position:relative;
}
.link-arrow::after{
  content:''; position:absolute; bottom:0; left:0;
  width:100%; height:1px; background:currentColor;
  transform:scaleX(0); transform-origin:left center;
  transition:transform var(--dur-s) var(--ease-out);
}
.link-arrow:hover::after{transform:scaleX(1);}

/* ---------- HOW WE WORK ---------- */
.work-model{background:var(--black); color:var(--ivory);}
.work-steps{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.1); margin-top:20px; border-radius:3px; overflow:hidden;}
.work-step{background:var(--black); padding:32px 24px;}
.work-step .num{font-family:var(--sans); font-weight:800; font-size:28px; color:var(--beige); margin-bottom:14px;}
.work-step h4{font-size:16px; margin-bottom:8px;}
.work-step p{font-size:13px; color:#a19c96;}

/* ---------- PHILANTHROPY (home) ---------- */
.philanthropy{background:linear-gradient(180deg,#EFE9DD,var(--ivory));}
.phil-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:64px; align-items:center;}
.phil-visual{
  aspect-ratio:1/1; border-radius:3px;
  background:linear-gradient(160deg,var(--nissi-accent),#2c351f);
  position:relative; overflow:hidden;
}
.phil-badge{
  display:flex; align-items:center; gap:10px; font-size:12.5px;
  text-transform:uppercase; letter-spacing:0.2em; font-weight:600;
  color:var(--nissi-accent-text); margin-bottom:22px;
}
.phil-badge::before{content:""; width:24px; height:1px; background:var(--nissi-accent);}
.phil-numbers{display:flex; gap:48px; margin-top:36px; border-top:1px solid rgba(21,20,20,.12); padding-top:24px;}
.phil-numbers div span{display:block; font-family:var(--sans); font-weight:800; font-size:32px; color:var(--nissi-accent-text); letter-spacing:-0.02em;}
.phil-numbers div small{font-size:12.5px; color:var(--brown); text-transform:uppercase; letter-spacing:0.1em;}

/* ---------- TESTIMONIALS ---------- */
.testimonials{background:var(--ivory);}
.quote-card{
  background:var(--black); color:var(--ivory); border-radius:3px;
  padding:48px; flex:1; display:flex; flex-direction:column;
}
.quote-card p{font-family:var(--sans); font-size:clamp(17px,2vw,24px); line-height:1.4; font-weight:500; letter-spacing:-0.01em;}
.quote-meta{display:flex; align-items:center; gap:14px; margin-top:28px;}
.quote-avatar{width:64px; height:80px; border-radius:3px; background:var(--beige); object-fit:cover; object-position:center top; display:block; flex-shrink:0;}
.quote-avatar--wide{width:120px; height:80px; object-position:center 62%;}
.quote-meta strong{font-size:14px;}
.quote-meta span{font-size:13px; color:#a19c96; display:block;}
.quote-google{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:auto; text-decoration:none;
  border-top:1px solid rgba(255,255,255,.1); padding-top:20px; width:100%;
}
.quote-google-label{
  font-size:11px; font-weight:500; text-transform:uppercase;
  letter-spacing:0.16em; color:#a19c96; white-space:nowrap;
}

/* ---------- QUOTE CAROUSEL ---------- */
.quote-carousel{position:relative;}
.quote-viewport{overflow:hidden;}
.quote-slides-track{
  display:grid; grid-auto-flow:column; grid-auto-columns:85%;
  align-items:stretch;
  gap:20px;
  overflow-x:scroll; scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.quote-slides-track::-webkit-scrollbar{display:none;}
.quote-slide{
  min-width:0; /* prevent grid blowout */
  scroll-snap-align:center;
  opacity:.45;
  transition:opacity var(--dur-m) var(--ease-io);
  display:flex; flex-direction:column;
}
.quote-slide.is-active{opacity:1;}
@keyframes carouselHint{
  0%  {transform:translateX(0);}
  35% {transform:translateX(-12px);}
  100%{transform:translateX(0);}
}
.quote-slide.is-hinting{animation:carouselHint var(--dur-m) var(--ease-io);}
/* controls row */
.quote-controls{display:flex; align-items:center; gap:20px; margin-top:28px;}
.quote-arrows{display:flex; gap:10px;}
.quote-btn{
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  background:transparent; border:1px solid rgba(231,207,176,.55);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:var(--black);
  transition:background var(--dur-s) var(--ease-out), border-color var(--dur-s) var(--ease-out);
}
.quote-btn:hover{background:var(--beige); border-color:var(--beige);}
.quote-btn:focus-visible{outline:2px solid var(--black); outline-offset:3px;}
.quote-dashes{display:flex; gap:8px; align-items:center;}
.quote-dash{
  height:2px; width:14px; border-radius:1px;
  background:rgba(21,20,20,.2); border:none; cursor:pointer; padding:0;
  transition:background var(--dur-s) var(--ease-out), width var(--dur-s) var(--ease-out);
}
.quote-dash.is-active{background:var(--black); width:28px;}
.quote-dash:focus-visible{outline:2px solid var(--black); outline-offset:4px; border-radius:2px;}
.quote-counter{
  font-size:11px; font-weight:600; text-transform:uppercase;
  letter-spacing:0.18em; color:rgba(21,20,20,.4); margin-left:4px;
}
.quote-live-region{
  position:absolute; width:1px; height:1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* ---------- CONTACT ---------- */
.contact{background:var(--black); color:var(--ivory);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
.contact h2{font-family:var(--sans); font-size:clamp(32px,4vw,52px); font-weight:800; letter-spacing:-0.03em; margin-bottom:20px;}
.contact p{color:#a19c96; max-width:400px; margin-bottom:28px;}
.field{margin-bottom:18px;}
.field label{font-size:13px; color:#a19c96; display:block; margin-bottom:8px;}
.field input,.field textarea,.field select{
  width:100%; background:transparent; border:none; border-bottom:1px solid rgba(255,255,255,.25);
  padding:10px 0; color:var(--ivory); font-family:var(--sans); font-size:15px;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none; border-color:var(--beige);}
.field select option{background:var(--black); color:var(--ivory);}
.submit-btn{
  margin-top:16px; background:var(--beige); color:var(--black); border:none;
  padding:16px 34px; border-radius:2px; font-weight:600; font-size:12.5px; cursor:pointer;
  text-transform:uppercase; letter-spacing:0.14em;
  transition:background var(--dur-s) var(--ease-out);
}
.submit-btn:hover{background:#f0dcbb;}
.submit-btn:disabled{opacity:.5; cursor:not-allowed;}
.submit-btn:disabled:hover{background:var(--beige);}
.field-error{font-size:12px; color:#c0614a; margin-top:6px; display:none;}
.field.has-error .field-error{display:block;}
.field.has-error input,.field.has-error textarea,.field.has-error select{border-bottom-color:#c0614a;}
.privacy-field{margin-top:24px; margin-bottom:4px;}
.privacy-field label{display:flex; gap:12px; align-items:flex-start; cursor:pointer; font-size:13px; color:#a19c96; line-height:1.55;}
.privacy-field input[type="checkbox"]{
  flex-shrink:0; width:15px; height:15px; margin-top:2px; accent-color:var(--beige); cursor:pointer;
}
.privacy-field a{color:var(--beige); text-decoration:underline; text-underline-offset:2px;}
.privacy-field a:hover{color:#f0dcbb;}
.privacy-field .field-error{margin-top:6px;}
.form-success{padding:40px 0;}
.form-success p{color:var(--ivory); font-size:16px; line-height:1.7; max-width:none;}
.form-success p strong{color:var(--beige); font-weight:600;}
.form-error-msg{margin-top:16px; font-size:13px; color:#c0614a; line-height:1.6; display:none;}
.form-error-msg a{color:#c0614a; text-decoration:underline; text-underline-offset:2px;}

/* ---------- FOOTER ---------- */
footer{background:var(--black); padding:120px 0 48px;}
.footer-wordmark{margin-bottom:48px;}
.footer-wordmark img{width:100%; height:auto; display:block;}
.footer-hr{border:none; border-top:1px solid rgba(231,207,176,.15); margin:0 0 56px;}
.footer-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:48px; margin-bottom:56px;}
.footer-col-label{
  font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.2em;
  color:rgba(231,207,176,.6); margin-bottom:20px; font-family:var(--sans);
}
.footer-address{font-style:normal; font-size:14px; color:rgba(250,247,242,.55); line-height:1.7;}
.footer-links{list-style:none;}
.footer-links li{margin-bottom:10px;}
.footer-links a{
  font-size:14px; color:rgba(250,247,242,.55);
  position:relative; padding-bottom:2px; display:inline-block;
  transition:color var(--dur-s) var(--ease-out);
}
.footer-links a::after{
  content:''; position:absolute; bottom:0; left:0;
  width:100%; height:1px; background:currentColor;
  transform:scaleX(0); transform-origin:left center;
  transition:transform var(--dur-s) var(--ease-out);
}
.footer-links a:hover{color:var(--beige);}
.footer-links a:hover::after{transform:scaleX(1);}
.footer-links a:focus-visible{outline:2px solid var(--beige); outline-offset:3px; border-radius:2px;}
.footer-link-current{font-size:14px; color:rgba(250,247,242,.25); display:inline-block;}
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  font-size:11px; text-transform:uppercase; letter-spacing:0.1em;
  color:rgba(250,247,242,.48);
  border-top:1px solid rgba(255,255,255,.06); padding-top:28px;
}
.footer-legal{cursor:default; user-select:none;}

/* ---------- REVEAL ---------- */
@keyframes revealIn{
  from{opacity:0; transform:translateY(16px);}
  to{opacity:1; transform:translateY(0);}
}
@supports (animation-timeline: view()){
  .reveal{
    animation:revealIn linear both;
    animation-timeline:view();
    animation-range:entry 10% cover 35%;
  }
}
@supports not (animation-timeline: view()){
  .reveal{opacity:0; transform:translateY(16px); transition:opacity var(--dur-m) var(--ease-out), transform var(--dur-m) var(--ease-out);}
  .reveal.is-visible{opacity:1; transform:translateY(0);}
}

/* ---------- WORD BLUR ANIMATION ---------- */
.word{
  display:inline-block;
  opacity:0;
  filter:blur(10px);
  transform:translateY(14px);
  will-change:filter, transform, opacity;
  transition:
    opacity var(--dur-m) var(--ease-out),
    filter var(--dur-m) var(--ease-out),
    transform var(--dur-m) var(--ease-out);
}
.word--visible{opacity:1; filter:blur(0); transform:translateY(0);}

/* ---------- SERVICES LIST (bold-media) ---------- */
.services-list{list-style:none; border-top:1px solid rgba(21,20,20,.12);}
.service-item{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:24px 0; border-bottom:1px solid rgba(21,20,20,.12); gap:48px;
}
.service-name{font-weight:700; font-size:16px; flex:0 0 200px; letter-spacing:-0.01em;}
.service-desc{font-size:14px; color:var(--brown); flex:1; line-height:1.65;}

/* ---------- ROSTER GRID (bold-events) ---------- */
.roster-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.roster-card-img{
  aspect-ratio:3/4; border-radius:3px;
  background:linear-gradient(160deg,var(--events-accent),#3f1613);
  position:relative; overflow:hidden;
}
.roster-card-body{padding:16px 0 8px;}
.roster-card-name{font-size:15px; font-weight:700; letter-spacing:-0.01em;}
.roster-card-role{
  font-size:12.5px; color:var(--brown); text-transform:uppercase;
  letter-spacing:0.14em; margin-top:4px;
}

/* ---------- EVENT TYPES GRID (bold-events) ---------- */
.event-types{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(255,255,255,.08); border-radius:3px; overflow:hidden;}
.event-type-cell{background:var(--black); padding:44px 36px;}
.event-type-cell .num{font-weight:800; font-size:22px; color:var(--events-accent); margin-bottom:14px;}
.event-type-cell h4{font-size:18px; font-weight:700; margin-bottom:10px; color:var(--ivory);}
.event-type-cell p{font-size:14px; color:#a19c96; line-height:1.65;}

/* ---------- PROCESS STEPS 3-COL (bold-events) ---------- */
.process-steps{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(21,20,20,.12); border-radius:3px; overflow:hidden; margin-top:20px;}
.process-step{background:var(--ivory); padding:36px 28px;}
.process-step .num{font-weight:800; font-size:28px; color:var(--brown); opacity:.35; margin-bottom:14px;}
.process-step h4{font-size:16px; font-weight:700; margin-bottom:10px;}
.process-step p{font-size:13.5px; color:var(--brown); line-height:1.65;}

/* ---------- PROGRAM BLOCK (philanthropy) ---------- */
.program-block{background:var(--black); color:var(--ivory); border-radius:3px; padding:64px;}
.program-kicker{
  font-size:12.5px; text-transform:uppercase; letter-spacing:0.2em; color:var(--nissi-accent);
  font-weight:600; margin-bottom:22px; display:flex; align-items:center; gap:12px;
}
.program-kicker::before{content:""; width:24px; height:1px; background:var(--nissi-accent);}
.program-block h3{font-size:clamp(22px,3vw,30px); font-weight:800; letter-spacing:-0.025em; margin-bottom:24px; line-height:1.2;}
.program-block p{font-size:16.5px; line-height:1.75; color:#C9C4BE; max-width:700px;}
.program-block p + p{margin-top:18px;}
.program-stat{
  display:inline-flex; flex-direction:column; margin-top:40px;
  padding:22px 36px; border:1px solid rgba(0,190,226,.25); border-radius:2px;
}
.program-stat span{font-size:40px; font-weight:800; color:var(--nissi-accent); letter-spacing:-0.03em; line-height:1;}
.program-stat small{font-size:12px; color:#a19c96; text-transform:uppercase; letter-spacing:0.14em; margin-top:8px;}

/* ---------- CONTACT INFO (contatti) ---------- */
.info-list{list-style:none; margin-top:8px;}
.info-item{padding:20px 0; border-bottom:1px solid rgba(255,255,255,.08);}
.info-item:first-child{border-top:1px solid rgba(255,255,255,.08);}
.info-label{font-size:12px; text-transform:uppercase; letter-spacing:0.16em; color:#a19c96; margin-bottom:7px;}
.info-value{font-size:15px; color:var(--ivory); line-height:1.5;}

/* ---------- CTA BLOCK (philanthropy come sostenere) ---------- */
.cta-block{background:var(--black); color:var(--ivory); text-align:center; padding:120px 0;}
.cta-block .section-kicker{justify-content:center; display:flex; color:var(--nissi-accent); opacity:1;}
.cta-block h2{font-size:clamp(28px,3.5vw,40px); font-weight:800; letter-spacing:-0.03em; margin:14px 0 20px;}
.cta-block p{font-size:16.5px; color:#a19c96; max-width:460px; margin:0 auto 36px; line-height:1.7;}

/* ---------- REAL IMAGES ---------- */
.phil-visual img,
.division-visual img{
  width:100%; height:100%; display:block;
  object-fit:cover; border-radius:inherit;
  position:absolute; inset:0;
  transition:transform var(--dur-m) var(--ease-out);
}
.phil-visual,.division-visual{position:relative;}

/* ---- clip-path image reveal ---- */
@keyframes clipReveal{
  from{clip-path:inset(0 0 100% 0);}
  to{clip-path:inset(0 0 0% 0);}
}
@supports (animation-timeline: view()){
  .division-visual,.phil-visual{
    animation:clipReveal linear both;
    animation-timeline:view();
    animation-range:entry 5% cover 45%;
  }
}
@supports not (animation-timeline: view()){
  .division-visual,.phil-visual{
    clip-path:inset(0 0 100% 0);
    transition:clip-path var(--dur-l) var(--ease-out);
  }
  .division-visual img{transform:scale(1.08);}
  .reveal.is-visible .division-visual,.reveal.is-visible .phil-visual{clip-path:inset(0 0 0% 0);}
  .reveal.is-visible .division-visual img{transform:scale(1);}
  .reveal.is-visible:hover .division-visual img{
    transform:scale(1.03) translateY(-4px);
    transition:transform var(--dur-m) var(--ease-out);
  }
}

/* ---- division card hover (always active) ---- */
.division-visual{transition:transform var(--dur-m) var(--ease-out);}
.division:hover .division-visual{transform:translateY(-4px);}
.division:hover .division-visual img{transform:scale(1.03);}

/* Roster duo — 2 foto reali invece di 6 placeholder */
.roster-duo{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
.roster-duo img{
  width:100%; aspect-ratio:2/3; object-fit:cover; object-position:top center;
  border-radius:3px; display:block;
}

/* Griglia immagini kit scolastici */
.program-images{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:48px;}
.program-images img{
  width:100%; aspect-ratio:2/3; object-fit:cover;
  border-radius:3px; display:block;
}

/* Fascia immagine piena larghezza */
.image-band{
  width:100%; height:420px; display:block;
  object-fit:cover; object-position:center 35%;
}

/* ---- FASCIA LOGHI CLIENTI ---- */
.clients-marquee{
  background:var(--black);
  overflow:hidden;
  padding:120px 0;
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.clients-kicker{
  text-align:center;
  font-size:10px;
  font-weight:500;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:rgba(231,207,176,.30);
  margin-bottom:48px;
}
.clients-track-wrap{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(to right, transparent 0, #000 80px, #000 calc(100% - 80px), transparent 100%);
  mask-image:linear-gradient(to right, transparent 0, #000 80px, #000 calc(100% - 80px), transparent 100%);
}
.clients-track-wrap:hover .clients-track{animation-play-state:paused;}
.clients-track{
  display:flex;
  animation:marqueeScroll 24s linear infinite;
}
.clients-track ul{
  display:flex;
  align-items:center;
  gap:90px;
  list-style:none;
  padding:0 45px;
  margin:0;
  flex-shrink:0;
}
.clients-track img{
  max-height:46px;
  width:auto;
  display:block;
  opacity:.70;
  transition:opacity .25s;
  loading:lazy;
}
.clients-track img:hover{opacity:1;}
@keyframes marqueeScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* ---------- HAMBURGER / NAV OVERLAY ---------- */
.nav-toggle{
  display:none;
  flex-direction:column; justify-content:center; align-items:center;
  gap:5px;
  min-width:44px; min-height:44px;
  background:none; border:none; cursor:pointer; padding:0;
  flex-shrink:0;
}
.hamburger-line{
  display:block;
  width:22px; height:1.5px;
  background:var(--beige);
  transition:transform .32s ease, opacity .2s ease;
  transform-origin:center;
}
.nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(1){
  transform:translateY(6.5px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(2){
  opacity:0;
}
.nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(3){
  transform:translateY(-6.5px) rotate(-45deg);
}
.nav-overlay{
  position:fixed; inset:0; z-index:997;
  background:var(--black);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding-bottom:64px;
  visibility:hidden; pointer-events:none;
  opacity:0;
  transition:opacity .3s ease, visibility .3s ease;
}
.nav-overlay.is-open{visibility:visible; pointer-events:auto; opacity:1;}
@media(min-width:861px){.nav-overlay{display:none !important;}}
.nav-overlay-inner{padding:0 32px;}
.nav-overlay-list{list-style:none; padding:0; margin:0;}
.nav-overlay-list li{
  opacity:0; transform:translateY(18px);
  transition:opacity .4s ease, transform .38s ease;
}
.nav-overlay.is-open .nav-overlay-list li:nth-child(1){opacity:1;transform:none;transition-delay:60ms;}
.nav-overlay.is-open .nav-overlay-list li:nth-child(2){opacity:1;transform:none;transition-delay:110ms;}
.nav-overlay.is-open .nav-overlay-list li:nth-child(3){opacity:1;transform:none;transition-delay:160ms;}
.nav-overlay.is-open .nav-overlay-list li:nth-child(4){opacity:1;transform:none;transition-delay:210ms;}
.nav-overlay-list a{
  display:block;
  font-size:clamp(28px, 8vw, 40px); font-weight:800; letter-spacing:-0.03em; line-height:1.1;
  color:var(--ivory);
  padding:12px 0;
  transition:color .2s ease;
}
.nav-overlay-list a:hover,.nav-overlay-list a:focus-visible{color:var(--beige);}
.nav-overlay-list a:focus-visible{outline:2px solid var(--beige); outline-offset:4px; border-radius:2px;}
.nav-overlay-cta-wrap{margin-top:48px;}
.nav-overlay-cta{
  display:inline-block;
  border:1px solid var(--beige); color:var(--beige);
  padding:14px 28px; border-radius:2px;
  font-size:12px; text-transform:uppercase; letter-spacing:0.14em; font-weight:600;
  transition:background .25s, color .25s;
}
.nav-overlay-cta:hover{background:var(--beige); color:var(--black);}

/* ---------- RESPONSIVE ---------- */
@media (max-width:860px){
  header{padding:0;}
  header .container{height:68px; padding:0 20px;}
  nav ul{display:none;}
  .nav-cta{display:none;}
  .nav-toggle{display:flex;}
  .stats-grid{grid-template-columns:repeat(2,1fr); row-gap:36px;}
  .division,.phil-grid,.contact-grid{grid-template-columns:1fr;}
  .work-steps{grid-template-columns:repeat(2,1fr);}
  .hero-bg{object-position:55% center;}
  .hero-overlay{background:rgba(21,20,20,.90);}
  .hero-meta{gap:14px;}
  .hero-ctas{flex-wrap:wrap;}
  .service-item{flex-direction:column; gap:8px;}
  .service-name{flex:none;}
  .roster-grid{grid-template-columns:repeat(2,1fr);}
  .roster-duo{grid-template-columns:1fr;}
  .event-types{grid-template-columns:1fr;}
  .process-steps{grid-template-columns:1fr;}
  .program-block{padding:36px 24px;}
  .program-images{grid-template-columns:1fr;}
  .image-band{height:260px;}
  .clients-marquee{padding:80px 0;}
  .clients-track ul{gap:56px; padding:0 28px;}
  .clients-track img{max-height:34px;}
  .clients-track{animation-duration:18s;}
  .nav-overlay-inner{padding:0 20px;}
  footer{padding:80px 0 32px;}
  /* carousel */
  .quote-slides-track{grid-auto-columns:88%;}
  .quote-card{padding:32px 28px;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .footer-grid .footer-col:last-child{grid-column:1 / -1;}
  .footer-bottom{flex-direction:column; gap:12px; text-align:center;}
}

@media (max-width:540px){
  .footer-grid{grid-template-columns:1fr;}
  .footer-grid .footer-col:last-child{grid-column:auto;}
}

@media (prefers-reduced-motion:reduce){
  /* reveal */
  .reveal{opacity:1 !important; transform:none !important; transition:none !important; animation:none !important;}
  .reveal.is-visible{opacity:1; transform:none;}
  /* word blur */
  .word{opacity:1 !important; filter:none !important; transform:none !important; transition:none !important;}
  /* hero */
  .hero-anim{opacity:1 !important; transform:none !important; animation:none !important;}
  .hero-bg{transform:scale(1) !important; animation:none !important;}
  /* preloader */
  .preloader{display:none;}
  /* images */
  .division-visual,.phil-visual{animation:none !important; clip-path:none !important; transition:none !important;}
  .division-visual img{transform:scale(1) !important; transition:none !important;}
  .division:hover .division-visual{transform:none;}
  .division:hover .division-visual img{transform:none;}
  /* view transition */
  ::view-transition-old(root),::view-transition-new(root){animation:none;}
  /* marquee */
  .clients-track-wrap{overflow:visible; mask-image:none; -webkit-mask-image:none;}
  .clients-track{animation:none; transform:none !important; flex-wrap:wrap; justify-content:center; padding:0 24px;}
  .clients-track > ul:last-child{display:none;}
  .clients-track > ul:first-child{flex-wrap:wrap; justify-content:center; gap:28px 44px; padding:0;}
  /* carousel */
  .quote-slide{transition:none;}
  .quote-slide.is-hinting{animation:none;}
  .quote-dash{transition:none;}
  .quote-btn{transition:none;}
  /* hamburger */
  .hamburger-line{transition:none;}
  .nav-overlay,.nav-overlay-list li{transition:none;}
  .nav-overlay.is-open .nav-overlay-list li{opacity:1; transform:none; transition-delay:0ms !important;}
}
