/* Shared navigation, readable project answers and accessible contact states. */
.skip-link{position:fixed;top:8px;left:16px;z-index:1000;padding:12px 20px;background:#f3e3be;color:#101215;transform:translateY(-160%);border-radius:3px;font-weight:700}
.skip-link:focus{transform:none}
.navlinks a[aria-current=page],.nav-mobile-links a[aria-current=page]{color:#ecc77d}
.navlinks a{min-height:44px;display:inline-flex;align-items:center}
.nav-mobile-links{grid-template-columns:repeat(3,minmax(0,1fr))}
.home-questions{border-top:1px solid #665638}
.questions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.questions-grid article{padding:26px 0;border-top:1px solid #665638}
.questions-grid h3{font-size:1.08rem;line-height:1.45;font-weight:600;margin:0 0 12px;color:#f1eee7}
.questions-grid p{margin:0;color:#bcc1c4;max-width:60ch}
.questions-grid a{color:#dfc28c;text-underline-offset:4px}
.contact-form-status:not([hidden]){padding:16px;border:1px solid #b49b68;background:#182520;color:#edf0e6;margin-bottom:22px}
.contact-form input,.contact-form select,.contact-form textarea{font-size:16px}
.contact-form button{cursor:pointer}
.nav-phone{min-height:44px}
:focus-visible{outline:2px solid #ecc77d;outline-offset:4px}
@media(max-width:640px){.questions-grid{grid-template-columns:1fr}.nav-mobile-links{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero:before{transition:none;transform:none}.button:hover,.service-card:hover{transform:none}}

/* Comfortable footer links on both mouse and touch screens. */
.footergrid li a{display:inline-flex;align-items:center;min-height:44px;min-width:24px}
/* The title is readable immediately while retaining its smooth entrance. */
@keyframes hero-title-arrive{from{transform:translate3d(0,22px,0)}to{transform:translate3d(0,0,0)}}
.hero-copy>h1{animation-name:hero-title-arrive;animation-duration:650ms;animation-delay:80ms}
.services-page .services-hero-copy>h1,.contact-page .contact-page-intro>h1{animation-name:hero-title-arrive;animation-duration:650ms;animation-delay:80ms}
@media(max-width:640px){
  .nav{backdrop-filter:none}
  .hero:before{background-image:url('/assets/images/hero-original-mobile.webp');transition:none;transform:none}
}
@media(prefers-reduced-motion:reduce){.hero-copy>h1,.services-page .services-hero-copy>h1,.contact-page .contact-page-intro>h1{animation:none}}

/* The four trust tiles are full-size links with matching hover and keyboard states. */
.proofgrid a.proof{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;color:inherit;text-decoration:none;transition:background-color .2s ease,box-shadow .2s ease}
.proofgrid a.proof:hover,.proofgrid a.proof:focus-visible{background:#b6925014;box-shadow:inset 0 -2px #c5a36a}
.proofgrid .proof .proof-arrow{flex:none;color:#c5a36a;font-size:18px;line-height:1}
.labor-guarantee{padding:20px 0 64px;scroll-margin-top:110px}
.guarantee-card{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:center;padding:40px 44px;border:1px solid #90764b;background:linear-gradient(120deg,#28251e 0%,#17191b 54%,#14191c 100%);border-radius:5px}
.guarantee-heading{display:flex;align-items:center;gap:24px}
.guarantee-mark{width:48px;height:56px;flex:none;color:#c9a463}
.guarantee-heading .eyebrow{margin:0 0 10px}
.guarantee-card h2{font-size:clamp(1.6rem,2.7vw,2.25rem);line-height:1.15;letter-spacing:-.035em;margin:0}
.guarantee-copy p{color:#c9cdcf;margin:0 0 16px}
.guarantee-copy a{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:#e0c38f;text-underline-offset:5px;font-weight:600}
@media(max-width:760px){.guarantee-card{grid-template-columns:1fr;gap:24px;padding:28px 24px}.guarantee-heading{gap:18px}.labor-guarantee{padding-bottom:40px}}

/* Preserve the original service-area directory and its dedicated URLs. */
.area-image-section .area-intro{padding:0;position:relative;z-index:1}
.location-grid{position:relative;z-index:1;list-style:none;padding:0;margin:36px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.location-grid li{margin:0;padding:0}
.location-grid a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:12px 16px;border:1px solid #887044;background:#101519b8;color:#f0ece3;text-decoration:none;font-size:.9rem;transition:background-color .2s,border-color .2s}
.location-grid a span{color:#c4a16a}
.location-grid a:hover,.location-grid a:focus-visible{background:#393023e6;border-color:#d4b079}
@media(max-width:760px){.location-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.location-grid a{font-size:.82rem;padding:12px}}
@media(max-width:360px){.location-grid{grid-template-columns:1fr}}

/* The original diamond, enlarged as a quiet signature beneath the company copy. */
.footergrid .footer-brand-art{position:relative;isolation:isolate;display:grid;place-items:center;width:min(100%,260px);aspect-ratio:26/23;margin:28px 0 0;background:radial-gradient(ellipse at center,#304b591f 0%,#25353b0c 42%,transparent 70%)}
.footergrid .footer-brand-art:before{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:58%;aspect-ratio:1;border:1px solid;border-color:#b99b614d #7d9dad30 #b99b614d #7d9dad30;transform:translate(-50%,-50%) rotate(45deg);transition:transform .55s ease,border-color .55s ease}
.footergrid .footer-brand-art:after{content:"";position:absolute;z-index:-1;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,transparent,#b89b5e66 8%,#b89b5e1a 19%,transparent 21%,transparent 79%,#7d9dad1a 81%,#7d9dad5c 92%,transparent)}
.footergrid .footer-brand-art img{position:relative;display:block;width:65%;max-width:170px;height:auto;filter:drop-shadow(0 10px 18px #00000038);transition:transform .55s cubic-bezier(.2,.75,.2,1),filter .55s ease}
@media(hover:hover) and (pointer:fine){.footergrid .footer-brand-art:hover img{transform:translateY(-3px);filter:drop-shadow(0 14px 22px #00000048)}.footergrid .footer-brand-art:hover:before{transform:translate(-50%,-50%) rotate(45deg) scale(1.025);border-color:#c7ac746b #94b5c447 #c7ac746b #94b5c447}}
@media(max-width:640px){.footergrid .footer-brand-art{width:min(100%,240px);margin-top:22px}}
@media(prefers-reduced-motion:reduce){.footergrid .footer-brand-art img,.footergrid .footer-brand-art:before{transition:none}.footergrid .footer-brand-art:hover img{transform:none}.footergrid .footer-brand-art:hover:before{transform:translate(-50%,-50%) rotate(45deg)}}

.google-reviews{scroll-margin-top:96px}

/* Keep explicit photo-submission contact links readable on narrow screens. */
.photo-contact-link { overflow-wrap: anywhere; text-underline-offset: 3px; }

#top { scroll-margin-top: 76px; }
.footergrid .footer-brand-art { cursor: pointer; text-decoration: none; }
.footergrid .footer-brand-art:focus-visible { outline: 2px solid #ecc77d; outline-offset: 5px; }
/* Defer offscreen homepage rendering on smaller devices; every section stays in the HTML. */
@media (max-width: 1050px) {
  .home-page > :is(.services,#commercial,.labor-guarantee,.google-reviews,.area-image-section,.home-questions,.contact-section,.cta) { content-visibility: auto; contain-intrinsic-block-size: auto 650px; }
  .home-page > .services { contain-intrinsic-block-size: auto 1500px; }
  .home-page > .labor-guarantee { contain-intrinsic-block-size: auto 170px; }
  .home-page > .google-reviews { contain-intrinsic-block-size: auto 850px; }
  .home-page > .contact-section { contain-intrinsic-block-size: auto 1000px; }
  .home-page > .cta { contain-intrinsic-block-size: auto 220px; }
  .home-page > section:target, .home-page > section:focus-within { content-visibility: visible; }
}
@media (max-width: 640px) {
  .home-page > .services { contain-intrinsic-block-size: auto 2250px; }
  .home-page > #commercial { contain-intrinsic-block-size: auto 1000px; }
  .home-page > .home-questions { contain-intrinsic-block-size: auto 850px; }
  .home-page > .contact-section { contain-intrinsic-block-size: auto 1220px; }
}
@media print { .home-page > section { content-visibility: visible !important; contain-intrinsic-block-size: none !important; } }
