/* additions.css - components added in the 2026-11 final build. Uses variables from styles.css. */
.skip-link { position: absolute; left: -9999px; top: 0; background: #fff; color: #0a2540; padding: 10px 14px; z-index: 1000; }
.skip-link:focus { left: 8px; top: 8px; }
.fact-row { list-style: none; padding: 0; margin: 18px 0; display: flex; flex-wrap: wrap; gap: 10px 22px; }
.fact-row li { font-weight: 700; padding-left: 22px; position: relative; }
.fact-row li::before { content: '\2713'; position: absolute; left: 0; color: #e63946; }
.fact-row.dark li { color: #0a2540; }
.page-hero .fact-row li { color: #fff; }
.bld-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin: 16px 0 28px; }
.bld-card { background: #fff; border: 1px solid #dde3ea; border-top: 3px solid #e63946; border-radius: 6px; padding: 16px 18px; }
.bld-card h3 { margin-top: 0; }
.issue { margin: 14px 0; }
.issue h3 { margin-bottom: 4px; }
.seasonal { font-style: italic; }
.nbhd-list, .nearby-list { columns: 3 200px; list-style: none; padding: 0; margin: 12px 0 24px; }
.nbhd-list li, .nearby-list li { margin: 0 0 6px; break-inside: avoid; }
.card-list, .area-index { list-style: none; padding: 0; margin: 18px 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.card-list a, .area-index a { display: block; height: 100%; padding: 16px 18px; background: #fff; border: 1px solid #dde3ea; border-radius: 6px; text-decoration: none; color: inherit; }
.card-list a:hover, .area-index a:hover { border-color: #e63946; }
.card-list span { display: block; margin-top: 6px; font-size: .92rem; color: #5b6b7c; }
.price-table { width: 100%; border-collapse: collapse; margin: 12px 0; }
.price-table th, .price-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #dde3ea; }
.job-slot { border: 2px dashed #9aa7b5; border-radius: 6px; padding: 14px 18px; margin: 20px 0; background: #f8fafc; }
.map-embed { width: 100%; height: 320px; border: 0; border-radius: 6px; }
.case-grid, .gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.case-card { border: 1px solid #dde3ea; border-radius: 6px; padding: 16px 18px; background: #fff; }
.gallery-grid figure { margin: 0; }
.gallery-grid img { width: 100%; height: auto; border-radius: 6px; }
.gallery-grid figcaption { font-size: .85rem; color: #5b6b7c; margin-top: 4px; }
.footer-license { margin: 26px 0 8px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .2); font-size: .85rem; line-height: 1.6; }
.consent-line { text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; font-size: .8rem !important; line-height: 1.45; }
.consent-line input { display: inline-block !important; width: auto !important; margin: 0 6px 0 0 !important; }
.estimate-form input[type="file"] { background: transparent; padding: 8px 0; border: 0; }
.contact-form-block { margin: 28px 0; }
.related-services a { margin: 0 8px 8px 0; }
.review-links { margin-top: 24px; }

/* job photos */
.job-slot{margin:1.5rem 0}.job-slot img{display:block;width:100%;height:auto;border-radius:8px}.job-slot figcaption{margin-top:.5rem;font-size:.95rem}
.job-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.job-gallery .job-slot{margin:0}
