:root {
  --navy: #10263b;
  --navy-deep: #091c2c;
  --navy-2: #183957;
  --orange: #ff7100;
  --orange-dark: #dd5d00;
  --paper: #f3f6f7;
  --pale-blue: #e8eff2;
  --ink: #26343b;
  --muted: #64737d;
  --line: #d6dfe3;
  --white: #fff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: 'DM Sans', Arial, sans-serif; font-size: 16px; line-height: 1.55; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--navy); font-family: 'Manrope', Arial, sans-serif; line-height: 1.08; }
h1 { max-width: 780px; font-size: clamp(3.15rem, 5vw, 5.35rem); letter-spacing: -.056em; }
h2 { font-size: clamp(2.15rem, 3.5vw, 3.45rem); letter-spacing: -.05em; }
h3 { font-size: 1.2rem; letter-spacing: -.025em; }

.shell { width: min(1200px, calc(100% - 52px)); margin: 0 auto; }
.eyebrow { margin-bottom: 14px; color: var(--orange); font-size: .72rem; font-weight: 800; letter-spacing: .145em; }
.eyebrow.light { color: #ff9c51; }
.button { display: inline-flex; min-height: 51px; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; padding: 12px 22px; font-weight: 800; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.button:hover { transform: translateY(-2px); }
.button .icon { width: 16px; height: 16px; }
.button-orange { color: #fff; background: var(--orange); }
.button-orange:hover { background: var(--orange-dark); }
.button-outline { color: #fff; border-color: rgba(255, 255, 255, .62); background: rgba(6, 22, 35, .18); }
.button-outline:hover { color: var(--navy); background: #fff; }
.button-navy { color: #fff; background: var(--navy); }
.button-navy:hover { background: var(--navy-deep); }
.icon { display: inline-flex; width: 24px; height: 24px; flex: none; }
.icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.site-header { position: sticky; top: 0; z-index: 30; background: #fff; box-shadow: 0 1px 0 rgba(16, 38, 59, .1); }
.utility { color: #dce5ea; background: var(--navy); font-size: .75rem; }
.utility-inner { display: flex; min-height: 32px; align-items: center; justify-content: space-between; }
.utility a { color: #fff; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.nav-row { display: flex; min-height: 79px; align-items: center; gap: 25px; }
.brand { display: block; flex: 0 0 138px; }
.brand img { width: 100%; height: 64px; object-fit: contain; }
.nav-links { display: flex; flex: 1; align-items: center; justify-content: center; gap: 24px; }
.nav-links a { color: #35495a; font-size: .88rem; font-weight: 800; }
.nav-links a:hover { color: var(--orange); }
.nav-actions { display: flex; align-items: center; gap: 14px; }
.phone-link { display: flex; align-items: center; gap: 8px; color: var(--navy); font-family: 'Manrope'; font-size: .94rem; font-weight: 800; line-height: 1.05; }
.phone-link .icon { width: 20px; height: 20px; color: var(--orange); }
.phone-link small { display: block; margin-bottom: 3px; color: var(--muted); font-family: 'DM Sans'; font-size: .63rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.menu-toggle { display: none; border: 0; padding: 6px; background: transparent; }
.menu-toggle span { display: block; width: 25px; height: 2px; margin: 5px 0; background: var(--navy); }

.hero { position: relative; min-height: 674px; overflow: hidden; color: #fff; background: var(--navy); }
.hero-image, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-image { object-fit: cover; object-position: center 51%; }
.hero-shade { background: linear-gradient(90deg, rgba(5, 16, 27, .96) 0%, rgba(8, 26, 41, .84) 34%, rgba(8, 25, 39, .22) 64%, rgba(7, 21, 33, .08) 100%); }
.hero-content { position: relative; z-index: 1; padding: 103px 0 83px; }
.hero h1 { margin-bottom: 23px; color: #fff; }
.hero-copy { max-width: 635px; color: #e4ebee; font-size: 1.15rem; }
.hero-actions { display: flex; gap: 12px; margin: 32px 0 41px; }
.trust-row { display: flex; flex-wrap: wrap; gap: 18px 26px; }
.trust-row span { display: flex; align-items: center; gap: 7px; color: #f3f6f7; font-size: .84rem; }
.trust-row .icon { width: 16px; height: 16px; color: #ff9c51; }

.local-ribbon { color: #fff; background: var(--orange); }
.local-ribbon .shell { display: flex; min-height: 72px; align-items: center; gap: 26px; }
.ribbon-label { display: flex; align-items: center; gap: 8px; padding-right: 24px; border-right: 1px solid rgba(255,255,255,.45); font-family: 'Manrope'; font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ribbon-label .icon { width: 20px; height: 20px; }
.ribbon-cities { display: flex; flex: 1; align-items: center; gap: 13px; overflow: hidden; white-space: nowrap; font-size: .88rem; font-weight: 700; }
.ribbon-cities i { width: 3px; height: 3px; flex: none; border-radius: 50%; background: rgba(255,255,255,.72); }
.local-ribbon a { display: flex; align-items: center; gap: 7px; font-size: .8rem; font-weight: 800; white-space: nowrap; }
.local-ribbon a .icon { width: 15px; height: 15px; }

.problem-section { padding: 98px 0 105px; }
.section-heading { margin-bottom: 44px; }
.section-heading.centered { max-width: 740px; margin-right: auto; margin-left: auto; text-align: center; }
.section-heading.centered p:last-child { max-width: 590px; margin: 0 auto; color: var(--muted); }
.section-heading.split { display: flex; align-items: end; justify-content: space-between; gap: 70px; }
.section-heading.split > div { max-width: 670px; }
.section-heading.split > div h2 { margin-bottom: 0; }
.section-heading.split > p { max-width: 370px; margin-bottom: 4px; color: var(--muted); }
.problem-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.problem-card { position: relative; display: flex; min-height: 174px; align-items: center; justify-content: center; flex-direction: column; gap: 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 24px 16px; text-align: center; transition: background .2s, color .2s; }
.problem-card:nth-child(-n+4) { border-top: 1px solid var(--line); }
.problem-card:nth-child(4n+1) { border-left: 1px solid var(--line); }
.problem-card .icon:first-child { width: 33px; height: 33px; color: var(--orange); }
.problem-card .icon:last-child { position: absolute; right: 14px; bottom: 14px; width: 14px; height: 14px; color: #a9b5bc; }
.problem-card > span { color: var(--navy); font-family: 'Manrope'; font-size: .93rem; font-weight: 800; }
.problem-card:hover { background: var(--navy); }
.problem-card:hover > span, .problem-card:hover .icon:first-child { color: #fff; }
.problem-card:hover .icon:last-child { color: #ff9c51; }

.services { padding: 106px 0 112px; background: var(--paper); }
.service-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.service-feature { min-width: 0; overflow: hidden; background: #fff; box-shadow: 0 13px 35px rgba(22, 48, 66, .07); }
.service-photo { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #c8d2d8; }
.service-photo::after { position: absolute; inset: auto 0 0; height: 42%; content: ''; background: linear-gradient(transparent, rgba(5,18,29,.4)); }
.service-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.service-feature:nth-child(3) .service-photo img { object-position: 62% center; }
.service-feature:hover .service-photo img { transform: scale(1.035); }
.service-photo > span { position: absolute; right: 18px; bottom: 13px; z-index: 1; color: #fff; font-family: 'Manrope'; font-size: .8rem; font-weight: 800; letter-spacing: .12em; }
.service-feature > div:last-child { padding: 27px 28px 30px; }
.feature-kicker { margin-bottom: 10px; color: var(--orange); font-size: .68rem; font-weight: 800; letter-spacing: .13em; }
.service-feature h3 { margin-bottom: 12px; font-size: 1.42rem; }
.service-feature p:not(.feature-kicker) { color: var(--muted); font-size: .91rem; }
.text-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; color: var(--navy); font-size: .89rem; font-weight: 800; }
.text-link:hover { color: var(--orange); }
.text-link .icon { width: 16px; height: 16px; }

.repair-menu { padding: 112px 0; }
.repair-layout { display: grid; grid-template-columns: .68fr 1.32fr; gap: 88px; align-items: start; }
.repair-intro { position: sticky; top: 145px; }
.repair-intro h2 { max-width: 410px; }
.repair-intro > p:not(.eyebrow) { max-width: 400px; color: var(--muted); }
.repair-note { display: flex; max-width: 420px; align-items: flex-start; gap: 14px; margin-top: 34px; border-left: 3px solid var(--orange); padding: 17px 18px; background: var(--paper); }
.repair-note .icon { width: 24px; height: 24px; color: var(--orange); }
.repair-note p { margin: 0; color: var(--muted); font-size: .84rem; }
.repair-note strong { color: var(--navy); }
.repair-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.repair-item { display: grid; min-height: 168px; grid-template-columns: 42px 1fr; gap: 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 27px 24px; }
.repair-item:nth-child(odd) { border-left: 1px solid var(--line); }
.repair-item > .icon { width: 31px; height: 31px; color: var(--orange); }
.repair-item h3 { margin: 2px 0 9px; font-size: 1rem; }
.repair-item p { margin: 0; color: var(--muted); font-size: .84rem; }

.mid-cta { padding: 67px 0; color: #fff; background: var(--navy-deep); }
.mid-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 55px; }
.mid-cta h2 { max-width: 730px; margin: 0; color: #fff; font-size: clamp(2rem, 3.2vw, 3.15rem); }
.mid-cta .eyebrow { margin-bottom: 11px; }
.mid-cta .button { flex: none; }

.why-section { padding: 110px 0; color: #fff; background: var(--navy); }
.why-layout { display: grid; grid-template-columns: 1fr 1.12fr; gap: 90px; }
.why-copy h2 { max-width: 520px; color: #fff; }
.why-copy > p:not(.eyebrow) { max-width: 515px; color: #d6e1e7; }
.why-copy .button { margin-top: 18px; }
.why-list { border-top: 1px solid rgba(255,255,255,.25); }
.why-list > div { display: grid; grid-template-columns: 48px 1fr; gap: 5px 20px; border-bottom: 1px solid rgba(255,255,255,.25); padding: 24px 0; }
.why-list span { padding-top: 4px; color: #ff9c51; font-family: 'Manrope'; font-size: .76rem; font-weight: 800; }
.why-list h3 { margin: 0; color: #fff; }
.why-list p { grid-column: 2; margin: 0; color: #b9cad4; font-size: .89rem; }

.process-section { padding: 105px 0 114px; }
.process-list { display: grid; grid-template-columns: repeat(5, 1fr); margin: 58px 0 0; padding: 0; list-style: none; }
.process-list li { position: relative; display: grid; grid-template-rows: auto 1fr; border-top: 2px solid var(--navy); padding: 25px 22px 0 0; }
.process-list li:not(:last-child)::after { position: absolute; top: -2px; left: 0; width: 100%; height: 2px; content: ''; background: var(--orange); transform: scaleX(0); transform-origin: left; transition: transform .5s .25s; }
.process-list li.in-view::after { transform: scaleX(1); }
.process-list span { color: var(--orange); font-family: 'Manrope'; font-size: .84rem; font-weight: 800; }
.process-list h3 { margin: 18px 0 9px; font-size: 1.02rem; }
.process-list p { max-width: 185px; margin: 0; color: var(--muted); font-size: .86rem; }

.areas-section { padding: 108px 0 100px; background: var(--pale-blue); }
.areas-heading { display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 90px; margin-bottom: 52px; }
.areas-heading h2 { max-width: 720px; margin-bottom: 0; }
.areas-heading > p { max-width: 390px; margin-bottom: 7px; color: var(--muted); }
.area-groups { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #bdcbd2; border-bottom: 1px solid #bdcbd2; }
.area-group { min-width: 0; border-left: 1px solid #bdcbd2; padding: 28px 25px 30px; }
.area-group:last-child { border-right: 1px solid #bdcbd2; }
.area-number { margin-bottom: 35px; color: var(--orange); font-family: 'Manrope'; font-size: .73rem; font-weight: 800; letter-spacing: .1em; }
.area-group h3 { padding-bottom: 17px; border-bottom: 2px solid var(--navy); font-size: 1.08rem; }
.area-group ul { margin: 0; padding: 0; list-style: none; }
.area-group li { border-bottom: 1px solid #c7d2d8; }
.area-group li:last-child { border-bottom: 0; }
.area-group li a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 11px 0; color: #2b4050; font-size: .9rem; font-weight: 700; }
.area-group li a:hover { color: var(--orange); }
.area-group li .icon { width: 14px; height: 14px; color: #94a4ad; }
.areas-foot { display: flex; align-items: center; justify-content: space-between; gap: 35px; margin-top: 38px; }
.areas-foot p { display: flex; align-items: center; gap: 14px; margin: 0; color: var(--muted); font-size: .86rem; }
.areas-foot p > .icon { width: 25px; height: 25px; color: var(--orange); }
.areas-foot strong { color: var(--navy); }

.faq-section { padding: 110px 0; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; padding: 25px 0; color: var(--navy); font-family: 'Manrope'; font-size: 1.06rem; font-weight: 800; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--orange); font-family: 'DM Sans'; font-size: 1.6rem; font-weight: 400; transition: transform .2s; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { max-width: 790px; margin: 0; padding: 0 42px 24px 0; color: var(--muted); }

.request-section { padding: 102px 0; color: #fff; background: var(--navy-2); }
.request-layout { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 82px; }
.request-copy h2 { color: #fff; }
.request-copy > p:not(.eyebrow) { max-width: 430px; color: #d8e2e8; }
.contact-stack { max-width: 400px; margin-top: 32px; border-top: 1px solid rgba(255,255,255,.26); }
.contact-stack a { display: flex; align-items: center; gap: 13px; border-bottom: 1px solid rgba(255,255,255,.26); padding: 15px 0; }
.contact-stack .icon { width: 20px; height: 20px; color: #ff9c51; }
.contact-stack span { color: #fff; font-family: 'Manrope'; font-weight: 800; line-height: 1.2; }
.contact-stack small { display: block; color: #b6c6d0; font-family: 'DM Sans'; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.form-shell { padding: 39px; color: var(--ink); background: #fff; box-shadow: 0 18px 48px rgba(3,16,26,.2); }
.request-form h2 { margin-bottom: 7px; font-size: 2rem; }
.form-intro { margin-bottom: 23px; color: var(--muted); font-size: .92rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.request-form label { display: flex; flex-direction: column; gap: 6px; color: var(--navy); font-size: .72rem; font-weight: 800; letter-spacing: .02em; }
.request-form input, .request-form textarea { border: 1px solid #c8d3d8; border-radius: 0; outline: none; padding: 11px; color: var(--ink); transition: border .15s, box-shadow .15s; }
.request-form input:focus, .request-form textarea:focus { border-color: var(--orange); box-shadow: 0 0 0 3px rgba(255,113,0,.14); }
.request-form textarea { resize: vertical; }
.request-form .wide { grid-column: span 2; }
.sms-consent { min-width: 0; margin: 18px 0 0; border: 0; border-top: 1px solid var(--line); padding: 17px 0 0; }
.sms-consent legend { padding: 0; color: var(--navy); font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.request-form .sms-consent-choice { display: grid; grid-template-columns: 19px 1fr; align-items: start; gap: 10px; margin-top: 10px; color: var(--ink); font-size: .8rem; font-weight: 500; line-height: 1.45; letter-spacing: 0; }
.request-form .sms-consent-choice + .sms-consent-choice { margin-top: 15px; border-top: 1px solid var(--line); padding-top: 15px; }
.request-form .sms-consent-choice input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--orange); }
.sms-consent-copy { display: grid; gap: 8px; }
.sms-consent-copy strong { color: var(--ink); font-size: .8rem; }
.sms-consent-copy > span { color: var(--muted); font-size: .72rem; line-height: 1.45; }
.sms-consent a { color: var(--navy); font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.form-submit { width: 100%; margin-top: 18px; border: 0; }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.form-error { margin: 12px 0 0; color: #bd3018; font-size: .85rem; }
.form-note { margin: 13px 0 0; color: var(--muted); font-size: .77rem; text-align: center; }
.form-success { padding: 52px 20px; text-align: center; }
.success-mark { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; margin-bottom: 14px; border-radius: 50%; color: #27814d; background: #eef5f0; }
.success-mark .icon { width: 25px; height: 25px; }
.form-success h3 { font-size: 1.45rem; }
.form-success p { max-width: 370px; margin: 0 auto; color: var(--muted); }

footer { padding: 50px 0 84px; color: #c7d2d8; background: #081b2a; }
.footer-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 35px; }
.footer-brand { flex: none; }
.footer-brand img { width: 82px; height: 82px; object-fit: contain; background: #fff; }
.footer-copy { flex: 1 1 300px; }
.footer-copy h3 { margin: 0 0 4px; color: #fff; font-size: 1.15rem; }
.footer-copy p { margin: 0; font-size: .87rem; }
.footer-address { margin-top: 12px; font-size: .87rem; font-style: normal; line-height: 1.6; }
.footer-links { display: flex; flex-wrap: wrap; flex-basis: 100%; order: 4; gap: 20px; font-size: .82rem; font-weight: 800; }
.footer-links a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 38px; border-top: 1px solid rgba(255,255,255,.14); padding-top: 20px; font-size: .75rem; }
.footer-bottom span:last-child { display: flex; gap: 20px; }
.footer-bottom a:hover { color: #fff; }
.mobile-bar { display: none; }

.legal-main { background: #fff; }
.legal-hero { padding: 86px 0 78px; color: #fff; background: var(--navy); }
.legal-hero .eyebrow { margin-bottom: 17px; }
.legal-hero h1 { margin-bottom: 20px; color: #fff; font-size: clamp(3rem, 5.3vw, 5rem); }
.legal-hero p:last-child { max-width: 650px; margin: 0; color: #d5e0e7; font-size: 1.08rem; }
.legal-layout { display: grid; grid-template-columns: 245px minmax(0, 760px); align-items: start; justify-content: space-between; gap: 85px; padding-top: 76px; padding-bottom: 104px; }
.legal-summary { position: sticky; top: 138px; border-top: 2px solid var(--orange); padding-top: 19px; }
.legal-summary .eyebrow { margin-bottom: 16px; }
.legal-date { margin-bottom: 24px; color: var(--muted); font-size: .84rem; line-height: 1.5; }
.legal-date strong { color: var(--navy); font-size: .76rem; letter-spacing: .05em; text-transform: uppercase; }
.legal-summary nav { display: grid; border-top: 1px solid var(--line); }
.legal-summary nav a { border-bottom: 1px solid var(--line); padding: 9px 0; color: #405667; font-size: .79rem; font-weight: 700; line-height: 1.25; }
.legal-summary nav a:hover { color: var(--orange); }
.legal-content { min-width: 0; }
.legal-lead { margin-bottom: 43px; color: #415969; font-size: 1.12rem; line-height: 1.7; }
.legal-content section { scroll-margin-top: 140px; margin-bottom: 40px; }
.legal-content section:last-child { margin-bottom: 0; }
.legal-content h2 { margin-bottom: 13px; font-size: clamp(1.55rem, 2.6vw, 2.05rem); }
.legal-content p { max-width: 740px; color: #4e606b; }
.legal-content p:last-child { margin-bottom: 0; }

/* Content remains visible without JavaScript; animation is progressive enhancement. */
.reveal { opacity: 1; transform: none; transition: opacity .55s ease, transform .55s ease; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media (max-width: 1100px) {
  .shell { width: min(100% - 42px, 1200px); }
  .nav-links { gap: 15px; }
  .nav-actions .button { display: none; }
  .phone-link { font-size: .85rem; }
  .repair-layout { gap: 55px; }
  .request-layout, .why-layout { gap: 55px; }
  .area-group { padding-right: 18px; padding-left: 18px; }
}

@media (max-width: 860px) {
  body { padding-bottom: 58px; }
  .shell { width: calc(100% - 36px); }
  .utility-right, .nav-actions { display: none; }
  .nav-row { min-height: 69px; }
  .brand { flex-basis: 113px; }
  .brand img { height: 55px; }
  .menu-toggle { display: block; margin-left: auto; }
  .nav-links { position: absolute; top: 100%; left: 0; display: none; width: 100%; padding: 12px 18px 21px; background: #fff; box-shadow: 0 11px 18px rgba(8,30,45,.13); }
  .nav-links.open { display: flex; align-items: stretch; flex-direction: column; gap: 0; }
  .nav-links a { border-bottom: 1px solid var(--line); padding: 13px 0; }

  .hero { min-height: 650px; }
  .hero-image { object-position: 64% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(5,16,27,.95), rgba(5,18,29,.8) 66%, rgba(5,18,29,.28)); }
  .hero-content { padding: 87px 0 62px; }
  .hero h1 { font-size: clamp(2.8rem, 11vw, 4.15rem); }
  .hero-copy { font-size: 1.03rem; }
  .trust-row { gap: 12px 18px; }
  .trust-row span { font-size: .76rem; }
  .local-ribbon .shell { min-height: 66px; }
  .ribbon-cities { display: none; }
  .local-ribbon a { margin-left: auto; }

  .problem-section, .services, .repair-menu, .why-section, .process-section, .areas-section, .faq-section { padding-top: 76px; padding-bottom: 80px; }
  .section-heading.split, .areas-heading { display: flex; align-items: flex-start; flex-direction: column; gap: 6px; }
  .section-heading.split > p, .areas-heading > p { max-width: 560px; }
  .problem-grid { grid-template-columns: repeat(2, 1fr); }
  .problem-card:nth-child(n) { border-top: 0; border-left: 0; }
  .problem-card:nth-child(-n+2) { border-top: 1px solid var(--line); }
  .problem-card:nth-child(odd) { border-left: 1px solid var(--line); }
  .problem-card { min-height: 153px; }
  .service-features { grid-template-columns: 1fr; }
  .service-feature { display: grid; grid-template-columns: .84fr 1.16fr; }
  .service-photo { height: 100%; aspect-ratio: auto; min-height: 320px; }

  .repair-layout { grid-template-columns: 1fr; gap: 46px; }
  .repair-intro { position: static; }
  .repair-intro h2, .repair-intro > p:not(.eyebrow) { max-width: 620px; }
  .repair-note { max-width: 620px; }
  .mid-cta { padding: 58px 0; }
  .mid-cta-inner { align-items: flex-start; flex-direction: column; gap: 29px; }

  .why-layout, .request-layout { grid-template-columns: 1fr; gap: 50px; }
  .why-copy h2, .why-copy > p:not(.eyebrow) { max-width: 610px; }
  .process-list { grid-template-columns: 1fr; margin-top: 36px; }
  .process-list li { grid-template-columns: 47px 1fr; grid-template-rows: auto; gap: 0 22px; border-top: 0; border-left: 2px solid var(--navy); padding: 9px 0 27px 24px; }
  .process-list li:not(:last-child)::after { top: 0; left: -2px; width: 2px; height: 100%; transform: scaleY(0); transform-origin: top; }
  .process-list li.in-view::after { transform: scaleY(1); }
  .process-list h3 { margin: 0 0 7px; }
  .process-list p { max-width: none; }
  .process-list li div { grid-column: 2; }
  .area-groups { grid-template-columns: 1fr 1fr; }
  .area-group:nth-child(3) { border-top: 1px solid #bdcbd2; }
  .area-group:nth-child(4) { border-top: 1px solid #bdcbd2; border-right: 1px solid #bdcbd2; }
  .areas-foot { align-items: flex-start; }
  .request-section { padding: 80px 0; }
  .form-shell { padding: 28px; }
  .footer-top { align-items: flex-start; flex-wrap: wrap; }
  .footer-copy { flex: 1 1 55%; }
  .footer-links { order: 4; width: 100%; }
  .legal-hero { padding: 70px 0 64px; }
  .legal-layout { grid-template-columns: 1fr; gap: 48px; padding-top: 58px; padding-bottom: 78px; }
  .legal-summary { position: static; }
  .legal-summary nav { grid-template-columns: 1fr 1fr; column-gap: 24px; }

  .mobile-bar { position: fixed; right: 0; bottom: 0; left: 0; z-index: 40; display: grid; min-height: 58px; grid-template-columns: 1fr 1fr 1.7fr; background: #fff; box-shadow: 0 -2px 14px rgba(4,26,42,.18); }
  .mobile-bar.mobile-bar-request-page { grid-template-columns: 1fr 1fr; }
  .mobile-bar a { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 1px; color: var(--navy); font-size: .67rem; font-weight: 800; }
  .mobile-bar .icon { width: 18px; height: 18px; color: var(--orange); }
  .mobile-bar .mobile-request { color: #fff; background: var(--orange); font-size: .78rem; }
}

@media (max-width: 580px) {
  h2 { font-size: 2.12rem; }
  .utility-inner { font-size: .7rem; }
  .hero { min-height: 675px; }
  .hero-image { object-position: 68% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(5,16,27,.97), rgba(5,18,29,.78) 77%, rgba(5,18,29,.34)); }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .button { width: 100%; }
  .trust-row { align-items: flex-start; flex-direction: column; }
  .ribbon-label { border-right: 0; padding-right: 0; }
  .problem-card > span { font-size: .83rem; }
  .service-feature { display: block; }
  .service-photo { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .service-feature > div:last-child { padding: 24px 23px 27px; }
  .repair-grid { grid-template-columns: 1fr; }
  .repair-item:nth-child(n) { border-left: 1px solid var(--line); }
  .repair-item { min-height: 0; }
  .mid-cta .button { width: 100%; }
  .why-list > div { grid-template-columns: 38px 1fr; }
  .area-groups { grid-template-columns: 1fr; }
  .area-group:nth-child(n) { border-top: 1px solid #bdcbd2; border-right: 1px solid #bdcbd2; }
  .area-group:first-child { border-top: 0; }
  .area-number { margin-bottom: 20px; }
  .areas-foot { flex-direction: column; }
  .areas-foot .button { width: 100%; }
  .form-grid { grid-template-columns: 1fr; }
  .request-form .wide { grid-column: span 1; }
  .form-shell { padding: 25px 20px; }
  .footer-top { flex-direction: column; }
  .footer-links { flex-direction: column; gap: 10px; }
  .footer-bottom { flex-direction: column; gap: 14px; }
  .footer-brand img { width: 68px; height: 68px; }
  .legal-hero { padding: 55px 0 50px; }
  .legal-hero h1 { font-size: 2.85rem; }
  .legal-hero p:last-child { font-size: 1rem; }
  .legal-layout { gap: 39px; padding-top: 43px; padding-bottom: 66px; }
  .legal-summary nav { grid-template-columns: 1fr; }
  .legal-content section { margin-bottom: 34px; }
  .legal-lead { margin-bottom: 35px; font-size: 1.02rem; }
}

/* Inner service pages */
.nav-links a[aria-current='page'] { color: var(--orange); }
.breadcrumbs { display: flex; min-height: 46px; align-items: center; gap: 8px; color: #72818a; font-size: .76rem; }
.breadcrumbs a { font-weight: 800; }
.breadcrumbs a:hover { color: var(--orange); }

.page-hero { position: relative; min-height: 590px; overflow: hidden; color: #fff; background: var(--navy); }
.page-hero-image, .page-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.page-hero-image { object-fit: cover; object-position: center; }
.page-hero-shade { background: linear-gradient(90deg, rgba(5,17,28,.98) 0%, rgba(7,25,39,.9) 38%, rgba(7,25,39,.28) 72%, rgba(7,25,39,.08)); }
.page-hero-content { position: relative; z-index: 1; padding: 91px 0 74px; }
.page-hero h1 { max-width: 850px; margin-bottom: 22px; color: #fff; font-size: clamp(3.05rem, 5.2vw, 5.15rem); }
.page-hero-copy { max-width: 650px; color: #dce6eb; font-size: 1.12rem; }
.page-hero .hero-actions { margin-bottom: 34px; }
.spring-hero .page-hero-image { object-position: 64% center; }
.opener-hero .page-hero-image { object-position: 61% center; }
.installation-hero .page-hero-image { object-position: 64% center; }

.safety-band { background: var(--pale-blue); }
.safety-band-inner { display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 25px; padding-top: 34px; padding-bottom: 34px; }
.safety-band-inner > .icon { width: 48px; height: 48px; color: var(--orange); }
.safety-band .eyebrow { margin-bottom: 6px; }
.safety-band h2 { margin-bottom: 8px; font-size: 1.65rem; }
.safety-band p:last-child { max-width: 740px; margin: 0; color: var(--muted); font-size: .9rem; }

.detail-section, .signs-section, .opener-symptoms, .door-choices, .coverage-section { padding: 104px 0 110px; }
.issue-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.issue-card { min-height: 235px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 30px; }
.issue-card > .icon { width: 34px; height: 34px; margin-bottom: 37px; color: var(--orange); }
.issue-card h3 { margin-bottom: 10px; font-size: 1.12rem; }
.issue-card p { margin: 0; color: var(--muted); font-size: .88rem; }

.system-section { padding: 110px 0; background: var(--paper); }
.system-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 85px; }
.system-photo { min-height: 610px; overflow: hidden; }
.system-photo img { width: 100%; height: 100%; min-height: 610px; object-fit: cover; }
.system-copy h2 { max-width: 540px; }
.system-copy > p:not(.eyebrow) { max-width: 550px; color: var(--muted); }
.check-list { display: grid; gap: 0; margin: 30px 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.check-list li { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); padding: 13px 0; color: var(--navy); font-weight: 700; }
.check-list .icon { width: 18px; height: 18px; color: var(--orange); }

.steps-section { padding: 105px 0 112px; }
.numbered-steps { display: grid; grid-template-columns: repeat(5, 1fr); margin: 55px 0 0; padding: 0; border-top: 2px solid var(--navy); list-style: none; }
.numbered-steps li { min-width: 0; padding: 25px 25px 0 0; }
.numbered-steps li > span { display: block; margin-bottom: 48px; color: var(--orange); font-family: 'Manrope'; font-size: .78rem; font-weight: 800; }
.numbered-steps h3 { font-size: 1rem; }
.numbered-steps p { margin: 0; color: var(--muted); font-size: .84rem; }

.decision-section { padding: 100px 0; color: #fff; background: var(--navy); }
.decision-layout { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 100px; }
.decision-section h2 { max-width: 580px; color: #fff; }
.decision-section p { max-width: 570px; color: #ccdae2; }
.decision-note { border-top: 3px solid var(--orange); padding: 31px; color: var(--ink); background: #fff; }
.decision-note span { color: var(--orange); font-size: .7rem; font-weight: 800; letter-spacing: .14em; }
.decision-note h3 { margin: 18px 0 12px; font-size: 1.45rem; }
.decision-note p { margin: 0; color: var(--muted); }

.spring-warning { padding: 56px 0; color: #fff; background: var(--orange-dark); }
.spring-warning-inner { display: grid; grid-template-columns: 78px 1fr; gap: 30px; align-items: start; }
.warning-mark { display: flex; width: 68px; height: 68px; align-items: center; justify-content: center; border: 2px solid rgba(255,255,255,.7); border-radius: 50%; font-family: 'Manrope'; font-size: 2.2rem; font-weight: 800; }
.spring-warning h2 { margin-bottom: 12px; color: #fff; font-size: clamp(2rem, 3.4vw, 3rem); }
.spring-warning p:last-child { max-width: 850px; margin: 0; color: #fff6ef; }
.spring-warning .eyebrow { color: #fff; }

.signs-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 90px; }
.signs-intro { position: sticky; top: 145px; align-self: start; }
.signs-intro p:last-child { color: var(--muted); }
.signs-list { border-top: 1px solid var(--line); }
.sign-row { display: grid; grid-template-columns: 56px 1fr; gap: 24px; border-bottom: 1px solid var(--line); padding: 25px 0; }
.sign-row > span { color: var(--orange); font-family: 'Manrope'; font-size: .78rem; font-weight: 800; }
.sign-row h3 { margin-bottom: 7px; }
.sign-row p { margin: 0; color: var(--muted); }

.spring-system { padding: 112px 0; color: #fff; background: var(--navy-deep); }
.spring-system-layout { display: grid; grid-template-columns: .82fr 1.18fr; align-items: center; gap: 100px; }
.spring-system h2 { color: #fff; }
.spring-system p:not(.eyebrow) { color: #cbd9e0; }
.spring-illustration { display: flex; min-height: 400px; align-items: center; justify-content: center; flex-direction: column; gap: 34px; border: 1px solid rgba(255,255,255,.2); color: #ff9c51; text-align: center; }
.spring-illustration .icon { width: 150px; height: 150px; }
.spring-illustration p { color: #fff !important; font-family: 'Manrope'; font-size: .72rem; font-weight: 800; letter-spacing: .12em; line-height: 1.6; }
.light-link { color: #fff; }

.spring-types { padding: 106px 0; }
.spring-pricing { padding: 76px 0; background: #f5f7f8; }
.spring-price-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 65px; align-items: start; }
.spring-price-layout h2 { font-size: clamp(1.9rem, 3vw, 2.75rem); line-height: 1.15; }
.spring-price-layout p { color: var(--muted); line-height: 1.75; }
.spring-price-layout strong { color: var(--navy); }
.spring-price-layout .button { margin-top: 8px; }
.spring-price-list table { width: 100%; border-collapse: collapse; text-align: left; color: var(--navy); }
.spring-price-list caption { text-align: left; font-size: .85rem; color: var(--muted); margin-bottom: 14px; }
.spring-price-list thead { background: var(--navy); color: white; font-size: .8rem; }
.spring-price-list th, .spring-price-list td { padding: 19px 15px; border-bottom: 1px solid #cad5dc; }
.spring-price-list td, .spring-price-list th:last-child { text-align: right; white-space: nowrap; }
.spring-price-list td { font-size: 1.5rem; font-weight: 800; }
.spring-price-list tbody th { font-size: .96rem; font-weight: 600; }
.spring-price-list > p { font-size: .87rem; margin-top: 20px; }
.spring-price-list .text-link { font-size: .85rem; }
.spring-request-anchor { scroll-margin-top: 110px; }
#spring-price-heading { scroll-margin-top: 125px; }
@media (max-width: 860px) {
  .spring-pricing { padding: 48px 0; }
  .spring-price-layout { grid-template-columns: 1fr; gap: 30px; }
}
.type-pair { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); }
.type-pair article { min-height: 245px; padding: 35px; }
.type-pair article + article { border-left: 1px solid var(--line); }
.type-pair span { color: var(--orange); font-family: 'Manrope'; font-size: .75rem; font-weight: 800; }
.type-pair h3 { margin: 44px 0 11px; font-size: 1.4rem; }
.type-pair p { max-width: 450px; margin: 0; color: var(--muted); }
.cost-note { display: grid; grid-template-columns: .45fr .7fr 1fr; gap: 40px; align-items: start; margin-top: 45px; border-top: 2px solid var(--navy); padding-top: 29px; }
.cost-note h3, .cost-note p { margin: 0; }
.cost-note p:last-child { color: var(--muted); }

.opener-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.opener-symptom { display: grid; grid-template-columns: 38px 42px 1fr; gap: 18px; align-items: start; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 27px 24px; }
.opener-symptom:nth-child(odd) { border-left: 1px solid var(--line); }
.opener-symptom > span { padding-top: 5px; color: var(--orange); font-family: 'Manrope'; font-size: .72rem; font-weight: 800; }
.opener-symptom > .icon { width: 31px; height: 31px; color: var(--navy); }
.opener-symptom h3 { margin: 2px 0 8px; }
.opener-symptom p { margin: 0; color: var(--muted); font-size: .87rem; }

.opener-diagnosis { padding: 100px 0; color: #fff; background: var(--navy); }
.opener-diagnosis-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 85px; }
.opener-diagnosis h2 { color: #fff; }
.opener-diagnosis p:not(.eyebrow) { max-width: 520px; color: #ccdae2; }
.opener-photo { height: 470px; overflow: hidden; }
.opener-photo img { width: 100%; height: 100%; object-fit: cover; }

.compare-section { padding: 108px 0; background: var(--paper); }
.compare-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.compare-grid article { border-top: 4px solid var(--navy); padding: 35px; background: #fff; }
.compare-grid article:last-child { border-color: var(--orange); }
.compare-label { color: var(--orange); font-size: .7rem; font-weight: 800; letter-spacing: .13em; }
.compare-grid h3 { margin: 36px 0 22px; font-size: 1.55rem; }
.compare-grid ul, .safe-checks ul { margin: 0; padding: 0; list-style: none; }
.compare-grid li, .safe-checks li { border-top: 1px solid var(--line); padding: 12px 0; color: var(--muted); }

.new-opener-section { padding: 105px 0; }
.new-opener-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 95px; }
.new-opener-layout > div > p:last-child { max-width: 640px; color: var(--muted); }
.safe-checks { border-top: 3px solid var(--orange); padding: 27px; background: var(--pale-blue); }
.safe-checks .eyebrow { margin-bottom: 25px; }

.replace-intro { padding: 105px 0; }
.replace-layout { display: grid; grid-template-columns: .25fr 1fr; gap: 55px; }
.replace-number { color: #dbe3e7; font-family: 'Manrope'; font-size: 8rem; font-weight: 800; letter-spacing: -.08em; line-height: .8; }
.replace-layout > div:last-child { max-width: 760px; }
.replace-layout p:not(.eyebrow) { color: var(--muted); }

.door-choices { background: var(--paper); }
.choice-list { border-top: 2px solid var(--navy); }
.choice-row { display: grid; grid-template-columns: 70px 260px 1fr; gap: 30px; align-items: start; border-bottom: 1px solid var(--line); padding: 25px 0; }
.choice-row > span { color: var(--orange); font-family: 'Manrope'; font-size: .75rem; font-weight: 800; }
.choice-row h3, .choice-row p { margin: 0; }
.choice-row p { max-width: 610px; color: var(--muted); }

.installation-process { padding: 110px 0; color: #fff; background: var(--navy); }
.installation-process h2 { color: #fff; }
.install-steps { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid rgba(255,255,255,.27); }
.install-steps article { min-height: 275px; border-right: 1px solid rgba(255,255,255,.27); padding: 27px 22px; }
.install-steps article:first-child { border-left: 1px solid rgba(255,255,255,.27); }
.install-steps span { display: flex; width: 31px; height: 31px; align-items: center; justify-content: center; border-radius: 50%; color: var(--navy); background: var(--orange); font-family: 'Manrope'; font-size: .73rem; font-weight: 800; }
.install-steps h3 { margin: 68px 0 12px; color: #fff; font-size: 1.02rem; }
.install-steps p { margin: 0; color: #bacbd5; font-size: .84rem; }

.price-section { padding: 100px 0; background: var(--pale-blue); }
.price-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; }
.price-layout p { color: var(--muted); }
.price-layout .button { margin-top: 14px; }

.areas-hero { position: relative; min-height: 590px; overflow: hidden; color: #fff; background: var(--navy); }
.areas-hero::after { position: absolute; inset: 0; content: ''; background: radial-gradient(circle at 70% 45%, rgba(39,94,126,.42), transparent 38%); }
.areas-hero-content { position: relative; z-index: 2; padding: 96px 0 78px; }
.areas-hero h1 { max-width: 800px; color: #fff; }
.areas-hero-content > p:not(.eyebrow) { max-width: 650px; color: #d6e2e8; font-size: 1.12rem; }
.areas-hero-map { position: absolute; right: 4vw; bottom: -4%; z-index: 1; width: 480px; height: 480px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; opacity: .75; }
.areas-hero-map::before, .areas-hero-map::after { position: absolute; content: ''; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; }
.areas-hero-map::before { inset: 55px; }
.areas-hero-map::after { inset: 120px; }
.areas-hero-map span { position: absolute; z-index: 1; color: rgba(255,255,255,.62); font-size: .65rem; font-weight: 800; letter-spacing: .12em; }
.areas-hero-map span:nth-child(1) { top: 92px; left: 73px; }
.areas-hero-map span:nth-child(2) { top: 185px; right: 35px; }
.areas-hero-map span:nth-child(3) { bottom: 93px; left: 105px; }
.areas-hero-map span:nth-child(4) { top: 228px; left: 170px; color: #ff9c51; }

.coverage-heading { display: grid; grid-template-columns: .55fr 1fr .7fr; align-items: end; gap: 50px; margin-bottom: 50px; }
.coverage-heading .eyebrow, .coverage-heading h2, .coverage-heading p { margin: 0; }
.coverage-heading p { color: var(--muted); }
.coverage-groups { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.coverage-group { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 28px; }
.coverage-group-head { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; margin-bottom: 25px; border-bottom: 2px solid var(--navy); padding-bottom: 17px; }
.coverage-group-head span { color: var(--orange); font-family: 'Manrope'; font-size: .72rem; font-weight: 800; }
.coverage-group h3 { margin: 0; font-size: 1.05rem; }
.coverage-group ul { margin: 0; padding: 0; list-style: none; }
.coverage-group li { border-bottom: 1px solid var(--line); }
.coverage-group li:last-child { border-bottom: 0; }
.coverage-group a { display: flex; align-items: center; justify-content: space-between; padding: 11px 0; font-size: .88rem; font-weight: 700; }
.coverage-group a:hover { color: var(--orange); }
.coverage-group a .icon { width: 14px; height: 14px; }

.area-services { padding: 108px 0; color: #fff; background: var(--navy); }
.area-services h2 { color: #fff; }
.area-service-links { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.25); border-left: 1px solid rgba(255,255,255,.25); }
.area-service-links > a { min-height: 360px; border-right: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); padding: 30px; transition: background .2s; }
.area-service-links > a:hover { background: var(--navy-2); }
.area-service-links > a > span { display: block; margin-bottom: 45px; color: #ff9c51; font-family: 'Manrope'; font-size: .74rem; font-weight: 800; }
.area-service-links > a > .icon { width: 36px; height: 36px; color: #ff9c51; }
.area-service-links h3 { margin: 25px 0 12px; color: #fff; font-size: 1.35rem; }
.area-service-links p { color: #bdccd5; font-size: .88rem; }
.area-service-links b { display: flex; align-items: center; gap: 8px; color: #fff; font-size: .84rem; }
.area-service-links b .icon { width: 15px; height: 15px; }

.nearby-section { padding: 105px 0; background: var(--pale-blue); }
.nearby-layout { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 85px; }
.nearby-layout > div:first-child > p:not(.eyebrow) { max-width: 520px; color: var(--muted); }
.light-contact { border-color: #bccbd2; }
.light-contact a { border-color: #bccbd2; }
.light-contact span { color: var(--navy); }
.light-contact small { color: var(--muted); }

.request-page { background: var(--navy); }
.request-page .breadcrumbs { color: #aebdc6; }
.request-page .breadcrumbs a { color: #fff; }
.request-page-main { padding: 75px 0 100px; }
.request-page-layout { display: grid; grid-template-columns: .9fr 1.1fr; align-items: start; gap: 85px; }
.request-page-copy { color: #fff; }
.request-page-copy h1 { margin-bottom: 24px; color: #fff; font-size: clamp(3rem, 5vw, 4.8rem); }
.request-page-copy > p:not(.eyebrow) { max-width: 540px; color: #ccdae2; font-size: 1.08rem; }
.request-direct { max-width: 430px; margin-top: 35px; border-top: 1px solid rgba(255,255,255,.25); }
.request-direct a { display: flex; align-items: center; gap: 14px; border-bottom: 1px solid rgba(255,255,255,.25); padding: 17px 0; }
.request-direct .icon { color: #ff9c51; }
.request-direct span { color: #fff; font-family: 'Manrope'; font-weight: 800; }
.request-direct small { display: block; color: #aebfc8; font-family: 'DM Sans'; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.request-help { display: grid; grid-template-columns: 36px 1fr; gap: 18px; margin-top: 48px; border-left: 3px solid var(--orange); padding: 21px; background: rgba(255,255,255,.07); }
.request-help > .icon { color: #ff9c51; }
.request-help h2 { margin-bottom: 8px; color: #fff; font-size: 1.15rem; }
.request-help p { margin: 0; color: #c3d0d8; font-size: .85rem; }
.request-page-form { margin-top: 4px; }
.privacy-note { margin: 14px 0 0; color: var(--muted); font-size: .73rem; text-align: center; }
.privacy-note a { color: var(--navy); font-weight: 800; text-decoration: underline; }
.request-coverage { padding: 28px 0; color: var(--navy); background: var(--orange); }
.request-coverage .shell { display: flex; align-items: center; gap: 13px; }
.request-coverage p { margin: 0; }
.request-coverage a { font-weight: 800; text-decoration: underline; }

.not-found { padding: 120px 0; }
.not-found p:not(.eyebrow) { color: var(--muted); }
.not-found .button { margin: 10px 10px 0 0; }

.js .reveal { opacity: 1; transform: none; }
.js .reveal.in-view { opacity: 1; transform: none; }

@media (max-width: 1000px) {
  .safety-band-inner { grid-template-columns: 52px 1fr; }
  .safety-band-inner .button { grid-column: 2; justify-self: start; }
  .system-layout, .opener-diagnosis-layout, .nearby-layout, .request-page-layout { gap: 50px; }
  .issue-grid { grid-template-columns: 1fr 1fr; }
  .numbered-steps, .install-steps { grid-template-columns: 1fr; border-top: 0; }
  .numbered-steps li { display: grid; grid-template-columns: 55px 1fr; border-top: 1px solid var(--line); padding: 20px 0; }
  .numbered-steps li > span { margin: 0; }
  .install-steps article, .install-steps article:first-child { min-height: 0; border: 0; border-top: 1px solid rgba(255,255,255,.25); padding: 23px 0; }
  .install-steps h3 { margin: 15px 0 8px; }
  .coverage-groups { grid-template-columns: 1fr 1fr; }
  .areas-hero-map { right: -120px; opacity: .48; }
}

@media (max-width: 860px) {
  .breadcrumbs { min-height: 40px; }
  .page-hero { min-height: 560px; }
  .page-hero-content { padding: 75px 0 65px; }
  .page-hero h1 { font-size: clamp(2.75rem, 10vw, 4.25rem); }
  .page-hero-image { object-position: 64% center; }
  .detail-section, .signs-section, .opener-symptoms, .door-choices, .coverage-section, .system-section, .steps-section, .spring-system, .spring-types, .opener-diagnosis, .compare-section, .new-opener-section, .replace-intro, .installation-process, .price-section, .area-services, .nearby-section { padding-top: 78px; padding-bottom: 82px; }
  .system-layout, .decision-layout, .signs-layout, .spring-system-layout, .opener-diagnosis-layout, .new-opener-layout, .price-layout, .nearby-layout, .request-page-layout { grid-template-columns: 1fr; gap: 48px; }
  .system-photo, .system-photo img { min-height: 460px; }
  .signs-intro { position: static; }
  .spring-illustration { min-height: 330px; }
  .opener-photo { height: 390px; }
  .choice-row { grid-template-columns: 55px 200px 1fr; }
  .coverage-heading { grid-template-columns: 1fr; gap: 12px; }
  .area-service-links { grid-template-columns: 1fr; }
  .area-service-links > a { min-height: 0; }
  .request-page-main { padding: 55px 0 80px; }
}

@media (max-width: 580px) {
  .page-hero { min-height: 630px; }
  .page-hero-shade { background: linear-gradient(90deg, rgba(5,17,28,.98), rgba(7,25,39,.78) 78%, rgba(7,25,39,.38)); }
  .page-hero h1 { font-size: 2.75rem; }
  .page-hero-copy { font-size: 1rem; }
  .safety-band-inner { grid-template-columns: 1fr; gap: 16px; padding-top: 31px; padding-bottom: 35px; }
  .safety-band-inner .button { grid-column: 1; width: 100%; }
  .issue-grid, .opener-grid, .type-pair, .compare-grid, .coverage-groups { grid-template-columns: 1fr; }
  .issue-card { min-height: 0; }
  .issue-card > .icon { margin-bottom: 25px; }
  .system-photo, .system-photo img { min-height: 340px; }
  .decision-note { padding: 25px 22px; }
  .spring-warning-inner { grid-template-columns: 1fr; }
  .warning-mark { width: 54px; height: 54px; font-size: 1.7rem; }
  .sign-row { grid-template-columns: 38px 1fr; gap: 12px; }
  .spring-system-layout { gap: 38px; }
  .spring-illustration .icon { width: 105px; height: 105px; }
  .type-pair article + article { border-top: 1px solid var(--line); border-left: 0; }
  .cost-note { grid-template-columns: 1fr; gap: 12px; }
  .opener-symptom { grid-template-columns: 30px 34px 1fr; gap: 12px; border-left: 1px solid var(--line); }
  .compare-grid article { padding: 28px 23px; }
  .replace-layout { grid-template-columns: 1fr; gap: 25px; }
  .replace-number { font-size: 5.5rem; }
  .choice-row { grid-template-columns: 38px 1fr; gap: 14px; }
  .choice-row p { grid-column: 2; }
  .areas-hero { min-height: 640px; }
  .areas-hero-content { padding: 74px 0 65px; }
  .areas-hero h1 { font-size: 2.8rem; }
  .areas-hero-map { right: -230px; }
  .coverage-group { padding: 24px 22px; }
  .request-page-copy h1 { font-size: 2.8rem; }
  .request-help { grid-template-columns: 1fr; }
  .request-coverage .shell { align-items: flex-start; }
}

/* Registered trade-name lockup; keep the full name readable at every width. */
.brand { flex-basis: 245px; }
.brand img { height: 64px; }
.footer-brand img { width: 245px; height: 70px; object-fit: contain; padding: 7px; }
.footer-bottom small { display: block; margin-top: 5px; max-width: 60ch; }
@media (max-width: 1100px) { .nav-row { gap: 16px; } .nav-links { gap: 14px; } }
@media (max-width: 860px) { .brand { flex-basis: 230px; max-width: calc(100% - 55px); } .brand img { height: 58px; } }
@media (max-width: 580px) { .footer-brand img { width: 235px; height: 65px; } }

.offer-header img { width: 240px; height: 65px; }
.nd-header>a:first-child img { width: 240px; height: 65px; object-fit: contain; }
@media (max-width:580px) { .offer-header img,.nd-header>a:first-child img { width:210px; max-width:58vw; height:58px; } }
