/*
Theme Name: Cyber Hired 2026
Theme URI: https://cyberhired.org
Author: SCIPP International
Description: Purpose-built theme for the Cyber Hired 2026 Career Summit & Hiring Event, presented by SCIPP International and Military Hire. Provides Sessions and Speakers content types, a global Event Settings screen, and the Agenda, Speakers, Session Detail and Speaker Bio templates — all rendering from editable content rather than hardcoded pages.
Version: 1.9.1
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cyber-hired
*/

/* ============================================================================
   Brand tokens and layout below are carried over unchanged from the approved
   prototype. Hex values follow §8 of the Vendor Development Brief.
   ========================================================================== */
/* ============================================================
   CYBER HIRED 2026 — BRAND TOKENS
   Hex values per Section 8 of the Vendor Development Brief.
   ============================================================ */
:root{
  --navy:        #0B2447;  /* Primary text / dark backgrounds        */
  --teal:        #0EA5A6;  /* Primary action — buttons, links        */
  --plum:        #72356B;  /* Accent only — sampled from SCIPP logo  */
  --gray:        #F2F6FA;  /* Section backgrounds                    */
  --white:       #FFFFFF;
  --mh-navy:     #1D203F;  /* Military Hire blue — confirmed by MH brand owner */
  --mh-red:      #EF2C32;  /* Military Hire red — confirmed by MH brand owner */

  --teal-dark:   #0B8687;
  --teal-tint:   #DFF3F3;
  --plum-tint:   #F0E6EF;
  --red-tint:    #FDECEF;
  --navy-tint:   #E4EAF2;
  --ink:         #1F2A3C;
  --muted:       #5B6B80;
  --line:        #E3E9F0;

  --display: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --wrap: 1180px;        /* content sections                        */
  --banner-wrap: 1400px; /* header + banner: wider, and must match  */
  --radius: 10px;
  --shadow-sm: 0 1px 2px rgba(11,36,71,.06), 0 1px 3px rgba(11,36,71,.05);
  --shadow-md: 0 4px 16px rgba(11,36,71,.08);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--white); color:var(--ink);
  font-family:var(--body); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--teal);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4,h5{font-family:var(--display);color:var(--navy);margin:0;line-height:1.18;letter-spacing:-.015em}
p{margin:0 0 1em}
button{font-family:inherit}
:focus-visible{outline:3px solid var(--teal);outline-offset:2px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:12px 20px;z-index:200}
.skip:focus{left:8px;top:8px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;justify-content:center;
  font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:.01em;
  padding:12px 22px;border-radius:8px;border:1px solid transparent;cursor:pointer;
  transition:transform .12s ease, background .18s ease, box-shadow .18s ease;
  text-decoration:none!important;
}
.btn:hover{transform:translateY(-1px)}
.btn-teal{background:var(--teal);color:#fff}
.btn-teal:hover{background:var(--teal-dark)}
.btn-white{background:#fff;color:var(--navy);border-color:var(--line)}
.btn-white:hover{border-color:var(--teal);color:var(--teal)}
.btn-red-on-white{background:#fff;color:var(--mh-red);font-weight:700}
.btn-outline-navy{background:transparent;color:var(--navy);border-color:var(--line)}
.btn-block{width:100%}
.btn[aria-pressed="true"]{background:var(--navy);color:#fff}

/* ---------- Site header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;background:#fff;
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;gap:22px;height:66px;max-width:var(--banner-wrap);margin:0 auto;padding:0 24px}
/* Cyber Hired logo. The full SCIPP x Military Hire lockup lives in the
   banner section directly below (overlaid on the photo), so the nav does
   not repeat it. */
.hdr-logo{display:flex;align-items:center;flex:0 0 auto;text-decoration:none!important}
.hdr-logo img{height:42px;width:auto;display:block}
.site-nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.site-nav a{
  font-family:var(--display);font-weight:600;font-size:13.5px;color:var(--navy);
  padding:8px 11px;border-radius:6px;position:relative;text-decoration:none;
}
.site-nav a:hover{color:var(--teal)}
.site-nav a.active{color:var(--teal)}
.site-nav a.active::after{content:"";position:absolute;left:11px;right:11px;bottom:0;height:2px;background:var(--teal);border-radius:2px}
.nav-cta{margin-left:10px}
/* The generic `.site-nav a` colour (0,1,1) out-specifies `.btn-teal` (0,1,0),
   so the CTA needs its own rule or it inherits navy text — and teal-on-teal
   on hover, which is almost unreadable. */
.site-nav a.btn-teal{color:#fff}
.site-nav a.btn-teal:hover{color:var(--gray)}
.nav-toggle{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer}
.nav-toggle span{display:block;width:18px;height:2px;background:var(--navy);margin:3px 0}

/* ---------- Event banner (hero art) ---------- */
/* Swap the photographic composition in by setting a background-image on
   .banner-art and hiding .banner-art-fallback. Layout below is asset-free. */
.banner{position:relative;overflow:hidden;background:#fff;border-bottom:1px solid var(--line)}
/* Photo column now takes the larger share — was 1.05/.95 (copy slightly
   wider), tagline and wordmark widths checked against this at every
   breakpoint before the swap; see the width table in the commit notes. */
.banner-grid{display:grid;grid-template-columns:.9fr 1.1fr;align-items:stretch;max-width:var(--banner-wrap);margin:0 auto}
.banner-copy{padding:34px 24px;position:relative;z-index:2;min-width:0}
.banner-vr{width:1px;align-self:stretch;background:var(--line)}
/* Partner lockup, overlaid on the banner photograph's top-right corner
   (moved out of .banner-copy so the wordmark leads the column and the photo
   gets the freed-up width).
   Position is relative to .banner-art's OWN box, not the viewport: .banner-art
   already bleeds its border-box to the (capped) far edge via a negative
   margin, and a grid item's stretched width genuinely expands to absorb a
   negative margin — so a plain offset here lands in the same place a second
   viewport-width calculation would, with far less to go wrong. (An earlier
   version duplicated the viewport math here; simplified after it produced
   inconsistent results on very wide screens.) */
.banner-lockup{
  position:absolute;top:20px;right:22px;
  z-index:3;display:flex;align-items:center;gap:14px;flex-wrap:nowrap;
  padding:12px 18px;border-radius:10px;
  background:rgba(255,255,255,.85);backdrop-filter:blur(3px);
  box-shadow:0 4px 16px rgba(11,36,71,.14);
}
.wordmark{
  display:flex;align-items:flex-end;gap:6px;
  /* Rendered as <h1> on the homepage and <div> elsewhere. These are pinned so
     the tag swap cannot change the layout: the heading rule sets line-height
     1.18 while a div would inherit the body's 1.6, and because .wm-year is
     rotated, line-height controls its horizontal thickness. */
  font-family:var(--display);font-size:1rem;line-height:1.18;
  letter-spacing:-.015em;color:var(--navy);margin:0;
}
.wm-lines{line-height:.86}
.wm-cyber{font-family:var(--display);font-weight:800;font-size:clamp(46px,6.6vw,92px);color:var(--navy);letter-spacing:-.02em;display:block}
.wm-hired{
  font-family:var(--display);font-weight:800;font-size:clamp(46px,6.6vw,92px);letter-spacing:-.02em;display:block;
  background:linear-gradient(96deg,#3C5FA8 0%,#1E8FA8 42%,#0EA5A6 78%,#2BBFB0 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.wm-year{
  writing-mode:vertical-rl;font-family:var(--display);font-weight:700;
  font-size:clamp(20px,2.6vw,36px);color:var(--plum);letter-spacing:.02em;
  line-height:1;padding-bottom:6px;
}
.tagline{margin-top:12px;font-family:var(--display);font-weight:700;font-size:clamp(13px,1.5vw,21px);letter-spacing:.13em}
.tagline .t1{color:var(--plum)}
.tagline .t2{color:var(--teal)}
.tagline .t3{color:var(--mh-red)}
.tagline-rule{height:2px;background:var(--plum);max-width:min(560px,92%);margin:8px 0 16px;border-radius:2px}
.banner-sub{font-family:var(--display);font-weight:600;font-size:15px;color:var(--navy);line-height:1.4;margin-bottom:16px}
.banner-meta{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:18px}
.chip{display:inline-flex;align-items:center;gap:9px;font-family:var(--display);font-weight:600;font-size:13.5px;letter-spacing:.12em;color:var(--navy)}
.chip .ic{width:26px;height:26px;border:1.5px solid var(--teal);border-radius:5px;display:grid;place-items:center;color:var(--teal)}
.banner-meta .sep{width:1px;height:22px;background:var(--line)}
.banner-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px}
.btn-plum{
  background:linear-gradient(93deg,var(--plum),#8B4A85);color:#fff;
  font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:.1em;
  padding:13px 26px;border-radius:6px;border:0;cursor:pointer;text-decoration:none!important;
}
.btn-plum:hover{filter:brightness(1.08)}
.banner-url{font-family:var(--display);font-weight:600;font-size:14px;letter-spacing:.14em;color:var(--navy);border-bottom:2px solid var(--teal);padding-bottom:3px}
.banner-art{
  position:relative;min-width:0;min-height:320px;overflow:hidden;
  background-color:#EAF1F5;
  /* x=right keeps the skyline anchored to the bleed edge; y=60% biases the
     crop toward the people (who sit ~35-85% down the frame) rather than
     splitting the crop evenly and clipping their feet on wide screens. */
  background-size:cover;background-position:right 60%;background-repeat:no-repeat;
  /* The banner grid is capped at --banner-wrap and centred, so on any wider
     viewport the artwork would stop short and leave a white sliver at the
     right edge. This bleeds it out to the viewport edge. Resolves to 0
     below 1400px, and .banner's overflow:hidden absorbs the scrollbar
     width that 100vw includes. */
  margin-right:calc(-1 * max(0px, (100vw - var(--banner-wrap)) / 2));
}
/* Softens the join between the white copy column and the photograph, so the
   two columns read as one composition rather than two panels. */
.banner-art::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.72) 6%,rgba(255,255,255,0) 22%);
}
.banner-motto{
  /* Same reasoning as .banner-lockup above: a plain offset from .banner-art's
     own (already correctly bled) edge, not a second viewport calculation. */
  position:absolute;right:22px;
  bottom:20px;z-index:3;padding:10px 14px 10px 18px;
  border-left:2px solid var(--navy);
  font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.06em;line-height:1.55;
  background:rgba(255,255,255,.72);backdrop-filter:blur(2px);border-radius:0 6px 6px 0;
}
.banner-motto .m1{color:var(--navy)}
.banner-motto .m2{color:var(--teal)}
.banner-motto .m3{color:var(--plum)}
.motto-arrows{position:absolute;right:210px;bottom:34px;color:var(--teal);font-size:19px;letter-spacing:-3px;font-weight:700;z-index:3}

/* ---------- Page header bands ---------- */
.page-band{background:linear-gradient(100deg,var(--navy) 0%,#0F5E70 55%,var(--teal) 100%);color:#fff;padding:34px 0 40px}
.page-band h1{color:#fff;font-size:clamp(30px,4vw,40px);margin:8px 0 10px}
.page-band p{color:rgba(255,255,255,.9);max-width:620px;margin:0;font-size:15.5px}
.crumb{font-size:13px;color:rgba(255,255,255,.85)}
.crumb a{color:#fff;font-weight:600}
.crumb span{opacity:.6;padding:0 6px}
.band-meta{display:flex;flex-wrap:wrap;gap:26px;margin-top:20px;font-size:13px;color:rgba(255,255,255,.92)}
.band-meta i{font-style:normal;margin-right:7px;opacity:.85}

.backbar{border-bottom:1px solid var(--line);background:#fff}
.backbar a{display:inline-block;padding:14px 0;font-family:var(--display);font-weight:600;font-size:14px;color:var(--navy)}
.backbar a:hover{color:var(--teal)}

/* ---------- Sections ---------- */
.sec{padding:70px 0}
.sec-gray{background:var(--gray)}
.sec-navy{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.sec-navy::after{
  content:"";position:absolute;top:-140px;right:-100px;width:460px;height:460px;border-radius:50%;
  background:radial-gradient(circle,rgba(114,53,107,.55),transparent 68%);pointer-events:none;
}
.sec-navy h2,.sec-navy h3{color:#fff}
.eyebrow{font-family:var(--display);font-weight:700;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--plum);margin-bottom:14px}
.eyebrow.teal{color:var(--teal)}
.eyebrow.red{color:var(--mh-red)}
.eyebrow.light{color:rgba(255,255,255,.65)}
h2.sec-title{
  font-size:clamp(26px,3.4vw,36px);margin-bottom:14px;
  /* 660px broke "One pathway, four stops to a career." onto two lines. 800px
     holds the longest heading on one line at the 36px maximum; shorter ones
     are unaffected, and text-wrap:balance evens any that do wrap. */
  max-width:800px;text-wrap:balance;
}
.sec-lede{color:var(--muted);max-width:560px;font-size:15.5px}
.sec-navy .sec-lede{color:rgba(255,255,255,.75)}

/* ---------- Stat strip ---------- */
.statband{border-bottom:1px solid var(--line)}
.statstrip{display:grid;grid-template-columns:repeat(4,1fr)}
.statstrip .s{text-align:center;padding:26px 12px;border-right:1px solid var(--line)}
.statstrip .s:last-child{border-right:0}
.statstrip .n{font-family:var(--display);font-weight:800;font-size:30px;color:var(--teal);line-height:1.1;font-variant-numeric:tabular-nums}
.statstrip .l{font-size:12.5px;color:var(--muted);margin-top:4px}

/* ---------- Experience four stops ---------- */
.stops{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;margin-top:44px}
.stop-num{
  width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;
  font-family:var(--display);font-weight:800;font-size:17px;margin-bottom:20px;
}
.stop h3{font-size:19px;margin-bottom:8px}
.stop p{color:var(--muted);font-size:14.5px}
.stop ul{list-style:none;margin:18px 0 0;padding:0}
.stop li{font-family:var(--display);font-weight:600;font-size:13.5px;color:var(--navy);padding:11px 0;border-bottom:1px solid var(--line)}
.stop li:first-child{border-top:1px solid var(--line)}

/* ---------- Day summary cards (homepage) ---------- */
.daygrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:34px}
.daycard{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:26px;position:relative;z-index:2}
.daypill{display:inline-block;font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.12em;padding:5px 11px;border-radius:5px;margin-bottom:14px}
.daypill.d1{background:rgba(14,165,166,.2);color:#7FE3E1}
.daypill.d2{background:rgba(114,53,107,.4);color:#DDB4D6}
.daycard h3{font-size:22px}
.daycard .time{color:rgba(255,255,255,.6);font-size:13px;margin:5px 0 18px;font-family:var(--display);font-weight:600}
.daycard .row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid rgba(255,255,255,.1);font-size:13.5px}
.daycard .row .t{color:rgba(255,255,255,.55);font-variant-numeric:tabular-nums}
.daycard .row .n{color:rgba(255,255,255,.92);text-align:right}
.daycard .more{display:inline-block;margin-top:18px;color:#3FD0CB;font-family:var(--display);font-weight:600;font-size:13.5px}

/* ---------- Speaker cards ---------- */
.spk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:34px}
.spk-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .18s ease,transform .18s ease;text-decoration:none!important}
.spk-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.spk-photo{aspect-ratio:1/.94;background:linear-gradient(160deg,#EEF2F7,#E3E9F0);display:grid;place-items:center;position:relative}
.spk-photo .ph{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.2em;color:#9AA9BC}
.badge{
  position:absolute;top:0;left:0;font-family:var(--display);font-weight:700;font-size:10.5px;
  letter-spacing:.13em;padding:6px 11px;color:#fff;border-bottom-right-radius:6px;
}
.badge.keynote{background:var(--teal)}
.badge.panel{background:var(--plum)}
.badge.employer{background:var(--mh-red)}
.badge.faculty{background:var(--navy)}
.spk-body{padding:16px 18px 18px}
.spk-body .name{font-family:var(--display);font-weight:700;font-size:16px;color:var(--navy);margin-bottom:5px}
.spk-body .role{font-size:13px;color:var(--muted);line-height:1.45}
.spk-body .view{display:inline-block;margin-top:12px;font-family:var(--display);font-weight:600;font-size:13px;color:var(--teal)}
.cat-label{font-family:var(--display);font-weight:700;font-size:10.5px;letter-spacing:.14em;margin-bottom:8px}
.cat-keynote{color:var(--teal)}.cat-panel{color:var(--plum)}.cat-employer{color:var(--mh-red)}.cat-faculty{color:var(--navy)}
.link-right{display:block;text-align:right;margin-top:26px;font-family:var(--display);font-weight:600;font-size:13.5px}

/* ---------- Partnership ---------- */
.partner{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.pcards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}
.pcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.pcard h4{font-size:14px;margin-bottom:12px}
.pcard.mh h4{color:var(--mh-red)}
.pcard ul{list-style:none;margin:0;padding:0}
.pcard li{font-size:13px;color:var(--muted);padding:5px 0;display:flex;gap:9px}
.pcard li::before{content:"—";color:var(--teal)}
.pcard.mh li::before{color:var(--mh-red)}
.pstats{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pstat{border-radius:var(--radius);padding:26px 22px;border:1px solid var(--line);background:#fff}
.pstat.fill{background:var(--navy);border-color:var(--navy);color:#fff}
.pstat .n{font-family:var(--display);font-weight:800;font-size:31px;color:var(--navy);line-height:1;font-variant-numeric:tabular-nums}
.pstat.fill .n{color:#fff}
.pstat .l{font-size:12.5px;color:var(--muted);margin-top:7px}
.pstat.fill .l{color:rgba(255,255,255,.72)}

/* ---------- Employer logo wall ---------- */
.logowall{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:30px}
.logobox{aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius);display:grid;place-items:center;background:#fff;font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.16em;color:#A6B3C4}

/* ---------- Agenda ---------- */
.tracker{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:34px 0;border-bottom:1px solid var(--line)}
.trk{display:flex;gap:16px}
.trk .num{width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:var(--display);font-weight:700;font-size:15px}
.trk .d{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.1em;color:var(--plum);margin-bottom:3px}
.trk h4{font-size:16px;margin-bottom:3px}
.trk p{font-size:13.5px;color:var(--muted);margin:0}

.agenda-layout{display:grid;grid-template-columns:1fr 330px;gap:32px;padding:44px 0 70px;align-items:start}
.day{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:30px;background:#fff}
.day-head{padding:18px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;color:#fff}
.day-head.d1{background:var(--teal)}
.day-head.d2{background:var(--plum)}
.day-head .e{font-family:var(--display);font-weight:700;font-size:10.5px;letter-spacing:.16em;opacity:.85}
.day-head h3{color:#fff;font-size:21px;margin-top:3px}
.day-head .t{font-family:var(--display);font-weight:700;font-size:13.5px;white-space:nowrap}
.srow{display:grid;grid-template-columns:104px 1fr;gap:8px;padding:18px 24px;border-top:1px solid var(--line);text-decoration:none!important;transition:background .15s ease}
.day > .srow:first-of-type{border-top:0}
.srow:hover{background:#FAFCFE}
.srow .st{font-family:var(--display);font-weight:700;font-size:13.5px;color:var(--navy);font-variant-numeric:tabular-nums;padding-top:1px}
.srow h4{font-size:16px;margin-bottom:4px;transition:color .15s ease}
.srow:hover h4{color:var(--teal)}
.srow p{font-size:13.5px;color:var(--muted);margin:0}
.tag{display:inline-block;font-family:var(--display);font-weight:700;font-size:10px;letter-spacing:.11em;padding:4px 9px;border-radius:4px;margin-top:9px}
.tag.keynote{background:var(--teal-tint);color:var(--teal-dark)}
.tag.panel{background:var(--plum-tint);color:var(--plum)}
.tag.workshop{background:var(--navy-tint);color:var(--navy)}
.tag.break{background:#EEF1F5;color:var(--muted)}
.callout{margin:6px 24px 18px;background:var(--plum-tint);border-left:3px solid var(--plum);border-radius:0 8px 8px 0;padding:14px 18px}
.callout h5{font-family:var(--display);font-size:13px;color:var(--plum);margin-bottom:5px}
.callout p{font-size:13px;color:var(--navy);margin:0;opacity:.85}
.fair-strip{border-top:2px solid var(--mh-red);background:var(--red-tint);padding:16px 24px}
.fair-strip .e{font-family:var(--display);font-weight:700;font-size:10.5px;letter-spacing:.1em;color:var(--mh-red);margin-bottom:6px}
.fair-strip p{font-size:13.5px;color:var(--navy);margin:0 0 8px}
.fair-strip a{font-family:var(--display);font-weight:700;font-size:13.5px;color:var(--mh-red)}

/* ---------- Sidebar cards ---------- */
.side{position:sticky;top:88px;display:flex;flex-direction:column;gap:18px}
.card{border:1px solid var(--line);border-radius:12px;padding:22px;background:#fff}
.card-navy{background:var(--navy);border-color:var(--navy);color:#fff}
.card-red{background:var(--mh-red);border-color:var(--mh-red);color:#fff}
.card .k{font-family:var(--display);font-weight:700;font-size:10.5px;letter-spacing:.15em;margin-bottom:10px;color:var(--plum)}
.card-navy .k,.card-red .k{color:rgba(255,255,255,.72)}
.card h3{font-size:19px;margin-bottom:10px}
.card-navy h3,.card-red h3{color:#fff}
.card p{font-size:13.5px;margin-bottom:16px}
.card-navy p,.card-red p{color:rgba(255,255,255,.9)}
.kv{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid var(--line);font-size:13.5px}
.kv:first-of-type{border-top:0}
.kv .k2{color:var(--muted)}
.kv .v{font-family:var(--display);font-weight:700;color:var(--navy);text-align:right}

/* ---------- Session detail ---------- */
.detail-band{background:var(--gray);padding:36px 0 34px;border-bottom:1px solid var(--line)}
.detail-band h1{font-size:clamp(27px,3.6vw,38px);max-width:760px;margin:14px 0 12px}
.dmeta{display:flex;flex-wrap:wrap;gap:22px;font-size:13.5px;color:var(--muted);margin-bottom:20px}
.dmeta i{font-style:normal;margin-right:7px}
.detail-layout{display:grid;grid-template-columns:1fr 360px;gap:40px;padding:52px 0 70px;align-items:start}
.detail-layout h2{font-size:22px;margin-bottom:14px}
.detail-layout h2+p,.prose p{color:var(--ink);font-size:15.5px}
.learn{list-style:none;margin:0 0 34px;padding:0}
.learn li{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:15px}
.learn li::before{content:"✓";color:var(--teal);font-weight:700}
.spk-inline{border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:0 10px 10px 0;padding:18px 20px;display:flex;gap:16px;align-items:center;text-decoration:none!important}
.spk-inline:hover{background:#FAFCFE}
.avatar{width:58px;height:58px;flex:0 0 58px;border-radius:50%;background:linear-gradient(160deg,#EEF2F7,#E3E9F0);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:9px;letter-spacing:.14em;color:#9AA9BC}
.spk-inline .name{font-family:var(--display);font-weight:700;font-size:16.5px;color:var(--navy)}
.spk-inline .role{font-size:13.5px;color:var(--muted);margin:2px 0 4px}
.spk-inline .go{font-family:var(--display);font-weight:600;font-size:13px;color:var(--teal)}
.mini{display:flex;gap:13px;align-items:flex-start;padding:13px 0;border-top:1px solid var(--line);text-decoration:none!important}
.mini:first-of-type{border-top:0}
.mini:hover .mt{color:var(--teal)}
.mini .ico{width:30px;height:30px;flex:0 0 30px;border-radius:7px;background:var(--gray);display:grid;place-items:center;font-size:14px}
.mini .mt{font-family:var(--display);font-weight:700;font-size:14px;color:var(--navy);line-height:1.3}
.mini .ms{font-size:12.5px;color:var(--muted);margin-top:3px}

/* ---------- Speaker bio ---------- */
.bio-band{background:var(--gray);padding:42px 0;border-bottom:1px solid var(--line)}
.bio-head{display:flex;gap:34px;align-items:center}
.bio-photo{width:132px;height:132px;flex:0 0 132px;border-radius:50%;background:linear-gradient(160deg,#F4F7FA,#E6ECF3);border:1px solid var(--line);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.16em;color:#9AA9BC}
.bio-band h1{font-size:clamp(28px,3.8vw,40px);margin:10px 0 4px}
.bio-band .role{font-family:var(--display);font-weight:600;font-size:16px;color:var(--navy);opacity:.8;margin-bottom:18px}
.pill{display:inline-block;font-family:var(--display);font-weight:700;font-size:10.5px;letter-spacing:.13em;padding:5px 11px;border-radius:5px}
.pill.keynote{background:var(--teal-tint);color:var(--teal-dark)}
.pill.panel{background:var(--plum-tint);color:var(--plum)}
.pill.employer{background:var(--red-tint);color:var(--mh-red)}
.pill.faculty{background:var(--navy-tint);color:var(--navy)}
.pill.workshop{background:var(--navy-tint);color:var(--navy)}
.pill.break{background:#EEF1F5;color:var(--muted)}
.sess-item{display:flex;justify-content:space-between;align-items:center;gap:18px;border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:12px;text-decoration:none!important}
.sess-item:hover{border-color:var(--teal);background:#FAFCFE}
.sess-item .mt{font-family:var(--display);font-weight:700;font-size:15px;color:var(--navy)}
.sess-item .ms{font-size:12.5px;color:var(--muted);margin-top:3px}
.sess-item .go{font-family:var(--display);font-weight:600;font-size:13px;color:var(--teal);white-space:nowrap}
.social{display:flex;gap:10px}
.social a{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--navy);font-family:var(--display);font-weight:700;font-size:13px}
.social a:hover{border-color:var(--teal);color:var(--teal);text-decoration:none}
.other{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line);text-decoration:none!important}
.other:first-of-type{border-top:0}
.other .av{width:34px;height:34px;border-radius:50%;background:#EDF1F6;flex:0 0 34px}
.other .n{font-family:var(--display);font-weight:700;font-size:14px;color:var(--navy)}
.other:hover .n{color:var(--teal)}
.other .c{font-size:12.5px;color:var(--muted)}

/* ---------- Filters ---------- */
.filterbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.fpill{font-family:var(--display);font-weight:600;font-size:13.5px;padding:9px 18px;border-radius:22px;border:1px solid var(--line);background:#fff;color:var(--navy);cursor:pointer}
.fpill:hover{border-color:var(--teal)}
.fpill.on{background:var(--teal);border-color:var(--teal);color:#fff}
.search{margin-left:auto;min-width:250px;padding:10px 16px;border:1px solid var(--line);border-radius:8px;font-family:var(--body);font-size:14px;color:var(--navy)}
.empty{padding:60px 0;text-align:center;color:var(--muted)}
.empty strong{display:block;font-family:var(--display);color:var(--navy);font-size:17px;margin-bottom:6px}

/* ---------- Resources cards ---------- */
.res-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:0}
.res-card{display:block;text-decoration:none!important;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}
a.res-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--teal)}
.res-card h3{font-size:17px;margin-bottom:8px}
a.res-card:hover h3{color:var(--teal)}
.res-card p{color:var(--muted);margin:0;font-size:14.5px}
.res-card .view{display:inline-block;margin-top:14px;font-family:var(--display);font-weight:600;font-size:13px;color:var(--teal)}
@media (max-width:640px){ .res-grid{grid-template-columns:1fr} }

/* ---------- Presented by ----------
   Sits between the teal CTA and the navy footer. White background so the
   logos, which are dark navy and red on transparency, read cleanly. */
.presented{background:#fff;padding:44px 0 48px;text-align:center}
.presented-label{
  font-family:var(--display);font-weight:600;font-size:15px;
  color:var(--navy);letter-spacing:.01em;margin:0 0 28px;
}
.presented-logos{display:flex;align-items:center;justify-content:center;gap:38px;flex-wrap:wrap}
/* Driven by the same Event Settings heights as the banner lockup, scaled up
   slightly since these stand alone rather than sitting above a wordmark. */
.pres-logo{
  height:calc(var(--logo-h,42px) * 1.3);width:auto;max-width:min(320px,42vw);
  object-fit:contain;display:block;flex-shrink:0;
}
.presented-vr{width:1px;height:46px;background:var(--line);flex:0 0 auto}
@media (max-width:520px){
  .presented{padding:34px 0 36px}
  .presented-label{font-size:13.5px;margin-bottom:22px}
  .presented-logos{gap:22px}
  .pres-logo{height:calc(var(--logo-h,42px) * 1.05);max-width:38vw}
  .presented-vr{height:34px}
}

/* ---------- CTA + footer ---------- */
.cta{background:linear-gradient(100deg,var(--navy) 0%,#0D5A6E 58%,var(--teal) 100%);color:#fff;padding:52px 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.cta h2{
  color:#fff;font-size:clamp(24px,3vw,32px);
  /* 460px forced this heading onto three lines. 640px lets it sit on two,
     and text-wrap:balance evens the line lengths where supported. */
  max-width:640px;text-wrap:balance;
}
.cta p{color:rgba(255,255,255,.85);margin:10px 0 0;font-size:14.5px}
footer{background:var(--navy);color:rgba(255,255,255,.6);padding:52px 0 0}
.fgrid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:32px;padding-bottom:40px}
.fbrand h4{color:#fff;font-family:var(--display);font-size:16px;letter-spacing:.02em;margin-bottom:10px}
.fbrand p{font-size:13px;line-height:1.65;margin:0}
footer h5{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.16em;color:#fff;margin-bottom:14px}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:9px;color:rgba(255,255,255,.62);font-size:13.5px}
/* Every footer column is a list of links except Days, which holds plain dates
   in a <span> since a date isn't a link. Styling .li directly (rather than
   only "footer li a") keeps that column's text the same size and colour as
   the rest instead of falling back to the body's default size. */
footer li a{color:inherit;font-size:inherit}
footer li a:hover{color:var(--teal)}
/* Footer social icons — inherit the footer's muted colour, brighten on hover */
.fsocial{display:flex;gap:12px;padding:0 0 20px}
.fsocial a{
  width:34px;height:34px;border-radius:50%;
  display:grid;place-items:center;
  color:rgba(255,255,255,.62);
  border:1px solid rgba(255,255,255,.18);
  transition:color .18s ease,border-color .18s ease,background .18s ease;
}
.fsocial a:hover{color:#fff;border-color:var(--teal);background:rgba(14,165,166,.18)}
.fsocial svg{display:block}

.fbot{border-top:1px solid rgba(255,255,255,.12);padding:18px 0;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12.5px}
.fbot a{color:rgba(255,255,255,.62)}

/* ---------- Toast ---------- */
.toast{
  position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(12px);
  background:var(--navy);color:#fff;padding:12px 22px;border-radius:8px;font-size:14px;
  font-family:var(--display);font-weight:600;opacity:0;pointer-events:none;transition:all .25s ease;z-index:300;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- Responsive ---------- */
@media (max-width:1040px){
  .site-nav{
    display:none;position:absolute;top:66px;left:0;right:0;background:#fff;z-index:99;
    border-bottom:1px solid var(--line);box-shadow:0 8px 20px rgba(11,36,71,.10);
    flex-direction:column;align-items:stretch;padding:10px 16px 16px;gap:2px;
  }
  .site-nav.open{display:flex}
  .site-nav a{padding:12px 8px}
  .site-nav a.active::after{display:none}
  .nav-toggle{display:block}
  .nav-cta{margin:8px 0 0}
  .banner-grid{grid-template-columns:1fr}
  .banner-copy{padding:28px 24px}
  .banner-art{min-height:210px}
  .agenda-layout,.detail-layout,.partner{grid-template-columns:1fr}
  .side{position:static}
  .stops,.spk-grid{grid-template-columns:1fr 1fr}
  .logowall{grid-template-columns:repeat(3,1fr)}
  .tracker{grid-template-columns:1fr;gap:20px}
  .fgrid{grid-template-columns:1fr 1fr;gap:26px}
}
@media (max-width:640px){
  .sec{padding:48px 0}
  .statstrip{grid-template-columns:1fr 1fr}
  .statstrip .s:nth-child(2){border-right:0}
  .statstrip .s:nth-child(1),.statstrip .s:nth-child(2){border-bottom:1px solid var(--line)}
  .stops,.spk-grid,.daygrid,.pstats,.pcards{grid-template-columns:1fr}
  .srow{grid-template-columns:1fr;gap:4px}
  .bio-head{flex-direction:column;align-items:flex-start;gap:20px}
  .fgrid{grid-template-columns:1fr}
  .search{margin-left:0;width:100%}
  .banner-motto{position:static;margin:20px 22px;background:none;backdrop-filter:none;padding:0 0 0 14px}
  .motto-arrows{display:none}
  .banner-art{min-height:200px;padding-top:0;display:flex;align-items:flex-end}
  .banner-art::before{background:linear-gradient(180deg,rgba(255,255,255,.85) 0%,rgba(255,255,255,0) 30%)}
}
/* Overlay card scales down rather than overflow the short mobile photo band.
   .bl-logo's own height already shrinks via its rules further down; this
   just tightens the card around it. */
@media (max-width:760px){
  .banner-lockup{top:14px;gap:10px;padding:9px 13px;border-radius:8px}
}
@media (max-width:520px){
  .header-inner{gap:14px}
  .hdr-logo img{height:34px}
  .banner-lockup{top:10px;gap:8px;padding:7px 10px;border-radius:7px}
  .banner-vr{display:none}
  .banner-actions{gap:14px}
  .banner-url{font-size:12px;letter-spacing:.09em}
  .banner-meta{gap:14px}
  .chip{font-size:12px;letter-spacing:.08em}
  .banner-sub{font-size:14px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .btn:hover,.spk-card:hover{transform:none}
}

/* ---------- WordPress integration ---------- */
.admin-bar .site-header{top:32px}
@media screen and (max-width:782px){.admin-bar .site-header{top:46px}}
/* Below 600px WordPress switches its admin bar from fixed to absolute, so the
   header must stop being sticky or it overlaps the bar on scroll. It has to
   stay POSITIONED though: the mobile nav is absolutely placed against it, and
   a static header would (a) give the nav no containing block, dropping it onto
   the logo, and (b) discard z-index, letting .banner-copy paint over the menu.
   position:relative satisfies both. */
@media screen and (max-width:600px){
  /* top:46px above offsets a STICKY header for the admin bar. Once the header
     becomes relative it stays in normal flow, so that same offset would shove
     it 46px down over the banner instead. Reset it. */
  .admin-bar .site-header{position:relative;top:auto;z-index:100}
}
.admin-bar .side{top:120px}

/* Core alignment and caption classes for the block editor on standard pages */
.alignleft{float:left;margin:0 1.5em 1em 0}
.alignright{float:right;margin:0 0 1em 1.5em}
.aligncenter{margin-left:auto;margin-right:auto}
.wp-caption{max-width:100%}
.wp-caption-text,.wp-block-image figcaption{font-size:13px;color:var(--muted);text-align:center}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}
.entry-content{padding:52px 0 70px}
.entry-content h2{font-size:24px;margin:28px 0 12px}
.entry-content h3{font-size:19px;margin:24px 0 10px}
.entry-content ul,.entry-content ol{padding-left:22px;margin-bottom:1em}
.entry-content li{margin-bottom:6px}
.entry-content img{height:auto;border-radius:var(--radius)}
.entry-content blockquote{border-left:3px solid var(--teal);margin:0 0 1em;padding:4px 0 4px 20px;color:var(--muted)}

/* Speaker filtering is applied by toggling this class on the card */
.spk-card.is-hidden{display:none}

/* Real headshots replace the PHOTO placeholder */
.spk-photo img{width:100%;height:100%;object-fit:cover;display:block}
.avatar img,.bio-photo img,.other .av img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.bio-photo{overflow:hidden}
.avatar{overflow:hidden}
.other .av{overflow:hidden}

/* ---------- Employers page: gallery images render as the logo wall ---------- */
.ch-employers .entry-content{padding:0}
.ch-employers .wp-block-gallery,
.ch-employers .blocks-gallery-grid{
  display:grid!important;grid-template-columns:repeat(6,1fr);gap:14px;margin:30px 0 0;padding:0;list-style:none;
}
.ch-employers .wp-block-gallery figure,
.ch-employers .wp-block-image{
  margin:0;border:1px solid var(--line);border-radius:var(--radius);background:#fff;
  aspect-ratio:16/9;display:grid;place-items:center;padding:14px;
}
.ch-employers .wp-block-gallery img,
.ch-employers .wp-block-image img{
  width:auto;max-width:100%;max-height:100%;height:auto;object-fit:contain;border-radius:0;
}
.ch-employers figcaption{display:none}
@media (max-width:1040px){
  .ch-employers .wp-block-gallery,
  .ch-employers .blocks-gallery-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:640px){
  .ch-employers .wp-block-gallery,
  .ch-employers .blocks-gallery-grid{grid-template-columns:repeat(2,1fr)}
}

/* ---------- Uploaded partner logos in the banner lockup ----------
   Sized by height so logos of different aspect ratios sit on a shared
   baseline, the way a printed lockup would. */
.bl-logo{
  height:var(--logo-h,56px);width:auto;max-width:min(420px,100%);
  object-fit:contain;display:block;flex-shrink:0;
}
@media (max-width:760px){ .bl-logo{height:calc(var(--logo-h,56px) * .8);max-width:300px} }
@media (max-width:520px){ .bl-logo{height:calc(var(--logo-h,56px) * .64);max-width:220px} }

/* ============================================================================
   REGISTER / ABOUT PAGE  (template-register.php)
   One page serving both purposes. Generic Register buttons sitewide land here;
   the two buttons on the page go to the specific Zoom / Military Hire links.
   ========================================================================== */

/* --- Hero ---------------------------------------------------------------- */
.reg-hero{
  background:linear-gradient(160deg,#F7FAFC 0%,#EEF4F8 45%,#F2EDF5 100%);
  padding:30px 0 44px;border-bottom:1px solid var(--line);
}
.crumb-dark{color:var(--muted);font-size:13px;margin-bottom:18px}
.crumb-dark a{color:var(--navy);font-weight:600}
.crumb-dark span{opacity:.5;padding:0 6px}
.reg-eyebrow{
  font-family:var(--display);font-weight:700;color:var(--navy);
  font-size:clamp(22px,2.6vw,30px);margin:0 0 2px;letter-spacing:-.01em;
}
.reg-wordmark{
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  font-family:var(--display);font-weight:800;line-height:1;margin:0 0 10px;
  font-size:clamp(38px,5.6vw,64px);letter-spacing:-.02em;
}
.reg-wordmark .rw-cyber{color:var(--navy)}
.reg-wordmark .rw-hired{color:var(--teal)}
.reg-wordmark .rw-year{
  font-size:.42em;color:var(--plum);font-weight:700;letter-spacing:.02em;
  align-self:flex-start;padding-top:.15em;
}
.reg-hero .tagline{margin:0 0 18px}
.reg-lede{max-width:620px;color:var(--ink);font-size:15.5px;margin:0}

/* --- The two registration cards ------------------------------------------ */
.reg-cards{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:-34px 0 0;position:relative;z-index:2}
.reg-card{
  background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;
  box-shadow:var(--shadow-md);display:flex;flex-direction:column;
}
.reg-card-head{
  padding:12px 22px;color:#fff;font-family:var(--display);font-weight:700;
  font-size:12px;letter-spacing:.12em;text-align:center;
}
.reg-card-head.d1{background:var(--teal)}
.reg-card-head.d2{background:var(--plum)}
.reg-card-body{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1}
.reg-card-title{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.reg-card-icon{width:52px;height:52px;flex:0 0 52px}
.reg-card-title h2{font-size:21px;line-height:1.2;margin:0}
.reg-rule{display:block;width:46px;height:3px;border-radius:2px;margin:0 0 16px}
.reg-rule.d1{background:var(--teal)}
.reg-rule.d2{background:var(--plum)}
.reg-rule.centered{margin:0 auto 28px}
.reg-card-body p{color:var(--muted);font-size:14.5px;margin:0 0 22px;flex:1}

/* --- "Attending both days" note ------------------------------------------ */
.reg-note{
  display:flex;gap:14px;align-items:flex-start;
  background:var(--gray);border:1px solid var(--line);border-radius:10px;
  padding:16px 20px;margin:26px 0 0;
}
.reg-note-icon{font-size:18px;line-height:1.4;flex:0 0 auto}
.reg-note p{margin:0;font-size:13.5px;color:var(--navy);line-height:1.6}

/* --- What is Cyber Hired + pull quote ------------------------------------ */
.reg-what{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:56px 0 8px;align-items:start}
.reg-h2{font-size:clamp(21px,2.4vw,26px);margin:0 0 12px}
.reg-h2.centered{text-align:center;margin-bottom:12px}
.reg-what p{color:var(--muted);font-size:14.5px;line-height:1.7;margin:0}
.reg-quote{
  margin:0;padding:0 0 0 30px;border-left:3px solid var(--teal);
  font-family:var(--display);font-weight:700;color:var(--navy);
  font-size:clamp(17px,2vw,21px);line-height:1.45;
}

/* --- Our Purpose --------------------------------------------------------- */
.reg-purpose-sec{padding:56px 0}
.reg-purpose{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;text-align:center}
.reg-purpose-item img{width:74px;height:74px;margin:0 auto 16px;display:block}
.reg-purpose-item h3{font-size:17px;margin:0 0 8px}
.reg-purpose-item p{color:var(--muted);font-size:13.5px;line-height:1.6;margin:0}

/* --- Who Cyber Hired Helps ----------------------------------------------- */
.reg-helps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.reg-helps-item{
  display:flex;gap:16px;align-items:flex-start;
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;
}
.reg-helps-item img{width:44px;height:44px;flex:0 0 44px}
.reg-helps-item h3{font-size:15.5px;margin:0 0 6px}
.reg-helps-item p{color:var(--muted);font-size:13.5px;line-height:1.6;margin:0}
.reg-welcomes{display:flex;gap:14px;align-items:center;margin-top:26px;padding:0 4px}
.reg-welcomes img{width:34px;height:34px;flex:0 0 34px}
.reg-welcomes p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.6}

/* --- Why It Matters ------------------------------------------------------ */
.reg-why{
  display:flex;gap:26px;align-items:flex-start;
  background:var(--teal-tint);border-radius:12px;padding:30px 34px;margin:0 0 46px;
}
.reg-why-icon{width:64px;height:64px;flex:0 0 64px}
.reg-why h2{font-size:21px;margin:0 0 8px}
.reg-why-lead{font-weight:700;color:var(--navy);margin:0 0 10px;font-size:15px;line-height:1.5}
.reg-why p{color:var(--ink);font-size:14px;line-height:1.7;margin:0}

/* --- Final CTA ----------------------------------------------------------- */
.reg-final{
  display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;
  background:linear-gradient(100deg,var(--navy) 0%,#3B2E63 50%,var(--mh-red) 100%);
  border-radius:12px;padding:28px 34px;margin:0 0 60px;
}
.reg-final-copy{display:flex;gap:18px;align-items:center}
.reg-final-copy img{width:56px;height:56px;flex:0 0 56px}
.reg-final h2{color:#fff;font-size:21px;margin:0 0 4px}
.reg-final p{color:rgba(255,255,255,.85);margin:0;font-size:14px}
.reg-final-actions{display:flex;gap:12px;flex-wrap:wrap}

/* Solid plum button — the teal/white ones already exist */
.btn-plum-solid{background:var(--plum);color:#fff}
.btn-plum-solid:hover{background:#5C2B56;color:#fff}

/* --- Responsive ---------------------------------------------------------- */
@media (max-width:1040px){
  .reg-purpose{grid-template-columns:1fr 1fr;gap:28px}
  .reg-helps{grid-template-columns:1fr}
  .reg-what{grid-template-columns:1fr;gap:28px;padding-top:44px}
}
@media (max-width:640px){
  .reg-cards{grid-template-columns:1fr;gap:20px;margin-top:-24px}
  .reg-purpose{grid-template-columns:1fr;gap:26px}
  .reg-why{flex-direction:column;gap:16px;padding:24px}
  .reg-final{flex-direction:column;align-items:flex-start;padding:24px}
  .reg-final-actions{width:100%}
  .reg-final-actions .btn{flex:1;justify-content:center}
  .reg-hero{padding:24px 0 38px}
}
