:root{
  --navy:#12233F; --navy-deep:#0A1626; --gold:#C89B3C; --gold-light:#E6C976; --gold-dark:#8B6520;
  --paper:#F7F5F0; --paper-dim:#EFEBE1; --ink:#1C1C1A; --ink-soft:#4A4A46; --terracotta:#B34632;
}
html{scroll-behavior:smooth;}
.lead-form{scroll-margin-top:24px;}
body{background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; line-height:1.65; overflow-x:hidden;}
.display{font-family:'Fraunces',serif;}
.mono{font-family:'IBM Plex Mono',monospace; letter-spacing:0.06em; text-transform:uppercase;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
img{max-width:100%; height:auto; display:block;}
a{color:inherit;}

/* Header */
header{background:var(--navy); color:#fff; position:relative; z-index:50;}
header > .wrap{display:flex; justify-content:space-between; align-items:center; padding:18px 24px; gap:24px;}
.logo{font-family:'Fraunces',serif; font-size:21px; font-weight:600; text-decoration:none; color:#fff; display:flex; align-items:center;}
.site-logo{height:56px; width:auto; display:block;}
.footer-logo{height:64px;}
.logo span{color:var(--gold-light);}
.desktop-nav{display:flex; gap:26px; font-size:14px; align-items:center;}
.desktop-nav > a{color:#D7DCE5; text-decoration:none;}
.nav-item{position:relative; cursor:pointer; color:#D7DCE5;}
.nav-item .dropdown{
  display:none; position:absolute; top:28px; left:0; background:#fff; color:var(--ink);
  min-width:260px; box-shadow:0 12px 30px rgba(0,0,0,0.18); border-radius:4px; padding:8px 0; z-index:60;
}
.nav-item:hover .dropdown{display:block;}
.dropdown a{display:block; padding:9px 18px; font-size:13.5px; text-decoration:none; color:var(--ink-soft);}
.dropdown a:hover{background:var(--paper-dim); color:var(--navy);}
.call-badge{background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.18); padding:8px 16px; border-radius:2px; font-size:13px; font-family:'IBM Plex Mono',monospace; text-decoration:none; color:#fff; white-space:nowrap;}
.mobile-toggle{display:none; background:none; border:none; color:#fff; font-size:24px; cursor:pointer;}
.mobile-nav{display:none; flex-direction:column; background:var(--navy-deep); padding:10px 24px 20px;}
.mobile-nav a{color:#D7DCE5; text-decoration:none; padding:9px 0; font-size:14px; border-bottom:1px solid rgba(255,255,255,0.06);}
.mobile-group-label{color:var(--gold-light); font-size:11px; text-transform:uppercase; letter-spacing:0.08em; margin-top:14px; font-family:'IBM Plex Mono',monospace;}
@media(max-width:900px){
  .desktop-nav, .call-badge{display:none;}
  .mobile-toggle{display:block;}
  .mobile-nav.open{display:flex;}
}

/* Hero (home) */
.hero{background:var(--navy); color:#fff; padding:70px 0 60px; position:relative; overflow:hidden;}
.eyebrow{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-light); margin-bottom:20px;}
.hero h1{font-size:clamp(32px,5vw,54px); font-weight:500; line-height:1.1; max-width:780px; letter-spacing:-0.01em;}
.hero h1 em{font-style:italic; color:var(--gold-light); font-weight:400;}
.hero p.sub{margin-top:22px; max-width:540px; font-size:16.5px; color:#C4CBD8;}
.hero-cta{display:flex; gap:14px; margin-top:32px; flex-wrap:wrap;}
.btn-primary{background:var(--gold); color:var(--navy-deep); border:none; padding:14px 26px; font-family:'Inter',sans-serif; font-weight:600; font-size:14px; cursor:pointer; border-radius:2px; text-decoration:none; display:inline-block;}
.btn-ghost{background:transparent; color:#fff; border:1px solid rgba(255,255,255,0.35); padding:14px 26px; font-family:'Inter',sans-serif; font-weight:500; font-size:14px; cursor:pointer; border-radius:2px; text-decoration:none; display:inline-block;}
.route-map{margin-top:50px; padding-top:34px; border-top:1px solid rgba(255,255,255,0.12);}
.route-track{position:relative; display:flex; justify-content:space-between; align-items:center; padding:0 8px; flex-wrap:wrap; gap:14px;}
.route-track::before{content:""; position:absolute; top:5px; left:8px; right:8px; height:1px; background-image:repeating-linear-gradient(90deg, var(--gold-light) 0 6px, transparent 6px 14px); opacity:0.5;}
.route-stop{position:relative; text-align:center; flex:1; min-width:90px;}
.route-dot{width:11px; height:11px; border-radius:50%; background:var(--gold-light); margin:0 auto 12px; position:relative; z-index:2;}
.route-stop.origin .route-dot{background:#fff; width:13px; height:13px;}
.route-label{font-size:12.5px; color:#D7DCE5;}
.route-label.origin{font-weight:600; color:#fff;}

/* Page header (inner pages) */
.page-hero{background:var(--navy); color:#fff; padding:56px 0;}
.page-hero .eyebrow{margin-bottom:14px;}
.page-hero h1{font-size:clamp(28px,4vw,42px); font-weight:500;}
.breadcrumb{font-size:13px; color:#9AA6B8; margin-bottom:14px;}
.breadcrumb a{color:#C4CBD8; text-decoration:none;}

/* Content */
.content-wrap{max-width:820px; margin:0 auto; padding:56px 24px;}
.content-wrap h2{font-family:'Fraunces',serif; font-size:28px; font-weight:500; margin:38px 0 16px; color:var(--navy);}
.content-wrap h2:first-child{margin-top:0;}
.content-wrap h3{font-family:'Fraunces',serif; font-size:21px; font-weight:500; margin:28px 0 12px; color:var(--navy);}
.content-wrap h4{font-size:17px; font-weight:600; margin:22px 0 10px; color:var(--ink);}
.content-wrap h5{font-family:'IBM Plex Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:var(--terracotta); margin:20px 0 8px;}
.content-wrap p{font-size:15.5px; color:var(--ink-soft); margin-bottom:14px;}
.content-wrap ul,.content-wrap ol{margin:0 0 18px 22px; font-size:15.5px; color:var(--ink-soft);}
.content-wrap li{margin-bottom:8px;}
.content-wrap strong{color:var(--ink); font-weight:600;}
.content-wrap img{border-radius:4px; margin:24px 0;}
.content-wrap a{color:var(--terracotta); text-decoration:underline;}

/* Stats */
.stats{background:var(--paper-dim); padding:32px 0;}
.stats .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:20px;}
.stat{text-align:center; flex:1; min-width:120px;}
.stat .num{font-family:'Fraunces',serif; font-size:32px; color:var(--navy); font-weight:500;}
.stat .label{font-size:12.5px; color:var(--ink-soft); margin-top:4px;}

/* Services grid */
section.services{padding:70px 0;}
.section-head{max-width:600px; margin-bottom:44px;}
.section-head .eyebrow{color:var(--terracotta);}
.section-head h2{font-size:clamp(26px,3.5vw,34px); font-weight:500; letter-spacing:-0.01em;}
.service-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1px; background:var(--paper-dim); border:1px solid var(--paper-dim);}
.service-card{background:var(--paper); padding:28px 26px;}
.service-index{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--gold-dark);}
.service-card h3{font-family:'Fraunces',serif; font-size:19px; font-weight:500; margin:14px 0 8px;}
.service-card p{font-size:14px; color:var(--ink-soft);}

/* Process */
.process-section{background:var(--navy); color:#fff; padding:70px 0;}
.process-section .section-head h2{color:#fff;}
.process-grid{display:flex; gap:32px; flex-wrap:wrap;}
.process-step{flex:1; min-width:220px;}
.stamp{width:48px; height:48px; border:2px solid var(--gold-light); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-size:19px; color:var(--gold-light); margin-bottom:18px; transform:rotate(-6deg);}
.process-step h3{font-size:17px; font-weight:600; margin-bottom:8px;}
.process-step p{font-size:13.5px; color:#B9C1CE;}

/* Testimonials */
.testimonial-card{background:var(--paper-dim); padding:32px; border-left:3px solid var(--gold); margin-bottom:20px;}
.testimonial-card p.quote{font-family:'Fraunces',serif; font-size:19px; font-style:italic; line-height:1.5; color:var(--navy); max-width:640px;}
.testimonial-card .who{margin-top:16px; font-size:13px; color:var(--ink-soft);}
.testimonial-card .who b{color:var(--ink);}

.stub-divider{display:flex; align-items:center; gap:12px; padding:14px 0; color:var(--ink-soft); font-size:12px;}
.stub-divider::before,.stub-divider::after{content:""; flex:1; height:1px; background-image:repeating-linear-gradient(90deg, var(--ink-soft) 0 6px, transparent 6px 12px); opacity:0.4;}

/* CTA band */
.cta-band{background:var(--terracotta); color:#fff; text-align:center; padding:56px 0;}
.cta-band h2{font-family:'Fraunces',serif; font-size:clamp(24px,3.5vw,32px); font-weight:500;}
.cta-band .btn-primary{background:#fff; color:var(--terracotta); margin-top:6px;}

/* Form */
.lead-form{background:var(--paper-dim); padding:32px; border-radius:6px; margin:36px 0;}
.lead-form label{display:block; font-size:13px; color:var(--ink-soft); margin-bottom:6px; margin-top:14px;}
.lead-form input, .lead-form textarea, .lead-form select{width:100%; padding:11px 12px; border:1px solid #D9D4C6; border-radius:3px; font-family:'Inter',sans-serif; font-size:14px; background:#fff;}
.lead-form button{margin-top:20px;}
.form-status{margin-top:14px; font-size:13.5px;}

/* Footer */
footer{background:var(--navy-deep); color:#B9C1CE; padding:46px 0 24px; font-size:13.5px;}
footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:36px;}
footer a{text-decoration:none; color:#B9C1CE;}
footer p{margin-bottom:6px;}

/* WhatsApp float */
.whatsapp-float{position:fixed; bottom:22px; right:22px; background:#25D366; width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(0,0,0,0.25); z-index:100;}

@media(max-width:700px){
  header > .wrap{padding:14px 18px;}
  .route-track{justify-content:flex-start;}
  .content-wrap{padding:40px 20px;}
}
