/* ==========================================================================
   Global Pharma Events — Design System
   --------------------------------------------------------------------------
   Three typefaces, each with a job:
     Schibsted Grotesk  UI and headings
     Source Serif 4     the editorial verdict, so the platform's voice is
                        visibly not the organizer's marketing copy
     IBM Plex Mono      dates, stats, verification stamps, codes

   Amber is SIGNAL ONLY: live events, closing deadlines, Gold tier, and CTAs
   with a deadline attached. Never decorative. If everything is amber, nothing
   is urgent.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@400..800&family=Source+Serif+4:ital,opsz,wght@0,8..60,400..700;1,8..60,400..600&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root{
  /* Blue — primary */
  --blue-900:#08265C; --blue-800:#0B3172; --blue-700:#0E3A8A; --blue-600:#1550C4;
  --blue-500:#2E6BE8; --blue-300:#8FB4F5; --blue-100:#DCE8FE; --blue-50:#EEF4FF;

  /* Amber — signal only */
  --amber-700:#B84A08; --amber-600:#E4610F; --amber-500:#F97C1E;
  --amber-100:#FFE2C7; --amber-50:#FFF4EA;

  /* Ink and neutrals */
  --ink:#0B1B33; --text:#16283F; --muted:#5C6E8C; --faint:#8698B3;
  --line:#DCE3EE; --line-soft:#EAEFF6; --surface-2:#EEF2F8;
  --surface:#F4F7FB; --paper:#FFFFFF;

  /* State */
  --ok:#0F7B52;   --ok-bg:#E6F5EE;
  --warn:#B45309; --warn-bg:#FEF4E6;
  --stop:#B42318; --stop-bg:#FEECEA;

  /* Tier colours */
  --tier-free:#5C6E8C; --tier-basic:#7A8AA3; --tier-silver:#7C8BA1;
  --tier-gold:#B7791F; --tier-platinum:#0E2547;

  /* Type */
  --font-ui:'Schibsted Grotesk','Helvetica Neue',Arial,sans-serif;
  --font-serif:'Source Serif 4',Georgia,'Times New Roman',serif;
  --font-mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;

  --fs-xs:.75rem; --fs-sm:.85rem; --fs-base:1rem; --fs-md:1.06rem;
  --fs-lg:1.25rem; --fs-xl:1.55rem; --fs-2xl:2rem; --fs-3xl:2.6rem; --fs-4xl:3.3rem;

  /* Space */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:22px;
  --sp-6:30px; --sp-7:42px; --sp-8:60px; --sp-9:84px;

  /* Radius and shadow */
  --r-xs:3px; --r-sm:5px; --r-md:8px; --r-lg:12px; --r-full:999px;
  --sh-1:0 1px 2px rgba(11,27,51,.06);
  --sh-2:0 2px 10px rgba(11,27,51,.08);
  --sh-3:0 16px 44px rgba(11,27,51,.16);

  --wrap:1240px;
  --nav-h:64px;
}

/* --------------------------------------------------------------------------
   2. Reset and base
   -------------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
body{
  margin:0;font-family:var(--font-ui);font-size:var(--fs-base);line-height:1.55;
  color:var(--text);background:var(--surface);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,h5,h6{margin:0 0 var(--sp-3);font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.15}
h1{font-size:var(--fs-3xl);letter-spacing:-.032em}
h2{font-size:var(--fs-2xl);letter-spacing:-.028em}
h3{font-size:var(--fs-lg)}
h4{font-size:var(--fs-md)}
p{margin:0 0 1em}
a{color:var(--blue-600);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--blue-700)}
ul,ol{margin:0 0 1em;padding-left:1.35em}
hr{border:0;border-top:1px solid var(--line);margin:var(--sp-6) 0}
:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px;border-radius:2px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--blue-700);color:#fff;padding:12px 18px;border-radius:0 0 var(--r-sm) 0;font-weight:600}
.skip-link:focus{left:0}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--sp-5)}
.wrap-narrow{max-width:820px;margin:0 auto;padding:0 var(--sp-5)}
.section{padding:var(--sp-8) 0}
.section-tight{padding:var(--sp-6) 0}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--font-mono);font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--sp-2)}
.lede{font-size:var(--fs-md);color:var(--muted);max-width:62ch}

/* --------------------------------------------------------------------------
   3. Buttons
   -------------------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:inherit;font-size:var(--fs-sm);font-weight:600;line-height:1;
  padding:11px 18px;border-radius:var(--r-sm);border:1px solid transparent;
  cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:background .14s,border-color .14s,color .14s;
}
.btn-primary{background:var(--blue-600);color:#fff}
.btn-primary:hover{background:var(--blue-700);color:#fff}
.btn-secondary{background:var(--paper);color:var(--blue-700);border-color:var(--line)}
.btn-secondary:hover{border-color:var(--blue-300);background:var(--blue-50)}
/* Amber CTA is reserved for actions with a deadline attached. */
.btn-deadline{background:var(--amber-600);color:#fff}
.btn-deadline:hover{background:var(--amber-700);color:#fff}
.btn-ghost{background:transparent;color:var(--text)}
.btn-ghost:hover{background:var(--surface-2)}
.btn-onink{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.24)}
.btn-onink:hover{background:rgba(255,255,255,.22);color:#fff}
.btn-sm{padding:7px 13px;font-size:.8rem}
.btn-lg{padding:14px 24px;font-size:var(--fs-base)}
.btn-block{width:100%}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}

/* --------------------------------------------------------------------------
   4. Pills, badges, stamps
   -------------------------------------------------------------------------- */
.pill{
  display:inline-flex;align-items:center;gap:5px;
  font-family:var(--font-mono);font-size:.64rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;
  padding:3px 8px;border-radius:var(--r-xs);
}
.pill-live{background:var(--amber-600);color:#fff}
.pill-live::before{content:'';width:5px;height:5px;border-radius:50%;background:#fff;animation:gpe-pulse 2s infinite}
@keyframes gpe-pulse{0%,100%{opacity:1}50%{opacity:.3}}
.pill-soon{background:var(--amber-50);color:var(--amber-700)}
.pill-info{background:var(--blue-50);color:var(--blue-700)}
.pill-quiet{background:var(--surface-2);color:var(--muted)}
.pill-past{background:var(--surface-2);color:var(--faint)}
.pill-ok{background:var(--ok-bg);color:var(--ok)}
.pill-warn{background:var(--warn-bg);color:var(--warn)}
.pill-stop{background:var(--stop-bg);color:var(--stop)}

.tier-badge{
  display:inline-flex;align-items:center;
  font-family:var(--font-mono);font-size:.62rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
  padding:2px 8px;border-radius:var(--r-xs);border:1px solid;
}
.tier-silver{color:var(--tier-silver);border-color:#CFD6E0;background:#F4F6F9}
.tier-gold{color:var(--tier-gold);border-color:var(--amber-100);background:var(--amber-50)}
.tier-platinum{color:#fff;border-color:var(--tier-platinum);background:var(--tier-platinum)}

/* Paid placement label. Never blended with organic results. */
.placement-label{
  display:inline-flex;align-items:center;
  font-family:var(--font-mono);font-size:.6rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
  padding:2px 7px;border-radius:var(--r-xs);
  background:var(--surface-2);color:var(--muted);border:1px solid var(--line);
}

/* Verification stamp — pharma batch-release aesthetic */
.stamp{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--font-mono);font-size:.7rem;
  padding:4px 9px;border-radius:var(--r-xs);border:1px solid;
}
.stamp-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.stamp-label{font-weight:600;letter-spacing:.03em}
.stamp-date{opacity:.75}
.stamp-source{margin-left:2px;font-size:.66rem;text-decoration:underline}
.stamp-ok{color:var(--ok);background:var(--ok-bg);border-color:#BFE5D3}
.stamp-info{color:var(--blue-700);background:var(--blue-50);border-color:var(--blue-100)}
.stamp-warn{color:var(--warn);background:var(--warn-bg);border-color:var(--amber-100)}
.stamp-stop{color:var(--stop);background:var(--stop-bg);border-color:#F2C6C1}
.stamp-compact{padding:2px 6px;font-size:.66rem}

/* --------------------------------------------------------------------------
   5. The date block — signature device
   -------------------------------------------------------------------------- */
.date-block{
  position:absolute;left:12px;bottom:12px;z-index:2;
  display:flex;flex-direction:column;align-items:stretch;
  width:52px;border-radius:var(--r-xs);overflow:hidden;
  background:var(--paper);border:1px solid var(--blue-100);
  box-shadow:var(--sh-1);text-align:center;
}
.date-block .db-month{
  font-family:var(--font-mono);font-size:.55rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;
  color:#fff;background:var(--blue-700);padding:3px 0;
}
.date-block .db-day{
  font-family:var(--font-mono);font-size:1.05rem;font-weight:600;
  color:var(--blue-800);padding:4px 0 3px;line-height:1;
}
.date-block .db-thru{
  font-family:var(--font-mono);font-size:.6rem;color:var(--muted);
  border-top:1px solid var(--line-soft);padding:2px 0;
}
.date-block-static{position:static;box-shadow:none}

/* --------------------------------------------------------------------------
   6. Header and mega menu
   -------------------------------------------------------------------------- */
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:90}
.header-in{
  max-width:var(--wrap);margin:0 auto;padding:0 var(--sp-5);
  height:var(--nav-h);display:flex;align-items:center;gap:var(--sp-5);
  position:relative; /* mega menus anchor here, not to the nav item */
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.brand-mark{width:32px;height:32px;border-radius:var(--r-sm);background:linear-gradient(140deg,var(--blue-500),var(--blue-800));display:grid;place-items:center;flex:none}
.brand-name{font-weight:800;font-size:1.02rem;letter-spacing:-.03em;color:var(--ink);line-height:1.05}
.brand-name small{display:block;font-family:var(--font-mono);font-size:.54rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-top:2px}

.main-nav{display:flex;align-items:center;gap:2px;height:100%}
.main-nav > li{list-style:none;height:100%;display:flex;align-items:center;position:static}
.main-nav a{
  display:flex;align-items:center;gap:6px;height:100%;padding:0 13px;
  font-size:.9rem;font-weight:600;color:var(--text);text-decoration:none;
  border-bottom:2px solid transparent;
}
.main-nav a:hover,.main-nav li:hover > a,.main-nav .current-menu-item > a{color:var(--blue-700);border-bottom-color:var(--blue-600)}
.main-nav .menu-item-has-children > a::after{content:'';width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.6}

/* Mega panel: anchored to .header-in so it can never overflow the nav item. */
.mega{
  position:absolute;top:100%;left:0;right:0;width:auto;
  background:var(--paper);border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);box-shadow:var(--sh-3);
  padding:var(--sp-6) var(--sp-5);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .16s,transform .16s,visibility .16s;
  z-index:95;
}
.main-nav li:hover > .mega,.main-nav li:focus-within > .mega{opacity:1;visibility:visible;transform:translateY(0)}
.mega-in{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-6)}
.mega-col h4{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:var(--sp-3)}
.mega-col ul{list-style:none;margin:0;padding:0}
.mega-col li{margin-bottom:2px}
.mega-col li a{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  height:auto;padding:6px 8px;border-radius:var(--r-xs);border-bottom:0;
  font-size:.86rem;font-weight:500;color:var(--text);
}
.mega-col li a:hover{background:var(--blue-50);color:var(--blue-700);border-bottom:0}
.mega-col li a .n{font-family:var(--font-mono);font-size:.7rem;color:var(--faint)}
.mega-feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-4)}
.mega-feature .eyebrow{margin-bottom:6px}
.mega-feature h5{font-size:.94rem;margin-bottom:6px}
.mega-feature p{font-size:.82rem;color:var(--muted);margin-bottom:10px}

.header-actions{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2);flex:none}
.header-search{
  display:flex;align-items:center;gap:8px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 12px;
  min-width:230px;color:var(--muted);font-size:.84rem;cursor:pointer;text-decoration:none;
}
.header-search:hover{border-color:var(--blue-300);background:var(--paper)}
.header-search kbd{margin-left:auto;font-family:var(--font-mono);font-size:.66rem;border:1px solid var(--line);border-radius:3px;padding:1px 5px;background:var(--paper);color:var(--faint)}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;cursor:pointer}

@media(max-width:1080px){
  .main-nav,.header-search{display:none}
  .nav-toggle{display:grid;place-items:center}
  .mega-in{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .brand-name small{display:none}
}

/* Mobile drawer */
.mobile-nav{display:none;background:var(--paper);border-bottom:1px solid var(--line);padding:var(--sp-4) var(--sp-5)}
.mobile-nav.is-open{display:block}
.mobile-nav ul{list-style:none;margin:0;padding:0}
.mobile-nav a{display:block;padding:11px 0;border-bottom:1px solid var(--line-soft);font-weight:600;color:var(--text);text-decoration:none}
.mobile-nav .sub a{padding-left:14px;font-weight:400;font-size:.88rem;color:var(--muted)}

/* --------------------------------------------------------------------------
   7. Cards
   -------------------------------------------------------------------------- */
.grid{display:grid;gap:var(--sp-4)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

.card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  overflow:hidden;display:flex;flex-direction:column;position:relative;
  transition:border-color .14s,box-shadow .14s,transform .14s;
}
.card:hover{border-color:var(--blue-300);box-shadow:var(--sh-2)}
.card a.card-link{text-decoration:none;color:inherit;display:flex;flex-direction:column;height:100%}

/* The tier rail: a 3px left edge in the tier colour. Quiet on the page,
   unmistakable once you know the language. */
.card.is-silver{border-left:3px solid var(--tier-silver)}
.card.is-gold{border-left:3px solid var(--tier-gold)}
.card.is-platinum{border-left:3px solid var(--tier-platinum)}

.card-media{position:relative;aspect-ratio:16/10;background:var(--surface-2);overflow:hidden}
.card-img{width:100%;height:100%;object-fit:cover}
.card-gradient{
  position:absolute;inset:0;
  background:linear-gradient(140deg,
    hsl(var(--g-hue,215) 62% 26%),
    hsl(calc(var(--g-hue,215) + 24) 58% 44%));
}
.card-gradient::after{
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:38px 38px;
}
.card-flags{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:6px;flex-wrap:wrap;z-index:2}
.card-flags .placement-label{background:rgba(255,255,255,.94)}

.card-body{padding:var(--sp-4);display:flex;flex-direction:column;gap:8px;flex:1}
.card-kicker{font-family:var(--font-mono);font-size:.64rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.card-title{font-size:1.02rem;letter-spacing:-.018em;margin:0;line-height:1.28}
.card:hover .card-title{color:var(--blue-700)}
.card-excerpt{font-size:.87rem;color:var(--muted);margin:0;line-height:1.5}
.card-meta{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin-top:auto;padding-top:var(--sp-3);border-top:1px solid var(--line-soft);
  font-family:var(--font-mono);font-size:.72rem;color:var(--muted);
}
.card-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--faint);flex:none}
.card-foot{padding:10px var(--sp-4);border-top:1px solid var(--line-soft);background:var(--surface);display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}

/* Compact row variant for rails and dense lists */
.row-card{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft);text-decoration:none;color:inherit}
.row-card:last-child{border-bottom:0}
.row-card:hover .row-title{color:var(--blue-700)}
.row-title{font-size:.9rem;font-weight:600;letter-spacing:-.014em;margin:0 0 3px;line-height:1.3}
.row-meta{font-family:var(--font-mono);font-size:.7rem;color:var(--muted)}

/* --------------------------------------------------------------------------
   8. Hero and runway
   -------------------------------------------------------------------------- */
.hero{background:linear-gradient(158deg,var(--blue-900),var(--blue-700) 62%,var(--blue-600));color:#fff;position:relative;overflow:hidden}
.hero::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:52px 52px;
}
.hero-in{position:relative;z-index:1;padding:var(--sp-9) 0 var(--sp-8)}
.hero h1{color:#fff;font-size:var(--fs-4xl);letter-spacing:-.036em;max-width:19ch;margin-bottom:var(--sp-4)}
.hero .eyebrow{color:var(--amber-500)}
.hero p.lede{color:#C3D6F2;font-size:1.1rem;max-width:56ch;margin-bottom:var(--sp-5)}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:var(--sp-6)}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);border-top:1px solid rgba(255,255,255,.16);padding-top:var(--sp-5)}
.hero-stats .st b{display:block;font-family:var(--font-mono);font-size:1.8rem;font-weight:600;line-height:1;color:#fff}
.hero-stats .st span{display:block;font-size:.8rem;color:#93B0DC;margin-top:6px}
@media(max-width:820px){
  .hero h1{font-size:2.3rem}
  .hero-stats{grid-template-columns:repeat(2,1fr)}
}

/* The 90-day runway: what is coming, ordered, at a glance. */
.runway{display:flex;gap:var(--sp-3);overflow-x:auto;padding-bottom:var(--sp-3);scroll-snap-type:x mandatory}
.runway::-webkit-scrollbar{height:6px}
.runway::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.runway-item{
  flex:0 0 232px;scroll-snap-align:start;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  padding:var(--sp-4);text-decoration:none;color:inherit;
  display:flex;flex-direction:column;gap:8px;position:relative;
}
.runway-item:hover{border-color:var(--blue-300);box-shadow:var(--sh-2)}
.runway-item.is-gold{border-left:3px solid var(--tier-gold)}
.runway-item.is-platinum{border-left:3px solid var(--tier-platinum)}
.runway-item.is-silver{border-left:3px solid var(--tier-silver)}
.runway-when{font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--blue-700)}
.runway-title{font-size:.92rem;font-weight:600;letter-spacing:-.015em;line-height:1.3;margin:0}
.runway-loc{font-size:.78rem;color:var(--muted)}
.runway-ruler{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.66rem;color:var(--faint);border-top:1px solid var(--line);padding-top:8px;margin-top:4px}

/* --------------------------------------------------------------------------
   9. Archive layout, filters
   -------------------------------------------------------------------------- */
.archive-head{padding:var(--sp-7) 0 var(--sp-5);border-bottom:1px solid var(--line);background:var(--paper)}
.archive-head h1{margin-bottom:var(--sp-3)}
.archive-intro{max-width:70ch;font-size:.96rem;color:var(--text)}
.archive-intro p{margin-bottom:.9em}
.archive-layout{display:grid;grid-template-columns:264px 1fr;gap:var(--sp-6);align-items:start;padding:var(--sp-6) 0 var(--sp-8)}
@media(max-width:960px){.archive-layout{grid-template-columns:1fr}}

.filter-rail{position:sticky;top:calc(var(--nav-h) + 16px)}
@media(max-width:960px){.filter-rail{position:static}}
.filter-group{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:var(--sp-3);overflow:hidden}
.filter-group > summary{
  padding:12px 14px;font-size:.86rem;font-weight:600;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;list-style:none;
}
.filter-group > summary::-webkit-details-marker{display:none}
.filter-group > summary::after{content:'';width:7px;height:7px;border-right:1.6px solid var(--muted);border-bottom:1.6px solid var(--muted);transform:rotate(45deg);transition:transform .15s}
.filter-group[open] > summary::after{transform:rotate(-135deg)}
.filter-body{padding:0 14px 14px;border-top:1px solid var(--line-soft);max-height:260px;overflow-y:auto}
.filter-opt{display:flex;align-items:center;gap:9px;padding:6px 0;font-size:.85rem;cursor:pointer}
.filter-opt input{width:15px;height:15px;accent-color:var(--blue-600);flex:none}
.filter-opt .n{margin-left:auto;font-family:var(--font-mono);font-size:.7rem;color:var(--faint)}
.filter-opt:hover{color:var(--blue-700)}

.applied{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:var(--sp-4)}
.chip{
  display:inline-flex;align-items:center;gap:7px;
  font-size:.78rem;font-weight:600;
  background:var(--blue-50);color:var(--blue-700);border:1px solid var(--blue-100);
  padding:4px 6px 4px 11px;border-radius:var(--r-full);
}
.chip button{background:rgba(0,0,0,.08);border:0;width:16px;height:16px;border-radius:50%;cursor:pointer;color:inherit;font-size:.66rem;line-height:1;display:grid;place-items:center;padding:0}
.chip button:hover{background:var(--blue-600);color:#fff}

.results-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px solid var(--line)}
.results-count{font-family:var(--font-mono);font-size:.82rem;color:var(--muted)}
.results-count b{color:var(--ink)}
.view-toggle{display:flex;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--paper)}
.view-toggle a{padding:7px 12px;font-size:.8rem;font-weight:600;color:var(--muted);text-decoration:none;border-right:1px solid var(--line)}
.view-toggle a:last-child{border-right:0}
.view-toggle a[aria-current="true"]{background:var(--blue-700);color:#fff}
.sort-select{font-family:inherit;font-size:.82rem;padding:8px 30px 8px 11px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 12 8'%3E%3Cpath fill='%235C6E8C' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}

/* Organic vs paid are visually separated, never interleaved silently. */
.results-promoted{margin-bottom:var(--sp-5);padding-bottom:var(--sp-5);border-bottom:1px dashed var(--line)}
.results-promoted-head{display:flex;align-items:center;gap:10px;margin-bottom:var(--sp-3)}
.results-promoted-head h2{font-size:.84rem;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0}

.empty-state{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-7);text-align:center}
.empty-state h3{margin-bottom:8px}
.empty-state p{color:var(--muted);max-width:52ch;margin:0 auto var(--sp-4)}
.empty-suggestions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}

/* --------------------------------------------------------------------------
   10. Edition detail
   -------------------------------------------------------------------------- */
.crumbs{padding:var(--sp-3) 0;font-size:.8rem}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.crumbs li{color:var(--muted);display:flex;align-items:center;gap:8px}
.crumbs li:not(:last-child)::after{content:'/';color:var(--faint)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--blue-700);text-decoration:underline}

.event-hero{background:var(--paper);border-bottom:1px solid var(--line);padding-bottom:var(--sp-6)}
.event-hero-media{aspect-ratio:24/9;background:var(--surface-2);position:relative;overflow:hidden;border-radius:var(--r-md);margin-bottom:var(--sp-5)}
.event-hero-media img{width:100%;height:100%;object-fit:cover}
.event-title-row{display:flex;gap:var(--sp-5);align-items:flex-start;flex-wrap:wrap}
.event-title-main{flex:1;min-width:280px}
.event-title-main h1{margin-bottom:var(--sp-3)}
.event-flags{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:var(--sp-3)}
.event-keyfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-4);margin-top:var(--sp-5);padding-top:var(--sp-5);border-top:1px solid var(--line-soft)}
.keyfact .k{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);margin-bottom:5px}
.keyfact .v{font-size:.96rem;font-weight:600;color:var(--ink)}
.keyfact .v.mono{font-family:var(--font-mono);font-weight:600}

.event-layout{display:grid;grid-template-columns:1fr 340px;gap:var(--sp-6);align-items:start;padding:var(--sp-6) 0 var(--sp-8)}
@media(max-width:1000px){.event-layout{grid-template-columns:1fr}}
.event-rail{position:sticky;top:calc(var(--nav-h) + 16px);display:flex;flex-direction:column;gap:var(--sp-4)}
@media(max-width:1000px){.event-rail{position:static}}

.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.panel-head{padding:14px 16px;border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.panel-head h2,.panel-head h3{font-size:.98rem;margin:0}
.panel-body{padding:16px}
.panel-foot{padding:12px 16px;border-top:1px solid var(--line-soft);background:var(--surface);font-size:.8rem;color:var(--muted)}
.panel + .panel{margin-top:var(--sp-4)}

.register-panel{border-color:var(--blue-100);background:var(--blue-50)}
.register-panel .panel-body{display:flex;flex-direction:column;gap:10px}
.deadline-note{
  display:flex;gap:9px;align-items:flex-start;
  background:var(--amber-50);border:1px solid var(--amber-100);
  border-left:3px solid var(--amber-600);
  border-radius:var(--r-sm);padding:11px 13px;font-size:.82rem;color:var(--amber-700);
}
.deadline-note b{display:block;color:var(--amber-700)}

/* Content section, tier-gated blocks live inside */
.event-section{margin-bottom:var(--sp-6)}
.event-section > h2{font-size:1.32rem;letter-spacing:-.024em;margin-bottom:var(--sp-4);padding-bottom:10px;border-bottom:1px solid var(--line)}
.prose{font-size:1.02rem;line-height:1.68;color:var(--text)}
.prose p{margin-bottom:1.05em}
.prose h3{font-size:1.1rem;margin:1.6em 0 .5em}
.prose ul,.prose ol{margin-bottom:1.05em}
.prose a{text-decoration:underline}

/* The editorial verdict. Serif, so it reads as a different voice. */
.verdict{
  background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--amber-600);
  border-radius:var(--r-md);padding:var(--sp-5);margin:var(--sp-5) 0;
}
.verdict-head{display:flex;align-items:center;gap:10px;font-size:.72rem;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--amber-700);margin-bottom:var(--sp-3)}
.verdict-mark{width:16px;height:16px;border-radius:3px;background:var(--amber-600);flex:none;position:relative}
.verdict-mark::after{content:'';position:absolute;inset:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.verdict-body{font-family:var(--font-serif);font-size:1.08rem;line-height:1.66;color:var(--ink)}
.verdict-body p:last-child{margin-bottom:0}
.verdict-foot{display:flex;gap:12px;margin-top:var(--sp-4);padding-top:12px;border-top:1px solid var(--line-soft);font-family:var(--font-mono);font-size:.7rem;color:var(--muted)}

/* Agenda */
.agenda-day{margin-bottom:var(--sp-5)}
.agenda-day h3{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-700);padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:var(--sp-3)}
.agenda-row{display:grid;grid-template-columns:76px 1fr;gap:14px;padding:11px 0;border-bottom:1px solid var(--line-soft)}
.agenda-row:last-child{border-bottom:0}
.agenda-time{font-family:var(--font-mono);font-size:.8rem;color:var(--muted);font-weight:500}
.agenda-title{font-size:.94rem;font-weight:600;margin:0 0 3px;line-height:1.35}
.agenda-speaker{font-size:.82rem;color:var(--muted)}
.agenda-track{display:inline-block;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;background:var(--surface-2);color:var(--muted);padding:2px 7px;border-radius:var(--r-xs);margin-top:5px}

/* Speakers */
.speaker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:var(--sp-4)}
.speaker{text-align:center;text-decoration:none;color:inherit}
.speaker img,.speaker .ph{width:100%;aspect-ratio:1;border-radius:var(--r-md);object-fit:cover;background:var(--surface-2);margin-bottom:10px}
.speaker .ph{display:grid;place-items:center;font-family:var(--font-mono);font-size:1.4rem;color:var(--faint)}
.speaker b{display:block;font-size:.88rem;letter-spacing:-.012em;margin-bottom:2px}
.speaker span{display:block;font-size:.76rem;color:var(--muted);line-height:1.35}
.speaker:hover b{color:var(--blue-700)}

/* Exhibitors */
.exhibitor-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.exhibitor{border:1px solid var(--line);border-radius:var(--r-sm);padding:14px;display:grid;place-items:center;min-height:76px;background:var(--paper);text-decoration:none}
.exhibitor:hover{border-color:var(--blue-300);background:var(--blue-50)}
.exhibitor img{max-height:40px;width:auto;object-fit:contain}
.exhibitor span{font-size:.8rem;font-weight:600;color:var(--text);text-align:center;line-height:1.3}

/* Pricing table */
.pricing-table{width:100%;border-collapse:collapse;font-size:.88rem}
.pricing-table th{text-align:left;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:9px 10px;border-bottom:1px solid var(--line);background:var(--surface)}
.pricing-table td{padding:11px 10px;border-bottom:1px solid var(--line-soft)}
.pricing-table td.price{font-family:var(--font-mono);font-weight:600;color:var(--ink);text-align:right;white-space:nowrap}
.pricing-table tr.is-closing td{background:var(--amber-50)}

/* Countdown */
.countdown{display:flex;gap:8px}
.countdown .unit{flex:1;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 4px}
.countdown .unit b{display:block;font-family:var(--font-mono);font-size:1.3rem;font-weight:600;color:var(--blue-800);line-height:1}
.countdown .unit span{display:block;font-family:var(--font-mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:4px}

/* Edition timeline on the series hub */
.edition-timeline{display:flex;flex-direction:column}
.edition-row{display:grid;grid-template-columns:88px 1fr 140px;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line-soft);text-decoration:none;color:inherit}
.edition-row:last-child{border-bottom:0}
.edition-row:hover{background:var(--blue-50)}
.edition-year{font-family:var(--font-mono);font-size:.86rem;font-weight:600;color:var(--blue-700)}
.edition-name{font-size:.92rem;font-weight:600;margin:0 0 2px}
.edition-loc{font-size:.78rem;color:var(--muted)}
.edition-bar{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden;position:relative}
.edition-bar i{display:block;height:100%;background:var(--blue-500);border-radius:4px}
.edition-bar-label{font-family:var(--font-mono);font-size:.68rem;color:var(--muted);margin-top:4px;display:block;text-align:right}
@media(max-width:640px){.edition-row{grid-template-columns:64px 1fr}.edition-row .edition-bar-wrap{display:none}}

/* --------------------------------------------------------------------------
   11. Forms
   -------------------------------------------------------------------------- */
.field{margin-bottom:var(--sp-4)}
.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:6px;color:var(--ink)}
.field .hint{font-size:.78rem;color:var(--muted);margin-top:6px}
.field .hint.error{color:var(--stop)}
input[type=text],input[type=email],input[type=url],input[type=search],input[type=tel],
input[type=number],input[type=date],input[type=datetime-local],select,textarea{
  width:100%;padding:11px 13px;font-family:inherit;font-size:.92rem;color:var(--text);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 3px var(--blue-100)}
textarea{resize:vertical;min-height:110px}
select{appearance:none;padding-right:34px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 12 8'%3E%3Cpath fill='%235C6E8C' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}
@media(max-width:640px){.field-row{grid-template-columns:1fr}}

/* Consent. Two separate boxes, never pre-ticked, organizer named. */
.consent{display:flex;gap:11px;align-items:flex-start;padding:10px 0;font-size:.85rem;line-height:1.5}
.consent input[type=checkbox]{width:16px;height:16px;margin-top:3px;accent-color:var(--blue-600);flex:none}
.consent label{font-weight:400;margin:0;color:var(--text)}
.consent strong{font-weight:600}
.form-note{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;font-size:.8rem;color:var(--muted)}

.notice{padding:13px 16px;border-radius:var(--r-sm);font-size:.88rem;border:1px solid;margin-bottom:var(--sp-4)}
.notice-ok{background:var(--ok-bg);border-color:#BFE5D3;color:#0B5C3E}
.notice-warn{background:var(--warn-bg);border-color:var(--amber-100);color:var(--warn)}
.notice-stop{background:var(--stop-bg);border-color:#F2C6C1;color:var(--stop)}
.notice-info{background:var(--blue-50);border-color:var(--blue-100);color:var(--blue-800)}

/* --------------------------------------------------------------------------
   12. Ad zones — always labelled
   -------------------------------------------------------------------------- */
.ad-zone{margin:var(--sp-5) 0;text-align:center}
.ad-label{
  display:block;font-family:var(--font-mono);font-size:.58rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--faint);
  margin-bottom:6px;
}
.ad-content{display:flex;justify-content:center;align-items:center;overflow:hidden}
.ad-content img{max-width:100%;height:auto}
.ad-house{
  display:flex;flex-direction:column;gap:4px;justify-content:center;align-items:center;
  width:100%;min-height:90px;padding:var(--sp-4);
  background:var(--surface);border:1px dashed var(--line);border-radius:var(--r-sm);
  text-decoration:none;color:var(--muted);
}
.ad-house strong{color:var(--ink);font-size:.94rem}
.ad-house span{font-size:.82rem;color:var(--blue-600);font-weight:600}
.ad-billboard .ad-content{min-height:250px}
.ad-leaderboard .ad-content{min-height:90px}
.ad-mpu .ad-content{min-height:250px}
.ad-halfpage .ad-content{min-height:600px}

/* --------------------------------------------------------------------------
   13. Calendar
   -------------------------------------------------------------------------- */
.cal{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface);border-bottom:1px solid var(--line)}
.cal-dow span{padding:9px 11px;font-family:var(--font-mono);font-size:.64rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(116px,auto)}
.cal-day{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:7px;position:relative}
.cal-day:nth-child(7n){border-right:0}
.cal-day.is-out{background:var(--surface)}
.cal-day.is-today .cal-n b{background:var(--amber-600);color:#fff;width:22px;height:22px;border-radius:50%;display:grid;place-items:center}
.cal-n{font-family:var(--font-mono);font-size:.76rem;font-weight:600;margin-bottom:6px;display:flex;justify-content:space-between}
.cal-ev{display:block;font-size:.7rem;font-weight:600;padding:3px 6px;border-radius:var(--r-xs);margin-bottom:3px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid var(--blue-500);background:var(--blue-50);color:var(--blue-800)}
.cal-ev.is-gold{border-color:var(--tier-gold);background:var(--amber-50);color:var(--amber-700)}
.cal-ev.is-platinum{border-color:var(--tier-platinum);background:#E7ECF4;color:var(--tier-platinum)}
.cal-clash{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--amber-600)}
@media(max-width:760px){
  .cal-dow{display:none}
  .cal-grid{grid-template-columns:1fr;grid-auto-rows:auto}
  .cal-day{border-right:0}
  .cal-day.is-out{display:none}
}

/* --------------------------------------------------------------------------
   14. Pricing / tiers page
   -------------------------------------------------------------------------- */
.tier-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-3)}
@media(max-width:1100px){.tier-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.tier-grid{grid-template-columns:1fr}}
.tier-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-5);position:relative;display:flex;flex-direction:column}
.tier-card.is-recommended{border-color:var(--amber-600);box-shadow:0 0 0 1px var(--amber-600)}
.tier-flag{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--amber-600);color:#fff;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.11em;text-transform:uppercase;padding:3px 10px;border-radius:var(--r-xs);font-weight:600;white-space:nowrap}
.tier-card .band{height:4px;border-radius:2px;margin-bottom:var(--sp-4)}
.tier-card h3{font-size:1.1rem;margin-bottom:4px}
.tier-price{font-family:var(--font-mono);font-size:1.7rem;font-weight:600;color:var(--ink);line-height:1;margin:var(--sp-4) 0 4px}
.tier-price small{display:block;font-size:.74rem;font-weight:400;color:var(--muted);margin-top:6px;font-family:var(--font-ui)}
.tier-alloc{font-family:var(--font-mono);font-size:.86rem;color:var(--blue-700);font-weight:600;margin-bottom:var(--sp-4)}
.tier-card ul{list-style:none;padding:0;margin:0 0 var(--sp-5);font-size:.85rem}
.tier-card li{padding:6px 0;display:flex;gap:8px;align-items:flex-start;border-bottom:1px solid var(--line-soft)}
.tier-card li:last-child{border-bottom:0}
.ent-yes{color:var(--ok);font-weight:700}
.ent-no{color:var(--faint)}
.ent-unlimited{font-family:var(--font-mono);font-size:.8rem;color:var(--blue-700);font-weight:600}
.tier-card .btn{margin-top:auto}

.compare{width:100%;border-collapse:collapse;font-size:.86rem;background:var(--paper)}
.compare th{position:sticky;top:var(--nav-h);background:var(--surface);text-align:center;font-family:var(--font-mono);font-size:.64rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:11px 10px;border-bottom:1px solid var(--line);border-left:1px solid var(--line-soft);z-index:5}
.compare th:first-child{text-align:left;border-left:0;min-width:240px}
.compare td{padding:10px;border-bottom:1px solid var(--line-soft);border-left:1px solid var(--line-soft);text-align:center}
.compare td:first-child{text-align:left;border-left:0;font-weight:500}
.compare tbody tr:hover{background:var(--blue-50)}
.compare .grp td{background:var(--surface);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.compare-note{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--blue-600);border-radius:var(--r-sm);padding:12px 15px;font-size:.84rem;color:var(--text);margin:var(--sp-4) 0}

/* --------------------------------------------------------------------------
   15. Editorial / article
   -------------------------------------------------------------------------- */
.article-hero{padding:var(--sp-7) 0 var(--sp-5)}
.article-hero h1{font-size:var(--fs-3xl);max-width:22ch}
.article-stand{font-family:var(--font-serif);font-size:1.18rem;line-height:1.55;color:var(--muted);max-width:64ch;margin-bottom:var(--sp-4)}
.byline{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-family:var(--font-mono);font-size:.76rem;color:var(--muted);padding:var(--sp-3) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.byline .av{width:30px;height:30px;border-radius:50%;background:var(--blue-600);color:#fff;display:grid;place-items:center;font-size:.66rem;font-weight:600}
.article-body{font-family:var(--font-serif);font-size:1.12rem;line-height:1.7;color:var(--text)}
.article-body h2{font-family:var(--font-ui);font-size:1.42rem;margin:1.8em 0 .6em}
.article-body h3{font-family:var(--font-ui);font-size:1.14rem;margin:1.6em 0 .5em}
.article-body blockquote{border-left:3px solid var(--amber-600);margin:1.7em 0;padding:2px 0 2px 22px;font-size:1.26rem;font-weight:600;line-height:1.44;color:var(--ink);letter-spacing:-.016em}
.article-body figure{margin:1.8em 0}
.article-body figcaption{font-family:var(--font-ui);font-size:.8rem;color:var(--muted);margin-top:8px}
.article-body code{font-family:var(--font-mono);font-size:.88em;background:var(--surface-2);padding:2px 5px;border-radius:3px}
.sponsored-disclosure{
  background:var(--amber-50);border:1px solid var(--amber-100);border-left:3px solid var(--amber-600);
  border-radius:var(--r-sm);padding:13px 16px;font-size:.86rem;color:var(--amber-700);margin-bottom:var(--sp-5);
}
.sponsored-disclosure b{display:block;margin-bottom:3px}

/* --------------------------------------------------------------------------
   16. Newsletter
   -------------------------------------------------------------------------- */
.newsletter{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:var(--sp-7);position:relative;overflow:hidden}
.newsletter::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
.newsletter-in{position:relative;z-index:1;max-width:640px}
.newsletter h2{color:#fff;font-size:1.7rem;margin-bottom:10px}
.newsletter p{color:#A9BEDC;margin-bottom:var(--sp-5)}
.newsletter .segments{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:var(--sp-4)}
.seg-chip{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:600;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#CBD9EE;padding:6px 12px;border-radius:var(--r-full);cursor:pointer}
.seg-chip input{display:none}
.seg-chip:has(input:checked){background:var(--blue-600);border-color:var(--blue-500);color:#fff}
.newsletter-form{display:flex;gap:8px;flex-wrap:wrap}
.newsletter-form input[type=email]{flex:1;min-width:220px;background:rgba(255,255,255,.95);border-color:transparent}
.newsletter .consent label{color:#A9BEDC}
.newsletter .consent strong{color:#fff}

/* --------------------------------------------------------------------------
   17. Footer
   -------------------------------------------------------------------------- */
.site-footer{background:var(--ink);color:#8FA6C6;margin-top:var(--sp-8)}
.footer-top{padding:var(--sp-8) 0 var(--sp-6);display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:var(--sp-6)}
@media(max-width:1000px){.footer-top{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.footer-top{grid-template-columns:1fr}}
.footer-brand .brand-name{color:#fff}
.footer-brand p{font-size:.85rem;color:#7D93B5;max-width:34ch;margin-top:var(--sp-3)}
.footer-col h4{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#4E668C;margin-bottom:var(--sp-3)}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col li{margin-bottom:8px}
.footer-col a{font-size:.86rem;color:#A9BEDC;text-decoration:none}
.footer-col a:hover{color:#fff;text-decoration:underline}
.footer-bottom{border-top:1px solid rgba(255,255,255,.09);padding:var(--sp-4) 0;display:flex;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;font-size:.8rem;color:#5F7699}
.footer-bottom a{color:#7D93B5;text-decoration:none}
.footer-bottom a:hover{color:#fff}
.footer-eco{display:flex;gap:14px;flex-wrap:wrap}

/* --------------------------------------------------------------------------
   18. Pagination
   -------------------------------------------------------------------------- */
.pagination{display:flex;justify-content:center;gap:6px;margin-top:var(--sp-6);flex-wrap:wrap}
.pagination .page-numbers{
  min-width:38px;height:38px;display:grid;place-items:center;padding:0 12px;
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);
  font-family:var(--font-mono);font-size:.84rem;color:var(--text);text-decoration:none;
}
.pagination .page-numbers:hover{border-color:var(--blue-300);background:var(--blue-50)}
.pagination .page-numbers.current{background:var(--blue-700);border-color:var(--blue-700);color:#fff;font-weight:600}
.pagination .dots{border:0;background:none}

/* --------------------------------------------------------------------------
   19. Utilities
   -------------------------------------------------------------------------- */
.stack-1 > * + *{margin-top:var(--sp-2)}
.stack-2 > * + *{margin-top:var(--sp-3)}
.stack-3 > * + *{margin-top:var(--sp-4)}
.row{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap}
.row-between{display:flex;gap:var(--sp-3);align-items:center;justify-content:space-between;flex-wrap:wrap}
.text-muted{color:var(--muted)}
.text-center{text-align:center}
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.mb-3{margin-bottom:var(--sp-4)}.mb-4{margin-bottom:var(--sp-5)}.mb-5{margin-bottom:var(--sp-6)}
.hide{display:none!important}
@media(max-width:760px){.hide-sm{display:none!important}}
@media print{
  .site-header,.site-footer,.ad-zone,.filter-rail,.event-rail{display:none!important}
  body{background:#fff}
  .event-layout{grid-template-columns:1fr}
}
