:root { --navy:#102a43; --navy-dark:#081b2d; --teal:#087f8c; --teal-dark:#05626d; --ink:#1f2933; --muted:#52606d; --surface:#f4f7f9; --line:#d9e2ec; --white:#fff; --shadow:0 8px 24px rgba(16,42,67,.08); }
[data-theme="dark"] { --navy:#e5edf5; --navy-dark:#061321; --teal:#57c5cf; --teal-dark:#8fdae1; --ink:#e5edf5; --muted:#b8c7d6; --surface:#102235; --line:#29425a; --white:#0b1b2b; --shadow:0 8px 24px rgba(0,0,0,.24); }
[data-theme="dark"] .brand img.brand-logo-light { display:none; }
[data-theme="dark"] .brand img.brand-logo-dark { display:block; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--white); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:1rem; line-height:1.6; }
a { color:var(--teal-dark); } a:hover { color:var(--navy); } a:focus-visible,button:focus-visible { outline:3px solid #f59e0b; outline-offset:3px; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { color:var(--navy); line-height:1.15; } h1 { max-width:15ch; margin-bottom:1.25rem; font-size:clamp(2.25rem,7vw,4.75rem); letter-spacing:-.035em; } h2 { margin-bottom:1rem; font-size:clamp(1.75rem,4vw,2.7rem); letter-spacing:-.025em; } h3 { margin-bottom:.6rem; font-size:1.2rem; }
.container { width:min(100% - 2.5rem,72rem); margin-inline:auto; }.skip-link { position:fixed; z-index:10; top:1rem; left:1rem; padding:.6rem .9rem; color:var(--white); background:var(--navy); transform:translateY(-180%); }.skip-link:focus { transform:translateY(0); }.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { position:sticky; z-index:5; top:0; border-bottom:1px solid var(--line); background:var(--white); }.header-inner { display:flex; min-height:4.5rem; align-items:center; justify-content:space-between; }.brand { display:block; position:relative; width:min(12rem,50vw); height:2rem; color:var(--navy); text-decoration:none; }.brand img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; object-position:left center; }.brand img.brand-logo-dark { display:none; }.header-actions { display:flex; align-items:center; gap:.25rem; }.theme-toggle,.nav-toggle { display:inline-grid; place-items:center; gap:4px; padding:.6rem; border:0; border-radius:.25rem; color:var(--navy); background:transparent; cursor:pointer; }.theme-toggle { width:2.75rem; height:2.75rem; font-size:1.2rem; }.theme-toggle:hover,.nav-toggle:hover { background:var(--surface); }.nav-toggle span:not(.visually-hidden) { display:block; width:1.35rem; height:2px; background:currentColor; }.site-nav { display:none; position:absolute; top:100%; right:1.25rem; left:1.25rem; padding:.6rem; border:1px solid var(--line); background:var(--white); box-shadow:var(--shadow); }.site-nav.is-open { display:grid; }.site-nav a { padding:.7rem .8rem; color:var(--navy); font-weight:600; text-decoration:none; }.site-nav a:hover { color:var(--teal-dark); background:var(--surface); }
.hero { padding:6.5rem 0 5.5rem; background:linear-gradient(135deg,var(--surface) 0%,var(--white) 65%); }.hero-content { max-width:52rem; }.eyebrow { margin-bottom:.8rem; color:var(--teal-dark); font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.hero-copy { max-width:38rem; margin-bottom:2rem; color:var(--muted); font-size:clamp(1.05rem,2vw,1.25rem); }.button { display:inline-block; padding:.75rem 1.1rem; border-radius:.25rem; font-weight:700; text-decoration:none; }.button-primary { color:#fff; background:var(--teal-dark); }.button-primary:hover { color:#fff; background:var(--navy-dark); }
.section { padding:4.5rem 0; }.section-muted { background:var(--surface); }.two-column,.contact-layout { display:grid; gap:1.5rem; }.prose,.section-heading>p,.contact-layout>div>p { color:var(--muted); }.prose p:last-child { margin-bottom:0; }.section-heading { max-width:43rem; margin-bottom:2rem; }.service-grid { display:grid; gap:1rem; }.service-card { min-height:100%; padding:1.5rem; border-top:4px solid var(--teal); background:var(--white); box-shadow:var(--shadow); }.service-card p { margin-bottom:0; color:var(--muted); }.contact-section { background:var(--navy-dark); }.contact-section h2,.contact-section p { color:#fff; }.contact-section .eyebrow { color:#8fdae1; }.contact-details { display:grid; gap:1.25rem; padding:1.5rem; font-style:normal; background:var(--white); box-shadow:var(--shadow); }.contact-details div { display:grid; gap:.15rem; }.contact-label { color:var(--muted); font-size:.8rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.contact-details a { font-weight:700; overflow-wrap:anywhere; }.site-footer { padding:1.5rem 0; color:#cbd5e1; background:var(--navy-dark); font-size:.9rem; }.footer-inner { display:flex; flex-wrap:wrap; gap:1rem 1.5rem; align-items:center; justify-content:space-between; }.footer-brand { display:flex; flex-wrap:wrap; gap:.75rem 1rem; align-items:center; }.footer-brand img { display:block; width:auto; height:1.5rem; max-width:min(10rem,45vw); object-fit:contain; }.footer-inner p { margin:0; }.site-footer a { color:#fff; }
.error-page { display:grid; min-height:100vh; place-items:center; padding:1.5rem; background:var(--surface); }.error-content { width:min(100%,38rem); padding:clamp(2rem,8vw,4rem); background:var(--white); box-shadow:var(--shadow); }.error-content p:not(.eyebrow) { margin-bottom:2rem; color:var(--muted); }
@media (min-width:46rem) { .nav-toggle { display:none; }.site-nav { display:flex; position:static; gap:.25rem; padding:0; border:0; box-shadow:none; }.two-column { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:5rem; }.service-grid { grid-template-columns:repeat(3,1fr); }.contact-layout { grid-template-columns:minmax(0,1fr) minmax(20rem,.85fr); gap:5rem; align-items:start; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }