:root { --ink:#10243a; --muted:#526779; --navy:#062441; --navy-deep:#03182c; --blue:#008fe3; --cyan:#10c4ff; --page:#f5f8fa; --blue-pale:#eaf5fb; --line:#d3e1ea; --surface:#eef5f9; --white:#fbfdfe; --content-width:72rem; --radius:.7rem; --shadow:0 8px 20px rgb(3 24 44 / 7%); --space-1:.5rem; --space-2:1rem; --space-3:1.5rem; --space-4:2.5rem; --space-5:4rem; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:5.5rem; }
body { margin:0; padding-bottom:4.75rem; background:var(--page); color:var(--ink); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:1rem; line-height:1.65; }
a { color:#075b9b; text-underline-offset:.18em; }
a:hover { color:var(--blue); }
a:focus-visible, button:focus-visible { outline:3px solid var(--cyan); outline-offset:3px; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { color:var(--ink); line-height:1.16; letter-spacing:-.025em; }
h1 { max-width:14ch; margin-bottom:var(--space-2); font-size:clamp(2rem,7vw,3.8rem); }
h2 { max-width:23ch; margin-bottom:var(--space-3); font-size:clamp(1.7rem,5vw,2.55rem); }
h3 { margin-bottom:.6rem; font-size:1.2rem; }
.container { width:min(100% - 2rem,var(--content-width)); margin-inline:auto; }
.skip-link { position:absolute; left:1rem; top:-5rem; z-index:10; padding:.6rem 1rem; background:var(--white); color:var(--navy); }.skip-link:focus { top:1rem; }
.site-header { position:sticky; top:0; z-index:5; border-bottom:1px solid rgb(69 180 239 / 28%); background:rgb(3 24 44 / 97%); backdrop-filter:blur(8px); }
.header-inner { display:flex; min-height:4.25rem; align-items:center; justify-content:space-between; gap:1rem; }.brand { color:var(--white); font-size:1.18rem; font-weight:750; text-decoration:none; white-space:nowrap; }
.menu-toggle { min-width:44px; min-height:44px; border:1px solid rgb(117 213 255 / 43%); border-radius:.4rem; background:rgb(16 85 130 / 35%); color:var(--white); font:inherit; font-weight:650; }
.site-nav { display:none; position:absolute; top:calc(100% + 1px); left:0; right:0; padding:.5rem 1rem 1rem; border-bottom:1px solid rgb(69 180 239 / 28%); background:var(--navy-deep); }.site-nav.is-open { display:grid; gap:.2rem; }.site-nav a { display:block; padding:.7rem 0; color:var(--white); font-weight:650; text-decoration:none; }
.hero { position:relative; isolation:isolate; overflow:hidden; padding:clamp(3.4rem,9vw,6.8rem) 0 calc(var(--space-5) + 1rem); background:linear-gradient(128deg,var(--navy-deep) 0%,var(--navy) 58%,#07335a 100%); border-bottom:1px solid rgb(19 196 255 / 35%); }.hero::after { position:absolute; z-index:-1; right:-8%; bottom:-1.4rem; left:-8%; height:3.1rem; background:var(--page); border-radius:50% 50% 0 0 / 72% 72% 0 0; content:""; }.hero-art { position:absolute; z-index:-1; top:-2rem; right:-4rem; width:min(66vw,64rem); height:auto; opacity:.28; pointer-events:none; }.hero-hexes { fill:none; stroke:#0dbfff; stroke-opacity:.24; stroke-width:2; }.hero-network { fill:none; stroke:#20c5ff; stroke-opacity:.46; stroke-width:2; }.hero-network circle { fill:#92e6ff; stroke:none; filter:drop-shadow(0 0 5px #00b5ff); }.hero-content { position:relative; max-width:51rem; }.hero h1 { color:var(--white); }.eyebrow,.section-label { margin-bottom:.7rem; color:var(--blue); font-size:.84rem; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }.hero .eyebrow { color:#78d7ff; }.hero-lead { max-width:42rem; margin-bottom:var(--space-3); color:var(--white); font-size:clamp(1.1rem,3.5vw,1.4rem); font-weight:550; line-height:1.45; }.service-summary { max-width:50rem; margin-bottom:var(--space-3); color:#94dcff; font-weight:700; line-height:1.75; }.service-summary span { padding-inline:.2rem; }.hero-copy { max-width:42rem; margin-bottom:var(--space-3); color:#d5e8f5; }
.hero-actions { display:grid; gap:.75rem; margin-bottom:1.1rem; }.button { display:inline-flex; min-height:3rem; align-items:center; justify-content:center; padding:.7rem 1rem; border:1px solid transparent; border-radius:.45rem; font-weight:750; text-align:center; text-decoration:none; }.button-primary { background:var(--blue); color:var(--white); box-shadow:0 4px 14px rgb(0 143 227 / 25%); }.button-primary:hover { background:var(--cyan); color:var(--navy-deep); }.button-secondary { border-color:#62c9f4; background:rgb(255 255 255 / 10%); color:var(--white); }.button-secondary:hover { border-color:var(--cyan); background:rgb(16 196 255 / 15%); color:var(--white); }.text-link { color:#8addff; font-weight:750; }.text-link:hover { color:var(--white); }
.section { padding:var(--space-5) 0; }.section-tint { position:relative; background:var(--surface); border-block:1px solid var(--line); }.prose { max-width:48rem; }.prose p,.contact-content > p { margin-bottom:1.1rem; }.emphasis { margin-top:1.7rem; padding-left:1rem; border-left:4px solid var(--blue); color:var(--navy); font-size:1.1rem; font-weight:700; }.services-grid { display:grid; gap:1rem; }.service-card { display:flex; align-items:flex-start; gap:1rem; padding:1.25rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); box-shadow:var(--shadow); }.service-card h3 { color:var(--navy); }.service-card p { margin-bottom:0; color:var(--muted); }.service-icon { display:grid; width:2.8rem; min-width:2.8rem; height:2.8rem; place-items:center; border:1px solid #a7dff7; border-radius:50%; background:#e4f5fc; color:#057abb; }.service-icon svg { width:1.45rem; height:1.45rem; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }.community-content { border-left:4px solid var(--blue); padding-left:1.25rem; }.contact-section { position:relative; overflow:hidden; background:var(--blue-pale); border-top:1px solid #c4e6f5; }.contact-section::before { position:absolute; top:0; right:-10%; left:-10%; height:1.3rem; background:var(--page); border-radius:0 0 50% 50% / 0 0 100% 100%; content:""; }.contact-content { position:relative; max-width:48rem; }.contact-details { display:grid; gap:.85rem; margin:1.7rem 0; }.contact-details div { display:grid; gap:.15rem; }.contact-details dt { color:var(--muted); font-size:.88rem; font-weight:700; }.contact-details dd { margin:0; font-size:1.12rem; font-weight:750; }.serving-note { margin-top:1.5rem; color:var(--muted); font-weight:650; }.contact-section .button-secondary { border-color:#168dcc; background:var(--white); color:var(--navy); }.contact-section .button-secondary:hover { background:#dff3fc; color:var(--navy); }.site-footer { padding:2.5rem 0 5.7rem; background:linear-gradient(120deg,var(--navy-deep),var(--navy)); color:#dceef7; }.site-footer p { margin-bottom:.35rem; }.site-footer a { color:var(--white); }.footer-brand { color:var(--white); font-size:1.15rem; font-weight:750; }.mobile-contact-bar { position:fixed; z-index:4; right:0; bottom:0; left:0; display:grid; grid-template-columns:1fr 1fr; padding:max(.55rem,env(safe-area-inset-bottom)) 1rem .55rem; gap:.65rem; border-top:1px solid #aadcf1; background:rgb(247 252 254 / 97%); backdrop-filter:blur(8px); }.mobile-contact-bar a { display:flex; min-height:2.75rem; align-items:center; justify-content:center; border-radius:.4rem; background:var(--navy); color:var(--white); font-weight:750; text-decoration:none; }.mobile-contact-bar a + a { border:1px solid #178dcc; background:#e9f7fd; color:var(--navy); }.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (min-width:42rem) { body { padding-bottom:0; }.header-inner { min-height:4.7rem; }.menu-toggle { display:none; }.site-nav { position:static; display:flex; gap:1.2rem; padding:0; border:0; background:transparent; }.site-nav a { padding:.45rem 0; }.hero-actions { display:flex; flex-wrap:wrap; }.button { min-width:12rem; }.services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.mobile-contact-bar { display:none; }.site-footer { padding-bottom:2.5rem; } }
@media (max-width:41.99rem) { .hero-art { top:-1rem; right:-4rem; width:88vw; opacity:.24; } }
@media (min-width:68rem) { .section { padding:5.5rem 0; }.services-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.service-card:last-child { grid-column:2; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
