/* =============================================================
   AmCham Business Summit 2026 — Main Stylesheet
   Self-hosted Raleway @font-face declarations
   ============================================================= */
@font-face {
    font-family: 'Raleway';
    src: url('../fonts/Raleway-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Raleway';
    src: url('../fonts/Raleway-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Raleway';
    src: url('../fonts/Raleway-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Raleway';
    src: url('../fonts/Raleway-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Raleway';
    src: url('../fonts/Raleway-Black.woff2') format('woff2');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

/* ============================================================
   AmCham Business Summit 2026 — Editorial Variation
   Foreign Affairs × Semafor. Words and imagery lead.
   ============================================================ */

:root{
  /* Brand tokens (official) */
  --navy:        #0033A0;
  --dark-navy:   #0033A0; /* unified — single brand blue across all sections */
  --crimson:     #AD073D;
  --sky-blue:    #005CB9;
  --gold:        #FFB819;
  --mid-blue:    #3E8EDE;
  --white:       #FFFFFF;

  /* Secondary blues (brand guide) + pitch-deck surface tints */
  --navy-deep:   #001C71; /* secondary 662 — deep slab backgrounds */
  --cyan:        #00ADD8; /* secondary 638 — bright accent */
  --sky-pale:    #e3eefb; /* airy pitch-deck light-blue surface */
  --sky-soft:    #cfe1f5; /* slightly deeper pitch-deck surface */

  /* Editorial surface system */
  --paper:       #f4f6fb;
  --paper-deep:  #e9edf6;
  --ink:         #111b38;
  --ink-soft:    #2b3656;
  --ink-muted:   #4c5878;
  --rule:        #d3d9e8;
  --rule-dark:   rgba(255,255,255,.16);

  --maxw: 1440px;
  --gutter: clamp(1rem, 2.5vw, 2.5rem);
  --measure: 66ch;

  /* type scale (fluid) */
  --fs-eyebrow: .78rem;
  --fs-body:    clamp(1.02rem, .98rem + .35vw, 1.18rem);
  --fs-lead:    clamp(1.2rem, 1.05rem + .7vw, 1.6rem);
  --fs-h3:      clamp(1.3rem, 1.1rem + .9vw, 1.85rem);
  --fs-h2:      clamp(2.05rem, 1.4rem + 2.6vw, 3.4rem);
  --fs-h1:      clamp(2.7rem, 1.6rem + 4.6vw, 5.4rem);
  --fs-folio:   clamp(2.6rem, 1.6rem + 4vw, 5rem);

  /* z-index scale */
  --z-nav: 100;
  --z-menu: 200;

  --ease: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'DM Sans', system-ui, sans-serif;
  font-size:var(--fs-body);
  line-height:1.68;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:'Raleway', sans-serif; margin:0; text-wrap:balance; }
p{ margin:0; }

/* ============================================================
   Canonical description text — matches "Why This Summit Matters"
   force descriptions. Applied sitewide so every section's body
   copy has the same font, size, weight, line-height, and color.
   ============================================================ */
.about__body p,
.fw-card p,
.sponsor__body p,
.body-col p{
  font-family:'Raleway',sans-serif;
  font-weight:400;
  font-size:var(--fs-body);
  line-height:1.68;
  color:var(--ink-soft);
}
::selection{ background:var(--gold); color:var(--dark-navy); }

/* layout helpers */
.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(2.5rem, 1.8rem + 3.6vw, 5.5rem); }
.measure{ max-width:var(--measure); }

/* Eyebrow / kicker — the brand label system (gold), with crimson rule */
.eyebrow{
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-eyebrow);
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--crimson);
  display:inline-flex;
  align-items:center;
  gap:.85rem;
  margin:0 0 1.4rem;
}
.eyebrow::before{
  content:"";
  width:2.4rem;
  height:2px;
  background:var(--crimson);
  display:inline-block;
}
.section.on-dark .eyebrow{ color:var(--gold); }

.h2{ font-size:var(--fs-h2); font-weight:800; line-height:1.04; letter-spacing:-.02em; color:var(--navy); }
.h2 em{ font-style:italic; color:var(--crimson); font-weight:700; }
.lead{ font-size:var(--fs-lead); line-height:1.45; font-weight:400; color:var(--ink-soft); }
.body-col p + p{ margin-top:1.2em; }
.body-col p{ color:var(--ink-soft); max-width:var(--measure); }
.dim{ color:var(--ink-muted); }

/* ---------- Buttons ---------- */
.btn{
  font-family:'DM Sans',sans-serif;
  font-weight:600;
  font-size:.96rem;
  letter-spacing:.01em;
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.95rem 1.7rem;
  border-radius:2px;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease);
}
.btn__icon{ font-size:1.2em; font-variation-settings:'FILL' 0,'wght' 500,'GRAD' 0,'opsz' 24; }
.btn .arr{ transition:transform .35s var(--ease); }
.btn:hover .arr{ transform:translateX(4px); }
.btn-primary{ background:var(--crimson); color:#fff; }
.btn-primary:hover{ background:#8c052f; }
.btn-ghost{ border-color:var(--navy); color:var(--navy); background:transparent; }
.btn-ghost:hover{ background:var(--navy); color:#fff; }
.btn-ghost-light{ border-color:rgba(255,255,255,.55); color:#fff; background:transparent; }
.btn-ghost-light:hover{ background:#fff; color:var(--dark-navy); border-color:#fff; }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  /* ponytail: absolute (not fixed) pre-launch so the logo sits at the top and
     scrolls away with the page; restore position:fixed on go-live. */
  position:absolute; inset:0 0 auto 0; z-index:var(--z-nav);
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem;
  padding:clamp(.7rem,1.4vw,1.1rem) var(--gutter);
  transition:background .4s var(--ease), box-shadow .4s var(--ease), padding .4s var(--ease);
}
.nav__logo{ display:flex; align-items:center; }
.nav__logo img{ height:116px; width:auto; transition:height .4s var(--ease); }
.nav__logo .logo-colour{ display:none; }
.nav__links{ display:flex; align-items:center; gap:clamp(1rem,2vw,2rem); }
.nav__links a{
  font-family:'DM Sans',sans-serif; font-size:.86rem; font-weight:500;
  letter-spacing:.04em; color:rgba(255,255,255,.85);
  padding:.4rem 0; position:relative; transition:color .25s var(--ease);
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:-2px; height:1.5px; width:0;
  background:var(--gold); transition:width .3s var(--ease);
}
.nav__links a:hover{ color:#fff; }
.nav__links a:hover::after{ width:100%; }
.nav__cta{ margin-left:.4rem; }

/* scrolled / on-light state */
.nav.is-solid{
  background:rgba(244,246,251,.94);
  backdrop-filter:saturate(140%) blur(10px);
  box-shadow:0 1px 0 var(--rule), 0 10px 30px -22px rgba(17,27,56,.5);
}
.nav.is-solid .nav__logo .logo-white{ display:none; }
.nav.is-solid .nav__logo .logo-colour{ display:block; }
.nav.is-solid .nav__logo img{ height:59px; }
.nav.is-solid .nav__links a{ color:var(--ink-soft); }
.nav.is-solid .nav__links a:hover{ color:var(--navy); }

.nav__toggle{ display:none; }

/* mobile menu */
.menu-btn{
  display:none; background:none; border:0; cursor:pointer; padding:.5rem;
  flex-direction:column; gap:5px; z-index:calc(var(--z-menu) + 1);
}
.menu-btn span{ display:block; width:26px; height:2px; background:#fff; transition:transform .35s var(--ease), opacity .25s; }
.nav.is-solid .menu-btn span{ background:var(--navy); }
.menu-open .menu-btn span{ background:#fff; }
.menu-open .menu-btn span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-open .menu-btn span:nth-child(2){ opacity:0; }
.menu-open .menu-btn span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-menu{
  position:fixed; inset:0; z-index:var(--z-menu);
  background:var(--dark-navy);
  display:flex; flex-direction:column; justify-content:center;
  padding:var(--gutter);
  transform:translateY(-100%);
  transition:transform .55s var(--ease);
  visibility:hidden;
}
.menu-open .mobile-menu{ transform:translateY(0); visibility:visible; }
.mobile-menu a{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(1.6rem,7vw,2.4rem); color:#fff; padding:.35em 0;
  border-bottom:1px solid var(--rule-dark);
}
.mobile-menu a:last-of-type{ border-bottom:0; }
.mobile-menu__close{
  position:absolute; top:clamp(1rem,2vw,1.5rem); right:clamp(1rem,2vw,1.5rem);
  background:none; border:0; cursor:pointer; padding:.6rem;
  width:44px; height:44px; display:flex; align-items:center; justify-content:center;
}
.mobile-menu__close::before,
.mobile-menu__close::after{
  content:""; position:absolute; width:28px; height:2px; background:#fff; border-radius:1px;
}
.mobile-menu__close::before{ transform:rotate(45deg); }
.mobile-menu__close::after{ transform:rotate(-45deg); }
.mobile-menu .btn{ margin-top:1.6rem; align-self:flex-start; }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; isolation:isolate;
  background:var(--navy);
  color:#fff;
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  overflow:hidden;
  padding-top:clamp(6rem,12vh,9rem);
  padding-bottom:clamp(3rem,6vh,5rem);
}
.hero__bg{
  position:absolute; inset:0; z-index:-3;
  background:var(--navy) center 30%/cover no-repeat;
  transform:scale(1.04);
}
/* flat legibility wash — preserves uniform blue; no gradients */
.hero__scrim{
  position:absolute; inset:0; z-index:-2;
  background:rgba(0,51,160,.5);
}
/* motif — once, right-anchored, fading at edges (supplied asset only) */
.hero__motif{
  position:absolute; z-index:-1; top:50%; right:-2%;
  transform:translateY(-50%);
  height:118%; width:auto; opacity:.16;
  pointer-events:none;
  -webkit-mask-image:radial-gradient(120% 90% at 75% 50%, #000 35%, transparent 78%);
          mask-image:radial-gradient(120% 90% at 75% 50%, #000 35%, transparent 78%);
}

/* ============================================================
   BRAND MOTIF — decorative arc pattern (supplied assets),
   recolored per section via CSS mask so it blends with the
   surrounding palette. Pattern itself is never altered.
   ============================================================ */
.deco-motif{
  display:block; position:absolute; pointer-events:none; z-index:0;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-size:contain;     mask-size:contain;
  -webkit-mask-position:center;  mask-position:center;
}
.deco-motif--line{
  -webkit-mask-image:url(../images/motif-line.svg);
          mask-image:url(../images/motif-line.svg);
  -webkit-mask-position:top center; mask-position:top center;
}
.deco-motif--block{
  -webkit-mask-image:url(../images/motif-block.svg);
          mask-image:url(../images/motif-block.svg);
}
/* host sections clip the motif and keep their content above it */
.about, .objectives, .sponsor, .prog-glance, .matters-dip, .frameworks, .reg-why{ position:relative; overflow:hidden; }
.about > .wrap, .objectives > .wrap,
.sponsor > .wrap, .prog-glance > .wrap, .matters-dip > .wrap, .frameworks > .wrap, .reg-why > .wrap{ position:relative; z-index:1; }

/* About — vertical strip down the left edge, tiled to fill */
.about .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; left:-3%;
  background-color:#bfc5c5; opacity:.32;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
/* Four Forces — line strip on the right edge, tiled to fill */
.matters-dip .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; right:-3%;
  background-color:#bfc5c5; opacity:.32;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
/* Objectives — line strip on the right edge, tiled to fill */
.objectives .deco-motif--line{
  width:clamp(120px,15vw,220px); height:100%; top:0; right:-3%;
  background-color:#bfc5c5; opacity:.32;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
/* Strategic Frameworks (mid-blue) — line motif on the left */
.frameworks .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; left:-3%;
  background-color:#fff; opacity:.18;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
/* Program at a Glance (mid-blue) — vertical strip on the left edge, tiled to fill */
.prog-glance .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; left:-3%;
  background-color:#fff; opacity:.18;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
/* Sponsorship — vertical strip on the left edge, tiled to fill */
.sponsor .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; left:-3%;
  background-color:#bfc5c5; opacity:.32;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
/* Why Attend (registration) — vertical strip on the left edge */
.reg-why .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; left:-3%;
  background-color:#bfc5c5; opacity:.32;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
/* FAQs — vertical strip on the right edge (mirrors Why Attend) */
.faqs .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; right:-3%;
  background-color:#bfc5c5; opacity:.32;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
/* Delegate Passes + Why Attend (homepage) — one continuous right-edge strip
   spanning both stacked sections, matching the About motif. */
.tickets, .attend-feat-v2{ position:relative; overflow:hidden; }
.tickets > .wrap, .attend-feat-v2 > .wrap{ position:relative; z-index:1; }
.tickets .deco-motif,
.home .attend-feat-v2 .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; right:-3%;
  background-color:#bfc5c5; opacity:.32;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
/* Program page — Summit Program (left strip, white motif on the mid-blue) */
.pa .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; left:-3%;
  background-color:#fff; opacity:.18;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
/* Program page — Matchmaking (right strip on the light-blue surface) */
.mm .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; right:-3%;
  background-color:#bfc5c5; opacity:.32;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}

@media (max-width:760px){
  .about .deco-motif,
  .prog-glance .deco-motif,
  .frameworks .deco-motif,
  .sponsor .deco-motif,
  .reg-why .deco-motif,
  .faqs .deco-motif,
  .pa .deco-motif,
  .mm .deco-motif,
  .objectives .deco-motif{ opacity:.20; width:clamp(80px,22vw,140px); }
}

.hero__inner{ width:100%; max-width:var(--maxw); margin-inline:auto; padding:0 var(--gutter); }
.hero__pre{
  font-family:'DM Sans',sans-serif; font-size:clamp(.8rem,1.4vw,.95rem);
  font-weight:600; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold); margin:0 0 1.3rem; display:flex; align-items:center; gap:.9rem;
}
.hero__pre::before{ content:""; width:3rem; height:2px; background:var(--crimson); }
.hero h1{
  font-size:var(--fs-h1); font-weight:900; line-height:.98; letter-spacing:-.025em;
  margin:0 0 .4rem; max-width:16ch;
}
.hero h1 .yr{ color:var(--gold); }
.hero__tag{
  font-family:'Raleway',sans-serif; font-weight:500; font-style:italic;
  font-size:clamp(1.5rem, .85rem + 2.4vw, 2.9rem); line-height:1.12; letter-spacing:-.015em;
  color:rgba(255,255,255,.94); margin:.6rem 0 2.2rem; max-width:32ch; text-wrap:balance;
}
.hero__meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:.85rem 1.4rem;
  font-family:'DM Sans',sans-serif; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; font-size:clamp(.82rem,1.2vw,1rem);
  color:#fff; margin-bottom:2.4rem;
}
.hero__meta .dot{ width:6px; height:6px; border-radius:50%; background:var(--gold); }
.hero__cta{ display:flex; flex-wrap:wrap; gap:1rem; }
.hero__scrollcue{
  margin-top:clamp(2.5rem,5vh,4rem);
  font-family:'DM Sans',sans-serif; font-size:.74rem; letter-spacing:.24em;
  text-transform:uppercase; color:rgba(255,255,255,.55);
  display:flex; align-items:center; gap:.7rem;
}
.hero__scrollcue .line{ width:46px; height:1px; background:rgba(255,255,255,.4); position:relative; overflow:hidden; }
.hero__scrollcue .line::after{ content:""; position:absolute; inset:0; background:var(--gold); transform:translateX(-100%); animation:cue 2.6s var(--ease) infinite; }
@keyframes cue{ 0%{transform:translateX(-100%)} 55%{transform:translateX(100%)} 100%{transform:translateX(100%)} }

/* hero load choreography */
.js .hero__pre, .js .hero h1, .js .hero__tag, .js .hero__meta, .js .hero__cta, .js .hero__scrollcue{
  animation:heroUp 1s var(--ease) both;
}
.js .hero h1{ animation-delay:.08s; }
.js .hero__tag{ animation-delay:.18s; }
.js .hero__meta{ animation-delay:.28s; }
.js .hero__cta{ animation-delay:.36s; }
.js .hero__scrollcue{ animation-delay:.5s; }
@keyframes heroUp{ from{ opacity:0; transform:translateY(26px);} to{ opacity:1; transform:none;} }

/* ============================================================
   STATS BAR
   ============================================================ */
.stats{ background:var(--crimson); color:#fff; }
.stats__row{
  display:grid; grid-template-columns:repeat(5,1fr);
  padding-block:clamp(2.2rem,3.6vw,3.6rem);
}
.stat{ padding:.6rem clamp(.8rem,2.2vw,1.8rem); text-align:center; position:relative; }
.stat + .stat::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  height:60%; width:1px; background:rgba(255,255,255,.22);
}
.stat__num{
  font-family:'Raleway',sans-serif; font-weight:800;
  font-size:clamp(2.1rem, 1.2rem + 2.8vw, 3.4rem); line-height:1;
  color:#fff; letter-spacing:-.025em;
}
.stat__num .pre{ color:#fff; font-size:.5em; vertical-align:.22em; font-weight:700; letter-spacing:0; }
.stat__label{
  margin-top:.8rem; font-family:'DM Sans',sans-serif; font-weight:600;
  font-size:clamp(.74rem,.85vw,.9rem); letter-spacing:.16em;
  text-transform:uppercase; color:rgba(255,255,255,.92); line-height:1.35;
}

/* ============================================================
   ABOUT
   ============================================================ */
.about{ background:var(--paper); }
.about__title{ margin-bottom:.4rem; }
.about__sub{
  font-family:'Raleway',sans-serif; font-weight:500; font-style:italic;
  font-size:clamp(1.05rem,1.1rem + .3vw,1.35rem); color:var(--ink);
  letter-spacing:-.01em; margin:0 0 clamp(2rem,3.5vw,3rem);
}
.about__grid{
  display:grid; grid-template-columns:1.15fr .85fr;
  gap:clamp(2rem,5vw,5rem); align-items:stretch;
}
.about__body{ margin-top:0; }
/* drop cap — editorial signature */
.about__body > p:first-child::first-letter{
  font-family:'Raleway',sans-serif; font-weight:900; color:var(--navy);
  font-size:3.6em; line-height:.78; float:left; margin:.05em .12em 0 0;
}
.about__aside{ position:relative; height:100%; }
.about__figure{
  position:relative; background:var(--navy);
  border-radius:2px; overflow:hidden;
  height:100%; min-height:0;
  box-shadow:0 30px 60px -40px rgba(0,51,160,.6);
}
.about__figure img{ width:100%; height:100%; object-fit:cover; }
.about__cap{
  font-family:'DM Sans',sans-serif; font-size:.78rem; color:var(--ink-muted);
  letter-spacing:.02em; margin-top:.85rem; padding-left:1rem;
  border-left:2px solid var(--crimson);
}
/* ============================================================
   FREEDOM 250 — Standalone American-themed callout section
   ============================================================ */
.freedom-usa{
  position:relative; overflow:hidden;
  background:var(--navy); color:#fff;
  padding:clamp(3.5rem,7vw,5.5rem) 0;
  border-top:5px solid var(--crimson);
  border-bottom:5px solid var(--crimson);
}
.freedom-usa .wrap{ position:relative; z-index:1; }
.freedom-usa__inner{
  display:grid; grid-template-columns:clamp(140px,16vw,220px) 1fr;
  gap:clamp(2.5rem,5vw,5rem); align-items:center;
}
.freedom-usa__emblem{ margin:0; text-align:center; }
.freedom-usa__emblem img{
  width:100%; height:auto;
}
.freedom-usa__kicker{
  font-family:'DM Sans',sans-serif; font-size:.75rem;
  font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); margin:0 0 .5rem; line-height:1;
}
.freedom-usa__title{
  font-family:'Raleway',sans-serif; font-weight:900;
  font-size:clamp(1.6rem,1rem + 2.2vw,2.8rem); line-height:1.1;
  letter-spacing:-.025em; color:#fff; text-transform:uppercase;
  margin:0 0 1.2rem;
  white-space:nowrap;
}
@media (max-width:680px){
  .freedom-usa__title{ white-space:normal; }
}
.freedom-usa__title span{ color:var(--gold); white-space:nowrap; }
.freedom-usa__content > p:not(.freedom-usa__kicker){
  color:rgba(255,255,255,.82); margin:0;
}
@media (max-width:680px){
  .freedom-usa__inner{ grid-template-columns:1fr; text-align:center; }
  .freedom-usa__emblem{ max-width:160px; margin-inline:auto; }
  .freedom-usa__content > p:not(.freedom-usa__kicker){ max-width:none; }
}


/* ============================================================
   STRATEGIC FRAMEWORKS — carousel
   ============================================================ */
.frameworks{
  background:var(--dark-navy);
}
.frameworks .eyebrow{ color:#fff; }
.frameworks .eyebrow::before{ background:#fff; }
.frameworks .h2{ color:#fff; }
.frameworks .h2 em{ color:var(--navy-deep); }
.frameworks__intro{ max-width:var(--measure); margin-bottom:clamp(1.6rem,3vw,2.5rem); color:rgba(255,255,255,.8); }

.fw-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,1.6vw,1.5rem);
  align-items:stretch;
}
.fw-card{
  position:relative; overflow:hidden;
  border-radius:4px;
  border:1px solid rgba(62,142,222,.5);
  background:#3E8EDE;
  min-height:clamp(280px,32vh,360px);
  display:flex;
}
.fw-card__img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; opacity:1;
  transition:transform 1s ease;
}
.fw-card:hover .fw-card__img{ transform:scale(1.05); }
/* black mask for headline legibility — image stays visible underneath at ~30% */
.fw-card__overlay{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.7) 45%, rgba(0,0,0,.45) 100%);
}
.fw-card__body{
  position:relative; z-index:1;
  margin-top:auto;
  padding:clamp(1rem,1.6vw,1.4rem);
}
.fw-card__kicker{
  display:flex; align-items:center; gap:.7rem;
  margin-bottom:.7rem;
}
.fw-card__kicker .kicker-line{ width:2rem; height:2px; background:#fff; }
.fw-card__kicker span:last-child{
  font-family:'Raleway','DM Sans',sans-serif;
  font-size:.65rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  color:#fff;
}
.fw-card h3{
  font-family:'Raleway',sans-serif;
  font-size:clamp(1.1rem, 1rem + .5vw, 1.4rem);
  font-weight:700; color:#fff;
  margin:0 0 .55rem; line-height:1.18; letter-spacing:-.02em;
}
/* description — matches Why Attend card body (1rem / 1.7); kept light for dark bg */
.fw-card p{
  font-family:'Raleway',sans-serif;
  font-weight:400;
  font-size:1rem; line-height:1.7;
  color:rgba(255,255,255,.82); margin:0; max-width:56ch;
}
/* 3-line clamp by default; expands to full body when card has .is-expanded */
.fw-card__desc{
  display:-webkit-box; -webkit-box-orient:vertical;
  -webkit-line-clamp:3; line-clamp:3;
  overflow:hidden;
}
.fw-card.is-expanded .fw-card__desc{
  display:block; -webkit-line-clamp:unset; line-clamp:unset; overflow:visible;
}
.fw-card__more{
  margin-top:.9rem; align-self:flex-start;
  display:inline-flex; align-items:center; gap:.4rem;
  background:transparent; border:0; padding:0; cursor:pointer;
  font-family:'Raleway',sans-serif; font-weight:600;
  font-size:.88rem; letter-spacing:.02em;
  color:#fff;
}
.fw-card__more:hover{ color:#ffd166; }
.fw-card__more-icon{
  font-size:20px; transition:transform .3s var(--ease);
  font-variation-settings:'FILL' 0,'wght' 500,'GRAD' 0,'opsz' 24;
}
.fw-card.is-expanded .fw-card__more-icon{ transform:rotate(180deg); }
@media (max-width:880px){
  .fw-grid{ grid-template-columns:1fr; }
  .fw-card{ min-height:240px; }
}

/* ============================================================
   WHY THIS SUMMIT MATTERS
   ============================================================ */
.matters{ background:var(--paper); }
.matters__lede{ max-width:var(--measure); }
.matters__lede .lead{ color:var(--ink); }
.matters__lede .lead::first-letter{
  font-family:'Raleway',sans-serif; font-weight:900; color:var(--crimson);
  font-size:2.4em; line-height:.8; float:left; margin:.06em .12em 0 0;
}
.matters__band{
  position:relative; margin:clamp(2.5rem,5vw,4.5rem) 0;
  height:clamp(220px,38vw,440px); border-radius:2px; overflow:hidden;
  background:var(--dark-navy);
}
.matters__band img{ width:100%; height:100%; object-fit:cover; opacity:.92; }
.matters__band .ovl{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,28,113,.55), rgba(0,28,113,0) 60%); }
.matters__band figcaption{
  position:absolute; left:clamp(1.2rem,3vw,2.4rem); bottom:clamp(1.2rem,3vw,2rem);
  color:#fff; font-family:'DM Sans',sans-serif; font-weight:500; max-width:30ch;
  font-size:clamp(.9rem,1.4vw,1.15rem); line-height:1.35;
  text-shadow:0 2px 18px rgba(0,20,64,.5);
}
.forces__title{ font-size:var(--fs-h3); font-weight:700; color:var(--navy); margin-bottom:clamp(1.6rem,3vw,2.4rem); }
.forces{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1.6rem,3.5vw,3rem) clamp(2rem,5vw,4.5rem); }
.force{ padding-top:1.4rem; border-top:2px solid var(--navy); }
.force__n{ font-family:'Raleway',sans-serif; font-weight:800; font-size:1.05rem; color:var(--crimson); letter-spacing:.05em; }
.force h4{ font-family:'Raleway',sans-serif; font-size:clamp(1.15rem,1rem+.6vw,1.45rem); font-weight:700; color:var(--navy); margin:.3rem 0 .7rem; }
.force p{ color:var(--ink-soft); }
.matters__close{ margin-top:clamp(2rem,4vw,3rem); font-size:var(--fs-lead); color:var(--navy); font-family:'Raleway',sans-serif; font-weight:500; font-style:italic; max-width:48ch; }
@media (max-width:680px){ .forces{ grid-template-columns:1fr; } }

/* ============================================================
   OBJECTIVES — bento grid
   ============================================================ */
.objectives{ background:var(--paper-deep); }

.bento-grid{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:clamp(1rem,1.5vw,1.5rem);
  margin-top:clamp(2rem,4vw,3rem);
}
.bento-card{
  background:#fff; border:1px solid var(--rule); border-radius:4px;
  padding:clamp(1.6rem,2.5vw,2.2rem); overflow:hidden;
  transition:transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s cubic-bezier(.4,0,.2,1), border-color .3s cubic-bezier(.4,0,.2,1);
}
.bento-card:hover{ transform:translateY(-4px); box-shadow:0 20px 40px -12px rgba(0,33,110,.15); border-color:var(--mid-blue); }
.bento-card--wide{ grid-column:1 / -1; padding:0; display:flex; min-height:260px; }
.bento-card--tall{ grid-row:span 2; display:flex; flex-direction:column; }
.bento-card--navy{ background:var(--navy); border-color:var(--navy); }
.bento-card--navy:hover{ border-color:var(--mid-blue); }
.bento-card--top-blue{ border-top:4px solid var(--mid-blue); }
.bento-card--left-cyan{ border-left:4px solid #00ADD8; align-self:start; }
.bento-card--surface{ background:#dde1ff; align-self:start; }

.bento-wide__body{
  padding:clamp(1.6rem,2.5vw,2.2rem); flex:1;
  display:flex; flex-direction:column; justify-content:flex-start;
}
.bento-wide__img{ flex:0 0 50%; position:relative; overflow:hidden; }
.bento-wide__img img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.bento-card--wide:hover .bento-wide__img img{ transform:scale(1.05); }

.bento-tall__img{ border-radius:3px; overflow:hidden; margin-top:1.2rem; flex:1 1 0; min-height:0; position:relative; }
.bento-tall__img img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s ease;
}
.bento-card--tall:hover .bento-tall__img img{ transform:scale(1.05); }

.bento-card__icon{
  font-family:'Material Symbols Outlined';
  font-size:2rem; line-height:1;
  font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;
  font-style:normal; display:inline-block; margin-bottom:.9rem;
  color:var(--mid-blue);
  transition:transform .3s ease;
  transform-origin:left center;
}
.bento-card--navy .bento-card__icon{ color:var(--gold); }
.bento-card--left-cyan .bento-card__icon{ color:#00ADD8; }
.bento-card:hover .bento-card__icon{ transform:scale(1.2); }

.bento-card__title{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(1.1rem,1rem+.65vw,1.45rem); line-height:1.15; letter-spacing:-.02em;
  color:var(--navy); margin:0 0 .75rem;
}
.bento-card--navy .bento-card__title{ color:#fff; }
.bento-card__body{ color:var(--ink-soft); font-size:1rem; line-height:1.6; }
.bento-card--navy .bento-card__body{ color:rgba(255,255,255,.8); }

@media(max-width:760px){
  .bento-card--wide{ flex-direction:column; }
  .bento-wide__img{ flex:none; height:220px; position:relative; }
  .bento-card--tall{ grid-row:auto; }
  .bento-tall__img{ flex:none; height:220px; }
  .bento-grid{ grid-template-columns:1fr; }
}


/* ============================================================
   PROGRAM AT A GLANCE
   ============================================================ */
.prog-glance{
  background:var(--dark-navy); color:#fff; position:relative; overflow:hidden;
}
.prog-glance .eyebrow{ color:#fff; }
.prog-glance .eyebrow::before{ background:#fff; }
.prog-glance .h2{ color:#fff; }
.prog-glance .h2 em{ color:var(--navy-deep); }
.prog-glance__days{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,3vw,2.5rem);
  margin-top:clamp(2.4rem,4vw,3.2rem);
}
.prog-day{
  --prog-time-col:10.5rem;
  background:rgba(255,255,255,.04); border:1px solid var(--rule-dark);
  border-radius:6px; overflow:hidden;
  display:flex; flex-direction:column;
}
.prog-day__header{
  padding:clamp(1.2rem,2vw,1.6rem) clamp(1.4rem,2.5vw,2rem);
  border-bottom:1px solid var(--rule-dark);
  display:flex; align-items:baseline; gap:.8rem; flex-wrap:wrap;
}
.prog-day__label{
  font-family:'Raleway',sans-serif; font-weight:900; font-size:clamp(1.2rem,1.1rem+.6vw,1.55rem);
  color:#fff; letter-spacing:-.01em;
}
.prog-day__date{
  font-family:'DM Sans',sans-serif; font-weight:700; font-size:.95rem;
  color:var(--navy-deep); letter-spacing:.02em;
}
.prog-day__rows{ padding:0; margin:0; list-style:none; flex:1 1 auto; position:relative; }
/* one continuous column divider, runs full height even past the last row */
.prog-day__rows::before{
  content:""; position:absolute; top:0; bottom:0; left:var(--prog-time-col);
  width:1px; background:var(--rule-dark);
}
.prog-row{
  display:grid; grid-template-columns:var(--prog-time-col) 1fr;
  border-bottom:1px solid var(--rule-dark);
  transition:background .3s var(--ease);
}
.prog-row:last-child{ border-bottom:0; }
.prog-row:hover{ background:rgba(255,255,255,.06); }
.prog-row__time{
  font-family:'Raleway',sans-serif; font-weight:800; font-size:clamp(.88rem,.84rem+.2vw,.96rem);
  color:#fff; letter-spacing:.02em; white-space:nowrap;
  padding:clamp(.9rem,1.5vw,1.2rem) .9rem clamp(.9rem,1.5vw,1.2rem) clamp(1.2rem,2vw,1.6rem);
  display:flex; align-items:baseline; gap:.4rem;
}
.prog-row__breakouts{
  list-style:none; margin:.6rem 0 0; padding:0; display:grid; gap:.35rem;
}
.prog-row__breakouts li{
  position:relative; padding-left:1rem;
  font-size:.92em; color:rgba(255,255,255,.72); line-height:1.45;
}
.prog-row__breakouts li::before{
  content:""; position:absolute; left:0; top:.55em;
  width:4px; height:4px; border-radius:50%; background:var(--navy-deep);
}
.prog-row__breakouts strong{ color:#fff; font-weight:700; }
.prog-row__session{
  font-family:'DM Sans',sans-serif; font-size:clamp(1rem,.95rem+.3vw,1.12rem); font-weight:500;
  color:rgba(255,255,255,.85); line-height:1.55;
  padding:clamp(.9rem,1.5vw,1.2rem) clamp(1.2rem,2vw,1.6rem);
}
.prog-row--highlight .prog-row__session{
  color:#fff; font-weight:600;
}
.prog-row--networking .prog-row__session{
  color:#fff;
}
/* opening segment, breaks, concurrent sessions — title font colour only
   (row background stays identical to the other rows) */
.prog-row--accent .prog-row__session{ color:var(--navy); font-weight:700; }
.prog-row--accent .prog-row__breakouts li{ color:rgba(255,255,255,.72); font-weight:400; }
.prog-glance__note{
  margin-top:clamp(1.6rem,3vw,2.2rem);
  font-family:'DM Sans',sans-serif; font-size:.85rem;
  color:rgba(255,255,255,.4); letter-spacing:.02em;
}
.prog-glance__cta{
  margin-top:clamp(1.4rem,2.5vw,2rem);
}
@media (max-width:760px){
  .prog-glance__days{ grid-template-columns:1fr; }
  .prog-day{ --prog-time-col:7rem; }
  .prog-row__time{ white-space:normal; }
}

/* ============================================================
   PROGRAM
   ============================================================ */
.program{ background:var(--paper-deep); }
.program__head{ max-width:var(--measure); margin-bottom:clamp(2.2rem,4vw,3.2rem); }
.days{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3.5rem); }
.day{ background:var(--paper); border:1px solid var(--rule); border-radius:2px; padding:clamp(1.6rem,3vw,2.6rem); }
.day__tag{ font-family:'DM Sans',sans-serif; font-weight:600; letter-spacing:.2em; text-transform:uppercase; font-size:.76rem; color:var(--crimson); }
.day h3{ font-family:'Raleway',sans-serif; font-size:clamp(1.6rem,1.2rem+2vw,2.6rem); font-weight:900; color:var(--navy); letter-spacing:-.02em; line-height:1; margin:.4rem 0 .2rem; }
.day__date{ font-family:'DM Sans',sans-serif; color:var(--ink-muted); font-weight:500; margin-bottom:1.4rem; font-size:.95rem; }
.day ul{ list-style:none; margin:0; padding:0; }
.day li{ padding:.85rem 0; border-top:1px solid var(--rule); font-family:'Raleway',sans-serif; font-weight:500; color:var(--ink); display:flex; gap:.8rem; align-items:baseline; }
.day li::before{ content:""; width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:var(--gold); transform:translateY(-2px); }
.day .feature{ color:var(--navy); font-weight:700; }
.program__note{ margin-top:clamp(1.6rem,3vw,2.2rem); font-family:'DM Sans',sans-serif; font-size:.85rem; color:var(--ink-muted); letter-spacing:.02em; }
@media (max-width:680px){ .days{ grid-template-columns:1fr; } }

/* ============================================================
   SPONSORSHIP — tier teaser / rate ladder
   ============================================================ */
.sponsor{ background:var(--paper); }
.sponsor__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; margin-bottom:clamp(2.4rem,4vw,3.4rem); }
.sponsor__body p{ color:var(--ink-soft); }
.sponsor__benefits{ list-style:none; margin:0; padding:0; columns:1; }
.sponsor__benefits li{ position:relative; padding:.7rem 0 .7rem 1.7rem; border-bottom:1px solid var(--rule); font-family:'DM Sans',sans-serif; color:var(--ink); font-weight:500; line-height:1.5; }
.sponsor__benefits li::before{ content:""; position:absolute; left:0; top:1.1rem; width:.55rem; height:.55rem; background:var(--gold); transform:rotate(45deg); }

/* glass-card grid — sponsorship benefits, aligned with accordion width */
.sponsor-benefits{
  list-style:none; margin:0 auto clamp(2.4rem,4vw,3.4rem); padding:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1rem,1.8vw,1.5rem);
  max-width:1240px;
  width:100%;
}
.sponsor-glass{
  position:relative; overflow:hidden;
  display:flex; align-items:center; gap:clamp(1rem,1.8vw,2rem);
  padding:clamp(1rem,1.8vw,1.5rem);
  background:rgba(255,255,255,.7);
  border:1px solid rgba(255,255,255,.5);
  border-left:4px solid var(--navy);
  border-radius:.5rem;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:transform .3s cubic-bezier(.4,0,.2,1),
             background .3s cubic-bezier(.4,0,.2,1),
             border-color .3s cubic-bezier(.4,0,.2,1),
             box-shadow .3s cubic-bezier(.4,0,.2,1);
}
.sponsor-glass:hover{
  transform:translateY(-4px);
  background:rgba(255,255,255,.92);
  border-color:var(--navy);
  box-shadow:0 20px 40px -10px rgba(0,51,160,.12);
}
/* shimmer sweep — matches the snippet's `.shimmer-border::after` */
.sponsor-glass::after{
  content:""; position:absolute;
  top:-50%; left:-50%; width:200%; height:200%;
  background:linear-gradient(
    45deg,
    transparent 20%,
    rgba(0,51,160,.06) 40%,
    rgba(0,51,160,.12) 50%,
    rgba(0,51,160,.06) 60%,
    transparent 80%
  );
  transform:translateX(-100%) rotate(30deg);
  animation:sponsorShimmer 6s linear infinite;
  pointer-events:none;
}
@keyframes sponsorShimmer{
  to{ transform:translateX(100%) rotate(30deg); }
}
@media (prefers-reduced-motion: reduce){
  .sponsor-glass::after{ animation:none; }
}

.sponsor-glass__icon{
  flex-shrink:0;
  width:5rem; height:5rem; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--navy); /* per-card overrides below */
  transition:transform .3s var(--ease), background-color .3s var(--ease);
}
/* Six shades of blue across the six benefit cards */
.sponsor-benefits > li:nth-child(1) .sponsor-glass__icon{ background:#009ADD; }
.sponsor-benefits > li:nth-child(2) .sponsor-glass__icon{ background:#5CB3E4; }
.sponsor-benefits > li:nth-child(3) .sponsor-glass__icon{ background:#8FBFE9; }
.sponsor-benefits > li:nth-child(4) .sponsor-glass__icon{ background:#9FC6E2; }
.sponsor-benefits > li:nth-child(5) .sponsor-glass__icon{ background:#247DE1; }
.sponsor-benefits > li:nth-child(6) .sponsor-glass__icon{ background:#005CB9; }

/* Hover — settle on the brand navy across all six, icon stays white, gentle lift */
.sponsor-glass:hover .sponsor-glass__icon{
  transform:scale(1.08);
  background:var(--navy);
}

/* Force the full-colour SVG illustrations to render as crisp white silhouettes */
.sponsor-glass__icon img{
  width:48px; height:48px;
  object-fit:contain;
  filter:brightness(0) invert(1);
}

.sponsor-glass__label{
  font-family:'Raleway',sans-serif;
  font-weight:700;
  font-size:clamp(1rem,.95rem + .35vw,1.25rem);
  line-height:1.3; letter-spacing:-.01em;
  color:var(--navy); margin:0;
}

@media (max-width:560px){
  .sponsor-benefits{ gap:.6rem; }
  .sponsor-glass{ padding:.85rem; gap:.7rem; border-left-width:3px; }
  .sponsor-glass__icon{ width:3rem; height:3rem; }
  .sponsor-glass__icon .material-symbols-outlined{ font-size:22px; }
  .sponsor-glass__label{ font-size:.85rem; line-height:1.25; }
}
/* sponsor comparison table */
.sponsor-table-wrap{
  overflow-x:auto; margin-top:clamp(2rem,4vw,3rem);
  -webkit-overflow-scrolling:touch;
}
.sponsor-table{
  width:100%; border-collapse:collapse;
  font-family:'DM Sans',sans-serif; font-size:.88rem;
  min-width:800px;
}
.sponsor-table th,
.sponsor-table td{
  padding:clamp(.7rem,1.2vw,1rem) clamp(.6rem,1vw,.9rem);
  border:1px solid rgba(0,51,160,.12);
  vertical-align:middle; text-align:center;
}
.sponsor-table thead th{
  background:var(--dark-navy); color:#fff;
  font-family:'Raleway',sans-serif; font-weight:800;
  font-size:.82rem; letter-spacing:.08em; text-transform:uppercase;
  padding:clamp(.9rem,1.5vw,1.2rem) clamp(.6rem,1vw,.9rem);
}
.sponsor-table thead th .tier-price{
  display:block; font-family:'DM Sans',sans-serif; font-weight:600;
  font-size:.78rem; letter-spacing:.02em; text-transform:none;
  color:var(--gold); margin-top:.25rem;
}
.sponsor-table thead th:first-child{
  text-align:left; font-size:.78rem; letter-spacing:.14em; width:38%;
}
.sponsor-table thead th:not(:first-child){
  width:12.4%;
}
.sponsor-table tbody td:first-child{
  text-align:left; font-weight:500; color:var(--ink);
}
.sponsor-table tbody td:first-child strong{
  display:block; font-weight:700; color:var(--navy);
}
.sponsor-table tbody td:first-child em{
  font-style:italic; font-weight:400; color:var(--ink-muted); font-size:.84rem;
}
.sponsor-table tbody tr{ transition:background .25s var(--ease); }
.sponsor-table tbody tr:hover{ background:var(--paper-deep); }
.sponsor-table tbody tr:nth-child(even){ background:rgba(0,51,160,.02); }
.sponsor-table tbody tr:nth-child(even):hover{ background:var(--paper-deep); }
.sponsor-table .check{
  color:var(--dark-navy); font-size:1.15rem; font-weight:700;
}
.sponsor-table .empty{ color:transparent; }

/* ============================================================
   Partner With Us — compact icon-tile mosaic (primary concept).
   ============================================================ */
.sponsor-mosaic{
  list-style:none; padding:0;
  max-width:1240px; width:100%;
  margin:0 auto clamp(2.5rem,5vw,4rem);
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:.9rem;
}
/* flex-basis pins 3 per row; an odd last row (e.g. 5 items → 3+2) stays centered */
.sponsor-mosaic__item{ flex:0 1 calc(33.333% - .6rem); }
@media (max-width:880px){ .sponsor-mosaic__item{ flex-basis:calc(50% - .45rem); } }
@media (max-width:520px){ .sponsor-mosaic__item{ flex-basis:100%; } }

.sponsor-mosaic__item{
  display:flex; align-items:center; gap:1rem;
  padding:1.1rem 1.2rem;
  border-radius:.5rem;
  background:#fff;
  transition:transform .25s var(--ease), background .25s var(--ease);
}
.sponsor-mosaic__item:hover{ transform:translateY(-2px); }

/* Six brand-blue icon tiles — same palette as the disc icons in the primary version */
.sponsor-mosaic__icon{
  flex-shrink:0;
  width:3rem; height:3rem; border-radius:.4rem;
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .25s var(--ease), transform .3s var(--ease);
}
.sponsor-mosaic > li:nth-child(1) .sponsor-mosaic__icon{ background:#009ADD; }
.sponsor-mosaic > li:nth-child(2) .sponsor-mosaic__icon{ background:#5CB3E4; }
.sponsor-mosaic > li:nth-child(3) .sponsor-mosaic__icon{ background:#8FBFE9; }
.sponsor-mosaic > li:nth-child(4) .sponsor-mosaic__icon{ background:#9FC6E2; }
.sponsor-mosaic > li:nth-child(5) .sponsor-mosaic__icon{ background:#247DE1; }
.sponsor-mosaic > li:nth-child(6) .sponsor-mosaic__icon{ background:#005CB9; }
.sponsor-mosaic__item:hover .sponsor-mosaic__icon{ background:var(--navy); transform:scale(1.06); }

.sponsor-mosaic__icon img{
  width:1.6rem; height:1.6rem; object-fit:contain;
  filter:brightness(0) invert(1); /* force the full-colour SVGs to white silhouettes */
}
.sponsor-mosaic__label{
  font-family:'Raleway',sans-serif; font-weight:600;
  font-size:.98rem; line-height:1.35; letter-spacing:-.005em;
  color:var(--navy); margin:0;
}

/* sponsorship packages — accordion on the light section background */
.sponsor-packages__title{
  max-width:1240px; width:100%;
  margin:0 auto clamp(1.6rem,3vw,2.4rem);
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(1.4rem,1.1rem + 1.2vw,1.9rem);
  line-height:1.2; letter-spacing:-.015em;
  color:var(--navy);
}
.sponsor-packages{
  max-width:1240px; width:100%;
  margin:0 auto clamp(2rem,4vw,3rem);
  display:grid; gap:.75rem;
}
.pkg-acc{
  background:#fff;
  border:1px solid var(--rule);
  border-left:4px solid var(--crimson);
  border-radius:10px;
  overflow:hidden;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.pkg-acc:hover{
  border-color:var(--crimson);
  box-shadow:0 12px 24px -18px rgba(0,51,160,.18);
}
.pkg-acc.is-open{
  box-shadow:0 18px 36px -22px rgba(0,51,160,.22);
}

/* clickable header */
.pkg-acc__head{
  display:flex; align-items:center; gap:clamp(1rem,2vw,1.5rem);
  width:100%; padding:clamp(1.1rem,2vw,1.6rem) clamp(1.2rem,2.4vw,2rem);
  background:transparent; border:0; cursor:pointer;
  text-align:left; color:inherit;
  font:inherit;
  transition:background .25s var(--ease);
}
.pkg-acc__head:hover{ background:rgba(0,51,160,.025); }
.pkg-acc__head:focus-visible{
  outline:2px solid var(--crimson); outline-offset:-2px;
}
.pkg-acc__heading{ flex:1; min-width:0; }
.pkg-acc__price{
  font-family:'Raleway',sans-serif; font-weight:800;
  font-size:clamp(1.6rem,1.2rem + 1.8vw,2.4rem); line-height:1;
  letter-spacing:-.025em; color:var(--navy); margin:0 0 .35rem;
}
.pkg-acc__cur{
  font-size:.55em; vertical-align:.3em; font-weight:700;
  margin-right:.08em; letter-spacing:0; color:var(--navy);
}
.pkg-acc__tier{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(1.05rem,1rem + .4vw,1.35rem);
  color:var(--ink); margin:0 0 .35rem; letter-spacing:-.01em;
}
.pkg-acc__desc{
  font-family:'Raleway',sans-serif; font-weight:400;
  font-size:1rem; line-height:1.6;
  color:var(--ink-soft); margin:0; max-width:74ch;
}

/* chevron */
.pkg-acc__chev{
  flex-shrink:0;
  width:2.5rem; height:2.5rem; border-radius:50%;
  background:rgba(0,51,160,.08);
  color:var(--navy);
  display:inline-flex; align-items:center; justify-content:center;
  transition:transform .4s cubic-bezier(.4,0,.2,1),
             background .25s var(--ease), color .25s var(--ease);
}
.pkg-acc__chev svg{ width:1.1rem; height:1.1rem; }
.pkg-acc.is-open .pkg-acc__chev{
  transform:rotate(180deg);
  background:var(--crimson); color:#fff;
}

/* smooth height animation via grid-template-rows */
.pkg-acc__panel{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .45s cubic-bezier(.4,0,.2,1);
}
.pkg-acc.is-open .pkg-acc__panel{ grid-template-rows:1fr; }
.pkg-acc__panel-inner{
  min-height:0; overflow:hidden;
  padding:0 clamp(1.2rem,2.4vw,2rem);
  opacity:0;
  transition:opacity .35s ease .05s, padding .35s ease;
}
.pkg-acc.is-open .pkg-acc__panel-inner{
  opacity:1;
  padding:0 clamp(1.2rem,2.4vw,2rem) clamp(1.4rem,2.4vw,1.8rem);
}

/* benefits list */
.pkg-acc__benefits{
  list-style:none; margin:0; padding:1rem 0 0;
  border-top:1px solid var(--rule);
  display:grid; gap:.75rem;
}
.pkg-acc__benefits > li{
  display:grid; grid-template-columns:auto 1fr; gap:.85rem;
  align-items:start;
}
.pkg-acc__bullet{
  flex-shrink:0; margin-top:.55rem;
  width:.5rem; height:.5rem; border-radius:50%;
  background:var(--crimson);
}
.pkg-acc__lead{
  font-family:'Raleway',sans-serif; font-weight:600;
  font-size:1rem; line-height:1.5;
  color:var(--ink); margin:0;
}
.pkg-acc__sub{
  list-style:none; margin:.4rem 0 0; padding:0;
  display:grid; gap:.25rem;
}
.pkg-acc__sub li{
  position:relative; padding-left:1rem;
  font-family:'Raleway',sans-serif; font-weight:400;
  font-size:.95rem; line-height:1.55;
  color:var(--ink-soft);
}
.pkg-acc__sub li::before{
  content:""; position:absolute; left:0; top:.65em;
  width:.4rem; height:1px; background:var(--ink-muted);
}

@media (prefers-reduced-motion: reduce){
  .pkg-acc__panel,
  .pkg-acc__panel-inner,
  .pkg-acc__chev{ transition:none; }
}

@media (max-width:560px){
  .pkg-acc__head{ gap:.85rem; padding:1rem 1rem; }
  .pkg-acc__chev{ width:2.2rem; height:2.2rem; }
  .pkg-acc__desc{ font-size:.92rem; }
  .pkg-acc__lead{ font-size:.95rem; }
}

.sponsor__cta{
  margin:clamp(2rem,4vw,3rem) auto 0;
  max-width:1240px;
  width:100%;
}
@media (max-width:760px){
  .sponsor__grid{ grid-template-columns:1fr; }
}

/* ============================================================
   FOOTER
   ============================================================ */
/* Thin horizontal motif band above the footer (pitch-deck style).
   Uses the supplied one-row horizontal motif (240×30), tiled across and
   scaled to the band height for a clean, non-distracting strip. */
.footer-band{
  height:clamp(34px,4.5vw,54px);
  /* The Get in Touch section (sky-soft) now sits directly above the band on every
     page, so the band matches it for a seamless transition into the footer. */
  background:var(--sky-soft);
  position:relative; overflow:hidden;
}
.footer-band::before{
  content:""; position:absolute; inset:0;
  background-color:var(--mid-blue); opacity:.5;
  -webkit-mask:url(../../../../uploads/2026/06/horizontal-motif.svg) repeat-x center / auto 100%;
          mask:url(../../../../uploads/2026/06/horizontal-motif.svg) repeat-x center / auto 100%;
}

/* Get in Touch — standalone section above the footer */
.getintouch{ background:var(--sky-soft); }
.getintouch__title{ text-align:center; margin:0 0 clamp(2.5rem,5vw,4rem); }
.getintouch__grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(2rem,4vw,3.5rem); max-width:1200px; margin-inline:auto;
}
.git-col{ padding-left:clamp(1.2rem,2vw,1.8rem); border-left:3px solid var(--rule); }
.git-col--gold{ border-left-color:var(--gold); }
.git-col--crimson{ border-left-color:var(--crimson); }
.git-col--navy{ border-left-color:var(--navy); }
.git-col__icon{ display:inline-flex; }
.git-col__icon svg{ width:46px; height:46px; }
.git-col--gold .git-col__icon{ color:var(--gold); }
.git-col--crimson .git-col__icon{ color:var(--crimson); }
.git-col--navy .git-col__icon{ color:var(--navy); }
.git-col__title{
  color:var(--navy); font-family:'Raleway',sans-serif; font-weight:800;
  font-size:clamp(1.15rem,1rem+.7vw,1.45rem); line-height:1.2; margin:1.1rem 0 1rem;
}
.git-col__lead{ color:var(--ink); font-family:'DM Sans',sans-serif; font-size:.95rem; line-height:1.6; margin:0 0 1rem; }
.git-col__lead span{ display:block; }
.git-col__meta{ color:var(--ink); font-family:'DM Sans',sans-serif; font-size:.95rem; line-height:1.9; margin:0; }
.git-col__meta a{ color:var(--ink); }
.git-col__meta a:hover{ color:var(--navy); }
.git-col__address{ font-style:normal; color:var(--ink-soft); font-family:'DM Sans',sans-serif; font-size:.95rem; line-height:1.7; margin-top:1rem; }
.git-col__social{ list-style:none; display:flex; gap:.7rem; padding:0; margin:1.2rem 0 0; }
.git-col__social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:50%; background:var(--navy); color:#fff;
  transition:transform .25s var(--ease), background .25s var(--ease);
}
.git-col__social a:hover{ transform:translateY(-3px); background:var(--navy-deep); }
.git-col__social svg{ width:18px; height:18px; }
@media (max-width:880px){ .getintouch__grid{ grid-template-columns:1fr; gap:2.2rem; } }

.footer{ background:var(--dark-navy); color:rgba(255,255,255,.78); position:relative; overflow:hidden; }
.footer__inner{ position:relative; z-index:1; padding-block:clamp(3.5rem,6vw,6rem); }
.footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:clamp(1.8rem,4vw,3.5rem); }
.footer__brand img{ height:246px; width:auto; max-width:100%; margin-bottom:1.4rem; }
.footer__brand p{ font-family:'Raleway',sans-serif; font-style:italic; font-weight:500; color:#fff; font-size:1.05rem; max-width:26ch; line-height:1.4; }
.footer__social{ display:flex; gap:.7rem; list-style:none; margin:1.4rem 0 0; padding:0; }
.footer__social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:2.4rem; height:2.4rem; border-radius:50%;
  background:var(--gold); /* brand gold #FFB819, PANTONE 1235 */
  transition:background .25s var(--ease), transform .25s var(--ease);
}
.footer__social a:hover{ background:#fff; transform:translateY(-2px); }
/* Pin the icon colour on the SVG so the sitewide .footer a:hover white rule can't flip it. */
.footer__social svg{ width:1.05rem; height:1.05rem; fill:var(--sky-blue); }
.footer__social a:hover svg{ fill:var(--sky-blue); }
.footer h4{ font-family:'DM Sans',sans-serif; font-size:.78rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:1.2rem; }
.footer ul{ list-style:none; margin:0; padding:0; }
.footer li{ margin-bottom:.7rem; }
.footer a, .footer address{ font-family:'DM Sans',sans-serif; font-size:.95rem; color:rgba(255,255,255,.78); font-style:normal; line-height:1.6; transition:color .25s var(--ease); }
.footer a:hover{ color:#fff; }
.footer__contact a{ display:block; }
.footer__contact .lbl{ color:rgba(255,255,255,.45); font-size:.78rem; letter-spacing:.05em; }
.footer__bottom{
  border-top:1px solid var(--rule-dark); margin-top:clamp(2.5rem,4vw,3.5rem); padding-top:1.8rem;
  display:flex; flex-wrap:wrap; gap:1rem 2rem; justify-content:space-between; align-items:center;
  font-family:'DM Sans',sans-serif; font-size:.82rem; color:rgba(255,255,255,.55);
}
.footer__bottom .pills{ display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; }
@media (max-width:880px){ .footer__top{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .footer__top{ grid-template-columns:1fr; } }

/* ============================================================
   RESPONSIVE — nav / grids
   ============================================================ */
@media (max-width:980px){
  .about__grid{ grid-template-columns:1fr; }
  .about__aside{ max-width:440px; height:auto; }
  .about__figure{ height:auto; aspect-ratio:4/3; }
  .nav__links{ display:none; }
  .menu-btn{ display:flex; }
  .nav__cta.desktop-only{ display:none; }
}
@media (max-width:680px){
  .sectors__intro{ flex-direction:column; align-items:flex-start; }
  .freedom{ grid-template-columns:1fr; }
  /* mobile stats: 2-col grid, last item spans full width, left-aligned */
  .stats__row{
    grid-template-columns:repeat(2,1fr);
    padding-block:0;
    row-gap:0; column-gap:0;
  }
  .stat{
    text-align:left;
    padding:clamp(1.6rem,5vw,2.2rem) clamp(1rem,4vw,1.8rem);
    border-bottom:1px solid rgba(255,255,255,.22);
  }
  /* remove vertical divider in mobile and use a column hairline instead */
  .stat + .stat::before{ display:none; }
  .stat:nth-child(odd){ border-right:1px solid rgba(255,255,255,.22); }
  .stat--wide{ grid-column:1 / -1; border-right:0; border-bottom:0; }
  .stat__label{ margin-top:.6rem; }
}

/* ============================================================
   SCROLL REVEAL — visible by default; JS enhances
   ============================================================ */
.js [data-animate]{
  opacity:0; transform:translateY(22px);
  filter:blur(4px);
  transition:opacity 1.1s cubic-bezier(.16,1,.3,1),
             transform 1.1s cubic-bezier(.16,1,.3,1),
             filter   .9s cubic-bezier(.16,1,.3,1);
  will-change:opacity, transform, filter;
}
.js [data-animate].in-view{ opacity:1; transform:none; filter:blur(0); }

/* Directional variants */
.js [data-animate="left"]{ transform:translateX(-32px); }
.js [data-animate="right"]{ transform:translateX(32px); }
.js [data-animate="scale"]{ transform:scale(.96); }
.js [data-animate="left"].in-view,
.js [data-animate="right"].in-view,
.js [data-animate="scale"].in-view{ opacity:1; transform:none; }

/* Eyebrow lines draw in */
.js .eyebrow::before{ transform:scaleX(0); transform-origin:left; transition:transform .7s cubic-bezier(.16,1,.3,1) .2s; }
.js .in-view .eyebrow::before,
.js .eyebrow.in-view::before{ transform:scaleX(1); }

/* Stagger children */
.js .stagger > *{
  opacity:0; transform:translateY(18px);
  filter:blur(3px);
  transition:opacity .95s cubic-bezier(.16,1,.3,1),
             transform .95s cubic-bezier(.16,1,.3,1),
             filter   .75s cubic-bezier(.16,1,.3,1);
}
.js .stagger.in-view > *{ opacity:1; transform:none; filter:blur(0); }
.js .stagger.in-view > *:nth-child(2){ transition-delay:.09s; }
.js .stagger.in-view > *:nth-child(3){ transition-delay:.18s; }
.js .stagger.in-view > *:nth-child(4){ transition-delay:.27s; }
.js .stagger.in-view > *:nth-child(5){ transition-delay:.36s; }
.js .stagger.in-view > *:nth-child(6){ transition-delay:.45s; }
.js .stagger.in-view > *:nth-child(7){ transition-delay:.54s; }
.js .stagger.in-view > *:nth-child(8){ transition-delay:.62s; }

@media (prefers-reduced-motion: reduce){
  .js [data-animate], .js .stagger > *{ opacity:1 !important; transform:none !important; transition:none !important; }
  .js .eyebrow::before{ transform:scaleX(1) !important; transition:none !important; }
  .js .hero__pre, .js .hero h1, .js .hero__tag, .js .hero__meta, .js .hero__cta, .js .hero__scrollcue{ animation:none !important; }
  .hero__scrollcue .line::after{ animation:none; }
}

/* ============================================================
   BACK TO TOP
   ============================================================ */
.back-top{
  position:fixed; bottom:2rem; right:2rem; z-index:900;
  width:48px; height:48px; border-radius:50%;
  background:var(--navy); color:#fff; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 20px rgba(0,28,113,.3);
  opacity:0; transform:translateY(12px);
  transition:opacity .4s var(--ease), transform .4s var(--ease), background .25s var(--ease);
  pointer-events:none;
}
.back-top.is-visible{ opacity:1; transform:none; pointer-events:auto; }
.back-top:hover{ background:var(--dark-navy); }
.back-top svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:520px){ .back-top{ bottom:1.2rem; right:1.2rem; width:42px; height:42px; } }

/* ============================================================
   TICKETS / PRICING — asymmetric card design
   ============================================================ */
.material-symbols-outlined{
  font-family:'Material Symbols Outlined';
  font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;
  font-style:normal; display:inline-block; line-height:1;
  text-transform:none; letter-spacing:normal; white-space:nowrap;
}
/* ============================================================
   TICKETS — compact 2-card layout, crimson titles & CTAs
   ============================================================ */
.tickets{ background:var(--sky-soft); padding-block:clamp(3rem,2rem + 4vw,5.5rem); }
.tickets__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,1.8vw,1.6rem);
  align-items:stretch;
}
.ticket-card{
  background:#fff;
  border-radius:6px;
  padding:clamp(1.4rem,2.2vw,2rem);
  display:flex; flex-direction:column;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.ticket-card:hover{ transform:translateY(-4px); box-shadow:0 12px 28px -16px rgba(0,51,160,.25); }

.ticket__header{ margin-bottom:1rem; }
.ticket__type{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(1.1rem,1rem + .4vw,1.35rem);
  color:var(--crimson); margin:0 0 .6rem;
  line-height:1.2; letter-spacing:-.01em;
}
.ticket__price-row{
  display:flex; align-items:baseline; gap:.15rem;
  margin:0;
}
.ticket__currency{
  font-family:'Raleway',sans-serif; font-weight:800;
  font-size:clamp(1.6rem,1.2rem + 1.4vw,2.4rem);
  color:var(--navy); line-height:1;
}
.ticket__price{
  font-family:'Raleway',sans-serif; font-weight:800;
  font-size:clamp(2rem,1.4rem + 2vw,3rem);
  color:var(--navy); letter-spacing:-.025em; line-height:1;
}
.ticket__note{
  font-family:'DM Sans',sans-serif; font-size:.86rem; font-weight:600;
  color:var(--navy); margin:.55rem 0 0;
}

.ticket__features{
  background:#fff; border-radius:6px;
  list-style:none; margin:0 0 1.2rem; padding:1rem 1.1rem;
  flex:1;
}
.ticket__features li{
  display:flex; align-items:flex-start; gap:.7rem;
  padding:.4rem 0;
  font-family:'DM Sans',sans-serif; font-size:.95rem;
  color:var(--ink-soft); line-height:1.45;
}
.ticket__check{
  flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; border-radius:50%;
  background:var(--crimson); color:#fff;
  font-size:.7rem; font-weight:700; line-height:1;
  margin-top:2px;
}

.ticket__cta{
  display:inline-flex; align-items:center; justify-content:center;
  width:100%; text-align:center;
  font-family:'Raleway',sans-serif; font-weight:600;
  font-size:1rem; letter-spacing:.02em;
  padding:.95rem 1.5rem;
  border:none; border-radius:6px; cursor:pointer;
  background:var(--crimson); color:#fff; text-decoration:none;
  transition:background .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease);
}
.ticket__cta:hover{ background:#8c052f; box-shadow:0 10px 22px -12px rgba(173,7,61,.55); }

@media (max-width:960px){
  .tickets__grid{ grid-template-columns:1fr; }
}

@media (max-width:860px){
  .tickets__grid{ grid-template-columns:1fr; max-width:480px; margin-inline:auto; }
  .ticket-card--member{ margin-top:0; margin-bottom:0; }
}

/* =========================================================================
   v3 · WHY THIS SUMMIT MATTERS — imported from variation-3-diplomatic
   ========================================================================= */
.matters-dip{ background:var(--white); }
.matters-dip__grid{ display:block; }
.matters-dip__aside{ position:static; }
.matters-dip__aside .lead{
  font-size:var(--fs-lead); color:var(--ink-soft); font-weight:300;
  line-height:1.5; margin-top:1.4rem; max-width:none;
  margin-bottom:clamp(1rem,1.8vw,1.5rem);
}
.matters-dip__aside .closer{
  margin-top:2rem; padding-top:1.6rem; border-top:1px solid var(--rule);
  font-family:'Raleway',sans-serif; font-weight:500; font-style:italic; color:var(--navy);
  font-size:clamp(1.05rem, 1rem + .5vw, 1.3rem); line-height:1.4; max-width:42ch; letter-spacing:-.01em;
}
.matters-dip .section__title{
  font-family:'Raleway',sans-serif;
  font-size:clamp(1.6rem, 1.0rem + 1.5vw, 2.6rem);
  font-weight:800; line-height:1.1; letter-spacing:-.025em; color:var(--navy); margin-top:.6rem;
}
.matters-dip .section__title .it{ font-style:italic; font-weight:300; color:var(--crimson); }
.matters-dip .eyebrow{ color:var(--crimson); }
.matters-dip .eyebrow::before{ background:var(--crimson); }
.matters-dip .matters__band{ margin-top:0; margin-bottom:clamp(1.5rem,3vw,2.5rem); }
.matters-dip .forces{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(2rem,5vw,4.5rem);
}
/* each column stacks independently so point 2 sits right under point 1
   (no row-height equalisation gap) — col 1 = points 1&2, col 2 = points 3&4 */
.matters-dip .forces__col{ display:flex; flex-direction:column; }
.matters-dip .forces__sub{
  font-family:'DM Sans',sans-serif; font-size:.78rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.5rem;
}
.matters-dip .force{
  display:grid; grid-template-columns:auto 1fr; gap:clamp(1.2rem,3vw,2.2rem); align-items:start;
  padding-block:clamp(1rem,1.8vw,1.4rem); border-top:1px solid var(--rule);
}
.matters-dip .force__no{
  font-family:'Raleway',sans-serif; font-weight:800; color:var(--navy); opacity:.22;
  font-size:clamp(2.4rem, 2rem + 2vw, 3.6rem); line-height:.85; letter-spacing:-.04em;
}
.matters-dip .force__txt h4{
  font-size:clamp(1.1rem, 1rem + .5vw, 1.4rem); font-weight:700; color:var(--navy);
  margin:0 0 .55rem; letter-spacing:-.02em;
}
.matters-dip .force__txt p{ font-family:'Raleway',sans-serif; font-weight:400; color:var(--ink-soft); font-size:1rem; line-height:1.7; max-width:56ch; }
.matters-dip .hl{ color:var(--crimson); font-weight:600; }
@media (max-width:880px){
  .matters-dip .forces{ grid-template-columns:1fr; }
}

/* ============================================================
   MEDIA — library images + exact-dimension placeholders
   ============================================================ */
.media-img { position: relative; overflow: hidden; line-height: 0; }
.media-img__el { width: 100%; height: 100%; object-fit: cover; }
.media-img--placeholder {
    width: 100%;
    background:
        linear-gradient(135deg, rgba(0,92,185,0.10), rgba(0,51,160,0.16)),
        repeating-linear-gradient(45deg, rgba(0,51,160,0.04) 0 14px, transparent 14px 28px);
    border: 1px dashed rgba(0,51,160,0.25);
    display: flex; align-items: center; justify-content: center;
}
.media-img__label {
    font-family: 'DM Sans', sans-serif; font-size: 12px; letter-spacing: 0.12em;
    text-transform: uppercase; color: rgba(0,28,113,0.5); padding: 8px 14px;
}

/* ============================================================
   FOCUS SECTORS — slider variant
   ============================================================ */
.sectors-slider{ background:#f8f9ff; }
.sectors-slider__header{ max-width:48rem; margin-bottom:clamp(1.5rem,3vw,2.5rem); }
.sectors-slider__eyebrow{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:.75rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--crimson); margin:0 0 1rem;
}
.sectors-slider__title{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(2rem,1.4rem + 2vw,3rem);
  line-height:1.1; letter-spacing:-.02em;
  color:var(--navy); margin:0 0 1.4rem;
}
.sectors-slider__title-em{
  font-style:italic; font-weight:500; color:var(--crimson);
}
.sectors-slider__lead{
  font-family:'Raleway',sans-serif; font-weight:400;
  font-size:clamp(1rem,.95rem + .3vw,1.125rem);
  line-height:1.55; color:var(--ink-soft); max-width:42rem; margin:0;
}

.sectors-slider__nav{
  display:flex; justify-content:flex-end; gap:1rem;
  margin-bottom:1rem;
}
.sectors-slider__btn{
  width:3rem; height:3rem; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:transparent; color:var(--navy);
  border:1px solid var(--rule); cursor:pointer;
  transition:background .25s var(--ease), transform .15s var(--ease), border-color .25s var(--ease);
}
.sectors-slider__btn:hover{ background:#eef2fb; }
.sectors-slider__btn:active{ transform:scale(.92); }
.sectors-slider__btn--primary{
  background:var(--navy); color:#fff; border-color:var(--navy);
}
.sectors-slider__btn--primary:hover{ background:#002884; }
.sectors-slider__btn .material-symbols-outlined{ font-size:24px; }

.sectors-slider__track{
  display:flex; gap:1.5rem;
  overflow-x:auto; padding-bottom:2rem;
  scroll-snap-type:x mandatory; scroll-behavior:smooth;
  align-items:stretch;
}
.no-scrollbar::-webkit-scrollbar{ display:none; }
.no-scrollbar{ -ms-overflow-style:none; scrollbar-width:none; }

.sectors-slider__card{
  position:relative;
  flex:0 0 100%;
  aspect-ratio:3 / 4; /* full-image portrait cards */
  background:var(--navy); /* shows while image is loading */
  border-radius:.5rem;
  overflow:hidden;
  scroll-snap-align:start;
  transition:box-shadow .3s var(--ease), transform .3s var(--ease);
}
.sectors-slider__card:hover{
  box-shadow:0 14px 28px -18px rgba(0,51,160,.35);
}
@media (min-width:640px){
  .sectors-slider__card{ flex:0 0 calc(50% - .75rem); }
}
@media (min-width:960px){
  .sectors-slider__card{ flex:0 0 calc(33.333% - 1rem); }
}
@media (min-width:1200px){
  /* four cards visible on screen — agra.org-style */
  .sectors-slider__card{ flex:0 0 calc(25% - 1.125rem); }
}

/* Image fills the entire card. Placeholder gradient until a real photo URL is set. */
.sectors-slider__media{
  position:absolute; inset:0;
  background:linear-gradient(135deg, var(--navy) 0%, var(--mid-blue) 60%, var(--sky-blue) 100%);
  background-size:cover; background-position:center;
  transform:scale(1);
  transition:transform 2s var(--ease);
}
.sectors-slider__card:hover .sectors-slider__media{ transform:scale(1.08); }

/* Brand-navy tint panel anchored to the bottom — grows upward on expand. */
.sectors-slider__panel{
  position:absolute; left:0; right:0; bottom:0;
  padding:clamp(1.1rem,1.6vw,1.5rem);
  display:flex; flex-direction:column;
  background:linear-gradient(to top, rgba(0,28,113,.92) 0%, rgba(0,28,113,.82) 60%, rgba(0,28,113,0) 100%);
  max-height:62%;
  transition:max-height .55s var(--ease), background .55s var(--ease);
  color:#fff;
}
.sectors-slider__card.is-expanded .sectors-slider__panel{
  max-height:100%;
  background:linear-gradient(to top, rgba(0,28,113,.94) 0%, rgba(0,28,113,.9) 100%);
}

.sectors-slider__card-title{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:1.2rem; line-height:1.25;
  color:#fff; margin:0 0 .55rem;
}
.sectors-slider__card-body{
  font-family:'Raleway',sans-serif; font-weight:400;
  font-size:.92rem; line-height:1.55;
  color:rgba(255,255,255,.92); margin:0 0 .9rem;
  display:-webkit-box; -webkit-box-orient:vertical;
  -webkit-line-clamp:3; line-clamp:3;
  overflow:hidden;
}
.sectors-slider__card.is-expanded .sectors-slider__card-body{
  display:block; -webkit-line-clamp:unset; line-clamp:unset; overflow:visible;
}
.sectors-slider__more{
  margin-top:auto; align-self:flex-start;
  display:inline-flex; align-items:center; gap:.4rem;
  background:transparent; border:0; padding:0; cursor:pointer;
  font-family:'Raleway',sans-serif; font-weight:600;
  font-size:.88rem; letter-spacing:.02em;
  color:#fff;
}
.sectors-slider__more:hover{ color:#ffd166; }
.sectors-slider__more-icon{
  font-size:20px; transition:transform .3s var(--ease);
  font-variation-settings:'FILL' 0,'wght' 500,'GRAD' 0,'opsz' 24;
}
.sectors-slider__card.is-expanded .sectors-slider__more-icon{ transform:rotate(180deg); }

.sectors-slider__progress{
  display:flex; align-items:center; gap:1rem; margin-top:.5rem;
}
.sectors-slider__progress-track{
  flex:1; height:4px; background:#e5eeff;
  border-radius:9999px; overflow:hidden;
}
.sectors-slider__progress-bar{
  height:100%; background:var(--navy);
  transition:width .3s var(--ease);
}
.sectors-slider__progress-label{
  font-family:'Raleway',sans-serif; font-weight:600;
  font-size:.875rem; letter-spacing:.05em;
  color:var(--ink-muted); min-width:60px; text-align:right;
}

/* ============================================================
   OBJECTIVES — timeline variant (6 circular icon nodes)
   ============================================================ */
.objectives-timeline{ background:var(--paper); }
.obj-timeline{
  position:relative;
  margin-top:clamp(2rem,4vw,3.5rem);
}
.obj-timeline__line{
  position:absolute; top:48px; left:8.33%; right:8.33%; height:2px;
  background:linear-gradient(90deg, var(--navy) 0%, var(--crimson) 100%);
  opacity:.32;
  pointer-events:none;
  transform-origin:left center;
  transform:scaleX(0);
  animation:objLineGrow 1.8s cubic-bezier(.16,1,.3,1) .15s forwards;
}
@keyframes objLineGrow{
  to{ transform:scaleX(1); }
}
@media (prefers-reduced-motion: reduce){
  .obj-timeline__line{ animation:none; transform:none; }
}
.obj-timeline__grid{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(6,minmax(0,1fr));
  gap:clamp(1rem,2vw,2rem);
  position:relative;
}
.obj-step{
  display:flex; flex-direction:column; align-items:center;
  text-align:center;
  opacity:0; transform:translateY(18px);
  animation:objStepIn .7s cubic-bezier(.16,1,.3,1) forwards;
  animation-delay:var(--delay,0ms);
}
@keyframes objStepIn{ to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){
  .obj-step{ animation:none; opacity:1; transform:none; }
}

.obj-step__ring{
  width:96px; height:96px; border-radius:50%;
  background:#fff; border:1px solid var(--rule);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 20px rgba(0,51,160,.08);
  margin-bottom:1.25rem;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
  position:relative; z-index:1;
}
.obj-step__disc{
  width:64px; height:64px; border-radius:50%;
  background:#eef2fb;
  display:flex; align-items:center; justify-content:center;
  transition:background .3s var(--ease);
}
/* icon is rendered via mask-image so brand color is controlled by CSS */
.obj-step__icon{
  display:block;
  width:36px; height:36px;
  background-color:var(--navy);
  -webkit-mask-image:var(--icon);
          mask-image:var(--icon);
  -webkit-mask-repeat:no-repeat;
          mask-repeat:no-repeat;
  -webkit-mask-position:center;
          mask-position:center;
  -webkit-mask-size:contain;
          mask-size:contain;
  transition:background-color .3s var(--ease);
}
.obj-step:hover .obj-step__ring{
  border-color:var(--crimson);
  box-shadow:0 10px 28px -12px rgba(173,7,61,.35);
}
.obj-step:hover .obj-step__disc{
  background:var(--crimson);
}
.obj-step:hover .obj-step__icon{ background-color:#fff; }

.obj-step__heading{
  margin:0;
  font-family:'Raleway',sans-serif;
  color:var(--navy);
  line-height:1.2;
}
.obj-step__kicker{
  display:block;
  font-family:'Raleway',sans-serif;
  font-weight:700; letter-spacing:-.01em;
  font-size:clamp(1.1rem,1rem + .5vw,1.35rem);
  color:var(--navy);
}
/* sub-line — matches "Why This Summit Matters" force description style */
.obj-step__sub{
  display:block; margin-top:.4rem;
  font-family:'Raleway',sans-serif;
  font-weight:400; font-size:var(--fs-body); line-height:1.68;
  color:var(--ink-soft);
}

@media (max-width:980px){
  .obj-timeline__line{ display:none; }
  .obj-timeline__grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:560px){
  .obj-timeline__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
  .obj-step__ring{ width:78px; height:78px; }
  .obj-step__disc{ width:52px; height:52px; }
  .obj-step__icon{ width:28px; height:28px; }
}

/* ============================================================
   WHY ATTEND — v2 (circular-icon redesign on flat navy)
   ============================================================ */
.attend-feat-v2{
  background:var(--sky-soft); /* matches the Delegate Passes section */
  color:var(--ink);
  position:relative; overflow:hidden;
}
.attend-feat-v2 .h2{ color:var(--navy); }
/* h2 em falls back to the default crimson on this light background */
.attend-v2__lead{
  font-family:'Raleway',sans-serif;
  font-size:var(--fs-lead); line-height:1.5; font-weight:400;
  color:rgba(255,255,255,.7);
  max-width:60ch;
  margin:0 0 clamp(2.5rem,5vw,4rem);
}

.attend-v2__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:2.5rem 2rem;
  max-width:1200px; margin-inline:auto;
  align-items:start;
}
.attend-v2__grid--3{
  grid-template-columns:repeat(3,minmax(0,1fr));
  max-width:1040px;
}
@media (max-width:880px){
  .attend-v2__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:2.5rem 1.25rem;
  }
  .attend-v2__grid--3{
    grid-template-columns:minmax(0,1fr);
    gap:2.25rem;
    max-width:340px;
  }
}

.attend-v2__item{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  transition:transform .5s cubic-bezier(.16,1,.3,1);
  cursor:default;
}
.attend-v2__item:hover{ transform:translateY(-8px); }

.attend-v2__halo{
  position:relative;
  width:160px; height:160px;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1.5rem;
}
.attend-v2__ring{
  position:absolute; inset:0;
  border:1.5px solid #fff;
  border-radius:50%;
  transition:transform .5s cubic-bezier(.16,1,.3,1);
}
.attend-v2__item:hover .attend-v2__ring{ transform:scale(1.1); }

.attend-v2__disc{
  width:128px; height:128px;
  border:1.5px solid #fff;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.06);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.attend-v2__icon{
  width:78px; height:78px;
  object-fit:contain;
  transform:scale(1);
  transition:transform .3s ease;
}
/* B2B/B2G icon ships with more interior padding — bump it so it reads at parity */
.attend-v2__icon[src*="Pre-Scheduled"]{ transform:scale(1.28); }
.attend-v2__item:hover .attend-v2__icon{ transform:scale(1.1); }
.attend-v2__item:hover .attend-v2__icon[src*="Pre-Scheduled"]{ transform:scale(1.4); }

.attend-v2__stem{
  position:absolute; left:50%; bottom:-.5rem;
  transform:translateX(-50%);
  width:2px; height:1.5rem;
  background:#fff;
}

.attend-v2__title{
  font-family:'Raleway',sans-serif;
  font-weight:700;
  font-size:1.15rem; line-height:1.3;
  letter-spacing:.01em;
  color:#fff;
  margin:1rem 0 0;
  max-width:280px;
}

@media (max-width:560px){
  .attend-v2__grid{ gap:2rem .75rem; }
  .attend-v2__halo{ width:118px; height:118px; margin-bottom:1rem; }
  .attend-v2__disc{ width:94px; height:94px; }
  .attend-v2__icon{ width:58px; height:58px; }
  .attend-v2__stem{ height:1rem; bottom:-.35rem; }
  .attend-v2__title{ font-size:.95rem; max-width:none; }
}

/* Why Attend — image circles with white border + dark mask, label inside */
.attend-circles{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:flex-start;
  gap:clamp(1.5rem,4.5vw,4rem);
  max-width:1180px; margin-inline:auto;
}
.attend-circle{
  flex:0 0 auto;
  /* desktop ~312px (+25%); mobile/tablet stay pinned at the 200px floor */
  width:clamp(200px, 25vw, 312px);
  position:relative; aspect-ratio:1/1; border-radius:50%; overflow:hidden;
  border:3px solid #fff;
  display:flex; align-items:center; justify-content:center; text-align:center;
}
.attend-circle__media{
  position:absolute; inset:0; background-size:cover; background-position:center;
  background-color:var(--navy); /* single, consistent fallback before the photo loads */
  transition:transform .6s cubic-bezier(.16,1,.3,1);
}
.attend-circle:hover .attend-circle__media{ transform:scale(1.12); }
/* uniform 50% black overlay across all three circles — single colour, no gradient */
.attend-circle__mask{ position:absolute; inset:0; background:rgba(0,0,0,.5); }
.attend-circle__label{
  position:relative; z-index:1; margin:0;
  padding:0 clamp(1rem, 2.5vw, 1.5rem);
  font-family:'Raleway',sans-serif; font-weight:500;
  font-size:clamp(0.9rem, 0.8rem + 0.4vw, 1.05rem); line-height:1.35; color:#fff;
}
.attend-circle__label strong{ font-weight:800; }

/* ============================================================
   INTERIOR PAGE HERO — compact variant of the homepage hero.
   Reuses .hero (navy bg, scrim, motif, load choreography); only
   trims the height and left-aligns a lead + breadcrumb.
   ============================================================ */
/* Taller interior hero — closer to the homepage so content breathes */
.hero--page{ min-height:clamp(74vh,80vh,860px); }
.hero--page .hero__inner{ display:flex; flex-direction:column; gap:.4rem; }
.hero--page h1{ font-size:clamp(2.3rem,1.5rem+3.2vw,4.4rem); max-width:22ch; }
/* Tight variant — smaller title (≈3 lines) with breathing room before the CTAs */
.hero--tight h1{ font-size:clamp(3rem, 2.2rem + 3vw, 4.8rem); max-width:30ch; line-height:1.18; }
/* mobile: shrink the long title so it wraps to ~5 lines instead of 6 */
@media (max-width:560px){ .hero--tight h1{ font-size:2.3rem; } }
.hero--tight .hero__cta{ margin-top:clamp(1.6rem,3vw,2.6rem); }
.hero--di .hero__cta{ margin-top:clamp(1.5rem,3vw,2.4rem); }
.hero__crumbs{
  font-family:'DM Sans',sans-serif; font-size:.76rem; letter-spacing:.14em;
  text-transform:uppercase; color:rgba(255,255,255,.6);
  display:flex; align-items:center; gap:.6rem; margin:0 0 1.3rem;
}
.hero__crumbs a{ color:rgba(255,255,255,.6); transition:color .25s var(--ease); }
.hero__crumbs a:hover{ color:#fff; }
.hero__crumbs .sep{ color:var(--gold); }
.hero__lead{
  font-family:'Raleway',sans-serif; font-weight:400;
  font-size:var(--fs-lead); line-height:1.5; color:rgba(255,255,255,.86);
  max-width:62ch; margin:.6rem 0 2rem;
}
.js .hero--page .hero__crumbs,
.js .hero--page .hero__lead{ animation:heroUp 1s var(--ease) both; }
.js .hero--page .hero__lead{ animation-delay:.22s; }
@media (prefers-reduced-motion: reduce){
  .js .hero--page .hero__crumbs, .js .hero--page .hero__lead{ animation:none !important; }
}

/* ============================================================
   PAGE SECTION — shared intro block (eyebrow + h2 + lead)
   ============================================================ */
.psec__head{ max-width:var(--measure); margin-bottom:clamp(2rem,4vw,3.2rem); }
.psec__lead{ font-size:var(--fs-lead); line-height:1.5; color:var(--ink-soft); margin-top:1.2rem; }
.psec--dark .psec__lead{ color:rgba(255,255,255,.8); }

/* ============================================================
   REGISTRATION — Why Attend benefit cards (icon + title + body)
   ============================================================ */
.reg-why{ background:var(--paper); }
.reg-why__grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1.2rem,2.4vw,2rem); margin-top:clamp(2rem,4vw,3rem);
}
.reg-why__card{
  position:relative; overflow:hidden;
  background:#fff; border:1px solid var(--rule); border-radius:10px;
  padding:clamp(1.6rem,2.6vw,2.4rem);
  display:flex; flex-direction:column; gap:1rem;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.reg-why__card:hover{
  transform:translateY(-5px);
  box-shadow:0 26px 50px -30px rgba(0,51,160,.3);
  border-color:var(--mid-blue);
}
.reg-why__idx{
  position:absolute; top:.7rem; right:1.3rem;
  font-family:'Raleway',sans-serif; font-weight:900; font-size:4rem; line-height:1;
  color:var(--navy); opacity:.06; letter-spacing:-.04em; pointer-events:none;
}
.reg-why__icon{
  width:3.4rem; height:3.4rem; border-radius:12px; flex-shrink:0;
  background:rgba(0,51,160,.08); color:var(--navy);
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .3s var(--ease), color .3s var(--ease);
}
.reg-why__icon .material-symbols-outlined{ font-size:30px; }
.reg-why__card:hover .reg-why__icon{ background:var(--crimson); color:#fff; }
.reg-why__title{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(1.15rem,1rem+.6vw,1.45rem); line-height:1.25;
  letter-spacing:-.01em; color:var(--navy); margin:0;
}
.reg-why__body{
  font-family:'Raleway',sans-serif; font-weight:400;
  font-size:1rem; line-height:1.7; color:var(--ink-soft); margin:0;
}
@media (max-width:760px){ .reg-why__grid{ grid-template-columns:1fr; } }

/* ============================================================
   FAQ — minimalist line accordion (shares the .is-open toggle from main.js)
   ============================================================ */
.faqs{ background:var(--paper-deep); position:relative; overflow:hidden; }
.faqs > .wrap{ position:relative; z-index:1; }
.faqs .psec__head{ max-width:var(--measure); margin-inline:auto; text-align:center; }
.faqs .psec__head .eyebrow{ justify-content:center; }

.faq{
  max-width:768px; margin:clamp(2rem,4vw,3rem) auto 0;
  display:grid; gap:0;
  border-top:1px solid var(--rule);
}
.faq-item{
  background:transparent; border:0; border-bottom:1px solid var(--rule); border-radius:0;
  overflow:hidden;
  transition:background .3s var(--ease);
}
.faq-item.is-open{ background:#fff; }
.faq-q{
  display:flex; align-items:center; gap:1.5rem; width:100%;
  padding:clamp(1.6rem,3vw,2.5rem) clamp(1rem,2vw,1.6rem);
  background:transparent; border:0; cursor:pointer; text-align:left; font:inherit; color:var(--navy);
}
.faq-q:focus-visible{ outline:2px solid var(--crimson); outline-offset:-2px; }
.faq-q__txt{
  flex:1; font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(1.15rem,1rem+.6vw,1.5rem); line-height:1.3; letter-spacing:-.01em;
  transition:color .25s var(--ease);
}
.faq-q:hover .faq-q__txt{ color:var(--gold); }
.faq-q__chev{
  flex-shrink:0; color:var(--gold);
  font-size:2rem; line-height:1;
  transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.faq-item.is-open .faq-q__chev{ transform:rotate(45deg); }
.faq-a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s cubic-bezier(.4,0,.2,1); }
.faq-item.is-open .faq-a{ grid-template-rows:1fr; }
.faq-a__inner{ min-height:0; overflow:hidden; }
.faq-a__inner p{
  font-family:'Raleway',sans-serif; font-weight:400; font-size:1rem; line-height:1.7;
  color:var(--ink-soft); margin:0; padding:0 clamp(1rem,2vw,1.6rem);
  max-width:42rem;
  opacity:0; transition:opacity .35s ease .05s;
}
.faq-item.is-open .faq-a__inner p{ opacity:1; padding-bottom:clamp(1.6rem,3vw,2.5rem); }
.faq-a__inner p a{ color:var(--crimson); font-weight:600; }
.faq-a__inner p a:hover{ text-decoration:underline; }
@media (prefers-reduced-motion: reduce){
  .faq-a, .faq-q__chev, .faq-a__inner p{ transition:none; }
}

/* ============================================================
   SPONSORSHIP — tier ladder (ascending price overview)
   ============================================================ */
.tier-ladder{
  display:grid; grid-template-columns:repeat(5,1fr); gap:.6rem;
  align-items:end; margin:clamp(2rem,4vw,3rem) 0;
}
.tier-rung{
  min-height:var(--h,120px);
  display:flex; flex-direction:column; justify-content:flex-end;
  background:#fff; border:1px solid var(--rule); border-top:5px solid var(--navy);
  border-radius:10px 10px 0 0; padding:1.4rem 1.1rem 1.5rem; text-align:center;
  box-shadow:0 14px 34px -24px rgba(0,51,160,.35);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.tier-rung:hover{ transform:translateY(-6px); box-shadow:0 22px 44px -26px rgba(0,51,160,.32); }
.tier-rung--peak{ border-top-color:var(--crimson); background:var(--navy); }
.tier-rung--peak .tier-rung__name{ color:var(--gold); }
.tier-rung--peak .tier-rung__price,
.tier-rung--peak .tier-rung__cur{ color:#fff; }
.tier-rung__name{
  font-family:'DM Sans',sans-serif; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; font-size:.72rem; color:var(--crimson); margin-bottom:.5rem;
}
.tier-rung__price{
  font-family:'Raleway',sans-serif; font-weight:800; letter-spacing:-.025em;
  font-size:clamp(1.05rem,.85rem+.85vw,1.7rem); color:var(--navy); line-height:1;
}
.tier-rung__cur{ font-size:.58em; vertical-align:.28em; margin-right:.04em; color:var(--navy); }
@media (max-width:680px){
  .tier-ladder{ grid-template-columns:repeat(5,minmax(118px,1fr)); overflow-x:auto; padding-bottom:.5rem; }
  .no-scrollbar::-webkit-scrollbar{ display:none; }
}

/* per-tier CTA inside the package accordion */
.pkg-acc__cta{ margin-top:1.3rem; }

/* ============================================================
   PARTNER / SPONSOR LOGO WALLS — placeholders until real logos
   ============================================================ */
/* Convened in Partnership — light slab, set apart from the dark footer */
.partners{
  background:var(--paper);
  position:relative; overflow:hidden;
  border-top:1px solid var(--rule);
  border-bottom:6px solid var(--crimson);
}
.partners .psec__lead{ max-width:var(--measure); color:var(--ink-soft); }
.partners__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(1rem,1.6vw,1.4rem);
  margin-top:clamp(1.6rem,3vw,2.4rem);
}
@media (max-width:880px){ .partners__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Alternate concept — eight logos on a single row (same paper bg as the grid above) */
.partners-strip{ background:var(--paper); }
.partners-strip__row{
  display:flex; flex-wrap:nowrap; align-items:stretch; justify-content:center;
  gap:clamp(.6rem,1.2vw,1rem);
  margin-top:clamp(1.6rem,3vw,2.4rem);
}
/* reuse the boxed squares from the grid; on desktop they fit one row */
.partners-strip__row .logo-ph{ flex:1 1 120px; min-width:0; padding:clamp(.55rem,.9vw,.85rem); }
/* zoom the logos to fill more of each square */
.partners-strip__row .logo-ph img{ max-width:92%; max-height:92%; }
/* tablet + mobile: wrap to three per row, all eight visible; last row centred */
@media (max-width:1024px){
  .partners-strip__row{ flex-wrap:wrap; }
  .partners-strip__row .logo-ph{ flex:0 1 30%; }
}

.logo-ph{
  border-radius:14px;
  padding:clamp(1.2rem,1.6vw,1.6rem);
  aspect-ratio:1 / 1;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.9rem; text-align:center;
  background:#fff;
  border:1px solid rgba(0,51,160,.10);
  box-shadow:
    0 1px 2px rgba(0,28,113,.04),
    0 14px 32px -22px rgba(0,28,113,.18);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.logo-ph:hover{
  transform:translateY(-4px);
  border-color:rgba(62,142,222,.45);
  box-shadow:
    0 2px 4px rgba(0,28,113,.06),
    0 28px 56px -24px rgba(0,28,113,.32);
}
/* Real logo (square asset, centred with generous padding) */
.logo-ph img{
  max-width:78%; max-height:78%;
  width:auto; height:auto; object-fit:contain;
  transition:transform .35s var(--ease);
}
.logo-ph:hover img{ transform:scale(1.04); }

/* Placeholder state: image-frame mark + partner name in caps */
.logo-ph__mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:56px; height:42px;
  color:rgba(0,51,160,.32);
}
.logo-ph.is-placeholder:hover .logo-ph__mark{ color:var(--mid-blue); }
.logo-ph__mark svg{ width:100%; height:100%; transition:color .3s var(--ease); }
.logo-ph__name{
  font-family:'DM Sans',sans-serif;
  font-size:.78rem; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; line-height:1.35;
  color:var(--navy); max-width:22ch;
}

.sponsor-logos{ background:var(--white); }
.sponsor-logos__cat{ margin-top:clamp(2rem,4vw,2.8rem); }
.sponsor-logos__cat-label{
  display:flex; align-items:center; gap:1rem; margin-bottom:1.2rem;
  font-family:'DM Sans',sans-serif; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; font-size:.8rem; color:var(--crimson);
}
.sponsor-logos__cat-label::after{ content:""; flex:1; height:1px; background:var(--rule); }
.sponsor-logos__row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1rem; }
.logo-ph--light{
  border:1px dashed rgba(0,51,160,.25);
  background:linear-gradient(135deg, rgba(0,92,185,.06), rgba(0,51,160,.09));
}
.logo-ph--light span{ color:rgba(0,28,113,.55); }

/* Our Sponsors — sits on the mid-blue program slab */
.sponsor-logos{ position:relative; overflow:hidden; }
.sponsor-logos > .wrap{ position:relative; z-index:1; }
.sponsor-logos .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; right:-3%;
  background-color:#fff; opacity:.18;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
/* light heading text for contrast on the blue */
.sponsor-logos .eyebrow{ color:#fff; }
.sponsor-logos .eyebrow::before{ background:#fff; }
.sponsor-logos .h2{ color:#fff; }
.sponsor-logos .psec__lead{ color:rgba(255,255,255,.85); }
.sponsor-logos__cat-label{ color:#fff; }
.sponsor-logos__cat-label::after{ background:rgba(255,255,255,.3); }
/* smaller placeholders, packed from the left to free up horizontal space */
.sponsor-logos__row{
  grid-template-columns:repeat(auto-fill, clamp(92px,11vw,116px));
  justify-content:start; gap:clamp(.7rem,1.4vw,1rem);
}
/* shadow instead of a border — raised cards that pop on the blue */
.sponsor-logos .logo-ph,
.sponsor-logos .logo-ph--light{
  border:0; background:#fff;
  padding:clamp(.7rem,1.2vw,1rem);
  box-shadow:0 10px 24px -12px rgba(0,18,70,.5);
}
.sponsor-logos .logo-ph--light span{ color:rgba(0,51,160,.62); font-size:.62rem; letter-spacing:.06em; }
.sponsor-logos .logo-ph:hover{
  transform:translateY(-6px) scale(1.03);
  box-shadow:0 24px 46px -16px rgba(0,18,70,.66);
}

/* ============================================================
   HOMEPAGE — pitch-deck colour pass
   Amplifies the secondary blues: airy sky-tint surfaces on the
   light sections, deep secondary navy (#001C71) on the dark slabs,
   cyan accents. Scoped to .home so interior pages are untouched.
   ============================================================ */
/* Light sections → pitch-deck airy sky tints */
.home .about,
.home .sectors-slider,
.home .sponsor{ background:var(--sky-pale); }
.home .matters-dip{ background:var(--sky-soft); }

/* Mid-blue slabs — same family as the Why Attend section */
.home .prog-glance,
.home .objectives,
.home .objectives-timeline,
.home .frameworks{ background:#3E8EDE; }

/* Objectives now sits on the mid-blue slab — light text for contrast */
.home .objectives .eyebrow{ color:#fff; }
.home .objectives .eyebrow::before{ background:#fff; }
.home .objectives .h2{ color:#fff; }
.home .objectives .h2 em{ color:var(--navy); }
.home .objectives .obj-step__kicker{ color:var(--navy-deep); }
.home .objectives .obj-step__sub{ color:rgba(255,255,255,.85); }

/* ============================================================
   REGISTRATION — mirror the homepage pitch-deck blue rhythm
   sky-pale → sky-soft → sky-pale, white cards pop on the soft band.
   These selectors are unique to page-registration.php.
   ============================================================ */
.reg-why{ background:var(--sky-pale); }

/* ============================================================
   FAQ — mid-blue slab, rounded-card accordion that blends with
   the section and stays consistent with the v2/v3 card radius.
   ============================================================ */
.faqs{ background:#3E8EDE; }
.faqs .eyebrow{ color:#fff; }
.faqs .eyebrow::before{ background:#fff; }
.faqs .h2{ color:#fff; }
.faqs .h2 em{ color:var(--navy-deep); }

.faqs .faq{ border:0; display:grid; gap:.85rem; }
.faqs .faq-item{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  border-radius:14px;
  overflow:hidden;
  transition:background .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease), transform .35s var(--ease);
}
.faqs .faq-item:hover{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.4);
}
.faqs .faq-item.is-open{
  background:#fff;
  border-color:transparent;
  box-shadow:
    0 1px 2px rgba(0,28,113,.10),
    0 18px 36px -18px rgba(0,28,113,.45);
}
.faqs .faq-q{ color:#fff; padding-block:clamp(1.1rem,2vw,1.5rem); }
.faqs .faq-q__txt{ transition:color .25s var(--ease); }
.faqs .faq-q:hover .faq-q__txt{ color:#fff; }
.faqs .faq-q__chev{ color:rgba(255,255,255,.8); }
.faqs .faq-item.is-open .faq-q{ color:var(--navy); }
.faqs .faq-item.is-open .faq-q:hover .faq-q__txt{ color:var(--crimson); }
.faqs .faq-item.is-open .faq-q__chev{ color:var(--crimson); }
.faqs .faq-item.is-open .faq-a__inner p{ color:var(--ink-soft); }

/* Footer: drop the 6px crimson rule sitting above the dark footer */
.partners{ border-bottom:0; }

/* ============================================================
   REGISTRATION — Why Attend v2 (horizontal, clamp + show more)
   Icons from homepage Why Attend; pattern matches .fw-card__desc.
   ============================================================ */
.reg-why-v2__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.6rem);
  margin-top:clamp(2rem,4vw,3rem);
  align-items:stretch;
}
.reg-why-v2__card{
  position:relative;
  display:flex; flex-direction:column;
  background:#fff; border:1px solid rgba(0,51,160,.08); border-radius:14px;
  padding:clamp(1.5rem,2.2vw,2rem);
  box-shadow:
    0 1px 2px rgba(0,28,113,.05),
    0 14px 28px -18px rgba(0,28,113,.22),
    inset 0 1px 0 rgba(255,255,255,.6);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .35s var(--ease);
}
.reg-why-v2__card::after{
  content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background:linear-gradient(90deg, var(--mid-blue), var(--sky-blue));
  border-radius:14px 14px 0 0;
  opacity:.0; transition:opacity .35s var(--ease);
}
.reg-why-v2__card:hover{
  transform:translateY(-6px);
  border-color:rgba(62,142,222,.45);
  box-shadow:
    0 2px 4px rgba(0,28,113,.06),
    0 32px 60px -24px rgba(0,28,113,.38),
    inset 0 1px 0 rgba(255,255,255,.7);
}
.reg-why-v2__card:hover::after{ opacity:1; }
.reg-why-v2__icon{
  width:3.6rem; height:3.6rem; border-radius:12px;
  background:linear-gradient(135deg, rgba(0,51,160,.10), rgba(0,92,185,.06));
  display:inline-flex; align-items:center; justify-content:center;
  margin-bottom:1.05rem;
}
.reg-why-v2__icon img{ width:2.4rem; height:2.4rem; object-fit:contain; }
/* B2B/B2G icon ships with more interior padding — scale to match the others */
.reg-why-v2__icon img[src*="Pre-Scheduled"]{ transform:scale(1.3); }
.reg-why-v2__title{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(1.05rem,.95rem + .4vw,1.2rem); line-height:1.25;
  color:var(--navy); margin:0 0 .75rem;
}
.reg-why-v2__desc{
  font-family:'Raleway',sans-serif; font-weight:400;
  font-size:.95rem; line-height:1.6; color:var(--ink-soft); margin:0;
  display:-webkit-box; -webkit-box-orient:vertical;
  -webkit-line-clamp:3; line-clamp:3;
  overflow:hidden;
}
.reg-why-v2__card.is-expanded .reg-why-v2__desc{
  display:block; -webkit-line-clamp:unset; line-clamp:unset; overflow:visible;
}
.reg-why-v2__more{
  margin-top:auto; padding-top:.9rem; align-self:flex-start;
  display:inline-flex; align-items:center; gap:.35rem;
  background:transparent; border:0; cursor:pointer;
  font-family:'Raleway',sans-serif; font-weight:600;
  font-size:.85rem; letter-spacing:.02em;
  color:var(--navy);
}
.reg-why-v2__more:hover{ color:var(--crimson); }
.reg-why-v2__more-icon{
  font-size:18px; transition:transform .3s var(--ease);
  font-variation-settings:'FILL' 0,'wght' 500,'GRAD' 0,'opsz' 24;
}
.reg-why-v2__card.is-expanded .reg-why-v2__more-icon{ transform:rotate(180deg); }
@media (max-width:1024px){ .reg-why-v2__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .reg-why-v2__grid{ grid-template-columns:1fr; } }

/* ============================================================
   REGISTRATION — Why Attend v3 (alt concept)
   White section, four cards solid-coloured with pitch-deck
   "Expected Outcomes" blues (darkest → lightest).
   ============================================================ */
.reg-why-v3{ background:#fff; }
.reg-why-v3__grid{ margin-top:0; }
.reg-why-v3 .reg-why-v2__card{
  border:0;
  color:#fff;
  background:var(--navy);
  box-shadow:
    0 2px 4px rgba(0,28,113,.10),
    0 24px 48px -22px rgba(0,28,113,.45);
}
.reg-why-v3 .reg-why-v2__card::after{
  background:linear-gradient(90deg, rgba(255,255,255,.6), rgba(255,255,255,0));
  height:2px;
}
.reg-why-v3 .reg-why-v2__card:hover{
  transform:translateY(-8px);
  border:0;
  box-shadow:
    0 4px 8px rgba(0,28,113,.14),
    0 36px 64px -22px rgba(0,28,113,.55);
}
.reg-why-v3 .reg-why-v2__card:nth-child(1){ background:#0033a1; }
.reg-why-v3 .reg-why-v2__card:nth-child(2){ background:#225ca7; }
.reg-why-v3 .reg-why-v2__card:nth-child(3){ background:#368ddd; }
.reg-why-v3 .reg-why-v2__card:nth-child(4){ background:var(--sky-blue); }
.reg-why-v3 .reg-why-v2__card:nth-child(5){ background:var(--navy-deep); }
/* Sponsorship Opportunities — five colored cards in one row, on the section bg */
.sponsor-opps{ background:transparent; }
.sponsor-opps .reg-why-v2__grid{ grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:clamp(2rem,4vw,3rem); }
/* Tablet + mobile: two per row → three rows, last card spans the full width */
@media (max-width:1024px){
  .sponsor-opps .reg-why-v2__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sponsor-opps .reg-why-v2__card:nth-child(5){ grid-column:1 / -1; }
}
/* Why Attend — three organic "blob" shapes on the sky-soft section bg */
.attend-opps{ background:transparent; }
.attend-opps .reg-why-v2__grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(3rem,5.8vw,4.75rem);   /* wider space between the shapes */
  max-width:1058px; margin:0 auto; /* grows with the gap so box size is unchanged (~303px) */
}
.attend-opps .reg-why-v2__card{
  aspect-ratio:1/1;            /* square */
  justify-content:center;
  /* extra left padding pushes content off the rounded left edge toward the right */
  padding:clamp(1.9rem,3vw,2.8rem) clamp(1rem,1.6vw,1.4rem) clamp(1.9rem,3vw,2.8rem) clamp(2.6rem,4.5vw,3.6rem);
  border:0;
  /* round top-left, top-right, bottom-left at 50%; bottom-right stays a right angle */
  border-radius:50% 50% 0 50%;
  overflow:hidden;
}
/* white inset ring tracing the blob outline */
.attend-opps .reg-why-v2__card::after{
  content:""; position:absolute; inset:7px;
  border:2px solid rgba(255,255,255,.85);
  border-radius:inherit;
  background:none; height:auto; opacity:1;
}
.attend-opps .reg-why-v2__icon{ width:4rem; height:4rem; }
.attend-opps .reg-why-v2__icon img{ width:2.7rem; height:2.7rem; }
@media (max-width:880px){
  /* mobile: about half the size, everything scaled down proportionately */
  .attend-opps .reg-why-v2__grid{ grid-template-columns:1fr; max-width:190px; gap:1.25rem; }
  .attend-opps .reg-why-v2__card{ padding:1.1rem .9rem 1.1rem 1.3rem; }
  .attend-opps .reg-why-v2__icon{ width:2.2rem; height:2.2rem; margin-bottom:.55rem; }
  .attend-opps .reg-why-v2__icon img{ width:1.4rem; height:1.4rem; }
  .attend-opps .reg-why-v2__title{ font-size:.8rem; line-height:1.25; margin-bottom:0; }
  .attend-opps .reg-why-v2__card::after{ inset:5px; border-width:1.5px; }
}
/* Homepage only: tighten the gap between Delegate Passes and these shapes.
   On the registration page the section keeps the default symmetric .section
   padding, so the boxes stay centred and clear of the hero. */
.home .attend-feat-v2{ padding-top:clamp(.6rem, .4rem + .8vw, 1.4rem); }
/* Registration: the Why Attend section keeps its full padding (so the box
   shadows aren't clipped by its overflow:hidden). The box→Delegate-Passes gap
   is trimmed by cutting the Delegate Passes section's top padding instead. */
body:not(.home) .tickets{ padding-top:clamp(.75rem, .5rem + 1vw, 1.3rem); }
.reg-why-v3 .reg-why-v2__icon{
  background:rgba(255,255,255,.18);
  backdrop-filter:blur(2px);
}
.reg-why-v3 .reg-why-v2__icon img{ filter:brightness(0) invert(1); }
.reg-why-v3 .reg-why-v2__title{ color:#fff; }
.reg-why-v3 .reg-why-v2__desc{ color:rgba(255,255,255,.92); }
.reg-why-v3 .reg-why-v2__more{ color:#fff; }
.reg-why-v3 .reg-why-v2__more:hover{ color:var(--gold); }

/* ============================================================
   DELEGATE INFORMATION — venue, travel, accommodation, health
   Shares the homepage blue rhythm + card aesthetic.
   ============================================================ */

/* Reusable image placeholder (real photos dropped in later) */
.di-photo{
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.5rem;
  background:linear-gradient(135deg, rgba(0,51,160,.07), rgba(0,92,185,.04));
  color:rgba(0,51,160,.4);
}
.di-photo__mark{ width:46px; height:34px; }
.di-photo__mark svg{ width:100%; height:100%; }
.di-photo__txt{
  font-family:'DM Sans',sans-serif; font-size:.72rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:rgba(0,51,160,.42);
}

/* ---- 2. Attending the Summit ---- */
.di-attend__grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.6rem); margin-top:clamp(2rem,4vw,3rem);
}
@media (max-width:760px){ .di-attend__grid{ grid-template-columns:1fr; } }

.di-card{
  position:relative;
  background:#fff; border:1px solid rgba(0,51,160,.08); border-radius:14px;
  padding:clamp(1.6rem,2.4vw,2.2rem);
  box-shadow:0 1px 2px rgba(0,28,113,.05), 0 14px 28px -20px rgba(0,28,113,.22);
}
.di-card--venue{ border-left:4px solid var(--crimson); }
.di-card--reg{ border-left:4px solid var(--sky-blue); }
.di-card__kicker{
  display:inline-block; margin-bottom:.7rem;
  font-family:'DM Sans',sans-serif; font-size:.74rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--crimson);
}
.di-card__title{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(1.2rem,1rem + .6vw,1.5rem); line-height:1.2;
  color:var(--navy); margin:0 0 .8rem;
}
.di-card__body{
  font-family:'Raleway',sans-serif; font-weight:400;
  font-size:1rem; line-height:1.7; color:var(--ink-soft); margin:0;
}
.di-card__cta{ margin-top:clamp(1rem,2vw,1.3rem); align-self:flex-start; }
/* Exempted Persons title — matches the Weather Advisory heading */
.di-card__heading{
  font-family:'Raleway',sans-serif; font-weight:700; font-size:clamp(1.2rem,1rem + .6vw,1.5rem);
  color:var(--navy); line-height:1.2; margin:0 0 .8rem;
}

/* CTA ribbon */
.di-ribbon{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.2rem;
  margin-top:clamp(1.6rem,3vw,2.4rem);
  padding:clamp(1.4rem,2.4vw,2rem) clamp(1.6rem,3vw,2.4rem);
  border-radius:16px; color:#fff;
  background:var(--navy);
  box-shadow:0 22px 44px -26px rgba(0,28,113,.5);
}
.di-ribbon__lead{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(1.2rem,1rem + .6vw,1.6rem); color:#fff; margin:0;
}
.di-ribbon__sub{
  font-family:'DM Sans',sans-serif; font-size:.95rem; color:rgba(255,255,255,.75); margin:.35rem 0 0;
}

/* ---- 3. Travel & Accommodation ---- */
.di-stay-feature{
  display:grid; grid-template-columns:.9fr 1.1fr;
  gap:clamp(1.4rem,3vw,2.6rem); align-items:stretch;
  margin-top:clamp(2rem,4vw,3rem);
  background:#fff; border-radius:18px; overflow:hidden;
  border:1px solid rgba(0,51,160,.08);
  box-shadow:0 2px 4px rgba(0,28,113,.06), 0 30px 60px -32px rgba(0,28,113,.4);
}
@media (max-width:820px){ .di-stay-feature{ grid-template-columns:1fr; } }
.di-stay-feature__media{
  position:relative; min-height:280px; overflow:hidden;
}
.di-stay-feature__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.di-stay-feature__badge{
  position:absolute; top:1rem; left:1rem; z-index:1;
  padding:.4rem .9rem; border-radius:999px;
  background:var(--gold); color:var(--navy-deep);
  font-family:'DM Sans',sans-serif; font-size:.72rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  box-shadow:0 6px 14px -6px rgba(0,0,0,.3);
}
.di-stay-feature__body{ padding:clamp(1.6rem,2.6vw,2.4rem); display:flex; flex-direction:column; }
.di-stay-feature__title{
  font-family:'Raleway',sans-serif; font-weight:800;
  font-size:clamp(1.4rem,1.1rem + 1vw,1.9rem); color:var(--navy); margin:0 0 .5rem; line-height:1.15;
}
.di-stay-feature__sub{
  font-family:'Raleway',sans-serif; font-size:1rem; line-height:1.6;
  color:var(--ink-soft); margin:0 0 1.4rem;
}
.di-stay-feature__rate{
  margin:auto 0 0; font-family:'Raleway',sans-serif; font-weight:800;
  font-size:clamp(1.6rem,1.2rem + 1.4vw,2.2rem); color:var(--navy); letter-spacing:-.01em;
}
.di-stay-feature__rate-pre{
  display:block; font-size:.7rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--sky-blue); margin-bottom:.2rem;
}

/* Weather advisory callout (gold-accented). Text left (matches the cards above);
   a classier weather icon sits on the right. */
.di-advisory{
  display:flex; align-items:center; gap:clamp(1.2rem,3vw,2.2rem);
  margin-top:clamp(1.6rem,3vw,2.4rem);
  padding:clamp(1.3rem,2.2vw,1.8rem) clamp(1.4rem,2.4vw,2rem);
  background:#fff; border:1px solid rgba(0,51,160,.08);
  border-left:4px solid var(--gold); border-radius:14px;
  box-shadow:0 1px 2px rgba(0,28,113,.05), 0 14px 28px -22px rgba(0,28,113,.2);
}
.di-advisory__body{ flex:1; min-width:0; }
.di-advisory__art{
  flex-shrink:0;
  width:clamp(72px,9vw,104px); aspect-ratio:1; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 120% at 30% 25%, #eaf2fc 0%, #cfe1f5 70%, #b9d4f0 100%);
  box-shadow:inset 0 2px 6px rgba(255,255,255,.7), inset 0 -4px 10px rgba(0,51,160,.10), 0 10px 20px -12px rgba(0,51,160,.35);
  color:var(--sky-blue);
}
.di-advisory__art .material-symbols-outlined{
  font-size:clamp(40px,5vw,58px);
  font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 48;
}
@media (max-width:560px){
  .di-advisory{ flex-direction:column-reverse; align-items:flex-start; }
}
.di-advisory h3{
  font-family:'Raleway',sans-serif; font-weight:700; font-size:clamp(1.2rem,1rem + .6vw,1.5rem);
  color:var(--navy); margin:0 0 .55rem;
}
.di-advisory p{
  font-family:'Raleway',sans-serif; font-size:.98rem; line-height:1.65;
  color:var(--ink-soft); margin:0 0 .7rem;
}
.di-advisory__packtitle{
  font-family:'DM Sans',sans-serif; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; font-size:.78rem; color:var(--navy);
  margin:.2rem 0 .5rem;
}
.di-advisory ul{
  margin:0; padding-left:1.2rem;
  font-family:'Raleway',sans-serif; font-size:.95rem; line-height:1.7; color:var(--ink-soft);
}

/* Visa exempt-categories card (white, on the mid-blue slab) */
.di-exempt{ margin-top:clamp(2rem,4vw,3rem); }
.di-travel .psec__lead a{ color:#fff; font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.di-travel .psec__lead a:hover{ color:var(--navy-deep); }
.di-exempt__list{
  margin:.4rem 0 0; padding:0 0 0 1.5rem;
  display:grid; gap:.75rem;
  font-family:'Raleway',sans-serif; font-size:.98rem; line-height:1.55; color:var(--ink-soft);
}
.di-exempt__list li{ padding-left:.4rem; }
.di-exempt__list li::marker{ color:var(--mid-blue); font-weight:800; }
.di-exempt__more{
  margin:1.3rem 0 0; padding-top:1.1rem; border-top:1px solid var(--rule);
  font-family:'Raleway',sans-serif; font-size:.92rem; line-height:1.6; color:var(--ink-muted);
}
.di-exempt__more a{ color:var(--crimson); font-weight:600; }
.di-exempt__more a:hover{ text-decoration:underline; }

/* Hotel rate chip + dual ribbon CTA */
.di-stay-card__rate{
  display:inline-flex; align-items:center;
  padding:.32rem .75rem; border-radius:999px;
  background:rgba(255,255,255,.25); color:inherit;
  font-family:'DM Sans',sans-serif; font-size:.82rem; font-weight:700; letter-spacing:.01em;
}
.di-ribbon__cta{ display:flex; flex-wrap:wrap; gap:.8rem; }
.di-rates{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem 1.6rem; }
@media (max-width:520px){ .di-rates{ grid-template-columns:1fr; } }
.di-rate-group__name{
  font-family:'DM Sans',sans-serif; font-size:.78rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--sky-blue);
  margin:0 0 .6rem; padding-bottom:.5rem; border-bottom:1px solid var(--rule);
}
.di-rate-list{ list-style:none; margin:0; padding:0; }
.di-rate-list li{
  display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
  padding:.45rem 0;
  font-family:'Raleway',sans-serif; font-size:.95rem;
}
.di-rate__desc{ color:var(--ink-soft); }
.di-rate__price{ font-weight:800; color:var(--navy); white-space:nowrap; letter-spacing:-.01em; }
.di-stay-feature__foot{ margin-top:auto; padding-top:1.5rem; }
.di-stay-feature__book{
  font-family:'Raleway',sans-serif; font-size:.92rem; line-height:1.6;
  color:var(--ink-soft); margin:0 0 1.1rem;
}
.di-stay-feature__book a{ color:var(--crimson); font-weight:600; }
.di-stay-feature__book a:hover{ text-decoration:underline; }

.di-stay-subhead{
  margin:clamp(2.4rem,4vw,3.4rem) 0 clamp(1.2rem,2vw,1.6rem);
  font-family:'DM Sans',sans-serif; font-size:.8rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--crimson);
  display:flex; align-items:center; gap:1rem;
}
.di-stay-subhead::after{ content:""; flex:1; height:1px; background:var(--rule); }

.di-stay-grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,1.8vw,1.5rem);
}
@media (max-width:880px){ .di-stay-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .di-stay-grid{ grid-template-columns:1fr; } }
.di-stay-card{
  border:0; border-radius:14px; overflow:hidden; color:#fff;
  box-shadow:0 1px 2px rgba(0,28,113,.06), 0 16px 30px -22px rgba(0,28,113,.35);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.di-stay-card:hover{
  transform:translateY(-5px);
  box-shadow:0 2px 4px rgba(0,28,113,.08), 0 30px 58px -24px rgba(0,28,113,.45);
}
/* Brand dark-blue card backgrounds — all dark enough for white text */
.di-stay-grid .di-stay-card:nth-child(1){ background:var(--navy); }
.di-stay-grid .di-stay-card:nth-child(2){ background:var(--sky-blue); }
.di-stay-grid .di-stay-card:nth-child(3){ background:var(--navy-deep); }
.di-stay-grid .di-stay-card:nth-child(4){ background:var(--navy); }
.di-stay-grid .di-stay-card:nth-child(5){ background:var(--sky-blue); }
.di-stay-grid .di-stay-card:nth-child(6){ background:var(--navy-deep); }
.di-stay-card__media{ position:relative; aspect-ratio:16 / 10; overflow:hidden; }
.di-stay-card__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.di-stay-card .di-photo{ background:rgba(255,255,255,.16); color:currentColor; }
.di-stay-card .di-photo__txt{ color:currentColor; opacity:.65; }
.di-stay-card__body{ padding:clamp(1.1rem,1.8vw,1.4rem); }
.di-stay-card__name{
  font-family:'Raleway',sans-serif; font-weight:700; font-size:1.1rem;
  color:inherit; margin:0 0 .6rem; line-height:1.25;
}
.di-stay-card__name a,
.di-stay-feature__title a{ color:inherit; text-decoration:none; }
.di-stay-card__name a:hover,
.di-stay-feature__title a:hover{ text-decoration:underline; }
/* small "opens in a new tab" indicator next to hotel names */
.di-stay-card__ext{ font-size:.8em; vertical-align:-.12em; opacity:.7; margin-left:.15em; }
.di-stay-card__contact{
  list-style:none; margin:.85rem 0 0; padding:0; display:grid; gap:.32rem;
  font-family:'DM Sans',sans-serif; font-size:.82rem; line-height:1.4; color:inherit;
}
.di-stay-card__contact li{ display:flex; gap:.5rem; align-items:baseline; }
.di-stay-card__contact .lbl{ font-weight:700; opacity:.75; flex-shrink:0; min-width:1.1em; }
.di-stay-card__contact a{ color:inherit; text-decoration:none; word-break:break-word; }
.di-stay-card__contact a:hover{ text-decoration:underline; }
.di-stay-card__drive{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.3rem .7rem; border-radius:999px;
  background:rgba(0,51,160,.07); color:var(--sky-blue);
  font-family:'DM Sans',sans-serif; font-size:.8rem; font-weight:600;
}
.di-stay-card__drive .material-symbols-outlined{ font-size:16px; }
.di-stay-card__note{
  font-family:'Raleway',sans-serif; font-size:.9rem; line-height:1.55;
  color:var(--ink-muted); margin:.8rem 0 0;
}
.di-travel__tourism{
  text-align:center; margin:clamp(2rem,4vw,3rem) auto 0; max-width:48ch;
  font-family:'Raleway',sans-serif; font-style:italic; font-size:1.05rem;
  color:rgba(255,255,255,.9);
}
/* Travel section sits on the mid-blue slab — flip headings/labels to white */
.di-travel{ position:relative; overflow:hidden; }
.di-travel > .wrap{ position:relative; z-index:1; }
.di-travel .deco-motif{
  width:clamp(120px,15vw,220px); height:100%; top:0; left:-3%;
  background-color:#fff; opacity:.18;
  -webkit-mask-repeat:repeat-y; mask-repeat:repeat-y;
  -webkit-mask-size:100% auto;  mask-size:100% auto;
  -webkit-mask-position:top center; mask-position:top center;
}
@media (max-width:760px){ .di-travel .deco-motif{ opacity:.20; width:clamp(80px,22vw,140px); } }
.di-travel .eyebrow{ color:#fff; }
.di-travel .eyebrow::before{ background:#fff; }
.di-travel .h2{ color:#fff; }
.di-travel .h2 em{ color:var(--navy-deep); }
.di-travel .psec__lead{ color:rgba(255,255,255,.85); }
.di-travel .di-stay-subhead{ color:#fff; }
.di-travel .di-stay-subhead::after{ background:rgba(255,255,255,.3); }

/* ---- 4. COVID-19 Measures & Duty of Care (light slab — keeps blue off the footer) ---- */
.di-covid{ background:var(--sky-soft); }
.di-covid__grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.6rem); margin-top:clamp(2rem,4vw,3rem);
}
@media (max-width:760px){ .di-covid__grid{ grid-template-columns:1fr; } }
.di-covid__card{
  background:#fff; border:1px solid rgba(0,51,160,.08); border-radius:14px;
  padding:clamp(1.6rem,2.4vw,2.2rem);
  box-shadow:0 1px 2px rgba(0,28,113,.05), 0 18px 36px -22px rgba(0,28,113,.25);
}
.di-covid__head{
  font-family:'Raleway',sans-serif; font-weight:700; font-size:1.2rem;
  color:var(--navy); margin:0 0 1rem;
}
.di-covid__sub{
  font-family:'DM Sans',sans-serif; font-weight:600; font-size:.95rem;
  color:var(--crimson); margin:0 0 .6rem;
}
.di-covid__list{ list-style:none; margin:0; padding:0; display:grid; gap:.7rem; }
.di-covid__list li{
  position:relative; padding-left:1.7rem;
  font-family:'Raleway',sans-serif; font-size:.98rem; line-height:1.55; color:var(--ink-soft);
}
.di-covid__list li::before{
  content:""; position:absolute; left:0; top:.5em;
  width:.6rem; height:.6rem; border-radius:50%; background:var(--mid-blue);
}
.di-covid__list--warn li::before{ background:var(--crimson); }
.di-covid__notes{
  margin-top:clamp(1.6rem,3vw,2.2rem);
  max-width:64ch;
}
.di-covid__notes p{
  font-family:'Raleway',sans-serif; font-size:.98rem; line-height:1.7;
  color:var(--ink-soft); margin:0 0 .9rem;
}
.di-covid__notes a{ color:var(--crimson); font-weight:600; text-decoration:underline; }
.di-covid__warn{
  font-weight:600; color:var(--crimson) !important;
  padding:.9rem 1.1rem; border-radius:10px;
  background:rgba(173,7,61,.07); border:1px solid rgba(173,7,61,.25);
}

/* ============================================================
   PROGRAM PAGE
   Reused homepage parts get page-scoped surface tints via .prog-pg
   (keeps the homepage untouched). New parts: .pa (agenda) + .mm.
   ============================================================ */
.prog-pg .sectors-slider{ background:var(--sky-pale); }
.prog-pg .objectives-timeline{ background:var(--paper); }
.hero--program .hero__bg{ background-position:center 40%; }
.hero--program .hero__cta{ margin-top:clamp(1.6rem,3.5vw,2.6rem); }

/* --- Day agenda ------------------------------------------------------- */
.pa{ background:var(--mid-blue); position:relative; overflow:hidden; }
.pa > .wrap{ position:relative; z-index:1; }
/* Section sits on brand blue (#3E8EDE) — header type goes light for legibility */
.pa .eyebrow{ color:#fff; }
.pa .eyebrow::before{ background:#fff; }
.pa .h2{ color:#fff; }
.pa .h2 em{ color:var(--gold); }
/* max-content: header sizes to its widest line (the headline), so the lead
   paragraph wraps to exactly the headline's width. Caps to 100% on narrow. */
.pa__head{ max-width:max-content; }
.pa__lead{ font-size:var(--fs-lead); line-height:1.5; color:rgba(255,255,255,.9); margin-top:1.1rem; }

/* Tabs — segmented toggle: one pill track with a filled active segment, so it
   unmistakably reads as a clickable day switcher. */
.pa__tabs{
  display:inline-flex; gap:.4rem; padding:.4rem;
  background:rgba(255,255,255,.32); border:1px solid rgba(255,255,255,.45);
  border-radius:999px;
  margin:clamp(2rem,4vw,3rem) 0 clamp(1.8rem,3.5vw,2.6rem);
}
.pa__tab{
  display:flex; flex-direction:column; align-items:center; gap:.02rem;
  padding:.7rem 1.9rem; cursor:pointer; border:0; border-radius:999px;
  background:transparent; text-align:center; font-family:inherit;
  color:var(--navy-deep);
  transition:background .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease);
}
.pa__tab:hover{ background:rgba(255,255,255,.5); }
.pa__tab.is-active{ background:#fff; color:var(--navy-deep); box-shadow:0 6px 18px -8px rgba(0,0,0,.35); }
.pa__tab.is-active:hover{ background:#fff; }
.pa__tab-day{ font-size:clamp(1.05rem,.92rem+.5vw,1.35rem); font-weight:800; letter-spacing:-.01em; }
.pa__tab-date{ font-size:.8rem; font-weight:600; letter-spacing:.02em; opacity:.9; }

/* Panel */
.pa__panel{ animation:paFade .5s var(--ease) both; }
.pa__panel[hidden]{ display:none; }
@keyframes paFade{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }

/* Timeline spine */
.pa__timeline{ position:relative; padding-left:clamp(0px,1.5vw,1rem); }

/* Segment */
.pa-seg{ position:relative; padding-left:clamp(1.4rem,3vw,2.4rem); padding-bottom:clamp(1.6rem,3vw,2.4rem); }
.pa-seg::before{ /* spine */
  content:""; position:absolute; left:0; top:.4rem; bottom:0;
  width:2px; background:linear-gradient(rgba(255,255,255,.45), rgba(255,255,255,.45) 70%, transparent);
}
.pa-seg:last-child::before{ bottom:auto; height:100%; }
.pa-seg__head{ position:relative; margin-bottom:1.1rem; }
.pa-seg__head::before{ /* segment node */
  content:""; position:absolute; left:calc(-1 * clamp(1.4rem,3vw,2.4rem) - 1px); top:.35em;
  width:13px; height:13px; border-radius:50%;
  background:var(--gold); box-shadow:0 0 0 4px rgba(255,184,25,.28); transform:translateX(-50%);
}
.pa-seg__kicker{
  display:inline-block; font-size:clamp(1.05rem, .9rem + .6vw, 1.4rem); font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; color:var(--navy-deep); margin-bottom:.35rem;
}
.pa-seg__title{ font-size:var(--fs-h3); font-weight:800; line-height:1.12; color:#fff; letter-spacing:-.01em; }

/* Items */
.pa-seg__items{ list-style:none; display:flex; flex-direction:column; gap:.6rem; }
/* Program cards — white on the blue section, dark text for legibility. */
.pa-item{
  position:relative; display:grid; grid-template-columns:9.5rem 1fr; gap:1.1rem; align-items:baseline;
  padding:1.05rem 1.3rem; border-radius:12px;
  background:#fff; border:1px solid rgba(255,255,255,.55);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.pa-item:hover{ transform:translateX(3px); box-shadow:0 12px 28px -14px rgba(0,28,113,.6); }
.pa-item__time{
  font-size:.9rem; font-weight:800; color:var(--sky-blue);
  font-variant-numeric:tabular-nums; letter-spacing:.01em; white-space:nowrap;
}
.pa-item__title{ font-size:1.02rem; font-weight:700; line-height:1.4; color:var(--ink); }
.pa-item__note{ font-size:.86rem; color:var(--ink-muted); margin-top:.3rem; line-height:1.45; }

/* Highlighted moments (networking / breaks) — pronounced gold accent cards */
.pa-item--break{ background:var(--gold); border:1px solid rgba(0,28,113,.18); box-shadow:0 14px 30px -14px rgba(0,0,0,.5); }
.pa-item--break .pa-item__title{ font-weight:800; color:var(--navy-deep); font-style:normal; }
.pa-item--break .pa-item__time{ color:var(--navy-deep); }

/* Tracks (concurrent sessions / breakouts) */
.pa-tracks{ list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.7rem; margin-top:.9rem; }
.pa-track{
  display:flex; gap:.7rem; align-items:flex-start;
  padding:.8rem .9rem; border-radius:10px;
  background:var(--sky-pale); border:1px solid var(--rule);
}
.pa-track__letter{
  flex:none; width:1.9rem; height:1.9rem; border-radius:8px;
  display:grid; place-items:center; font-weight:800; font-size:.95rem;
  color:#fff; background:var(--sky-blue);
}
.pa-track__title{ font-size:.92rem; font-weight:600; line-height:1.35; color:var(--ink); }

@media (max-width:640px){
  .pa-item{ grid-template-columns:1fr; gap:.35rem; }
  .pa__tab{ padding:.6rem .8rem; }
}

/* --- Matchmaking (light-blue surface, dark type) --------------------- */
.mm{ color:var(--ink); position:relative; overflow:hidden; }
.mm__wrap{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.mm .eyebrow{ color:var(--crimson); }
.mm .eyebrow::before{ background:var(--crimson); }
.mm__title{ color:var(--navy-deep); }
.mm__title em{ color:var(--crimson); font-style:normal; }
.mm__body{ font-size:var(--fs-lead); line-height:1.55; color:var(--ink-soft); margin:1.3rem 0 2rem; max-width:50ch; }
.mm__cta{ background:var(--crimson); }
.mm__cta:hover{ background:var(--navy); color:#fff; }

.mm__how{
  background:#fff; border:1px solid var(--rule);
  border-radius:18px; padding:clamp(1.6rem,3vw,2.6rem);
  box-shadow:0 22px 55px -32px rgba(0,28,113,.55);
}
.mm__how-title{ font-size:var(--fs-h3); font-weight:800; color:var(--navy-deep); margin-bottom:1.4rem; }
.mm__steps{ list-style:none; display:flex; flex-direction:column; gap:.2rem; }
.mm__step{ display:flex; gap:1.1rem; align-items:flex-start; padding:.9rem 0; border-top:1px solid var(--rule); }
.mm__step:first-child{ border-top:0; }
.mm__step-num{
  flex:none; font-size:.95rem; font-weight:800; color:var(--crimson);
  font-variant-numeric:tabular-nums; padding-top:.15rem; min-width:1.8rem;
}
.mm__step-text{ font-size:1.05rem; font-weight:500; line-height:1.45; color:var(--ink); }
a.mm__step-text{ color:var(--navy); text-decoration:underline; text-underline-offset:3px; transition:color .2s var(--ease); }
a.mm__step-text:hover{ color:var(--crimson); }

@media (max-width:860px){ .mm__wrap{ grid-template-columns:1fr; } }
