:root{
  --navy:#0c2033;
  --navy-2:#14304a;
  --navy-3:#0a1a2b;
  --ink:#232f3b;
  --accent:#2b6fc4;      /* Copia blue */
  --accent-2:#3b82d6;    /* Copia blue-bright */
  --accent-soft:#7fb2ec; /* light blue - for accents sitting on navy */
  --accent-deep:#1f5ba8; /* darker blue - hover, keeps white text legible */
  --cream:#f4f6f9;
  --paper:#ffffff;
  --line:#dde4ec;
  --muted:#5d6b7a;
  --radius:20px;
  --shadow:0 1px 2px rgba(12,32,51,.05),0 18px 44px rgba(12,32,51,.09);
  --shadow-lg:0 2px 4px rgba(12,32,51,.06),0 30px 70px rgba(12,32,51,.16);
  --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='160' height='160' filter='url(%23n)' opacity='0.55'/></svg>");
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at 85% -5%, rgba(43,111,196,.07), transparent 60%),
    var(--cream);
  line-height:1.7;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--accent);color:var(--navy-3)}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--navy-3)}
::-webkit-scrollbar-thumb{background:#3a5470;border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:var(--accent)}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:'Fraunces',Georgia,'Times New Roman',serif;color:var(--navy);line-height:1.12;font-weight:600;letter-spacing:-.015em}
h1{font-size:clamp(2.5rem,5.4vw,4rem)}
h2{font-size:clamp(1.9rem,3.8vw,2.8rem)}
h3{font-size:clamp(1.3rem,2vw,1.6rem)}
h1 em,h2 em{font-style:italic;font-weight:500;background:linear-gradient(115deg,var(--accent-soft) 10%,var(--accent) 60%,#1a4f94);-webkit-background-clip:text;background-clip:text;color:transparent}
p{margin-bottom:1em}
.container{width:min(1160px,92%);margin:0 auto}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(10,26,43,.94);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:background .3s ease,box-shadow .3s ease,border-color .3s ease;
}
.site-header.scrolled{background:rgba(8,20,33,.99);border-bottom-color:rgba(255,255,255,.08);box-shadow:0 14px 40px rgba(0,0,0,.28)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:.45rem 0;gap:1rem}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.brand-chip{display:inline-flex;align-items:center}
.brand-chip img{height:78px;width:auto}
.main-nav ul{display:flex;align-items:center;gap:1.55rem;list-style:none}
.main-nav a{color:#dbe4ee;text-decoration:none;font-size:.93rem;font-weight:500;letter-spacing:.015em;position:relative;padding:.35rem 0}
.main-nav a::after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:1.5px;background:linear-gradient(90deg,var(--accent-2),var(--accent));transition:width .28s cubic-bezier(.4,0,.2,1)}
.main-nav a:hover::after,.main-nav a.active::after{width:100%}
.main-nav a.active{color:#fff}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.95rem 1.9rem;border-radius:999px;font-weight:600;font-size:.95rem;letter-spacing:.02em;text-decoration:none;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease;border:1.5px solid transparent;cursor:pointer;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-accent{background:linear-gradient(135deg,var(--accent-2),var(--accent) 55%,#1f5ba8);color:var(--navy-3);box-shadow:0 10px 26px rgba(43,111,196,.35),inset 0 1px 0 rgba(255,255,255,.35)}
.btn-accent:hover{box-shadow:0 16px 36px rgba(43,111,196,.5),inset 0 1px 0 rgba(255,255,255,.35)}
.btn-accent::after{content:"\2192";font-weight:700;display:inline-block;transition:transform .22s cubic-bezier(.4,0,.2,1)}
.btn-accent:hover::after{transform:translateX(4px)}
.btn-outline-light{border-color:rgba(255,255,255,.45);color:#fff;background:rgba(255,255,255,.04);backdrop-filter:blur(4px)}
.btn-outline-light:hover{border-color:#fff;background:rgba(255,255,255,.12)}
.btn-outline-dark{border-color:rgba(12,32,51,.35);color:var(--navy);background:transparent}
.btn-outline-dark:hover{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 12px 28px rgba(12,32,51,.25)}
.btn-nav{padding:.62rem 1.35rem;font-size:.88rem}

/* ---------- Hero ---------- */
.hero{position:relative;color:#fff;overflow:hidden;background:var(--navy-3)}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04);animation:heroDrift 22s ease-in-out infinite alternate}
@keyframes heroDrift{from{transform:scale(1.04) translateY(0)}to{transform:scale(1.1) translateY(-1.5%)}}
.hero-scrim{position:absolute;inset:0;background:
  radial-gradient(900px 500px at 12% 18%, rgba(43,111,196,.14), transparent 55%),
  linear-gradient(115deg,rgba(8,20,33,.96) 22%,rgba(12,32,51,.82) 58%,rgba(12,32,51,.60)),
  linear-gradient(rgba(8,20,33,.28),rgba(8,20,33,.28))}
.hero::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.05;pointer-events:none;mix-blend-mode:overlay}
.hero-inner{position:relative;z-index:2;padding:clamp(5.5rem,11vw,9rem) 0 clamp(5rem,10vw,8rem);max-width:860px}
.hero h1{color:#fff;margin:0 0 1.4rem;max-width:20ch}
.hero .lede{font-size:clamp(1.05rem,1.6vw,1.22rem);color:#c9d5e2;max-width:620px;margin-bottom:2.2rem}
.hero .lede strong{color:#fff;font-weight:600}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem}
.hero-note{margin-top:1.6rem;font-size:.92rem;color:#a9bac9;letter-spacing:.04em}
.hero-note strong{color:var(--accent-soft)}

/* Eyebrow */
.eyebrow{display:inline-flex;align-items:center;gap:.85rem;font-size:.75rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--accent);margin-bottom:1.1rem}
.eyebrow::before{content:"";width:2.4rem;height:1px;background:linear-gradient(90deg,transparent,var(--accent))}
.section-head.center .eyebrow::after{content:"";width:2.4rem;height:1px;background:linear-gradient(90deg,var(--accent),transparent)}

/* ---------- Sections ---------- */
section.block{padding:clamp(4rem,8vw,6.5rem) 0}
section.block.tight{padding:clamp(2.8rem,5.5vw,4rem) 0}
.section-head{max-width:780px;margin-bottom:2.8rem}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head h2{margin-bottom:.4rem}
.muted{color:var(--muted)}
.hairline{border:none;border-top:1px solid var(--line)}

/* ---------- Ticker ---------- */
.ticker{background:linear-gradient(90deg,var(--navy-3),var(--navy-2),var(--navy-3));border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);overflow:hidden;position:relative}
.ticker::before,.ticker::after{content:"";position:absolute;top:0;bottom:0;width:110px;z-index:2;pointer-events:none}
.ticker::before{left:0;background:linear-gradient(90deg,var(--navy-3),transparent)}
.ticker::after{right:0;background:linear-gradient(-90deg,var(--navy-3),transparent)}
.ticker-track{display:flex;align-items:center;gap:2.6rem;width:max-content;padding:1.05rem 0;animation:tick 34s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-track span{white-space:nowrap;font-size:.82rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#c3d0dd}
.ticker-track i{width:5px;height:5px;border-radius:50%;background:var(--accent);flex:none}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- Cards ---------- */
.grid{display:grid;gap:1.7rem}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{position:relative;background:var(--paper);border-radius:var(--radius);padding:2.4rem 2rem;border:1px solid rgba(12,32,51,.07);box-shadow:var(--shadow);transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease,border-color .3s ease;display:flex;flex-direction:column;overflow:hidden}
.card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--accent-2),var(--accent));transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:rgba(43,111,196,.35)}
.card:hover::before{transform:scaleX(1)}
.card .num{font-family:'Fraunces',serif;font-style:italic;font-size:2.7rem;color:transparent;-webkit-text-stroke:1.2px var(--accent);line-height:1;margin-bottom:1.1rem}
.card h3{margin-bottom:.4rem}
.card .aud{font-size:.76rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}
.card p{color:var(--muted);flex-grow:1}
.card strong{color:var(--navy)}
.card .card-link{margin-top:1.4rem;font-weight:600;color:var(--navy);text-decoration:none;align-self:flex-start;display:inline-flex;align-items:center;gap:.5rem;padding-bottom:3px;background:linear-gradient(90deg,var(--accent),var(--accent)) left bottom/0% 2px no-repeat;transition:background-size .3s ease}
.card .card-link::after{content:"\2192";transition:transform .22s ease}
.card .card-link:hover{background-size:100% 2px}
.card .card-link:hover::after{transform:translateX(4px)}
.card-media{margin:-2.4rem -2rem 1.6rem;height:200px;overflow:hidden;background:var(--navy-2)}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.6,.2,1)}
.card:hover .card-media img{transform:scale(1.07)}
.card.card-flush{padding:0}
.card.card-flush .news-body{padding:2.4rem 2rem}

/* ---------- Stats ---------- */
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:2.6rem 0}
.stat{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:2rem 1.5rem 1.7rem;text-align:center;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease}
.stat:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.stat::after{content:"";position:absolute;left:50%;bottom:1.1rem;transform:translateX(-50%);width:2.2rem;height:2px;background:linear-gradient(90deg,var(--accent-2),var(--accent));border-radius:2px}
.stat .n{font-family:'Fraunces',serif;font-size:clamp(2.2rem,3.4vw,2.9rem);color:var(--navy);letter-spacing:-.02em}
.stat .l{font-size:.87rem;color:var(--muted);margin-top:.55rem;line-height:1.5;padding-bottom:.5rem}

/* ---------- Tables ---------- */
.table-wrap{overflow-x:auto;background:var(--paper);border:1px solid rgba(12,32,51,.08);border-radius:var(--radius);box-shadow:var(--shadow)}
table.tbl{width:100%;border-collapse:collapse;font-size:.95rem;min-width:640px}
.tbl th{background:linear-gradient(135deg,var(--navy-3),var(--navy-2));color:#e6edf4;text-align:left;padding:1.05rem 1.3rem;font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.tbl td{padding:1rem 1.3rem;border-top:1px solid var(--line);vertical-align:top;line-height:1.6}
.tbl tbody tr{transition:background .2s ease}
.tbl tbody tr:hover{background:#f2f7fd}
.tbl td:first-child{font-weight:600;color:var(--navy)}
.tbl .good{color:#1c7c46;font-weight:600}

/* ---------- Split layout ---------- */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,5vw,4rem);align-items:center}
.split.rev{grid-template-columns:.95fr 1.05fr}
.split img.photo{border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;height:auto;object-fit:cover;aspect-ratio:4/4.6;position:relative}
.split img.photo{outline:1px solid rgba(12,32,51,.1);outline-offset:8px}
/* `height:100%` used to beat `aspect-ratio`: the slot took its height from the
   text column, so a short column made a wide, shallow box and object-fit:cover
   sliced the top off the portrait. The ratio governs now. Landscape sources get
   a landscape slot instead of being forced upright. */
.split img.photo-wide{aspect-ratio:16/10}
.split img.photo-face{object-position:50% 20%}

/* ---------- Lists ---------- */
.check-list{list-style:none;margin:1.3rem 0}
.check-list li{position:relative;padding-left:2.2rem;margin-bottom:.9rem}
.check-list li::before{content:"";position:absolute;left:0;top:.28em;width:1.25em;height:1.25em;border-radius:50%;background:linear-gradient(135deg,var(--accent-2),var(--accent));-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.2 14.5-4-4 1.4-1.4 2.6 2.6 6-6 1.4 1.4z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.2 14.5-4-4 1.4-1.4 2.6 2.6 6-6 1.4 1.4z'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- Pricing ---------- */
.price-card .tier{font-size:.78rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.price-card .price{font-family:'Fraunces',serif;font-size:2rem;color:var(--navy);margin:.55rem 0 .15rem;letter-spacing:-.02em}
.price-card ul{list-style:none;margin:1.2rem 0 1.6rem}
.price-card ul li{padding-left:1.6rem;position:relative;margin-bottom:.6rem;color:var(--muted)}
.price-card ul li::before{content:"";position:absolute;left:0;top:.48em;width:1em;height:1em;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat}
.featured{outline:2px solid var(--accent);outline-offset:-2px;transform:translateY(-6px)}
.featured:hover{transform:translateY(-12px)}
.badge-pop{display:inline-block;background:linear-gradient(135deg,var(--accent-2),var(--accent));color:var(--navy-3);font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;padding:.35rem .9rem;border-radius:999px;margin-bottom:1rem;box-shadow:0 6px 16px rgba(43,111,196,.35)}

/* ---------- Placeholder ---------- */
.placeholder-box{border:1.5px dashed #a9c4e4;background:linear-gradient(180deg,#f7fafe,#eaf2fb);border-radius:var(--radius);padding:2.2rem 2.4rem;color:#3f5570;font-size:.95rem;line-height:1.75}
.placeholder-box strong{color:#24405f}

/* ---------- Beliefs ---------- */
.belief-list{list-style:none;display:grid;gap:1.1rem;counter-reset:b}
.belief-list li{position:relative;background:var(--paper);border:1px solid rgba(12,32,51,.07);border-radius:16px;padding:1.5rem 1.6rem 1.3rem 4.4rem;font-weight:500;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease}
.belief-list li:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.belief-list li::before{counter-increment:b;content:"0" counter(b);position:absolute;left:1.5rem;top:1.45rem;font-family:'Fraunces',serif;font-style:italic;font-size:1.15rem;color:var(--accent)}

/* ---------- CTA band ---------- */
.cta-band{position:relative;background:
  radial-gradient(700px 380px at 85% 0%, rgba(43,111,196,.22), transparent 60%),
  radial-gradient(700px 380px at 8% 100%, rgba(43,111,196,.14), transparent 60%),
  linear-gradient(120deg,rgba(10,26,43,.93) 15%,rgba(20,48,74,.88)),
  url("images/stock/cta-city.jpg") center/cover no-repeat,
  var(--navy-3);color:#fff;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.06;pointer-events:none;mix-blend-mode:overlay}
.cta-inner{position:relative;z-index:2;text-align:center;max-width:760px;margin:0 auto;padding:clamp(4.5rem,9vw,6.5rem) 0}
.cta-inner .eyebrow{justify-content:center}
.cta-inner .eyebrow::after{content:"";width:2.4rem;height:1px;background:linear-gradient(90deg,var(--accent),transparent)}
.cta-inner h2{color:#fff;margin-bottom:1.1rem}
.cta-inner p{color:#c4d1de;margin-bottom:2.2rem}
.cta-band .hero-actions{justify-content:center}

/* ---------- FAQ ---------- */
details.faq{background:var(--paper);border:1px solid rgba(12,32,51,.08);border-radius:16px;box-shadow:var(--shadow);margin-bottom:.9rem;overflow:hidden;transition:border-color .25s ease}
details.faq[open]{border-color:rgba(43,111,196,.5)}
details.faq summary{cursor:pointer;list-style:none;padding:1.25rem 1.5rem;font-weight:600;color:var(--navy);display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:1.02rem}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-size:1.6rem;font-weight:400;color:var(--accent);line-height:1;flex:none;transition:transform .25s ease}
details.faq[open] summary::after{transform:rotate(45deg)}
details.faq .faq-body{padding:0 1.5rem 1.4rem;color:var(--muted)}

/* ---------- Newsletter cards ---------- */
.news-card .tag{font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem}
.news-card ul{list-style:none;margin:1.1rem 0 1.8rem}
.news-card ul li{padding-left:1.5rem;position:relative;margin-bottom:.55rem;color:var(--muted);font-size:.95rem}
.news-card ul li::before{content:"";position:absolute;left:0;top:.5em;width:.8em;height:.8em;background:var(--accent);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}

/* ---------- Call rows ---------- */
.call-row{display:flex;justify-content:space-between;align-items:center;gap:1.2rem;flex-wrap:wrap;background:var(--paper);border:1px solid rgba(12,32,51,.08);border-radius:16px;padding:1.3rem 1.7rem;margin-bottom:1rem;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.call-row:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:rgba(43,111,196,.4)}
.call-row .what{font-weight:600;color:var(--navy)}
.call-row .len{color:var(--muted);font-size:.88rem;letter-spacing:.06em}

/* ---------- Footer ---------- */
.site-footer{background:linear-gradient(180deg,var(--navy-3),#081522);color:#a9bac9;padding:4.5rem 0 0;position:relative;overflow:hidden}
.site-footer::before{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.05;pointer-events:none;mix-blend-mode:overlay}
.foot-brand{position:relative;font-family:'Fraunces',serif;font-weight:600;font-size:clamp(2.2rem,6vw,3.8rem);letter-spacing:.01em;color:#fff;line-height:1;margin-bottom:.6rem}
.foot-brand em{font-style:italic;color:transparent;background:linear-gradient(115deg,var(--accent-soft),var(--accent));-webkit-background-clip:text;background-clip:text}
.foot-sub{position:relative;font-size:.85rem;letter-spacing:.22em;text-transform:uppercase;color:#7e93a6;margin-bottom:2.8rem}
.foot-grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:2.6rem;padding:2.6rem 0 2.4rem;border-top:1px solid rgba(255,255,255,.1)}
.site-footer h4{color:#fff;font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;font-family:'Inter',sans-serif;font-weight:700;margin-bottom:1.1rem}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:.6rem}
.site-footer a{color:#a9bac9;text-decoration:none;transition:color .2s ease}
.site-footer a:hover{color:var(--accent-soft)}
.foot-line{position:relative;border-top:1px solid rgba(255,255,255,.1);padding:1.4rem 0;text-align:center;font-size:.9rem;letter-spacing:.03em;color:#8fa2b3}
.disclaimer{position:relative;font-size:.76rem;line-height:1.7;color:#75899b;max-width:940px;margin:0 auto;padding:0 0 2.2rem;text-align:center}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.2,.6,.2,1),transform .8s cubic-bezier(.2,.6,.2,1);transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media(max-width:960px){
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .split,.split.rev{grid-template-columns:1fr;gap:2.4rem}
  .split img.photo{order:-1;aspect-ratio:4/3.2}
  .split img.photo-wide{aspect-ratio:16/10}
  .stat-row{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
  .main-nav{position:fixed;inset:93px 0 auto 0;background:rgba(9,22,36,.98);backdrop-filter:blur(16px);transform:translateY(-130%);transition:transform .32s cubic-bezier(.4,0,.2,1);padding:1.6rem 0 2.2rem;box-shadow:0 24px 48px rgba(0,0,0,.35);border-bottom:1px solid rgba(255,255,255,.08)}
  .main-nav.open{transform:none}
  .main-nav ul{flex-direction:column;align-items:flex-start;gap:1.15rem;width:min(92%,520px);margin:0 auto}
  .menu-toggle{display:block;background:none;border:none;cursor:pointer;padding:.4rem}
  .menu-toggle span{display:block;width:26px;height:2px;background:#fff;margin:6px 0;border-radius:2px;transition:.28s}
  .menu-toggle.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .menu-toggle.active span:nth-child(2){opacity:0}
  .menu-toggle.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
}
@media(min-width:961px){
  .menu-toggle{display:none}
}
@media(max-width:600px){
  .stat-row{grid-template-columns:1fr 1fr;gap:.9rem}
  .foot-grid{grid-template-columns:1fr}
  body{font-size:16px}
  .btn{padding:.85rem 1.6rem}
}

/* ==========================================================================
   Blue-palette corrections
   The sheet was authored for gold, which is light enough to sit on navy and
   dark enough to carry navy text. Blue is neither, so the two directions have
   to be split explicitly.
   ========================================================================== */

/* Nav CTA: `.main-nav a` (0,1,1) outranks `.btn`/`.btn-nav` (0,1,0) and would
   otherwise strip the pill's padding down to `.35rem 0`. */
.main-nav a.btn{padding:.95rem 1.9rem;line-height:1}
.main-nav a.btn-nav{padding:.62rem 1.35rem;font-size:.88rem}
.main-nav a.btn::after{position:static;width:auto;height:auto;background:none;transition:transform .22s cubic-bezier(.4,0,.2,1)}
.main-nav a.btn-accent::after{content:"\2192"}
.main-nav a.btn:hover::after{width:auto}

/* White on blue = 5.0:1. Navy on blue was 3.1:1. */
.btn-accent{color:#fff}
.badge-pop{color:#fff}
::selection{background:var(--accent);color:#fff}

/* Accents on navy grounds: mid blue only reaches 3.1:1 there, so lighten. */
.hero .eyebrow,.cta-band .eyebrow{color:var(--accent-soft)}
.hero .eyebrow::before,.cta-band .eyebrow::before{background:linear-gradient(90deg,transparent,var(--accent-soft))}
.hero .eyebrow::after,.cta-band .eyebrow::after,.cta-inner .eyebrow::after{background:linear-gradient(90deg,var(--accent-soft),transparent)}
.ticker-track i{background:var(--accent-soft)}

/* Italic display accent: one gradient cannot serve both grounds. */
h1 em,h2 em{background:linear-gradient(115deg,var(--accent-2) 5%,var(--accent) 45%,var(--accent-deep));-webkit-background-clip:text;background-clip:text}
.hero h1 em,.cta-band h2 em{background:linear-gradient(115deg,#c3daf7 5%,var(--accent-soft) 50%,#5c9ae0);-webkit-background-clip:text;background-clip:text}

/* Motion: the hero drift, ticker and reveal are decorative — drop them for
   anyone who has asked the OS to reduce motion. `.reveal` must stay visible,
   since script.js only adds `.in` on intersection. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .hero-bg{animation:none;transform:none}
  .ticker-track{animation:none}
  .reveal{opacity:1;transform:none}
  .btn:hover,.card:hover,.stat:hover,.call-row:hover,.belief-list li:hover{transform:none}
}

/* The comparison table sits inside a `.split` column. At 1440 that column lands
   near 517px while `table.tbl` asks for 640, so it scroll-clipped mid-sentence.
   Give the table side more of the grid and lower the table's floor to fit. */
.split:has(.table-wrap){grid-template-columns:.85fr 1.15fr;align-items:start}
.split .tbl{min-width:480px}

/* ---------- Comparison table ----------
   The plain table made both sides look equally weighted, so the reader had to
   parse every row to find the point. Give the two columns different weight and
   a marker each, so the contrast lands before the text is read. */
.tbl.tbl-compare th{background:none;color:var(--muted);font-size:.72rem;letter-spacing:.15em;padding:1.3rem 1.4rem .85rem;border-bottom:1px solid var(--line);vertical-align:bottom}
.tbl.tbl-compare th:last-child{color:var(--accent-deep);background:rgba(43,111,196,.055)}
.tbl.tbl-compare td{border-top:1px solid var(--line);padding:1.05rem 1.4rem 1.05rem 2.9rem;position:relative;vertical-align:top;line-height:1.55}
.tbl.tbl-compare td:first-child{color:var(--muted);font-weight:400}
.tbl.tbl-compare td:last-child{background:rgba(43,111,196,.055);color:var(--navy);font-weight:600}
.tbl.tbl-compare tbody tr:hover{background:none}
.tbl.tbl-compare tbody tr:hover td:last-child{background:rgba(43,111,196,.1)}
.tbl.tbl-compare td::before{position:absolute;left:1.3rem;top:1.15rem;font-size:.9rem;font-weight:700;line-height:1}
.tbl.tbl-compare td:first-child::before{content:"\00d7";color:#b6c0cb}
.tbl.tbl-compare td:last-child::before{content:"\2713";color:var(--accent)}
