:root{--ink:#132c39;--teal:#096657;--paper:#f2f7f6;--line:#d9e4e3}
body{font-family:"Segoe UI",system-ui,sans-serif;color:var(--ink);line-height:1.6;overflow-wrap:anywhere}
.container{max-width:min(var(--site-width), calc(100% - 1rem))}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #2e8bd0;outline-offset:3px}
a{color:#095c72;text-underline-offset:.17em}
h1,h2,h3,h4,h5{line-height:1.14}
.brand-dark{color:var(--ink)}
.brand-green{color:var(--teal)}
.brand-blue{color:#24526c}
.bg-brand-dark{background:#142936}
.btn,.navbar .nav-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}
.btn-brand,.btn-brand:hover,.btn-brand:focus-visible,.btn-brand:active{background:var(--brand-green)!important;border-color:var(--brand-green)!important;color:var(--button-text)!important}
.btn-brand:hover{filter:brightness(.93)}
.btn-outline-brand{border-color:var(--teal);color:var(--teal)}
.btn-outline-brand:hover{background:var(--teal);color:#fff}
.site-header,.site-footer{background:var(--brand-dark);color:var(--header-text)}
.site-header a,.site-footer a,.site-header .btn-nav,.site-header .navbar-toggler{color:inherit}
.site-header a:hover,.site-footer a:hover{color:inherit;text-decoration:underline}
.site-header .navbar-brand{display:flex;align-items:center;gap:.5rem;font-weight:750}
.site-header .navbar-toggler,.btn-nav{border:1px solid currentColor;min-height:44px;min-width:44px}
.site-header .dropdown-menu a{color:var(--ink)}
.site-header .nav-link[aria-current]{text-decoration:underline;text-underline-offset:.3em}
.nav-actions{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}
.skip-link{position:absolute;z-index:1100;background:#fff;padding:.75rem}
.hero-section{background:#142936;color:#fff;padding:clamp(2.25rem,7vw,6rem) 0}
.hero-section h1{font-size:clamp(2.1rem,5vw,4.25rem);letter-spacing:-.045em;text-wrap:balance}
.hero-section .lead{max-width:55ch;color:#dbeae9}
.hero-section .btn-outline-light{min-height:48px}
.hero-summary{border-left:2px solid var(--brand-green);padding:clamp(.85rem,3vw,2rem);background:#1e3b48}
.hero-summary strong{display:block;font-size:1.22rem}
.hero-summary ol{margin:.85rem 0 0;padding-inline-start:1.3rem}
.hero-summary li+li{margin-top:.6rem}
.section-divider{background:var(--teal);height:3px;width:52px;margin:.6rem auto 1.4rem}
.service-card,.package-card,.blog-card{border-color:var(--line);box-shadow:0 2px 9px #162e3710}
.site-footer{padding:2.5rem 0}
.site-footer a{display:inline-flex;align-items:center;min-height:36px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.footer-grid p{margin:.5rem 0}
.site-prose{max-width:75ch;line-height:1.75}
.site-prose img{max-width:100%;height:auto}
.blog-hero{display:block;width:100%;max-height:420px;object-fit:cover}
.site-prose h2,.site-prose h3{margin-top:1.5em}
.site-prose pre,.site-prose table{display:block;max-width:100%;overflow:auto}
.site-prose td,.site-prose th{border:1px solid var(--line);padding:.5rem}
.mobile-contact{display:none}
.contact-aside{background:var(--paper);border-inline-start:3px solid var(--teal);padding:1.3rem}
.contact-aside a{display:inline-flex;min-height:44px;align-items:center}
.contact-section{padding-block:clamp(1.5rem,4vw,3rem)}
.contact-form input{min-height:44px}
.contact-form textarea{min-height:8rem}
.contact-phone summary{cursor:pointer;width:fit-content;padding:.55rem 0;color:#095c72}
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(max-width:991px){.nav-actions{padding:.5rem 0}}
@media(max-width:767px){
    .footer-grid{grid-template-columns:1fr;gap:1.25rem}
    .mobile-contact{display:grid;grid-template-columns:1fr 1.35fr;align-items:stretch;gap:.45rem;position:fixed;z-index:1010;inset:auto 0 0;background:#fff;border-top:1px solid var(--line);padding:.45rem .75rem calc(.45rem + env(safe-area-inset-bottom))}
    .mobile-contact>a{display:flex;align-items:center;justify-content:center;gap:.35rem;text-align:center;min-height:44px}
    .has-mobile-contact{padding-bottom:calc(5rem + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
