/* ============ TOKENS ============ */
:root{
  --navy:#0F1440;
  --navy-2:#1B2159;
  --gold:#E8A33D;
  --gold-soft:#F6D9A8;
  --coral:#FF7A45;
  --ivory:#FBF8F2;
  --paper:#FFFFFF;
  --ink:#171B3D;
  --slate:#5B6178;
  --line: rgba(15,20,64,0.10);
  --radius-lg: 28px;
  --radius-md: 18px;
  --shadow-soft: 0 20px 60px rgba(15,20,64,0.10);
  --shadow-deep: 0 30px 90px rgba(15,20,64,0.20);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Plus Jakarta Sans', sans-serif;
  color:var(--ink);
  background:var(--ivory);
  overflow-x:hidden;
}
h1,h2,h3,h4,.serif{
  font-family:'Fraunces', serif;
  color:var(--navy);
  margin:0;
  letter-spacing:-0.01em;
}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
.container{max-width:1180px;margin:0 auto;padding:0 24px;}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:12.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--coral); margin-bottom:18px;
}
.eyebrow::before{content:'';width:26px;height:1.5px;background:var(--coral);display:inline-block;}
.section{padding:110px 0;}
@media(max-width:768px){.section{padding:72px 0;}}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:16px 30px; border-radius:999px; font-weight:700; font-size:15px;
  border:1.5px solid transparent; cursor:pointer; transition:.3s ease;
}
.btn-primary{background:var(--navy); color:#fff;}
.btn-primary:hover{background:var(--coral); transform:translateY(-2px);}
.btn-ghost{border-color:var(--navy); color:var(--navy); background:transparent;}
.btn-ghost:hover{background:var(--navy); color:#fff;}
.btn-gold{background:var(--gold); color:var(--navy);}
.btn-gold:hover{background:var(--coral); color:#fff; transform:translateY(-2px);}

/* ============ NAVBAR ============ */
.navbar{
  position:fixed; top:0; left:0; right:0; z-index:999;
  background:rgba(251,248,242,0.85); backdrop-filter: blur(16px);
  border-bottom:1px solid var(--line);
  padding:14px 0;
  transition:.3s;
}
.navwrap{display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:56px; width:auto;}
.navlinks{display:flex; gap:36px; list-style:none; margin:0; padding:0;}
.navlinks a{
  font-weight:600; font-size:15px; color:var(--navy); position:relative; padding:6px 0;
}
.navlinks a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--coral); transition:.3s;
}
.navlinks a:hover::after{width:100%;}
.nav-cta{display:flex; align-items:center; gap:18px;}
.nav-toggle{display:none; background:none; border:none; font-size:22px; color:var(--navy); cursor:pointer;}
@media(max-width:900px){
  .navlinks{position:fixed; top:84px; left:0; right:0; background:var(--paper); flex-direction:column; align-items:center; gap:0; padding:10px 0; box-shadow:var(--shadow-soft); transform:translateY(-130%); transition:.35s;}
  .navlinks.open{transform:translateY(0);}
  .navlinks li{width:100%; text-align:center; border-bottom:1px solid var(--line);}
  .navlinks a{display:block; padding:16px 0;}
  .nav-toggle{display:block;}
  .nav-cta .btn-primary{display:none;}
}

/* Base styles for page components (reused across pages) */
.page-head{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:50px; flex-wrap:wrap;}
.page-head h2{font-size:clamp(32px,4vw,52px); font-weight:600; max-width:600px;}
.page-head p{color:var(--slate); max-width:460px; font-size:16.5px; line-height:1.7;}

/* fade-in on scroll */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* Scoped hover colors for footer since inline hover isn't possible */
.footer-col a:hover { color: var(--gold) !important; }
@media(max-width:800px) { .footer-grid { grid-template-columns: 1fr 1fr !important; } }


.hero .container{
    padding: 20px 24px !important;
}