:root{
  --cm-primary-navy:#00345C;
  --cm-primary-emerald:#0B5A3A;
  --cm-accent-orange:#F5A336;
  --cm-soft-off-white:#F7F9F8;
  --cm-neutral-gray:#6B7280;
  --cm-dark-charcoal:#111827;
  --white:#ffffff;

  --shadow-sm:0 10px 24px rgba(17,24,39,.06);
  --shadow-md:0 18px 44px rgba(17,24,39,.10);
  --shadow-lg:0 24px 70px rgba(17,24,39,.14);

  --radius:24px;
  --transition:.25s ease;
}

/* =========================
   Base
========================= */

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;
  background:var(--cm-soft-off-white);
  color:var(--cm-dark-charcoal);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

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

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

/* =========================
   Header
========================= */

.site-header{
  position:sticky;
  top:0;
  z-index:20;

  display:flex;
  align-items:center;
  justify-content:space-between;

  padding:18px clamp(22px,5vw,72px);

  background:rgba(247,249,248,.88);
  backdrop-filter:blur(14px);

  border-bottom:1px solid rgba(0,52,92,.08);
}

.brand{
  display:flex;
  align-items:center;
  gap:14px;

  font-weight:800;
  color:var(--cm-primary-navy);
  letter-spacing:-.03em;
}

.brand-mark{
  width:56px;
  height:56px;
  min-width:56px;

  display:flex;
  align-items:center;
  justify-content:center;

  overflow:hidden;
  flex-shrink:0;
}

.brand-mark img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.brand-text{
  font-size:1.12rem;
}

.nav-links{
  display:flex;
  gap:28px;

  font-weight:600;
  color:var(--cm-primary-navy);
  font-size:.95rem;
}

.nav-links a{
  position:relative;
  transition:color var(--transition);
}

.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-6px;

  width:0%;
  height:2px;

  background:var(--cm-primary-emerald);
  transition:width var(--transition);
}

.nav-links a:hover{
  color:var(--cm-primary-emerald);
}

.nav-links a:hover::after{
  width:100%;
}

/* =========================
   Hero
========================= */

.hero{
  position:relative;
  overflow:hidden;

  display:grid;
  grid-template-columns:1.18fr .82fr;
  gap:42px;
  align-items:center;

  min-height:calc(100vh - 83px);

  padding:80px clamp(22px,5vw,72px);

  background:
    radial-gradient(circle at 82% 18%, rgba(245,163,54,.18), transparent 28%),
    linear-gradient(135deg,#ffffff 0%,#f7f9f8 52%,#eef6f2 100%);
}

.hero::before{
  content:"";
  position:absolute;

  inset:auto -10% -30% 42%;

  height:520px;

  background:
    linear-gradient(
      135deg,
      rgba(0,52,92,.09),
      rgba(11,90,58,.12)
    );

  transform:rotate(-7deg);
  border-radius:60px;
}

.hero-content,
.hero-card{
  position:relative;
  z-index:1;
}

.eyebrow,
.section-kicker{
  margin:0 0 14px;

  color:var(--cm-primary-emerald);

  text-transform:uppercase;
  letter-spacing:.12em;

  font-weight:800;
  font-size:.78rem;
}

.hero h1{
  margin:0;

  max-width:890px;

  color:var(--cm-primary-navy);

  font-size:clamp(3rem,7vw,6.6rem);
  line-height:.92;
  letter-spacing:-.07em;
}

.hero-copy{
  max-width:730px;
  margin:28px 0 0;

  color:#374151;
  font-size:clamp(1.05rem,1.5vw,1.28rem);
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;

  margin-top:34px;
}

/* =========================
   Buttons
========================= */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-height:48px;
  padding:13px 22px;

  border-radius:999px;
  border:1px solid transparent;

  font-weight:800;

  transition:
    transform var(--transition),
    background var(--transition),
    border-color var(--transition),
    box-shadow var(--transition);
}

.btn:hover{
  transform:translateY(-2px);
}

.btn.primary{
  background:var(--cm-primary-emerald);
  color:white;

  box-shadow:
    0 12px 28px rgba(11,90,58,.22);
}

.btn.primary:hover{
  background:#084a31;
}

.btn.secondary{
  background:white;
  color:var(--cm-primary-navy);

  border-color:rgba(0,52,92,.18);
}

.btn.secondary:hover{
  border-color:rgba(0,52,92,.32);
  box-shadow:var(--shadow-sm);
}

.btn.full{
  width:100%;
  margin-top:10px;
}

/* =========================
   Hero Card
========================= */

.hero-card{
  background:rgba(255,255,255,.84);

  border:1px solid rgba(0,52,92,.1);
  border-radius:var(--radius);

  padding:24px;

  box-shadow:var(--shadow-lg);
}

.metric{
  padding:20px 0;
  border-bottom:1px solid rgba(0,52,92,.1);
}

.metric:last-child{
  border-bottom:0;
}

.metric span{
  display:inline-grid;
  place-items:center;

  width:36px;
  height:36px;

  border-radius:50%;

  background:rgba(245,163,54,.18);
  color:#a85d00;

  font-weight:900;
}

.metric strong{
  display:block;
  margin-top:12px;

  color:var(--cm-primary-navy);
  font-size:1.08rem;
}

.metric p{
  margin:6px 0 0;
  color:var(--cm-neutral-gray);
}

/* =========================
   Sections
========================= */

.section{
  padding:86px clamp(22px,5vw,72px);
}

.section h2{
  margin:0;

  color:var(--cm-primary-navy);

  font-size:clamp(2rem,4vw,3.8rem);
  line-height:1;
  letter-spacing:-.055em;
}

/* =========================
   Intro
========================= */

.intro{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:46px;

  background:white;
}

.intro p:last-child,
.statement p,
.contact p{
  margin:0;

  font-size:1.08rem;
  color:#4b5563;
}

/* =========================
   Services
========================= */

.services{
  background:var(--cm-soft-off-white);
}

.section-heading{
  max-width:780px;
  margin-bottom:30px;
}

.grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.card{
  background:white;

  border:1px solid rgba(0,52,92,.09);
  border-radius:22px;

  padding:26px;

  box-shadow:var(--shadow-sm);

  transition:
    transform var(--transition),
    box-shadow var(--transition),
    border-color var(--transition);
}

.card:hover{
  transform:translateY(-4px);

  box-shadow:var(--shadow-md);

  border-color:rgba(0,52,92,.16);
}

.card-icon{
  display:grid;
  place-items:center;

  width:44px;
  height:44px;

  border-radius:14px;

  background:rgba(11,90,58,.1);
  color:var(--cm-primary-emerald);

  font-weight:900;
  font-size:1.2rem;
}

.card h3{
  margin:20px 0 8px;

  color:var(--cm-primary-navy);
  font-size:1.18rem;
}

.card p{
  margin:0;
  color:var(--cm-neutral-gray);
}

/* =========================
   Approach
========================= */

.approach{
  background:
    linear-gradient(
      135deg,
      var(--cm-primary-navy),
      var(--cm-dark-charcoal)
    );

  color:white;
}

.approach-panel{
  max-width:1100px;
}

.approach h2{
  color:white;
}

.steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;

  margin-top:34px;
}

.steps div{
  padding:24px;

  border-radius:20px;
  border:1px solid rgba(255,255,255,.16);

  background:rgba(255,255,255,.06);

  transition:
    transform var(--transition),
    background var(--transition);
}

.steps div:hover{
  transform:translateY(-3px);
  background:rgba(255,255,255,.08);
}

.steps span{
  color:var(--cm-accent-orange);

  font-weight:900;

  text-transform:uppercase;
  letter-spacing:.08em;
}

.steps p{
  margin:10px 0 0;
  color:#d1d5db;
}

/* =========================
   Statement
========================= */

.statement{
  text-align:center;
  background:white;
}

.statement h2{
  max-width:1000px;
  margin:0 auto;
}

.statement p{
  max-width:790px;
  margin:24px auto 0;
}

/* =========================
   Contact
========================= */

.contact{
  display:grid;
  grid-template-columns:1fr .75fr;
  gap:30px;
  align-items:center;
}

.contact-card{
  background:white;

  border:1px solid rgba(0,52,92,.1);
  border-radius:var(--radius);

  padding:30px;

  box-shadow:var(--shadow-lg);
}

.contact-card h3{
  margin:0 0 12px;

  color:var(--cm-primary-navy);
  font-size:1.5rem;
}

/* =========================
   Footer
========================= */

.footer{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:20px;

  padding:28px clamp(22px,5vw,72px);

  background:var(--cm-dark-charcoal);
  color:#d1d5db;

  font-size:.92rem;
}

/* =========================
   Responsive
========================= */

@media (max-width:900px){

  .nav-links{
    display:none;
  }

  .hero,
  .intro,
  .contact{
    grid-template-columns:1fr;
  }

  .grid,
  .steps{
    grid-template-columns:1fr;
  }

  .hero{
    min-height:auto;
    padding-top:58px;
  }

  .hero h1{
    font-size:clamp(2.7rem,14vw,4.9rem);
  }

  .section{
    padding:64px 22px;
  }

  .site-header{
    padding:14px 22px;
  }

  .brand-text{
    font-size:1rem;
  }

  .hero-card{
    margin-top:10px;
  }

  .brand-mark{
    width:50px;
    height:50px;
  }
}
