@import url('https://fonts.googleapis.com/css2?family=Lora:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --ink:#14202E;
  --slate:#47576B;
  --paper:#F6F4EF;
  --white:#FFFFFF;
  --rust:#8C3B2E;
  --rust-soft:#F1E4E0;
  --line:rgba(20,32,46,0.12);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}

.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}

h1,h2,h3{font-family:'Lora', serif; font-weight:600; letter-spacing:-0.01em; color:var(--ink);}
h1{font-size:clamp(2.2rem, 4.6vw, 3.6rem); line-height:1.12;}
h2{font-size:clamp(1.7rem, 3vw, 2.3rem); line-height:1.2;}
h3{font-size:1.2rem; font-weight:600;}
p{color:var(--slate);}

.eyebrow{
  font-family:'Inter', sans-serif; font-size:0.76rem; font-weight:700;
  letter-spacing:0.13em; text-transform:uppercase; color:var(--rust);
}

/* Header */
header{position:sticky; top:0; z-index:50; background:rgba(246,244,239,0.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:20px 32px; max-width:1120px; margin:0 auto;}
.logo{font-family:'Lora', serif; font-size:1.25rem; font-weight:700; display:flex; align-items:center; gap:10px;}
.logo .mark{width:26px; height:26px; flex-shrink:0; object-fit:contain;}
.navlinks{display:flex; gap:34px; font-size:0.92rem; font-weight:500;}
.navlinks a{position:relative; padding:4px 0; color:var(--slate);}
.navlinks a:hover, .navlinks a.active{color:var(--ink);}
.navlinks a.active::after{content:''; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--rust);}
.nav-cta{background:var(--ink); color:var(--paper); padding:10px 20px; border-radius:2px; font-size:0.86rem; font-weight:600; border:1px solid var(--ink);}
.nav-cta:hover{background:transparent; color:var(--ink);}
.menu-toggle{display:none; background:none; border:none; cursor:pointer;}
.menu-toggle span{display:block; width:22px; height:2px; background:var(--ink); margin:5px 0;}

@media (max-width:900px){
  .navlinks{display:none; position:absolute; top:100%; left:0; right:0; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; gap:0; padding:8px 32px 20px;}
  .navlinks.open{display:flex;}
  .navlinks a{padding:12px 0; border-bottom:1px solid var(--line);}
  .nav{position:relative;}
  .menu-toggle{display:block;}
  .nav-cta{display:none;}
}

/* Buttons */
.btn{display:inline-block; padding:13px 28px; font-weight:600; font-size:0.93rem; border-radius:2px; transition:all .2s ease;}
.btn-primary{background:var(--ink); color:var(--paper); border:1px solid var(--ink);}
.btn-primary:hover{background:transparent; color:var(--ink);}
.btn-outline{border:1px solid var(--slate); color:var(--ink);}
.btn-outline:hover{border-color:var(--ink); background:var(--ink); color:var(--paper);}
.btn-rust{background:var(--rust); color:var(--white); border:1px solid var(--rust);}
.btn-rust:hover{background:transparent; color:var(--rust);}

/* Sections */
section{padding:88px 0;}
.section-tight{padding:64px 0;}
.divider{height:1px; background:var(--line); border:none;}

/* Footer */
footer{background:var(--ink); color:var(--paper); padding:60px 0 26px;}
footer .wrap{display:flex; flex-wrap:wrap; gap:44px; justify-content:space-between;}
footer h3{color:var(--paper); font-size:1.05rem;}
footer p, footer a{color:rgba(246,244,239,0.7); font-size:0.92rem;}
footer a:hover{color:var(--rust-soft);}
.foot-col{min-width:200px;}
.social-row{display:flex; gap:12px; margin-top:18px;}
.social-row a{
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%;
  border:1px solid rgba(246,244,239,0.25); color:rgba(246,244,239,0.7);
  transition:color .2s, border-color .2s;
}
.social-row a:hover{color:#C98E7F; border-color:#C98E7F;}
.social-row svg{width:16px; height:16px;}
.foot-bottom{max-width:1120px; margin:36px auto 0; padding:22px 32px 0; border-top:1px solid rgba(246,244,239,0.15); font-size:0.8rem; color:rgba(246,244,239,0.5); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;}

/* Grids */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:26px;}
@media (max-width:900px){ .grid-2,.grid-3{grid-template-columns:1fr;} .grid-4{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .grid-4{grid-template-columns:1fr;} }

.card{background:var(--white); border:1px solid var(--line); padding:32px 28px; border-radius:3px;}
.card .num{font-family:'Lora', serif; font-size:0.82rem; color:var(--rust); font-weight:600; letter-spacing:0.05em;}
.card h3{margin:12px 0 8px;}
.card p{font-size:0.95rem;}

/* Pillar card (big service block) */
.pillar{background:var(--white); border:1px solid var(--line); border-radius:3px; padding:40px; display:flex; flex-direction:column; height:100%;}
.pillar .eyebrow{margin-bottom:10px;}
.pillar h2{margin-bottom:14px;}
.pillar p.desc{font-size:1rem; margin-bottom:22px;}
.pillar ul{list-style:none; margin-bottom:26px; flex-grow:1;}
.pillar ul li{padding:10px 0; border-top:1px solid var(--line); font-size:0.95rem; color:var(--ink); font-weight:500;}
.pillar ul li:first-child{border-top:none;}

/* Hero */
.hero{padding-top:60px;}
.hero-inner{display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px; align-items:center;}
.hero h1{margin:16px 0 20px;}
.hero p.lead{font-size:1.08rem; max-width:480px; margin-bottom:30px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
.stat-row{display:flex; gap:36px; margin-top:52px; flex-wrap:wrap;}
.stat b{font-family:'Lora', serif; font-size:1.7rem; display:block;}
.stat span{font-size:0.84rem; color:var(--slate);}

/* Dual-circle diagram */
.dual-stage{position:relative; width:100%; max-width:420px; margin:0 auto; aspect-ratio:1.25/1;}
.circle{
  position:absolute; top:50%; width:52%; aspect-ratio:1/1; border-radius:50%; transform:translateY(-50%);
  display:flex; align-items:center; box-sizing:border-box; padding:0 6%;
}
.circle.left{left:1%; background:var(--ink); color:var(--paper); justify-content:flex-start; text-align:left;}
.circle.right{right:1%; background:var(--rust); color:var(--white); justify-content:flex-end; text-align:right;}
.circle-text{
  font-family:'Lora', serif; font-weight:600; font-size:clamp(0.78rem, 2vw, 1rem);
  line-height:1.25; width:52%;
}
.circle-text small{display:block; font-family:'Inter',sans-serif; font-weight:500; font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; opacity:0.75; margin-top:5px;}
.dual-center{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); background:var(--paper); border:1px solid var(--line); border-radius:50%; width:15%; aspect-ratio:1/1; min-width:44px; max-width:66px; display:flex; align-items:center; justify-content:center; text-align:center; z-index:2; box-shadow:0 10px 30px rgba(20,32,46,0.1); padding:4px;}
.dual-center span{font-family:'Lora', serif; font-weight:700; font-size:clamp(0.5rem, 1.6vw, 0.62rem); letter-spacing:0.02em; line-height:1.15;}

@media (max-width:1080px){
  .hero-inner{grid-template-columns:1fr; row-gap:8px;}
  .dual-stage{margin-top:16px;}
}
@media (max-width:600px){
  .dual-stage{max-width:300px;}
  .stat-row{gap:24px;}
}
@media (max-width:420px){
  .dual-stage{max-width:88vw;}
  .circle-text{font-size:clamp(0.62rem, 4.2vw, 0.78rem);}
  .dual-center{min-width:34px; max-width:52px;}
  .dual-center span{font-size:clamp(0.42rem, 2.6vw, 0.52rem);}
}

/* Page hero */
.page-hero{padding:68px 0 36px; border-bottom:1px solid var(--line);}
.page-hero p{max-width:600px; font-size:1.03rem;}

/* FAQ */
.faq-item{border-bottom:1px solid var(--line); padding:24px 0;}
.faq-item h3{margin-bottom:8px;}
.faq-item p{font-size:0.95rem;}

/* Contact */
.contact-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:52px;}
.info-row{display:flex; gap:16px; margin-bottom:26px;}
.info-row .ico{width:38px; height:38px; border-radius:50%; background:var(--white); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--rust); font-weight:700;}
.form-field{margin-bottom:18px;}
.form-field label{display:block; font-size:0.84rem; font-weight:600; margin-bottom:6px;}
.form-field input, .form-field textarea, .form-field select{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:2px; background:var(--white); font-family:'Inter',sans-serif; font-size:0.94rem; color:var(--ink);}
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{outline:2px solid var(--rust); outline-offset:1px; border-color:var(--rust);}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} .form-row{grid-template-columns:1fr;} }

/* Direct contact CTAs */
.cta-contact-row{display:flex; gap:18px; justify-content:center; flex-wrap:wrap; margin-top:36px;}
.cta-contact-btn{display:inline-flex; align-items:center; gap:10px; padding:16px 28px; font-size:1rem;}
.cta-ico{font-size:1.1rem; line-height:1;}
@media (max-width:600px){ .cta-contact-row{flex-direction:column; align-items:stretch;} .cta-contact-btn{justify-content:center;} }

/* Band */
.band{background:var(--ink); color:var(--paper); text-align:center;}
.band h2{color:var(--paper);}
.band p{color:rgba(246,244,239,0.75); max-width:520px; margin:14px auto 30px;}

/* Legal */
.legal p, .legal li{color:var(--slate); font-size:0.97rem; margin-bottom:14px;}
.legal h2{margin-top:40px; margin-bottom:14px; font-size:1.35rem;}
.legal ul{padding-left:22px; margin-bottom:14px;}
.legal-notice{background:var(--rust-soft); border:1px solid var(--rust); border-radius:3px; padding:20px 24px; margin-bottom:36px; font-size:0.9rem; color:var(--slate);}

/* Client logo tiles */
.logo-tile{
  height:56px; display:flex; align-items:center; margin-bottom:16px;
}
.logo-tile img{max-height:100%; max-width:150px; object-fit:contain;}
.logo-tile.on-navy{
  background:var(--ink); border-radius:3px; padding:10px 16px; display:inline-flex; height:auto;
}
.logo-tile.on-navy img{max-height:36px;}

/* Trusted-by strip */
.trusted-strip{padding:44px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.trusted-strip .label{text-align:center; margin-bottom:28px;}
.trusted-row{display:flex; align-items:center; justify-content:center; gap:48px; flex-wrap:wrap;}
.trusted-row .logo-wrap{height:34px; display:flex; align-items:center; opacity:0.85; transition:opacity .2s;}
.trusted-row .logo-wrap:hover{opacity:1;}
.trusted-row .logo-wrap img{max-height:100%; max-width:130px; object-fit:contain;}
.trusted-row .logo-wrap.on-navy{background:var(--ink); border-radius:3px; padding:8px 14px; height:auto;}
.trusted-row .logo-wrap.on-navy img{max-height:22px;}
@media (max-width:700px){ .trusted-row{gap:28px;} }

/* Founder section */
.founder-block{display:flex; gap:28px; align-items:flex-start; background:var(--white); border:1px solid var(--line); border-radius:3px; padding:32px;}
.founder-photo{
  width:84px; height:84px; border-radius:50%; background:var(--ink); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; color:var(--paper); font-family:'Lora',serif; font-weight:600; font-size:1.5rem;
}
.founder-name{font-size:1.15rem; margin-bottom:2px;}
.founder-title{color:var(--rust); font-size:0.85rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; margin-bottom:12px;}
.founder-bio{font-size:0.95rem;}

@media (max-width:600px){ section{padding:60px 0;} .nav{padding:16px 20px;} .founder-block{flex-direction:column; align-items:flex-start;} }
