/* Architectural depth, light and motion */
:root{--accent-metal:#dfb778;--motion-ease:cubic-bezier(.2,.7,.2,1)}
.scroll-progress{position:fixed;left:0;top:0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#ad3838,#e4be80,#377fae);z-index:1500;pointer-events:none}
.hero{isolation:isolate}.hero-home .hero-bg{animation:home-breathe 24s ease-in-out infinite alternate;will-change:transform}.hero-bg{filter:saturate(1.06)}
@keyframes home-breathe{from{transform:scale(1.015)}to{transform:scale(1.09)}}
.hero-content{position:relative;z-index:3}.hero-content h1{text-shadow:0 6px 36px #07172c55}.hero .eyebrow{display:inline-flex;align-items:center;gap:14px}.hero .eyebrow::before{content:'';height:2px;width:36px;background:var(--accent-metal);box-shadow:0 0 18px #dfb77866}
.hero-blueprint{position:absolute;z-index:1;right:3%;bottom:4%;width:240px;height:160px;pointer-events:none;border-right:1px solid #ffffff40;border-bottom:1px solid #ffffff40;background:linear-gradient(90deg,transparent 49.5%,#ffffff15 50%,transparent 50.5%),linear-gradient(transparent 49.5%,#ffffff15 50%,transparent 50.5%);background-size:40px 40px;mask-image:linear-gradient(135deg,transparent,#000);animation:blueprint-drift 12s ease-in-out infinite alternate}.hero-blueprint::after{content:'';position:absolute;inset:20px;border:1px solid #dfb77860;clip-path:polygon(0 0,35% 0,35% 2%,2% 2%,2% 35%,0 35%,0 0,100% 100%,65% 100%,65% 98%,98% 98%,98% 65%,100% 65%,100% 100%)}
@keyframes blueprint-drift{to{transform:translateY(-15px)}}
.site-header{box-shadow:0 4px 25px #0b1b2c0a;transition:box-shadow .4s,background .4s}.site-header.is-scrolled{background:rgba(247,248,250,.97);box-shadow:0 8px 32px #0b1b2c20}
.about-teaser{isolation:isolate;background:radial-gradient(ellipse at 85% 40%,#dbe6ed 0,transparent 48%),#f3f4f5}.about-teaser .two-col{position:relative;z-index:1}.about-photo{perspective:1200px;padding:10px 12px 24px 0}.about-photo::before{content:'';position:absolute;inset:26px -8px 2px 26px;border:1px solid #c6a16d;border-radius:8px 8px 8px 70px;background:linear-gradient(135deg,#dfb77835,#1e5a8e10);z-index:-1;transform:rotate(3deg)}.about-photo .photo{box-shadow:0 22px 50px #142b4633;transform:rotate(-1.5deg);transition:transform .8s var(--motion-ease)}.about-photo:hover .photo{transform:rotate(0) translateY(-6px)}.about-photo .badge{box-shadow:0 12px 30px #112b462b;animation:badge-float 6s ease-in-out infinite}
@keyframes badge-float{50%{transform:translateY(-6px)}}
.svc-card{--rx:0deg;--ry:0deg;--lift:0px;transform:perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(var(--lift));box-shadow:0 16px 35px #0005,inset 0 1px 0 #ffffff20;transition:transform .45s var(--motion-ease),box-shadow .45s,border-color .45s}.svc-card:hover{--lift:-9px;transform:perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(var(--lift));border-color:#d8b078;box-shadow:0 30px 55px #0006,0 0 0 1px #dfb77840}.svc-card::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(450px circle at var(--mx,50%) var(--my,30%),#ffe5be21,transparent 65%);transition:opacity .5s}.svc-card:hover::after{opacity:1}.svc-card .num{border:1px solid #ffffff33;box-shadow:0 5px 20px #0003}.svc-card .body{transition:translate .45s}.svc-card:hover .body{translate:0 -4px}
.gtile{box-shadow:0 8px 24px #0002;transition:transform .5s var(--motion-ease),box-shadow .5s;isolation:isolate}.gtile:hover{transform:translateY(-6px);box-shadow:0 20px 35px #0004;z-index:2}.gtile::after{content:'↗';position:absolute;top:14px;right:14px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#ffffffed;color:#14273f;font-size:22px;opacity:0;transform:translate(-5px,5px);transition:opacity .3s,transform .3s;pointer-events:none}.gtile:hover::after,.gtile:focus-visible::after{opacity:1;transform:none}
.motion-image{clip-path:inset(8% 0 8% 0);transition:clip-path 1.1s var(--motion-ease),filter 1.1s;filter:saturate(.7)}.motion-image.image-revealed{clip-path:inset(0);filter:saturate(1)}
.fall-special{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 20% 40%,#fff9ee 0,transparent 60%),#f0e8dc}.fall-special::before{content:'';position:absolute;width:500px;height:500px;right:-160px;top:60px;border:1px solid #ac773d25;border-radius:50%;box-shadow:0 0 0 60px #b9874608,0 0 0 120px #b9874606;z-index:-1;animation:halo-breathe 10s ease-in-out infinite alternate}.fall-flyer{box-shadow:12px 16px 0 #16314e12,0 30px 65px #13263e40;transform:rotate(1deg);transition:transform .6s,box-shadow .6s}.fall-flyer:hover{transform:rotate(0) translateY(-7px);box-shadow:6px 10px 0 #16314e12,0 40px 65px #13263e40}
@keyframes halo-breathe{to{transform:translate(-30px,20px) scale(1.1)}}
.btn{position:relative;isolation:isolate;overflow:hidden}.btn::after{content:'';position:absolute;inset:-80% auto -80% -60%;width:35%;background:linear-gradient(90deg,transparent,#ffffff35,transparent);transform:rotate(25deg);transition:left .65s;pointer-events:none}.btn:hover::after{left:130%}.btn:focus-visible,a:focus-visible{outline:3px solid #cf9f5b;outline-offset:5px}
.cta-band{isolation:isolate;box-shadow:inset 0 1px 0 #ffffff25,0 -20px 70px #10243d15}.cta-band::after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 20% 20%,#eaab6e35,transparent 55%),radial-gradient(ellipse at 80% 70%,#69bce035,transparent 60%);background-size:150% 150%;animation:light-drift 16s ease-in-out infinite alternate;pointer-events:none}@keyframes light-drift{to{background-position:100% 100%}}
@media(max-width:700px){.hero-blueprint{width:140px;height:100px;opacity:.6}.about-photo::before{inset:24px -3px 3px 18px}.fall-flyer{transform:none}.svc-card{--rx:0deg!important;--ry:0deg!important}.gtile::after{opacity:1;width:32px;height:32px;font-size:18px}}
@media(prefers-reduced-motion:reduce){.hero-home .hero-bg,.hero-blueprint,.about-photo .badge,.fall-special::before,.cta-band::after{animation:none!important}.motion-image{clip-path:none!important;filter:none!important}.svc-card,.fall-flyer,.about-photo .photo,.gtile{transform:none!important}.scroll-progress{display:none}*{scroll-behavior:auto!important}}
.fall-copy .btn,.facebook-post{padding:15px 24px;font-size:18px;min-height:52px;white-space:normal;line-height:1.35;text-align:center;justify-content:center}

/* A little more room for homepage service photography. */
.home-services-grid .svc-card{height:520px;min-height:520px}
@media(max-width:600px){.home-services-grid .svc-card{height:540px;min-height:540px}}
/* Clear upper photos, with contrast retained behind the card copy. */
.home-services-grid .svc-card .fade{background:linear-gradient(180deg,rgba(8,17,30,0) 0%,rgba(8,17,30,.06) 28%,rgba(8,17,30,.55) 48%,rgba(8,17,30,.88) 70%,rgba(8,17,30,.96) 100%)}
