@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@500&display=swap');

:root{
  --navy:#0F1E3D;
  --navy-deep:#0A1529;
  --gold:#B8935F;
  --gold-light:#D4B88A;
  --cream:#FAF8F4;
  --stone:#E8E2D6;
  --charcoal:#1C1C24;
  --gray:#6B6B76;
  --max: 1160px;
}

*{box-sizing:border-box; margin:0; padding:0;}

html{scroll-behavior:smooth;}
[id]{scroll-margin-top:90px;}

body{
  font-family:'Inter', sans-serif;
  color:var(--charcoal);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:500;
  line-height:1.1;
  letter-spacing:-0.01em;
  color:var(--navy);
}

.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.7rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:500;
}

a{color:inherit; text-decoration:none;}

img{max-width:100%; display:block;}

.wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}

/* NAV */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(250,248,244,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(15,30,61,0.08);
}
.nav .wrap{display:flex; align-items:center; justify-content:space-between; height:78px;}
.logo{display:flex; align-items:center; gap:10px; font-family:'Fraunces', serif; font-size:1.3rem; color:var(--navy); font-weight:600;}
.logo .mark{
  width:30px; height:30px; border:1.5px solid var(--navy); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:0.95rem; position:relative;
}
.logo .mark::after{content:''; position:absolute; width:12px; height:1.5px; background:var(--gold); bottom:11px;}
.logo-img{height:26px; width:auto;}
.logo-img-full{height:52px; width:auto; border-radius:3px;}
.navlinks{display:flex; gap:36px; align-items:center; font-size:0.92rem; font-weight:500;}
.navlinks a{color:var(--navy); opacity:0.75; transition:opacity .2s;}
.navlinks a:hover, .navlinks a.active{opacity:1;}
.navlinks a.active{color:var(--gold);}
.nav-cta{
  background:var(--navy); color:var(--cream); padding:11px 22px; border-radius:100px;
  font-size:0.88rem; font-weight:500; white-space:nowrap;
}
.nav-cta:hover{background:var(--navy-deep);}
.nav-toggle{display:none;}

@media(max-width:860px){
  .navlinks{position:fixed; top:78px; left:0; right:0; background:var(--cream); flex-direction:column; padding:24px 32px; gap:20px; border-bottom:1px solid rgba(15,30,61,0.08); transform:translateY(-150%); transition:transform .3s ease; }
  .navlinks.open{transform:translateY(0);}
  .nav-toggle{display:block; background:none; border:none; font-size:1.6rem; color:var(--navy); cursor:pointer;}
}

/* TRENDLINE signature element */
.trendline{width:100%; height:34px; display:block; margin:0 auto;}
.trendline path{
  fill:none; stroke:var(--gold); stroke-width:1.6;
  stroke-dasharray:400; stroke-dashoffset:400;
  animation:draw 2.2s ease forwards;
}
@keyframes draw{to{stroke-dashoffset:0;}}
@media(prefers-reduced-motion:reduce){.trendline path{animation:none; stroke-dashoffset:0;}}

.divider{padding:14px 0; background:var(--cream);}

/* BUTTONS */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:15px 30px; border-radius:100px; font-weight:500; font-size:0.95rem;
  transition:transform .2s ease, background .2s ease;
}
.btn-primary{background:var(--navy); color:var(--cream);}
.btn-primary:hover{background:var(--navy-deep); transform:translateY(-1px);}
.btn-outline{border:1.5px solid var(--navy); color:var(--navy);}
.btn-outline:hover{background:var(--navy); color:var(--cream);}
.btn-gold{background:var(--gold); color:var(--navy-deep);}
.btn-gold:hover{background:var(--gold-light);}

/* HERO */
.hero{padding:88px 0 100px;}
.hero .wrap{display:grid; grid-template-columns:1.15fr 0.85fr; gap:72px; align-items:center;}
.hero h1{font-size:clamp(2.4rem, 4.4vw, 3.6rem); margin:18px 0 24px;}
.hero p.lead{font-size:1.12rem; color:var(--gray); max-width:46ch; margin-bottom:34px;}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
.hero-img{
  border-radius:4px; overflow:hidden; aspect-ratio:4/5; background:var(--stone);
  position:relative;
}
.hero-img img{width:100%; height:100%; object-fit:cover;}
.hero-img .badge{
  position:absolute; bottom:20px; left:20px; background:var(--cream); padding:14px 18px; border-radius:2px;
  font-family:'Fraunces', serif; font-size:0.95rem; color:var(--navy);
}
.hero-img .badge span{display:block; font-family:'Inter'; font-size:0.78rem; color:var(--gray); margin-top:2px; font-weight:500;}

@media(max-width:860px){
  .hero .wrap{grid-template-columns:1fr; gap:40px;}
  .hero-img{order:-1; aspect-ratio:16/10;}
  .two-col-a, .two-col-b{grid-template-columns:1fr !important; gap:40px !important;}
}

.two-col-a{display:grid; grid-template-columns:1.15fr 0.85fr; gap:72px; align-items:start;}
.two-col-b{display:grid; grid-template-columns:1.3fr 0.7fr; gap:64px;}

h2{font-size:clamp(1.7rem,2.8vw,2.3rem);}

/* SECTIONS */
section{padding:80px 0;}
.section-head{max-width:640px; margin-bottom:48px;}
.section-head h2{font-size:clamp(1.7rem,2.8vw,2.3rem); margin-top:12px;}
.section-head p{color:var(--gray); font-size:1rem; margin-top:14px;}

.bg-navy{background:var(--navy); color:var(--cream);}
.bg-navy h2, .bg-navy h3, .bg-navy .eyebrow{color:var(--cream);}
.bg-navy .eyebrow{color:var(--gold-light);}
.bg-stone{background:var(--stone);}

/* STATS */
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(250,248,244,0.14); border-radius:4px; overflow:hidden;}
.stat{background:var(--navy); padding:38px 28px;}
.stat .num{font-family:'Fraunces', serif; font-size:2.5rem; color:var(--gold-light); font-weight:500;}
.stat p{font-size:0.9rem; color:rgba(250,248,244,0.75); margin-top:8px;}
@media(max-width:860px){.stats-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.stats-grid{grid-template-columns:1fr;}}

/* TWO COL / SERVICES */
.split{display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid rgba(15,30,61,0.12);}
.split-col{padding:48px 44px; border-right:1px solid rgba(15,30,61,0.12); border-bottom:1px solid rgba(15,30,61,0.12);}
.split-col:last-child{border-right:none;}
.split-col .eyebrow{margin-bottom:10px;}
.split-col h3{font-size:1.6rem; margin-bottom:16px;}
.split-col p{color:var(--gray); margin-bottom:20px;}
.split-col ul{list-style:none; margin-bottom:20px;}
.split-col li{padding:8px 0 8px 20px; position:relative; font-size:0.95rem; border-top:1px solid rgba(15,30,61,0.08);}
.split-col li:first-child{border-top:none;}
.split-col li::before{content:'—'; position:absolute; left:0; color:var(--gold);}
@media(max-width:760px){.split{grid-template-columns:1fr;} .split-col{border-right:none;}}

/* CREDIBILITY */
.logos{display:flex; align-items:center; gap:40px; flex-wrap:wrap; margin-top:36px;}
.logos .lg{font-family:'Inter', sans-serif; font-weight:500; font-size:0.95rem; color:rgba(250,248,244,0.65); letter-spacing:0.02em;}
.disclaimer{margin-top:44px; font-size:0.82rem; color:rgba(250,248,244,0.6); font-style:italic; max-width:60ch;}

/* CARDS (About values / process) */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.card{background:var(--cream); border:1px solid rgba(15,30,61,0.1); padding:32px 28px; border-radius:4px;}
.card .num{font-family:'IBM Plex Mono'; color:var(--gold); font-size:0.85rem;}
.card h4{font-size:1.15rem; margin:14px 0 10px;}
.card p{color:var(--gray); font-size:0.93rem;}
@media(max-width:860px){.card-grid{grid-template-columns:1fr;}}

/* CTA BAND */
.cta-band{padding:80px 0; text-align:center;}
.cta-band h2{font-size:clamp(1.7rem,3vw,2.3rem); margin-bottom:20px;}
.cta-band .btn-row{display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:28px;}

/* FOOTER */
footer{background:var(--navy); color:var(--cream); padding:56px 0 32px;}
.footer-top{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px; padding-bottom:36px; border-bottom:1px solid rgba(250,248,244,0.14);}
.footer-logo{font-family:'Fraunces', serif; font-size:1.6rem; text-align:center;}
.footer-logo .sub{font-family:'IBM Plex Mono'; font-size:0.7rem; letter-spacing:0.16em; color:var(--gold-light); display:block; margin-top:2px;}
.footer-nav{display:flex; gap:28px; font-size:0.9rem; flex-wrap:wrap;}
.footer-nav a{opacity:0.75;}
.footer-nav a:hover{opacity:1;}
.social{display:flex; gap:16px;}
.social a{width:34px; height:34px; border:1px solid rgba(250,248,244,0.25); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.8rem;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding-top:24px; font-size:0.8rem; color:rgba(250,248,244,0.55);}

/* FORMS */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.form-grid .full{grid-column:1/-1;}
label{display:block; font-size:0.85rem; font-weight:500; margin-bottom:8px; color:var(--navy);}
input, textarea, select{
  width:100%; padding:13px 16px; border:1.5px solid rgba(15,30,61,0.18); border-radius:3px;
  font-family:'Inter'; font-size:0.95rem; background:var(--cream); color:var(--charcoal);
}
input:focus, textarea:focus, select:focus{outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold);}
textarea{resize:vertical; min-height:120px;}
@media(max-width:600px){.form-grid{grid-template-columns:1fr;}}

/* PAGE HERO (interior pages) */
.page-hero{padding:64px 0 56px; border-bottom:1px solid rgba(15,30,61,0.1);}
.page-hero h1{font-size:clamp(2rem,3.6vw,2.9rem); margin-top:14px; max-width:16ch;}
.page-hero p{color:var(--gray); font-size:1.05rem; max-width:56ch; margin-top:16px;}
