/* AAA Dock Repair v2.1 / clean light redesign */
:root{--navy:#103149;--ink:#1b4056;--blue:#0d7693;--sky:#e9f5f9;--muted:#597081;--orange:#d47b22;--orangehover:#ad5d12;--line:#dce6eb;--paper:#fff;--shadow:0 14px 40px rgba(12,51,78,.095)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;font:15px/1.62 Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}a{color:inherit}img{display:block;max-width:100%}svg{width:22px;height:22px}button{font:inherit}::selection{background:#caeaf1}a:focus-visible,button:focus-visible{outline:3px solid #c07925;outline-offset:4px}.shell{width:min(1180px,calc(100% - 56px));margin-inline:auto}.skip-link{position:absolute;z-index:200;top:-100px;left:14px;background:var(--navy);padding:12px;color:#fff}.skip-link:focus{top:10px}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;border-radius:7px;min-height:48px;padding:12px 22px;font-size:14px;line-height:1.2;text-decoration:none;font-weight:800;white-space:nowrap;transition:background .18s ease,transform .18s ease}.button:hover{transform:translateY(-2px)}.button-orange{background:var(--orange);color:#fff;box-shadow:0 9px 21px rgba(155,83,14,.13)}.button-orange:hover{background:var(--orangehover)}.button-large{min-height:55px;padding-inline:27px;font-size:15px}.button span[aria-hidden]{font-size:18px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.25em;color:#0f758e;font-weight:800;margin:0 0 15px}.eyebrow.centered{text-align:center}.eyebrow-line{display:inline-block;width:20px;height:2px;background:var(--orange);vertical-align:middle;margin-right:9px}.section-pad{padding:89px 0 97px}.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.975);border-bottom:1px solid #e6eef0;box-shadow:0 3px 19px rgba(15,54,78,.05)}.header-inner{display:flex;align-items:center;gap:28px;min-height:82px}.brand{display:block;flex:none;width:204px}.brand img{width:100%;height:auto}.navigation{display:flex;align-items:center;gap:31px;margin-left:auto}.navigation a{text-decoration:none;font-size:13px;font-weight:750}.navigation a:hover{color:#0083a1}.header-call{background:var(--blue);color:#fff;margin-left:7px}.header-call:hover{background:var(--navy)}.header-call svg{width:17px;height:17px}.menu-toggle{display:none}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;color:var(--navy);letter-spacing:-.037em}h1,h2{line-height:1.075}h1 em,h2 em{font-style:normal;color:#147d96}.hero{background:linear-gradient(110deg,#f0faff 0%,#f6fbfd 60%,#e2f2f7 100%);overflow:hidden}.hero-grid{min-height:538px;display:grid;grid-template-columns:48% 52%;align-items:stretch}.hero-copy{padding:86px 32px 78px 0;align-self:center;position:relative;z-index:2}.hero h1{font-size:clamp(53px,5.7vw,83px);margin:0 0 21px;max-width:570px}.hero h1 em{display:block}.hero-lede{font-size:17px;line-height:1.6;max-width:500px;margin:0 0 25px;color:#425d6e}.hero-lede strong{font-weight:750;color:#163f59}.backup{font-size:12px;margin:14px 0 0;color:#526a78}.backup a{font-weight:800;text-decoration:underline;text-underline-offset:3px}.hero-photo{position:relative;height:100%;min-height:538px;margin-right:calc((min(1180px,100vw - 56px) - 100vw)/2);overflow:hidden;border-left:5px solid rgba(255,255,255,.65)}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(228,244,250,.11),transparent 25%)}.hero-photo picture,.hero-photo img{height:100%;width:100%}.hero-photo img{object-fit:cover;object-position:46% 51%}.hero-photo-tag{position:absolute;bottom:26px;right:33px;color:#fff;background:rgba(12,45,64,.85);padding:9px 14px;font-size:10px;font-weight:800;letter-spacing:.12em;z-index:2;border-radius:4px}
.trust-line{border-bottom:1px solid #e7edef;box-shadow:0 4px 14px rgba(7,48,75,.024)}.trust-inner{display:grid;grid-template-columns:repeat(3,1fr);padding:21px 0}.trust-inner>span{display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px;color:#174760;font-weight:750;padding:5px 20px;border-right:1px solid #dbe9ed}.trust-inner>span:last-child{border:0}.trust-inner svg{color:#0c7d97;flex:none;width:22px;height:22px}.section-intro{text-align:center;max-width:800px;margin:0 auto 39px}.section-intro h2{font-size:clamp(38px,4.2vw,54px);margin:0 0 13px}.section-intro>p:last-child{color:var(--muted);font-size:15px;margin:0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.service-card{overflow:hidden;border:1px solid #e6ecef;border-radius:13px;background:#fff;box-shadow:var(--shadow)}.photo-wrap{height:240px;overflow:hidden;background:#d8e8e9}.photo-wrap img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .3s ease}.service-card:hover .photo-wrap img{transform:scale(1.045)}.service-body{padding:24px 26px 27px}.card-index{color:var(--blue);letter-spacing:.16em;font-size:10px;font-weight:800}.service-card h3{font-size:25px;line-height:1.11;margin:10px 0}.service-card p{margin:0;color:#5d7080;font-size:13.5px;line-height:1.56}.image-disclosure{font-size:11px;color:#647b87;text-align:center;margin:29px 0 0}.difference{background:#eff7fa;border-block:1px solid #e0ebee;overflow:hidden}.difference-grid{display:grid;grid-template-columns:49% 51%;align-items:stretch}.difference-photo{height:505px;position:relative;margin-left:calc((min(1180px,100vw - 56px) - 100vw)/2)}.difference-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}.difference-content{padding:83px 30px 70px 76px;align-self:center}.difference-content h2{font-size:clamp(38px,4.5vw,56px);margin:0 0 20px}.difference-content>p:not(.eyebrow){font-size:15px;line-height:1.73;color:#506a78;margin:0 0 24px}.mini-list{display:grid;gap:12px;margin-bottom:26px}.mini-list div{display:flex;align-items:center;gap:13px;color:#254b5d;font-weight:700;font-size:13px}.check{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#d9edf2;color:#067c97;font-weight:bold}.text-link{font-size:14px;font-weight:800;color:#096f88;text-underline-offset:5px}.text-link span{font-size:18px;margin-left:3px}.contact-band{background:linear-gradient(100deg,#e8f4f9 0%,#d9eef5 100%);position:relative;overflow:hidden}.contact-water-image{position:absolute;inset:0 0 0 49%;background-image:linear-gradient(90deg,#e8f4f9 0%,rgba(232,244,249,.22) 26%,rgba(12,69,103,.08) 100%),url('../images/dock-waterfront.webp');background-size:cover;background-position:center 51%}.contact-content{padding:70px 0 73px;position:relative;z-index:2}.contact-content h2{font-size:clamp(40px,4.6vw,59px);margin:0 0 14px}.contact-content p:not(.eyebrow){margin:0 0 24px;font-size:15px;color:#476576}.contact-backup{font-size:12px;color:#415f70;margin-top:16px}.contact-backup a{font-weight:bold}.footer{background:var(--navy);color:#dbeaf0;padding:43px 0 24px}.footer-primary{display:flex;align-items:center;justify-content:space-between;gap:25px}.footer-brand{display:block;width:207px}.footer-brand img{filter:brightness(0) invert(1)}.footer-end{display:grid;gap:3px;text-align:right;font-size:12px;color:#cedde5}.footer-end a{font-weight:bold;font-size:16px;text-decoration:none;color:#fff}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.17);padding-top:22px;margin-top:31px;font-size:11px;color:#a9c4cf}.footer-bottom div{display:flex;gap:23px}.footer-bottom a{text-decoration:none}.footer-bottom a:hover{text-decoration:underline}.mobile-call{display:none}
/* Privacy and 404 */
.policy-main{background:#f5fafd;padding:67px 0 90px}.policy-article{max-width:810px;background:#fff;padding:40px 50px;border:1px solid #e1e8eb;border-radius:14px;margin:0 auto}.policy-article h1{font-size:48px;margin:0 0 12px}.policy-article h2{font-size:25px;margin:31px 0 10px}.policy-article p{font-size:14px;color:#536977}.not-found{min-height:53vh;padding:85px 0}.not-found h1{font-size:55px}.not-found p{max-width:490px;color:#597181}.policy-back{margin-top:23px}
@media(max-width:1000px){.shell{width:calc(100% - 42px)}.header-inner{gap:15px}.brand{width:173px}.navigation{gap:20px}.header-call{padding:12px 13px;font-size:12px}.hero-grid{grid-template-columns:50% 50%;min-height:505px}.hero-copy{padding:65px 22px 65px 0}.hero h1{font-size:clamp(51px,6vw,69px)}.hero-photo{min-height:505px;margin-right:-21px}.photo-wrap{height:210px}.service-body{padding:22px}.difference-photo{margin-left:-21px}.difference-content{padding:55px 15px 55px 42px}}
@media(max-width:760px){.header-inner{min-height:73px}.brand{width:166px}.menu-toggle{width:42px;height:42px;border:1px solid #c9dfe6;border-radius:7px;background:#f4fafd;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;order:3;cursor:pointer}.menu-toggle span{display:block;width:19px;height:2px;background:#14445a}.header-call{margin-left:auto}.header-call span{display:none}.header-call{width:42px;height:42px;min-height:42px;justify-content:center;padding:0}.header-call svg{width:20px;height:20px}.navigation{display:none;position:absolute;top:73px;left:0;right:0;padding:15px 23px 20px;flex-direction:column;gap:0;align-items:stretch;background:#fff;box-shadow:0 19px 23px rgba(9,44,68,.13);border-top:1px solid #e5edef}.navigation.is-open{display:flex}.navigation a{padding:12px 8px;border-bottom:1px solid #ecf3f5;font-size:15px}.hero-grid{display:flex;flex-direction:column}.hero-copy{padding:47px 0 40px}.hero h1{font-size:clamp(48px,9.1vw,70px);max-width:600px}.hero-lede{font-size:16px;max-width:570px}.hero-photo{height:325px;min-height:325px;border:0;margin:0 -21px;width:calc(100% + 42px)}.hero-photo img{object-position:50% 58%}.trust-inner{grid-template-columns:1fr 1fr;padding:15px 0;gap:5px}.trust-inner>span{font-size:11px;padding:9px 4px;border:0;justify-content:flex-start}.trust-inner>span:last-child{grid-column:span 2}.trust-inner svg{width:19px;height:19px}.section-pad{padding:64px 0 70px}.section-intro h2{font-size:clamp(37px,7vw,48px)}.service-grid{grid-template-columns:1fr;gap:19px;max-width:510px;margin:auto}.photo-wrap{height:auto;aspect-ratio:1.8}.service-body{padding:20px 23px 23px}.service-card h3{font-size:25px}.difference-grid{grid-template-columns:1fr}.difference-photo{margin:0 -21px;height:340px;order:1}.difference-content{order:2;padding:43px 0 49px}.difference-content h2{font-size:clamp(37px,7vw,52px)}.contact-water-image{inset:0;background-image:linear-gradient(90deg,rgba(235,247,251,.96) 0%,rgba(235,247,251,.86) 70%,rgba(235,247,251,.8) 100%),url('../images/dock-waterfront.webp')}.contact-content{padding:65px 0 98px}.footer{padding:34px 0 80px}.mobile-call{display:block;position:fixed;z-index:70;bottom:0;left:0;right:0;padding:9px max(15px,env(safe-area-inset-left)) calc(9px + env(safe-area-inset-bottom)) max(15px,env(safe-area-inset-right));background:#fff;border-top:1px solid #c6d8e0;box-shadow:0 -5px 22px rgba(12,50,77,.13)}.mobile-call a{display:flex;justify-content:center;align-items:center;gap:10px;background:#d17c26;color:#fff;text-decoration:none;border-radius:7px;min-height:49px;font-weight:800;font-size:14px}.mobile-call svg{width:18px;height:18px}.mobile-call a span{font-size:12px;font-weight:700}.policy-article{padding:28px 25px}.policy-article h1{font-size:38px}}
@media(max-width:430px){.shell{width:calc(100% - 34px)}.brand{width:144px}.header-inner{gap:9px}.hero-copy{padding:39px 0 32px}.hero h1{font-size:clamp(46px,11.5vw,52px);margin-bottom:15px}.hero-lede{font-size:15px;margin-bottom:20px}.eyebrow{font-size:9.5px;letter-spacing:.18em}.hero-photo{height:270px;min-height:270px;margin-inline:-17px;width:calc(100% + 34px)}.hero-photo-tag{font-size:8px;bottom:14px;right:13px}.trust-inner{gap:0;padding:10px 0}.section-intro{margin-bottom:25px}.section-intro h2{font-size:36px}.section-intro>p:last-child{font-size:13px}.photo-wrap{aspect-ratio:1.65}.difference-photo{height:295px;margin-inline:-17px}.difference-content{padding:39px 0}.difference-content h2{font-size:40px}.contact-content h2{font-size:40px}.footer-primary{align-items:flex-start;flex-direction:column}.footer-end{text-align:left}.footer-bottom{flex-direction:column;gap:12px}.button-large{min-height:51px}.mobile-call a span{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* v2.1 native-resolution image placement: avoid enlarging low-res imagery */
.service-card:nth-child(1) .photo-wrap img{object-position:50% 56%}
.service-card:nth-child(2) .photo-wrap img{object-position:51% 58%}
.service-card:nth-child(3) .photo-wrap img{object-position:50% 56%}
.difference-photo img{object-position:50% 50%}
.contact-water-image{background-position:center center}
@media(max-width:760px){.hero-photo img{object-position:50% 52%}}
