/* Fonts load non-blockingly from HTML; system fallback stays instant for local previews. */
:root{--ink:#111316;--red:#ce202d;--gray:#4d565e;--line:#e2e5e8;--pad:clamp(22px,5vw,96px);--display:'Manrope',Arial,sans-serif;--body:'DM Sans',Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:white;color:var(--ink);font:16px/1.6 var(--body);-webkit-font-smoothing:antialiased}body.menu-is-open{overflow:hidden}main{overflow:hidden}a{color:inherit;text-decoration:none}img{width:auto;max-width:100%;display:block}h1,h2,h3,blockquote,p{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:3px}::selection{background:var(--red);color:white}.skip-link{position:fixed;top:-100px;left:5px;z-index:1000;background:#fff;padding:12px}.skip-link:focus{top:5px}
.topline{background:#121416;color:white;font-size:11px;font-weight:700}.topline-inner{max-width:1900px;margin:auto;min-height:31px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between}.topline a{display:flex;gap:8px}.site-header{position:sticky;top:0;z-index:100;background:white;border-bottom:1px solid #eee;transition:box-shadow .2s}.site-header.is-scrolled{box-shadow:0 8px 27px #0001}.header-inner{max-width:1900px;height:91px;margin:auto;padding:0 var(--pad);display:flex;align-items:center;gap:35px}.brand{width:190px;min-width:190px;height:67px;position:relative;display:block}.brand img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0}.brand.logo-ready img{opacity:1}.brand.logo-ready .brand-type{display:none}.brand-type{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;background:white;line-height:1}.brand-type strong{font:800 28px/1 var(--display);letter-spacing:-.075em}.brand-type strong span{color:var(--red)}.brand-type small{margin-top:6px;font-size:10px;font-weight:800;letter-spacing:.32em}.main-nav{display:flex;align-items:center;justify-content:center;flex:1;gap:clamp(20px,2vw,38px)}.main-nav a{font-size:13px;font-weight:800;white-space:nowrap;position:relative;padding:16px 0}.main-nav a:hover,.main-nav a.is-active{color:var(--red)}.main-nav a::after{content:'';height:2px;background:var(--red);left:0;right:0;bottom:7px;position:absolute;transform:scaleX(0);transition:transform .25s}.main-nav a:hover::after,.main-nav a.is-active::after{transform:scaleX(1)}.header-action{margin-left:auto;display:flex;align-items:center;gap:22px}.header-phone{white-space:nowrap;font-size:12px;font-weight:800}.header-cta{min-height:50px;display:flex;align-items:center;gap:17px;padding:0 20px;background:var(--red);color:#fff;font-size:12px;font-weight:800}.header-cta:hover,.red-button:hover{background:#a91924}.header-cta span{font-size:19px}.nav-toggle,.mobile-nav{display:none}
/* Real BluDog imagery, with architectural fallback rather than fabricated customer photos. */
.photo{position:relative;isolation:isolate;background:#282d31;overflow:hidden;height:100%;width:100%}.photo img{position:relative;z-index:2;width:100%;height:100%;object-fit:cover;object-position:var(--photo-pos,center);opacity:0;transition:transform .7s,opacity .25s}.photo.is-loaded img{opacity:1}.photo:hover.is-loaded img{transform:scale(1.035)}.photo-empty{position:absolute;z-index:1;inset:0;background:linear-gradient(150deg,#323941,#111518);display:flex;justify-content:center;align-items:center;flex-direction:column;gap:16px;color:#ffffff18;font:800 clamp(23px,5vw,72px)/1 var(--display);letter-spacing:.12em}.roof-silhouette{width:43%;aspect-ratio:2/.7;position:relative;border:2px solid #ffffff20;border-top:0}.roof-silhouette:before{content:'';position:absolute;top:-58%;left:23%;width:76%;height:155%;border-top:3px solid #ffffff20;border-left:3px solid #ffffff20;transform:rotate(45deg)}.hero-photo .photo-empty{font-size:clamp(45px,10vw,160px)}
/* 2026 hero: decisive headline + genuinely floating lead panel */
.hero{position:relative;isolation:isolate;background:#171b1e;color:white;min-height:clamp(690px,59vw,840px)}.hero-media{position:absolute;inset:0;z-index:0}.hero-photo img{object-position:50% 45%;filter:saturate(.87) contrast(1.04)}.hero-vignette{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#090b0de8 0%,#090b0dc4 35%,#0b0e1266 67%,#0b0e125c 100%),linear-gradient(0deg,#0007,transparent 50%);pointer-events:none}.hero-grid{position:relative;z-index:2;max-width:1900px;margin:auto;min-height:clamp(690px,59vw,840px);padding:70px var(--pad);display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,400px);gap:clamp(40px,10vw,180px);align-items:center}.hero h1{font:800 clamp(67px,7.3vw,138px)/1 var(--display);letter-spacing:-.085em}.hero h1 em{font-style:normal}.hero h1 em:after{content:'';display:inline-block;width:.13em;height:.13em;border-radius:100%;margin:0 0 .06em .02em;background:var(--red)}.hero-desc{font-size:clamp(17px,1.45vw,22px);font-weight:600;max-width:470px;line-height:1.48;margin-top:30px}.hero-learn{margin-top:34px}.hero-learn a{display:inline-flex;align-items:center;gap:18px;padding-bottom:10px;border-bottom:1px solid #fff9;font-size:14px;font-weight:800}.hero-learn a:hover{gap:25px}.location-chip{display:none}
.estimate-panel{background:white;color:var(--ink);padding:clamp(25px,2.8vw,39px);border-top:5px solid var(--red);border-radius:4px;box-shadow:0 20px 70px #0006}.panel-heading{margin-bottom:22px}.estimate-panel h2{font:800 clamp(27px,2.45vw,37px)/1.12 var(--display);letter-spacing:-.055em}.panel-heading p{color:#606970;font-size:13px;margin-top:6px}.form-line{margin-bottom:13px}.form-line label{display:block;font-size:11px;font-weight:800;line-height:1.5;margin-bottom:5px}.form-line input,.form-line select,.form-line textarea{width:100%;display:block;min-height:47px;padding:12px 13px;background:#f9fafa;border:1px solid #d5d9dd;color:#13171a;border-radius:2px;line-height:1.3;font-size:14px;font-weight:600}.form-line input::placeholder,.form-line textarea::placeholder{color:#858c92;font-weight:500}.form-line select{appearance:none;background-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23353a3f" stroke-width="2"%3E%3Cpath d="m6 9 6 6 6-6"/%3E%3C/svg%3E');background-repeat:no-repeat;background-size:18px;background-position:right 12px center;padding-right:34px}.form-more{margin:0 0 15px;padding-top:11px;border-top:1px solid #e2e4e6}.form-more summary{display:flex;justify-content:space-between;font-size:12px;font-weight:750;list-style:none;cursor:pointer}.form-more summary::-webkit-details-marker{display:none}.form-more summary span{font-size:20px;line-height:1}.form-more[open] summary{margin-bottom:13px}.form-more[open] summary span{transform:rotate(45deg)}.form-button{border:0;background:var(--red);color:#fff;padding:0 17px;min-height:53px;width:100%;display:flex;align-items:center;justify-content:space-between;font-weight:800;font-size:12px}.form-button:hover{background:#b51a25}.form-button span{font-size:22px}.form-disclosure{font-size:10.5px;line-height:1.55;color:#7a8085;margin-top:11px}.form-status{font-size:12px;color:#8b171e;font-weight:700;margin-top:6px}
.promise-strip{max-width:1900px;margin:auto;padding:0 var(--pad);min-height:129px;display:grid;grid-template-columns:repeat(3,1fr)}.promise-strip>div{display:flex;align-items:center;gap:clamp(12px,2vw,35px);padding:26px;min-width:0;border-right:1px solid var(--line)}.promise-strip>div:first-child{padding-left:0}.promise-strip>div:last-child{border:0}.promise-strip strong{font:800 clamp(22px,2vw,33px)/1.1 var(--display);letter-spacing:-.055em;white-space:nowrap}.promise-strip span{font-size:12px;font-weight:650;color:#636b71;line-height:1.45}.content-shell{max-width:1900px;margin:auto;padding-left:var(--pad);padding-right:var(--pad)}.text-link{font-size:14px;font-weight:800;display:inline-flex;align-items:center;gap:17px;padding-bottom:8px;border-bottom:1px solid currentColor;transition:gap .2s;line-height:1.3}.text-link:hover{gap:24px}.text-link span{font-size:20px}.text-light{color:#fff}
.home-statement{padding-top:clamp(110px,11vw,193px);padding-bottom:clamp(115px,11vw,180px);display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(45px,10vw,170px);align-items:end}.home-statement h2{font:800 clamp(50px,6vw,105px)/1.08 var(--display);letter-spacing:-.075em}.home-statement h2 span{color:var(--red)}.statement-heading .text-link{margin-top:40px}.statement-aside{max-width:480px}.statement-aside p{font-size:clamp(18px,1.5vw,22px);line-height:1.63;color:#4e565d;font-weight:500}.statement-aside p+p{margin-top:20px}.statement-aside strong{color:#1c2226}
.feature-grid{background:#111519;color:white;display:grid;grid-template-columns:1.4fr .85fr;grid-template-rows:auto 610px;max-width:2100px;margin:auto}.feature-head{grid-column:1/-1;padding:74px var(--pad) 65px;display:flex;align-items:end;justify-content:space-between;gap:35px}.feature-head h2{font:800 clamp(56px,6vw,100px)/1.05 var(--display);letter-spacing:-.075em}.feature-head h2 span{color:var(--red)}.feature-head p{font-size:18px;color:#c1c6ca;max-width:320px}.feature-large>a{position:relative;display:block;height:100%;overflow:hidden}.feature-photo{height:100%}.feature-large>a:after,.small-feature:after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,#000d,transparent 65%);pointer-events:none}.feature-cover{position:absolute;left:var(--pad);bottom:65px;right:20px;z-index:2}.feature-cover>span:first-child{display:none}.feature-cover h3{font:800 clamp(53px,5.4vw,95px)/1.07 var(--display);letter-spacing:-.08em}.feature-action{display:inline-block;margin-top:20px;padding-bottom:6px;border-bottom:1px solid white;font-size:14px;font-weight:800}.feature-stack{display:grid;grid-template-rows:1fr 1fr}.small-feature{position:relative;overflow:hidden;border-left:1px solid #252a2d}.small-feature-photo{height:100%}.small-feature>div:last-child{position:absolute;z-index:2;bottom:38px;left:clamp(30px,3.5vw,67px);right:15px}.small-feature h3{font:800 clamp(29px,3vw,52px)/1.12 var(--display);letter-spacing:-.06em}.small-feature>div:last-child span{font-size:13px;font-weight:700;display:block;margin-top:8px}
.owner-section{display:grid;grid-template-columns:1fr 1fr;max-width:2100px;margin:auto;min-height:740px;background:#1a1e22;color:white}.owner-image{min-height:700px;position:relative}.owner-photo img{object-position:center 38%}.owner-caption{position:absolute;z-index:3;left:0;bottom:0;background:white;color:#171b1e;padding:19px 35px;font-size:17px;font-weight:800}.owner-caption span{display:block;font-size:11px;color:#687077;margin-top:4px}.owner-content{padding:clamp(68px,8vw,145px) clamp(43px,7vw,127px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.owner-redline{width:45px;height:4px;background:var(--red);margin-bottom:35px}.owner-content h2{font:800 clamp(53px,5vw,90px)/1.09 var(--display);letter-spacing:-.075em}.owner-content h2 span{color:var(--red)}.owner-content p{font-size:17px;color:#c1c7cc;line-height:1.7;max-width:540px;margin-top:25px}.owner-content .text-link{margin-top:37px}
.proof-section{padding-top:clamp(115px,12vw,185px);padding-bottom:clamp(100px,10vw,160px)}.proof-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:55px}.proof-head h2{font:800 clamp(60px,7vw,115px)/1.04 var(--display);letter-spacing:-.075em}.proof-head h2 span{color:var(--red)}.proof-head p{max-width:370px;color:#4e565e;font-size:20px;line-height:1.5}.proof-composition{min-height:580px;display:grid;grid-template-columns:1.15fr .85fr}.proof-main{position:relative;display:block;min-height:560px}.proof-photo{height:100%;min-height:560px}.proof-main>span{position:absolute;z-index:3;left:25px;bottom:25px;background:#fff;padding:15px 20px;font-size:13px;font-weight:800}.proof-quote{padding:clamp(40px,5vw,87px);background:#f1f2f3;display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.quote-symbol{font:800 115px/.55 Georgia,serif;color:var(--red);margin-bottom:27px}.proof-quote blockquote{font:750 clamp(24px,2vw,34px)/1.43 var(--display);letter-spacing:-.04em}.proof-quote cite{font-size:14px;font-style:normal;font-weight:800;color:#5d666b;margin-top:22px}.proof-quote .text-link{margin-top:35px}.proof-footnote{margin-top:20px;font-size:13px;color:#6b7379}.proof-footnote a{text-decoration:underline}.bottom-trust{display:grid;grid-template-columns:1fr 1fr;min-height:540px;background:#191d21;color:white;max-width:2100px;margin:auto}.bottom-trust-image{height:540px}.bottom-trust-copy{padding:clamp(70px,7vw,125px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.bottom-trust-copy h2{font:800 clamp(45px,4.5vw,80px)/1.12 var(--display);letter-spacing:-.07em}.bottom-trust-copy p{font-size:18px;color:#c3c9cb;margin-top:28px;max-width:480px}.bottom-trust-copy .text-link{margin-top:35px}
.inner-hero{min-height:600px;display:grid;grid-template-columns:1fr 1fr;background:#fff}.inner-hero.dark{background:#191d20;color:white}.inner-hero-copy{padding:clamp(80px,8vw,130px) var(--pad);display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.inner-hero h1{font:800 clamp(59px,5.7vw,102px)/1.08 var(--display);letter-spacing:-.075em}.inner-hero p{max-width:570px;font-size:clamp(17px,1.45vw,22px);margin:28px 0 30px;color:#555e65}.inner-hero.dark p{color:#c5cbd0}.inner-hero-photo{min-height:570px}.inner-photo{height:100%}
.story-layout,.service-list,.detail-body,.review-blocks,.credentials-page{padding-top:clamp(110px,10vw,145px);padding-bottom:clamp(115px,10vw,155px);display:grid;grid-template-columns:.42fr .58fr;gap:clamp(50px,9vw,160px)}.story-mark{font:800 clamp(26px,3vw,45px)/1.2 var(--display);letter-spacing:-.06em}.story-timeline{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}.story-timeline span{font-size:12px;font-weight:800;padding:7px 12px;border:1px solid #dadde0}.story-body h2,.detail-description h2,.credentials-page>h2{font:800 clamp(51px,5vw,89px)/1.1 var(--display);letter-spacing:-.075em}.story-body h2 span,.credentials-page>h2 span{color:var(--red)}.story-body p,.detail-description p{font-size:19px;line-height:1.7;color:var(--gray);margin-top:25px}.dog-story{display:grid;grid-template-columns:1fr 1fr;background:#f2f3f3}.dog-story>div:first-child{min-height:620px}.dog-image{height:100%}.dog-text{padding:clamp(65px,7vw,125px);display:flex;justify-content:center;align-items:flex-start;flex-direction:column}.dog-text h2{font:800 clamp(54px,5vw,91px)/1.11 var(--display);letter-spacing:-.075em}.dog-text p{font-size:18px;color:var(--gray);line-height:1.7;margin-top:25px}.dog-text a{margin-top:32px}
.service-list>h2{font:800 clamp(52px,5vw,88px)/1.1 var(--display);letter-spacing:-.07em}.service-list>h2 span{color:var(--red)}.service-rows{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:1fr .8fr auto;gap:25px;align-items:center;padding:35px 0;border-bottom:1px solid var(--line);transition:padding .2s}.service-row:hover{padding-left:15px}.service-row>span{font:800 clamp(22px,2.15vw,33px)/1.2 var(--display);letter-spacing:-.05em}.service-row p{font-size:14px;color:var(--gray)}.service-row b{color:var(--red);font-size:13px;white-space:nowrap}.horizontal-work{display:grid;grid-template-columns:1fr 1fr;background:#161a1d;color:white}.horizontal-work>div:first-child{min-height:560px}.horizontal-photo{height:100%}.horizontal-work>div:last-child{padding:clamp(65px,7vw,128px);display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.horizontal-work h2{font:800 clamp(50px,5vw,86px)/1.13 var(--display);letter-spacing:-.075em}.horizontal-work p{font-size:18px;max-width:500px;color:#c3c9cd;line-height:1.6;margin:28px 0 34px}
.detail-side>p{font-size:14px;color:var(--gray);font-weight:700}.detail-side h2{font:800 clamp(42px,4vw,66px)/1.1 var(--display);letter-spacing:-.075em;margin:20px 0 35px}.red-button{padding:17px 22px;background:var(--red);color:white;display:inline-flex;align-items:center;gap:24px;font-size:14px;font-weight:800}.detail-link-row{display:flex;gap:28px;flex-wrap:wrap;margin-top:42px}.detail-image-band{height:535px}.detail-band-photo{height:100%}
.project-gallery{padding-top:125px;padding-bottom:130px}.gallery-heading{display:grid;grid-template-columns:1fr .55fr;gap:40px;align-items:end;margin-bottom:60px}.gallery-heading h2{font:800 clamp(59px,6vw,105px)/1.05 var(--display);letter-spacing:-.075em}.gallery-heading h2 span{color:var(--red)}.gallery-heading p{font-size:18px;color:var(--gray);max-width:380px}.gallery-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;grid-auto-rows:minmax(240px,26vw);gap:12px}.gallery-photo{position:relative;min-height:240px;background:#282d32}.gallery-photo.major{grid-column:span 2;grid-row:span 2}.gallery-photo.wide{grid-column:span 2}.gallery-img{height:100%}.gallery-photo p{position:absolute;left:13px;bottom:13px;background:white;font-size:12px;font-weight:800;padding:11px 14px}.gallery-link{display:flex;align-items:center;justify-content:space-between;gap:35px;padding-top:80px}.gallery-link h2{font:800 clamp(40px,4vw,70px)/1.1 var(--display);letter-spacing:-.075em}
.review-intro h2{font:800 clamp(56px,5vw,96px)/1.09 var(--display);letter-spacing:-.075em}.review-intro h2 span{color:var(--red)}.review-intro p{font-size:17px;color:var(--gray);margin-top:22px}.review-list{border-top:1px solid var(--line)}.review-list blockquote{padding:48px 0;border-bottom:1px solid var(--line)}.review-list blockquote p{font:650 clamp(21px,2vw,30px)/1.45 var(--display);letter-spacing:-.04em}.review-list cite{font-size:14px;color:#636a70;font-weight:800;font-style:normal;display:block;margin-top:22px}.third-party-proof{background:#15191d;color:white;padding:125px var(--pad)}.third-party-proof>div{max-width:1350px;margin:auto;display:grid;grid-template-columns:1fr .45fr;align-items:center;gap:30px}.third-party-proof h2{font:800 clamp(55px,5vw,90px)/1.1 var(--display);letter-spacing:-.075em}.third-party-proof p{font-size:18px;line-height:1.6;color:#c3c9cb}.third-party-proof a{grid-column:2;justify-self:start}.light-button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 23px;background:white;color:#131619;font-size:14px;font-weight:800}.light-button:hover{background:#e6e8ea}
.credential-list article{padding:36px 0;border-top:1px solid var(--line)}.credential-list h3{font:800 clamp(28px,2.4vw,42px)/1.2 var(--display);letter-spacing:-.06em}.credential-list p{font-size:18px;color:var(--gray);margin-top:12px}.credential-list a{margin-top:20px}
.contact-stage{background:#161a1e;color:white;padding:clamp(75px,9vw,150px) var(--pad);display:grid;grid-template-columns:1fr .85fr;gap:clamp(50px,8vw,120px);align-items:center}.contact-left h1{font:800 clamp(59px,6vw,107px)/1.08 var(--display);letter-spacing:-.08em}.contact-left h1 em{font-style:normal;color:#f66973}.contact-left>p{font-size:20px;color:#c9d0d3;margin:30px 0 50px;max-width:530px}.contact-method{border-top:1px solid #3c4347;padding:20px 0;display:flex;justify-content:space-between;gap:20px;max-width:610px}.contact-method span{font-size:13px;font-weight:800;color:#a2abb0}.contact-method a,.contact-method strong{font-size:clamp(16px,1.5vw,23px);font-weight:800}.contact-left>.text-link{margin-top:28px}.contact-right{width:100%;max-width:520px;justify-self:end}.contact-bottom{padding-top:130px;padding-bottom:130px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.contact-bottom h2{font:800 clamp(55px,5vw,95px)/1.07 var(--display);letter-spacing:-.07em}.contact-bottom p{font-size:19px;color:var(--gray);margin-top:25px}.contact-bottom>div:last-child{height:480px}
.final-cta{background:var(--red);color:white}.final-inner{max-width:1900px;margin:auto;padding:clamp(85px,9vw,150px) var(--pad);display:flex;align-items:end;justify-content:space-between;gap:45px}.final-intro{font-size:15px;font-weight:800;margin-bottom:22px}.final-cta h2{font:800 clamp(70px,8vw,143px)/1.03 var(--display);letter-spacing:-.082em}.final-cta h2 span{color:#1c2124}.final-actions{display:flex;align-items:flex-start;flex-direction:column;gap:24px;padding-bottom:10px}.call-small{font-size:15px;font-weight:800;border-bottom:1px solid white;padding-bottom:6px}.footer{background:#121619;color:#fff}.footer-inner{max-width:1900px;margin:auto;padding:100px var(--pad) 90px;display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:clamp(25px,4vw,72px)}.footer-brand strong{font:800 48px/1 var(--display);letter-spacing:-.075em}.footer-brand strong span{color:var(--red)}.footer-brand small{display:block;font-size:12px;letter-spacing:.28em;font-weight:800;margin-top:4px}.footer-brand p{font-size:15px;color:#adb6bc;margin-top:23px;line-height:1.65}.footer-inner>div:not(:first-child){display:flex;align-items:flex-start;flex-direction:column;gap:11px}.footer-inner h2{font-size:14px;font-weight:800;margin-bottom:14px}.footer-inner a{font-size:14px;color:#c1c8cd;overflow-wrap:anywhere}.footer-inner a:hover{text-decoration:underline;text-underline-offset:3px}.legal{max-width:1900px;margin:auto;border-top:1px solid #2a3035;padding:23px var(--pad);display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#9aa3aa}.mobile-contact-bar{display:none}.notfound{min-height:70vh;display:flex;justify-content:center;align-items:flex-start;flex-direction:column;padding:90px var(--pad)}.notfound h1{font:800 clamp(58px,8vw,115px)/1.1 var(--display);letter-spacing:-.075em;margin:25px 0}.notfound p{font-size:20px;margin-bottom:29px}
@media(prefers-reduced-motion:no-preference){.reveal{opacity:0;transform:translateY(25px);transition:opacity .65s,transform .65s}.reveal.is-visible{opacity:1;transform:none}}
@media(max-width:1300px){.header-phone{display:none}.hero-grid{gap:52px}.hero h1{font-size:clamp(65px,7.5vw,110px)}.promise-strip>div{padding:23px 16px}.promise-strip strong{font-size:26px}.owner-content{padding:80px 50px}.owner-content h2{font-size:clamp(47px,5vw,70px)}.service-row{grid-template-columns:1fr auto}.service-row p{grid-column:1/-1;grid-row:2}.service-row b{grid-row:1;grid-column:2}}
@media(max-width:1080px){.main-nav{display:none}.header-action{margin-left:auto}.nav-toggle{display:flex;border:0;background:transparent;width:44px;height:44px;padding:10px;flex-direction:column;gap:8px;justify-content:center}.nav-toggle span{width:25px;height:2px;background:#15191c;display:block;transition:transform .2s}.nav-toggle[aria-expanded=true] span:first-child{transform:translateY(5px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:last-child{transform:translateY(-5px) rotate(-45deg)}.mobile-nav:not([hidden]){display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:white;box-shadow:0 20px 40px #0002;padding:17px var(--pad) 29px;max-height:calc(100dvh - 85px);overflow:auto}.mobile-nav a{padding:15px 0;border-bottom:1px solid var(--line);font-size:21px;font-weight:800}.mobile-nav a.mobile-estimate{background:var(--red);color:white;text-align:center;margin-top:18px;padding:16px}.header-inner{height:82px}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(315px,360px);gap:35px}.hero h1{font-size:clamp(59px,7.5vw,86px)}.home-statement{gap:45px}.proof-quote{padding:42px}.proof-quote blockquote{font-size:24px}.footer-inner{grid-template-columns:1.5fr 1fr 1fr}.footer-inner>div:last-child{grid-column:2/4}.credentials-page{gap:50px}}
@media(max-width:800px){.topline a{display:none}.brand{width:165px;min-width:165px;height:55px}.brand-type strong{font-size:25px}.header-cta{min-height:44px}.hero{min-height:auto}.hero-grid{min-height:auto;display:block;padding:95px var(--pad) 0}.hero-media,.hero-vignette{height:670px}.hero h1{font-size:clamp(67px,10vw,95px)}.hero-copy{padding-bottom:88px}.hero .estimate-panel{max-width:580px;margin:0 auto -78px;position:relative;z-index:5}.promise-strip{padding-top:110px;grid-template-columns:1fr 1fr}.promise-strip>div:last-child{grid-column:1/-1;border-top:1px solid var(--line);padding-left:0}.promise-strip>div:nth-child(2){border:0}.home-statement{grid-template-columns:1fr;padding-top:110px;padding-bottom:110px}.home-statement h2{font-size:clamp(57px,8vw,85px)}.feature-grid{grid-template-columns:1fr;grid-template-rows:auto 550px 330px}.feature-head{padding-top:70px}.feature-head h2{font-size:clamp(55px,7vw,79px)}.feature-stack{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.feature-cover h3{font-size:75px}.small-feature h3{font-size:30px}.owner-section{grid-template-columns:1fr}.owner-image{min-height:650px}.owner-content{padding:110px var(--pad)}.owner-content h2{font-size:clamp(65px,9vw,105px)}.proof-head{display:block}.proof-head p{margin-top:25px}.proof-composition{grid-template-columns:1fr}.proof-quote{padding:65px var(--pad)}.proof-quote blockquote{font-size:clamp(26px,4vw,36px)}.bottom-trust{grid-template-columns:1fr}.bottom-trust-image{height:440px}.bottom-trust-copy{padding:90px var(--pad)}.inner-hero{grid-template-columns:1fr}.inner-hero-copy{padding:100px var(--pad)}.inner-hero-photo{min-height:0;height:470px}.inner-hero h1{font-size:clamp(65px,9vw,95px)}.story-layout,.service-list,.detail-body,.review-blocks,.credentials-page{grid-template-columns:1fr;gap:55px;padding-top:110px;padding-bottom:110px}.dog-story{grid-template-columns:1fr}.dog-story>div:first-child{height:460px;min-height:0}.dog-text{padding:95px var(--pad)}.horizontal-work{grid-template-columns:1fr}.horizontal-work>div:first-child{height:460px;min-height:0}.horizontal-work>div:last-child{padding:90px var(--pad)}.gallery-heading{grid-template-columns:1fr}.gallery-grid{grid-auto-rows:minmax(190px,33vw)}.contact-stage{grid-template-columns:1fr}.contact-right{justify-self:start;max-width:650px}.contact-bottom{grid-template-columns:1fr}.contact-bottom>div:last-child{height:420px}.third-party-proof>div{display:block}.third-party-proof a{margin-top:30px}.third-party-proof p{margin-top:28px}.footer-inner{grid-template-columns:1fr 1fr}.footer-inner>div:first-child{grid-column:1/-1}.footer-inner>div:last-child{grid-column:auto}.final-inner{align-items:flex-start;flex-direction:column}.final-cta h2{font-size:clamp(72px,10vw,115px)}}
@media(max-width:550px){:root{--pad:21px}.topline-inner{min-height:28px;font-size:9px}.header-inner{height:73px}.header-action{display:none}.nav-toggle{margin-left:auto}.hero-grid{padding-top:75px}.hero-media,.hero-vignette{height:565px}.hero h1{font-size:clamp(51px,12vw,70px);line-height:1.015}.hero-desc{font-size:17px;margin-top:22px;max-width:325px}.hero-learn{margin-top:22px}.hero-learn a{font-size:12px}.hero-copy{padding-bottom:105px}.hero .estimate-panel{margin-bottom:-65px}.estimate-panel{padding:26px 22px}.estimate-panel h2{font-size:33px}.promise-strip{padding-top:90px;display:block}.promise-strip>div,.promise-strip>div:first-child,.promise-strip>div:last-child{border:0;border-top:1px solid var(--line);padding:23px 0}.promise-strip strong{min-width:150px;font-size:25px}.promise-strip span{font-size:12px}.home-statement{padding-top:85px;padding-bottom:85px;gap:30px}.home-statement h2{font-size:clamp(44px,10.8vw,63px)}.statement-heading .text-link{margin-top:29px}.statement-aside p{font-size:17px}.feature-head{display:block;padding:65px var(--pad) 40px}.feature-head h2{font-size:clamp(44px,11vw,62px)}.feature-head p{font-size:16px;margin-top:18px}.feature-grid{grid-template-rows:auto 420px auto}.feature-cover{left:var(--pad);bottom:32px}.feature-cover h3{font-size:clamp(45px,12vw,65px)}.feature-stack{grid-template-columns:1fr;grid-template-rows:220px 220px}.small-feature>div:last-child{left:var(--pad);bottom:23px}.small-feature h3{font-size:33px}.owner-image{min-height:480px}.owner-caption{padding:15px 20px;font-size:14px}.owner-content{padding:85px var(--pad)}.owner-content h2{font-size:clamp(48px,11vw,67px)}.owner-content p{font-size:16px}.proof-section{padding-top:95px;padding-bottom:95px}.proof-head h2{font-size:clamp(55px,12vw,74px)}.proof-head p{font-size:17px}.proof-main,.proof-photo{min-height:340px}.proof-main>span{left:12px;bottom:12px;padding:12px 14px;font-size:11px}.proof-quote{padding:72px var(--pad)}.proof-quote blockquote{font-size:24px}.quote-symbol{font-size:97px}.bottom-trust-image{height:320px}.bottom-trust-copy{padding:80px var(--pad)}.bottom-trust-copy h2{font-size:48px}.bottom-trust-copy p{font-size:16px}.inner-hero-copy{padding:83px var(--pad)}.inner-hero h1{font-size:clamp(49px,12vw,65px)}.inner-hero p{font-size:17px;margin:22px 0 30px}.inner-hero-photo{height:340px}.story-layout,.service-list,.detail-body,.review-blocks,.credentials-page{padding-top:90px;padding-bottom:100px;gap:37px}.story-body h2,.detail-description h2{font-size:52px}.story-body p,.detail-description p,.credential-list p{font-size:17px}.dog-story>div:first-child{height:335px}.dog-text{padding:75px var(--pad)}.dog-text h2{font-size:51px}.dog-text p{font-size:16px}.service-list>h2{font-size:53px}.service-row{padding:25px 0;gap:11px}.service-row>span{font-size:23px}.horizontal-work>div:first-child{height:310px}.horizontal-work>div:last-child{padding:80px var(--pad)}.horizontal-work h2{font-size:48px}.horizontal-work p{font-size:16px}.detail-side h2{font-size:43px}.detail-image-band{height:300px}.project-gallery{padding-top:85px;padding-bottom:90px}.gallery-heading h2{font-size:59px}.gallery-heading p{font-size:16px}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:240px;gap:7px}.gallery-photo.major{grid-column:1/-1;grid-row:span 2}.gallery-photo.wide{grid-column:1/-1}.gallery-photo p{font-size:10px;bottom:7px;left:7px;padding:8px}.gallery-link{align-items:start;flex-direction:column}.gallery-link h2{font-size:40px}.review-intro h2{font-size:56px}.review-list blockquote{padding:35px 0}.review-list blockquote p{font-size:22px}.third-party-proof{padding:88px var(--pad)}.third-party-proof h2{font-size:53px}.credentials-page>h2{font-size:55px}.credential-list h3{font-size:27px}.contact-stage{padding:85px var(--pad)}.contact-left h1{font-size:clamp(46px,11vw,68px)}.contact-left>p{font-size:17px;margin:23px 0 33px}.contact-method a,.contact-method strong{font-size:16px}.contact-method span{font-size:11px}.contact-bottom{padding-top:95px;padding-bottom:100px;gap:44px}.contact-bottom h2{font-size:52px}.contact-bottom>div:last-child{height:315px}.final-inner{padding:80px var(--pad) 95px;gap:37px}.final-cta h2{font-size:clamp(60px,13vw,80px)}.footer-inner{grid-template-columns:1fr 1fr;padding:80px var(--pad) 60px;gap:35px 20px}.footer-inner>div:last-child{grid-column:1/-1}.footer-brand strong{font-size:40px}.footer-inner a{font-size:13px}.legal{flex-direction:column;padding-bottom:100px}.mobile-contact-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:111;height:61px;background:#111619;box-shadow:0 -5px 20px #0003}.mobile-contact-bar a{display:flex;align-items:center;justify-content:center;flex:1;color:#fff;font-size:14px;font-weight:800}.mobile-contact-bar a+a{background:var(--red)}body{padding-bottom:61px}}
@media(max-width:350px){.brand{width:144px;min-width:144px}.brand-type strong{font-size:23px}.hero h1{font-size:47px}.promise-strip strong{min-width:125px;font-size:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1!important;transform:none!important}}
/* Guard against intrinsic image widths forcing editorial grid columns beyond the viewport. */
.feature-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,.85fr)}
.owner-section{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.proof-composition{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.bottom-trust,.horizontal-work,.dog-story,.inner-hero,.contact-bottom{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.owner-image,.owner-content,.owner-section>* , .feature-grid>* , .proof-composition>* , .bottom-trust>* , .horizontal-work>* , .inner-hero>* , .dog-story>* , .photo{min-width:0}
@media(max-width:800px){.feature-grid{grid-template-columns:1fr}.owner-section,.proof-composition,.bottom-trust,.horizontal-work,.dog-story,.inner-hero,.contact-bottom{grid-template-columns:minmax(0,1fr)}}


/* V7.2 — Photo Edition: images are the content, not decorations */
.v72-work{background:#fff;padding-top:clamp(80px,8vw,142px)}
.v72-intro{display:grid;grid-template-columns:1.2fr .65fr;gap:5vw;align-items:end;padding-bottom:55px}
.v72-intro h2{font:800 clamp(58px,7.5vw,128px)/.98 var(--display);letter-spacing:-.077em;max-width:1100px}
.v72-intro>div{padding-bottom:9px}.v72-intro p{max-width:450px;font-size:clamp(18px,1.55vw,24px);line-height:1.45;color:#545b60;margin-bottom:27px}
.v72-underline{display:inline-block;border-bottom:2px solid currentColor;font-size:14px;font-weight:800;letter-spacing:-.01em;padding-bottom:9px}
.v72-underline:hover{color:var(--red)}
.v72-work-grid{display:grid;grid-template-columns:1.38fr .62fr;gap:8px;min-height:630px}
.v72-work-grid a{position:relative;display:block;overflow:hidden;min-height:230px;background:#22272b;color:white}
.v72-spotlight{min-height:630px!important}.v72-pair{display:grid;grid-template-rows:1fr 1fr;gap:8px;min-width:0}
.v72-work-grid .v72-photo{position:absolute;inset:0}.v72-image-caption{position:absolute;bottom:26px;left:26px;z-index:2;background:#fff;color:#191d20;font-size:13px;font-weight:800;padding:14px 18px}
.v72-work-grid .v72-photo img{transition:transform .7s cubic-bezier(.22,.75,.22,1)}.v72-work-grid a:hover .v72-photo img{transform:scale(1.04)}
.v72-people{padding-top:clamp(95px,10vw,180px);padding-bottom:70px;background:#f6f7f7}
.v72-people-top{display:grid;grid-template-columns:1.15fr .6fr;align-items:end;gap:30px;padding-bottom:60px}
.v72-people-top h2{font:800 clamp(65px,7.8vw,126px)/1.02 var(--display);letter-spacing:-.078em}.v72-people-top h2 span{color:var(--red)}
.v72-people-top p{max-width:470px;font-size:clamp(18px,1.55vw,23px);line-height:1.48;color:#525a60}
.v72-people-stage{display:grid;grid-template-columns:1.07fr .93fr;min-height:650px}
.v72-people-image{min-height:540px;display:block;position:relative;overflow:hidden;background:#242629}.v72-people-image .v72-photo{position:absolute;inset:0}.v72-people-image>span{position:absolute;bottom:22px;left:22px;padding:13px 18px;color:#171a1d;background:white;font-size:13px;font-weight:800;z-index:2}
.v72-people-quote{background:#111518;color:white;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(38px,5.5vw,100px)}
.v72-verified{font:800 13px/1.5 var(--display);color:#f0545e;margin-bottom:28px}.v72-people-quote blockquote{font:650 clamp(19px,2.1vw,30px)/1.52 var(--display);letter-spacing:-.025em;max-width:690px}.v72-people-quote strong{font-size:17px;margin-top:32px}.v72-people-quote strong span{font-weight:500;color:#aab3ba}.v72-people-quote .v72-underline{margin-top:30px;color:white}
.v72-gq-bar{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:25px;align-items:center;padding-top:44px}.v72-gq-bar>div{display:flex;align-items:baseline;gap:11px}.v72-gq-bar strong{font:800 clamp(37px,3.4vw,60px)/1 var(--display);letter-spacing:-.06em;color:#d21c2c}.v72-gq-bar span{font-size:12px;font-weight:700;color:#505861;max-width:120px}.v72-gq-bar>a{font-size:12px;font-weight:800;border-bottom:1px solid currentColor;padding-bottom:6px}
.v72-gallery-section{padding-top:clamp(75px,8vw,145px);padding-bottom:clamp(95px,9vw,155px)}.v72-gallery-lead{display:grid;grid-template-columns:1fr .55fr;align-items:end;gap:30px;margin-bottom:50px}.v72-gallery-lead h2{font:800 clamp(55px,6vw,99px)/1.05 var(--display);letter-spacing:-.075em}.v72-gallery-lead p{color:#5d656b;font-size:18px;line-height:1.6;max-width:420px}
.v72-gallery-mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;gap:11px}.v72-gallery-item{grid-column:span 4;margin:0;min-width:0}.v72-gallery-item.v72-wide{grid-column:span 8}.v72-gallery-item.v72-tall{grid-column:span 4;grid-row:span 2}
.v72-gallery-view{display:block;position:relative;appearance:none;border:0;padding:0;background:#1b1d21;width:100%;height:clamp(270px,28vw,490px);overflow:hidden;cursor:zoom-in}.v72-tall .v72-gallery-view{height:calc(clamp(270px,28vw,490px)*2 + 75px)}
.v72-gallery-view .v72-photo{position:absolute;inset:0}.v72-zoom{position:absolute;right:14px;bottom:14px;z-index:2;background:white;padding:12px 16px;font-size:12px;font-weight:800;opacity:0;transition:opacity .2s}.v72-gallery-view:hover .v72-zoom,.v72-gallery-view:focus-visible .v72-zoom{opacity:1}
.v72-gallery-item figcaption{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:19px 2px 27px;color:#20262b}.v72-gallery-item figcaption strong{font-size:16px}.v72-gallery-item figcaption a{font-size:12px;font-weight:800;border-bottom:1px solid currentColor}
.v72-gallery-close{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:70px;padding-top:35px;border-top:1px solid #d8dde0}.v72-gallery-close p{max-width:560px;font-size:21px;line-height:1.4;font-weight:700}
.v72-lightbox{background:#141719;color:white;position:fixed;border:1px solid #495258;padding:24px;max-width:min(94vw,1450px);max-height:94dvh;overflow:auto}.v72-lightbox::backdrop{background:#050607e8}.v72-lightbox>img{max-width:100%;max-height:76dvh;display:block;margin:auto;object-fit:contain}.v72-lightbox .v72-close{margin:0 0 15px auto;display:block;background:var(--red);color:white;padding:10px 18px;border:0;font-weight:800;cursor:pointer}.v72-lightbox>p{font-size:14px;font-weight:800;padding:15px 0 0;text-align:center}
.v72-review-feature{display:grid;grid-template-columns:.85fr 1.15fr;background:#111518;color:#fff}.v72-review-picture{min-height:560px;position:relative}.v72-review-picture .v72-photo{position:absolute;inset:0}.v72-review-words{padding:clamp(55px,6vw,115px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.v72-review-source{color:#f0545e;font-size:13px;font-weight:800;margin-bottom:24px}.v72-review-words blockquote{font:650 clamp(21px,2vw,32px)/1.5 var(--display);max-width:750px}.v72-review-words cite{font-style:normal;color:#b9c3c7;margin-top:25px;font-weight:800}.v72-review-words a{color:white;margin-top:27px}
@media(max-width:1000px){.v72-work-grid{grid-template-columns:1.15fr .85fr;min-height:530px}.v72-spotlight{min-height:530px!important}.v72-people-stage{grid-template-columns:1fr 1fr}.v72-gq-bar{grid-template-columns:repeat(3,1fr)}.v72-gq-bar>a{grid-column:1/-1;justify-self:start}.v72-gallery-item{grid-column:span 6}.v72-gallery-item.v72-wide{grid-column:span 12}.v72-gallery-item.v72-tall{grid-column:span 6;grid-row:span 1}.v72-tall .v72-gallery-view{height:clamp(270px,28vw,490px)}}
@media(max-width:800px){.v72-intro,.v72-people-top,.v72-gallery-lead{grid-template-columns:1fr}.v72-intro h2,.v72-people-top h2{font-size:clamp(58px,9vw,86px)}.v72-work-grid{grid-template-columns:1fr}.v72-spotlight{min-height:520px!important}.v72-pair{grid-template-columns:1fr 1fr;grid-template-rows:340px}.v72-people-stage,.v72-review-feature{grid-template-columns:1fr}.v72-people-image{min-height:470px}.v72-people-quote{padding:75px var(--pad)}.v72-review-picture{min-height:460px}.v72-gallery-close{flex-direction:column;align-items:flex-start}}
@media(max-width:550px){.v72-intro{padding-bottom:28px}.v72-intro h2,.v72-people-top h2{font-size:clamp(51px,12vw,68px)}.v72-intro p,.v72-people-top p{font-size:17px}.v72-work-grid{gap:7px}.v72-spotlight{min-height:430px!important}.v72-pair{grid-template-columns:1fr;grid-template-rows:260px 260px;gap:7px}.v72-image-caption{left:12px;bottom:12px;padding:11px 14px;font-size:11px}.v72-people{padding-top:85px}.v72-people-top{padding-bottom:35px}.v72-people-image{min-height:350px}.v72-people-quote{padding:58px var(--pad)}.v72-people-quote blockquote{font-size:21px}.v72-gq-bar{grid-template-columns:1fr 1fr;padding-top:32px;gap:25px 15px}.v72-gq-bar>div{display:block}.v72-gq-bar strong{display:block;font-size:41px}.v72-gq-bar span{display:block;margin-top:6px}.v72-gq-bar>a{grid-column:1/-1}.v72-gallery-section{padding-top:75px}.v72-gallery-lead h2{font-size:49px}.v72-gallery-lead p{font-size:16px}.v72-gallery-mosaic{grid-template-columns:1fr;gap:5px}.v72-gallery-item,.v72-gallery-item.v72-wide,.v72-gallery-item.v72-tall{grid-column:auto;grid-row:auto}.v72-gallery-view,.v72-tall .v72-gallery-view{height:310px}.v72-gallery-item figcaption{padding:12px 2px 23px}.v72-gallery-close p{font-size:18px}.v72-review-picture{min-height:340px}.v72-review-words{padding:65px var(--pad)}.v72-review-words blockquote{font-size:21px}}

/* V7.3 editorial clarity pass: fewer ornamental elements and shorter copy. */
.hero .hero-desc{max-width:550px}
.v72-gq-bar{grid-template-columns:minmax(140px,.55fr) minmax(0,1.4fr) auto;align-items:center}
.v72-gq-bar .v73-gq-explain{padding-left:28px;border-left:1px solid #d8dbdf}
.v72-gq-bar .v73-gq-explain p{font-size:15px;line-height:1.5;font-weight:500;color:#4a535a;max-width:360px}
.v72-gq-bar a{white-space:normal}
.story-timeline,.owner-redline{display:none!important}
.v72-verified{text-transform:none;letter-spacing:0}
@media(max-width:950px){.v72-gq-bar{grid-template-columns:1fr 1.6fr}.v72-gq-bar>a{grid-column:1/-1}.v72-gq-bar .v73-gq-explain{align-self:center}}
@media(max-width:550px){.v72-gq-bar{grid-template-columns:1fr}.v72-gq-bar>a{grid-column:1}.v72-gq-bar .v73-gq-explain{padding:0;border:0}.v72-gq-bar .v73-gq-explain p{max-width:100%}}

@media(max-width:800px){.mobile-contact-bar{transition:opacity .2s ease,transform .2s ease}.mobile-contact-bar.is-obscured{opacity:0;transform:translateY(110%);pointer-events:none}}
@media(prefers-reduced-motion:reduce){.mobile-contact-bar{transition:none!important}}


/* V7.4 — Calm, traditional homepage. All internal pages retain their established design. */
.v74-container{max-width:1370px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.v74-home .v74-trust{background:#fff;border-bottom:1px solid #e8eaec}
.v74-home .v74-trust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-height:108px;align-items:stretch}
.v74-trust-grid>div{display:flex;flex-direction:column;justify-content:center;padding:23px 30px;border-right:1px solid #e6e8ea}
.v74-trust-grid>div:first-child{padding-left:0}.v74-trust-grid>div:last-child{border-right:0}
.v74-trust-grid strong{font:800 clamp(14px,1.12vw,17px)/1.35 var(--display);letter-spacing:-.024em}
.v74-trust-grid span{margin-top:5px;color:#5e6871;font-size:12.5px;line-height:1.45}
.v74-services{background:#fff;padding:clamp(65px,7vw,104px) 0 clamp(65px,7vw,102px)}
.v74-section-heading{display:flex;align-items:end;justify-content:space-between;gap:45px;margin-bottom:36px}
.v74-section-heading h2{font:800 clamp(35px,3.3vw,53px)/1.13 var(--display);letter-spacing:-.052em;max-width:680px}
.v74-section-heading p{font-size:16px;line-height:1.65;max-width:385px;color:#58616a;font-weight:500}
.v74-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.v74-service-card{min-width:0;border:1px solid #e0e4e6;background:white;display:flex;flex-direction:column;overflow:hidden}
.v74-card-photo-link{display:block;height:clamp(210px,20vw,280px);overflow:hidden;background:#20272b}
.v74-service-card .v74-image{height:100%;width:100%}
.v74-image .photo-empty{background:linear-gradient(135deg,#313a40,#161a1d);color:#ffffff25;gap:9px;letter-spacing:.075em}
.v74-image .photo-empty span:first-child{font-size:clamp(25px,2.7vw,44px)}.v74-image .photo-empty span:last-child{font-size:clamp(13px,1.5vw,22px)}
.v74-service-card .photo img{transition:transform .45s ease,opacity .2s}.v74-card-photo-link:hover .photo.is-loaded img{transform:scale(1.025)}
.v74-card-content{padding:26px 28px 27px;display:flex;flex:1;flex-direction:column;align-items:flex-start}
.v74-card-content h3{font:800 clamp(23px,1.8vw,29px)/1.24 var(--display);letter-spacing:-.045em}
.v74-card-content h3 a:hover{color:var(--red)}
.v74-card-content p{font-size:15px;line-height:1.65;color:#535e67;margin:12px 0 23px;max-width:355px}
.v74-card-link{font-size:13px;font-weight:800;color:#af1723;border-bottom:1px solid currentColor;padding-bottom:3px;margin-top:auto}
.v74-card-link:hover,.v74-inline-link:hover{color:#78101a}
.v74-services-footer{display:flex;align-items:center;justify-content:center;gap:10px 22px;margin-top:32px;flex-wrap:wrap;font-size:15px}
.v74-services-footer p{color:#545c65}.v74-inline-link{font-weight:800;color:#ab1823;border-bottom:1px solid currentColor}
.v74-owner{background:#f4f5f6;padding:clamp(66px,7.2vw,110px) 0}
.v74-owner-grid{display:grid;grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);align-items:center;gap:clamp(42px,6vw,100px)}
.v74-owner-image{aspect-ratio:1.2/1;min-height:320px;overflow:hidden;background:#252b30}
.v74-owner-image .photo{height:100%}.v74-owner-image img{object-position:center 38%}
.v74-owner-copy h2{font:800 clamp(34px,3.6vw,55px)/1.15 var(--display);letter-spacing:-.052em;max-width:610px;margin-bottom:25px}
.v74-owner-copy p{font-size:16px;line-height:1.78;color:#404a52;max-width:600px}
.v74-owner-copy p+p{margin-top:14px}
.v74-button{display:inline-flex;align-items:center;justify-content:center;padding:16px 23px;min-height:52px;line-height:1.2;font-size:14px;font-weight:800;margin-top:29px;transition:background .2s}
.v74-dark-button{background:#161a1d;color:#fff}.v74-dark-button:hover{background:#b91a26}
.v74-reviews{padding:clamp(70px,8vw,118px) 0 clamp(75px,8vw,119px);background:#fff}
.v74-reviews-heading{margin-bottom:35px}
.v74-review-grid{display:grid;grid-template-columns:minmax(235px,.36fr) minmax(0,1fr);border:1px solid #e0e3e6}
.v74-review-score{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:250px;padding:42px clamp(28px,3vw,55px);background:#f3f5f6}
.v74-review-score strong{font:800 clamp(57px,6vw,87px)/1 var(--display);letter-spacing:-.075em;color:#c61f2b}
.v74-review-score span{font-size:16px;font-weight:800;margin-top:8px}
.v74-review-score small{font-size:12px;color:#69727a;margin-top:2px}
.v74-review-score a{color:#a51924;border-bottom:1px solid currentColor;font-size:12px;font-weight:800;margin-top:22px}
.v74-review-quote{padding:clamp(31px,4vw,65px);display:flex;flex-direction:column;justify-content:center}
.v74-review-quote blockquote{font:650 clamp(18px,1.85vw,25px)/1.56 var(--display);color:#242b30;letter-spacing:-.018em;max-width:780px}
.v74-review-credit{margin-top:25px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.v74-review-credit strong{font-size:14px}.v74-review-credit a{font-size:13px;font-weight:800;color:#b71b26;border-bottom:1px solid currentColor}
.v74-home .final-inner{max-width:1370px;padding-top:clamp(60px,6.5vw,90px);padding-bottom:clamp(60px,6.5vw,90px)}
.v74-home .final-cta h2{font:800 clamp(37px,4.2vw,65px)/1.1 var(--display);letter-spacing:-.055em}
.v74-home .final-actions{gap:16px}
@media(max-width:1020px){.v74-card-content{padding:21px 21px 26px}.v74-owner-grid{gap:45px}.v74-section-heading{align-items:flex-start}}
@media(max-width:800px){.v74-home .v74-trust-grid{grid-template-columns:1fr 1fr 1fr}.v74-trust-grid>div{padding:20px 15px}.v74-trust-grid strong{font-size:14px}.v74-trust-grid span{font-size:11px}.v74-service-grid{gap:12px}.v74-section-heading{display:block}.v74-section-heading p{max-width:600px;margin-top:14px}.v74-card-photo-link{height:205px}.v74-card-content h3{font-size:21px}.v74-card-content p{font-size:13px}.v74-owner-grid{grid-template-columns:1fr 1fr;gap:28px}.v74-owner-image{min-height:290px;aspect-ratio:1/1}.v74-owner-copy h2{font-size:33px}.v74-owner-copy p{font-size:14px}.v74-review-grid{grid-template-columns:220px 1fr}.v74-review-quote blockquote{font-size:19px}}
@media(max-width:650px){.v74-home .v74-trust-grid{display:block;padding-top:8px;padding-bottom:8px}.v74-trust-grid>div{padding:17px 0;border-right:0;border-bottom:1px solid #edf0f1}.v74-trust-grid>div:last-child{border:0}.v74-trust-grid strong{font-size:15px}.v74-trust-grid span{font-size:12px}.v74-services{padding:62px 0 65px}.v74-section-heading h2{font-size:34px;max-width:480px}.v74-section-heading p{font-size:15px}.v74-service-grid{grid-template-columns:1fr;gap:16px}.v74-card-photo-link{height:245px}.v74-card-content{padding:22px 22px 26px}.v74-card-content h3{font-size:25px}.v74-card-content p{font-size:15px;margin-bottom:18px}.v74-services-footer{margin-top:28px;justify-content:flex-start;font-size:14px}.v74-owner{padding:65px 0}.v74-owner-grid{grid-template-columns:1fr;gap:28px}.v74-owner-image{aspect-ratio:1.22/1;min-height:250px}.v74-owner-copy h2{font-size:35px;margin-bottom:19px}.v74-owner-copy p{font-size:15px}.v74-reviews{padding:63px 0 70px}.v74-reviews-heading{margin-bottom:25px}.v74-review-grid{grid-template-columns:1fr}.v74-review-score{min-height:auto;padding:28px;display:grid;grid-template-columns:auto 1fr;column-gap:20px;align-items:center}.v74-review-score strong{grid-row:span 3;font-size:57px}.v74-review-score span{margin:0;font-size:15px}.v74-review-score a{margin-top:9px}.v74-review-quote{padding:30px 27px 33px}.v74-review-quote blockquote{font-size:19px}.v74-home .final-inner{padding-top:60px;padding-bottom:60px}.v74-home .final-cta h2{font-size:43px}}
@media(prefers-reduced-motion:reduce){.v74-service-card img,.v74-button{transition:none!important}}



/* V7.5 — Traditional interior pages, designed to complement the approved V7.4 homepage. */
.p75-page{background:#fff;color:#171b1e}
.p75-shell{width:100%;max-width:1370px;padding:0 var(--pad);margin-inline:auto}
.p75-page h1,.p75-page h2,.p75-page h3{font-family:var(--display);letter-spacing:-.047em;font-weight:800}
.p75-page a:focus-visible,.p75-page button:focus-visible{outline:3px solid #e82a38;outline-offset:3px}
.p75-hero{background:#f4f5f6;border-bottom:1px solid #e3e5e7}
.p75-hero-grid{min-height:460px;display:grid;grid-template-columns:minmax(0,1.01fr) minmax(0,.99fr);align-items:stretch;gap:clamp(30px,4.5vw,75px)}
.p75-hero-copy{padding:clamp(65px,6.2vw,110px) 0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.p75-hero-copy h1{font-size:clamp(46px,4.5vw,70px);line-height:1.06;max-width:760px}
.p75-hero-copy p{font-size:clamp(16px,1.35vw,19px);line-height:1.65;color:#4b555d;max-width:590px;margin-top:20px}
.p75-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 25px;margin-top:32px}
.p75-btn{display:inline-flex;justify-content:center;align-items:center;text-align:center;color:white;background:var(--red);min-height:52px;padding:15px 23px;font-size:14px;font-weight:800;line-height:1.15;transition:background .2s}
.p75-btn:hover{background:#991321}
.p75-link,.p75-text-link{display:inline-flex;align-items:center;color:#9e1520;border-bottom:1px solid currentColor;font-size:14px;line-height:1.7;font-weight:800}
.p75-link{color:#252a2e}
.p75-link:hover,.p75-text-link:hover{color:#d11f2d}
.p75-hero-media{min-height:460px;overflow:hidden}
.p75-photo{height:100%;width:100%}
.p75-hero-photo{min-height:460px}
.p75-hero-photo .photo-empty{letter-spacing:.07em}
.p75-photo .photo-empty{gap:8px;color:#ffffff18;font-size:clamp(25px,3vw,48px)}
.p75-photo .photo-empty span:last-child{font-size:.58em}
.p75-hero-simple .p75-hero-grid{min-height:290px;display:block}
.p75-hero-simple .p75-hero-copy{max-width:850px;padding:70px 0 77px}
.p75-hero-simple .p75-hero-copy h1{font-size:clamp(43px,4vw,62px)}
.p75-section{padding:clamp(68px,7vw,105px) 0}
.p75-muted{background:#f5f6f7;border-top:1px solid #edf0f1}
.p75-section-head{display:flex;justify-content:space-between;align-items:end;gap:36px;margin-bottom:34px}
.p75-section-head h2{font-size:clamp(33px,3vw,46px);line-height:1.17;max-width:610px}
.p75-section-head>p{font-size:16px;line-height:1.68;color:#59636a;max-width:430px}
.p75-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.p75-card{border:1px solid #e1e5e7;background:#fff;min-width:0;overflow:hidden;display:flex;flex-direction:column}
.p75-card-media{display:block;height:clamp(210px,19vw,265px);overflow:hidden}
.p75-card-media .photo{height:100%}
.p75-card-copy{padding:26px;flex:1;display:flex;align-items:flex-start;flex-direction:column}
.p75-card-copy h3{font-size:clamp(22px,1.9vw,28px);line-height:1.2}
.p75-card-copy h3 a:hover{color:var(--red)}
.p75-card-copy p{font-size:15px;line-height:1.65;margin:11px 0 22px;color:#535f68}
.p75-card-link{margin-top:auto;font-size:13px;font-weight:800;border-bottom:1px solid currentColor;color:#ad1823;padding-bottom:3px}
.p75-prose-layout{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(280px,.72fr);gap:clamp(48px,8vw,120px);align-items:start}
.p75-prose-layout h2,.p75-split-copy h2{font-size:clamp(34px,3.35vw,50px);line-height:1.16;max-width:655px;margin-bottom:23px}
.p75-prose-layout p,.p75-split-copy p{font-size:16px;line-height:1.8;color:#3c464e;max-width:720px;margin-bottom:14px}
.p75-aside-facts,.p75-plain-info{background:#f4f5f6;padding:clamp(28px,3vw,46px);border-left:3px solid #b91d29}
.p75-aside-facts h3,.p75-plain-info h3{font-size:24px;line-height:1.18;margin-bottom:18px}
.p75-aside-facts dl{margin:0}
.p75-aside-facts dl>div{padding:14px 0;border-top:1px solid #dbe0e2}
.p75-aside-facts dt{font-size:12px;font-weight:750;color:#5d6971;margin-bottom:6px}
.p75-aside-facts dd{font-size:15px;font-weight:750}
.p75-plain-info p{font-size:15px;line-height:1.72;margin-bottom:21px}
.p75-split{display:grid;grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(45px,6vw,95px)}
.p75-story-photo{aspect-ratio:1.27/1;min-height:310px}
.p75-split-copy .p75-text-link{margin-top:10px}
.p75-small-cta{background:#171b1e;color:white;padding:45px 0}
.p75-small-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:25px}
.p75-small-cta h2{font-size:clamp(25px,2.5vw,36px);line-height:1.2;letter-spacing:-.04em;max-width:700px}
.p75-small-cta-inner>div{display:flex;flex-wrap:wrap;gap:15px 25px;align-items:center;flex-shrink:0}
.p75-small-cta-inner>div>a:not(.p75-btn){color:#fff;border-bottom:1px solid #7b858b;font-weight:700;font-size:13px;padding-bottom:5px}
.p75-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.p75-gallery-card{min-width:0}
.p75-gallery-card button{width:100%;height:clamp(260px,29vw,420px);border:0;padding:0;position:relative;display:block;background:#20262a;cursor:zoom-in;text-align:left}
.p75-gallery-photo{height:100%}
.p75-gallery-overlay{position:absolute;right:14px;bottom:14px;z-index:4;padding:10px 14px;background:#fff;color:#191d20;font-size:12px;font-weight:800}
.p75-gallery-card figcaption{font-size:15px;font-weight:750;padding:12px 0 0}
.p75-gallery-footer{display:flex;justify-content:space-between;align-items:center;gap:35px;border-top:1px solid #dfe4e6;margin-top:45px;padding-top:37px}
.p75-gallery-footer h3{font-size:24px;margin-bottom:7px}
.p75-gallery-footer p{font-size:15px;color:#5b656d;line-height:1.6}
.p75-testimonials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.p75-testimonial{border:1px solid #e1e4e7;background:#fff;padding:clamp(26px,3vw,42px);display:flex;flex-direction:column;justify-content:space-between;gap:26px}
.p75-testimonial p{font-size:clamp(16px,1.25vw,18px);line-height:1.72;color:#2c3339}
.p75-testimonial cite{font-size:13px;font-style:normal;font-weight:800;color:#991820}
.p75-credential-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.p75-credential-grid article{border:1px solid #e1e4e7;padding:clamp(26px,3vw,42px)}
.p75-credential-grid h3{font-size:clamp(22px,2vw,28px);line-height:1.2;margin-bottom:13px}
.p75-credential-grid p{font-size:15px;line-height:1.72;color:#535e66;margin-bottom:10px}
.p75-credential-grid .p75-text-link{margin-top:8px}
.p75-contact{padding:clamp(55px,6vw,95px) 0;background:#f4f5f6}
.p75-contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.93fr);gap:clamp(45px,6vw,100px);align-items:start}
.p75-contact-copy{padding-top:35px}
.p75-contact-copy h1{font-size:clamp(45px,4.5vw,70px);line-height:1.05;max-width:700px}
.p75-contact-copy>p{margin:19px 0 32px;font-size:17px;line-height:1.68;color:#4f5a62;max-width:580px}
.p75-contact-methods{margin-bottom:30px;max-width:475px}
.p75-contact-methods>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;border-bottom:1px solid #d6dade;padding:17px 0}
.p75-contact-methods strong{color:#5b646a;font-size:13px}
.p75-contact-methods a,.p75-contact-methods span{font-weight:750;color:#1d2326;font-size:15px;word-break:break-word}
.p75-contact-panel .estimate-panel.contact{background:#fff;box-shadow:0 10px 35px #0d131915;border:1px solid #e2e6e8;border-top:5px solid var(--red);padding:clamp(23px,3vw,37px);border-radius:2px}
.p75-contact-panel .estimate-panel.contact h2{font-size:clamp(28px,2.8vw,37px)}
@media(max-width:1020px){.p75-hero-grid{min-height:400px;gap:30px}.p75-hero-media,.p75-hero-photo{min-height:400px}.p75-hero-copy{padding:55px 0}.p75-hero-copy h1{font-size:clamp(41px,5vw,60px)}.p75-small-cta-inner{flex-wrap:wrap}.p75-contact-layout{gap:38px}.p75-contact-copy h1{font-size:48px}}
@media(max-width:800px){.p75-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,.78fr)}.p75-hero-copy h1{font-size:42px}.p75-hero-copy p{font-size:15px}.p75-hero-photo,.p75-hero-media{min-height:350px}.p75-hero-copy{padding:47px 0}.p75-section-head{display:block}.p75-section-head>p{max-width:630px;margin-top:13px}.p75-cards{gap:12px}.p75-card-media{height:180px}.p75-card-copy{padding:19px}.p75-card-copy h3{font-size:21px}.p75-card-copy p{font-size:13px}.p75-prose-layout{gap:30px;grid-template-columns:1fr minmax(235px,.7fr)}.p75-split{gap:35px}.p75-split-copy h2{font-size:36px}.p75-gallery{gap:16px}.p75-gallery-card button{height:270px}.p75-contact-layout{grid-template-columns:1fr 1fr;gap:22px}.p75-contact-copy h1{font-size:40px}.p75-contact-copy{padding-top:18px}.p75-contact-methods>div{display:block}.p75-contact-methods strong{display:block;margin-bottom:5px}}
@media(max-width:650px){.p75-hero-grid{display:flex;flex-direction:column;min-height:unset;gap:0;padding:0}.p75-hero-copy{padding:50px var(--pad) 42px}.p75-hero-copy h1{font-size:clamp(37px,10.4vw,47px)}.p75-hero-copy p{font-size:16px;margin-top:14px}.p75-hero-actions{margin-top:24px}.p75-hero-media,.p75-hero-photo{min-height:0;height:255px}.p75-hero-simple .p75-hero-grid{display:block}.p75-hero-simple .p75-hero-copy{padding:58px var(--pad) 62px}.p75-section{padding:61px 0}.p75-section-head{margin-bottom:25px}.p75-section-head h2{font-size:34px}.p75-section-head>p{font-size:15px}.p75-cards{grid-template-columns:1fr;gap:17px}.p75-card-media{height:240px}.p75-card-copy{padding:23px}.p75-card-copy h3{font-size:25px}.p75-card-copy p{font-size:15px}.p75-prose-layout{grid-template-columns:1fr;gap:26px}.p75-prose-layout h2,.p75-split-copy h2{font-size:34px}.p75-prose-layout p,.p75-split-copy p{font-size:15px}.p75-aside-facts,.p75-plain-info{padding:29px}.p75-split{grid-template-columns:1fr;gap:28px}.p75-story-photo{aspect-ratio:1.25/1;min-height:240px}.p75-small-cta{padding:42px 0}.p75-small-cta h2{font-size:28px}.p75-small-cta-inner{align-items:flex-start;flex-direction:column}.p75-gallery{grid-template-columns:1fr;gap:25px}.p75-gallery-card button{height:275px}.p75-gallery-footer{margin-top:35px;padding-top:30px;align-items:flex-start;flex-direction:column;gap:22px}.p75-testimonials,.p75-credential-grid{grid-template-columns:1fr;gap:13px}.p75-testimonial{padding:25px;gap:20px}.p75-contact{padding:45px 0 60px}.p75-contact-layout{grid-template-columns:1fr;gap:35px}.p75-contact-copy h1{font-size:40px}.p75-contact-copy>p{font-size:16px}.p75-contact-methods>div{display:flex}.p75-contact-copy{padding:0}}
@media(max-width:400px){.p75-hero-copy h1{font-size:38px}.p75-hero-actions{align-items:stretch;flex-direction:column}.p75-btn{width:100%}.p75-contact-methods>div{display:block}.p75-gallery-footer .p75-btn{width:100%}}
@media(prefers-reduced-motion:reduce){.p75-btn{transition:none!important}}


/* ==========================================================
   BluDog V7.6 | Motion & Recognition — purposeful finishing pass
   ========================================================== */
/* Recognition is deliberately integrated with the existing homepage trust strip. */
.recognition-strip{display:flex;align-items:center;justify-content:space-between;gap:36px;border-top:1px solid #dce0e3;margin-top:25px;padding:24px 0 4px}
.recognition-strip-label{display:flex;flex-direction:column;gap:8px;min-width:155px}
.recognition-strip-label strong{font-size:16px;line-height:1.2;font-weight:800;color:#1c2226}
.recognition-strip-label a{font-size:13px;font-weight:760;color:#ab1b27;text-underline-offset:4px}
.recognition-strip-logos{display:flex;align-items:center;justify-content:flex-end;gap:clamp(12px,2.5vw,38px);flex:1}
.recognition-strip-item{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none;color:#333b40}
.recognition-strip-media{width:70px;height:58px;display:grid;place-items:center;position:relative;flex:0 0 70px}
.recognition-strip-media img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;filter:grayscale(.12);transition:filter .3s ease,transform .3s ease}
.recognition-strip-item:hover img,.recognition-strip-item:focus-visible img{filter:none;transform:scale(1.055)}
.recognition-strip-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid #c7cbce;padding:4px;font-size:9px;font-weight:850;line-height:1.15;color:#2b3035}
.recognition-strip-title{font-size:12px;line-height:1.28;font-weight:800;max-width:110px}
.recognition-section{background:#fff;border-top:1px solid #e8eaec;padding:clamp(52px,6vw,95px) 0}
.recognition-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:32px}
.recognition-head>div{max-width:750px}
.recognition-head h2{font-size:clamp(34px,3.45vw,49px);line-height:1.14;letter-spacing:-.035em;margin-bottom:13px}
.recognition-head p{font-size:16px;line-height:1.65;color:#535b62}
.recognition-head .recognition-small-note{font-size:13px;line-height:1.6;max-width:280px}
.recognition-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.recognition-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid #e1e4e6;overflow:hidden;transition:border-color .28s ease,box-shadow .28s ease,transform .28s ease}
.recognition-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(18,26,30,.08);border-color:#bdc4c9}
.recognition-visual{height:192px;position:relative;display:flex;align-items:center;justify-content:center;padding:23px;background:#f6f7f8;border-bottom:1px solid #e5e7e9}
.recognition-visual img{position:relative;z-index:1;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.recognition-visual-fallback{position:absolute;inset:35px;display:grid;place-items:center;text-align:center;font-size:16px;font-weight:820;color:#34414b;border:1px solid #cdd3d7;padding:10px}
.recognition-copy{padding:24px 25px 26px;display:flex;flex-direction:column;flex:1}
.recognition-copy h3{font-size:21px;line-height:1.22;margin-bottom:10px;letter-spacing:-.024em}
.recognition-copy p{font-size:14px;line-height:1.65;color:#505960;margin-bottom:16px}
.recognition-copy a{margin-top:auto;font-size:13px;font-weight:800;color:#a91624;text-decoration:underline;text-underline-offset:4px}
/* Rich but restrained tactile feedback; no continuously looping decorative components. */
.v74-service-card,.p75-card,.p75-testimonial,.p75-gallery-card button{transition:box-shadow .32s ease,border-color .32s ease,transform .32s cubic-bezier(.22,1,.36,1)}
.v74-service-card:hover,.p75-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(13,21,26,.10)}
.p75-testimonial:hover{border-color:#b7bec3}
.photo img{transition:transform .7s cubic-bezier(.22,1,.36,1),opacity .35s ease}
.v74-service-card:hover .photo img,.p75-card:hover .photo img,.p75-gallery-card button:hover .photo img{transform:scale(1.035)}
.hero-media .hero-photo img{transform:translate3d(0,var(--hero-parallax,0px),0) scale(1.027);transition:none}
.header-cta,.form-button,.v74-button,.p75-btn,.light-button{transition:transform .24s cubic-bezier(.22,1,.36,1),background-color .24s ease,box-shadow .24s ease}
.header-cta:hover,.form-button:hover,.v74-button:hover,.p75-btn:hover,.light-button:hover{transform:translateY(-2px)}
.header-cta:active,.form-button:active,.v74-button:active,.p75-btn:active,.light-button:active{transform:translateY(0)}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #d92734;outline-offset:3px}
/* Progressive enhancement: content remains visible without JS or IntersectionObserver. */
html.has-motion [data-reveal]:not(.is-inview){opacity:0;transform:translate3d(0,20px,0)}
html.has-motion [data-reveal]{transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1)}
html.has-motion [data-reveal].is-inview{opacity:1;transform:translate3d(0,0,0)}
@media(max-width:1100px){.recognition-strip{gap:22px}.recognition-strip-item{gap:7px}.recognition-strip-title{font-size:11px}.recognition-strip-media{width:57px;flex-basis:57px;height:52px}}
@media(max-width:850px){.recognition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recognition-head{display:block}.recognition-head .recognition-small-note{margin-top:15px;max-width:650px}.recognition-strip{align-items:flex-start}.recognition-strip-logos{gap:10px}.recognition-strip-item{flex-direction:column;justify-content:center;text-align:center;max-width:120px}}
@media(max-width:650px){.recognition-grid{grid-template-columns:1fr}.recognition-visual{height:205px}.recognition-strip{flex-direction:column;gap:18px;padding-top:22px}.recognition-strip-label{flex-direction:row;align-items:center;justify-content:space-between;width:100%;gap:12px}.recognition-strip-logos{width:100%;justify-content:space-around}.recognition-strip-item{flex:1}.recognition-strip-title{font-size:10px}.recognition-section{padding:56px 0}.recognition-head h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){html.has-motion [data-reveal],html.has-motion [data-reveal]:not(.is-inview),.v74-service-card,.p75-card,.p75-testimonial,.p75-gallery-card button,.photo img,.hero-media .hero-photo img,.recognition-card,.recognition-strip-media img,.header-cta,.form-button,.v74-button,.p75-btn,.light-button{transition:none!important;animation:none!important;transform:none!important;opacity:1!important}}

/* Keep hover movement tactile after an element finishes revealing. */
html.has-motion .v74-service-card.is-inview:hover,html.has-motion .p75-card.is-inview:hover{transform:translate3d(0,-4px,0)}
@media(prefers-reduced-motion:reduce){html.has-motion .v74-service-card.is-inview:hover,html.has-motion .p75-card.is-inview:hover{transform:none}}


/* ===========================================================
   BluDog V7.7: structured home credentials and purposeful motion
   =========================================================== */
/* Dedicated recognition section after the customer story—not in the 3-column trust strip. */
.home-awards{background:#15191d;color:#fff;padding:clamp(64px,6vw,94px) 0;overflow:hidden}
.home-awards-inner{display:grid;grid-template-columns:minmax(245px,.8fr) minmax(0,1.62fr);align-items:center;column-gap:clamp(40px,6vw,100px);row-gap:34px}
.home-awards-intro h2{font:800 clamp(31px,3.2vw,46px)/1.08 var(--display);letter-spacing:-.045em;max-width:450px;color:#fff}
.home-awards-intro p{font-size:15px;line-height:1.65;color:#cbd1d5;margin-top:17px;max-width:365px}
.home-awards-link{display:inline-flex;gap:10px;align-items:center;color:#fff;font-size:14px;font-weight:800;text-decoration:none;margin-top:25px;border-bottom:2px solid #cd1b2b;padding-bottom:8px;transition:color .2s ease,gap .2s ease}
.home-awards-link:hover{color:#ffdfe2;gap:15px}
.home-awards-link span{font-size:18px;line-height:1}
.home-awards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.home-award{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:16px;text-align:center;min-width:0;min-height:212px;padding:23px 11px 21px;background:#fff;text-decoration:none;color:#141719;box-shadow:0 8px 20px #0002;transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s ease}
.home-award:hover,.home-award:focus-visible{transform:translateY(-6px);box-shadow:0 23px 34px #0004}
.home-award-art{position:relative;width:100%;height:125px;display:flex;align-items:center;justify-content:center}
.home-award-art img{width:auto;max-width:90%;max-height:122px;height:auto;object-fit:contain;position:relative;z-index:2}
.home-award-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#aeb5ba;font:900 15px/1.2 var(--display);letter-spacing:.03em;border:1px solid #e9edef}
.home-award strong{font-size:13px;font-weight:850;line-height:1.3;color:#252a2f;margin:auto 0 0}
/* Ensure image load errors don't leave a broken badge covering a usable fallback. */
.home-award-art img.is-broken{display:none}
/* On-load sequence. Motion is only enabled when JavaScript and accessibility settings permit it. */
@keyframes bd-enter-up{from{opacity:0;transform:translate3d(0,32px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes bd-enter-left{from{opacity:0;transform:translate3d(28px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes bd-image-in{from{opacity:.55;transform:translate3d(0,0,0) scale(1.075)}to{opacity:1;transform:translate3d(0,var(--hero-parallax,0px),0) scale(1.027)}}
@keyframes bd-header-in{from{opacity:.7;transform:translate3d(0,-12px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
html.bd-motion .site-header .header-inner{animation:bd-header-in .62s both cubic-bezier(.22,1,.36,1)}
html.bd-motion .hero-copy h1{animation:bd-enter-up .9s .1s both cubic-bezier(.22,1,.36,1)}
html.bd-motion .hero-copy .hero-desc{animation:bd-enter-up .86s .28s both cubic-bezier(.22,1,.36,1)}
html.bd-motion .hero-copy .hero-learn{animation:bd-enter-up .8s .43s both cubic-bezier(.22,1,.36,1)}
html.bd-motion .hero .estimate-panel{animation:bd-enter-left .95s .35s both cubic-bezier(.22,1,.36,1)}
html.bd-motion .hero-media .hero-photo img{animation:bd-image-in 1.6s both cubic-bezier(.22,1,.36,1)}
html.bd-motion .p75-hero-copy>h1{animation:bd-enter-up .9s .12s both cubic-bezier(.22,1,.36,1)}
html.bd-motion .p75-hero-copy>p{animation:bd-enter-up .85s .26s both cubic-bezier(.22,1,.36,1)}
html.bd-motion .p75-hero-actions{animation:bd-enter-up .85s .4s both cubic-bezier(.22,1,.36,1)}
html.bd-motion .p75-hero-media .photo img{animation:bd-image-in 1.35s both cubic-bezier(.22,1,.36,1)}
/* Scroll entrances are staged in groups and run once, with content still readable if JS is blocked. */
html.bd-motion [data-bd-reveal]{transition:opacity .82s cubic-bezier(.22,1,.36,1),transform .82s cubic-bezier(.22,1,.36,1);transition-delay:var(--bd-delay,0ms);will-change:opacity,transform}
html.bd-motion [data-bd-reveal]:not(.bd-visible){opacity:0;transform:translate3d(0,36px,0)}
html.bd-motion [data-bd-reveal].bd-visible{opacity:1;transform:translate3d(0,0,0)}
html.bd-motion .v74-service-card.bd-visible:hover,html.bd-motion .p75-card.bd-visible:hover{transform:translate3d(0,-4px,0)}
/* Soft image reveals convey craft without shaking or scroll-jacking. */
html.bd-motion .v74-owner-image[data-bd-reveal]:not(.bd-visible),html.bd-motion .p75-story-photo[data-bd-reveal]:not(.bd-visible){transform:translate3d(0,26px,0) scale(.985)}
@media(max-width:1050px){.home-awards-inner{grid-template-columns:1fr;gap:30px}.home-awards-intro{max-width:760px}.home-awards-intro h2{max-width:unset}.home-awards-intro p{max-width:680px}}
@media(max-width:650px){.home-awards{padding:63px 0}.home-awards-grid{grid-template-columns:1fr;gap:9px}.home-award{min-height:100px;flex-direction:row;text-align:left;gap:20px;padding:10px 22px 10px 12px}.home-award-art{height:78px;width:118px;flex:0 0 118px}.home-award-art img{max-height:72px;max-width:100px}.home-award strong{font-size:15px;margin:0}.home-awards-intro h2{font-size:34px}.home-awards-link{margin-top:20px}}
@media(max-width:360px){.home-award-art{width:100px;flex-basis:100px}}
@media(prefers-reduced-motion:reduce){html.bd-motion .hero-copy h1,html.bd-motion .hero-copy .hero-desc,html.bd-motion .hero-copy .hero-learn,html.bd-motion .hero .estimate-panel,html.bd-motion .hero-media .hero-photo img,html.bd-motion .site-header .header-inner,html.bd-motion .p75-hero-copy>h1,html.bd-motion .p75-hero-copy>p,html.bd-motion .p75-hero-actions,html.bd-motion .p75-hero-media .photo img,html.bd-motion [data-bd-reveal],html.bd-motion [data-bd-reveal]:not(.bd-visible),.home-award{animation:none!important;transform:none!important;transition:none!important;opacity:1!important;will-change:auto!important}}


/* ============================================================
   V7.8 / BLUDOG — WHITE · CHARCOAL · RED
   Intentional contrast, not alternating template-color blocks.
   Approved layouts, content, accessibility and motion remain.
   ============================================================ */
:root{
  --ink:#17191c;
  --red:#cf202f;
  --gray:#555d65;
  --line:#e5e7e9;
  --bd-charcoal:#17191c;
  --bd-soft:#f3f4f5;
  --bd-white:#ffffff;
}
body,.v74-home,.p75-interior,.p75-page{background:var(--bd-white);color:var(--bd-charcoal)}
.topline,.footer{background:var(--bd-charcoal)}
.site-header,.brand-type{background:var(--bd-white)}
.header-cta,.form-button,.p75-btn,.final-cta,.mobile-contact-bar a:last-child{background:var(--red)}
.header-cta:hover,.form-button:hover,.p75-btn:hover{background:#a81523}

/* Homepage: let roofing imagery and the owner stand out. */
.hero{background:var(--bd-charcoal)}
.v74-trust,.v74-services,.v74-reviews{background:var(--bd-white)}
.v74-service-card{background:var(--bd-white);border-color:#e5e7e9}
.v74-review-grid{border-color:#e5e7e9}
.v74-review-score{background:var(--bd-soft)}

/* Kim's story is the one deliberate dark interruption between white sections. */
.v74-owner{background:var(--bd-charcoal);color:#fff}
.v74-owner-copy h2{color:#fff}
.v74-owner-copy p{color:#d3d6da}
.v74-owner-copy .v74-dark-button{background:var(--red);color:#fff}
.v74-owner-copy .v74-dark-button:hover{background:#aa1724}
.v74-owner-image{background:#24292e}

/* Awards have their own substantial charcoal field, not a little badge row. */
.home-awards{background:var(--bd-charcoal)}
.home-award{background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.17)}
.home-awards-link{border-bottom-color:var(--red)}

/* Interior pages: use white generously and reserve gray for smaller informational panels. */
.p75-page,.p75-hero,.p75-contact,.p75-section,.recognition-section{background:var(--bd-white)}
.p75-hero{border-bottom:1px solid var(--line)}
.p75-muted{background:var(--bd-white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.p75-card,.p75-testimonial,.p75-credential-grid article,.recognition-card{background:var(--bd-white);border-color:var(--line)}
.p75-aside-facts,.p75-plain-info,.recognition-visual{background:var(--bd-soft)}
.p75-aside-facts,.p75-plain-info{border-left-color:var(--red)}
.p75-small-cta{background:var(--bd-charcoal)}
.p75-contact-panel .estimate-panel{border:1px solid #e4e7e9;border-top:5px solid var(--red);box-shadow:0 24px 60px rgba(23,25,28,.09)}
.p75-contact-methods>div{border-color:#e2e5e7}
.p75-gallery-overlay{background:#fff;color:var(--bd-charcoal)}

/* Final conversion moment: a single uninterrupted red field. */
.final-cta{background:var(--red)}
.v74-home .final-cta h2{color:#fff}
.footer{background:var(--bd-charcoal)}

/* Legibility of informational text on white / subtle soft-gray backgrounds. */
.v74-section-heading p,.v74-card-content p,.p75-section-head>p,
.p75-hero-copy p,.p75-prose-layout p,.p75-split-copy p,
.recognition-head p{color:#4e5861}
.p75-card-copy p,.v74-review-score small{color:#555f67}

@media (prefers-reduced-motion:reduce){
 .v74-owner .photo img,.home-award{animation:none!important;transition:none!important}
}


/* ============================================================
   BluDog V7.9 / American Heritage
   Navy is structural, red remains the action color, stars only
   at real veteran-ownership/recognition/brand touchpoints.
   ============================================================ */
:root{
  --bd-navy:#0a3161; /* U.S. flag / Old Glory blue */
  --bd-navy-dark:#082547;
  --bd-navy-deep:#071c35;
  --bd-blue-tint:#f4f7fb;
  --bd-blue-line:#dce5ef;
}
/* Shared elements on EVERY page */
.topline{background:var(--bd-navy);border-bottom:1px solid rgba(255,255,255,.12)}
.topline-inner{letter-spacing:.015em}
.bd-top-star{display:inline-block;color:#fff;font-size:10px;margin:0 9px;vertical-align:1px;opacity:.9}
.site-header{border-bottom:2px solid transparent;border-image:linear-gradient(90deg,var(--red) 0 19%,var(--bd-navy) 19% 100%) 1}
.main-nav a.is-active{color:var(--bd-navy)}
.main-nav a.is-active::after{background:var(--red)}
.site-header .header-phone:hover{color:var(--bd-navy)}
.header-cta,.form-button,.p75-btn,.v74-button{transition:background-color .2s ease,transform .25s ease,box-shadow .25s ease}
.header-cta:hover,.p75-btn:hover,.form-button:hover{box-shadow:0 8px 26px rgba(207,32,47,.17)}
.mobile-nav{background:#fff}
.mobile-contact-bar{background:var(--bd-navy-deep)}
/* Photographic home hero remains image-first: cool the darkest shadows. */
.hero{background:var(--bd-navy-deep)}
.hero-vignette{background:linear-gradient(90deg,rgba(5,18,37,.94) 0%,rgba(6,25,49,.77) 37%,rgba(7,25,46,.33) 70%,rgba(7,25,46,.34) 100%),linear-gradient(0deg,#071c355e,transparent 54%)}
.hero .hero-learn a:hover{color:#fff}
/* Home trust band: one tiny star only where veteran ownership is discussed. */
.v74-trust{background:#fff}
.v74-trust-grid>div:first-child strong::before{content:'★';color:var(--bd-navy);font-size:.81em;display:inline-block;margin-right:10px;vertical-align:1px}
.v74-trust-grid>div{border-color:var(--bd-blue-line)}
/* Service content is white and photographic, not striped with gray panels. */
.v74-services,.v74-reviews,.p75-section:not(.p75-muted){background:#fff}
.v74-service-card:hover,.p75-card:hover{border-color:#d2ddea}
.v74-card-content a:hover,.p75-text-link:hover,.footer a:hover{color:var(--red)}
.v74-review-score{background:var(--bd-blue-tint)}
.v74-review-score strong{color:var(--bd-navy)}
/* Owner story: the American blue has a credible home in Kim's personal history. */
.v74-owner{position:relative;isolation:isolate;overflow:hidden;background:var(--bd-navy);color:#fff}
.v74-owner:before{content:'★';position:absolute;z-index:-1;top:-124px;right:-36px;font:400 clamp(250px,38vw,600px)/1 Georgia,serif;color:rgba(255,255,255,.038);transform:rotate(-9deg);pointer-events:none}
.v74-owner-copy p{color:#d5e2f0}
.v74-owner-copy h2{color:#fff}
.v74-owner-image{background:var(--bd-navy-deep)}
.v74-owner-copy .v74-dark-button{background:var(--red);color:#fff}
/* Third-party awards in quiet charcoal; the deep blue relates them to veteran heritage. */
.home-awards{background:#17191c;border-top:5px solid var(--bd-navy)}
.home-awards-intro p{color:#d0d7df}
.home-award{border-bottom:4px solid var(--bd-navy)}
/* Interior: project photography beside bold navy banner where available. */
.p75-hero:not(.p75-hero-simple){background:linear-gradient(125deg,var(--bd-navy-dark),var(--bd-navy) 70%,#164779);color:#fff;border:0}
.p75-hero:not(.p75-hero-simple) .p75-hero-copy h1{color:#fff}
.p75-hero:not(.p75-hero-simple) .p75-hero-copy p{color:#dfebf7}
.p75-hero:not(.p75-hero-simple) .p75-link{color:#fff;border-color:#a1b9d2}
.p75-hero:not(.p75-hero-simple) .p75-link:hover{color:#fff;border-color:#fff}
/* Text-only entry pages remain crisp white, with one useful navy rule. */
.p75-hero-simple{position:relative;background:#fff;border-bottom:1px solid var(--bd-blue-line)}
.p75-hero-simple .p75-hero-copy{border-left:5px solid var(--bd-navy);padding-left:clamp(22px,3vw,50px)}
.p75-hero-simple .p75-hero-copy h1{color:var(--bd-navy-deep)}
.p75-hero-simple .p75-hero-copy>p{color:#4d5965}
.p75-muted{background:var(--bd-blue-tint);border-color:var(--bd-blue-line)}
.p75-aside-facts,.p75-plain-info{background:var(--bd-blue-tint);border-left-color:var(--bd-navy)}
.p75-aside-facts h3,.p75-section-head h2{color:var(--bd-navy-deep)}
.p75-credential-grid article,.p75-testimonial,.p75-card{border-color:var(--bd-blue-line)}
.p75-text-link{color:var(--bd-navy)}
.p75-text-link:hover{color:var(--red)}
/* Interior endcaps consistently use the dark American blue with a clear RED estimate CTA. */
.p75-small-cta{background:var(--bd-navy-deep);border-top:3px solid var(--bd-navy)}
.p75-small-cta a:not(.p75-btn){color:#e0eaf5}
/* Recognition: emblem only at real credential content; not fake rating stars. */
.recognition-section{background:#fff}
.recognition-head h2::before{content:'★';display:inline-block;color:var(--bd-navy);font:400 .42em/1 Georgia,serif;vertical-align:.27em;margin-right:17px}
.recognition-visual{background:var(--bd-blue-tint)}
.recognition-card{border-color:var(--bd-blue-line)}
/* About page alone: subtle ghost star conveys veteran identity, no ornamental label. */
.bd-about-hero{position:relative;isolation:isolate;overflow:hidden}
.bd-about-hero:after{content:'★';position:absolute;right:3vw;top:-45px;z-index:-1;font:400 clamp(210px,24vw,400px)/1 Georgia,serif;color:rgba(255,255,255,.04);transform:rotate(-12deg);pointer-events:none}
/* The contact page uses navy only for the contact information; form stays legible on white. */
.p75-contact{background:var(--bd-navy);color:#fff}
.p75-contact-copy h1{color:#fff}
.p75-contact-copy>p{color:#dbe6f1}
.p75-contact-methods>div{border-color:rgba(255,255,255,.22)}
.p75-contact-copy .p75-text-link{color:#fff;border-color:rgba(255,255,255,.55)}
.p75-contact-copy .p75-text-link:hover{color:#fff;border-color:#fff}
.p75-contact-panel .estimate-panel{background:#fff;color:var(--bd-charcoal)}
/* Single red field for the final homepage action. */
.final-cta{background:var(--red)}
/* Brand footer: blue anchors the whole journey, restrained tri-color stars finish it. */
.footer{background:var(--bd-navy-deep);border-top:3px solid var(--bd-navy)}
.footer-brand p{color:#c2d1e3}
.footer-inner h2{color:#f5f8ff}
.footer a{transition:color .2s ease}
.bd-footer-stars{display:inline-flex;align-items:center;gap:10px;margin-top:25px;line-height:1;font-size:13px;letter-spacing:0}
.bd-footer-stars span:nth-child(1){color:#cf202f}
.bd-footer-stars span:nth-child(2){color:#fff}
.bd-footer-stars span:nth-child(3){color:#9dc3ec}
/* Avoid decoration appearing as a review rating: only brand/footer and veteran contexts use stars. */
@media(max-width:800px){
 .p75-hero:not(.p75-hero-simple) .p75-hero-grid{background:transparent}
 .p75-hero-simple .p75-hero-copy{padding-left:20px}
 .v74-owner:before{top:-30px;right:-60px;opacity:.8}
}
@media(max-width:550px){
 .bd-top-star{margin:0 5px}
 .p75-hero:not(.p75-hero-simple) .p75-hero-copy{padding-bottom:44px}
 .p75-hero-simple .p75-hero-copy{padding-left:18px}
 .recognition-head h2::before{font-size:.34em;margin-right:11px}
}
@media(prefers-reduced-motion:reduce){
 .v74-owner:before,.bd-about-hero:after{transform:none}
}
/* Contrast QA: contact methods were dark-on-dark after the page turned navy. */
.p75-contact-methods strong{color:#d2e0ee}
.p75-contact-methods a,.p75-contact-methods span{color:#fff}
.p75-contact-methods a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}

/* ==============================================================
   BLUDOG V8 · Premium refinement
   Restrained brand system: deep American navy, BluDog red, white.
   Structural changes only. No decorative counters or fake awards.
   ============================================================== */
:root{
 --bd-navy:#123760;--bd-navy-dark:#0a2a4c;--bd-navy-deep:#081e36;
 --bd-blue-tint:#f7f9fc;--bd-blue-line:#e0e7ee;
 --bd-charcoal:#151b22;--red:#ca2030;
 --line:#e4e8ec;--gray:#56636f;
}
body{color:#15202a;line-height:1.65}
/* Small, useful brand touches in the global chrome */
.topline{background:#0c2d50}
.topline-inner{min-height:31px}
.topline-secondary{font-size:11px;letter-spacing:.015em;color:#e3edf8}
.site-header{border-image:none;border-bottom:1px solid #e2e5e9}
.header-inner{height:85px}
.site-header.is-scrolled{box-shadow:0 9px 32px rgba(11,26,45,.09)}
.main-nav a{font-weight:750;letter-spacing:-.01em;font-size:13.5px}
.main-nav a::after{bottom:10px;height:2px}
.header-cta{min-height:48px;padding-inline:22px;border-radius:2px}
/* Legible utility breadcrumb navigation, not ornamental eyebrow text. */
.bd-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 19px;font:650 12px/1.5 var(--body);letter-spacing:.015em}
.bd-breadcrumb a{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color .2s}
.bd-breadcrumb a:hover{text-decoration-color:currentColor}
.bd-breadcrumb>span[aria-hidden]{opacity:.55;font-size:13px}
.bd-breadcrumb [aria-current=page]{opacity:.7}
.p75-hero:not(.p75-hero-simple) .bd-breadcrumb{color:#c8dbed}
.p75-hero-simple .bd-breadcrumb{color:#596b7b}
/* Preserve source imagery; if originals are unavailable offline, display a
   quiet branded surface instead of a repeated placeholder wordmark. */
.photo-empty{background:linear-gradient(155deg,rgba(42,59,75,.95),rgba(17,31,46,.97));gap:0}
.photo-empty>span,.photo-empty>.roof-silhouette{display:none!important}
.photo-empty:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(154deg,transparent 0px,transparent 70px,rgba(255,255,255,.032) 71px,rgba(255,255,255,.032) 73px,transparent 74px,transparent 140px);pointer-events:none}
.photo-empty:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:4px;background:linear-gradient(90deg,var(--red),var(--bd-navy),transparent)}
.hero-photo .photo-empty{background:linear-gradient(115deg,#071b30 0%,#193753 55%,#233c53 100%)}
.hero-photo .photo-empty:before{opacity:.5}
.v74-service-card:nth-child(2) .photo-empty,.p75-card:nth-child(2) .photo-empty{background:linear-gradient(145deg,#364452,#101c29)}
.v74-service-card:nth-child(3) .photo-empty,.p75-card:nth-child(3) .photo-empty{background:linear-gradient(145deg,#334350,#152635)}
/* The established home hero remains photo-led and conversion-first. */
.hero-grid{max-width:1660px;gap:clamp(35px,7vw,125px)}
.hero h1{letter-spacing:-.065em;font-size:clamp(66px,7vw,120px);line-height:1.04}
.hero-desc{font-size:clamp(17px,1.4vw,20px);max-width:520px;line-height:1.55;color:#f5f8fc}
.hero-vignette{background:linear-gradient(90deg,rgba(5,16,29,.94) 0%,rgba(7,23,39,.83) 39%,rgba(6,27,47,.35) 75%,rgba(9,31,52,.36) 100%),linear-gradient(0deg,#071c3554,transparent 55%)}
.estimate-panel{border-top:4px solid var(--red);box-shadow:0 22px 65px rgba(0,0,0,.22);border-radius:3px}
.estimate-panel h2{font-size:clamp(25px,2.25vw,32px);letter-spacing:-.04em}
.form-line label{font-size:12px}.form-line input,.form-line select,.form-line textarea{background:#fff;border-color:#d3dce3;border-radius:2px}
.form-line input:focus,.form-line select:focus,.form-line textarea:focus{border-color:#7992a9;outline:2px solid rgba(10,49,97,.18);outline-offset:0}
.form-button{min-height:53px;font-size:13px;justify-content:center;letter-spacing:.005em}
.form-disclosure{font-size:11px;color:#586572}
/* Trust is the first thing after the hero: three concise columns. */
.v74-home .v74-trust-grid{max-width:1540px}
.v74-trust-grid strong{letter-spacing:-.025em}
.v74-trust-grid span{color:#5c6872}
/* Services: polished photographic cards without floating shadows or clutter. */
.v74-services{padding-top:clamp(65px,7.1vw,106px);padding-bottom:clamp(65px,7.4vw,108px)}
.v74-section-heading{gap:28px;margin-bottom:38px}
.v74-section-heading h2{max-width:740px;line-height:1.13;letter-spacing:-.052em}
.v74-section-heading p{line-height:1.65;max-width:370px}
.v74-service-grid{gap:clamp(13px,1.5vw,26px)}
.v74-service-card,.p75-card{border-color:#e2e7eb;transition:border-color .25s ease,transform .25s ease}
.v74-service-card:hover,.p75-card:hover{transform:translateY(-3px);border-color:#bfcedc}
.v74-card-content h3{letter-spacing:-.04em}
.v74-card-content p,.p75-card-copy p{color:#52616e;line-height:1.6}
.v74-card-link,.p75-text-link{font-weight:800;text-underline-offset:5px}
.v74-services-footer{color:#2b3e4f}
/* Brand story: calm large photograph plus readable human copy. */
.v74-owner{background:#10335b}
.v74-owner:before{opacity:.35}
.v74-owner-copy h2{line-height:1.14;letter-spacing:-.055em;max-width:570px}
.v74-owner-copy p{color:#e2ecf6;line-height:1.7}
.v74-owner-image{outline:1px solid rgba(255,255,255,.14)}
/* Customer proof and awards: less noise, more hierarchy. */
.v74-reviews .v74-section-heading{margin-bottom:27px}
.v74-review-score{background:#f3f7fb}
.v74-review-quote blockquote{line-height:1.5}
.home-awards{background:#151b22;border-top:0}
.home-awards-intro h2{letter-spacing:-.045em}
.home-awards-intro p{line-height:1.65}
.home-award{border-bottom:3px solid var(--bd-navy);transition:transform .25s ease,border-color .25s ease}
.home-award:hover{transform:translateY(-4px);border-bottom-color:var(--red)}
/* Inners: one typographic scale, comfortable copy widths and a clear top fold. */
.p75-hero:not(.p75-hero-simple){background:linear-gradient(128deg,#092747,#123d6c)}
.p75-hero-grid{min-height:440px}
.p75-hero-copy{padding-block:62px}
.p75-hero-copy h1{font-weight:800;letter-spacing:-.055em;line-height:1.09;font-size:clamp(43px,4.3vw,66px);max-width:680px}
.p75-hero-copy>p{max-width:565px;font-size:clamp(16px,1.2vw,19px);line-height:1.55}
.p75-hero-actions{gap:19px;margin-top:26px}
.p75-hero-simple{background:#fdfefe;border-bottom:1px solid #e6ecf1}
.p75-hero-simple .p75-hero-copy{border-left:0;padding-left:0}
.p75-hero-simple .p75-hero-copy h1{font-size:clamp(43px,4.5vw,66px)}
.p75-hero-simple .p75-hero-grid{min-height:270px}
.p75-section{padding-block:clamp(64px,7vw,96px)}
.p75-section-head h2,.p75-prose-layout h2,.p75-split-copy h2{line-height:1.15;letter-spacing:-.048em}
.p75-section-head>p,.p75-prose-layout p,.p75-split-copy p{line-height:1.7;color:#53616d}
.p75-muted{background:#f8fafc}
.p75-aside-facts,.p75-plain-info{background:#f3f7fb}
.p75-gallery-card{border-color:#e1e7eb}
.p75-testimonial{border-color:#e2e8ef}
.p75-small-cta{border-top:0;background:#0c2d50}
.p75-small-cta-inner h2{letter-spacing:-.035em}
.p75-contact{background:linear-gradient(115deg,#0c3054,#123a67)}
.p75-contact-panel .estimate-panel{box-shadow:0 22px 75px rgba(1,15,33,.2)}
/* Distinctive but unobtrusive footer, matching all pages. */
.footer{background:#071d34;border-top:0}
.footer-inner{max-width:1630px}
.footer a:hover{color:#fff;text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:6px}
.footer-brand p{color:#dae4ef}
/* Better tap targets and predictable compact layouts. */
@media(max-width:1020px){.hero-grid{gap:28px}}
@media(max-width:800px){
 .header-inner{height:75px}
 .p75-hero-grid{min-height:355px}
 .p75-hero-copy{padding-block:43px}
 .v74-owner-copy h2{font-size:clamp(31px,4vw,45px)}
}
@media(max-width:650px){
 .topline-inner{min-height:29px;gap:6px}
 .topline-secondary{display:none}
 .hero h1{font-size:clamp(49px,12vw,70px)}
 .hero-desc{font-size:16px;line-height:1.5}
 .estimate-panel{box-shadow:0 14px 35px rgba(0,0,0,.17)}
 .v74-trust-grid strong{font-size:15px}
 .v74-section-heading h2{line-height:1.13}
 .v74-service-card:hover,.p75-card:hover,.home-award:hover{transform:none}
 .p75-hero-copy{padding:43px var(--pad) 43px}
 .p75-hero-simple .p75-hero-copy{padding:49px var(--pad) 54px}
 .p75-hero-copy h1{font-size:clamp(37px,10vw,46px)}
 .p75-hero-copy>p{font-size:16px}
 .p75-hero-media,.p75-hero-photo{height:250px}
 .bd-breadcrumb{margin-bottom:14px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){.v74-service-card,.p75-card,.home-award{transition:none!important;transform:none!important}}
/* Reliable visual fallback for external award files (no broken-image icons). */
.recognition-visual img.is-broken{display:none!important}
.recognition-visual-fallback{font:800 clamp(13px,1vw,16px)/1.3 var(--display);letter-spacing:-.02em;color:#284460;max-width:80%;text-align:center}
.recognition-visual{min-height:165px}
@media(max-width:650px){.recognition-visual{min-height:145px}}

/* V8.1: longer, client-requested hero statement: clear, intentional line breaks. */
.hero h1 { font-size:clamp(57px,5.65vw,101px); line-height:1.045; letter-spacing:-.058em; }
.hero h1 em:after { display:none; }
@media (max-width:1080px){.hero h1{font-size:clamp(52px,6.5vw,76px)}}
@media (max-width:800px){.hero h1{font-size:clamp(56px,9vw,70px)}}
@media (max-width:550px){.hero h1{font-size:clamp(45px,11.25vw,58px)}}
@media (max-width:350px){.hero h1{font-size:43px}}


/* BluDog V8.2 | photo-forward refinement */
:root{--blue:#1f4f95;--blue-deep:#14396f;--soft-blue:#eef4fb;--soft-red:#fff5f5}
.topline{background:linear-gradient(90deg,var(--blue-deep),#17191c)}
.header-phone:hover,.text-link:hover,.p75-text-link:hover,.p75-link:hover,.home-awards-link:hover,.v74-inline-link:hover{color:var(--blue)}
.hero-vignette{background:linear-gradient(90deg,#09101be9 0%,#09101bd0 34%,#0a122066 67%,#0a12205c 100%),linear-gradient(0deg,#0007,transparent 50%)}
.v74-trust,.p75-muted,.home-awards,.recognition-section{background-image:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%)}
.v74-service-card,.home-award,.recognition-card,.p75-card,.p75-testimonial,.p75-credential-grid article{box-shadow:0 10px 28px rgba(12,20,33,.05)}
.bd-section-kicker{display:inline-flex;align-items:center;gap:10px;margin-bottom:12px;font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--blue)}
.bd-section-kicker::before{content:'★';color:var(--red);font-size:12px}
.bd-showcase{padding:clamp(60px,6vw,95px) 0;background:linear-gradient(180deg,#f7f9fc 0%,#fff 100%)}
.bd-showcase-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:18px}
.bd-showcase-card{position:relative;overflow:hidden;min-height:250px;background:#111;color:#fff;border-radius:2px}
.bd-showcase-card .photo{height:100%}
.bd-showcase-copy{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:20px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.84))}
.bd-showcase-copy strong{display:block;font-size:20px;line-height:1.15;margin-bottom:5px}
.bd-showcase-copy span{font-size:13px;color:#dbe3ea}
.bd-stat-band{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:32px}
.bd-stat{padding:20px;border:1px solid #dde3ea;background:#fff}
.bd-stat strong{display:block;font:800 clamp(24px,2.3vw,34px)/1 var(--display);letter-spacing:-.04em;color:#111}
.bd-stat span{display:block;margin-top:8px;font-size:13px;line-height:1.55;color:#54606a}
.bd-owner-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.bd-owner-strip .photo{height:260px}
.bd-before-after-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.bd-before-after-card{background:#fff;border:1px solid #e1e6ea;padding:16px}
.bd-before-after-card .photo{height:290px}
.bd-before-after-card h3{font-size:20px;line-height:1.2;margin:14px 0 8px}
.bd-before-after-card p{font-size:14px;line-height:1.65;color:#5b6670}
.bd-note{margin-top:18px;font-size:13px;color:#62707b}
.bd-mini-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.bd-mini-gallery .photo{height:185px}
.bd-mini-gallery figcaption{font-size:13px;font-weight:700;padding-top:8px;color:#2c353c}
.bd-banner{background:linear-gradient(135deg,#112b52,#1d4c91);color:#fff}
.bd-banner .p75-small-cta-inner h2,.bd-banner h2{color:#fff}
.bd-banner a:not(.p75-btn){border-color:#ffffff7a!important}
.bd-quote-card{padding:26px;background:#fff;border-left:3px solid var(--blue);box-shadow:0 8px 24px rgba(0,0,0,.05)}
.bd-quote-card p{font-size:17px;line-height:1.72;color:#354049}
.bd-quote-card strong{display:block;margin-top:16px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#7b1a21}
.bd-services-snapshot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.bd-services-snapshot .photo{height:215px}
.bd-services-snapshot article{background:#fff;border:1px solid #e2e6ea}
.bd-services-snapshot div:last-child{padding:16px}
.bd-services-snapshot h3{font-size:20px;margin-bottom:7px}
.bd-services-snapshot p{font-size:14px;line-height:1.62;color:#56606a}
@media(max-width:900px){.bd-showcase-grid,.bd-before-after-grid,.bd-owner-strip,.bd-services-snapshot{grid-template-columns:1fr 1fr}.bd-stat-band{grid-template-columns:1fr}.bd-mini-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.bd-showcase-grid,.bd-before-after-grid,.bd-owner-strip,.bd-services-snapshot,.bd-mini-gallery{grid-template-columns:1fr}.bd-showcase-card{min-height:240px}.bd-owner-strip .photo{height:240px}.bd-before-after-card .photo{height:250px}}


/* V8.4 — Authentic roofing video hero */
.hero-media .hero-photo{height:100%;width:100%;position:relative;overflow:hidden;isolation:isolate}
.hero-media .hero-photo>img{object-fit:cover;object-position:50% 42%;width:100%;height:100%}
.hero-media .hero-video{position:absolute;z-index:3;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 43%;display:block;pointer-events:none;background:transparent;filter:saturate(1.05) contrast(1.035)}
.hero-vignette{background:linear-gradient(90deg,rgba(4,14,26,.89) 0%,rgba(6,19,34,.76) 32%,rgba(7,22,38,.30) 62%,rgba(5,17,30,.30) 100%),linear-gradient(0deg,rgba(3,9,15,.32),transparent 58%)}
.hero-grid{gap:clamp(35px,5vw,94px)}
.hero-copy{position:relative;z-index:3}
.hero h1{font-size:clamp(55px,5.85vw,103px);letter-spacing:-.065em;line-height:1.035;text-wrap:balance;max-width:830px;text-shadow:0 2px 22px rgba(0,0,0,.14)}
.hero-desc{max-width:510px;text-shadow:0 1px 12px rgba(0,0,0,.2)}
.hero .estimate-panel{position:relative;z-index:4;box-shadow:0 30px 80px rgba(0,0,0,.28)}
.hero-video-toggle{position:absolute;z-index:5;bottom:20px;left:var(--pad);display:inline-flex;align-items:center;gap:10px;background:rgba(8,19,32,.68);border:1px solid rgba(255,255,255,.26);backdrop-filter:blur(14px);color:white;padding:11px 15px;border-radius:3px;font-size:12px;font-weight:800;cursor:pointer;transition:background .2s,border-color .2s}
.hero-video-toggle:hover,.hero-video-toggle:focus-visible{background:#13375e;border-color:rgba(255,255,255,.6)}
.hero-video-toggle span:first-child{font-size:15px;font-weight:700;line-height:1}
@media(max-width:1100px){.hero h1{font-size:clamp(50px,6.45vw,78px)}.hero-grid{gap:30px}}
@media(max-width:800px){.hero h1{font-size:clamp(52px,8.5vw,70px)}.hero-media .hero-photo>img,.hero-media .hero-video{object-position:55% center}.hero-video-toggle{bottom:18px}}
@media(max-width:550px){.hero h1{font-size:clamp(43px,11vw,59px);line-height:1.035;letter-spacing:-.058em}.hero-media .hero-photo>img,.hero-media .hero-video{object-position:54% center}.hero-video-toggle{bottom:10px;left:var(--pad);font-size:11px;padding:10px 12px}.hero .estimate-panel{box-shadow:0 20px 48px rgba(5,16,29,.16)}}
@media(prefers-reduced-motion:reduce){.hero-media .hero-video{display:none}.hero-video-toggle{display:none}}

/* Keep playback control clear of the floating form on small screens. */
@media(max-width:800px){.hero-media .hero-video-toggle{bottom:60px}}
@media(max-width:550px){.hero-media .hero-video-toggle{bottom:52px}}

/* Playback control sits over footage, never over mobile form fields. */
@media(max-width:800px){.hero-video-toggle{top:520px;bottom:auto}}
@media(max-width:550px){.hero-video-toggle{top:480px;bottom:auto}}

/* ========================================================
   BluDog V8.5 | ChromaGrid-inspired photo cards
   Two-row home services; 3×2 featured-project grid
   These styles intentionally override legacy card layouts.
   ======================================================== */
.chroma-grid{--chroma-radius:260px;display:grid;gap:14px;isolation:isolate;}
.v74-home .chroma-services{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.chroma-card{--chroma-x:50%;--chroma-y:50%;--chroma-active:0;--chroma-accent:#ce202d;position:relative;min-width:0;isolation:isolate;border-radius:8px;overflow:hidden;background:#17232e;box-shadow:0 10px 24px rgba(8,22,39,.10);transform:translateZ(0);transition:box-shadow .35s ease,transform .35s ease;}
.chroma-card:hover{box-shadow:0 22px 42px rgba(8,22,39,.16)}
.chroma-edge{position:absolute;inset:0;z-index:4;pointer-events:none;border:1px solid rgba(255,255,255,.17);border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),inset 0 0 30px rgba(255,255,255,0);transition:box-shadow .28s ease;}
.chroma-card:hover .chroma-edge,.chroma-card:focus-within .chroma-edge{box-shadow:inset 0 0 0 1px var(--chroma-accent),inset 0 0 26px color-mix(in srgb,var(--chroma-accent) 30%,transparent)}
.chroma-card::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:var(--chroma-active);background:radial-gradient(circle var(--chroma-radius) at var(--chroma-x) var(--chroma-y),color-mix(in srgb,var(--chroma-accent) 17%,transparent) 0%,color-mix(in srgb,var(--chroma-accent) 6%,transparent) 46%,transparent 100%);transition:opacity .28s ease;}
.chroma-card:focus-within::after{opacity:.65;}
.chroma-service-card{min-height:418px;}
.chroma-service-card .chroma-service-link{display:block;position:relative;height:100%;min-height:418px;overflow:hidden;color:#fff;}
.chroma-service-card .chroma-media{position:absolute;inset:0;display:block;overflow:hidden;background:#1e2b35;}
.chroma-service-card .chroma-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,14,23,0) 25%,rgba(8,14,23,.40) 51%,rgba(6,12,20,.95) 100%);}
.chroma-service-card .chroma-media img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(1.03);transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .4s ease;}
.chroma-service-card:hover .chroma-media img{transform:scale(1.055)}
.chroma-service-card .chroma-content{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(24px,3vw,40px);}
.chroma-service-card h3{font:800 clamp(29px,2.9vw,42px)/1.15 var(--display);letter-spacing:-.045em;color:#fff;}
.chroma-service-card p{font-size:16px;line-height:1.6;color:#eef2f6;max-width:480px;margin-top:11px;}
.chroma-service-cta{display:inline-flex;align-items:center;gap:14px;margin-top:20px;padding-bottom:5px;font-size:13px;font-weight:800;border-bottom:1px solid rgba(255,255,255,.68);color:#fff;}
.chroma-service-cta span{transition:transform .28s ease;}
.chroma-service-card:hover .chroma-service-cta span{transform:translate(3px,-3px)}
.v74-home .chroma-service-wide{grid-column:1/-1;min-height:290px;background:#122b4b;}
.chroma-service-wide .chroma-service-link{min-height:290px;display:grid;grid-template-columns:53% 47%;align-items:center;}
.chroma-service-wide .chroma-media{position:relative;height:100%;grid-column:1;grid-row:1;}
.chroma-service-wide .chroma-media::after{background:linear-gradient(90deg,transparent 75%,rgba(9,29,55,.55));}
.chroma-service-wide .chroma-content{position:relative;grid-column:2;grid-row:1;padding:clamp(24px,4vw,54px);}
.chroma-service-wide .chroma-content p{max-width:410px}
.v74-home .chroma-services >.chroma-card{border:0;}
/* Preserve existing click-to-expand photo viewer */
.p75-page .chroma-projects{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;}
.chroma-project-card{background:#1d2831;}
.p75-page .chroma-project-card button{height:auto;aspect-ratio:4/5;display:block;position:relative;overflow:hidden;border-radius:inherit;}
.p75-page .chroma-project-card .p75-gallery-photo{position:absolute;inset:0;height:100%;width:100%;}
.p75-page .chroma-project-card .photo img{object-fit:cover;transition:transform .65s cubic-bezier(.2,.8,.2,1)}
.p75-page .chroma-project-card button:hover .photo img{transform:scale(1.045)}
.chroma-project-card figcaption{position:absolute;z-index:3;bottom:0;left:0;right:0;margin:0;padding:54px 20px 20px!important;background:linear-gradient(transparent,rgba(8,14,23,.92));color:#fff;font-size:17px!important;line-height:1.35;pointer-events:none;}
.chroma-project-card .p75-gallery-overlay{right:12px;top:12px;bottom:auto;background:#fffffff0;border-radius:3px;padding:9px 12px;font-size:11px;}
.chroma-more-work{margin-top:30px;border:1px solid #dee4eb;border-radius:6px;background:#fff;}
.chroma-more-work summary{cursor:pointer;display:flex;align-items:center;gap:12px;padding:18px 22px;font-weight:800;font-size:15px;list-style:none;user-select:none;}
.chroma-more-work summary::-webkit-details-marker{display:none;}
.chroma-more-work summary span{margin-left:auto;color:#ce202d;font-size:24px;line-height:1;transition:transform .2s;}
.chroma-more-work[open] summary span{transform:rotate(45deg)}
.chroma-more-work summary small{font-size:12px;color:#626e78;font-weight:600;}
.chroma-projects-more{margin:0 18px 18px;}
.chroma-projects-more .chroma-project-card button{aspect-ratio:4/3;}
@media(max-width:900px){.p75-page .chroma-projects{grid-template-columns:repeat(2,minmax(0,1fr));}.chroma-service-card{min-height:355px}.chroma-service-card .chroma-service-link{min-height:355px}.chroma-service-wide .chroma-service-link{min-height:270px}.chroma-service-wide{min-height:270px}.chroma-service-card h3{font-size:29px}}
@media(max-width:650px){.v74-home .chroma-services,.p75-page .chroma-projects{grid-template-columns:1fr;gap:14px;}.v74-home .chroma-service-wide{grid-column:auto;min-height:0}.chroma-service-wide .chroma-service-link{display:block;min-height:350px}.chroma-service-wide .chroma-media{position:absolute;inset:0;height:100%}.chroma-service-wide .chroma-media::after{background:linear-gradient(180deg,transparent 25%,rgba(6,12,20,.95) 100%)}.chroma-service-wide .chroma-content{position:absolute;bottom:0;left:0;right:0}.chroma-service-card,.chroma-service-card .chroma-service-link{min-height:350px}.chroma-service-card h3{font-size:30px}.chroma-service-card p{font-size:15px}.p75-page .chroma-project-card button{aspect-ratio:4/3;height:auto}.chroma-projects-more{margin:0 12px 12px}.chroma-more-work summary{flex-wrap:wrap}.chroma-more-work summary small{order:3;width:100%}}
@media(prefers-reduced-motion:reduce){.chroma-card,.chroma-service-card img,.chroma-edge,.chroma-card:after{transition:none!important;transform:none!important}}


/* V8.5.1 — Show complete, original customer photographs on About page. */
.bd-owner-strip{align-items:start;gap:clamp(14px,2.2vw,30px)}
.bd-owner-strip figure{margin:0;min-width:0}
.bd-owner-strip .photo{height:auto;aspect-ratio:auto;background:transparent;overflow:hidden}
.bd-owner-strip .photo img{
  display:block;
  position:relative;
  width:100%;
  height:auto;
  max-width:100%;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center;
  transform:none;
}
.bd-owner-strip .photo:hover.is-loaded img{transform:none}
@media(max-width:650px){.bd-owner-strip .photo{height:auto}}


/* V8.6: intentional American heritage stars and distinct interior heroes */
.bd-about-hero{position:relative;isolation:isolate;overflow:hidden}
.bd-about-hero::after{display:none!important}
.bd-about-hero .p75-hero-grid{position:relative;z-index:2}
.bd-about-starfield{position:absolute;inset:0 52% 0 0;z-index:1;overflow:hidden;pointer-events:none;user-select:none}
.bd-about-starfield span{position:absolute;color:#fff;font:400 28px/1 Georgia,serif;opacity:.095;text-shadow:0 0 12px rgba(255,255,255,.12)}
/* The measured spacing recalls a field of flag stars, not a random pattern. */
.bd-about-starfield span:nth-child(1){left:6%;top:11%;font-size:24px;opacity:.12}
.bd-about-starfield span:nth-child(2){left:21%;top:9%;font-size:36px;opacity:.08}
.bd-about-starfield span:nth-child(3){left:42%;top:14%;font-size:23px;opacity:.11}
.bd-about-starfield span:nth-child(4){left:71%;top:10%;font-size:44px;opacity:.1}
.bd-about-starfield span:nth-child(5){left:12%;top:36%;font-size:18px;opacity:.095}
.bd-about-starfield span:nth-child(6){left:33%;top:31%;font-size:28px;opacity:.07}
.bd-about-starfield span:nth-child(7){left:62%;top:37%;font-size:23px;opacity:.095}
.bd-about-starfield span:nth-child(8){left:86%;top:42%;font-size:31px;opacity:.08}
.bd-about-starfield span:nth-child(9){left:4%;top:69%;font-size:37px;opacity:.1}
.bd-about-starfield span:nth-child(10){left:25%;top:79%;font-size:18px;opacity:.09}
.bd-about-starfield span:nth-child(11){left:56%;top:73%;font-size:34px;opacity:.075}
.bd-about-starfield span:nth-child(12){left:85%;top:83%;font-size:22px;opacity:.12}
/* A completed BluDog roof introduces Our Work with clear navy/white contrast. */
.p75-hero.bd-work-hero{background:linear-gradient(128deg,#092747,#113966);color:#fff;border:0}
.bd-work-hero .p75-hero-grid{min-height:460px}
.bd-work-hero .p75-hero-copy h1{color:#fff}
.bd-work-hero .p75-hero-copy > p{color:#dae8f7}
.bd-work-hero .bd-breadcrumb{color:#d3e2f1}
.bd-work-hero .p75-link{color:#fff;border-color:rgba(255,255,255,.65)}
.bd-work-hero .p75-link:hover{color:#fff;border-color:#fff}
.bd-work-hero .p75-hero-media{position:relative;overflow:hidden}
.bd-work-hero .p75-hero-photo img{object-position:40% 50%;filter:saturate(.95) contrast(1.025)}
.bd-work-hero .p75-hero-media::after{content:'';position:absolute;inset:0 0 auto 0;height:4px;z-index:4;background:linear-gradient(90deg,var(--red) 0 20%,transparent 20%)}
/* Reviews should be warmer and brighter than the work hero. Entire homeowner photo visible. */
.p75-hero-simple.bd-reviews-hero{background:linear-gradient(105deg,#fff 0%,#fff 52%,#f3f7fc 100%);border-bottom:1px solid #e0e8f1}
.bd-reviews-hero .p75-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,4vw,65px);min-height:475px;align-items:stretch}
.bd-reviews-hero .p75-hero-copy{max-width:unset;padding:68px 0;align-items:flex-start}
.bd-reviews-hero .p75-hero-copy h1{font-size:clamp(46px,4.7vw,72px);max-width:620px}
.bd-reviews-hero .p75-hero-copy>p{color:#4a5967}
.bd-reviews-hero .p75-hero-media{height:auto;min-height:475px;display:flex;justify-content:center;align-items:flex-end;background:linear-gradient(90deg,transparent 6%,#eaf0f7 6%,#eaf0f7 94%,transparent 94%);padding-top:28px}
.bd-reviews-hero .p75-hero-photo{position:relative;height:445px;min-height:0;width:min(100%,360px);background:transparent}
.bd-reviews-hero .p75-hero-photo img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:saturate(.98);opacity:1}
.bd-reviews-hero .p75-hero-photo .photo-empty{display:none}
.bd-reviews-hero .p75-hero-photo img{box-shadow:0 18px 46px rgba(12,32,59,.15)}
@media(max-width:800px){
 .bd-about-starfield{inset:0 48% 250px 0}
 .bd-reviews-hero .p75-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);min-height:385px}
 .bd-reviews-hero .p75-hero-copy{padding:44px 0}
 .bd-reviews-hero .p75-hero-media{min-height:385px}
 .bd-reviews-hero .p75-hero-photo{height:345px}
}
@media(max-width:650px){
 .bd-about-starfield{inset:0 0 250px 0}
 .bd-about-starfield span{opacity:.06}
 .bd-about-starfield span:nth-child(4),.bd-about-starfield span:nth-child(9),.bd-about-starfield span:nth-child(12){opacity:.1}
 .bd-work-hero .p75-hero-grid,.bd-reviews-hero .p75-hero-grid{display:flex;flex-direction:column;min-height:unset;gap:0;padding:0}
 .bd-work-hero .p75-hero-copy,.bd-reviews-hero .p75-hero-copy{padding:49px var(--pad) 43px}
 .bd-work-hero .p75-hero-media{min-height:0;height:250px}
 .bd-work-hero .p75-hero-photo{min-height:0;height:100%}
 .bd-reviews-hero .p75-hero-media{height:320px;min-height:0;padding-top:0;background:#edf3f9}
 .bd-reviews-hero .p75-hero-photo{width:260px;height:300px;min-height:0;margin:auto}
 .bd-reviews-hero .p75-hero-photo img{box-shadow:0 10px 24px rgba(12,32,59,.12)}
 .bd-reviews-hero .p75-hero-copy h1{font-size:clamp(38px,10vw,47px)}
}
@media(prefers-reduced-motion:reduce){.bd-about-starfield span{animation:none!important}}


/* V8.7 — flowing sections, clear focus, touch comfort.
   These styles intentionally follow earlier version-specific rules. */
:root{scroll-behavior:smooth;}
html{scroll-padding-top:108px;}
body{overscroll-behavior-y:auto;}
/* Avoid a wide section feeling isolated from the next. */
.v74-services{padding-block:clamp(60px,6.5vw,94px);}
.v74-owner{padding-block:clamp(64px,7vw,102px);}
.bd-showcase{padding-block:clamp(60px,6vw,90px);}
.v74-reviews{padding-block:clamp(62px,7vw,96px);}
.p75-section{padding-block:clamp(56px,6.4vw,91px);}
.bd-showcase-end{display:flex;justify-content:center;margin:28px 0 0;}
.bd-showcase-end .p75-text-link{font-size:15px;}
.bd-customer-source{font-size:15px;line-height:1.75;color:#51606d;margin-top:25px;}
.bd-customer-source a{color:#a91d28;text-decoration:underline;text-underline-offset:4px;font-weight:750;}
/* Subtle reveals are brief, and don't keep the GPU layer alive unnecessarily. */
html.bd-motion [data-bd-reveal]{transition-duration:.55s;transition-delay:var(--bd-delay,0ms);will-change:auto;}
html.bd-motion [data-bd-reveal]:not(.bd-visible){transform:translate3d(0,18px,0);}
/* Clear interactive states, without competing glows. */
.chroma-card{transition:transform .26s ease,box-shadow .26s ease;}
.chroma-card:focus-within{box-shadow:0 0 0 3px rgba(206,32,45,.5);}
.p75-card:focus-within,.recognition-card:focus-within{outline:3px solid #cf202f;outline-offset:3px;}
.circular-carousel-controls{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
.circular-carousel-controls .circular-pause{min-width:104px;border-color:rgba(255,255,255,.68);}
.mobile-contact-bar{padding-bottom:env(safe-area-inset-bottom,0px);}
@media(max-width:650px){
 .bd-showcase{padding-block:57px;}
 .v74-services{padding-block:59px 62px;}
 .v74-owner{padding-block:62px;}
 .v74-reviews{padding-block:58px;}
 .p75-section{padding-block:58px;}
 .p75-hero-actions{margin-top:22px;}
 .circular-carousel-controls{justify-content:center;}
 .circular-carousel-controls p{order:3;flex:0 0 100%;text-align:center;}
 .circular-carousel-controls .circular-pause{order:2;}
 .hero h1{text-wrap:balance;}
 .estimate-panel input,.estimate-panel select,.estimate-panel textarea{font-size:16px;}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important;}
 html.bd-motion [data-bd-reveal]{opacity:1!important;transform:none!important;transition:none!important;}
}

/* Content stays present during scrolling, including slow phones and long pages.
   Scroll motion adds a small positional settle rather than hiding entire sections. */
html.bd-motion [data-bd-reveal]:not(.bd-visible){opacity:1!important;transform:translate3d(0,10px,0)!important;}
html.bd-motion [data-bd-reveal].bd-visible{opacity:1!important;transform:translate3d(0,0,0)!important;}
@media(max-width:650px){html.bd-motion [data-bd-reveal]:not(.bd-visible){transform:none!important;}}


/* V8.7.1 — The genuine Nann & Haus photo is deliberately shown in full. */
.bd-dogs-section{background:#fff}
.bd-dogs-layout{align-items:center}
.bd-dogs-media{min-width:0}
.bd-dogs-photo{height:auto;min-height:0;aspect-ratio:auto;background:#eae5d9;overflow:hidden}
.bd-dogs-photo picture{display:block;position:relative;z-index:2;width:100%;height:auto}
.bd-dogs-photo picture img{display:block;width:100%;height:auto;max-width:100%;aspect-ratio:1080/650;object-fit:contain;object-position:center;transform:none!important;transition:opacity .3s ease}
.bd-dogs-photo:hover.is-loaded picture img{transform:none!important}
.bd-dogs-copy h2{max-width:520px}
.bd-dogs-copy strong{font-weight:800;color:#173a60}
.bd-dogs-copy p{max-width:620px}
@media(max-width:650px){.bd-dogs-layout{gap:30px}.bd-dogs-photo{min-height:0}.bd-dogs-copy h2{margin-bottom:17px}.bd-dogs-copy p{font-size:16px;line-height:1.72}}

/* V8.7.4 — Mobile hero / trust transition correction.
   Keep the estimate panel IN document flow; never let it overlap the trust items.
   These overrides deliberately come last to supersede older V7/V8 mobile rules. */
@media (max-width:800px){
  .v74-home .hero{min-height:0;}
  .v74-home .hero-grid{
    min-height:0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:72px var(--pad) 42px;
  }
  .v74-home .hero-copy{padding-bottom:28px;}
  .v74-home .hero .estimate-panel{
    position:relative;
    width:100%;
    max-width:580px;
    margin:0 auto;
    z-index:4;
    flex:none;
  }
  .v74-home .v74-trust{position:relative;z-index:1;clear:both;}
  .v74-home .v74-trust-grid{padding-top:16px;padding-bottom:16px;}
  .v74-home .hero-video-toggle{
    top:15px;
    right:var(--pad);
    left:auto;
    bottom:auto;
    font-size:11px;
  }
}
@media(max-width:550px){
  .v74-home .hero-grid{padding-top:75px;padding-bottom:35px;}
  .v74-home .hero-copy{padding-bottom:26px;}
  .v74-home .hero .estimate-panel{margin:0 auto;}
  .v74-home .estimate-panel{padding:24px 22px;}
  .v74-home .v74-trust-grid{padding-top:12px;padding-bottom:12px;}
  .v74-home .v74-trust-grid>div{padding:21px 0;}
  .v74-home .form-disclosure{line-height:1.5;}
}
@media(max-width:375px){
  .v74-home .hero-grid{padding-left:17px;padding-right:17px;}
  .v74-home .estimate-panel{padding:23px 17px;}
}

/* V8.7.6: Clean video hero. Playback control is available to keyboard/screenreader users,
   but not rendered visually in the normal hero presentation. */
.v74-home .hero-video-toggle:not(:focus-visible){
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  opacity:0!important;
  pointer-events:none!important;
  top:0!important;
  left:0!important;
  right:auto!important;
  bottom:auto!important;
}
.v74-home .hero-video-toggle:focus-visible{
  position:fixed!important;
  top:12px!important;
  left:12px!important;
  right:auto!important;
  bottom:auto!important;
  z-index:9999!important;
  width:auto!important;
  height:auto!important;
  opacity:1!important;
  clip:auto!important;
  clip-path:none!important;
  pointer-events:auto!important;
  outline:3px solid #fff;
  outline-offset:3px;
}


/* V8.7.8 — truly stable GuildQuality 99% count-up.
   Reserve the FINAL number's box with a ghost; animate only an absolute overlay.
   Keep review-label content in a separate, fixed grid column on phones. */
.v74-review-score > strong[data-count-to]{
  position:relative;
  display:block;
  flex:0 0 auto;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.v74-review-score > strong[data-count-to]::before{
  content:'99%';
  visibility:hidden;
  display:block;
  font:inherit;
  letter-spacing:inherit;
  line-height:inherit;
}
.v74-review-score > strong[data-count-to] > .bd-count-value{
  position:absolute;
  display:block;
  inset:0 auto auto 0;
  white-space:nowrap;
  margin:0;
  padding:0;
  font:inherit;
  font-variant-numeric:tabular-nums;
  letter-spacing:inherit;
  line-height:inherit;
  color:inherit;
}
.v74-review-score > .bd-score-details{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  max-width:100%;
}
.v74-review-score > .bd-score-details > span{
  display:block;
  margin-top:8px;
  font-size:16px;
  font-weight:800;
  line-height:1.35;
}
.v74-review-score > .bd-score-details > small{
  display:block;
  margin-top:2px;
  font-size:12px;
  line-height:1.45;
  color:#555f67;
}
/* V8.7.9: refined mobile layout — steady, vertically centered score. */
@media(max-width:650px){
  .v74-review-score{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    min-height:0;
    gap:0;
    padding:32px clamp(14px,5vw,32px);
  }
  .v74-review-score > .bd-score-details{
    order:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    max-width:100%;
    margin:0;
    padding:0;
    text-align:center;
  }
  .v74-review-score > .bd-score-details > span{
    display:block;
    margin:0;
    font-size:clamp(17px,4.6vw,20px);
    line-height:1.3;
    font-weight:800;
  }
  .v74-review-score > .bd-score-details > small{
    display:block;
    margin-top:5px;
    font-size:12px;
    line-height:1.45;
  }
  .v74-review-score > strong[data-count-to]{
    order:1;
    box-sizing:border-box;
    display:block;
    width:164px;
    min-width:164px;
    max-width:164px;
    margin:15px auto 0;
    font-size:clamp(69px,19vw,86px);
    line-height:1;
    letter-spacing:-.06em;
    text-align:center;
  }
  .v74-review-score > strong[data-count-to] > .bd-count-value{
    left:0;
    right:0;
    width:100%;
    text-align:center;
  }
  .v74-review-score > a.review-profile-link{
    order:2;
    display:inline-block;
    align-self:center;
    justify-self:center;
    margin:19px 0 0;
    white-space:nowrap;
    text-align:center;
    font-size:clamp(11px,3.25vw,13px);
    line-height:1.45;
  }
}
