/* ============================================================
   belpico.com — site.css (consumes _shared design system)
   ============================================================ */
html,body{overflow-x:hidden;max-width:100%;}

/* ---------- Header / mega-nav ---------- */
.site-header{position:sticky;inset-block-start:0;z-index:var(--z-header);
  background:rgba(10,15,26,.72);backdrop-filter:blur(14px);
  border-block-end:1px solid rgba(255,255,255,.08);transition:background var(--dur-fast);}
.site-header.is-solid{background:rgba(10,15,26,.96);}
.header__inner{display:flex;align-items:center;gap:var(--sp-5);min-height:74px;}
.brand__mark{height:38px;width:auto;}
.primary-nav{margin-inline-start:auto;}
.primary-nav__list{display:flex;gap:var(--sp-2);list-style:none;margin:0;padding:0;align-items:center;}
.primary-nav a,.mega-trigger{color:#dbe2ee;font-weight:var(--fw-medium);font-size:.95rem;
  padding:.6rem .85rem;border-radius:var(--radius-sm);background:none;border:0;display:inline-flex;align-items:center;gap:.4rem;}
.primary-nav a:hover,.mega-trigger:hover{color:#fff;background:rgba(255,255,255,.06);}
.chev{width:8px;height:8px;border-inline-end:2px solid currentColor;border-block-end:2px solid currentColor;transform:rotate(45deg);margin-block-start:-3px;transition:transform var(--dur-fast);}
.has-mega{position:relative;}
.has-mega[aria-open="true"] .chev,.mega-trigger[aria-expanded="true"] .chev{transform:rotate(-135deg);margin-block-start:2px;}
.mega{position:absolute;inset-block-start:calc(100% + 10px);inset-inline-start:0;min-width:320px;
  background:#0d1424;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:var(--sp-3);
  display:grid;gap:2px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s var(--ease);box-shadow:var(--shadow-2);}
.has-mega.open .mega{opacity:1;visibility:visible;transform:none;}
.mega a{display:grid;grid-template-columns:auto 1fr;column-gap:.7rem;align-items:center;padding:.7rem .8rem;border-radius:var(--radius-sm);}
.mega a b{color:#fff;font-weight:var(--fw-semibold);}
.mega a small{grid-column:2;color:#8b97ad;font-size:.78rem;}
.mega__dot{width:10px;height:10px;border-radius:50%;background:var(--accent);grid-row:1 / span 2;}
.header__actions{display:flex;align-items:center;gap:var(--sp-2);}
.icon-btn{background:none;border:1px solid rgba(255,255,255,.16);color:#dbe2ee;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;}
.icon-btn svg{width:18px;height:18px;}
.icon-btn:hover{background:rgba(255,255,255,.08);color:#fff;}
.lang-switch{position:relative;}
.lang-switch__btn{display:inline-flex;align-items:center;gap:.4rem;background:none;border:1px solid rgba(255,255,255,.16);color:#dbe2ee;padding:.5rem .8rem;border-radius:var(--radius-pill);font-weight:var(--fw-medium);font-size:.85rem;}
.lang-switch__menu{position:absolute;inset-block-start:calc(100% + 8px);inset-inline-end:0;background:#0d1424;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:.4rem;list-style:none;margin:0;min-width:180px;max-height:320px;overflow:auto;display:none;box-shadow:var(--shadow-2);z-index:var(--z-overlay);}
.lang-switch.open .lang-switch__menu{display:block;}
.lang-switch__menu li{display:flex;justify-content:space-between;align-items:center;padding:.5rem .7rem;border-radius:var(--radius-sm);color:#cbd4e2;font-size:.85rem;cursor:pointer;}
.lang-switch__menu li[aria-selected="true"]{background:var(--primary-a20);color:#fff;}
.lang-switch__menu li[data-status="planned"]{opacity:.5;cursor:default;}
.lang-switch__menu li .soon{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:#7d8aa3;}

/* mobile nav */
.nav-toggle{display:none;margin-inline-start:auto;background:none;border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:var(--radius-pill);padding:.5rem .9rem;align-items:center;gap:.5rem;font-weight:var(--fw-medium);}
.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{content:"";display:block;width:18px;height:2px;background:currentColor;position:relative;}
.nav-toggle__bars::before{position:absolute;inset-block-start:-6px;}
.nav-toggle__bars::after{position:absolute;inset-block-start:6px;}

/* ---------- Search overlay ---------- */
.search-overlay{position:absolute;inset-inline:0;inset-block-start:74px;z-index:var(--z-overlay);
  background:#0d1424;border-block-end:1px solid rgba(255,255,255,.1);padding:var(--sp-6) 0;}
.search-overlay input{width:100%;font-size:1.4rem;background:none;border:0;border-block-end:2px solid var(--accent);color:#fff;padding:.5rem 0;}
.search-overlay__close{position:absolute;inset-block-start:12px;inset-inline-end:24px;background:none;border:0;color:#8b97ad;font-size:2rem;line-height:1;cursor:pointer;}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding-block:var(--sp-9) var(--sp-10);}
.hero__bg{position:absolute;inset:0;background:
  radial-gradient(1200px 600px at 78% 30%, rgba(51,150,209,.18), transparent 60%),
  radial-gradient(900px 500px at 15% 80%, rgba(230,57,70,.14), transparent 60%),
  var(--gradient-dark);}
.hero__inner{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8);align-items:center;}
.hero__copy h1{font-size:var(--fs-4xl);color:#fff;}
.hero__copy .lead{color:#c3cddd;max-width:46ch;}
.hero__cta{display:flex;gap:var(--sp-3);margin-block-start:var(--sp-6);flex-wrap:wrap;}

/* ---------- Radial compass ---------- */
.compass{position:relative;aspect-ratio:1;max-width:520px;margin-inline:auto;width:100%;display:grid;place-items:center;}
.compass__rings{position:absolute;width:76%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.1);}
.compass__rings::before{content:"";position:absolute;inset:14%;border-radius:50%;border:1px dashed rgba(255,255,255,.09);}
.compass__rings::after{content:"";position:absolute;inset:-14%;border-radius:50%;border:1px solid rgba(255,255,255,.05);}
.compass__core{position:relative;z-index:5;width:30%;aspect-ratio:1;border-radius:50%;background:var(--color-trust);
  border:1px solid rgba(255,255,255,.16);display:grid;place-items:center;text-align:center;padding:6%;
  box-shadow:0 0 0 8px rgba(26,42,74,.35);transition:box-shadow var(--dur) var(--ease);}
.compass.active .compass__core{box-shadow:0 0 0 8px color-mix(in srgb, var(--accent) 35%, transparent);}
/* Default-state pulse: a slow breathing ring cues that the widget is interactive. */
.compass:not(.is-focused) .compass__core{animation:corePulse 3.2s var(--ease) infinite;}
@keyframes corePulse{0%,100%{box-shadow:0 0 0 8px rgba(26,42,74,.35);}
  50%{box-shadow:0 0 0 13px color-mix(in srgb, var(--accent) 22%, transparent);}}
/* Brand mark and HUD readout share the same cell; we cross-fade between them. */
.compass__brandwrap,.compass__hud{grid-area:1 / 1;transition:opacity var(--dur) var(--ease);}
.compass__brand{font-family:var(--font-display);font-weight:700;font-size:clamp(.9rem,2.4vw,1.15rem);color:#fff;letter-spacing:.02em;}
.compass__brand em{font-style:normal;color:var(--accent,#8b97ad);transition:color var(--dur);}
.compass__brandwrap small{display:block;font-size:.55rem;letter-spacing:.16em;text-transform:uppercase;color:#aab6ca;margin-block-start:2px;}
.compass__hud{opacity:0;display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none;}
.compass__hud::before{content:"";width:22px;height:2px;border-radius:2px;background:var(--accent);margin-block-end:4px;}
.compass__hud-name{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  font-size:clamp(.82rem,2.1vw,1.02rem);color:#fff;line-height:1.05;}
.compass__hud-desc{font-size:clamp(.56rem,1.5vw,.72rem);color:#f3f4f6;line-height:1.2;}
.compass__node{position:absolute;z-index:6;width:118px;text-align:center;--accent:var(--div-defence);
  display:grid;justify-items:center;gap:.35rem;padding:.4rem;border-radius:var(--radius);transition:opacity var(--dur) var(--ease);}
.compass__dot{width:58px;height:58px;border-radius:50%;background:#0d1424;border:2px solid var(--accent);
  color:var(--accent);display:grid;place-items:center;transition:.35s var(--ease);}
.compass__dot svg{width:26px;height:26px;}
.compass__lbl{font-family:var(--font-display);font-weight:700;color:#fff;font-size:1rem;transition:text-shadow var(--dur) var(--ease);}
/* Progressive disclosure: the tagline is hidden visually (kept for screen readers + the HUD readout). */
.compass__desc{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}
.compass__node:hover .compass__dot,.compass__node:focus-visible .compass__dot,.compass__node.active .compass__dot{background:var(--accent);color:#0a0f1a;transform:scale(1.12);box-shadow:0 0 22px color-mix(in srgb, var(--accent) 60%, transparent);}
.compass__node:hover .compass__lbl,.compass__node:focus-visible .compass__lbl,.compass__node.active .compass__lbl{text-shadow:0 0 14px color-mix(in srgb, var(--accent) 65%, transparent);}
/* Focus reveal: HUD readout fades in, the other three divisions dim to 40%.
   Neutralised on mobile (see max-width:767px block) so touch keeps the simple tap-to-scroll radial. */
.compass.is-focused .compass__brandwrap{opacity:0;}
.compass.is-focused .compass__hud{opacity:1;}
.compass.is-focused .compass__node:not(.active){opacity:.4;}
.compass__node.n-def{inset-block-start:0;inset-inline-start:50%;transform:translateX(-50%);--accent:var(--div-defence);}
.compass__node.n-nrg{inset-block-start:50%;inset-inline-end:-6px;transform:translateY(-50%);--accent:var(--div-energy);}
.compass__node.n-ai{inset-block-end:0;inset-inline-start:50%;transform:translateX(-50%);--accent:var(--div-ai);}
.compass__node.n-spc{inset-block-start:50%;inset-inline-start:-6px;transform:translateY(-50%);--accent:var(--div-space);}
.compass__prompt{position:absolute;inset-block-end:-2.4rem;inset-inline:0;text-align:center;color:#9aa7bf;font-size:.8rem;letter-spacing:.04em;}

/* ---------- Company ---------- */
.pillars{margin-block-start:var(--sp-7);}
.umbrella-note{margin-block-start:var(--sp-6);color:var(--color-muted);font-style:italic;}

/* ---------- Division ribbon (deep) ---------- */
.ribbon{margin-block-start:var(--sp-6);border-radius:var(--radius-lg);overflow:hidden;background:#0d1424;border:1px solid rgba(255,255,255,.08);}
.ribbon__band{position:relative;border-block-end:1px solid rgba(255,255,255,.07);}
.ribbon__band:last-child{border-block-end:0;}
.ribbon__band::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:var(--accent);transform:scaleY(.3);transform-origin:top;transition:transform var(--dur) var(--ease);}
.ribbon__band.open::before{transform:scaleY(1);}
.ribbon__spine{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);cursor:pointer;width:100%;}
.ribbon__num{font-family:var(--font-display);color:var(--accent);font-weight:700;font-size:1.1rem;}
.ribbon__icon{width:44px;height:44px;border-radius:12px;background:var(--accent);color:#0a0f1a;display:grid;place-items:center;flex:none;}
.ribbon__icon svg{width:22px;height:22px;}
.ribbon__spine h3{margin:0;color:#fff;font-size:1.25rem;flex:none;}
.ribbon__tease{color:#8b97ad;font-size:.9rem;flex:1;}
.ribbon__chev{width:10px;height:10px;border-inline-end:2px solid #5b6680;border-block-end:2px solid #5b6680;transform:rotate(45deg);transition:.35s var(--ease);flex:none;}
.ribbon__band.open .ribbon__chev{transform:rotate(-135deg);border-color:var(--accent);}
.ribbon__panel{max-height:0;opacity:0;overflow:hidden;padding-inline:calc(var(--sp-6) + 60px) var(--sp-6);transition:.45s var(--ease);color:#c3cddd;}
.ribbon__band.open .ribbon__panel{max-height:720px;opacity:1;padding-block-end:var(--sp-6);}
.ribbon__panel ul{margin:.4rem 0 var(--sp-4);padding-inline-start:1.1rem;}
.ribbon__panel li{margin-block-end:.3rem;}
.ribbon__benefit{color:#fff;border-inline-start:3px solid var(--accent);padding-inline-start:var(--sp-4);}

/* ---------- Validation / stats ---------- */
.validation{background:var(--color-light);}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);margin-block-start:var(--sp-7);}
.stat{text-align:center;padding:var(--sp-6) var(--sp-4);background:#fff;border:1px solid var(--color-line);border-radius:var(--radius-lg);}
.stat__value{font-family:var(--font-display);font-weight:800;font-size:var(--fs-3xl);color:var(--color-trust);line-height:1;}
.stat__unit{color:var(--color-primary);font-weight:var(--fw-semibold);}
.stat__label{display:block;margin-block-start:var(--sp-3);color:var(--color-muted);font-size:.85rem;}
.val-note{margin-block-start:var(--sp-6);color:var(--color-muted);font-size:.9rem;}

/* ---------- Markets tiles ---------- */
.tile{padding:var(--sp-6);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);background:rgba(255,255,255,.03);}
.tile h3{color:#fff;font-size:1.15rem;}
.tile p{color:#b9c3d4;margin:0;}

/* ---------- Contact ---------- */
.section--contact{background:var(--gradient-dark);color:#e7ecf5;}
.section--contact h2{color:#fff;}
.contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8);align-items:start;}
.contact__email a{color:var(--div-space);font-weight:var(--fw-semibold);}
.contact__form{display:grid;gap:var(--sp-4);}
.contact__form label{display:grid;gap:.4rem;font-size:.85rem;color:#b9c3d4;}
.contact__form input,.contact__form textarea,.contact__form select{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-sm);padding:.7rem .9rem;color:#fff;font:inherit;}
.contact__form input:focus,.contact__form textarea:focus,.contact__form select:focus{outline:none;border-color:var(--accent);}
.contact__form select{appearance:none;-webkit-appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23b9c3d4' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;padding-inline-end:2.2rem;}
.contact__form select option{background:#0f1626;color:#fff;}
.consent{flex-direction:row!important;grid-template-columns:auto 1fr;display:grid!important;align-items:start;gap:.6rem;}
.consent input{margin-block-start:3px;}
.contact__fallback{color:#7d8aa3;font-size:.8rem;}
.contact__fallback.is-error{color:#ff9b9b;}

/* ---------- Footer ---------- */
.site-footer{background:#070b13;color:#a7b2c4;padding-block:var(--sp-8) var(--sp-5);}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:var(--sp-6);}
.footer__brand img{height:40px;width:auto;margin-block-end:var(--sp-3);}
.footer__intl{font-size:.8rem;color:#6b7690;}
.site-footer h4{color:#fff;font-family:var(--font-body);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;margin-block-end:var(--sp-3);}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;}
.site-footer a:hover{color:#fff;}
.footer__base{margin-block-start:var(--sp-6);padding-block-start:var(--sp-5);border-block-start:1px solid rgba(255,255,255,.08);font-size:.82rem;color:#6b7690;}

/* ---------- Cookie ---------- */
.cookie{position:sticky;inset-block-end:0;z-index:var(--z-overlay);background:#0d1424;border-block-start:1px solid rgba(255,255,255,.12);
  display:flex;align-items:center;gap:var(--sp-5);justify-content:space-between;flex-wrap:wrap;padding:var(--sp-4) var(--gutter);}
.cookie p{margin:0;color:#c3cddd;font-size:.88rem;max-width:60ch;}
.cookie__actions{display:flex;gap:var(--sp-3);}
.cookie .btn{padding:.5rem 1.1rem;font-size:.85rem;}

/* ---------- Responsive ---------- */
@media(max-width:1200px){ .footer__grid{grid-template-columns:1fr 1fr;} }
@media(max-width:991px){
  .primary-nav{position:fixed;inset:74px 0 0;background:#0b111e;flex-direction:column;padding:var(--sp-6);
    transform:translateX(100%);transition:transform var(--dur) var(--ease);overflow:auto;margin:0;}
  [dir="rtl"] .primary-nav{transform:translateX(-100%);}
  .primary-nav.open{transform:none;}
  .primary-nav__list{flex-direction:column;align-items:stretch;gap:var(--sp-1);width:100%;}
  .primary-nav a,.mega-trigger{width:100%;font-size:1.05rem;padding:.9rem;}
  .mega{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:rgba(255,255,255,.03);margin-block-start:.4rem;}
  .nav-toggle{display:inline-flex;}
  .header__actions{margin-inline-start:auto;}
  .hero__inner{grid-template-columns:1fr;gap:var(--sp-9);}
  .contact__grid{grid-template-columns:1fr;}
}
@media(max-width:767px){
  .stats{grid-template-columns:repeat(2,1fr);}
  .compass{max-width:300px;}
  .compass__node{width:92px;}
  .compass__dot{width:48px;height:48px;}
  .compass__desc{display:none;}
  /* Mobile: keep the brand mark, no HUD swap or dimming — nodes just tap-to-scroll. */
  .compass.is-focused .compass__brandwrap{opacity:1;}
  .compass.is-focused .compass__hud{opacity:0;}
  .compass.is-focused .compass__node:not(.active){opacity:1;}
  .ribbon__tease{display:none;}
  .ribbon__panel{padding-inline:var(--sp-5);}
  .ribbon__band.open .ribbon__panel{max-height:900px;}
  .fam__item{flex-direction:column;gap:2px;}
  .fam__item b{min-width:0;}
  .footer__grid{grid-template-columns:1fr;}
}
@media(min-width:1600px){ .hero__copy h1{font-size:5rem;} }

/* ---------- Technology families (division panels) ---------- */
.fam{margin:var(--sp-4) 0;padding:var(--sp-4);border:1px solid rgba(255,255,255,.10);
  border-inline-start:3px solid var(--accent);border-radius:var(--radius-sm);background:rgba(255,255,255,.03);
  display:flex;flex-direction:column;gap:var(--sp-3);}
.fam__label{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:var(--fw-semibold);}
.fam__item{display:flex;gap:var(--sp-3);align-items:baseline;flex-wrap:wrap;}
.fam__item b{color:#fff;font-family:var(--font-display);letter-spacing:.03em;min-width:8.5rem;font-weight:var(--fw-semibold);}
.fam__item span{color:#aeb9cb;font-size:.9rem;flex:1;min-width:14rem;}
.ribbon__apps{margin:var(--sp-4) 0 var(--sp-2);font-size:.82rem;letter-spacing:.02em;color:#8b97ad;}
.brand-note{max-width:70ch;color:var(--color-muted);border-inline-start:3px solid var(--color-bronze);
  padding-inline-start:var(--sp-4);margin-block:var(--sp-5) var(--sp-6);font-size:1.02rem;}

/* ---------- How we engage (stage-gate flow) ---------- */
.steps-flow{list-style:none;margin:var(--sp-7) 0 var(--sp-5);padding:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);counter-reset:none;}
.step{position:relative;background:#fff;border:1px solid var(--color-line);border-radius:var(--radius-lg);
  padding:var(--sp-6);padding-block-start:var(--sp-7);box-shadow:var(--shadow-1);
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
.step:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);}
.step__no{position:absolute;inset-block-start:var(--sp-5);inset-inline-start:var(--sp-6);
  font-family:var(--font-display);font-weight:var(--fw-bold);font-size:1.05rem;color:var(--color-primary);
  letter-spacing:.05em;}
.step__no::after{content:"";display:block;width:26px;height:2px;background:var(--gradient-accent);margin-block-start:6px;border-radius:2px;}
.step h3{margin-block-start:var(--sp-4);font-size:1.15rem;}
.step p{margin:0;color:var(--color-muted);font-size:.92rem;}
.engage__note{margin-block-start:var(--sp-3);color:var(--color-muted);font-style:italic;font-size:.92rem;}
.engage__cta{margin-block-start:var(--sp-5);}
/* Programme cards that link out to a case study */
.card--linked{display:flex;flex-direction:column;}
.card--linked p{flex:1;}
.card__link{display:inline-block;margin-block-start:var(--sp-4);color:var(--color-primary-600);font-weight:var(--fw-semibold);font-size:.85rem;text-decoration:none;}
.card__link:hover{text-decoration:underline;}
.section--dark .card__link,.val-note .card__link{color:var(--accent,#4aa3ff);}
@media(max-width:991px){ .steps-flow{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .steps-flow{grid-template-columns:1fr;} }

/* ---------- Media: image slider ---------- */
.slider{position:relative;margin-block-start:var(--sp-6);}
.slider__viewport{overflow:hidden;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.10);background:#0b1a2b;}
.slider__track{display:flex;transition:transform .5s var(--ease);}
.slide{position:relative;margin:0;min-width:100%;}
.slide img{width:100%;height:clamp(320px,52vh,560px);object-fit:contain;background:#0b1a2b;display:block;}
.slide figcaption{position:absolute;inset-inline:0;inset-block-end:0;padding:var(--sp-6) var(--sp-6) var(--sp-4);
  background:linear-gradient(180deg,transparent,rgba(6,14,24,.88));color:#e7ecf5;font-size:.92rem;}
.slider__btn{position:absolute;inset-block-start:calc(50% - 40px);transform:translateY(-50%);z-index:3;
  width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(11,26,43,.7);
  color:#fff;font-size:1.6rem;line-height:1;display:grid;place-items:center;transition:background var(--dur-fast);}
.slider__btn:hover{background:var(--accent);color:#06121f;}
.slider__btn--prev{inset-inline-start:var(--sp-4);}
.slider__btn--next{inset-inline-end:var(--sp-4);}
[dir="rtl"] .slider__btn--prev{inset-inline-start:auto;inset-inline-end:var(--sp-4);}
[dir="rtl"] .slider__btn--next{inset-inline-end:auto;inset-inline-start:var(--sp-4);}
.slider__dots{display:flex;gap:var(--sp-2);justify-content:center;margin-block-start:var(--sp-4);}
.slider__dots button{width:9px;height:9px;border-radius:50%;border:0;background:rgba(255,255,255,.28);padding:0;cursor:pointer;transition:.2s;}
.slider__dots button[aria-selected="true"]{background:var(--accent);width:26px;border-radius:5px;}

.slider-section .slider{max-width:1040px;margin-inline:auto;}
@media(max-width:560px){ .slide figcaption{font-size:.82rem;padding:var(--sp-4);} .slider__btn{width:40px;height:40px;} }

/* ---------- Video facade (delayed-load, poster backup) ---------- */
.videobox{position:relative;margin:var(--sp-6) 0 0;border-radius:var(--radius-lg);overflow:hidden;
  border:1px solid var(--color-line);background:#06121f;box-shadow:var(--shadow-1);}
.section--dark .videobox,.videobox--dark{border-color:rgba(255,255,255,.12);}
.videobox__poster{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;transition:transform .6s var(--ease);}
.videobox:hover .videobox__poster,.videobox:focus-within .videobox__poster{transform:scale(1.05);}
.videobox video{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#000;}
.videobox__play{position:absolute;inset:0;margin:0;width:100%;height:100%;border:0;background:rgba(6,18,31,.28);
  display:grid;place-items:center;cursor:pointer;transition:background var(--dur-fast);}
.videobox__play:hover,.videobox__play:focus-visible{background:rgba(6,18,31,.14);}
.videobox__play span{width:72px;height:72px;border-radius:50%;background:var(--accent);display:block;position:relative;
  box-shadow:0 6px 24px rgba(0,0,0,.35);transition:transform var(--dur-fast);}
/* Pulsing ring signals the poster is an interactive video, not a static image. */
.videobox__play span::before{content:"";position:absolute;inset:0;border-radius:50%;
  box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent);animation:vpulse 2.4s var(--ease) infinite;}
.videobox__play:hover span,.videobox__play:focus-visible span{transform:scale(1.08);}
.videobox__play span::after{content:"";position:absolute;inset-block-start:50%;inset-inline-start:54%;transform:translate(-50%,-50%);
  border-style:solid;border-width:13px 0 13px 22px;border-color:transparent transparent transparent #06121f;}
@keyframes vpulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent);}
  70%{box-shadow:0 0 0 18px rgba(0,0,0,0);}100%{box-shadow:0 0 0 0 rgba(0,0,0,0);}}
.videobox figcaption{position:absolute;inset-inline:0;inset-block-end:0;padding:var(--sp-6) var(--sp-5) var(--sp-4);
  background:linear-gradient(180deg,transparent,rgba(6,14,24,.85));color:#e7ecf5;font-size:.9rem;pointer-events:none;}
.videobox.is-playing figcaption,.videobox.is-playing .videobox__play,.videobox.is-playing .videobox__poster{display:none;}
.videobox.no-video .videobox__play{display:none;}
.video-duo{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5);}
@media(max-width:700px){ .video-duo{grid-template-columns:1fr;} }

/* ---------- Video lightbox modal ---------- */
.vmodal[hidden]{display:none;}
.vmodal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:var(--sp-5);}
.vmodal__backdrop{position:absolute;inset:0;background:rgba(4,10,18,.82);backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);animation:vfade .25s var(--ease);}
.vmodal__dialog{position:relative;z-index:1;width:min(1120px,100%);animation:vzoom .3s var(--ease);}
.vmodal__stage{border-radius:var(--radius-lg);overflow:hidden;background:#000;box-shadow:0 30px 90px rgba(0,0,0,.6);}
.vmodal__stage video{display:block;width:100%;max-height:88vh;aspect-ratio:16/9;object-fit:contain;background:#000;}
.vmodal__close{position:absolute;inset-block-start:-16px;inset-inline-end:-16px;width:46px;height:46px;border-radius:50%;
  border:0;background:var(--accent);color:#06121f;font-size:1.6rem;line-height:1;cursor:pointer;display:grid;place-items:center;
  box-shadow:0 6px 20px rgba(0,0,0,.45);transition:transform var(--dur-fast);}
.vmodal__close:hover{transform:scale(1.08);}
.vmodal__close:focus-visible{outline:2px solid #fff;outline-offset:2px;}
body.vmodal-open{overflow:hidden;}
@keyframes vfade{from{opacity:0;}to{opacity:1;}}
@keyframes vzoom{from{opacity:0;transform:scale(.96);}to{opacity:1;transform:scale(1);}}
@media(max-width:600px){ .vmodal__close{inset-block-start:-10px;inset-inline-end:-10px;width:40px;height:40px;font-size:1.4rem;} }
@media(prefers-reduced-motion:reduce){
  .videobox__poster,.videobox:hover .videobox__poster,.videobox:focus-within .videobox__poster{transition:none;transform:none;}
  .videobox__play span::before{animation:none;}
  .vmodal__backdrop,.vmodal__dialog{animation:none;}
  .compass:not(.is-focused) .compass__core{animation:none;}
}

/* ---------- One group, two brands ---------- */
.brands{margin-block-start:var(--sp-7);}
.brands__title{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:var(--fw-semibold);
  color:var(--accent);margin-block-end:var(--sp-4);}
.brands__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5);}
.brand-item{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);
  background:#fff;border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);}
.brand-item__logo{height:64px;display:flex;align-items:center;}
.brand-item__logo img{max-height:100%;max-width:220px;width:auto;object-fit:contain;}
.brand-item p{margin:0;color:var(--color-muted);font-size:.92rem;}
@media(max-width:640px){ .brands__grid{grid-template-columns:1fr;} }

/* footer co-brand mark */
.footer__belvyon{height:40px;width:auto;margin:var(--sp-2) 0 var(--sp-3);opacity:.92;}

/* ---------- Events & recognition ---------- */
.events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);
  align-items:stretch;margin-block-start:var(--sp-6);}
.event-card{display:flex;flex-direction:column;padding:var(--sp-5);}
.event-card__year{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--color-bronze);
  font-size:.9rem;letter-spacing:.06em;margin-block-end:var(--sp-2);min-height:1em;}
.event-card h3{font-size:1.1rem;margin:0 0 4px;}
.event-card__role{color:var(--color-muted);font-size:.82rem;margin-block-end:var(--sp-3);}
.event-card p{color:var(--color-muted);font-size:.9rem;margin:0 0 var(--sp-4);}
.event-card__link{margin-block-start:auto;color:var(--color-primary-600);font-weight:var(--fw-semibold);font-size:.85rem;}
.event-card__link:hover{text-decoration:underline;}
/* featured photo card — spans 2 columns as a horizontal card */
.event-card--photo{grid-column:span 2;flex-direction:row;padding:0;overflow:hidden;}
.event-card--photo img{width:44%;height:100%;min-height:220px;object-fit:cover;object-position:center 40%;display:block;}
.event-card--photo .event-card__body{padding:var(--sp-6);display:flex;flex-direction:column;justify-content:center;flex:1;}
@media(max-width:900px){
  .events-grid{grid-template-columns:repeat(2,1fr);}
  .event-card--photo{grid-column:span 2;}
}
@media(max-width:560px){
  .events-grid{grid-template-columns:1fr;}
  .event-card--photo{grid-column:span 1;flex-direction:column;}
  .event-card--photo img{width:100%;height:210px;min-height:0;}
}

/* ---------- Governance section ---------- */
.governance .card{position:relative;padding-block-start:var(--sp-7);}
.gov__mark{position:absolute;inset-block-start:var(--sp-5);inset-inline-start:var(--sp-6);width:34px;height:3px;
  background:var(--gradient-accent);border-radius:2px;}
