/* WPS 2026 — shared components for INNER pages only (not loaded by the homepage).
   Written entirely against tokens from theme.css, so it needs
   no light/dark fork of its own — load fonts.css, base.css, theme.css, then this
   file, on every inner page. */

/* ---------- page hero — compact photographic header, calmer than the homepage hero ---------- */
/* padding-bottom raised 80px -> 190px so the 190px bottom fade has clear space below the
   copy instead of running underneath it. */
/* padding-bottom carries the 190px fade band PLUS a 30px buffer: measured worst case
   (Policing 5.0's longer paragraph) put the copy's exact edge flush against the fade
   band with 0px to spare, before this buffer was added. */
.pagehero{position:relative;min-height:56vh;display:flex;align-items:center;overflow:hidden;padding:150px 28px 260px}
.pagehero__bg{position:absolute;inset:0;z-index:1}
.pagehero__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.pagehero--venue .pagehero__bg img{object-position:center 54%}
/* About Us hero: the exhibition-floor photo is bright behind the copy column, so the
   tint adds a left-side scrim (full-width on phones, where the copy spans the hero) */
.pagehero--about .pagehero__bg img{object-position:center 45%}
/* full-viewport hero with the title centred vertically: equal top/bottom padding (top clears
   the fixed navbar) and no trailing heading margin, so the block sits on the true middle */
.pagehero.pagehero--about,.pagehero.pagehero--full{min-height:100vh;min-height:100svh;padding-top:96px;padding-bottom:96px}
.pagehero.pagehero--about h1,.pagehero.pagehero--full h1{margin-bottom:0}
.pagehero.pagehero--full h1 + .pagehero__p{margin-top:20px}
.pagehero--about .pagehero__tint,.pagehero--full .pagehero__tint{background:
  linear-gradient(90deg,rgba(7,6,26,.72) 0%,rgba(7,6,26,.5) 42%,rgba(7,6,26,.08) 72%,rgba(7,6,26,0) 100%),
  radial-gradient(900px 560px at 22% 38%, rgba(46,43,115,.35), transparent 68%)}
@media (max-width:760px){
  .pagehero.pagehero--about,.pagehero.pagehero--full{padding-top:88px;padding-bottom:88px}
  .pagehero--about .pagehero__tint,.pagehero--full .pagehero__tint{background:linear-gradient(180deg,rgba(7,6,26,.55) 0%,rgba(7,6,26,.62) 60%,rgba(7,6,26,.3) 100%)}
}
/* ---------------------------------------------------------------
   Two stacked layers, theme-scoped, mirroring .hero__veil.

   The old single rule ended on `var(--bg)` while its earlier stops were rgba(7,6,26,…).
   In LIGHT mode that interpolated from 78%-opaque near-black straight to opaque near-white
   across the last 15% of the hero — a dark->light hue crossing in ~76px, which is the grey
   band / hard edge. Dark mode was unaffected because --bg there IS rgba(7,6,26,1), so it
   stayed a pure alpha ramp. Each theme now fades within ONE hue: alpha only, never crossing.

   The fade is anchored to a FIXED 190px at the bottom (background-position:bottom +
   background-size:100% 190px) rather than percentage stops. Hero height is not constant —
   .pagehero is min-height:56vh but grows with its copy, and measured text-bottom ranged from
   79.6% (Contact Us) to 91.3% (Policing 5.0), shifting again whenever the paragraph rewraps.
   Percentage stops would therefore wash over the copy on some pages and not others; a
   pixel-anchored fade behaves identically everywhere.

   Stops are eased (slow onset, steeper finish) so the first ~60px of the fade is barely
   present — that is what keeps it clear of any copy sitting just above it. */
.pagehero__veil{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(247,250,253,0) 0%,rgba(247,250,253,.10) 30%,rgba(247,250,253,.34) 55%,rgba(247,250,253,.68) 78%,rgba(247,250,253,.92) 92%,var(--bg) 100%) bottom/100% 190px no-repeat,
    linear-gradient(180deg,rgba(7,6,26,.5) 0%,rgba(7,6,26,.4) 44%,rgba(7,6,26,.52) 100%)}
[data-theme="dark"] .pagehero__veil{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(7,6,26,0) 0%,rgba(7,6,26,.12) 30%,rgba(7,6,26,.38) 55%,rgba(7,6,26,.7) 78%,rgba(7,6,26,.93) 92%,var(--bg) 100%) bottom/100% 190px no-repeat,
    linear-gradient(180deg,rgba(7,6,26,.5) 0%,rgba(7,6,26,.4) 44%,rgba(7,6,26,.52) 100%)}
.pagehero__tint{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(900px 560px at 22% 38%, rgba(46,43,115,.35), transparent 68%)}
.pagehero__in{position:relative;z-index:4;max-width:var(--shell);margin:0 auto;width:100%}
.pagehero__col{max-width:760px}
.pagehero h1{font-size:clamp(40px,6vw,72px);font-weight:800;line-height:1.04;letter-spacing:-.03em;color:#fff;margin-bottom:22px}
.pagehero__p{font-size:clamp(16px,1.6vw,19px);line-height:1.6;color:rgba(255,255,255,.68);max-width:620px}

/* ---------- two-column media/copy row, either orientation ---------- */
.about__grid--reverse{grid-template-columns:.92fr 1.08fr}

/* ---------- mission & vision — a pair of gradient-glow panels ---------- */
.mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.mv-grid .panel{padding:40px}
.mv-grid .panel h3{font-size:clamp(20px,2vw,24px);font-weight:750;margin-bottom:12px}

/* ---------- stats panel, 4-up variant (homepage's is fixed at 3) ---------- */
.stats__grid--4{grid-template-columns:repeat(4,1fr)}

/* ---------- pillar cards — image-topped variant of .exp (matches the live site's
   photo-above-copy fancy-box, built from our own card language).

   The card keeps ONE uniform padding and the body adds NO horizontal padding of its
   own, so the image and the text share exactly the same left/right edges. Getting
   this wrong is what caused the earlier misalignment: the body was adding a second
   24px inset on top of the card's, putting text at 48px while the image sat at 24px.

   Both selectors are needed. `[data-theme="dark"] .exp` in theme.css is specificity
   (0,2,0) and re-declares `padding`, so a bare `.exp--img` (0,1,0) loses to it in
   dark mode — which is precisely how the misalignment only showed up in dark. Any
   future .exp modifier that touches a property theme.css also sets needs the same
   treatment. ---------- */
.exp.exp--img,
[data-theme="dark"] .exp.exp--img{padding:24px;overflow:hidden}
.exp--img .exp__img{position:relative;aspect-ratio:3/2;overflow:hidden;border-radius:var(--r-sm)}
.exp--img .exp__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.exp--img:hover .exp__img img{transform:scale(1.05)}
.exp--img .exp__body{padding:20px 0 0}
.exp--img .exp__body h3{margin-bottom:8px}

/* ---------- why-attend tiles — full-bleed photographic cards, copy over a veil
   (the router/zone/venue treatment: text on imagery, never a plain caption below) ---------- */
.why__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.why{position:relative;border-radius:var(--r-md);overflow:hidden;min-height:290px;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid var(--brd);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.why:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(7,6,26,.28)}
.why__bg{position:absolute;inset:0}
.why__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.why:hover .why__bg img{transform:scale(1.06)}
.why__veil{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(7,6,26,0) 32%,rgba(7,6,26,.58) 68%,rgba(7,6,26,.94) 100%)}
/* margin-left matches .why__body's padding-left (20px) so the number badge, heading
   and body copy all share one left edge */
.why__num{position:relative;z-index:2;align-self:flex-start;margin:18px 0 0 20px;font-family:var(--f-m);font-size:11px;font-weight:600;letter-spacing:.06em;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:6px 13px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.why__body{position:relative;z-index:2;padding:16px 20px 22px}
.why__body h3{color:#fff;font-size:17px;font-weight:750;margin-bottom:6px;line-height:1.25}
.why__body p{color:rgba(255,255,255,.75);font-size:13.5px;line-height:1.5}

@media (max-width:1080px){
  .mv-grid{grid-template-columns:1fr}
  .stats__grid--4{grid-template-columns:repeat(2,1fr)}
  .about__grid--reverse{grid-template-columns:1fr}
  .about__grid--reverse .about__art,
  .about__grid--reverse > div:last-child{width:100%;max-width:780px;justify-self:center}
}
@media (max-width:760px){
  .pagehero{padding:130px 18px 270px}
  .mv-grid .panel{padding:28px}
  .stats__grid--4{grid-template-columns:1fr}
  .why{min-height:240px}
}

/* ---------- FAQ accordion — question rows that expand into an answer,
   built from the same glass-card + chevron-rotate language as the nav dropdowns ---------- */
.faq-cat{margin-bottom:52px}
.faq-cat:last-child{margin-bottom:0}
/* Card H3 tier from DESIGN-SPECS section 2 — clamp(24px,2.6vw,34px)/750/1.12. The previous
   clamp(19px,2vw,22px) was an off-scale value that appears nowhere in the spec table.
   Colour is the same accent the site already uses for heading emphasis on `.h2 em`
   (#00A896 light / --wps-teal dark), so these category headers read as accented headings
   in the existing language rather than introducing a new colour. */
.faq-cat__title{font-size:clamp(24px,2.6vw,34px);line-height:1.12;font-weight:750;color:#00A896;margin-bottom:22px}
.faq-list{display:flex;flex-direction:column;gap:12px}
.faq{border:1px solid var(--brd);border-radius:var(--r-md);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);overflow:hidden;transition:border-color .25s var(--ease),background .25s var(--ease)}
.faq:hover{border-color:var(--brd-hi);background:var(--glass-hi)}
.faq__q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 22px;text-align:left;font-weight:700;font-size:15.5px;line-height:1.4;color:var(--ink)}
/* Real stroked chevron (rounded caps/joins) drawn as a mask instead of the old ▾ text
   glyph, which rendered as a squat solid triangle with font-dependent baseline drift.
   background:currentColor means every existing `color:` rule and theme override keeps
   controlling it exactly as before — no colour logic had to be duplicated. */
.faq__ic{display:block;width:14px;height:14px;flex:none;color:var(--w40);background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .3s var(--ease)}
.faq[aria-expanded="true"] .faq__ic{transform:rotate(180deg)}
.faq__a{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.faq__a-in{padding:0 22px 20px;font-size:14.5px;line-height:1.65;color:var(--w55)}
.faq__a-in p{margin-bottom:10px}
.faq__a-in p:last-child{margin-bottom:0}
.faq__a-in ul{list-style:none;display:flex;flex-direction:column;gap:6px;margin:8px 0}
.faq__a-in li{padding-left:16px;position:relative}
.faq__a-in li::before{content:"—";position:absolute;left:0;color:var(--w40)}

@media (max-width:760px){
  .faq__q{padding:16px 18px;font-size:14.5px}
  .faq__a-in{padding:0 18px 18px}
}

/* ---------- contact form card — page-level version of the proposal modal's form
   language (same input/select/textarea treatment, generalised off .modal onto .cform) ---------- */
/* Same gradient recipe as .panel (the router's 'For Delegates' card) — reused verbatim,
   not reinvented, so the contact form reads as the same premium surface language rather
   than a flat glass card. Dark-mode override lives in theme.css. */
.cform-card{max-width:760px;margin:0 auto;border-radius:var(--r-lg);padding:44px;
  background:radial-gradient(560px 340px at 92% -6%,rgba(0,199,177,.16),transparent 60%),radial-gradient(520px 360px at 4% 108%,rgba(54,164,221,.2),transparent 62%),linear-gradient(155deg,#FFFFFF,#F2F7FC 55%,#E9F1F9);
  border:1px solid #D7E6F2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 24px 60px rgba(46,43,115,.08),var(--glow)}
.cform{display:flex;flex-direction:column;gap:16px}
.cform__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cform label{display:flex;flex-direction:column;gap:6px;font-family:var(--f-m);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--w40)}
.cform input,.cform select,.cform textarea{width:100%;padding:12px 15px;border-radius:14px;border:1px solid #D7E4F2;background:#F7FAFC;color:var(--ink);font-family:var(--f-d);font-size:14px;resize:none}
.cform input::placeholder,.cform textarea::placeholder{color:#9AABC2}
.cform .btn{margin-top:6px;justify-content:center}
.cform__done{text-align:center;padding:30px 0}
.cform__done .modal__tick{margin:0 auto 18px}
.cform__done h3{margin-bottom:10px}
.cform__trap{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.cform__notice{margin-bottom:22px;padding:16px 18px;border-radius:14px;font-size:14px;line-height:1.55}
.cform__notice strong{display:block;margin-bottom:4px;color:var(--ink)}
.cform__notice p{margin:0;color:var(--ink-soft)}
.cform__notice--error{border:1px solid rgba(194,52,52,.28);background:rgba(214,69,69,.08)}
.cform__terms-error{margin:-3px 0 3px 29px}

/* Gravity Forms keeps the exhibitor form editable in wp-admin while these scoped
   rules preserve the supplied front-end composition exactly. */
.exhibitor-registration .cform-card .gform_wrapper{margin:0;--gf-form-gap-y:16px;--gf-field-gap-y:6px}
.exhibitor-registration .cform-card .gform_wrapper form.cform{display:block}
.exhibitor-registration .cform-card .gform-body{margin:0}
.exhibitor-registration .cform-card .gform_fields{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:16px!important}
.exhibitor-registration .cform-card .gfield{grid-column:auto!important;min-width:0}
.exhibitor-registration .cform-card .gfield.wps-full{grid-column:1/-1!important}
.exhibitor-registration .cform-card .gfield_label{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:5px;margin:0 0 6px!important;font-family:var(--f-m)!important;font-size:10px!important;font-weight:500!important;line-height:1.35!important;letter-spacing:.14em!important;text-align:start!important;text-transform:uppercase;color:var(--w40)!important}
.exhibitor-registration .cform-card .gfield_required{margin:0!important;color:#D64545!important}
.exhibitor-registration .cform-card .gfield_required_text{font-size:0!important;letter-spacing:0!important}
.exhibitor-registration .cform-card .gfield_required_text::after{content:"*";font-size:12px}
.exhibitor-registration .cform-card .ginput_container{margin:0!important}
.exhibitor-registration .cform-card .ginput_container_select{display:block!important;width:100%!important;max-width:none!important;inline-size:100%!important}
.exhibitor-registration .cform-card .ginput_container_select>.wsel{display:flex!important;width:100%!important;max-width:none!important;inline-size:100%!important}
.exhibitor-registration .cform-card .ginput_container_select>.wsel>.wsel__btn{width:100%;justify-content:space-between}
.exhibitor-registration .cform-card input:not([type=checkbox]):not([type=hidden]),
.exhibitor-registration .cform-card select,
.exhibitor-registration .cform-card textarea{width:100%!important;min-height:46px!important;padding:12px 15px!important;border:1px solid #D7E4F2!important;border-radius:14px!important;background:#F7FAFC!important;box-shadow:none!important;color:var(--ink)!important;font-family:var(--f-d)!important;font-size:14px!important;line-height:1.45!important;resize:none}
.exhibitor-registration .cform-card textarea{height:118px!important;min-block-size:118px!important}
.exhibitor-registration .cform-card .ginput_counter{display:none!important}
.exhibitor-registration .cform-card .wps-form-counter{display:block;margin-top:8px;font-size:11px;line-height:1.35;text-align:end;font-variant-numeric:tabular-nums;color:#9AABC2}
.exhibitor-registration .cform-card input::placeholder,
.exhibitor-registration .cform-card textarea::placeholder{color:#9AABC2!important;opacity:1}
.exhibitor-registration .cform-card input:focus,
.exhibitor-registration .cform-card select:focus,
.exhibitor-registration .cform-card textarea:focus{border-color:#009DD9!important;box-shadow:0 0 0 3px rgba(0,157,217,.14)!important;outline:none!important}
.exhibitor-registration .cform-card .wps-consent-field>legend{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.exhibitor-registration .cform-card .ginput_container_consent{display:flex!important;align-items:flex-start!important;gap:11px!important;margin:0!important}
.exhibitor-registration .cform-card .ginput_container_consent input[type=checkbox]{flex:none;width:18px!important;height:18px!important;margin:1px 0 0!important;accent-color:var(--wps-teal);cursor:pointer}
.exhibitor-registration .cform-card .gfield_consent_label{display:block!important;margin:0!important;font-family:inherit!important;font-size:14px!important;font-weight:400!important;line-height:1.55!important;letter-spacing:normal!important;text-align:start!important;text-transform:none!important;color:var(--ink-soft)!important;cursor:pointer}
.exhibitor-registration .cform-card .gfield_consent_label:hover{color:var(--ink)!important}
.exhibitor-registration .cform-card .gfield_consent_label a{color:var(--ink)!important;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.exhibitor-registration .cform-card .gfield_consent_label em{color:#9AABC2;font-style:normal}
.exhibitor-registration .cform-card .gform-footer{margin:22px 0 0!important;padding:0!important}
.exhibitor-registration .cform-card .gform_button{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-height:56px!important;margin:0!important;padding:16px 30px!important;border:0!important;border-radius:999px!important;background:#023689!important;box-shadow:0 8px 24px rgba(2,54,137,.28)!important;color:#fff!important;font-family:var(--f-d)!important;font-size:15px!important;font-weight:700!important;cursor:pointer;transition:transform .25s var(--ease),background-color .25s var(--ease),box-shadow .25s var(--ease)!important}
.exhibitor-registration .cform-card .gform_button:hover{background:#0B4BAE!important;transform:translateY(-2px);box-shadow:0 12px 28px rgba(2,54,137,.32)!important}
.exhibitor-registration .cform-card .gform_validation_errors{margin:0 0 22px!important;padding:16px 18px!important;border:1px solid rgba(194,52,52,.28)!important;border-radius:14px!important;background:rgba(214,69,69,.08)!important;box-shadow:none!important}
.exhibitor-registration .cform-card .gform_validation_errors h2{font-family:var(--f-d)!important;font-size:14px!important;line-height:1.5!important;color:#C23434!important}
.exhibitor-registration .cform-card .gfield_validation_message{margin:6px 0 0!important;padding:0!important;border:0!important;background:transparent!important;font-size:12.5px!important;color:#C23434!important}
.exhibitor-registration .cform-card .gform_confirmation_wrapper{margin:0}

/* quick-contact chips */
.cc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:56px}
/* Anatomy borrowed from the homepage router's .tile: a small numbered eyebrow, then a
   bold label pushed to the bottom, then the payload. Previously an h3 at 15.5px sat
   directly above a 13.5px link in the SAME colour as the heading (#fff in dark), so
   there was no hierarchy and the email did not read as a link at all. */
.cc{display:flex;flex-direction:column;min-height:158px;background:var(--glass);border:1px solid var(--brd);border-radius:var(--r-md);padding:24px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease)}
.cc:hover{transform:translateY(-4px);border-color:var(--brd-hi);background:var(--glass-hi)}
/* margin-top:auto REMOVED (2026-08-24): it pinned the label+email pair to the card's
   bottom, which made sense when a short numbered badge sat above it (.cc__n, now gone).
   Now that a 58px icon chip (.tile__ic, margin-bottom:10px) sits there instead, that
   auto margin absorbed the leftover space BETWEEN the icon and the heading, producing an
   oversized gap that didn't match .exp's identical icon-chip cards, which never had this
   rule. Card height is still enforced by .cc's own min-height:158px, so any leftover
   space now pools naturally at the bottom instead of being forced between icon and text. */
.cc h3{font-size:18px;line-height:1.15;font-weight:700;color:var(--ink);margin-bottom:9px}
.cc a{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;color:var(--wps-deep);word-break:break-word;transition:color .25s var(--ease)}
.cc a .ar{transition:transform .25s var(--ease)}
.cc:hover a .ar{transform:translateX(4px)}

@media (max-width:760px){
  .cform-card{padding:28px}
  .cform__row{grid-template-columns:1fr}
  .exhibitor-registration .cform-card .gform_fields{grid-template-columns:1fr!important}
  .exhibitor-registration .cform-card .gfield{grid-column:1/-1!important}
}

[data-theme="dark"] .cform input,[data-theme="dark"] .cform select,[data-theme="dark"] .cform textarea{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:#fff}
[data-theme="dark"] .cform input::placeholder,[data-theme="dark"] .cform textarea::placeholder{color:rgba(255,255,255,.3)}
[data-theme="dark"] .cform select{color:rgba(255,255,255,.9)}
[data-theme="dark"] .cform select option{color:#131230;background:#fff}
[data-theme="dark"] .exhibitor-registration .cform-card input:not([type=checkbox]):not([type=hidden]),
[data-theme="dark"] .exhibitor-registration .cform-card select,
[data-theme="dark"] .exhibitor-registration .cform-card textarea{border-color:rgba(255,255,255,.14)!important;background:rgba(255,255,255,.05)!important;color:#fff!important}
/* The emphasis the brief asked for. #fff here was identical to the card heading, which is
   why the emails did not read as links. --wps-light is the token DESIGN-SPECS 1.1 assigns to
   "links"; --wps-deep is its light-surface counterpart (same pair .router__else a uses). */
[data-theme="dark"] .cc a{color:var(--wps-light)}

/* ============================================================
   MISSION & VISION — plain page section, decorative wave only.

   Deliberately NOT a panel. Earlier passes built this as a full-bleed gradient
   panel with a cutout photo; both are gone. It is now an ordinary `.sect .atmo`
   section on the page background, so its copy aligns to the same 1240px `.wrap`
   shell as every other section rather than to a 1400px breakout with its own
   inner padding.

   Cross-checked against DESIGN-SPECS.md:
     section 3   - 1240px shell; `.sect` supplies the 88px 28px section padding
     section 2   - Card H3 clamp(24px,2.6vw,34px)/750/1.12 for the column headings
                   and Body 17.5px/1.68 for the copy (the spec's values, not the
                   Figma-derived 40px/20px used before)
     section 4.3 - wave artwork is one of the two sanctioned background treatments;
                   here it is ambient decoration behind the copy, so it needs no
                   veil (nothing sits directly on it)

   Colour uses the theme-adaptive tokens (--ink / --w55 / --brd) with an explicit
   dark override on the h3, since --ink resolves near-black in dark - the bug family
   recorded in wps-spec-code-drift.
   ============================================================ */
.mv{position:relative;overflow:hidden}
.mv > .wrap{position:relative;z-index:1}
.mv__shape{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1180px,124%);z-index:0;pointer-events:none;opacity:.2}
.mv__shape img{width:100%;height:auto;display:block}
[data-theme="dark"] .mv__shape{opacity:.42}

.mv__grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.mv__col:first-child{padding-right:56px}
.mv__col:last-child{padding-left:56px;border-left:1px solid var(--brd)}
.mv__col h3{font-size:clamp(24px,2.6vw,34px);line-height:1.12;font-weight:750;color:var(--ink);margin-bottom:14px}
[data-theme="dark"] .mv__col h3{color:#fff}
/* No max-width: the grid column already constrains the measure to ~564px, which sits
   in the same band as this page's other Body copy (#story .body runs ~631px) and under
   the spec's 620px Lead cap. The previous arbitrary 46ch capped it at 503px, giving this
   section visibly shorter lines than every other paragraph on the page. */
.mv__col p{font-size:17.5px;line-height:1.68;color:var(--w55)}

@media (max-width:1080px){
  .mv__grid{grid-template-columns:1fr}
  .mv__col:first-child{padding-right:0}
  .mv__col:last-child{padding-left:0;border-left:0;padding-top:36px;margin-top:36px;border-top:1px solid var(--brd)}
  .mv__col p{max-width:none}
}

/* Contact Us: #quick and #form are directly adjacent sections (no content between them), each
   carrying the default .sect 88px top/bottom padding — the two edges facing each other stacked
   into a 176px dead gap between "General Info" and "Get in touch." Reduced just the two touching
   edges; the sections' OWN outer edges (top of #quick, bottom of #form) keep the normal .sect
   padding, since those still border different content above/below. */
#quick{padding-bottom:32px}
#form{padding-top:32px}
@media (max-width:840px){
  #quick{padding-bottom:26px}
  #form{padding-top:26px}
}
@media (max-width:760px){
  #quick{padding-bottom:20px}
  #form{padding-top:20px}
}

/* ---------- contact desk cards: the line explaining what each desk covers ---------- */
.cc p{font-size:13.5px;line-height:1.55;color:var(--w55);margin-bottom:14px}
.cc a{margin-top:auto}

/* ---------- contact details strip — phone, venue, dates, reply time ----------
   The things people scan for before they write in. Glass surface and --r-md to
   match the desk cards it sits under. */
.cmeta{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:56px;border:1px solid var(--brd);border-radius:var(--r-md);background:var(--brd);overflow:hidden}
/* `> span` matters: the cell now contains .cmeta__ic and .cmeta__t spans, and a bare
   `.cmeta span` (0,1,1) would style those too — and out-specify .cmeta__ic (0,1,0),
   painting the icon in --ink and giving the text its own nested glass box. */
.cmeta > span{display:flex;align-items:flex-start;gap:13px;padding:20px 22px;font-size:14px;line-height:1.5;color:var(--ink);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.cmeta__t{display:flex;flex-direction:column;gap:5px;min-width:0}
/* Phosphor Icons (MIT) — see assets/icons-ui/LICENSE.txt. Applied as a mask over
   background:currentColor, the same technique as .social__i, so they take the brand blue
   here and need no dark-mode variant of their own. */
.cmeta__ic{width:19px;height:19px;flex:none;margin-top:1px;background:currentColor;color:var(--wps-light);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain}
.cmeta__ic--phone{-webkit-mask-image:url('../icons-ui/phone.svg');mask-image:url('../icons-ui/phone.svg')}
.cmeta__ic--venue{-webkit-mask-image:url('../icons-ui/map-pin.svg');mask-image:url('../icons-ui/map-pin.svg')}
.cmeta__ic--dates{-webkit-mask-image:url('../icons-ui/calendar-blank.svg');mask-image:url('../icons-ui/calendar-blank.svg')}
.cmeta__ic--reply{-webkit-mask-image:url('../icons-ui/clock.svg');mask-image:url('../icons-ui/clock.svg')}
.cmeta b{font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--w40)}

/* ---------- TBC marker ----------
   Deliberately loud: every one of these is a value the client still has to supply.
   Search the HTML for "tbc" to find them all, and delete the span once the real
   content lands. */
.tbc{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7A4A00;background:#FFE9C2;border:1px solid #F0C070;vertical-align:middle}
.spk-api-empty{margin-top:34px;padding:42px;border:1px solid rgba(14,49,120,.14);border-radius:var(--r-lg);background:linear-gradient(135deg,rgba(0,206,175,.08),rgba(0,157,215,.08));text-align:center;color:var(--ink)}
.spk-api-empty strong{display:block;font-size:24px;line-height:1.25}.spk-api-empty p{max-width:680px;margin:10px auto 0;color:var(--w55);line-height:1.65}.spk-api-empty--compact{max-width:820px;margin:32px auto 0}

/* ---------- plain .exp card (no image): eyebrow + heading + copy + link ---------- */
/* `.exp p{color:var(--w55)}` in base.css is (0,1,1) and out-specifies the bare
   `.eyebrow` class (0,1,0), so an eyebrow used as a label inside an .exp card was
   rendering in body grey instead of its system colour. `.exp > .eyebrow` is (0,2,0)
   and wins; --wps-deep/--wps-light come from the .eyebrow definitions in theme.css. */
.exp > .eyebrow{margin-bottom:10px;color:var(--wps-deep);font-size:clamp(13px,.95vw,15px)}
[data-theme="dark"] .exp > .eyebrow{color:var(--wps-light)}
.exp h3{margin-bottom:8px}

/* explicit tracks, not auto-fit: auto-fit collapses its unused track to 0px, which with the
   1px gap-as-hairline trick left a stray divider against the right border */
@media (max-width:1080px){.cmeta{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cmeta{grid-template-columns:1fr}}

/* ---------- edition cards: post-show report CTAs ----------
   .edn is the plain (image-less) .exp used by the previous-editions grid. It becomes a flex
   column purely so the CTA row can be pushed to the card's bottom edge with margin-top:auto
   — the four cards carry different amounts of copy, and without this the buttons sat at four
   different heights. Scoped to .edn so the shared .exp card (pillars grid, and the homepage
   Experiences pane) is untouched. */
.edn{display:flex;flex-direction:column}
/* Awards Registration: two routes (Individual / Organisation) side by side. The base
   .exp__grid auto-fits at minmax(240px), which would allow a third phantom column on wide
   screens — these are exactly two choices, so pin the track count. */
.exp__grid--2{grid-template-columns:repeat(2,1fr)}
.exp__grid--2 .exp{padding:32px 30px}
.exp__grid--2 .exp h3{font-size:22px}
.exp__grid--2 .exp > p{font-size:14.5px;line-height:1.65}
@media (max-width:760px){.exp__grid--2{grid-template-columns:1fr}}
/* `.edn > .edn__lbl` rather than `.edn__lbl`: the label is a <p> inside .exp, and the
   existing `.exp p{margin-top:9px}` rule (0,1,1) out-specifies a bare class (0,1,0),
   which silently defeats the margin-top:auto that does the bottom alignment. */
.edn > .edn__lbl{margin-top:auto;padding-top:18px;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--w40)}
.edn__cta{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.cform__integration-note{margin-top:16px;padding:14px 16px;border-radius:var(--r-sm);border:1px solid rgba(0,157,217,.22);background:rgba(0,157,217,.07);font-size:13.5px;line-height:1.55;color:var(--w55)}
.cform .btn[disabled]{opacity:.58;cursor:not-allowed}

/* ---------- Awards page: live roadmap ("The road to the ceremony") ----------
   Spotlight card (next milestone + live countdown) over a clickable stepper whose rail fills
   to today's date. State is driven by the script in awards.html (Dubai time, GST +04:00). */
.rmap{display:grid;gap:18px}
.rmap__spot{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:40px 44px;color:#fff;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:36px;align-items:center;
  background:radial-gradient(90% 90% at 0% 0%,rgba(0,176,166,.28) 0%,rgba(0,176,166,0) 55%),
             radial-gradient(80% 90% at 100% 100%,rgba(0,157,217,.34) 0%,rgba(0,157,217,0) 60%),
             linear-gradient(160deg,#07061A 0%,#14479C 60%,#0E3178 100%);
  box-shadow:0 21px 50px rgba(2,54,137,.2)}
.rmap__spot::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.1;background:url('../images/mv-brand-swoosh.svg') 85% 50%/120% auto no-repeat}
.rmap__spot > *{position:relative}
.rmap__ghost{position:absolute;right:-6px;bottom:-40px;font-size:220px;font-weight:900;line-height:1;letter-spacing:-.06em;color:rgba(255,255,255,.05);pointer-events:none;font-variant-numeric:tabular-nums}
.rmap__info{transition:opacity .3s var(--ease),transform .3s var(--ease)}
.rmap__info.is-out,.rmap__clock.is-out{opacity:0;transform:translateY(8px)}
.rmap__k{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-m);font-size:10.5px;font-weight:650;letter-spacing:.18em;text-transform:uppercase;color:#00CEAF}
.rmap__spot[data-state="done"] .rmap__k{color:rgba(255,255,255,.62)}
.rmap__spot[data-state="upcoming"] .rmap__k{color:#7FD3F2}
.rmap__t{margin-top:12px;font-size:clamp(26px,2.8vw,36px);font-weight:800;line-height:1.08;letter-spacing:-.02em;color:#fff}
.rmap__p{margin-top:12px;max-width:46ch;font-size:15px;line-height:1.6;color:rgba(255,255,255,.76)}
.rmap__when{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);font-size:13px;font-weight:600;color:#fff}
.rmap__when svg{width:15px;height:15px;flex:none;opacity:.8}
.rmap__clock{justify-self:end;width:100%;max-width:440px;transition:opacity .3s var(--ease),transform .3s var(--ease)}
.rmap__cap{font-family:var(--f-m);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:12px}
.rmap__cd{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.rmap__u{padding:16px 8px 13px;border-radius:var(--r-md);text-align:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.rmap__n{display:block;font-family:var(--f-m);font-size:clamp(28px,3.2vw,42px);font-weight:600;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.rmap__l{display:block;margin-top:8px;font-family:var(--f-m);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.rmap__big{font-size:clamp(40px,4.6vw,60px);font-weight:800;line-height:1;letter-spacing:-.03em;color:#fff}
.rmap__big small{display:block;margin-top:10px;font-size:14px;font-weight:600;letter-spacing:0;color:rgba(255,255,255,.66)}
.rmap__bar{margin-top:18px;height:6px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden}
.rmap__bar span{display:block;height:100%;width:calc(var(--rp,0) * 100%);border-radius:inherit;background:linear-gradient(90deg,#009DD9,#00CEAF);transition:width 1.2s cubic-bezier(.22,1,.36,1)}
.rmap__meta{display:flex;justify-content:space-between;gap:12px;margin-top:9px;font-size:12px;color:rgba(255,255,255,.6)}
.rmap__meta b{color:#fff;font-weight:700}

.rmap__steps{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.rmap__rail{position:absolute;left:var(--ra,10%);width:var(--rw,80%);top:38px;height:3px;border-radius:999px;background:var(--brd);pointer-events:none}
.rmap__rail span{display:block;height:100%;width:calc(var(--rp,0) * 100%);border-radius:inherit;background:linear-gradient(90deg,var(--wps-light),var(--wps-teal));transition:width 1.4s cubic-bezier(.22,1,.36,1)}
.rmap:not(.is-in) .rmap__rail span,.rmap:not(.is-in) .rmap__bar span{width:0}
.rmap__step{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;height:100%;padding:18px 14px 20px;border-radius:var(--r-md);border:1px solid transparent;background:transparent;cursor:pointer;color:inherit;font:inherit;transition:background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}
.rmap__step:hover{background:var(--glass);border-color:var(--brd)}
.rmap__step[aria-pressed="true"]{background:#fff;border-color:rgba(0,157,217,.4);box-shadow:0 14px 34px rgba(2,54,137,.1);transform:translateY(-2px)}
[data-theme="dark"] .rmap__step[aria-pressed="true"]{background:rgba(255,255,255,.06)}
.rmap__node{position:relative;z-index:1;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--bg);border:2px solid var(--brd-hi,rgba(22,33,58,.2));font-family:var(--f-m);font-size:12px;font-weight:700;color:var(--w40);transition:all .3s var(--ease)}
.rmap__node svg{width:16px;height:16px;display:none}
.rmap__step.is-done .rmap__node{background:var(--wps-teal);border-color:var(--wps-teal);color:#fff}
.rmap__step.is-done .rmap__node svg{display:block}
.rmap__step.is-done .rmap__node em{display:none}
.rmap__node em{font-style:normal}
.rmap__step.is-next .rmap__node{background:var(--wps-dark);border-color:var(--wps-dark);color:#fff;box-shadow:0 0 0 6px rgba(0,157,217,.16)}
.rmap__step.is-next .rmap__node::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid rgba(0,157,217,.45);animation:rmapPulse 2.4s ease-out infinite}
.rmap__d{margin-top:14px;font-family:var(--f-m);font-size:10.5px;font-weight:650;letter-spacing:.13em;text-transform:uppercase;color:var(--teal-ink)}
[data-theme="dark"] .rmap__d{color:var(--wps-teal)}
.rmap__lb{margin-top:6px;font-size:15px;font-weight:750;line-height:1.25;color:var(--ink)}
[data-theme="dark"] .rmap__lb{color:#fff}
.rmap__st{margin-top:10px;display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-family:var(--f-m);font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--w40);background:rgba(124,139,163,.1);border:1px solid rgba(124,139,163,.24)}
.rmap__step.is-done .rmap__st{color:var(--teal-ink);background:rgba(0,206,175,.1);border-color:rgba(0,206,175,.3)}
.rmap__step.is-next .rmap__st{color:#fff;background:var(--wps-dark);border-color:var(--wps-dark)}
.rmap__step.is-done .rmap__lb{opacity:.8}
.rmap__steps > li{opacity:0;transform:translateY(14px)}
.rmap.is-in .rmap__steps > li{animation:rmapRise .6s cubic-bezier(.22,1,.36,1) both}
.rmap.is-in .rmap__steps > li:nth-child(2){animation-delay:.07s}
.rmap.is-in .rmap__steps > li:nth-child(3){animation-delay:.14s}
.rmap.is-in .rmap__steps > li:nth-child(4){animation-delay:.21s}
.rmap.is-in .rmap__steps > li:nth-child(5){animation-delay:.28s}
@keyframes rmapRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes rmapPulse{0%{transform:scale(.8);opacity:.9}100%{transform:scale(1.5);opacity:0}}
@media (prefers-reduced-motion:reduce){
  .rmap__steps > li,.rmap.is-in .rmap__steps > li{opacity:1;transform:none;animation:none}
  .rmap__step.is-next .rmap__node::after{animation:none}
  .rmap__rail span,.rmap__bar span{transition:none}
}
@media (max-width:1080px){
  .rmap__spot{grid-template-columns:1fr;gap:26px;padding:34px 30px}
  .rmap__clock{justify-self:start}
}
@media (max-width:760px){
  .rmap__spot{padding:28px 22px}
  .rmap__ghost{font-size:150px;bottom:-26px}
  .rmap__cd{gap:6px}
  .rmap__u{padding:12px 4px 10px}
  .rmap__steps{grid-template-columns:1fr;gap:6px}
  .rmap__rail{left:37px;width:3px;top:var(--ra,30px);height:var(--rw,80%)}
  .rmap__rail span{width:100%;height:calc(var(--rp,0) * 100%);transition:height 1.4s cubic-bezier(.22,1,.36,1)}
  .rmap:not(.is-in) .rmap__rail span{width:100%;height:0}
  .rmap__step{display:grid;grid-template-columns:42px 1fr auto;column-gap:14px;align-items:center;text-align:left;padding:12px 14px}
  .rmap__node{grid-row:1 / span 2}
  .rmap__d{margin-top:0;grid-column:2}
  .rmap__lb{margin-top:2px;grid-column:2}
  .rmap__st{grid-column:3;grid-row:1 / span 2;margin-top:0}
  .rmap__step[aria-pressed="true"]{transform:none}
}

/* ---------- Awards page: category tiles ---------- */
.awdcat__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.awdcat{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--brd);border-radius:var(--r-md);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color .25s var(--ease),background .25s var(--ease),transform .25s var(--ease)}
.awdcat:hover{border-color:var(--brd-hi);background:var(--glass-hi);transform:translateY(-2px)}
.awdcat__chip{width:56px;height:56px;border-radius:14px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.14);display:flex;align-items:center;justify-content:center;flex:none}
.awdcat__chip img{width:40px;height:40px;display:block}
/* flex:1 + min-width:0 — without this, a long unbroken category name (e.g. "Best Innovative Idea
   in Security and Law Enforcement Award") refuses to shrink below its own intrinsic width inside
   the flex row, which forces the .awdcat card itself wider than its grid track and pushes the
   whole .awdcat__grid past the wrap's right edge — the last column was clipping off-screen. */
.awdcat b{flex:1;min-width:0;font-size:14.5px;font-weight:700;line-height:1.35;color:var(--ink)}

/* ---------- Awards page: photo-chip variant (2025 detail pages) — real ceremony photography
   instead of the category icon, used where the page is specifically about people/moments
   (Shortlisted Finalists, Winners Showcase, Insights from the Winners) rather than the category
   system itself (the icons stay on the main Awards page's category grid). ---------- */
.awdcat--photo .awdcat__chip{background:none;box-shadow:none;overflow:hidden}
.awdcat--photo .awdcat__chip img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.awdcat--photo.awdcat--video .awdcat__play{background:rgba(4,3,20,.45);border-radius:inherit;color:#fff;font-size:15px}



@media (max-width:760px){
  .awdcat__grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
}
@media (max-width:480px){
  .awdcat{padding:14px 16px;gap:12px}
  .awdcat__chip{width:46px;height:46px;border-radius:12px}
  .awdcat__chip img{width:32px;height:32px}
}

/* ---------- Venue page: "at a glance" stat strip — same fixed-dark-panel language as .astat ---------- */
.venglance{display:flex;flex-wrap:wrap;gap:28px;background:rgba(7,6,26,.9);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);padding:32px 34px}
.venglance__item{flex:1 1 200px}
.venglance__item b{display:block;font-family:var(--f-m);font-size:clamp(26px,3vw,36px);font-weight:600;color:#fff;line-height:1;letter-spacing:-.02em}
.venglance__item span{display:block;font-size:14px;line-height:1.4;color:rgba(255,255,255,.6);margin-top:9px}
.venue-intro{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(28px,4vw,56px);align-items:center;margin-bottom:34px}
.venue-intro__media{position:relative;min-height:520px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--brd);box-shadow:0 30px 80px rgba(46,43,115,.16),var(--glow);background:#DCEAF4}
.venue-intro__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.venue-intro__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,3,18,0) 45%,rgba(4,3,18,.62) 100%)}
.venue-intro__media figcaption{position:absolute;left:22px;right:22px;bottom:18px;z-index:2;font-family:var(--f-m);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.venue-intro__copy .h2{margin-top:14px}
.venue-intro__copy .para{margin:0 0 20px;text-align:left}
.venue-intro__copy p:not(.eyebrow):not(.para){font-size:15.5px;line-height:1.7;color:var(--w55);margin-top:14px}
.venglance--venue{margin-top:0}

/* ---------- Venue page: detail cards (Access & Arrival / On-Site Convenience / More Details) ---------- */
.venu__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.venu__card{padding:24px;border:1px solid var(--brd);border-radius:var(--r-md);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.venu__card p:first-child{font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--teal-ink);margin-bottom:14px}
[data-theme="dark"] .venu__card p:first-child{color:var(--wps-teal)}
.venu__card p:not(:first-child){font-size:14.5px;line-height:1.6;color:var(--w55)}
.venu__card .btn{margin-top:16px}

/* ---------- Venue page: hotel cards ---------- */
.htl__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.htl{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--brd);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;flex-direction:column}
.htl__ph{aspect-ratio:16/10;overflow:hidden}
.htl__ph img{width:100%;height:100%;object-fit:cover;display:block}
.htl__body{padding:22px;display:flex;flex-direction:column;flex:1}
.htl h3{font-size:20px;font-weight:750;color:var(--ink);margin-bottom:10px}
.htl__body p{font-size:14px;line-height:1.6;color:var(--w55);flex:1}
.htl__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}

@media (max-width:1080px){
  .venu__grid{grid-template-columns:1fr 1fr}
  .htl__grid{grid-template-columns:1fr 1fr}
  .venue-intro{grid-template-columns:1fr}
  .venue-intro__media{min-height:440px}
}
@media (max-width:760px){
  .venu__grid{grid-template-columns:1fr}
  .htl__grid{grid-template-columns:1fr}
  .venglance{padding:26px 22px;gap:22px}
  .venue-intro{gap:24px;margin-bottom:28px}
  .venue-intro__media{min-height:320px;border-radius:var(--r-md)}
  .venue-intro__copy .para{text-align:left}
}

/* ---------- Awards page: 2025 gallery showcase cards (Shortlisted / Winners / Insights) ---------- */
.galsc__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.galsc{position:relative;display:block;aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden}
.galsc__ph{position:absolute;inset:0}
.galsc__ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.galsc:hover .galsc__ph img{transform:scale(1.04)}
.galsc::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,3,20,.78) 0%,rgba(4,3,20,.15) 55%,transparent 100%)}
.galsc__t{position:absolute;left:20px;right:20px;bottom:18px;z-index:2;color:#fff;font-size:18px;font-weight:750;line-height:1.3}

/* ---------- Awards page: category grid reused on the 2025 detail pages ---------- */
.awdcat__note{max-width:720px;margin:0 auto 32px;text-align:center;font-size:14.5px;line-height:1.6;color:var(--w55)}
.awdcat--video{position:relative}
.awdcat--video .awdcat__chip{position:relative}
.awdcat__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--wps-light);font-size:18px}

/* ---------- Insights from the Winners: visual-first gallery cards and lightbox.
   Scoped to .insights / .insight-* so Shortlist and Winners keep the shared small-card layout. ---------- */
.insights .wrap{max-width:1360px}
.insight-note{margin-bottom:38px}
.insight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.insight-card{position:relative;display:flex;min-height:330px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--brd);background:rgba(7,6,26,.18);text-align:left;color:#F8FBFF;box-shadow:0 22px 54px rgba(46,43,115,.12);transition:transform .32s var(--ease),border-color .32s var(--ease),box-shadow .32s var(--ease)}
.insight-card:hover{transform:translateY(-5px);border-color:rgba(54,164,221,.45);box-shadow:0 30px 70px rgba(46,43,115,.18),0 0 28px rgba(54,164,221,.1)}
.insight-card:focus-visible{outline:3px solid rgba(0,199,177,.55);outline-offset:4px}
.insight-card__media{position:absolute;inset:0;display:block}
.insight-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s var(--ease),filter .32s var(--ease)}
.insight-card:hover .insight-card__media img{transform:scale(1.055);filter:saturate(1.05) contrast(1.04)}
.insight-card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,6,26,.02) 0%,rgba(7,6,26,.16) 44%,rgba(7,6,26,.86) 100%)}
.insight-card__play{position:absolute;top:18px;right:18px;z-index:2;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding-left:3px;color:#F8FBFF;background:rgba(7,6,26,.42);border:1px solid rgba(255,255,255,.34);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:15px}
.insight-card__copy{position:relative;z-index:2;align-self:flex-end;width:100%;padding:76px 24px 24px}
.insight-card__copy span{display:block;margin-bottom:8px;font-family:var(--f-m);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(209,245,246,.86)}
.insight-card__copy b{display:block;font-size:clamp(18px,1.8vw,23px);line-height:1.18;font-weight:800;color:#F8FBFF;text-wrap:balance}

.insight-lightbox{position:fixed;inset:0;z-index:240;display:grid;place-items:center;padding:22px;color:#F8FBFF}
.insight-lightbox[hidden]{display:none}
.insight-lightbox-open{overflow:hidden}
.insight-lightbox__back{position:absolute;inset:0;background:rgba(4,3,18,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.insight-lightbox__stage{position:relative;z-index:1;width:min(1180px,100%);max-height:calc(100svh - 44px);display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px}
.insight-lightbox__figure{position:relative;margin:0;min-height:0;border-radius:var(--r-lg);overflow:hidden;background:#080718;border:1px solid rgba(255,255,255,.16);box-shadow:0 38px 96px rgba(0,0,0,.52)}
.insight-lightbox__figure img,.insight-lightbox__figure video{width:100%;height:min(68svh,720px);object-fit:contain;display:block;background:#080718}
.insight-lightbox__figure img[hidden],.insight-lightbox__figure video[hidden]{display:none}
.insight-lightbox__figure figcaption{position:absolute;left:0;right:0;bottom:0;padding:80px clamp(22px,4vw,48px) clamp(20px,3vw,34px);background:linear-gradient(180deg,rgba(4,3,18,0),rgba(4,3,18,.82) 58%,rgba(4,3,18,.94))}
.insight-lightbox__figure p{font-family:var(--f-m);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--wps-teal);margin-bottom:8px}
.insight-lightbox__figure h3{max-width:820px;font-size:clamp(24px,3.6vw,44px);line-height:1.08;font-weight:800;color:#F8FBFF;text-wrap:balance}
.insight-lightbox__close{position:absolute;z-index:4;top:-14px;right:-14px;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#F8FBFF;background:rgba(7,6,26,.78);border:1px solid rgba(255,255,255,.28);box-shadow:0 10px 24px rgba(0,0,0,.32);transition:opacity .25s var(--ease),transform .25s var(--ease)}
.insight-lightbox__close:hover{opacity:.78;transform:translateY(-1px)}
.insight-lightbox__nav{position:absolute;top:calc(50% - 54px);z-index:3;width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#F8FBFF;background:rgba(7,6,26,.58);border:1px solid rgba(255,255,255,.26);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .25s var(--ease),transform .25s var(--ease)}
.insight-lightbox__nav:hover{background:rgba(54,164,221,.72);transform:translateY(-1px)}
.insight-lightbox__nav--prev{left:18px}
.insight-lightbox__nav--next{right:18px}
.insight-lightbox__nav span{display:block;width:16px;height:16px;border-top:3px solid currentColor;border-right:3px solid currentColor;border-radius:2px}
.insight-lightbox__nav--prev span{transform:rotate(-135deg);margin-left:5px}
.insight-lightbox__nav--next span{transform:rotate(45deg);margin-right:5px}
.insight-lightbox__thumbs{display:flex;gap:10px;max-width:100%;overflow:auto;padding:2px 2px 8px;scrollbar-width:none;-ms-overflow-style:none}
.insight-lightbox__thumbs::-webkit-scrollbar{display:none;width:0;height:0}
.insight-lightbox__thumb{position:relative;flex:0 0 92px;height:62px;border-radius:12px;overflow:hidden;border:2px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);opacity:.58;transition:opacity .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}
.insight-lightbox__thumb:hover,.insight-lightbox__thumb[aria-current="true"]{opacity:1;border-color:var(--wps-teal);transform:translateY(-2px)}
.insight-lightbox__thumb img{width:100%;height:100%;object-fit:cover;display:block}

@media (max-width:1080px){
  .galsc__grid{grid-template-columns:1fr 1fr}
  .insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .galsc__grid{grid-template-columns:1fr}
  .insight-grid{grid-template-columns:1fr;gap:16px}
  .insight-card{min-height:270px}
  .insight-card__copy{padding:62px 20px 20px}
  .insight-lightbox{padding:14px}
  .insight-lightbox__stage{max-height:calc(100svh - 28px)}
  .insight-lightbox__figure{display:flex;flex-direction:column}
  .insight-lightbox__figure img,.insight-lightbox__figure video{height:auto;max-height:min(40svh,340px)}
  .insight-lightbox__figure figcaption{position:relative;padding:18px 20px 76px;background:#080718}
  .insight-lightbox__figure h3{font-size:clamp(22px,7vw,30px);line-height:1.12}
  .insight-lightbox__nav{top:auto;bottom:76px;width:46px;height:46px}
  .insight-lightbox__nav--prev{left:12px}
  .insight-lightbox__nav--next{right:12px}
  .insight-lightbox__close{top:10px;right:10px}
  .insight-lightbox__thumb{flex-basis:76px;height:54px}
}

/* ============================== ABOUT — EDITIONS SELECTOR ==============================
   "What happened at the last four", on the homepage router pattern: a compact vertical stack of
   edition tiles on the left, the details panel on the right. */
.eds{grid-template-columns:280px minmax(0,1fr);gap:18px;
  /* homepage brand palette (the inner pages' --wps-dark is a purple-leaning #2E2B73) */
  --wps-dark:#023689;--wps-light:#009DD9;--wps-deep:#0E3178;--wps-teal:#00CEAF;--teal-ink:#1C6F62}
/* panel glow + shadow in brand blue/teal instead of the purple-tinted defaults */
.eds .panel{background:radial-gradient(560px 340px at 92% -6%,rgba(64,189,168,.16),transparent 60%),radial-gradient(520px 360px at 4% 108%,rgba(0,157,217,.2),transparent 62%),linear-gradient(155deg,#FFFFFF,#F2F7FC 55%,#E9F1F9);
  border-color:rgba(0,157,217,.32);box-shadow:0 24px 60px rgba(2,54,137,.08)}
[data-theme="dark"] .eds .panel{background:radial-gradient(560px 340px at 92% -6%,rgba(64,189,168,.35),transparent 60%),radial-gradient(520px 360px at 4% 108%,rgba(0,157,217,.4),transparent 62%),linear-gradient(155deg,#101C6E,#0A1152 55%,#070D3F);border-color:rgba(0,157,217,.35)}
[data-theme="dark"] .eds .tile[aria-selected="true"]{border-color:rgba(0,157,217,.7);box-shadow:0 0 26px rgba(0,157,217,.16)}
.eds .tiles{grid-template-columns:1fr;grid-auto-rows:1fr;gap:12px}
.eds .tile{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:14px;align-content:center;
  padding:14px 16px;min-height:0;border-color:rgba(0,157,217,.32);cursor:pointer}
.eds .tile:hover{border-color:rgba(0,157,217,.55)}
.eds .tile[aria-selected="true"]{box-shadow:none}
.eds .tile__ic{grid-row:1 / 4;align-self:center;width:46px;height:46px;margin:0;border-radius:12px}
.eds .tile__n{margin:0}
.eds .tile__l{margin-top:2px;font-size:22px;letter-spacing:-.02em}
.eds .tile__r{margin-top:2px}
.eds__ic svg{width:28px;height:28px;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.eds__ic .p{stroke:#0057A3}
.eds__ic .a{stroke:#009DD9}

.eds .panel{padding:32px}
.eds .panel{display:flex;flex-direction:column}
.eds .panel__body{display:flex;flex-direction:column;flex:1}
.eds #edTitle{margin-bottom:10px}
.eds #edBlurb{font-size:15px;margin-bottom:16px;max-width:620px}
.eds #edFacts{margin-bottom:22px}
.eds .rows{margin-top:auto;gap:9px}
.eds .row{padding:13px 18px;font-size:14px}
.eds .row--go{background:#009DD9;border-color:#009DD9;color:#fff;box-shadow:0 8px 22px rgba(0,157,217,.18)}
.eds .row--go .ar,.eds .row--go:hover .ar{color:#fff}

.eds__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.eds__lbl{font-family:var(--f-m);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--w40)}
.eds__lang{display:inline-flex;gap:2px;padding:3px;border-radius:999px;border:1px solid #D7E4F2;background:rgba(255,255,255,.7)}
.eds__lb{padding:5px 13px;border-radius:999px;font-size:12px;font-weight:700;color:#46587A;transition:background .25s var(--ease),color .25s var(--ease)}
.eds__lb[aria-pressed="true"]{background:var(--wps-dark);color:#fff}
.eds__lb[hidden]{display:none}


[data-theme="dark"] .eds .tile{border-color:rgba(255,255,255,.12)}
[data-theme="dark"] .eds__lang{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.04)}
[data-theme="dark"] .eds__lb{color:rgba(255,255,255,.7)}
[data-theme="dark"] .eds__lb[aria-pressed="true"]{background:var(--wps-light);color:#fff}
[data-theme="dark"] .eds__lbl{color:rgba(255,255,255,.5)}

@media (max-width:1080px){
  .eds{grid-template-columns:1fr}
  .eds .tiles{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .eds .tiles{grid-template-columns:1fr}
  .eds .panel{padding:24px}
  .eds__bar{flex-wrap:wrap}
}

/* report email gate — the shared .modal (same as the homepage proposal form), in a narrower card */
.gate{--wps-dark:#023689;--wps-light:#009DD9;--wps-deep:#0E3178;--wps-teal:#00CEAF;--teal-ink:#1C6F62}
.gate .modal__card{width:min(440px,100%)}
.gate .btn--primary{background:#023689;color:#fff;box-shadow:0 8px 24px rgba(2,54,137,.28)}
.gate .btn--primary:hover{background:#0B4BAE;box-shadow:0 10px 28px rgba(2,54,137,.34)}
.gate__err{margin:-6px 0 0;font-size:12.5px;color:#C0392B}
.gate input[aria-invalid="true"]{border-color:#E08A80}
[data-theme="dark"] .gate__err{color:#FF9A8F}

/* a heading accent that stays on the same line — .h2 em is block-level, and the heading reveal
   script gives every <em> its own line, so single-line headings colour a span instead */
.h2 .h2__accent{color:var(--wps-teal)}
[data-theme="dark"] .h2 .h2__accent{color:var(--wps-teal)}

/* ============================== ABOUT — BOARD OF TRUSTEES CAROUSEL ============================== */
.bot__view{--per:5;overflow:hidden;margin:-8px;padding:8px}
.bot .spk__grid.bot__track{display:flex;flex-wrap:nowrap;gap:20px;overflow:visible;scroll-snap-type:none;padding-bottom:0;
  transition:transform .7s var(--ease);will-change:transform}
.bot__track > .spk{flex:0 0 calc((100% - (var(--per) - 1) * 20px) / var(--per));min-width:0}
.bot .spk__n{font-size:15px}

.bot__ctrl{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:30px}
.bot__btn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid #D9E3F0;color:#023689;cursor:pointer;
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
.bot__btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.bot__btn svg .f{fill:currentColor;stroke:none}
.bot__btn:hover{background:#023689;border-color:#023689;color:#fff}
.bot__play .i-play{display:none}
.bot__play.is-paused .i-play{display:block}
.bot__play.is-paused .i-pause{display:none}
.bot__dots{display:flex;align-items:center;gap:8px;padding:0 6px}
.bot__dot{width:9px;height:9px;border-radius:999px;background:#C9D6E6;cursor:pointer;transition:width .35s var(--ease),background .35s var(--ease)}
.bot__dot:hover{background:#9FB4CD}
.bot__dot[aria-current="true"]{width:28px;background:#023689}

@media (max-width:1080px){ .bot__view{--per:3} }
@media (max-width:760px){
  .bot__view{--per:2}
  .bot .spk__grid.bot__track{gap:20px}
  .bot .spk__n{font-size:14px}
}
@media (prefers-reduced-motion:reduce){ .bot .spk__grid.bot__track{transition:none} }

/* trustee cards framed like the homepage speaker cards (photos re-set on the homepage portrait background) */
.bot .spk{border-color:rgba(0,157,217,.32);transition:transform .35s var(--ease),border-color .35s var(--ease)}
.bot .spk:hover{box-shadow:none;border-color:rgba(0,157,217,.55)}
.bot .spk__ph{background:#01086A}
.bot .spk__badge{background:rgba(20,71,156,.92);border-radius:8px}
.bot .spk__o{color:#0E3178}
[data-theme="dark"] .bot .spk__o{color:#0E3178}

/* ---------- About Us — Mission & Vision (live-site section, brand panel) ---------- */
.msv{padding:0 24px}
.msv__panel{position:relative;max-width:1400px;margin:0 auto;border-radius:var(--r-xl);overflow:hidden;padding:88px 72px 0;
  background:radial-gradient(120% 90% at 0% 0%,rgba(0,176,166,.28) 0%,rgba(0,176,166,0) 45%),radial-gradient(90% 80% at 100% 100%,rgba(0,157,217,.35) 0%,rgba(0,157,217,0) 55%),linear-gradient(165deg,#07061A 0%,#14479C 55%,#0E3178 100%);
  box-shadow:0 21px 50px rgba(0,0,0,.175);--wps-teal:#00CEAF}
.msv__panel::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.14;background:url('../images/mv-brand-swoosh.svg') center/180% auto no-repeat}
.msv__in{position:relative;z-index:2;max-width:1080px;margin:0 auto}
.msv .msv__h{color:#fff;margin:0 0 48px;text-align:center}
.msv .msv__h .h2__accent{color:var(--wps-teal)}
.msv__grid{display:grid;grid-template-columns:1fr 1fr;gap:32px 72px}
.msv .msv__k{font-size:clamp(22px,2.2vw,28px);font-weight:300;line-height:1.3;color:#fff;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid rgba(255,255,255,.28)}
.msv__k strong{font-weight:750;color:var(--wps-teal)}
.msv__col p{font-size:17px;line-height:1.6;color:rgba(255,255,255,.8);max-width:460px}
.msv__img{position:relative;z-index:1;margin:56px -72px 0}
.msv__img img{display:block;width:100%;height:auto}
.msv__img::after{content:"";position:absolute;left:0;right:0;bottom:0;height:18%;background:linear-gradient(to top,rgba(14,49,120,.55),rgba(14,49,120,0));pointer-events:none}
@media (max-width:840px){
  .msv__panel{padding:64px 28px 0}
  .msv__grid{grid-template-columns:1fr}
  .msv .msv__h{margin-bottom:32px}
  .msv__img{margin:36px -28px 0}
}
@media (max-width:560px){ .msv{padding:0 14px} .msv__panel{padding:52px 22px 0} .msv__img{margin-left:-22px;margin-right:-22px} }

/* ---------- Policing 5.0 — key questions carousel (reuses .bot__ctrl controls) ---------- */
.qcar{position:relative}
.qcar__view{--per:2;overflow:hidden;margin:-12px;padding:12px}
.qcar .exp__grid.qcar__track{display:flex;flex-wrap:nowrap;gap:20px;transition:transform .7s var(--ease);will-change:transform}
.qcar__track > .exp{flex:0 0 calc((100% - (var(--per) - 1) * 20px) / var(--per));min-width:0;padding:36px 34px}
.qcar__track > .exp p:not(.eyebrow){font-size:clamp(16.5px,1.25vw,18px);line-height:1.68}
@media (max-width:760px){ .qcar__view{--per:1} .qcar__track > .exp{padding:28px 24px} }
@media (prefers-reduced-motion:reduce){ .qcar .exp__grid.qcar__track{transition:none} }

/* ============================================================
   HOMEPAGE PARITY — inner pages use the homepage (mockup-4-media-light-v3 / wps.css)
   design tokens and component styles: brand blue (not purple), navy primary buttons,
   14px-radius chips and tabs, flat brand-blue card outlines, homepage teal accent.
   Light theme only for colour; dark theme keeps its own palette.
   ============================================================ */
:root:not([data-theme="dark"]){
  --wps-dark:#023689;
  --wps-light:#009DD9;
  --wps-deep:#0E3178;
  --wps-teal:#00CEAF;
  --teal-ink:#1C6F62;
  --card-brd:rgba(0,157,217,.32);
  --card-brd-hi:rgba(0,157,217,.55);
  --glow:0 0 32px rgba(0,157,217,.1);
}
:root[data-theme="dark"]{
  --card-brd:rgba(0,157,217,.32);
  --card-brd-hi:rgba(0,157,217,.55);
  --glow:0 0 32px rgba(0,157,217,.1);
}
:root{--r-xs:8px}
::selection{background:rgba(0,157,217,.3)}

/* buttons */
:root:not([data-theme="dark"]) .btn--primary{background:#023689;color:#fff;box-shadow:0 8px 24px rgba(2,54,137,.28)}
:root:not([data-theme="dark"]) .btn--primary:hover{background:#0B4BAE;box-shadow:0 10px 28px rgba(2,54,137,.34)}
:root:not([data-theme="dark"]) .btn--dark{background:#023689;color:#fff;box-shadow:0 8px 22px rgba(20,71,156,.28)}
:root:not([data-theme="dark"]) .btn--dark:hover{background:#0B4BAE}
:root:not([data-theme="dark"]) .btn--ghost{border:1px solid #C7D8EA;color:#023689;background:rgba(255,255,255,.55)}
:root:not([data-theme="dark"]) .btn--ghost:hover{border-color:#9FBDD9;background:#fff}
/* ghost buttons sitting on dark brand panels (banners, navy cards) */
:root:not([data-theme="dark"]) :is(.p50-wp,.msv__panel,.stats__panel) .btn--ghost{color:#fff;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.05)}

/* headings, chips, tabs */
.h2 em{color:var(--wps-teal)}
.fact{border-radius:var(--r-sm)}
.tab,.ptab{border-radius:var(--r-sm)}
:root:not([data-theme="dark"]) .tab[aria-selected="true"],
:root:not([data-theme="dark"]) .ptab[aria-selected="true"]{background:#023689;border-color:#023689;color:#fff;box-shadow:0 6px 16px rgba(20,71,156,.18)}
.spk__badge{border-radius:var(--r-xs)}
:root:not([data-theme="dark"]) .spk__badge{background:rgba(20,71,156,.92)}

/* cards — homepage's flat outline language: thin brand-blue border, no drop shadow */
:root:not([data-theme="dark"]) .exp,
:root:not([data-theme="dark"]) .spk{border-color:var(--card-brd)}
:root:not([data-theme="dark"]) .exp:hover,
:root:not([data-theme="dark"]) .spk:hover{border-color:var(--card-brd-hi);box-shadow:none}
/* primary buttons on dark brand panels flip to white, as on the homepage awards panel */
:root:not([data-theme="dark"]) :is(.p50-wp,.msv__panel,.stats__panel,.pagehero) .btn--primary{background:#fff;color:#023689;box-shadow:0 10px 28px rgba(0,0,0,.28)}
:root:not([data-theme="dark"]) :is(.p50-wp,.msv__panel,.stats__panel,.pagehero) .btn--primary:hover{background:#E4F6FF;color:#023689}
:root:not([data-theme="dark"]) .pagehero .btn--ghost{color:#fff;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.05)}

/* ============================================================
   SPEAKERS — "Hear from the speakers" (navy panel) + "Listen to insights" (light)
   video carousels, and the video player dialog
   ============================================================ */
.vsec--dark{padding:0 24px}
.vsec__panel{position:relative;max-width:1400px;margin:0 auto;border-radius:var(--r-xl);overflow:hidden;padding:88px 72px;color:#fff;
  background:radial-gradient(90% 80% at 0% 0%,rgba(0,176,166,.26) 0%,rgba(0,176,166,0) 55%),
             radial-gradient(80% 80% at 100% 100%,rgba(0,157,217,.32) 0%,rgba(0,157,217,0) 60%),
             linear-gradient(160deg,#07061A 0%,#14479C 60%,#0E3178 100%);
  box-shadow:0 21px 50px rgba(0,0,0,.175);--wps-teal:#00CEAF}
.vsec__panel::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;background:url('../images/mv-brand-swoosh.svg') center/190% auto no-repeat}
.vsec__panel > *{position:relative}
.vsec--dark .h2{color:#fff}
.vsec--dark .h2 em{color:var(--wps-teal)}
.vsec--dark .para{color:rgba(255,255,255,.78)}
.vsec .head--left{max-width:760px}

.vcar__view{--per:3;overflow:hidden;margin:-10px;padding:10px}
.vcar__track{display:flex;flex-wrap:nowrap;gap:22px;transition:transform .7s var(--ease);will-change:transform}
.vcar__track > .vcard{flex:0 0 calc((100% - (var(--per) - 1) * 22px) / var(--per));min-width:0}
@media (max-width:1080px){ .vcar__view{--per:2} }
@media (max-width:640px){ .vcar__view{--per:1} }
@media (prefers-reduced-motion:reduce){ .vcar__track{transition:none} }

.vcard{display:flex;flex-direction:column}
.vcard__media{position:relative;display:block;width:100%;aspect-ratio:41/32;border-radius:var(--r-md);overflow:hidden;cursor:pointer;background:#0E3178;padding:0;border:0}
.vcard__media img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.02);transition:transform .6s var(--ease)}
.vcard__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,6,26,0) 45%,rgba(7,6,26,.45) 100%);transition:opacity .35s var(--ease)}
.vcard__play{position:absolute;left:50%;top:50%;z-index:2;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.92);color:#023689;box-shadow:0 12px 30px rgba(0,0,0,.3);transition:transform .35s var(--ease),background .35s var(--ease),color .35s var(--ease)}
.vcard__play svg{width:24px;height:24px;margin-left:3px;fill:currentColor}
.vcard__media:hover img,.vcard__media:focus-visible img{transform:scale(1.07)}
.vcard__media:hover .vcard__play,.vcard__media:focus-visible .vcard__play{transform:scale(1.08);background:#00CEAF;color:#fff}
.vcard__media:focus-visible{outline:3px solid #00CEAF;outline-offset:3px}
.vcard__b{padding:18px 4px 0}
.vcard__n{font-size:18px;line-height:1.25;font-weight:700;color:var(--ink)}
.vcard__r{font-size:14px;line-height:1.5;color:var(--w55);margin-top:6px}
.vsec--dark .vcard__n{color:#fff}
.vsec--dark .vcard__r{color:rgba(255,255,255,.7)}

/* carousel controls on the navy panel */
.vsec--dark .bot__btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.28);color:#fff}
.vsec--dark .bot__btn:hover{background:#fff;border-color:#fff;color:#023689}
.vsec--dark .bot__dot{background:rgba(255,255,255,.32)}
.vsec--dark .bot__dot:hover{background:rgba(255,255,255,.6)}
.vsec--dark .bot__dot[aria-current="true"]{background:#00CEAF}

/* video player dialog */
.vmodal .modal__back{position:absolute;inset:0;background:rgba(7,6,26,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.vmodal__card{position:relative;width:auto;max-width:min(960px,100%);border-radius:var(--r-lg);overflow:hidden;background:#07061A;box-shadow:0 40px 90px rgba(0,0,0,.5)}
.vmodal__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 14px 14px 22px;color:#fff}
.vmodal__t{font-weight:700;font-size:15px}
.vmodal__x{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);color:#fff;flex:none;transition:background .25s var(--ease)}
.vmodal__x:hover{background:rgba(255,255,255,.22)}
.vmodal__x svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.vmodal video{display:block;width:auto;height:auto;min-width:min(360px,calc(100vw - 40px));min-height:240px;max-width:min(960px,calc(100vw - 40px));max-height:calc(100vh - 140px);max-height:calc(100svh - 140px);background:#000}
.vmodal__t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

@media (max-width:760px){
  .vsec--dark{padding:0 12px}
  .vsec__panel{padding:56px 22px}
}

/* speaker card = homepage "Top leaders & speakers" card: no category badge, flag beside the country */
.spk__c{display:flex;align-items:center;gap:6px}
.spk__flag{flex:none;width:16px;height:11px;border-radius:2px;background-color:rgba(0,0,0,.06);background-size:cover;background-position:center;box-shadow:0 1px 3px rgba(0,0,0,.25);border:1px solid rgba(0,0,0,.08)}
.spk .spk__r{color:#5A5A72}

/* Speakers API cards follow the original HTML card rhythm. */
.page-template-page-speakers .spk__grid{align-items:stretch}
.page-template-page-speakers .spk{display:flex;flex-direction:column;align-self:stretch}
.page-template-page-speakers .spk__ph{flex:none}
.page-template-page-speakers .spk__initials{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--f-m);font-size:clamp(42px,5vw,72px);font-weight:700;color:rgba(2,54,137,.42)}
.page-template-page-speakers .spk__b{display:flex;flex-direction:column;padding:20px 20px 22px}
.page-template-page-speakers .spk__n{min-height:0;font-size:17px;line-height:1.22}
.page-template-page-speakers .spk__r{min-height:0;margin-top:12px;line-height:1.4}
.page-template-page-speakers .spk__o{min-height:0;margin-top:12px;line-height:1.45}
.page-template-page-speakers .spk__c{margin-top:16px;padding-top:0}
html[dir="rtl"] .page-template-page-speakers .spk__b{text-align:right}
html[dir="rtl"] .page-template-page-speakers .spk__c{justify-content:flex-start}

/* ---------- Awards page: "About the awards" — homepage WPS Awards panel style ----------
   Markup matches index.html #awards; these rules bring the inner-page .awards__panel
   (base.css) in line with the homepage treatment (wps.css), scoped to .awards--page. */
.awards--page{padding:clamp(56px,7vw,88px) 24px}
.awards--page .awards__panel{max-width:var(--shell);padding:84px 72px;background:#181c4d;border:1px solid rgba(64,189,168,.16);box-shadow:0 34px 80px rgba(0,0,0,.28),0 0 37px rgba(64,189,168,.04)}
.awards--page .awards__panel::before{transform:none;opacity:1;transition:none;background:
  linear-gradient(90deg,rgba(8,9,38,.82) 0%,rgba(8,9,38,.62) 30%,rgba(8,9,38,.18) 50%,rgba(8,9,38,0) 60%),
  url('../images/wps-award-trophy-wide.png') 20% center/cover no-repeat}
.awards--page .awards__panel::after{background:repeating-radial-gradient(circle at 12% 100%,rgba(64,189,168,0) 0 23px,rgba(64,189,168,.05) 23px 24px)}
.awards--page h2{color:#fff}
.awards--page h2 em{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#5EEBD6}
.awards--page .eyebrow.eyebrow--teal{color:#A8F5E9;font-weight:600}
.awards--page .awards__p{color:rgba(255,255,255,.84);margin-bottom:16px}
.awards--page .awards__p:last-child{margin-bottom:0}
.awards--page .awards__p strong{color:#fff;font-weight:700}
.awards--page .astat{background:rgba(8,9,38,.68);border-color:rgba(255,255,255,.18)}
.awards--page .astat b{color:#fff}
.awards--page .astat span{font-size:12px;letter-spacing:.1em;color:rgba(255,255,255,.8);line-height:1.45}
.awards--page .astat--hero{flex-direction:column;align-items:flex-start;gap:10px;background:rgba(3,36,40,.72);border-color:rgba(64,189,168,.25)}
.awards--page .astat--hero b{font-size:clamp(56px,5.2vw,84px);background:linear-gradient(120deg,#4FE3CF 0%,#9BD6F7 60%,#fff 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.awards--page .astat--hero span{font-size:12px;color:rgba(255,255,255,.85)}
@media (max-width:1080px){
  .awards--page .awards__panel{padding:64px 44px}
  .awards--page .awards__panel::before{background:
    linear-gradient(180deg,rgba(10,9,37,.86) 0%,rgba(10,9,37,.52) 46%,rgba(10,9,37,.72) 100%),
    url('../images/wps-award-trophy-web.jpg') center/cover no-repeat}
}
@media (max-width:760px){
  .awards--page{padding-left:14px;padding-right:14px}
  .awards--page .awards__panel{padding:52px 26px;border-radius:26px}
}

/* ---------- Awards page: awards film (video from the live Awards page) ---------- */
.reel{padding:clamp(24px,4vw,56px) 24px clamp(56px,7vw,96px)}
.reel__frame{--reel-p:1;position:relative;max-width:var(--shell);margin:0 auto;aspect-ratio:16/9;overflow:hidden;background:#07061A;color:#fff;
  border-radius:calc(var(--r-xl) - var(--reel-p) * 8px);
  transform:scale(calc(.88 + var(--reel-p) * .12));transform-origin:center top;
  box-shadow:0 30px 80px rgba(2,54,137,.22);will-change:transform}
.reel__v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.reel__shade{position:absolute;inset:0;pointer-events:none;transition:opacity .5s var(--ease);
  background:radial-gradient(70% 70% at 50% 50%,rgba(7,6,26,0) 0%,rgba(7,6,26,.35) 100%),linear-gradient(180deg,rgba(7,6,26,.05) 40%,rgba(7,6,26,.6) 100%)}
.reel__frame[data-state="full"] .reel__shade{opacity:0}
.reel__frame[data-state="full"].is-awake .reel__shade,.reel__frame[data-state="full"].is-paused .reel__shade{opacity:.7}

/* preview: centred play button (hidden behind the cursor pill on desktop hover) */
.reel__frame[data-state="preview"]{cursor:pointer}
.reel__frame.has-cursor{cursor:none}
.reel__start{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:16px;background:none;border:0;color:#fff;cursor:pointer;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.reel__ring{position:relative;display:grid;place-items:center;width:clamp(76px,8vw,108px);height:clamp(76px,8vw,108px);border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.45);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:background .3s var(--ease),transform .3s var(--ease)}
.reel__ring::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:1px solid rgba(255,255,255,.35);animation:reelPulse 2.6s ease-out infinite}
.reel__ring svg{width:34%;height:34%;fill:#fff;margin-left:6%}
.reel__start:hover .reel__ring,.reel__start:focus-visible .reel__ring{background:#fff;transform:scale(1.06)}
.reel__start:hover .reel__ring svg,.reel__start:focus-visible .reel__ring svg{fill:var(--wps-dark)}
.reel__cta{font-family:var(--f-m);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;text-shadow:0 2px 12px rgba(0,0,0,.4)}
.reel__frame.has-cursor .reel__start{opacity:0;transform:translate(-50%,-50%) scale(.9)}
.reel__frame[data-state="full"] .reel__start{opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.8)}
.reel__cursor{position:absolute;left:0;top:0;z-index:3;display:inline-flex;align-items:center;gap:9px;padding:12px 20px 12px 16px;border-radius:999px;background:#fff;color:var(--wps-dark);font-size:13.5px;font-weight:700;white-space:nowrap;pointer-events:none;opacity:0;scale:.6;transition:opacity .25s var(--ease),scale .25s var(--ease);box-shadow:0 12px 30px rgba(0,0,0,.3)}
.reel__cursor svg{width:14px;height:14px;fill:currentColor}
.reel__cursor.is-on{opacity:1;scale:1}

/* full playback controls */
.reel__bar{position:absolute;left:16px;right:16px;bottom:16px;z-index:2;display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:999px;background:rgba(7,6,26,.55);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.reel__frame[data-state="full"].is-awake .reel__bar,.reel__frame[data-state="full"].is-paused .reel__bar,.reel__frame[data-state="full"]:focus-within .reel__bar{opacity:1;transform:none;pointer-events:auto}
.reel__frame[data-state="full"]:not(.is-awake):not(.is-paused){cursor:none}
.reel__btn{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:transparent;border:0;color:#fff;cursor:pointer;transition:background .2s var(--ease)}
.reel__btn:hover,.reel__btn:focus-visible{background:rgba(255,255,255,.16)}
.reel__btn svg{width:18px;height:18px;fill:currentColor}
.reel__btn .i-play,.reel__frame.is-paused .reel__btn .i-pause,.reel__btn .i-mute,.reel__frame.is-muted .reel__btn .i-vol{display:none}
.reel__frame.is-paused .reel__btn .i-play,.reel__frame.is-muted .reel__btn .i-mute{display:block}
.reel__time{flex:none;font-family:var(--f-m);font-size:12px;color:rgba(255,255,255,.85);font-variant-numeric:tabular-nums;min-width:34px;text-align:center}
.reel__track{position:relative;flex:1;height:22px;cursor:pointer;touch-action:none}
.reel__track::before,.reel__buf,.reel__fill{content:"";position:absolute;left:0;top:50%;height:4px;margin-top:-2px;border-radius:999px}
.reel__track::before{right:0;background:rgba(255,255,255,.2)}
.reel__buf{width:0;background:rgba(255,255,255,.3)}
.reel__fill{width:0;background:linear-gradient(90deg,var(--wps-light),var(--wps-teal))}
.reel__fill::after{content:"";position:absolute;right:-7px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.35);transform:scale(0);transition:transform .2s var(--ease)}
.reel__track:hover .reel__fill::after,.reel__track:focus-visible .reel__fill::after{transform:scale(1)}
.reel__frame:fullscreen{border-radius:0;transform:none;max-width:none;aspect-ratio:auto}
.reel__frame:fullscreen .reel__v{object-fit:contain}
@keyframes reelPulse{0%{transform:scale(.9);opacity:.8}100%{transform:scale(1.35);opacity:0}}
@media (prefers-reduced-motion:reduce){
  .reel__frame{transform:none}
  .reel__ring::after{animation:none}
}
@media (max-width:760px){
  .reel{padding-left:14px;padding-right:14px}
  .reel__frame{border-radius:20px;aspect-ratio:4/5}
  .reel__frame[data-state="full"]{aspect-ratio:16/9}
  .reel__bar{left:10px;right:10px;bottom:10px;gap:6px;padding:6px 8px}
  .reel__btn{width:34px;height:34px}
  .reel__btn[data-r="fs"]{display:none}
  .reel__time{font-size:11px;min-width:30px}
}

/* ---------- Awards page: gallery (mosaic grid + year filter + lightbox; awards-live.js) ---------- */
.gal__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px;margin-bottom:40px}
.gal__head .head--left{margin-bottom:0}
.gal__filters{display:inline-flex;flex-wrap:wrap;gap:4px;padding:5px;border-radius:var(--r-sm);background:rgba(255,255,255,.72);border:1px solid var(--brd);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
[data-theme="dark"] .gal__filters{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12)}
.gal__f{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:calc(var(--r-sm) - 3px);font-size:14px;font-weight:700;color:var(--w55);background:transparent;border:0;cursor:pointer;transition:all .25s var(--ease)}
.gal__f span{font-family:var(--f-m);font-size:11px;font-weight:600;color:var(--w40);transition:color .25s var(--ease)}
.gal__f:hover{color:var(--ink)}
.gal__f[aria-pressed="true"]{background:var(--wps-dark);color:#fff;box-shadow:0 5px 16px rgba(20,71,156,.22)}
.gal__f[aria-pressed="true"] span{color:rgba(255,255,255,.7)}
[data-theme="dark"] .gal__f[aria-pressed="true"]{background:#fff;color:#0B0A26}
[data-theme="dark"] .gal__f[aria-pressed="true"] span{color:rgba(11,10,38,.6)}

.gal__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(150px,15vw,200px);grid-auto-flow:dense;gap:14px;transition:opacity .22s var(--ease)}
.gal__grid.is-out{opacity:0}
.gal__tile{position:relative;display:block;margin:0;padding:0;border:0;border-radius:var(--r-md);overflow:hidden;background:#0E3178;cursor:zoom-in;isolation:isolate}
.gal__tile[hidden]{display:none}
.gal__tile.is-big{grid-column:span 2;grid-row:span 2}
.gal__tile.is-wide{grid-column:span 2}
.gal__tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform .7s cubic-bezier(.22,1,.36,1),filter .4s var(--ease)}
.gal__tile::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,6,26,0) 45%,rgba(7,6,26,.72) 100%);opacity:0;transition:opacity .35s var(--ease)}
.gal__tile:hover img,.gal__tile:focus-visible img{transform:scale(1.06)}
.gal__tile:hover::after,.gal__tile:focus-visible::after{opacity:1}
.gal__tile:focus-visible{outline:2px solid var(--wps-teal);outline-offset:3px}
.gal__cap{position:absolute;left:14px;right:14px;bottom:12px;z-index:2;display:flex;align-items:center;justify-content:space-between;opacity:0;transform:translateY(8px);transition:opacity .35s var(--ease),transform .35s var(--ease)}
.gal__tile:hover .gal__cap,.gal__tile:focus-visible .gal__cap{opacity:1;transform:none}
.gal__yr{font-family:var(--f-m);font-size:10.5px;font-weight:650;letter-spacing:.16em;text-transform:uppercase;color:#fff;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.gal__zoom{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;color:var(--wps-dark)}
.gal__zoom svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.gal__grid.is-in-anim .gal__tile:not([hidden]){animation:galIn .55s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i,0) * 35ms)}
@keyframes galIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}

.gal__anchor{position:relative;top:-90px;display:block}
.gal__ed{margin-top:clamp(48px,6vw,72px)}
.gal__edHead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px;margin-bottom:20px;padding-top:24px;border-top:1px solid var(--brd)}
.gal__edT{font-size:clamp(20px,2vw,24px);font-weight:750;color:var(--ink)}
[data-theme="dark"] .gal__edT{color:#fff}
.gal__edP{font-size:14.5px;color:var(--w55)}
.gal__ed .galsc{aspect-ratio:16/10;border-radius:var(--r-md)}
.gal__ed .galsc__t{display:flex;align-items:center;justify-content:space-between;gap:10px}
.gal__ed .galsc__t .ar{transition:transform .3s var(--ease)}
.gal__ed .galsc:hover .galsc__t .ar{transform:translateX(4px)}

/* lightbox */
.glb{position:fixed;inset:0;z-index:1000;display:grid;grid-template-rows:auto 1fr auto;gap:12px;padding:18px clamp(14px,3vw,32px) 20px;color:#fff;opacity:0;transition:opacity .25s var(--ease)}
.glb.is-open{opacity:1}
.glb[hidden]{display:none}
html.glb-open{overflow:hidden}
.glb__back{position:absolute;inset:0;z-index:-1;background:rgba(5,6,24,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.glb__top{display:flex;align-items:center;gap:14px}
.glb__count{font-family:var(--f-m);font-size:13px;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.85)}
.glb__yr{font-family:var(--f-m);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#00CEAF;margin-right:auto}
.glb__btn{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);color:#fff;cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease)}
.glb__btn:hover,.glb__btn:focus-visible{background:#fff;color:var(--wps-dark);border-color:#fff}
.glb__btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.glb__stage{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(8px,2vw,24px);min-height:0}
.glb__fig{margin:0;display:grid;place-items:center;min-height:0;height:100%}
.glb__fig img{width:min(820px,100%,calc((100svh - 230px) * 1.46));height:auto;object-fit:contain;border-radius:var(--r-md);box-shadow:0 30px 80px rgba(0,0,0,.5)}
.glb__fig img.is-l{animation:glbL .4s cubic-bezier(.22,1,.36,1)}
.glb__fig img.is-r{animation:glbR .4s cubic-bezier(.22,1,.36,1)}
@keyframes glbL{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
@keyframes glbR{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
.glb__thumbs{display:flex;gap:8px;justify-content:safe center;overflow-x:auto;padding:4px 2px;scrollbar-width:none;-ms-overflow-style:none}
.glb__thumbs::-webkit-scrollbar{display:none;width:0;height:0}
.glb__th{flex:none;width:76px;height:52px;padding:0;border-radius:10px;overflow:hidden;border:2px solid transparent;background:none;opacity:.5;cursor:pointer;transition:opacity .2s var(--ease),border-color .2s var(--ease)}
.glb__th img{width:100%;height:100%;object-fit:cover;display:block}
.glb__th:hover{opacity:.85}
.glb__th[aria-current="true"]{opacity:1;border-color:#00CEAF}

@media (prefers-reduced-motion:reduce){
  .gal__tile img,.gal__cap{transition:none}
  .gal__grid.is-in-anim .gal__tile:not([hidden]),.glb__fig img.is-l,.glb__fig img.is-r{animation:none}
}
@media (max-width:1080px){
  .gal__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:760px){
  .gal__head{margin-bottom:28px}
  .gal__filters{width:100%}
  .gal__f{flex:1;justify-content:center;padding:10px 8px}
  .gal__grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:120px;gap:10px}
  .gal__cap{opacity:1;transform:none;left:8px;bottom:8px}
  .gal__zoom{display:none}
  .glb__stage{grid-template-columns:minmax(0,1fr)}
  .glb__nav{display:none}
  .glb__th{width:60px;height:42px}
}

/* ---------- Venue page (2026 content refresh): hero video, patterned stat strip, partner hotels ---------- */
.pagehero__bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 50%}
.venglance--venue{position:relative;overflow:hidden;isolation:isolate}
.venglance--venue .stats__bg{z-index:-1;border-radius:inherit}
.venglance--venue .venglance__item{position:relative}
.htl__body .htl__partner{flex:none;margin-bottom:8px;font-family:var(--f-m);font-size:10.5px;font-weight:650;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-ink)}
[data-theme="dark"] .htl__body .htl__partner{color:var(--wps-teal)}
.htl__book{align-self:flex-start;margin-top:18px}
@media (prefers-reduced-motion:reduce){ .pagehero--venue .pagehero__bg video{display:none} .pagehero--venue .pagehero__bg{background:url('../images/dwtc-building.png') center 54%/cover no-repeat} }

/* ---------- Reports page (Knowledge Hub): topic filter + search + report cards ---------- */
.rpt__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.rpt__filters{flex:1 1 auto;max-width:100%}
.rpt__search{display:flex;align-items:center;gap:9px;flex:0 1 280px;min-width:220px;padding:0 16px;height:48px;border-radius:var(--r-sm);background:rgba(255,255,255,.72);border:1px solid var(--brd);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.rpt__search:focus-within{border-color:#009DD9;box-shadow:0 0 0 3px rgba(0,157,217,.14)}
.rpt__search svg{flex:none;width:16px;height:16px;fill:none;stroke:var(--w40);stroke-width:1.8;stroke-linecap:round}
.rpt__search input{flex:1;min-width:0;height:100%;border:0;background:transparent;outline:0;font:inherit;font-size:14px;color:var(--ink)}
.rpt__search input::placeholder{color:var(--w40)}
.rpt__search input::-webkit-search-cancel-button{cursor:pointer}
[data-theme="dark"] .rpt__search{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12)}
[data-theme="dark"] .rpt__search input{color:#fff}
.rpt__count{margin:0 0 22px;font-family:var(--f-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--w40)}

.rpt__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;transition:opacity .16s var(--ease)}
.rpt__grid.is-out{opacity:0}
.rpt{position:relative;display:flex;flex-direction:column;min-width:0;border-radius:var(--r-md);overflow:hidden;background:#fff;border:1px solid var(--card-brd,#D7E6F2);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease)}
.rpt[hidden]{display:none}
.rpt:hover,.rpt:focus-within{transform:translateY(-4px);box-shadow:0 22px 50px rgba(2,54,137,.12);border-color:rgba(0,157,217,.45)}
[data-theme="dark"] .rpt{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.rpt__link{position:absolute;inset:0;z-index:3;border-radius:inherit}
.rpt__link:focus-visible{outline:2px solid var(--wps-teal);outline-offset:3px}
.rpt__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(150deg,#0E3178 0%,#023689 55%,#0B63B8 100%)}
.rpt__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.rpt:hover .rpt__media img{transform:scale(1.05)}
/* document covers (portrait PDFs) sit on the brand panel like a printed report */
.rpt[data-orient="doc"] .rpt__media::before{content:"";position:absolute;inset:0;opacity:.14;background:url('../images/mv-brand-swoosh.svg') 120% 50%/150% auto no-repeat}
.rpt[data-orient="doc"] .rpt__media img{inset:14% auto 0 50%;width:auto;height:92%;object-fit:contain;transform:translateX(-50%) rotate(-2deg);transform-origin:bottom center;border-radius:4px 4px 0 0;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.rpt[data-orient="doc"]:hover .rpt__media img{transform:translateX(-50%) translateY(-6px) rotate(0)}
.rpt__body{display:flex;flex-direction:column;flex:1;padding:22px 22px 20px}
.rpt__topic{align-self:flex-start;padding:5px 11px;border-radius:999px;font-family:var(--f-m);font-size:10px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-ink);background:rgba(0,206,175,.1);border:1px solid rgba(0,206,175,.28)}
[data-theme="dark"] .rpt__topic{color:var(--wps-teal)}
.rpt__t{margin-top:14px;font-size:18px;font-weight:750;line-height:1.3;color:var(--ink)}
[data-theme="dark"] .rpt__t{color:#fff}
.rpt__p{margin-top:9px;font-size:14px;line-height:1.6;color:var(--w55);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rpt__more{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:18px;font-size:14px;font-weight:700;color:var(--wps-dark)}
[data-theme="dark"] .rpt__more{color:#7FD3F2}
.rpt__more svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--ease)}
.rpt:hover .rpt__more svg{transform:translate(2px,-2px)}

/* featured: first visible report spans two columns, image beside text */
.rpt.is-feature{grid-column:span 2;flex-direction:row}
.rpt.is-feature .rpt__media{flex:0 0 52%;aspect-ratio:auto;min-height:320px}
.rpt.is-feature .rpt__body{padding:32px 30px;justify-content:center}
.rpt.is-feature .rpt__t{font-size:clamp(22px,2.2vw,28px);letter-spacing:-.01em}
.rpt.is-feature .rpt__p{-webkit-line-clamp:5;font-size:15px}
.rpt.is-feature .rpt__more{margin-top:22px;padding-top:0}

.rpt__empty{padding:56px 20px;text-align:center;color:var(--w55);border:1px dashed var(--brd);border-radius:var(--r-md)}
.rpt__empty[hidden]{display:none}
.rpt__emptyT{font-size:18px;font-weight:750;color:var(--ink);margin-bottom:6px}
[data-theme="dark"] .rpt__emptyT{color:#fff}
.rpt__empty .btn{margin-top:18px}

@media (prefers-reduced-motion:reduce){ .rpt,.rpt__media img,.rpt__more svg{transition:none} }
@media (max-width:1080px){
  .rpt__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rpt__search{flex:1 1 100%}
}
@media (max-width:760px){
  .rpt__grid{grid-template-columns:1fr;gap:16px}
  .rpt.is-feature{grid-column:auto;flex-direction:column}
  .rpt.is-feature .rpt__media{flex:none;aspect-ratio:16/10;min-height:0}
  .rpt.is-feature .rpt__body{padding:22px}
  .rpt__filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;width:100%}
  .rpt__filters::-webkit-scrollbar{display:none}
  .rpt__filters .gal__f{flex:none}
}

/* ---------- Legal pages (Privacy Policy, Terms & Conditions) ---------- */
.pagehero--legal{min-height:clamp(380px,58vh,560px)}
.legal__updated{display:inline-flex;align-items:center;gap:9px;margin-top:22px;padding:9px 15px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:13.5px;font-weight:600;color:#fff}
.legal__updated svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.legal__grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start}
/* body/html use overflow-x:hidden site-wide, which turns body into a (non-scrolling) scroll container and
   disables position:sticky; clip hides sideways overflow without that side effect. */
html:has(.legal),html:has(.legal) body{overflow-x:clip}
.legal__side{position:sticky;top:110px}
.legal__nav{padding:22px 20px;border-radius:var(--r-md);background:var(--glass);border:1px solid var(--brd);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.legal__navT{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;border:0;background:none;cursor:default;font-family:var(--f-m);font-size:10.5px;font-weight:650;letter-spacing:.16em;text-transform:uppercase;color:var(--w40)}
.legal__navT svg{display:none;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s var(--ease)}
.legal__prog{height:3px;margin:12px 0 10px;border-radius:999px;background:var(--brd);overflow:hidden}
.legal__prog span{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--wps-light),var(--wps-teal))}
.legal__toc{list-style:none;margin:0;padding:0;max-height:calc(100vh - 290px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.legal__toc a{display:flex;gap:10px;padding:8px 10px;border-radius:10px;font-size:13.5px;line-height:1.35;font-weight:600;color:var(--w55);text-decoration:none;transition:background .2s var(--ease),color .2s var(--ease)}
.legal__toc a span{flex:none;font-family:var(--f-m);font-size:11px;color:var(--w40);padding-top:1px}
.legal__toc a:hover{background:rgba(20,71,156,.06);color:var(--ink)}
.legal__toc a.is-on{background:rgba(0,206,175,.12);color:var(--teal-ink)}
.legal__toc a.is-on span{color:inherit}
[data-theme="dark"] .legal__toc a.is-on{color:var(--wps-teal)}
.legal__other{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--brd);width:100%;font-size:13.5px;font-weight:700;color:var(--wps-dark);text-decoration:none}
[data-theme="dark"] .legal__other{color:#7FD3F2}
.legal__other .ar{transition:transform .25s var(--ease)}
.legal__other:hover .ar{transform:translateX(4px)}

.legal__doc{max-width:760px;font-size:16px;line-height:1.75;color:var(--w55)}
.legal__doc > p,.legal__doc > ul{margin:0 0 16px}
.legal__doc .legal__lead{font-size:clamp(18px,1.6vw,20px);line-height:1.65;color:var(--ink);font-weight:500}
[data-theme="dark"] .legal__doc .legal__lead{color:#fff}
.legal__doc h2{position:relative;margin:48px 0 14px;padding-top:26px;border-top:1px solid var(--brd);font-size:clamp(21px,2vw,26px);font-weight:750;line-height:1.25;letter-spacing:-.01em;color:var(--ink);scroll-margin-top:110px}
.legal__doc h2:first-child{margin-top:0;padding-top:0;border-top:0}
.legal__doc h2::before{content:attr(data-n);display:block;margin-bottom:6px;font-family:var(--f-m);font-size:11px;font-weight:600;letter-spacing:.16em;color:var(--teal-ink)}
[data-theme="dark"] .legal__doc h2{color:#fff}
[data-theme="dark"] .legal__doc h2::before{color:var(--wps-teal)}
.legal__doc ul{list-style:none;padding:0}
.legal__doc li{position:relative;padding-inline-start:24px;margin-bottom:10px}
.legal__doc li::before{content:"";position:absolute;inset-inline-start:4px;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--wps-teal)}
.legal__doc strong{color:var(--ink);font-weight:700}
[data-theme="dark"] .legal__doc strong{color:#fff}
.legal__doc a{color:var(--wps-dark);font-weight:600;text-decoration:underline;text-decoration-color:rgba(0,157,217,.45);text-underline-offset:3px}
[data-theme="dark"] .legal__doc a{color:#7FD3F2}
.legal__note{padding:14px 18px;border-radius:14px;background:rgba(0,206,175,.08);border:1px solid rgba(0,206,175,.25);color:var(--ink);font-weight:600}
[data-theme="dark"] .legal__note{color:#fff}
.legal__contact{margin-top:8px;padding:24px 26px;border-radius:var(--r-md);color:#fff;background:linear-gradient(150deg,#0E3178 0%,#023689 55%,#0B63B8 100%)}
.legal__contactT{margin:0;font-size:18px;font-weight:750;line-height:1.5;color:#fff}
.legal__contactRow{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px 14px;margin-top:14px}
.legal__doc .legal__contact a,.legal__contactLocation{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff;text-decoration:none}
.legal__doc .legal__contact a{transition:background .2s var(--ease),color .2s var(--ease)}
.legal__doc .legal__contact a:hover{background:#fff;color:var(--wps-dark)}
.legal__contactRow > * > span{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25}
.legal__contactRow small{margin-bottom:2px;font-family:var(--f-m);font-size:9px;font-weight:650;line-height:1.2;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.68)}
.legal__contact svg{flex:0 0 auto;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html[dir="rtl"] .legal__doc,html[dir="rtl"] .legal__toc{text-align:right;direction:rtl}
html[dir="rtl"] .legal__doc{line-height:1.9}
html[dir="rtl"] .legal__doc h2,html[dir="rtl"] .legal__navT{letter-spacing:0}
html[dir="rtl"] .legal__toc a{direction:rtl}
html[dir="rtl"] .legal__updated{direction:rtl}
html[dir="rtl"] .legal__contactRow{direction:rtl}
html[dir="rtl"] .legal__contactRow > * > span{align-items:flex-start;text-align:right}
html[dir="rtl"] .legal__contactRow small{font-family:var(--f-a);letter-spacing:0;text-transform:none}
@media (max-width:1080px){
  .legal__grid{grid-template-columns:1fr}
  .legal__side{position:static}
  .legal__toc{max-height:none;display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 10px;margin-top:10px}
  .legal__nav.is-open .legal__toc{display:grid}
  .legal__navT{cursor:pointer;font-size:11.5px;color:var(--ink)}
  [data-theme="dark"] .legal__navT{color:#fff}
  .legal__navT svg{display:block}
  .legal__nav.is-open .legal__navT svg{transform:rotate(180deg)}
  .legal__other{margin-top:12px;padding-top:12px}
}
@media (max-width:760px){
  .legal__toc{grid-template-columns:1fr}
  .legal__nav details{display:block}
	.legal__contact{padding:20px}
	.legal__contactRow{display:grid;grid-template-columns:1fr}
	.legal__doc .legal__contact a,.legal__contactLocation{width:100%;border-radius:14px}
}

/* ---------- Media Centre page: type switch, year + language filters, news cards ---------- */
.mc__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px;margin-bottom:28px}
.mc__head .head--left{margin-bottom:0}
.mc__seg .hseg__in{display:inline-flex;flex-wrap:wrap;gap:4px;padding:5px;background:rgba(255,255,255,.72);border:1px solid var(--brd);border-radius:var(--r-sm);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.mc__seg button{padding:12px 22px;border:0;background:transparent;border-radius:calc(var(--r-sm) - 3px);font:inherit;font-size:14px;font-weight:700;color:var(--w55);cursor:pointer;transition:all .3s var(--ease)}
.mc__seg button:hover{color:var(--ink)}
.mc__seg button[aria-selected="true"]{background:var(--wps-dark);color:#fff;box-shadow:0 5px 16px rgba(20,71,156,.22)}
[data-theme="dark"] .mc__seg .hseg__in{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12)}
[data-theme="dark"] .mc__seg button[aria-selected="true"]{background:#fff;color:#0B0A26}
.mc__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.mc__lang[hidden]{display:none}
.mc__lang .gal__f[lang="ar"]{font-size:15px}

.mc__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.mc__grid.is-in .mc{animation:galIn .5s cubic-bezier(.22,1,.36,1) both}
.mc__grid.is-in .mc:nth-child(2){animation-delay:.04s}.mc__grid.is-in .mc:nth-child(3){animation-delay:.08s}
.mc__grid.is-in .mc:nth-child(4){animation-delay:.12s}.mc__grid.is-in .mc:nth-child(5){animation-delay:.16s}
.mc__grid.is-in .mc:nth-child(n+6){animation-delay:.2s}
.mc{position:relative;display:flex;flex-direction:column;min-width:0;border-radius:var(--r-md);overflow:hidden;background:#fff;border:1px solid var(--card-brd,#D7E6F2);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease)}
.mc:hover,.mc:focus-within{transform:translateY(-4px);box-shadow:0 22px 50px rgba(2,54,137,.12);border-color:rgba(0,157,217,.45)}
[data-theme="dark"] .mc{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.mc__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(150deg,#0E3178 0%,#023689 55%,#0B63B8 100%)}
.mc__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.mc:hover .mc__media img{transform:scale(1.05)}
.mc__media--newsletters img{object-fit:contain;padding:18px;transform-origin:center}
.mc__n{position:absolute;right:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:rgba(7,6,26,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font-family:var(--f-m);font-size:11px;font-weight:600}
.mc__n svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8}
.mc__body{display:flex;flex-direction:column;flex:1;padding:20px 22px}
.mc__meta{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mc[dir="rtl"] .mc__meta{flex-direction:row-reverse}
.mc__meta time{font-family:var(--f-m);font-size:11.5px;color:var(--w40);white-space:nowrap}
.mc__t{margin-top:14px;font-size:17.5px;font-weight:750;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
[data-theme="dark"] .mc__t{color:#fff}
.mc[lang="ar"] .mc__t{font-family:"Noto Kufi Arabic","Geeza Pro","Segoe UI",Tahoma,sans-serif;font-weight:700;line-height:1.6}
.mc .rpt__more{margin-top:auto;padding-top:16px}
.mc[dir="rtl"] .rpt__more svg{transform:scaleX(-1)}
.mc.is-feature{grid-column:span 2;flex-direction:row}
.mc.is-feature .mc__media{flex:0 0 55%;aspect-ratio:auto;min-height:320px}
.mc.is-feature .mc__body{padding:30px 28px;justify-content:center}
.mc.is-feature .mc__t{font-size:clamp(21px,2vw,26px);-webkit-line-clamp:4}
.mc.is-feature .rpt__more{margin-top:22px;padding-top:0}
.mc__more{display:flex;justify-content:center;margin-top:32px}
.mc__more[hidden]{display:none}
@media (prefers-reduced-motion:reduce){ .mc,.mc__media img{transition:none} .mc__grid.is-in .mc{animation:none} }
@media (max-width:1080px){ .mc__grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:760px){
  .mc__grid{grid-template-columns:1fr;gap:16px}
  .mc.is-feature{grid-column:auto;flex-direction:column}
  .mc.is-feature .mc__media{flex:none;aspect-ratio:16/10;min-height:0}
  .mc.is-feature .mc__body{padding:20px 22px}
  .mc__seg,.mc__seg .hseg__in{width:100%}
  .mc__seg button{flex:1;padding:11px 8px;font-size:13px}
}

/* ---------- Knowledge Hub: landing rows, video cards, player modal, article reader ---------- */
.rpt__grid.is-in .rpt{animation:galIn .5s cubic-bezier(.22,1,.36,1) both}
.rpt__grid.is-in .rpt:nth-child(2){animation-delay:.04s}.rpt__grid.is-in .rpt:nth-child(3){animation-delay:.08s}.rpt__grid.is-in .rpt:nth-child(n+4){animation-delay:.12s}
button.rpt__link{border:0;background:transparent;padding:0;cursor:pointer;width:100%}
.rpt__play{position:absolute;left:50%;top:50%;z-index:2;display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transform:translate(-50%,-50%);transition:background .3s var(--ease),transform .3s var(--ease)}
.rpt__play svg{width:22px;height:22px;fill:#fff;margin-left:3px}
.rpt--video:hover .rpt__play{background:#fff;transform:translate(-50%,-50%) scale(1.08)}
.rpt--video:hover .rpt__play svg{fill:var(--wps-dark)}
.rpt--video .rpt__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,6,26,0) 40%,rgba(7,6,26,.45) 100%)}
.rpt--video .rpt__more svg{fill:currentColor;stroke:none}
.rpt--video.is-feature .rpt__media{min-height:360px}
.rpt__grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.rpt__grid--4 .rpt__t,.rpt__grid--3 .rpt__t{font-size:16.5px}
.rpt__grid--4 .rpt__p{-webkit-line-clamp:2}

.khintro{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:clamp(48px,6vw,80px)}
.khintro .head--left{margin-bottom:0}
.khintro__stats{display:grid;gap:12px}
.khstat{position:relative;display:flex;align-items:baseline;gap:16px;padding:20px 24px;border-radius:var(--r-md);background:linear-gradient(150deg,#0E3178 0%,#023689 55%,#0B63B8 100%);color:#fff;text-decoration:none;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.khstat b{font-family:var(--f-m);font-size:clamp(32px,3.4vw,44px);font-weight:600;line-height:1}
.khstat span{font-size:15px;font-weight:700}
.khstat i{margin-left:auto;font-style:normal;font-size:18px;opacity:.7;transition:transform .3s var(--ease)}
.khstat:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(2,54,137,.25)}
.khstat:hover i{transform:translateX(4px);opacity:1}
.khrow + .khrow{margin-top:clamp(48px,6vw,72px)}
.khrow__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:22px}
.khrow__head .h2{font-size:clamp(28px,3vw,38px)}

.khp{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;opacity:0;transition:opacity .25s var(--ease)}
.khp[hidden]{display:none}
.khp.is-open{opacity:1}
html.khp-open{overflow:hidden}
.khp__back{position:absolute;inset:0;background:rgba(5,6,24,.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.khp__card{position:relative;width:min(1100px,100%);border-radius:var(--r-md);overflow:hidden;background:#07061A;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.khp__bar{display:flex;align-items:center;gap:14px;padding:12px 12px 12px 20px}
.khp__t{flex:1;min-width:0;color:#fff;font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.khp__x{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;cursor:pointer}
.khp__x:hover,.khp__x:focus-visible{background:#fff;color:var(--wps-dark)}
.khp__x svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.khp__frame{position:relative;aspect-ratio:16/9;background:#000}
.khp__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.art{padding-top:clamp(120px,14vw,150px)}
.art__wrap{max-width:1120px}
.art__crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;font-weight:600;color:var(--w40)}
.art__crumbs a{color:var(--w55);text-decoration:none}
.art__crumbs a:hover{color:var(--wps-dark)}
.art__head{margin:20px 0 28px;max-width:860px}
.art__tags{display:flex;flex-wrap:wrap;gap:8px}
.art__t{margin-top:16px;font-size:clamp(32px,4.4vw,56px);font-weight:800;line-height:1.08;letter-spacing:-.03em;color:var(--ink)}
[data-theme="dark"] .art__t{color:#fff}
.art__meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:20px}
.art__pub{display:inline-flex;align-items:center;gap:12px;padding:8px 14px 8px 16px;border-radius:999px;background:#fff;border:1px solid var(--brd)}
.art__pub span{font-family:var(--f-m);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--w40)}
.art__pub img{height:22px;width:auto;max-width:120px}
.art__date{font-size:14px;color:var(--w55)}
.art__cover{position:relative;margin:0 0 clamp(32px,4vw,48px);border-radius:var(--r-lg);overflow:hidden;aspect-ratio:21/9;background:linear-gradient(150deg,#0E3178 0%,#023689 55%,#0B63B8 100%)}
.art__cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.art__cover[data-orient="doc"]::before{content:"";position:absolute;inset:0;opacity:.14;background:url('../images/mv-brand-swoosh.svg') 110% 50%/120% auto no-repeat}
.art__cover[data-orient="doc"] img{inset:10% auto 0 50%;width:auto;height:90%;object-fit:contain;transform:translateX(-50%);box-shadow:0 24px 60px rgba(0,0,0,.4);border-radius:6px 6px 0 0}
.art__layout{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:clamp(32px,5vw,72px);align-items:start}
.art__body{max-width:740px;font-size:17px;line-height:1.8;color:var(--w55)}
.art__body > p:first-child{font-size:clamp(19px,1.7vw,21px);line-height:1.7;color:var(--ink);font-weight:500}
[data-theme="dark"] .art__body > p:first-child{color:#fff}
.art__body p,.art__body ul,.art__body ol{margin:0 0 18px}
.art__body h2,.art__body h3,.art__body h4{margin:36px 0 12px;color:var(--ink);font-weight:750;line-height:1.3}
.art__body h2{font-size:26px}.art__body h3{font-size:22px}.art__body h4{font-size:19px}
[data-theme="dark"] .art__body h2,[data-theme="dark"] .art__body h3,[data-theme="dark"] .art__body h4{color:#fff}
.art__body strong,.art__body b{color:var(--ink)}
[data-theme="dark"] .art__body strong,[data-theme="dark"] .art__body b{color:#fff}
.art__body ul{list-style:none;padding:0}
.art__body li{position:relative;padding-left:24px;margin-bottom:10px}
.art__body li::before{content:"";position:absolute;left:4px;top:.75em;width:7px;height:7px;border-radius:50%;background:var(--wps-teal)}
.art__body a{color:var(--wps-dark);font-weight:600;text-decoration:underline;text-decoration-color:rgba(0,157,217,.45);text-underline-offset:3px}
.art__dl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;margin-top:36px;padding:26px 28px;border-radius:var(--r-md);color:#fff;background:linear-gradient(150deg,#0E3178 0%,#023689 55%,#0B63B8 100%)}
.art__dl p{margin:0;font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.78)}
.art__dl .art__dlT{font-size:19px;font-weight:750;color:#fff;margin-bottom:4px}
.art__dl .btn--primary{background:#fff;color:var(--wps-dark)}
.art__side{position:sticky;top:120px}
.art__sideT{font-family:var(--f-m);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--w40);margin-bottom:10px}
.art__share{display:flex;flex-wrap:wrap;gap:8px}
.art__share a,.art__share button{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff;border:1px solid var(--brd);color:var(--wps-dark);cursor:pointer;transition:all .2s var(--ease)}
.art__share a:hover,.art__share button:hover{background:var(--wps-dark);border-color:var(--wps-dark);color:#fff}
.art__share svg{width:17px;height:17px}
.art__copied{min-height:18px;margin-top:8px;font-size:12.5px;font-weight:600;color:var(--teal-ink)}
.art__pn{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:clamp(48px,6vw,72px)}
.art__pn a{display:flex;flex-direction:column;gap:6px;padding:22px 24px;border-radius:var(--r-md);border:1px solid var(--brd);background:var(--glass);text-decoration:none;font-size:16px;font-weight:700;line-height:1.35;color:var(--ink);transition:border-color .25s var(--ease),transform .25s var(--ease)}
.art__pn a:last-child{text-align:right}
.art__pn a span{display:flex;align-items:center;gap:7px;font-family:var(--f-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--wps-light);font-weight:600}
.art__pn a:last-child span{justify-content:flex-end}
.art__pn a:hover .session__navArrow--previous{transform:translateX(-3px) rotate(135deg)}
.art__pn a:hover .session__navArrow--next{transform:translateX(3px) rotate(-45deg)}
html[dir="rtl"] .art__pn a:hover .session__navArrow--previous{transform:translateX(3px) rotate(-45deg)}
html[dir="rtl"] .art__pn a:hover .session__navArrow--next{transform:translateX(-3px) rotate(135deg)}
.art__pn a:hover{border-color:rgba(0,157,217,.45);transform:translateY(-2px)}
[data-theme="dark"] .art__pn a{color:#fff}
.art__rel{margin-top:clamp(56px,7vw,96px)}
.art__relHead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:24px}
.art__missing{padding:60px 0;text-align:center}
.art__missing h1{font-size:clamp(28px,3vw,40px);color:var(--ink);margin-bottom:10px}
.art__missing .btn{margin-top:22px}
.khdl .modal__card{max-width:520px}
html:has(.art),html:has(.art) body{overflow-x:clip}
@media (max-width:1080px){
  .rpt__grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .khintro{grid-template-columns:1fr}
  .art__layout{grid-template-columns:1fr}
  .art__side{position:static}
  .art__cover{aspect-ratio:16/9}
}
@media (max-width:760px){
  .rpt__grid--4{grid-template-columns:1fr}
  .art__pn{grid-template-columns:1fr}
  .art__pn a:last-child{text-align:left}
  .art__pn a:last-child span{justify-content:flex-start}
  .art__cover[data-orient="doc"] img{height:86%}
}

/* Venue floor plan: scroll-linked zoom (venue.html script sets --fz 0 → 1) */
.floorzoom{--fz:0;position:relative;margin:0 0 20px;border-radius:var(--r-lg);overflow:hidden;background:#EAF1F8;
  transform:scale(calc(.9 + var(--fz) * .1));transform-origin:center top;
  box-shadow:0 calc(10px + var(--fz) * 20px) calc(30px + var(--fz) * 40px) rgba(2,54,137,calc(.06 + var(--fz) * .08));will-change:transform}
.floorzoom img{display:block;width:100%;height:auto;transform:scale(calc(1 + var(--fz) * .08));transform-origin:50% 55%;will-change:transform}
@media (prefers-reduced-motion:reduce){ .floorzoom,.floorzoom img{transform:none} }

/* Venue: "An essential guide to Dubai" accordion laid out as a grid */
.faq-list.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;align-items:start;max-width:none}
.faq-list.guide-grid .faq{margin:0}
@media (max-width:760px){ .faq-list.guide-grid{grid-template-columns:1fr;gap:12px} }

/* ---------- Floor plan: embedded interactive plan ---------- */
.planframe{position:relative;border:1px solid var(--brd);border-radius:var(--r-lg);overflow:hidden;background:var(--glass);box-shadow:0 18px 50px rgba(0,0,0,.10)}
.planframe::before{content:"";display:block;padding-top:64%}
.planframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.planframe__note{margin:16px auto 0;max-width:760px;text-align:center;font-size:14.5px;line-height:1.65;color:var(--ink-soft)}
.planframe__note a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
@media (max-width:900px){ .planframe::before{padding-top:88%} }
@media (max-width:600px){ .planframe::before{padding-top:124%} }

/* A searchable directory needs more vertical room than a floor plan: the widget
   carries its own filter rail and paginated grid, so a 16:9-ish box would force
   the visitor to scroll inside a small window. */
.planframe--tall::before{padding-top:118%}
@media (min-width:1100px){ .planframe--tall::before{padding-top:82%} }
@media (max-width:900px){ .planframe--tall::before{padding-top:150%} }
@media (max-width:600px){ .planframe--tall::before{padding-top:210%} }

/* ============================================================
   Media Centre article (news.html)
   news.html renders the SAME .art__* structure as article.html, so the whole
   layout - crumbs, head, cover, two-column body + sticky share rail, prev/next,
   related grid - comes from the .art__ rules above. Only two things are extra:
   the image grid galleries use, and RTL for the 52 Arabic press releases.
   ============================================================ */
.art__gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin:28px 0 8px}
.art__gal figure{margin:0;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--brd);background:var(--glass)}
.art__gal img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s var(--ease)}
.art__gal figure:hover img{transform:scale(1.04)}

/* Arabic records: the article text flips, the page chrome stays LTR */
.art__t[dir="rtl"]{letter-spacing:normal;line-height:1.3}
.art__body[dir="rtl"]{text-align:right;line-height:1.95}
.art__body[dir="rtl"] ul{padding-right:0}
.art__body[dir="rtl"] li{padding-left:0;padding-right:24px}
.art__body[dir="rtl"] li::before{left:auto;right:4px}

/* ---------- 404: concise recovery page ---------- */
.notfound{position:relative;isolation:isolate;display:grid;align-items:center;min-height:100svh;padding:clamp(150px,18vh,210px) 28px clamp(90px,12vh,140px);overflow:hidden;background:#071B4A;color:#fff}
.notfound__media,.notfound__veil{position:absolute;inset:0;z-index:-2}
.notfound__media img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.notfound__veil{z-index:-1;background:linear-gradient(90deg,rgba(3,18,54,.96) 0%,rgba(4,35,91,.88) 48%,rgba(4,35,91,.4) 100%),linear-gradient(0deg,rgba(3,18,54,.65),transparent 48%)}
.notfound__inner{width:min(100%,var(--shell));margin-inline:auto;max-width:1180px}
.notfound__code{margin:0;font-size:clamp(96px,17vw,220px);font-weight:900;line-height:.78;letter-spacing:-.075em;color:rgba(255,255,255,.24);text-shadow:0 10px 45px rgba(0,0,0,.12);user-select:none}
.notfound h1{margin:clamp(24px,4vh,42px) 0 14px;font-size:clamp(42px,6vw,76px);font-weight:800;line-height:1.03;letter-spacing:-.035em;color:#fff}
.notfound__copy{max-width:590px;margin:0;font-size:clamp(16px,1.6vw,19px);line-height:1.65;color:rgba(255,255,255,.76)}
.notfound__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.notfound .btn{min-height:52px}
.notfound .btn--primary{background:#fff;color:#023689;box-shadow:0 12px 32px rgba(0,0,0,.2)}
.notfound .btn--primary:hover{background:#DFF8F4;color:#023689}
.notfound .btn--primary svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notfound .btn--ghost{color:#fff;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.06)}
.notfound .btn--ghost:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.58)}
.notfound[dir="rtl"]{font-family:"Cairo",sans-serif}
.notfound[dir="rtl"] .notfound__veil{background:linear-gradient(270deg,rgba(3,18,54,.96) 0%,rgba(4,35,91,.88) 48%,rgba(4,35,91,.4) 100%),linear-gradient(0deg,rgba(3,18,54,.65),transparent 48%)}
.notfound[dir="rtl"] .notfound__code{letter-spacing:-.04em}
.notfound[dir="rtl"] h1{letter-spacing:0;line-height:1.25}
.notfound[dir="rtl"] .btn--primary svg{transform:scaleX(-1)}
@media (max-width:760px){
  .notfound{padding-inline:20px;min-height:92svh}
  .notfound__veil,.notfound[dir="rtl"] .notfound__veil{background:linear-gradient(180deg,rgba(3,18,54,.86) 0%,rgba(3,18,54,.94) 58%,rgba(3,18,54,.98) 100%)}
  .notfound__media img{object-position:62% center}
  .notfound__actions{align-items:stretch;flex-direction:column;max-width:340px}
  .notfound .btn{justify-content:center}
}
/* Post-show page: inner banner with a supporting line under the title */
.pagehero--postshow .pagehero__bg img{object-position:center 40%}
.pagehero__lead{max-width:620px;margin:0;font-size:clamp(16px,1.3vw,19px);line-height:1.6;color:rgba(255,255,255,.84)}

/* ---------- Post-show page: editions as a row of tabs over a wide panel ---------- */
.eds--row{grid-template-columns:1fr!important;gap:16px}
.eds--row .tiles{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;gap:14px}
.eds--row .tile{display:grid;grid-template-columns:46px minmax(0,1fr);column-gap:16px;align-items:center;padding:18px 20px;border-radius:20px;text-align:left;transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease)}
.eds--row .tile__ic{grid-row:1 / 4;background:#fff;box-shadow:0 2px 8px rgba(7,6,26,.08)}
.eds--row .tile__n{font-size:12px;color:#7A889E}
.eds--row .tile__l{font-size:22px;font-weight:750;color:var(--ink)}
.eds--row .tile__r{font-size:13px;color:#46506B}
.eds--row .tile[aria-selected="true"]{background:#14338F;border-color:#14338F;box-shadow:0 14px 30px rgba(20,51,143,.28)}
.eds--row .tile[aria-selected="true"] .tile__n{color:rgba(255,255,255,.7)}
.eds--row .tile[aria-selected="true"] .tile__l,.eds--row .tile[aria-selected="true"] .tile__r{color:#fff}
.eds--row .panel{padding:clamp(28px,3.4vw,44px)}
.eds--row .panel__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,330px);column-gap:clamp(28px,5vw,72px);align-items:start;grid-auto-flow:row dense}
.eds--row .panel__body>*{grid-column:1}
.eds--row .panel__k{margin-bottom:12px}
.eds--row .panel__body h3{font-size:clamp(24px,2.4vw,32px);font-weight:750;letter-spacing:-.02em;margin:0 0 12px}
.eds--row .panel__p{max-width:620px;margin:0 0 20px}
.eds--row .facts{margin:0}
.eds--row .eds__bar{display:none}
.eds--row .rows{grid-column:2;grid-row:1 / span 4;align-self:center;display:flex;flex-direction:column;gap:12px;margin:0}
.eds--row .row{display:flex;align-items:center;gap:12px;padding:18px 22px;border-radius:14px;font-size:15px;font-weight:600}
.eds--row .row .ar{margin-left:auto}
.eds--row .row:not(.row--go){background:#fff}
.eds--row .row:not(.row--go)::before{content:"";flex:0 0 22px;width:22px;height:22px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7c-1.5-1.3-3.7-2-7-2H3v13h2c3.3 0 5.5.7 7 2 1.5-1.3 3.7-2 7-2h2V5h-2c-3.3 0-5.5.7-7 2z'/%3E%3Cpath d='M12 7v13'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7c-1.5-1.3-3.7-2-7-2H3v13h2c3.3 0 5.5.7 7 2 1.5-1.3 3.7-2 7-2h2V5h-2c-3.3 0-5.5.7-7 2z'/%3E%3Cpath d='M12 7v13'/%3E%3C/svg%3E") center/contain no-repeat}
[data-theme="dark"] .eds--row .tile__ic{background:rgba(255,255,255,.08)}
[data-theme="dark"] .eds--row .tile__l{color:#fff}
[data-theme="dark"] .eds--row .tile__n,[data-theme="dark"] .eds--row .tile__r{color:rgba(224,236,255,.66)}
[data-theme="dark"] .eds--row .tile[aria-selected="true"]{background:#1E4BC9;border-color:#1E4BC9}
[data-theme="dark"] .eds--row .row:not(.row--go){background:rgba(255,255,255,.06)}
@media(max-width:1024px){.eds--row .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.eds--row .panel__body{grid-template-columns:1fr}.eds--row .rows{grid-column:1;grid-row:auto;margin-top:24px}}
.eds--row .panel__k{font-size:12.5px;font-weight:700;letter-spacing:.2em;color:#1F7A5C}
[data-theme="dark"] .eds--row .panel__k{color:#7FE7DB}
@media(max-width:560px){.eds--row .tiles{gap:10px}.eds--row .tile{grid-template-columns:1fr;row-gap:2px;padding:14px 16px}.eds--row .tile__ic{grid-row:auto;width:36px;height:36px;margin:0 0 8px}.eds--row .tile__ic svg{width:22px;height:22px}.eds--row .tile__l{font-size:20px}}
/* Awards roadmap: countdown hidden now the entry deadline has passed (remove [hidden] in page-awards.php to restore) */
.rmap__clock[hidden]{display:none!important}
.rmap__spot:has(> .rmap__clock[hidden]){grid-template-columns:1fr}

/* ---------- speakers: search, country filter, featured toggle ---------- */
.spkf{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 28px}
.spkf .screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.spkf__search{position:relative;flex:1 1 340px;min-width:0}
.spkf__search svg{position:absolute;inset-inline-start:18px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:#7A889E;pointer-events:none}
.spkf__search input{width:100%;height:50px;padding:0 18px;padding-inline-start:48px;border:1.5px solid #D7E4F2;border-radius:999px;background:#F7FAFC;font:inherit;font-size:14.5px;color:var(--ink);outline:none;-webkit-appearance:none;appearance:none}
.spkf__search input::placeholder{color:#9AABC2}
.spkf__sel{flex:0 1 250px;min-width:180px}
.spkf__sel select{width:100%;height:50px;padding:0 18px;padding-inline-end:44px;border:1.5px solid #D7E4F2;border-radius:999px;background:#F7FAFC url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235A6B85' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 18px center/12px 8px;font:inherit;font-size:14.5px;color:var(--ink);cursor:pointer;outline:none;-webkit-appearance:none;appearance:none}
[dir="rtl"] .spkf__sel select{background-position:left 18px center}
.spkf__search input:focus,.spkf__sel select:focus{border-color:#009DD9;box-shadow:0 0 0 3px rgba(0,157,217,.14)}
.spkf__chip{display:inline-flex;align-items:center;gap:8px;height:50px;padding:0 20px;border:1.5px solid #D7E4F2;border-radius:999px;background:#fff;font:inherit;font-size:14px;font-weight:700;color:var(--ink);cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}
.spkf__chip svg{width:16px;height:16px;color:#E0A31A}
.spkf__chip:hover{border-color:#36A4DD}
.spkf__chip[aria-pressed="true"]{background:#023689;border-color:#023689;color:#fff}
.spkf__chip:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,157,217,.25)}
.spkf__count{flex-basis:100%;margin:2px 0 0;font-size:13px;color:#6B7A93}
.spkf__empty{margin:0;padding:48px 0 12px;text-align:center;font-size:15px;color:#6B7A93}
#speakers-2026 .spk[hidden]{display:none!important}
@media(max-width:640px){.spkf__sel,.spkf__chip{flex:1 1 calc(50% - 6px)}.spkf__chip{justify-content:center}}

/* QC 19 Oct 2026: gallery videos. The caption goes below a video so its controls stay clickable; on phones the
   pop-up never runs wider than the screen and long titles wrap inside the card. */
.insight-lightbox__figure.is-video{display:flex;flex-direction:column}
.insight-lightbox__figure.is-video video{height:auto;max-height:min(60svh,640px);aspect-ratio:16/9}
.insight-lightbox__figure.is-video figcaption{position:relative;padding:18px clamp(20px,3vw,34px) 20px;background:#080718}
.insight-lightbox__figure h3,.insight-lightbox__figure p{overflow-wrap:anywhere}
@media (max-width:760px){
  .insight-lightbox__stage{max-width:calc(100vw - 24px);min-width:0}
  .insight-lightbox__figure{max-width:100%}
  .insight-lightbox__figure.is-video video{max-height:min(40svh,340px)}
  .insight-lightbox__figure.is-video figcaption{padding:16px 18px 76px}
}
/* QC 19 Oct 2026 #22: no blue edges around the featured press card (border off, the photo fully covers its frame). */
.mc.is-feature{border-color:transparent;box-shadow:0 14px 34px rgba(2,54,137,.08)}
.mc.is-feature .mc__media{background:transparent}
.mc.is-feature .mc__media img{inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px)}
[data-theme="dark"] .mc.is-feature{border-color:transparent}
