/* ═══════════════════════════════════════════════
   DESIGN SYSTEM — matches walsh-president-page
   Navy    #000038  — Authority. Backgrounds.
   Magenta #9B1F54  — Identity. Accent. Warmth.
   Orange  #E55318  — Action. CTAs only.
   White   #FFFFFF
   Cream   #F7F5F1
═══════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400&display=swap');
:root {
  --navy:    #000038;
  --magenta: #9B1F54;
  --orange:  #E55318;
  --white:   #ffffff;
  --cream:   #F7F5F1;
  --silk:    #F0EDE8;
  --ink:     #0C0C28;
  --slate:   #5A5A72;
  --rule:    #E0DDD8;
  --pad:     clamp(24px,5.5vw,92px);
  --max:     1240px;
  --ease:    cubic-bezier(0.22,1,0.36,1);
}
*{ box-sizing:border-box; margin:0; padding:0;   font-family: 'Poppins', sans-serif;}

html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family:'Poppins',sans-serif;
  background:var(--white);
  color:var(--ink);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img { display:block; max-width:100%; height:auto; }
a { text-decoration:none; color:inherit; }
::selection { background:var(--magenta); color:#fff; }
::-webkit-scrollbar { width:3px; }
::-webkit-scrollbar-thumb { background:var(--magenta); }

/* ── SCROLL PROGRESS ── */
#sp {
  position:fixed; top:0; left:0; width:3px;
  background:var(--magenta); z-index:999;
  transition:height .05s linear;
}

/* ── ANIMATIONS ── */
@keyframes rise     { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:translateY(0)} }
@keyframes brandBar { from{transform:scaleX(0)} to{transform:scaleX(1)} }
@keyframes ticker   { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@keyframes fadein   { from{opacity:0} to{opacity:1} }

/* ── DATA-REVEAL BASE ── */
[data-reveal] {
  opacity:0; transform:translateY(18px);
  transition:opacity .65s var(--ease), transform .65s var(--ease);
}
[data-reveal].in { opacity:1; transform:translateY(0); }

/* ══════════════════════════════════════════════
   TICKER / MARQUEE
══════════════════════════════════════════════ */
.ticker-bar {
  background:var(--magenta);
  overflow:hidden; white-space:nowrap; padding:9px 0;
}
.ticker-inner {
  display:inline-flex; gap:72px;
  animation:ticker 32s linear infinite;
}
.ticker-item {
  font-size:11px; font-weight:600; letter-spacing:.5px;
  color:rgba(255,255,255,.9);
  display:inline-flex; align-items:center; gap:10px;
}
.ticker-dot {
  width:4px; height:4px; border-radius:50%;
  background:rgba(255,255,255,.45); flex-shrink:0;
}

/* ══════════════════════════════════════════════
   HERO — cinematic, full viewport, text bottom-left
══════════════════════════════════════════════ */
.hero {
  position:relative; 
  /*height:100vh;*/
  min-height:640px;
  overflow:hidden; display:flex; flex-direction:column;
  justify-content:flex-end;
}

.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 20% 80%, rgba(155,31,84,.18) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 20%, rgba(53,94,132,.12) 0%, transparent 50%),
    linear-gradient(155deg, #00001e 0%, #04022a 45%, #0d0520 100%);
}
.hero-gradient {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(
    to top,
    rgba(0,0,20,.97) 0%,
    rgba(0,0,20,.78) 28%,
    rgba(0,0,20,.30) 62%,
    rgba(0,0,20,.06) 100%
  );
}
.hero-glow {
  position:absolute; bottom:-200px; left:-150px; z-index:1;
  width:clamp(400px,55vw,800px); height:clamp(400px,55vw,800px);
  background:radial-gradient(ellipse,
    rgba(155,31,84,.26) 0%, rgba(155,31,84,.05) 50%, transparent 72%);
  border-radius:50%; pointer-events:none;
}
.hero-ghost {
  position:absolute; right:calc(var(--pad) - 24px); top:50%; transform:translateY(-50%);
  font-size:clamp(220px,34vw,480px); font-weight:900; line-height:1; letter-spacing:-16px;
  color:transparent; -webkit-text-stroke:1.5px rgba(155,31,84,.16);
  user-select:none; pointer-events:none; z-index:2;
  opacity:0; animation:fadein 1.8s .8s forwards;
}
.hero-brand-bar {
  position:absolute; top:0; left:0; right:0;
  height:4px; max-height:4px; background:var(--magenta);
  z-index:10; transform:scaleX(0); transform-origin:left;
  animation:brandBar .8s var(--ease) forwards;
  overflow:hidden; pointer-events:none;
}

.hero-body {
  position:relative; z-index:4;
  padding:clamp(48px,7vw,88px) var(--pad) 0;
  max-width:calc(var(--max) + var(--pad)*2); width:100%;
}

.hero-eyebrow {
  display:inline-flex; align-items:center; gap:12px;
  font-size:11px; font-weight:400; letter-spacing:3px;
  text-transform:uppercase; color:rgba(255,255,255,.45);
  margin-bottom:22px; background:transparent;
  opacity:0; animation:rise .6s .2s var(--ease) forwards;
}
.hero-eyebrow::before {
  content:''; width:28px; height:1px;
  background:rgba(255,255,255,.3); flex-shrink:0;
}

.hero-h1 {
  font-size:clamp(42px,6.5vw,88px); font-weight:300;
  line-height:1.04; letter-spacing:-.01em; color:var(--white);
  margin-bottom:24px;
  opacity:0; animation:rise .8s .38s var(--ease) forwards;
}
.hero-h1 strong { display:block; font-weight:800; }
.hero-h1 .mag  { color:var(--magenta); }

.hero-divider {
  width:52px; height:3px;
  background:var(--magenta);
  margin-bottom:20px;
  opacity:0; animation:rise .6s .55s var(--ease) forwards;
}

.hero-sub {
  font-size:clamp(15px,1.8vw,19px); font-weight:300; line-height:1.75;
  color:rgba(255,255,255,.58); max-width:420px; margin-bottom:34px;
  opacity:0; animation:rise .7s .65s var(--ease) forwards;
}

.hero-ctas {
  display:flex; gap:12px; flex-wrap:wrap;
  opacity:0; animation:rise .6s .78s var(--ease) forwards;
}
.cta-primary {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--orange); color:var(--white);
  padding:13px 28px; font-family:'Poppins',sans-serif;
  font-size:13px; font-weight:600; letter-spacing:.3px;
  transition:background .22s, transform .18s;
  white-space:nowrap;
}
.cta-primary:hover { background:#c84a12; transform:translateY(-2px); }
.cta-secondary {
  display:inline-flex; align-items:center; gap:8px;
  background:transparent; color:var(--white);
  padding:12px 28px; border:1px solid rgba(255,255,255,.3);
  font-family:'Poppins',sans-serif; font-size:13px; font-weight:400;
  transition:border-color .22s, background .18s;
}
.cta-secondary:hover { border-color:rgba(255,255,255,.65); background:rgba(255,255,255,.05); }

/* Hero notice strip */
.hero-strip {
  position:relative; z-index:3; margin-top:52px;
  display:flex; align-items:stretch; flex-wrap:wrap;
  border-top:2px solid var(--magenta);
  background:linear-gradient(90deg,rgba(155,31,84,.18),rgba(155,31,84,.08));
  opacity:0; animation:rise .5s 1s var(--ease) forwards;
}
.hs-item {
  display:flex; align-items:center; gap:12px;
  padding:13px var(--pad); font-size:11px; font-weight:500;
  color:rgba(255,255,255,.65); flex:1; min-width:220px;
  border-right:1px solid rgba(255,255,255,.07);
}
.hs-item:last-child { border-right:none; }
.hs-dot { width:5px; height:5px; border-radius:50%; background:var(--magenta); flex-shrink:0; }
.hs-item .hl { color:var(--orange); font-weight:600; transition:color .2s; }
.hs-item .hl:hover { color:var(--white); }

/* ══════════════════════════════════════════════
   SHARED SECTION LABELS
══════════════════════════════════════════════ */
.block-label {
  display:flex; align-items:center; gap:12px;
  font-size:10px; font-weight:700; letter-spacing:4px; text-transform:uppercase;
  color:var(--magenta); margin-bottom:12px;
}
.block-label::before {
  content:''; width:22px; height:2px;
  background:var(--magenta); flex-shrink:0;
}

.block-title {
  font-size:clamp(28px,4vw,48px); font-weight:600; color:var(--navy);
  letter-spacing:-.028em; line-height:1.08;
}
.block-title span { color:var(--magenta); }

.block-lead {
  font-size:clamp(14px,1.6vw,16px); font-weight:300; line-height:1.9; color:var(--slate);
  border-left:2px solid var(--magenta); padding-left:clamp(18px,2.5vw,28px);
  max-width:440px;
}

/* ══════════════════════════════════════════════
   INTRO — white section
══════════════════════════════════════════════ */
.intro-sec {
  background:var(--white);
  padding:clamp(80px,10vw,140px) var(--pad);
  border-top:1px solid var(--rule);
  position:relative; overflow:hidden;
}
.intro-sec::before {
  content:''; position:absolute; inset:0;
  background-image:radial-gradient(circle,rgba(155,31,84,.055) 1px,transparent 1px);
  background-size:34px 34px; pointer-events:none;
}
.intro-wrap { max-width:var(--max); margin:0 auto; position:relative; }
.intro-header {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(36px,5.5vw,88px); align-items:end;
  margin-bottom:clamp(48px,6vw,72px);
}

/* Phil-cols pattern — matches reference file exactly */
.phil-cols {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:var(--rule); border:1px solid var(--rule);
}
.phil-col {
  padding:clamp(28px,4vw,48px) clamp(22px,3vw,36px);
  border-top:2px solid transparent;
  opacity:0; transform:translateY(18px);
  transition:opacity .65s, transform .65s, border-color .25s, background .22s;
}
.phil-col.in { opacity:1; transform:translateY(0); }
.phil-col:nth-child(2) { transition-delay:.1s; }
.phil-col:nth-child(3) { transition-delay:.2s; }
/* Coloured versions */
.phil-col.navy  { background:var(--navy);    border-top-color:var(--magenta); }
.phil-col.mag   { background:var(--magenta); border-top-color:var(--orange); }
.phil-col.org   { background:var(--orange);  border-top-color:var(--navy); }
.phil-col.navy:hover  { background:#000050; }
.phil-col.mag:hover   { background:#7d1843; }
.phil-col.org:hover   { background:#c84a12; }

.pc-ghost {
  position:absolute; right:-4px; bottom:-14px;
  font-size:76px; font-weight:900; color:rgba(255,255,255,.08);
  line-height:1; user-select:none; pointer-events:none;
}
.pc-icon {
  width:42px; height:42px;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
}
.pc-icon svg { width:19px; height:19px; stroke:rgba(255,255,255,.9); stroke-width:1.8; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.pc-title { font-size:15px; font-weight:700; color:rgba(255,255,255,.95); margin-bottom:10px; }
.pc-body  { font-size:12px; font-weight:400; line-height:1.8; color:rgba(255,255,255,.65); }

/* ══════════════════════════════════════════════
   COMPLIANCE BAND
══════════════════════════════════════════════ */
.compliance-band {
  background:var(--navy); padding:10px var(--pad); text-align:center;
  border-top:1px solid rgba(255,255,255,.06);
}
.compliance-band p {
  font-size:10px; font-weight:400; letter-spacing:.3px;
  color:rgba(255,255,255,.28); max-width:var(--max); margin:0 auto;
}

/* ══════════════════════════════════════════════
   CATEGORY NAV BAND
══════════════════════════════════════════════ */
.cat-band {
  background:var(--navy); padding:clamp(28px,4vw,44px) var(--pad);
  overflow:hidden; position:relative;
}
.cat-band::after {
  content:''; position:absolute; inset:0;
  background-image:repeating-linear-gradient(-50deg,rgba(255,255,255,.016) 0,rgba(255,255,255,.016) 1px,transparent 1px,transparent 52px);
}
.cat-inner {
  max-width:var(--max); margin:0 auto; position:relative; z-index:1;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.cat-lbl {
  font-size:9px; font-weight:700; letter-spacing:3.5px;
  text-transform:uppercase; color:rgba(255,255,255,.22);
}
.cat-tags { display:flex; gap:8px; flex-wrap:wrap; }
.ctag {
  font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase;
  padding:9px 22px; border:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.4); background:transparent;
  cursor:pointer; font-family:'Poppins',sans-serif;
  transition:background .22s, border-color .22s, color .22s;
}
.ctag:hover,.ctag.on { background:var(--magenta); border-color:var(--magenta); color:var(--white); }

/* ══════════════════════════════════════════════
   MAGENTA BREAK
══════════════════════════════════════════════ */
.mag-break { background:var(--magenta); padding:clamp(28px,3.5vw,44px) var(--pad); }
.mag-break-inner {
  max-width:var(--max); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.mag-break-text { font-size:clamp(14px,1.8vw,18px); font-weight:600; color:var(--white); letter-spacing:-.01em; }
.mag-break-arrow { font-size:clamp(40px,6vw,64px); font-weight:900; color:rgba(255,255,255,.15); line-height:1; }

/* ══════════════════════════════════════════════
   POLICIES — cream, vis-row pattern
══════════════════════════════════════════════ */
.policies-sec {
  background:var(--cream);
  padding:clamp(80px,10vw,140px) var(--pad);
  border-top:1px solid var(--rule);
  position:relative; overflow:hidden;
}
.policies-sec::before {
  content:''; position:absolute; inset:0;
  background-image:radial-gradient(circle,rgba(0,0,56,.038) 1px,transparent 1px);
  background-size:38px 38px; pointer-events:none;
}
.pol-wrap { max-width:var(--max); margin:0 auto; position:relative; }
.pol-header {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(36px,6vw,100px); align-items:end;
  margin-bottom:clamp(52px,7vw,80px);
}

/* Accordion */
.acc { display:flex; flex-direction:column; gap:2px; }

.acc-btn {
  width:100%;
  display:grid; grid-template-columns:clamp(52px,6vw,84px) minmax(0,1fr) auto auto;
  gap:clamp(14px,2.5vw,30px); align-items:center;
  padding:clamp(20px,2.8vw,30px) clamp(20px,2.5vw,36px);
  background:var(--white); border:none; cursor:pointer;
  font-family:'Poppins',sans-serif; text-align:left;
  border-left:4px solid transparent;
  position:relative; overflow:hidden;
  transition:background .25s, border-color .3s;
}
.acc-btn::before {
  content:''; position:absolute; top:0; left:0; width:4px; height:100%;
  background:var(--magenta);
  transform:scaleY(0); transform-origin:top;
  transition:transform .45s var(--ease);
}
.acc-btn:hover::before,.acc-btn.open::before { transform:scaleY(1); }
.acc-btn:hover { background:rgba(155,31,84,.03); }
.acc-btn.open  { background:var(--navy); }

.acc-n {
  font-size:clamp(32px,4.5vw,48px); font-weight:900;
  color:rgba(155,31,84,.16); line-height:1; letter-spacing:-2px;
  transition:color .35s;
}
.acc-btn.open .acc-n { color:rgba(155,31,84,.38); }

.acc-lbl {
  font-size:9px; font-weight:700; letter-spacing:3.5px; text-transform:uppercase;
  color:var(--magenta); display:block; margin-bottom:5px; transition:color .22s;
}
.acc-btn.open .acc-lbl { color:rgba(155,31,84,.55); }

.acc-name {
  font-size:clamp(14px,1.8vw,19px); font-weight:600;
  color:var(--navy); letter-spacing:-.015em; transition:color .22s;
}
.acc-btn.open .acc-name { color:var(--white); }

.acc-badge {
  font-size:10px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--slate); background:var(--cream); border:1px solid var(--rule);
  padding:5px 15px; white-space:nowrap; transition:all .22s;
}
.acc-btn.open .acc-badge { background:var(--mag-mid); color:rgba(255,255,255,.45); border-color:transparent; }

.acc-chev {
  width:30px; height:30px; border-radius:50%;
  border:1px solid var(--rule);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; color:var(--slate); transition:all .4s var(--ease);
}
.acc-btn.open .acc-chev { background:var(--magenta); border-color:var(--magenta); color:var(--white); transform:rotate(180deg); }

.acc-panel { max-height:0; overflow:hidden; transition:max-height .6s var(--ease); }
.acc-panel.open { max-height:4000px; }

/* Policy row */
.p-row {
  display:grid; grid-template-columns:clamp(52px,6vw,84px) minmax(0,1fr) auto;
  gap:clamp(14px,2.5vw,30px); align-items:center;
  padding:clamp(20px,2.8vw,30px) clamp(20px,2.5vw,36px);
  background:var(--white); border-bottom:1px solid var(--rule);
  border-left:4px solid transparent;
  opacity:0; transform:translateX(-14px);
  transition:opacity .42s var(--ease), transform .42s var(--ease), background .2s, border-color .25s;
}
.acc-panel.open .p-row                { opacity:1; transform:translateX(0); }
.acc-panel.open .p-row:nth-child(1)   { transition-delay:.05s; }
.acc-panel.open .p-row:nth-child(2)   { transition-delay:.10s; }
.acc-panel.open .p-row:nth-child(3)   { transition-delay:.15s; }
.acc-panel.open .p-row:nth-child(4)   { transition-delay:.20s; }
.acc-panel.open .p-row:nth-child(5)   { transition-delay:.25s; }
.acc-panel.open .p-row:nth-child(6)   { transition-delay:.30s; }
.p-row:last-child { border-bottom:none; }
.p-row:hover { background:var(--cream); border-left-color:var(--orange); }

.p-n {
  font-size:clamp(26px,3.5vw,40px); font-weight:900;
  color:rgba(155,31,84,.14); line-height:1; letter-spacing:-1px;
  transition:color .25s;
}
.p-row:hover .p-n { color:rgba(229,83,24,.26); }

.p-title { font-size:clamp(13px,1.4vw,15px); font-weight:700; color:var(--navy); margin-bottom:5px; letter-spacing:-.01em; }
.p-desc  { font-size:clamp(11px,1.2vw,12.5px); font-weight:400; line-height:1.75; color:var(--slate); }

.p-dl {
  display:inline-flex; align-items:center; gap:7px; flex-shrink:0; cursor:pointer;
  font-family:'Poppins',sans-serif; font-size:10px; font-weight:700;
  letter-spacing:1.5px; text-transform:uppercase;
  color:var(--navy); background:transparent;
  border:1.5px solid rgba(0,0,56,.18); padding:10px 18px;
  transition:background .22s, color .22s, border-color .22s, transform .18s;
}
.p-dl:hover { background:var(--magenta); color:var(--white); border-color:var(--magenta); transform:translateY(-1px); }

/* ══════════════════════════════════════════════
   PDF MODAL
══════════════════════════════════════════════ */
.pdf-modal {
  position:fixed; inset:0; z-index:9999;
  display:none; align-items:center; justify-content:center;
  background:rgba(0,0,20,.85); backdrop-filter:blur(6px); padding:20px;
}
.pdf-modal.active { display:flex; }
.pdf-shell {
  background:var(--white); width:100%; max-width:940px;
  max-height:92vh; display:flex; flex-direction:column;
  box-shadow:0 40px 100px rgba(0,0,0,.55); animation:rise .35s var(--ease);
}
.pdf-bar {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 20px; background:var(--navy);
  border-bottom:2px solid var(--magenta); flex-shrink:0; gap:16px;
}
.pdf-name { font-size:13px; font-weight:600; color:var(--white); flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pdf-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.pdf-dl {
  display:inline-flex; align-items:center; gap:6px;
  background:var(--orange); color:var(--white);
  font-family:'Poppins',sans-serif; font-size:11px; font-weight:700;
  letter-spacing:.5px; text-transform:uppercase;
  padding:8px 18px; text-decoration:none; transition:background .2s;
}
.pdf-dl:hover { background:#c84a12; }
.pdf-close {
  width:34px; height:34px; background:rgba(255,255,255,.1);
  border:none; cursor:pointer; color:rgba(255,255,255,.7);
  font-size:20px; font-family:'Poppins',sans-serif; line-height:1;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, color .2s;
}
.pdf-close:hover { background:var(--magenta); color:var(--white); }
.pdf-frame-wrap { flex:1; overflow:hidden; min-height:0; background:#525659; }
.pdf-frame { width:100%; height:100%; min-height:76vh; border:none; }

/* ══════════════════════════════════════════════
   CONTACT — navy, services pattern
══════════════════════════════════════════════ */
.contact-sec {
  background:var(--navy);
  padding:clamp(80px,10vw,140px) var(--pad);
  border-top:1px solid rgba(255,255,255,.04);
  position:relative; overflow:hidden;
}
.contact-sec::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 75% 65% at 100% 55%, rgba(155,31,84,.2) 0%, transparent 62%);
}
.contact-sec::after {
  content:''; position:absolute; inset:0;
  background-image:repeating-linear-gradient(-50deg,rgba(255,255,255,.014) 0,rgba(255,255,255,.014) 1px,transparent 1px,transparent 60px);
}
.con-wrap { max-width:var(--max); margin:0 auto; position:relative; z-index:1; }
.con-blabel {
  display:flex; align-items:center; gap:12px;
  font-size:10px; font-weight:700; letter-spacing:4px; text-transform:uppercase;
  color:var(--magenta); margin-bottom:14px;
}
.con-blabel::before { content:''; width:22px; height:2px; background:var(--magenta); flex-shrink:0; }
.con-h {
  font-size:clamp(28px,4vw,48px); font-weight:600; color:var(--white);
  letter-spacing:-.028em; line-height:1.08; margin-bottom:20px;
}
.con-h span { color:var(--magenta); }
.con-body {
  font-size:clamp(13px,1.5vw,15px); font-weight:300; line-height:1.9;
  color:rgba(255,255,255,.42); margin-bottom:36px;
  border-left:3px solid var(--orange); padding-left:20px; max-width:480px;
}
.con-cta {
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  background:var(--orange); color:var(--white);
  font-family:'Poppins',sans-serif; font-size:14px; font-weight:700;
  letter-spacing:.3px; padding:16px 36px;
  transition:background .22s, transform .2s, box-shadow .2s;
}
.con-cta:hover { background:#c84a12; transform:translateY(-2px); box-shadow:0 16px 40px rgba(229,83,24,.28); }
.con-sub { font-size:11px; font-weight:400; color:rgba(255,255,255,.32); margin-top:14px; }
.con-sub a { color:var(--orange); font-weight:600; }

/* ══════════════════════════════════════════════
   WHITE TRANSPARENCY STRIP
══════════════════════════════════════════════ */
.white-strip {
  background:var(--white); padding:clamp(40px,5vw,60px) var(--pad);
  border-top:1px solid var(--rule);
}
.ws-inner {
  max-width:var(--max); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.ws-label {
  font-size:9px; font-weight:700; letter-spacing:4px;
  text-transform:uppercase; color:var(--magenta); margin-bottom:10px;
}
.ws-text { font-size:clamp(13px,1.5vw,16px); font-weight:300; color:var(--slate); line-height:1.75; max-width:520px; }
.ws-btn {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--navy); color:var(--white);
  font-family:'Poppins',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:.4px; padding:13px 28px; white-space:nowrap; flex-shrink:0;
  transition:background .2s;
}
.ws-btn:hover { background:var(--magenta); }

/* ══════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════
   RESPONSIVE — ALL DEVICES
══════════════════════════════════════════════════════════ */
/* 4K 3840px+ */
@media(min-width:3840px){ :root{--pad:200px;--max:2400px;} .hero-h1{font-size:180px;} }
/* QHD 27" 2560–3840px */
@media(min-width:2560px) and (max-width:3839px){ :root{--pad:160px;--max:1800px;} .hero-h1{font-size:160px;} }
/* 2K iMac 2048–2560px */
@media(min-width:2048px) and (max-width:2559px){ :root{--pad:140px;--max:1600px;} .hero-h1{font-size:148px;} }
/* iMac FHD 1920–2048px */
@media(min-width:1920px) and (max-width:2047px){ :root{--pad:120px;--max:1440px;} .hero-h1{font-size:130px;} }
/* MacBook Pro 16 1728–1920px */
@media(min-width:1728px) and (max-width:1919px){ :root{--max:1380px;} .hero-h1{font-size:120px;} }
/* MacBook Pro 16 1600–1728px */
@media(min-width:1600px) and (max-width:1727px){ :root{--max:1320px;} .hero-h1{font-size:116px;} }
/* MacBook Pro 14 native 1512–1600px */
@media(min-width:1512px) and (max-width:1599px){ :root{--max:1280px;} .hero-h1{font-size:110px;} }
/* MacBook Pro 14 / Dell XPS 1440–1512px 
@media(min-width:1440px) and (max-width:1511px){ .hero-h1{font-size:106px;} }*/
/* Most popular laptop 1366–1440px */
@media(min-width:1366px) and (max-width:1439px){ .hero-h1{font-size:100px;} }
/* MacBook Air 1280–1366px */
@media(min-width:1280px) and (max-width:1365px){ .hero-h1{font-size:92px;} }
/* Older laptop 1152–1280px */
@media(min-width:1152px) and (max-width:1279px){ .hero-h1{font-size:84px;} .intro-header{gap:72px;} }
/* iPad Pro 13" portrait / Surface 1024–1152px */
@media(min-width:1024px) and (max-width:1151px){
  .hero-h1{font-size:76px;}
  .intro-header,.pol-header{gap:52px;}
}
/* iPad Pro 11" M4 portrait 834–1024px */
@media(min-width:834px) and (max-width:1023px){
  .hero-h1{font-size:68px;}
  .intro-header,.pol-header,.con-grid{grid-template-columns:1fr;gap:36px;}
  .phil-cols{grid-template-columns:repeat(3,1fr);}
  .f-grid{grid-template-columns:1fr 1fr;}
  .acc-btn{grid-template-columns:auto minmax(0,1fr) auto;}
  .acc-n{font-size:34px;}
}
/* iPad Air / iPad 10th 768–834px */
@media(min-width:768px) and (max-width:833px){
  .hero-h1{font-size:62px;} .hero{min-height:80vh;}
  .intro-header,.pol-header,.con-grid{grid-template-columns:1fr;gap:28px;}
  .phil-cols{grid-template-columns:1fr 1fr;}
  .f-grid{grid-template-columns:1fr 1fr;} .acc-n{display:none;}
}
/* Android tablets / Huawei MatePad 601–768px */
@media(min-width:601px) and (max-width:767px){
  .hero-h1{font-size:clamp(54px,8vw,68px);}
  .intro-header,.pol-header,.con-grid{grid-template-columns:1fr;gap:28px;}
  .phil-cols{grid-template-columns:1fr 1fr;} .f-grid{grid-template-columns:1fr 1fr;} .acc-n{display:none;}
}
/* All phones portrait max-width 600px */
@media(max-width:600px){
  :root{--pad:20px;}
  .intro-header,.pol-header,.con-grid{grid-template-columns:1fr;gap:24px;}
  .phil-cols,.f-grid{grid-template-columns:1fr;}
  .hero-ghost{display:none;}
  .hs-item{border-right:none;border-top:1px solid rgba(255,255,255,.06);min-width:100%;}
  .p-row{grid-template-columns:auto minmax(0,1fr);gap:12px;padding:16px 20px;}
  .p-dl{grid-column:1/-1;justify-content:center;margin-top:8px;width:100%;}
  .acc-n{display:none;} .acc-badge{display:none;}
  .cat-inner{flex-direction:column;align-items:flex-start;gap:14px;}
  .cat-tags{width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .cat-tags::-webkit-scrollbar{display:none;}
  .ctag{flex-shrink:0;font-size:9px;padding:8px 14px;}
  .hero-ctas{flex-direction:column;align-items:flex-start;gap:12px;}
  .cta-primary,.cta-secondary{width:100%;justify-content:center;}
  .ws-inner{flex-direction:column;align-items:flex-start;}
  .ws-btn{width:100%;justify-content:center;}
  .mag-break-inner{flex-direction:column;gap:8px;} .mag-break-arrow{display:none;}
  .con-cta{font-size:12px;padding:14px 20px;}
  .pdf-frame{min-height:60vh;}
}
/* iPhone Plus/Pro Max 430–600px */
@media(min-width:430px) and (max-width:600px){ .hero-h1{font-size:clamp(42px,10vw,56px);} }
/* iPhone 14/15/16 standard / Pixel / Galaxy S 390–430px */
@media(max-width:430px){
  .hero-h1{font-size:clamp(38px,11vw,54px);} .hero-sub{font-size:13px;max-width:100%;}
  .hero-eyebrow{font-size:9px;letter-spacing:2.5px;} .hero-divider{width:40px;margin-bottom:14px;}
  .p-title{font-size:13px;} .p-desc{font-size:11px;}
  .block-title{font-size:28px;} .con-h{font-size:26px;} .f-grid{gap:28px;}
}
/* iPhone SE 2nd/3rd / Galaxy A 360–390px */
@media(min-width:360px) and (max-width:389px){
  :root{--pad:18px;} .hero-h1{font-size:36px;}
  .block-title{font-size:25px;} .con-h{font-size:24px;}
  .acc-btn{padding:16px 18px;} .acc-name{font-size:13px;}
}
/* iPhone SE 1st gen / smallest phones 320–360px */
@media(max-width:359px){
  :root{--pad:16px;} .hero-h1{font-size:30px;}
  .hero-eyebrow{font-size:8px;letter-spacing:2px;} .hero-divider{width:32px;}
  .block-title{font-size:22px;} .con-h{font-size:22px;}
  .cta-primary{font-size:12px;padding:12px 18px;} .hero{min-height:95vh;}
}
/* iPad landscape */
@media(min-width:768px) and (max-width:1366px) and (orientation:landscape){
  .intro-header,.pol-header,.con-grid{grid-template-columns:1fr 1fr;gap:48px;}
  .phil-cols{grid-template-columns:repeat(3,1fr);}
  .acc-n{display:block;} .acc-badge{display:inline-flex;}
  .hero-h1{font-size:clamp(60px,7vw,82px);} .f-grid{grid-template-columns:1fr 1fr;}
}
/* Phone landscape very short */
@media(max-height:450px) and (orientation:landscape){
  .hero{min-height:auto;height:auto;}
  .hero-h1{font-size:clamp(28px,5vw,48px);}
  .hero-sub,.hero-ghost,.hero-glow,.hero-divider{display:none;}
  .hero-body{padding-bottom:8px;} .hero-ctas{margin-bottom:0;}
}
/* Touch screens */
@media(hover:none) and (pointer:coarse){
  .acc-btn:hover::before{transform:scaleY(0);}
  .acc-btn:hover{background:var(--white);}
  .acc-btn.open::before{transform:scaleY(1);}
  .acc-btn.open{background:var(--navy);}
  .p-row:hover{background:var(--white);border-left-color:transparent;}
  .p-dl:hover{background:transparent;color:var(--navy);border-color:rgba(0,0,56,.18);transform:none;}
  .cta-primary:hover,.con-cta:hover,.ws-btn:hover{transform:none;box-shadow:none;}
  .ctag{padding:11px 18px;} .p-dl{padding:13px 18px;}
  .acc-chev{width:36px;height:36px;} .pdf-close{width:40px;height:40px;}
}
/* Print */
@media print{
  .hero,.ticker-bar,.cat-band,.mag-break,.hero-strip,.contact-sec,.white-strip,.pdf-modal,#sp,.compliance-band{display:none!important;}
  .policies-sec,.intro-sec{padding:20px 0;}
  .acc-panel{max-height:none!important;overflow:visible!important;}
  .p-dl{display:none!important;}
  body{background:white;color:black;} .block-title,.p-title,.con-h{color:black!important;}
  .p-desc{color:#333!important;} footer{background:white!important;border-top:2px solid black;}
  .f-name,.f-col a,.f-desc,.f-bot{color:black!important;}
}