.skip-link {
    position: fixed;
    top: 8px;
    left: 12px;
    z-index: 1000;
    padding: 12px 18px;
    background: #173f32;
    color: #fff;
    transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }
.breadcrumbs {
    max-width: 1200px;
    padding: 20px 24px 0;
    margin: auto;
    font-size: 14px;
}
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px 10px; list-style: none; padding: 0; margin: 0; }
.breadcrumbs li { min-width: 0; overflow-wrap: anywhere; }
.breadcrumbs li + li::before { content: '/'; margin-right: 10px; color: #687269; }
.breadcrumbs a, .service-image a, .service-related a { text-decoration: underline; text-underline-offset: 3px; }
.service-intro { padding-bottom: 32px; }
.service-intro h1 { max-width: 900px; font-size: 48px; line-height: 1.12; }
.service-intro > p { max-width: 820px; }
.service-content { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: start; gap: 48px; padding-top: 16px; }
.service-prose section + section { margin-top: 32px; }
.service-prose h2, .service-faq h2, .service-related h2 { font-size: 26px; line-height: 1.25; margin: 0 0 14px; }
.service-prose p { margin: 0; }
.service-image { margin: 0; min-width: 0; }
.service-image img { display: block; width: 100%; height: auto; border-radius: 6px; }
.service-image figcaption { font-size: 14px; margin-top: 12px; }
.service-faq { padding-top: 0; }
.service-faq details { border-bottom: 1px solid #d8ddd7; padding: 18px 0; }
.service-faq summary { cursor: pointer; font-weight: 700; }
.service-faq details p { max-width: 840px; margin-bottom: 0; }
.service-related { padding-top: 0; }
.service-related ul { display: flex; flex-wrap: wrap; gap: 12px 32px; padding-left: 20px; }
.service-card a, .reference-card h3 a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.footer-services { display: flex; flex-direction: column; gap: 10px; }
.site-footer { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: start; gap: 32px; }
.site-footer .footer-links { justify-content: flex-start; }
.hero .reveal { opacity: 1; transform: none; }
.header-phone { white-space: nowrap; }
.reference-next { margin-top: 36px; padding-top: 24px; border-top: 1px solid #d8ddd7; }
.reference-next h2 { font-size: 28px; }
.quote-form { margin: 28px 0 0; padding: 24px 0 0; border: 0; border-top: 1px solid #d8ddd7; min-width: 0; }
.quote-form > legend { font-size: 24px; font-weight: 700; padding: 0; }
.quote-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
.quote-grid label { min-width: 0; display: grid; gap: 8px; font-weight: 700; color: #173b2f; }
.quote-grid input { width: 100%; min-width: 0; min-height: 48px; padding: 12px 14px; border: 1px solid #d8ddd7; border-radius: 6px; background: #fff; color: #173b2f; font: inherit; font-weight: 400; }
.quote-grid input:focus-visible { outline: 2px solid #173b2f; outline-offset: 2px; }
.quote-callback { border: 0; padding: 0; margin: 20px 0; }
.quote-callback label { display: inline-flex; align-items: center; gap: 8px; margin-right: 24px; min-height: 44px; }
.quote-form input[type="radio"], .quote-form input[type="checkbox"] { width: 20px; height: 20px; flex: 0 0 20px; accent-color: #173b2f; }
.quote-privacy { display: block; margin: 16px 0 24px; font-weight: 400; }
.quote-privacy a { text-decoration: underline; text-underline-offset: 3px; }
.quote-form input[readonly] { background: #edf2ee; font-size: 14px; }
@media (max-width: 600px) { .quote-grid { grid-template-columns: 1fr; } }

/* Public-page rhythm: keep related content close without shrinking controls. */
.hero { min-height: 0; padding: 36px 0 44px; }
.breadcrumbs { padding-top: 14px; }
.page-hero { padding: 32px 0 0; }
.page-hero h1 { margin-bottom: 16px; }
.page-hero > p:last-child { margin-bottom: 0; }
.section { padding-top: 44px; }
.page-hero + .section { padding-top: 24px; }
.section-heading { margin-bottom: 24px; }
.about-band { padding-top: 52px; }
.cta-band, .contact-cta { margin-top: 48px; padding: 28px 32px; }
.contact-cta { margin-bottom: 40px; }
.contact-layout { padding-top: 28px; }
.reference-description { margin-top: 24px; }
.gallery-block { margin-top: 28px; padding-top: 28px; gap: 24px; }
.reference-next { margin-top: 28px; padding-top: 20px; }
.service-intro { padding-bottom: 20px; }
.page-hero + .service-content { padding-top: 12px; }
.service-prose section + section { margin-top: 24px; }
.service-faq, .service-related { padding-top: 28px; }
.site-footer { padding-top: 26px; padding-bottom: 32px; }
#main-content { padding-bottom: 36px; }
#main-content:has(> .contact-cta:last-child) { padding-bottom: 0; }

@media (max-width: 700px) {
    .hero { padding-top: 24px; padding-bottom: 28px; }
    .page-hero { padding-top: 24px; }
    .section { padding-top: 32px; }
    .page-hero + .section { padding-top: 20px; }
    .about-band { padding-top: 36px; }
    .cta-band, .contact-cta { margin-top: 32px; padding: 24px; }
    .contact-cta { margin-bottom: 28px; }
    .contact-layout { padding-top: 24px; }
    .gallery-block { margin-top: 24px; padding-top: 24px; }
    .page-hero + .service-content { padding-top: 12px; }
    #main-content { padding-bottom: 28px; }
}
@media (min-width: 981px) and (max-width: 1100px) {
    .site-header { gap: 16px; }
    .main-nav a { padding-inline: 10px; }
    .main-nav a + a { margin-left: 10px; }
}
@media (max-width: 900px) {
    .service-content { grid-template-columns: 1fr; gap: 32px; }
    .service-image { max-width: 640px; }
    .site-footer { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
    .breadcrumbs { padding-left: 20px; padding-right: 20px; font-size: 13px; }
    .service-intro h1 { font-size: 34px; overflow-wrap: anywhere; }
    .service-prose h2, .service-faq h2, .service-related h2 { font-size: 24px; }
    .site-footer { grid-template-columns: 1fr; }
    .service-related ul { display: block; }
    .service-related li + li { margin-top: 12px; }
}
