:root {
  --navy: #142b3b;
  --navy-2: #1e4054;
  --teal: #18a999;
  --teal-dark: #118779;
  --gold: #f2a65a;
  --ink: #263746;
  --muted: #667784;
  --paper: #f5f8f8;
  --line: #e4ebed;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: "Inter", "Segoe UI", Arial, sans-serif;
  color: var(--ink); background: #fff; line-height: 1.65;
}
a { color: var(--teal-dark); }
a:hover { color: var(--navy); }
.navbar { background: rgba(255,255,255,.96); backdrop-filter: blur(12px); box-shadow: 0 3px 24px rgba(20,43,59,.06); }
.brand-mark { display:inline-grid; place-items:center; width:42px; height:42px; border-radius:13px; color:#fff; background:linear-gradient(135deg,var(--teal),var(--navy-2)); font-size:1.25rem; }
.brand-name { font-weight:800; letter-spacing:-.04em; color:var(--navy); line-height:1.05; }
.brand-sub { display:block; color:var(--muted); font-size:.64rem; letter-spacing:.18em; font-weight:700; text-transform:uppercase; margin-top:4px; }
.nav-link { font-weight:600; color:#435663 !important; }
.nav-link:hover, .nav-link.active { color:var(--teal-dark) !important; }
.btn-brand { background:var(--teal); color:#fff; border:0; border-radius:999px; padding:.85rem 1.35rem; font-weight:700; box-shadow:0 8px 20px rgba(24,169,153,.2); }
.btn-brand:hover { background:var(--teal-dark); color:#fff; transform:translateY(-1px); }
.btn-outline-brand { border:1px solid rgba(24,169,153,.5); color:var(--teal-dark); border-radius:999px; padding:.8rem 1.25rem; font-weight:700; }
.btn-outline-brand:hover { background:var(--teal); color:#fff; }
.hero { position:relative; overflow:hidden; background:linear-gradient(115deg,#f3f8f7 0%,#fff 52%,#eaf5f3 100%); padding:6.5rem 0 5.5rem; }
.hero:before { content:""; position:absolute; width:420px; height:420px; border-radius:50%; background:rgba(24,169,153,.08); right:-130px; top:-160px; }
.eyebrow { color:var(--teal-dark); text-transform:uppercase; letter-spacing:.16em; font-size:.76rem; font-weight:800; }
.hero h1 { color:var(--navy); font-size:clamp(2.5rem,5vw,4.5rem); line-height:1.06; letter-spacing:-.055em; font-weight:800; }
.hero h1 span { color:var(--teal-dark); }
.hero-copy { max-width:560px; color:#5e707b; font-size:1.12rem; }
.hero-image-wrap { position:relative; }
.hero-image { width:100%; height:450px; object-fit:cover; border-radius:28px; box-shadow:0 25px 65px rgba(20,43,59,.18); }
.float-note { position:absolute; left:-22px; bottom:24px; background:#fff; padding:1rem 1.2rem; border-radius:18px; box-shadow:0 12px 35px rgba(20,43,59,.14); max-width:220px; }
.float-note i { color:var(--teal); font-size:1.35rem; }
.section { padding:5.5rem 0; }
.section-soft { background:var(--paper); }
.section-title { color:var(--navy); font-weight:800; letter-spacing:-.04em; font-size:clamp(2rem,3.5vw,3rem); line-height:1.12; }
.section-lead { color:var(--muted); max-width:650px; }
.service-card { height:100%; padding:1.8rem; border:1px solid var(--line); border-radius:22px; background:#fff; transition:.25s ease; }
.service-card:hover { transform:translateY(-6px); box-shadow:0 18px 40px rgba(20,43,59,.09); border-color:rgba(24,169,153,.35); }
.icon-box { width:54px; height:54px; display:grid; place-items:center; border-radius:17px; color:var(--teal-dark); background:#e8f7f4; font-size:1.4rem; margin-bottom:1.2rem; }
.service-card h3 { color:var(--navy); font-size:1.15rem; font-weight:750; }
.service-card p { color:var(--muted); margin:0; }
.photo-card { overflow:hidden; border-radius:22px; background:#fff; box-shadow:0 12px 32px rgba(20,43,59,.07); height:100%; }
.photo-card img { width:100%; height:230px; object-fit:cover; }
.photo-card .photo-caption { padding:1.25rem 1.35rem; }
.photo-caption h3 { font-size:1.05rem; font-weight:750; color:var(--navy); }
.photo-caption p { color:var(--muted); font-size:.92rem; margin:0; }
.process-step { display:flex; gap:1rem; align-items:flex-start; }
.step-number { flex:0 0 42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--navy); color:#fff; font-weight:800; }
.process-step h3 { color:var(--navy); font-size:1.05rem; font-weight:750; }
.process-step p { color:var(--muted); margin:0; }
.cta-band { background:linear-gradient(120deg,var(--navy),#205367); color:#fff; border-radius:28px; padding:3.2rem; position:relative; overflow:hidden; }
.cta-band:after { content:""; position:absolute; width:280px; height:280px; border:1px solid rgba(255,255,255,.14); border-radius:50%; right:-70px; top:-110px; }
.cta-band h2 { font-size:clamp(1.8rem,3vw,2.7rem); font-weight:800; letter-spacing:-.04em; }
.cta-band p { color:rgba(255,255,255,.75); max-width:620px; }
.site-footer { background:#102431; color:rgba(255,255,255,.72); padding:4rem 0 1.5rem; }
.site-footer h3 { color:#fff; font-size:1rem; font-weight:750; margin-bottom:1rem; }
.site-footer a { color:rgba(255,255,255,.78); text-decoration:none; }
.site-footer a:hover { color:#fff; }
.footer-brand { color:#fff; font-weight:800; font-size:1.25rem; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.13); margin-top:2.5rem; padding-top:1.2rem; font-size:.85rem; }
.legal-hero { background:linear-gradient(120deg,#eff7f5,#f8fafb); padding:5rem 0 3rem; }
.legal-content { max-width:900px; }
.legal-content h2 { color:var(--navy); font-size:1.35rem; font-weight:800; margin-top:2rem; }
.legal-content p, .legal-content li { color:#586b77; }
.info-pill { display:inline-flex; align-items:center; gap:.5rem; padding:.5rem .85rem; border-radius:999px; background:#e8f7f4; color:#167d72; font-size:.83rem; font-weight:700; }
@media (max-width: 991px) {
 .hero { padding:4.5rem 0 4rem; }
 .hero-image { height:380px; }
 .float-note { left:12px; }
 .section { padding:4rem 0; }
}
@media (max-width: 575px) {
 .hero-image { height:300px; }
 .float-note { position:relative; left:auto; bottom:auto; margin:-28px 12px 0; }
 .cta-band { padding:2rem 1.4rem; }
}