/* Lighthouse's water-and-fire identity, drawn from its vehicle wrap. */
:root{--navy:#121a23;--gold:#e33829;--cream:#f5f7f8;--ink:#171f29;--muted:#586470;--water:#0784ca;--fire:#e33829;--mold:#54812f;--storm:#667886}
body{background:#fff}header{border-bottom:0;box-shadow:0 1px 0 #11182012}header:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,#048dd7 0%,#048dd7 34%,#101720 53%,#e73826 76%,#f65b29 100%)}.emergency{background:#111820}.emergency>span>i,.available>i{background:#f44332;box-shadow:0 0 0 0 #ef443833;animation:signal-pulse 2.8s ease-out infinite}.navcall{border:1px solid #e33829;color:#cf2c20}.navcall:hover{background:#fff3f1;color:#b92016}nav a:hover,.textlink:hover{color:var(--fire)}.hero{background:linear-gradient(125deg,#fff 4%,#f2f6f9 85%)}.hero-copy{position:relative}.hero-copy:before{content:'';position:absolute;top:0;left:-8.5%;width:90px;height:4px;background:var(--water)}.eyebrow{color:#d33225}.hero h1 em{font-family:inherit;font-style:normal;font-weight:650;background:linear-gradient(95deg,#0284cc 10%,#0774b9 32%,#d83126 83%);-webkit-background-clip:text;background-clip:text;color:transparent}.gold{background:var(--fire);color:white;box-shadow:0 7px 20px #e3382917}.gold:hover{background:#c92c20}.navy{background:#111820}.button{border-radius:3px}.hero-photo .mini-beam{color:white}.hero-photo:after{background:linear-gradient(0deg,#08111dc9,transparent 32%)}.hero-photo>img{animation:hero-breathe 18s ease-in-out infinite alternate;transform-origin:50% 60%}.service-ribbon{background:#fff;font-weight:600;border-bottom:1px solid #e5e9ec}.service-ribbon span:first-child{color:#53616b}.service-ribbon span:nth-child(2){color:var(--water)}.service-ribbon span:nth-child(3){color:var(--fire)}.service-ribbon span:nth-child(4){color:var(--mold)}.service-ribbon span:nth-child(5){color:var(--storm)}
.service-grid{gap:18px;border:0}.service-card{--accent:var(--water);border:1px solid #e3e8ec!important;border-top:3px solid var(--accent)!important;padding:27px 22px 25px!important;overflow:hidden;border-radius:4px;background:#fff;transition:transform .25s,box-shadow .25s,border-color .25s}.service-card[data-service=fire]{--accent:var(--fire)}.service-card[data-service=mold]{--accent:var(--mold)}.service-card[data-service=storm]{--accent:var(--storm)}.service-card:hover{transform:translateY(-6px);box-shadow:0 15px 32px #0d1c2c0d;background:white;border-color:var(--accent)!important}.service-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;margin-bottom:27px;border-radius:50%;background:color-mix(in srgb,var(--accent) 9%,white);color:var(--accent)}.service-icon svg{width:40px;height:40px}.service-card h3,.service-card .learn{color:var(--accent)}.service-num{font-weight:600;color:#89949d}.service-card p{min-height:105px}.service-card .learn{margin-top:22px;gap:9px}.service-card[data-service=water] .service-icon svg{animation:water-float 4s ease-in-out infinite}.service-card[data-service=fire] .service-icon svg{animation:fire-glow 3.1s ease-in-out infinite}.service-card[data-service=mold]:hover .service-icon svg{transform:rotate(25deg);transition:transform .6s}.service-card[data-service=storm] .service-icon svg{animation:wind-drift 4.7s ease-in-out infinite}
.approach{background:#f4f7f9}.quote em{color:#65c5fb}.steps li>span{color:var(--water);font-weight:700}.insurance{position:relative;background:#111820;overflow:hidden}.insurance:before{content:'';position:absolute;width:340px;height:340px;left:-240px;top:-60px;border-radius:50%;background:#058bd0;filter:blur(70px);opacity:.25;pointer-events:none}.insurance:after{content:'';position:absolute;width:260px;height:260px;right:-190px;bottom:-70px;border-radius:50%;background:#e83828;filter:blur(65px);opacity:.3;pointer-events:none}.insurance .eyebrow{color:#6dc9fc}.insurance .textlink{color:#ff8d80}.area-list>div>span{color:var(--water)}.area-list>div:last-child{border-left:3px solid var(--water);padding-left:45px;background:linear-gradient(90deg,#0784ca07,transparent)}.area-list>div:last-child>span{left:14px}.contact{background:linear-gradient(115deg,#f2f7fa,#f8f8f8 70%)}form{box-shadow:0 8px 35px #10233c05;border-top:3px solid var(--water);border-radius:4px}.email{border-color:#0784ca70}.bigphone{color:#151e29}.textlink{color:#202c37}input:focus,select:focus,textarea:focus{outline-color:var(--water)}summary:after{color:var(--water)}footer{border-top:3px solid transparent;border-image:linear-gradient(90deg,#0784ca,#151e29,#e33829) 1}footer>p{color:#465667}dialog .eyebrow{color:var(--water)}a:focus-visible,button:focus-visible,summary:focus-visible{outline-color:var(--water)}
.motion-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0)}
@keyframes signal-pulse{0%{box-shadow:0 0 0 0 #f4433255}70%{box-shadow:0 0 0 6px #f4433200}100%{box-shadow:0 0 0 0 #f4433200}}@keyframes water-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes fire-glow{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.06);opacity:1}}@keyframes wind-drift{0%,100%{transform:translateX(-2px)}50%{transform:translateX(3px)}}@keyframes hero-breathe{from{transform:scale(1)}to{transform:scale(1.025)}}
@media(max-width:1050px){.service-grid{gap:12px}.service-card{padding:23px 15px!important}.service-card p{min-height:115px}}@media(max-width:760px){.hero-copy:before{left:0}.service-grid{gap:14px}.service-card{padding:23px 15px!important}.service-card p{min-height:113px}.service-card .learn{font-size:9px}.service-icon{width:54px;height:54px;margin-bottom:23px}.service-icon svg{width:35px;height:35px}.hero-photo>img{animation:none}.hero-photo .photo-card{font-size:15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-ready .reveal{opacity:1;transform:none}.service-card:hover{transform:none}}
/* Darker text shades keep small service labels readable on white. */
.service-card h3,.service-card .learn{color:color-mix(in srgb,var(--accent) 85%,black)}.service-ribbon span:nth-child(2){color:#006fae}.service-ribbon span:nth-child(3){color:#cd2b20}

.office-location{margin-top:30px;padding-top:22px;border-top:1px solid #dce3e8;max-width:350px}.office-location>span{display:block;font-size:10px;font-weight:700;letter-spacing:1.5px;color:#586470;margin-bottom:9px}.office-location address{font-style:normal;font-size:14px;line-height:1.7;color:#171f29}
.office-map-card{position:relative;isolation:isolate;display:flex;align-items:center;gap:20px;max-width:405px;margin-top:30px;padding:25px 23px;border:1px solid #c6e3f2;border-radius:12px;background:linear-gradient(120deg,#edf8ff 0%,#fff 60%,#fff0ed 100%);box-shadow:0 8px 25px #0784ca0c;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}.office-map-card:before{content:'';position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#0784ca,#0784ca 42%,#e33829 90%)}.office-map-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #0784ca1a;border-color:#0784ca}.office-map-pin{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 66px;height:66px;border-radius:50%;background:#fff;box-shadow:0 4px 16px #0784ca15;color:#e33829}.office-map-pin:after{content:'';position:absolute;inset:0;border:2px solid #0784ca66;border-radius:50%;animation:office-map-ripple 3.3s ease-out infinite}.office-map-pin svg{height:40px;width:34px;animation:office-map-bob 3.3s ease-in-out infinite}.office-map-copy>span{display:block;color:#006ca8;font-size:10px;font-weight:800;letter-spacing:1.6px;margin-bottom:7px}.office-map-copy address{font-style:normal;font-size:15px;font-weight:650;line-height:1.55;color:#182432}.office-map-copy strong{display:block;font-size:11px;font-weight:700;color:#ca2d20;margin-top:12px}.office-map-copy strong>span{display:inline-block;margin-left:6px;transition:transform .2s}.office-map-card:hover strong>span{transform:translate(2px,-2px)}.office-map-arrow{margin-left:auto;align-self:flex-start;font-size:22px;color:#0078b9;line-height:1}.office-map-card:focus-visible{outline:3px solid #0078b9;outline-offset:4px}@keyframes office-map-ripple{0%{transform:scale(.95);opacity:.7}75%,100%{transform:scale(1.3);opacity:0}}@keyframes office-map-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@media(max-width:760px){.office-map-card{max-width:none;padding:23px 20px;gap:18px}}@media(prefers-reduced-motion:reduce){.office-map-card:hover{transform:none}.office-map-pin svg,.office-map-pin:after{animation:none!important}.office-map-pin:after{display:none}}
.actions{flex-wrap:wrap;gap:18px 22px}.about-jump{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:13px 20px;border:1px solid #0784ca70;border-radius:4px;background:linear-gradient(115deg,#eff9ff,#fff 65%,#fff2ee);font-size:12px;font-weight:700;color:#145571;overflow:hidden;transition:transform .25s,box-shadow .25s}.about-jump:before{content:'';position:absolute;inset:0 auto 0 -80%;width:45%;background:linear-gradient(90deg,transparent,#fff9,transparent);transform:skewX(-20deg);animation:about-shine 5s ease-in-out infinite}.about-jump:hover{transform:translateY(-3px);box-shadow:0 7px 20px #0784ca20}.about-jump-arrow{color:#d63225;font-size:17px;animation:about-arrow 2.8s ease-in-out infinite}.about-us{background:#fff;position:relative;outline:none}.about-us:before{content:'';position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#0784ca,#142230 55%,#e33829)}.about-intro{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;padding-bottom:50px}.about-intro h2{font-size:clamp(44px,4.5vw,64px);margin-bottom:16px}.about-intro h2>span{color:#047bbb}.about-company{font-size:18px;font-weight:650;margin-bottom:6px;letter-spacing:-.4px}.about-tagline{font-size:15px;color:#cb3023;font-style:italic;margin:0}.about-intro>p{color:#586470;font-size:15px;line-height:1.9;margin:0}.about-block{display:grid;grid-template-columns:.88fr 1.12fr;gap:8%;border-top:1px solid #dce3e8;padding:44px 0}.about-number{display:block;color:#0071ad;font-size:10px;font-weight:700;letter-spacing:1.7px;margin-bottom:16px}.about-block h3{font:650 clamp(24px,2.1vw,31px)/1.25 Manrope,Arial,sans-serif;letter-spacing:-.8px;margin-bottom:17px}.about-block-heading>p{font-size:13px;line-height:1.9;color:#586470;margin-bottom:0}.about-checklist{list-style:none;padding:0;margin:0}.about-checklist li{position:relative;padding:12px 0 12px 28px;border-bottom:1px solid #e6ebee;font-size:14px}.about-checklist li:before{content:'✓';position:absolute;left:0;color:#0078b7;font-weight:700}.about-note{font-size:12px;line-height:1.8;color:#586470;margin:18px 0 0}.about-consult .about-number{color:#cf3024}.about-services-label{font-size:12px;color:#586470;margin-bottom:15px}.about-consult dl{display:grid;grid-template-columns:1fr 1fr;gap:21px 27px;margin:0}.about-consult dl>div{padding-left:13px;border-left:2px solid #e3382955}.about-consult dt{font-size:13px;font-weight:700;line-height:1.5}.about-consult dd{font-size:12px;color:#586470;line-height:1.75;margin:6px 0 0}.about-consult dl>div:last-child{grid-column:1/-1}.about-training{padding-bottom:55px}.about-credentials{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0;margin:0}.about-credentials li{padding:17px 18px;background:linear-gradient(120deg,#f0f8fc,#f8fafb);border:1px solid #dce8ef;border-radius:4px}.about-credentials strong{display:block;font-size:12px;line-height:1.6;color:#14516f}.about-credentials span{display:block;font-size:11px;line-height:1.7;color:#586470;margin-top:6px}.about-quality{display:flex;align-items:center;gap:40px;justify-content:space-between;background:linear-gradient(120deg,#101c29,#1e2831);color:white;padding:36px;border-radius:5px}.about-quality>div{max-width:620px}.about-quality .eyebrow{color:#6bc7fa;margin-bottom:15px}.about-quality h3{font:600 28px/1.3 Manrope,Arial,sans-serif;letter-spacing:-.7px}.about-quality p:not(.eyebrow){font-size:13px;color:#c7d1db;line-height:1.85;margin-bottom:0}.about-quality .button{flex-shrink:0;gap:20px}@keyframes about-arrow{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}@keyframes about-shine{0%,45%{left:-80%}78%,100%{left:150%}}@media(max-width:1050px){.about-quality{align-items:flex-start;flex-direction:column;gap:25px}.about-quality>div{max-width:none}}@media(max-width:760px){.about-intro,.about-block{grid-template-columns:1fr;gap:28px}.about-intro{padding-bottom:35px}.about-intro h2{font-size:44px}.about-block{padding:32px 0}.about-consult dl,.about-credentials{grid-template-columns:1fr}.about-consult dl>div:last-child{grid-column:auto}.about-quality{padding:26px}.about-quality h3{font-size:25px}.about-jump{padding:12px 18px}.actions{gap:17px 22px}}@media(prefers-reduced-motion:reduce){.about-jump:hover{transform:none}.about-jump:before,.about-jump-arrow{animation:none!important}}

/* Larger van-inspired header lockup. */
header{padding-top:15px;padding-bottom:15px;gap:25px}header .brand{gap:12px;flex-shrink:0}header .brand img{width:73px;height:83px;object-fit:contain}header .brand-wordmark{font-family:Georgia,'Times New Roman',serif;font-size:34px;font-weight:800;letter-spacing:-1px;line-height:1.02;color:#101a27}header .brand-wordmark small{font-family:'DM Sans',Arial,sans-serif;font-size:12px;font-weight:800;letter-spacing:1.3px;margin-top:6px;line-height:1.2}header .brand-services{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:5px;font:800 18px/1.1 Georgia,serif;letter-spacing:.8px}header .brand-services b:first-child{color:#0085cd}header .brand-services b:last-child{color:#e13525}header .brand-services i{display:inline;width:auto;height:auto;background:none;border-radius:0;font-style:normal;font-size:14px;color:#101a27}header .brand:hover .brand-wordmark{color:#162d42}html{scroll-padding-top:125px}@media(max-width:1100px) and (min-width:761px){header{padding-left:4%;padding-right:4%;gap:15px}header .brand-wordmark{font-size:28px}header .brand img{width:62px;height:76px}header .brand-wordmark small{font-size:10px;letter-spacing:1px}nav{gap:18px;font-size:11px}.navcall{padding:11px 12px}}@media(max-width:760px){header{padding:12px 5%;gap:12px}header .brand{gap:8px}header .brand img{width:54px;height:67px}header .brand-wordmark{font-size:25px;letter-spacing:-.8px}header .brand-wordmark small{font-size:8.5px;letter-spacing:1px;margin-top:5px}header .brand-services{font-size:14px;gap:6px;margin-top:4px}header .brand-services i{font-size:11px}html{scroll-padding-top:105px}}@media(max-width:360px){header .brand-wordmark{font-size:22px}header .brand-wordmark small{font-size:7.5px}header .brand img{width:45px;height:61px}.menu{padding:8px}}

.contact-copy .email{display:flex;align-items:center;gap:14px;width:100%;max-width:490px;margin:26px 0;padding:20px 18px;border:1px solid #0784ca55;border-left:4px solid #0085cd;border-radius:6px;background:linear-gradient(115deg,#eaf7ff,#fff 70%,#fff1ed);color:#11516f;box-shadow:0 6px 22px #057bb511;transition:transform .25s,box-shadow .25s}.email-icon{display:flex;align-items:center;justify-content:center;width:43px;height:43px;flex-shrink:0;border-radius:50%;background:#fff;color:#0085cd;animation:email-beacon 3.5s ease-out infinite}.email-icon svg{width:27px;height:27px}.email-copy{min-width:0}.email-copy small{display:block;font-size:9px;font-weight:800;letter-spacing:1.8px;color:#cb3023;margin-bottom:6px}.email-copy strong{display:block;font-size:clamp(16px,1.5vw,22px);line-height:1.35;letter-spacing:-.5px;overflow-wrap:anywhere}.email-arrow{color:#df3325;font-size:23px;margin-left:auto;flex-shrink:0}.contact-copy .email:hover{transform:translateY(-3px);box-shadow:0 9px 26px #057bb525}.email:hover .email-copy strong{text-decoration:underline;text-underline-offset:4px}@keyframes email-beacon{0%,100%{box-shadow:0 0 0 0 #0085cd00}20%{box-shadow:0 0 0 0 #0085cd25}65%{box-shadow:0 0 0 10px #0085cd00}}@media(max-width:760px){.contact-copy .email{gap:11px;padding:17px 13px}.email-copy strong{font-size:17px}.email-icon{width:36px;height:36px}.email-icon svg{width:24px;height:24px}.email-arrow{font-size:20px}}@media(prefers-reduced-motion:reduce){.email-icon{animation:none}.contact-copy .email:hover{transform:none}}

/* Center the service line more closely with the full logo. */
header .brand-services{transform:translateX(-20px)}@media(max-width:760px){header .brand-services{transform:translateX(-14px)}}

header .brand-wordmark small{transform:translateX(12px)}@media(max-width:760px){header .brand-wordmark small{transform:translateX(8px)}}

/* A vivid, calm availability signal beside the main actions. */
.hero-note{display:inline-flex;width:fit-content;max-width:100%;gap:15px;padding:15px 22px 15px 16px;border:1px solid #088bd644;border-radius:9px;background:linear-gradient(110deg,#e7f6ff,#fff 60%,#fff0e9);box-shadow:0 5px 22px #057bb511;position:relative;isolation:isolate}.hero-note:before{content:'';position:absolute;left:0;top:17px;bottom:17px;width:3px;border-radius:3px;background:linear-gradient(#008ed6,#ef3926)}.hero-note .round{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:48px;height:48px;border:1px solid #0784ca33;background:white;color:#0084cd;animation:availability-pulse 3s ease-out infinite}.hero-note .round svg{width:33px;height:33px}.hero-note strong{font-size:14px;font-weight:800;color:#172533}.hero-availability{display:flex;align-items:center;gap:7px;margin-top:4px;color:#a92d22;font-size:12px;font-weight:600}.hero-availability b{display:inline-block;background:#e53827;color:white;border-radius:3px;padding:1px 6px;font-size:11px;letter-spacing:.6px}@keyframes availability-pulse{0%,100%{box-shadow:0 0 0 0 #008bd600}15%{box-shadow:0 0 0 0 #008bd630}70%{box-shadow:0 0 0 9px #008bd600}}@media(max-width:760px){.hero-note{padding:13px 17px 13px 14px;gap:12px}.hero-note strong{font-size:13px}.hero-note .round{width:43px;height:43px}.hero-availability{font-size:11px}}@media(prefers-reduced-motion:reduce){.hero-note .round{animation:none}}

/* American-inspired atmosphere: soft flag waves, navy, and warm white. */
.hero{background:#fbfaf7}.hero-copy{isolation:isolate;background:linear-gradient(100deg,#fffdf9f5 8%,#fffdf9d9 65%,#fffdf9a8),url('/assets/american-waves.svg') center center/cover}.hero-copy:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#faf9f5 0%,transparent 40%,#ffffff2b);pointer-events:none}.hero-copy:before{left:-8.5%;width:145px;background:linear-gradient(90deg,#153961 0 33%,#fff 33% 66%,#d43a35 66%);height:4px}.hero-note{background:linear-gradient(115deg,#eaf4ffd9,#fffdf3e8 62%,#fff0e8e8);border-color:#15396130}.services{background:linear-gradient(150deg,#fffdf9,#fff 70%)}.insurance{background:#102e51;isolation:isolate}.insurance:before{inset:0;width:auto;height:auto;left:0;top:0;border-radius:0;background:url('/assets/american-waves.svg') center 46%/cover;filter:none;opacity:.075;z-index:-1}.insurance:after{inset:0;width:auto;height:auto;right:0;bottom:0;border-radius:0;filter:none;background:linear-gradient(90deg,#102e51b3,#102e5140);opacity:1;z-index:-1}.insurance .eyebrow{color:#9ad8ff}.insurance .textlink{color:#ffada3}.areas{background:linear-gradient(120deg,#f8f5ee,#fff 62%)}.contact{background:radial-gradient(ellipse at 0 15%,#dcebf680,transparent 60%),radial-gradient(ellipse at 100% 90%,#f5e5df80,transparent 60%),#faf9f5}.about-us{background:linear-gradient(130deg,#fffdf9,#fff 65%)}.about-quality{background:linear-gradient(115deg,#102e51,#173d65)}footer{background:#f8f6f0;border-top:3px solid #16395d}.service-ribbon{border-top:1px solid #15396115}.hero-note strong{color:#153961}@media(max-width:760px){.hero-copy{background:linear-gradient(95deg,#fffdf9f2,#fffdf9c9),url('/assets/american-waves.svg') center/cover}}

/* Soft, spacious service cards beneath the hero. */
.service-ribbon{display:grid;grid-template-columns:190px 1fr;align-items:center;gap:28px;padding:30px 5.5%;background:linear-gradient(110deg,#f7f9fc,#fffdf9 55%,#fff4f0);border-top:1px solid #dfe8ef;border-bottom:1px solid #e4e9ef}.ribbon-intro>span{display:block;font-size:8px;letter-spacing:1.5px;color:#6b7681;font-weight:800;margin-bottom:8px}.ribbon-intro>strong{display:block;font:700 19px/1.35 Manrope,Arial,sans-serif;letter-spacing:-.5px;color:#183553}.ribbon-services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.ribbon-card{--ribbon-accent:#0785ca;--ribbon-soft:#eaf7ff;display:flex;align-items:center;gap:11px;position:relative;text-align:left;background:linear-gradient(120deg,#fff,var(--ribbon-soft));border:1px solid #ffffff;border-radius:17px;padding:20px 15px;box-shadow:0 7px 22px #1835530c,0 1px 3px #18355308;color:#183553;transition:transform .25s,box-shadow .25s,border-color .25s;min-height:100px}.ribbon-fire{--ribbon-accent:#df3929;--ribbon-soft:#fff0e9}.ribbon-mold{--ribbon-accent:#4f8639;--ribbon-soft:#f0f7e9}.ribbon-storm{--ribbon-accent:#536da4;--ribbon-soft:#edf0fc}.ribbon-icon{display:flex;align-items:center;justify-content:center;width:43px;height:49px;flex-shrink:0;background:#fff;border-radius:14px;color:var(--ribbon-accent);box-shadow:0 3px 12px #18355307}.ribbon-icon svg{width:29px;height:29px}.ribbon-label{min-width:0}.ribbon-label strong{display:block;font-size:12px;line-height:1.4;font-weight:800;color:var(--ribbon-accent)}.ribbon-label small{display:block;font-size:9px;font-weight:500;color:#65737f;line-height:1.5;margin-top:5px}.ribbon-arrow{position:absolute;right:10px;top:8px;color:var(--ribbon-accent);font-size:12px;opacity:.65}.ribbon-card:hover{transform:translateY(-5px);box-shadow:0 12px 26px #18355316;border-color:var(--ribbon-accent)}.ribbon-card:focus-visible{outline-color:var(--ribbon-accent)}@media(max-width:1200px){.service-ribbon{grid-template-columns:1fr;gap:18px}.ribbon-intro{display:flex;align-items:center;justify-content:space-between;gap:20px}.ribbon-intro>span{margin:0}.ribbon-intro>strong{font-size:17px}.ribbon-intro br{display:none}.ribbon-card{padding:20px 15px}}@media(max-width:760px){.service-ribbon{padding:25px 6%;gap:18px}.ribbon-intro{display:block}.ribbon-intro>span{margin-bottom:6px}.ribbon-services{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ribbon-card{padding:18px 12px;min-height:100px;gap:9px;border-radius:15px}.ribbon-icon{width:36px;height:43px;border-radius:12px}.ribbon-icon svg{width:26px;height:26px}.ribbon-label strong{font-size:11px}.ribbon-label small{font-size:9px}}@media(prefers-reduced-motion:reduce){.ribbon-card{transition:none}.ribbon-card:hover{transform:none}}

/* Readable type and comfortable spacing across the site. */
:root { --muted: #4c5a68; }
body { font-size: 1.0625rem; line-height: 1.65; }
.emergency, .eyebrow, .ribbon-intro > span { font-size: .8125rem; letter-spacing: .09em; }
nav, .menu, .button, .textlink, .about-jump { font-size: .9375rem; }
nav { gap: clamp(12px, 2vw, 30px); }
.navcall { padding-inline: 14px; }
.hero p.intro { max-width: 34rem; font-size: 1.125rem !important; line-height: 1.65; }
.hero-note strong { font-size: 1rem; }
.hero-availability, .hero-availability b, .available { font-size: .875rem; }
.hero-photo .photo-card { font-size: 1.1875rem; }

.ribbon-intro > strong, .service-card h3, .area-list h3 { font-size: 1.25rem; }
.ribbon-card { min-height: 114px; }
.ribbon-card .ribbon-label strong { font-size: 1rem; color: color-mix(in srgb, var(--ribbon-accent) 72%, #132538); }
.ribbon-card .ribbon-label small { font-size: .875rem; color: var(--muted); }
.ribbon-card .ribbon-icon { color: var(--ribbon-accent); }
.section-head > p { max-width: 30rem; }
.section-head > p, .service-card p, .approach-copy > p:not(.eyebrow), .steps p,
.insurance p:not(.eyebrow), .areas > div > p:not(.eyebrow), .area-list p,
.contact-copy > p:not(.eyebrow), details p, dialog > p:not(.eyebrow), dialog li,
.about-intro > p, .about-block-heading > p, .about-quality p:not(.eyebrow) {
  font-size: 1.0625rem;
  line-height: 1.65;
}
.service-card { display: flex; flex-direction: column; align-items: stretch; }
.service-card p { min-height: 0; }
.service-card .learn { margin-top: auto; padding-top: .75rem; font-size: .9375rem; }
.steps h3, summary { font-size: 1.125rem; }
.insurance p.fine, .office-map-copy strong, footer > div, footer > small { font-size: .9375rem; }
.contact-copy > p:not(.eyebrow) { max-width: 30rem; }
.office-map-copy address { font-size: 1.125rem; }
.office-map-copy > span, .email-copy small, .about-number { font-size: .8125rem; }
form h3 { font-size: 1.5rem; }
label { font-size: .9375rem; }
input, select, textarea { font-size: 1rem; }
.form-note, #form-status { font-size: .9375rem; color: var(--muted); }
#form-status.request-success { font-size: .9375rem !important; }

.about-checklist li, .about-consult dt, .about-credentials strong { font-size: 1rem; }
.about-note, .about-services-label, .about-consult dd, .about-credentials span { font-size: .9375rem; }
footer > small { color: var(--muted); }
footer > div { flex-wrap: wrap; }

@media (max-width: 1080px) {
  .ribbon-services, .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 761px) and (max-width: 960px) {
  header .menu { display: block; padding: 8px 12px; background: #fff; border: 1px solid #dce1e5; }
  header nav { display: none; position: absolute; top: 100%; inset-inline: 0; padding: 20px 5%; background: #fff; }
  header nav.open { display: flex; flex-direction: column; align-items: stretch; }
}
@media (max-width: 600px) {
  .hero .actions { gap: 14px; }
  .hero .actions .button { padding-inline: 16px; gap: 14px; }
  .ribbon-card { flex-direction: column; align-items: flex-start; gap: 8px; }
  .service-grid, .form-row { grid-template-columns: minmax(0, 1fr); }
  .service-card h3 { font-size: 1.25rem; }
  .emergency { font-size: .75rem; }
}

.approach-video {
  display: grid;
  place-items: center;
  height: clamp(360px, 52vw, 590px);
  border-radius: 12px;
  background: radial-gradient(ellipse at center, #294865, #102238 75%);
}
.approach-video::after { content: none; }
.approach-video video {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  object-fit: contain;
}

/* Click-through service photos: keep the whole photograph visible. */
body.service-modal-open { overflow: hidden; }
#service-dialog {
  --gallery-accent: var(--water);
  width: min(1080px, calc(100% - 32px));
  max-width: 1080px;
  max-height: calc(100dvh - 32px);
  padding: 0;
  border-radius: 16px;
  border-top: 5px solid var(--gallery-accent);
  overscroll-behavior: contain;
}
#service-dialog[data-category="fire"] { --gallery-accent: var(--fire); }
#service-dialog[data-category="mold"] { --gallery-accent: var(--mold); }
#service-dialog[data-category="storm"] { --gallery-accent: var(--storm); }
.service-dialog-header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 26px 30px 22px;
  background: #fff;
  border-bottom: 1px solid #e4e9ed;
}
#service-dialog .eyebrow { color: var(--gallery-accent); font-size: 12px; margin-bottom: 10px; }
#service-dialog h2 { font-size: clamp(26px, 3vw, 36px); letter-spacing: -1.2px; margin: 0; }
#service-dialog .close {
  position: static;
  display: grid;
  place-items: center;
  flex: 0 0 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #dce3e8;
  border-radius: 50%;
  background: #f5f7f8;
  line-height: 1;
}
#service-dialog .close:hover { background: #e9eff3; }
.service-dialog-body { display: grid; grid-template-columns: 1.2fr 1fr; gap: 30px; padding: 26px 30px 30px; }
.service-gallery, .service-dialog-copy { min-width: 0; }
.gallery-label { font-size: 14px; font-weight: 700; color: #4b5b68; margin-bottom: 12px; }
.gallery-figure { margin: 0; }
.gallery-stage { height: min(48dvh, 420px); min-height: 250px; background: #111e2b; border-radius: 10px; overflow: hidden; }
#service-photo { width: 100%; height: 100%; object-fit: contain; display: block; }
#service-photo-caption { font-size: 15px; line-height: 1.5; min-height: 45px; padding-top: 12px; color: #455462; }
.gallery-navigation { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: 8px 0 12px; }
.gallery-arrow { width: 44px; height: 44px; border: 1px solid #d7e2e8; border-radius: 50%; background: #fff; color: var(--navy); font-size: 23px; }
.gallery-arrow:hover { background: #eff5f9; border-color: var(--gallery-accent); }
#service-photo-count { font-size: 15px; color: #4b5b68; font-variant-numeric: tabular-nums; }
.gallery-thumbnails { display: flex; gap: 10px; }
.gallery-thumbnails button { width: 78px; height: 60px; border: 2px solid transparent; border-radius: 7px; padding: 3px; background: #e9eef2; opacity: .7; }
.gallery-thumbnails button[aria-pressed="true"] { border-color: var(--gallery-accent); opacity: 1; background: #fff; }
.gallery-thumbnails button:hover { opacity: 1; }
.gallery-thumbnails img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 3px; }
.service-dialog-copy { padding-top: 32px; }
#dialog-description { font-size: 17px; line-height: 1.7; color: #455462; }
#service-dialog #dialog-list { margin: 24px 0 30px; }
#service-dialog li { font-size: 16px; line-height: 1.65; margin-bottom: 12px; }
#service-dialog li::marker { color: var(--gallery-accent); }
.service-dialog-actions { display: flex; flex-direction: column; align-items: stretch; gap: 18px; border-top: 1px solid #e4e9ed; padding-top: 25px; }
#service-dialog .dialog-request { display: inline-flex; margin: 0; padding: 16px 20px; font-size: 16px; }
.dialog-call { font-size: 16px; font-weight: 700; text-align: center; padding: 8px 0; }
.dialog-call:hover { color: var(--gallery-accent); text-decoration: underline; }
@media (max-width: 760px) {
  #service-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); border-radius: 12px; }
  .service-dialog-header { padding: 20px 18px; gap: 12px; }
  #service-dialog .eyebrow { font-size: 10px; letter-spacing: 1px; }
  .service-dialog-body { grid-template-columns: minmax(0, 1fr); padding: 20px 18px 26px; gap: 24px; }
  .gallery-stage { height: min(50dvh, 380px); min-height: 220px; }
  .service-dialog-copy { padding-top: 0; }
  #service-photo-caption { min-height: 0; }
  #service-dialog #dialog-list { margin-block: 20px; }
  .dialog-call { font-size: 15px; }
}

/* ZIP entry and an explicit emergency response target. */
body.location-modal-open { overflow: hidden; }
#location-dialog {
  width: min(650px, calc(100% - 24px));
  max-width: 650px;
  max-height: calc(100dvh - 24px);
  padding: 30px;
  border-radius: 16px;
  border-top: 5px solid var(--water);
  overscroll-behavior: contain;
}
.location-heading-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
#location-dialog .eyebrow { font-size: 12px; margin-bottom: 12px; }
#location-dialog h2 { font-size: clamp(27px, 3vw, 35px); letter-spacing: -1px; margin-bottom: 18px; }
.location-close { display: grid; place-items: center; flex: 0 0 44px; height: 44px; border: 1px solid #dce3e8; border-radius: 50%; background: #f3f6f8; font-size: 28px; line-height: 1; color: var(--navy); }
.location-close:hover { background: #e5edf2; }
#location-intro { font-size: 17px; line-height: 1.65; margin-bottom: 22px; }
#location-form { padding: 0; border: 0; border-radius: 0; box-shadow: none; background: none; }
#location-form label { font-size: 15px; margin-bottom: 7px; }
.location-input-row { display: flex; gap: 10px; align-items: stretch; }
#location-zip { min-width: 0; width: 145px; flex: 1; margin: 0; padding: 14px; border-radius: 5px; font-size: 18px; letter-spacing: 1px; }
#location-form .button { width: auto; font-size: 15px; gap: 15px; padding: 14px 18px; }
#location-hint { font-size: 14px; margin: 9px 0 0; color: #5c6a75; }
.location-result { margin-top: 24px; padding: 22px; border: 1px solid #b9d9ea; border-radius: 12px; background: linear-gradient(125deg, #eaf7ff, #fff 64%, #fff1ed); }
.location-result[hidden] { display: none; }
.location-result:focus { outline: 2px solid var(--water); outline-offset: 4px; }
.location-result-zip { font-size: 14px; font-weight: 700; color: #34627c; margin-bottom: 16px; }
.location-response-target { display: flex; gap: 16px; align-items: center; }
.response-clock { flex: 0 0 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; color: var(--fire); background: white; box-shadow: 0 3px 15px #0784ca15; }
.response-clock svg { width: 43px; height: 43px; }
.location-response-target div > span { display: block; font-size: 14px; font-weight: 700; color: #425867; }
.location-response-target strong { display: block; font: 750 clamp(23px, 3vw, 30px)/1.3 Manrope, Arial, sans-serif; letter-spacing: -.8px; color: #152536; margin-top: 3px; }
.location-response-target b { color: #d43125; font-weight: 800; }
.location-target-note { font-size: 15px; line-height: 1.65; color: #495c69; margin: 20px 0; }
.location-result-actions { display: flex; flex-direction: column; gap: 13px; }
.location-result-actions .button { font-size: 15px; padding: 16px; gap: 12px; }
.location-continue { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 48px; padding: 12px 16px; border: 1px solid #bdd2df; border-radius: 4px; background: white; color: #125d87; font-size: 16px; font-weight: 700; }
.location-continue:hover { background: #f2f9fe; }
.location-next-note { margin: 14px 0 0; font-size: 14px; color: #5c6a75; }
@media (max-width: 540px) {
  #location-dialog { padding: 22px 18px; }
  .location-input-row { flex-direction: column; }
  #location-zip { width: 100%; }
  #location-form .button { width: 100%; }
  .location-result { padding: 18px 15px; }
  .location-response-target { gap: 12px; }
  .response-clock { flex-basis: 46px; height: 46px; }
  .response-clock svg { width: 36px; height: 36px; }
}
