/* Public marketing site (home / about / services / careers). Shared brand styling. */
:root{ --navy:#1a2744; --navy2:#1e1b4b; --gold:#d4af37; --gold2:#e5c158; --white:#fff; --cream:#f9f9f7; --cream2:#f2f2ef; --border:#e2e2df; --mid:#4a5568; --muted:#8b95a5; }
*{ box-sizing:border-box; }
body{ margin:0; font-family:'Nunito',sans-serif; color:var(--navy); background:var(--white); line-height:1.55; }
a{ color:inherit; }
h1,h2,h3{ font-family:'Playfair Display',serif; }
.wrap{ max-width:1100px; margin:0 auto; padding:0 24px; }

/* Nav */
.nav{ position:sticky; top:0; z-index:50; background:rgba(26,39,68,0.97); color:#fff; backdrop-filter:saturate(1.2) blur(4px); }
.nav-inner{ max-width:1100px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; gap:20px; }
.brand{ font-family:'Playfair Display',serif; font-weight:700; font-size:22px; color:var(--gold); text-decoration:none; }
.nav-links{ margin-left:auto; display:flex; gap:22px; align-items:center; }
.nav-links a{ color:#e5e7eb; text-decoration:none; font-weight:700; font-size:14px; }
.nav-links a:hover, .nav-links a.on{ color:var(--gold); }
.nav-cta{ background:var(--gold); color:var(--navy)!important; padding:9px 18px; border-radius:10px; }
.nav-cta:hover{ background:var(--gold2); }
.menu-btn{ display:none; background:none; border:none; color:#fff; font-size:24px; cursor:pointer; }

/* Hero */
.hero{ background:linear-gradient(135deg,var(--navy) 0%,var(--navy2) 100%); color:#fff; padding:88px 0 96px; text-align:center; }
.hero.sm{ padding:64px 0 68px; }
.hero h1{ font-size:52px; margin:0 0 14px; color:var(--gold); line-height:1.1; }
.hero.sm h1{ font-size:40px; }
.hero p{ font-size:20px; color:#cbd5e1; max-width:680px; margin:0 auto 32px; }
.hero.sm p{ margin-bottom:0; }
.btn{ display:inline-block; padding:15px 32px; border-radius:12px; font-weight:800; font-size:16px; text-decoration:none; cursor:pointer; border:none; transition:all .2s; }
.btn-gold{ background:var(--gold); color:var(--navy); box-shadow:0 6px 18px rgba(212,175,55,.28); }
.btn-gold:hover{ background:var(--gold2); transform:translateY(-2px); }
.btn-ghost{ background:transparent; color:#fff; border:2px solid rgba(255,255,255,.5); }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }
.btn-nav{ background:var(--navy); color:#fff; padding:11px 22px; border-radius:10px; font-weight:800; border:none; cursor:pointer; }
.hero-cta{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

section{ padding:72px 0; }
.sec-title{ font-size:36px; text-align:center; margin:0 0 8px; }
.sec-sub{ text-align:center; color:var(--muted); font-size:17px; max-width:640px; margin:0 auto 44px; }
.alt{ background:var(--cream); }

.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.cards.two{ grid-template-columns:repeat(2,1fr); }
.card{ background:#fff; border:1px solid var(--border); border-radius:16px; padding:32px; box-shadow:0 4px 14px rgba(0,0,0,.04); }
.card .ic{ font-size:34px; margin-bottom:12px; }
.card h3{ font-size:22px; margin:0 0 10px; }
.card p{ color:var(--mid); margin:0; }
.card ul{ color:var(--mid); margin:10px 0 0; padding-left:18px; }
.card ul li{ margin-bottom:6px; }

.split{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.band{ border-radius:20px; padding:44px; color:#fff; }
.band h3{ font-size:28px; margin:0 0 10px; color:var(--gold); }
.band p{ color:#cbd5e1; margin:0 0 22px; font-size:16px; }
.band.seek{ background:linear-gradient(135deg,var(--navy) 0%,var(--navy2) 100%); }
.band.hire{ background:linear-gradient(135deg,#0e7490 0%,#155e75 100%); }
.band.hire h3{ color:#fff; }

.about-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:center; }
.about-grid p{ font-size:17px; color:var(--mid); }
.prose p{ font-size:17px; color:var(--mid); max-width:760px; }
.stat-row{ display:flex; gap:28px; flex-wrap:wrap; margin-top:8px; }
.stat b{ display:block; font-family:'Playfair Display',serif; font-size:40px; color:var(--navy); }
.stat span{ color:var(--muted); font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.04em; }

.contact-box{ background:#fff; border:1px solid var(--border); border-radius:16px; padding:32px; text-align:center; }
.contact-box a{ color:var(--navy); font-weight:800; }

footer{ background:var(--navy); color:#cbd5e1; padding:40px 0; }
.foot-inner{ display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; align-items:center; }
.foot-links a{ color:#cbd5e1; text-decoration:none; margin-right:18px; font-weight:700; font-size:14px; }
.foot-links a:hover{ color:var(--gold); }

/* Employer modal (injected by site.js) */
.modal-overlay{ display:none; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:1000; align-items:flex-start; justify-content:center; padding:40px 20px; overflow-y:auto; }
.modal-overlay.active{ display:flex; }
.modal-box{ background:#fff; border-radius:16px; max-width:560px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,.3); }
.modal-head{ padding:20px 28px; border-bottom:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; }
.modal-head h3{ margin:0; font-size:22px; color:var(--navy); }
.modal-close{ background:none; border:none; font-size:28px; color:var(--muted); cursor:pointer; }
.modal-body{ padding:22px 28px; } .modal-foot{ padding:16px 28px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; gap:12px; background:var(--cream2); border-radius:0 0 16px 16px; }
.field{ margin-bottom:14px; } .field label{ display:block; font-weight:700; font-size:13px; margin-bottom:6px; } .field .req{ color:#b91c1c; }
.field input, .field textarea{ width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:8px; font-family:inherit; font-size:14px; }
.field textarea{ resize:vertical; min-height:80px; } .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.btn-sec{ padding:11px 20px; background:#fff; border:1px solid var(--border); border-radius:10px; font-weight:700; cursor:pointer; }
.err{ background:#fef2f2; color:#b91c1c; padding:10px 14px; border-radius:8px; font-size:13px; margin-bottom:12px; display:none; }
.ok{ text-align:center; padding:36px 20px; } .ok .c{ font-size:56px; color:#16a34a; }

@media(max-width:820px){
  .nav-links{ display:none; } .menu-btn{ display:block; margin-left:auto; }
  .nav-links.open{ display:flex; position:absolute; top:56px; left:0; right:0; flex-direction:column; background:var(--navy); padding:16px 24px; gap:14px; }
  .hero h1{ font-size:38px; } .sec-title{ font-size:28px; }
  .cards, .cards.two, .split, .about-grid{ grid-template-columns:1fr; }
}
