:root {
    --color-primary: #087a46;
    --color-primary-dark: #064c39;
    --color-primary-deep: #033d31;
    --color-primary-soft: #e9f5ef;
    --color-accent: #e31b23;
    --color-accent-dark: #bc1118;
    --color-ink: #101817;
    --color-muted: #5e6865;
    --color-border: #dce5e1;
    --color-surface: #fff;
    --color-background: #f6f8f7;
    --shadow-soft: 0 12px 34px rgba(10, 43, 34, .09);
    --radius-small: .5rem;
    --radius-medium: .875rem;
    --container-width: 75rem;
    --transition: 180ms ease;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--color-surface);
    color: var(--color-ink);
    font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 1rem;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: var(--color-primary); }
svg { display: block; }
.logo-picture { display: contents; }
.site-container { width: min(calc(100% - 2rem), var(--container-width)); margin-inline: auto; }
.skip-link {
    position: fixed; top: .75rem; left: .75rem; z-index: 1000;
    padding: .75rem 1rem; border-radius: var(--radius-small);
    background: var(--color-ink); color: #fff; transform: translateY(-150%);
    transition: transform var(--transition);
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid #f5b800; outline-offset: 3px; }
.icon { width: 1.25rem; height: 1.25rem; fill: currentColor; flex: 0 0 auto; }
[hidden] { display: none !important; }
[aria-disabled="true"] { cursor: not-allowed; }
.placeholder-link[aria-disabled="true"] { opacity: .78; }

.site-header { position: relative; z-index: 100; background: var(--color-surface); box-shadow: 0 1px 0 var(--color-border); }
.trust-bar { border-bottom: 1px solid rgba(255,255,255,.14); background: linear-gradient(90deg, var(--color-primary-deep), var(--color-primary)); color: #fff; font-size: .78rem; box-shadow: inset 0 -1px rgba(0,0,0,.08); }
.trust-bar__inner { min-height: 2.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.trust-bar__location, .trust-bar__benefits, .trust-bar__benefits li { display: flex; align-items: center; }
.trust-bar__location, .trust-bar__benefits li { gap: .35rem; }
.trust-bar__location { color: #fff; text-decoration: none; }
.trust-bar__location:hover, .trust-bar__location:focus-visible { text-decoration: underline; }
.trust-bar__location .icon { width: .95rem; height: .95rem; }
.trust-bar__benefits { list-style: none; gap: 1.25rem; margin: 0; padding: 0; }
.trust-bar .opening-status { display: inline-flex; align-items: center; gap: .45rem; padding: .2rem .65rem; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: rgba(0,0,0,.1); }
.trust-bar .opening-status::before { content: ""; width: .5rem; height: .5rem; flex: 0 0 auto; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,.12); }
.trust-bar .opening-status--open::before { background: #42d884; }
.trust-bar .opening-status--closed::before { background: #ff5a61; }
.trust-bar .opening-status--holiday::before { background: #ffd166; }
.header-main { min-height: 5.25rem; display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); }

.brand { display: inline-flex; align-items: center; flex: 0 0 auto; color: var(--color-ink); text-decoration: none; }
.brand__logo { width: auto; height: 3.1rem; display: block; object-fit: contain; }

.desktop-nav { margin-left: auto; }
.desktop-nav__list { display: flex; align-items: center; gap: clamp(.1rem, .65vw, .7rem); margin: 0; padding: 0; list-style: none; }
.desktop-nav__link {
    min-height: 2.75rem; display: inline-flex; align-items: center; gap: .3rem;
    padding: .45rem .55rem; border: 0; border-bottom: 2px solid transparent;
    background: transparent; color: var(--color-ink); font-size: .88rem; font-weight: 650;
    text-decoration: none; white-space: nowrap; cursor: pointer;
    transition: color var(--transition), border-color var(--transition);
}
.desktop-nav__link:hover, .desktop-nav__link:focus-visible, .desktop-nav__link.is-current,
.nav-dropdown.is-open > .desktop-nav__link { border-bottom-color: var(--color-primary); color: var(--color-primary); }
.chevron { width: .9rem; height: .9rem; fill: none; stroke: currentColor; stroke-width: 1.8; transition: transform var(--transition); }
[aria-expanded="true"] > .chevron, .nav-dropdown.is-open .nav-dropdown__toggle .chevron { transform: rotate(180deg); }
.nav-dropdown { position: relative; }
.nav-dropdown__trigger { display: flex; align-items: stretch; }
.nav-dropdown__trigger .desktop-nav__link { padding-right: .2rem; }
.nav-dropdown__arrow {
    min-width: 2rem; display: inline-grid; place-items: center; padding: 0 .4rem;
    border: 0; border-bottom: 2px solid transparent; background: transparent;
    color: var(--color-ink); cursor: pointer;
}
.nav-dropdown__arrow:hover, .nav-dropdown__arrow:focus-visible,
.nav-dropdown.is-open .nav-dropdown__arrow { border-bottom-color: var(--color-primary); color: var(--color-primary); }
.nav-dropdown.is-open .nav-dropdown__trigger > .desktop-nav__link { border-bottom-color: var(--color-primary); color: var(--color-primary); }
.nav-dropdown__menu {
    position: absolute; top: calc(100% + .55rem); left: 50%; min-width: 15rem;
    margin: 0; padding: .5rem; list-style: none; border: 1px solid var(--color-border);
    border-radius: var(--radius-medium); background: var(--color-surface);
    box-shadow: var(--shadow-soft); transform: translateX(-50%);
}
.nav-dropdown__menu::before { content: ""; position: absolute; inset: -.65rem 0 auto; height: .65rem; }
.nav-dropdown__menu a { display: block; padding: .7rem .8rem; border-radius: .45rem; color: var(--color-ink); font-size: .9rem; font-weight: 600; text-decoration: none; }
.nav-dropdown__menu a:hover, .nav-dropdown__menu a:focus-visible { background: var(--color-primary-soft); color: var(--color-primary-dark); }

.site-button {
    min-height: 2.9rem; display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
    padding: .7rem 1rem; border: 1px solid transparent; border-radius: .7rem;
    font-weight: 750; line-height: 1.2; text-decoration: none;
}
.site-button--primary { background: var(--color-accent); color: #fff; }
.site-button--primary:not([aria-disabled="true"]):hover { background: var(--color-accent-dark); }
.header-call { font-size: .83rem; white-space: nowrap; }
.mobile-menu-toggle, .mobile-nav, .mobile-menu-backdrop { display: none; }
#main-content { min-height: 16rem; }

.site-footer { margin-top: clamp(3rem, 6vw, 6rem); padding-top: clamp(2.5rem, 5vw, 4.5rem); background: linear-gradient(135deg, var(--color-primary-deep), #052c27); color: rgba(255,255,255,.82); }
.site-footer__grid { display: grid; grid-template-columns: 1.35fr .75fr 1fr .8fr; gap: clamp(2rem, 5vw, 4.5rem); padding-bottom: 3rem; }
.site-footer h2 { margin: 0 0 1rem; color: #fff; font-size: 1rem; }
.site-footer p { margin: 1rem 0 0; }
.brand--footer { color: #fff; }
.brand--footer .brand__logo { height: 4rem; }
.footer-links, .footer-details, .opening-hours { margin: 0; padding: 0; list-style: none; }
.footer-links a, .footer-details a, .site-footer__bottom a { color: rgba(255,255,255,.82); text-decoration: none; }
.footer-links a:hover, .footer-links a:focus-visible, .site-footer__bottom a:hover, .site-footer__bottom a:focus-visible { color: #fff; text-decoration: underline; }
.footer-details > div + div, .footer-links li + li { margin-top: .45rem; }
.footer-details dt { color: #fff; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.footer-details dd { margin: .1rem 0 0; }
.opening-status { white-space: nowrap; }
.opening-status__state { letter-spacing: .03em; }
.opening-status__state--open { color: #42d884; }
.opening-status__state--closed { color: #ff5a61; }
.opening-status__state--holiday { color: #fff; }
.opening-hours { margin-top: .8rem; font-size: .82rem; }
.opening-hours > div { display: flex; justify-content: space-between; gap: 1rem; }
.opening-hours > div + div { margin-top: .25rem; }
.opening-hours dd { margin: 0; white-space: nowrap; }
.site-footer .opening-status { display: block; margin-bottom: .5rem; color: #fff; }
.site-footer__bottom { min-height: 4.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; border-top: 1px solid rgba(255,255,255,.14); font-size: .82rem; }
.site-footer__bottom p { margin: 0; }
.site-footer__bottom nav, .footer-legal { display: flex; gap: 1.25rem; }
.footer-legal { color: rgba(255,255,255,.72); }
.mobile-contact-bar { display: none; }

/* Homepage */
.home-page { max-width: 100%; }
.home-section { padding-block: clamp(3.25rem, 6vw, 5.5rem); }
.home-section__title { margin: 0 0 1.8rem; font-size: clamp(1.8rem, 3vw, 2.55rem); line-height: 1.15; letter-spacing: -.035em; }
.home-section__title span, .home-hero h1 span { color: var(--color-primary); }
.brand-red { color: var(--color-accent); }
.brand-green { color: var(--color-primary); }
.eyebrow { margin: 0 0 1rem; color: var(--color-muted); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.home-hero { background: var(--color-background); }
.home-hero__grid { min-height: 27rem; display: grid; grid-template-columns: minmax(0, .9fr) minmax(26rem, 1.1fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); padding-block: clamp(3rem, 6vw, 5.25rem); }
.home-hero__content { max-width: 34rem; }
.home-hero h1 { max-width: 16ch; margin: 0; font-size: clamp(2.4rem, 4.5vw, 4rem); line-height: 1.04; letter-spacing: -.05em; }
.home-hero__intro { margin: 1.4rem 0 0; color: var(--color-muted); font-size: clamp(1rem, 1.5vw, 1.15rem); line-height: 1.65; }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 1.75rem; }
.home-hero__actions .site-button { min-height: 3.25rem; padding-inline: 1.25rem; }
.site-button svg, .business-banner .site-button svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.site-button--outline { border-color: var(--color-primary); background: var(--color-surface); color: var(--color-primary); }
.site-button--outline:hover { background: var(--color-primary-soft); }
.home-hero__visual { min-height: 20rem; display: grid; place-items: center; align-content: center; gap: 1rem; overflow: hidden; border: 1px dashed #a9c7b9; border-radius: 1.25rem; background: #edf3f0; color: var(--color-primary-dark); }
.home-hero__visual > span { font-size: .8rem; font-weight: 750; letter-spacing: .04em; }
.home-hero__device { width: min(80%, 28rem); fill: #d9e8e1; stroke: var(--color-primary); stroke-width: 3; }
.services-section { background: var(--color-surface); }
.services-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.service-card { min-height: 14rem; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); box-shadow: 0 8px 25px rgba(10,43,34,.06); }
.service-card__icon { width: 3rem; height: 3rem; display: grid; place-items: center; margin-bottom: 1.15rem; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary); }
.service-card__icon svg { width: 1.65rem; height: 1.65rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.service-card h3, .benefit-item h3, .review-card h3 { margin: 0; font-size: 1.05rem; line-height: 1.3; }
.service-card p, .benefit-item p, .review-card p { margin: .65rem 0 0; color: var(--color-muted); font-size: .92rem; line-height: 1.55; }
.benefits-section { padding-block: clamp(2.5rem, 4vw, 3.75rem); background: var(--color-background); }
.benefits-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.benefit-item { display: flex; align-items: center; gap: 1.15rem; padding: .75rem clamp(1rem, 3vw, 2.25rem); }
.benefit-item:first-child { padding-left: 0; }
.benefit-item + .benefit-item { border-left: 1px solid var(--color-border); }
.benefit-item__icon { width: 3.5rem; height: 3.5rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--color-primary); color: #fff; }
.benefit-item__icon svg { width: 2rem; height: 2rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.business-section { padding-block: clamp(3.25rem, 6vw, 5.5rem) 0; }
.home-store-promo { padding-top: clamp(3rem, 5vw, 4.5rem); }
.home-store-promo__card { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(1.5rem, 3vw, 2.25rem); border: 1px solid #cce5d8; border-radius: 1rem; background: var(--color-primary-soft); box-shadow: var(--shadow-soft); }
.home-store-promo__card h2 { margin: 0; font-size: clamp(1.55rem, 2.8vw, 2.15rem); line-height: 1.15; }
.home-store-promo__card p:not(.business-banner__label) { margin: .5rem 0 0; color: var(--color-muted); }
.home-store-promo__card .business-banner__label { color: var(--color-primary); }
.home-store-promo__card .site-button { flex: 0 0 auto; }
.business-banner { padding: clamp(2.5rem, 6vw, 5rem); border-radius: 1.25rem; background: var(--color-primary-deep); color: #fff; }
.business-banner__label { margin: 0 0 .55rem; color: #bce8d2; font-size: .8rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.business-banner h2 { max-width: 19ch; margin: 0; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.1; letter-spacing: -.04em; }
.business-banner > p:not(.business-banner__label) { max-width: 34rem; margin: 1rem 0 0; color: rgba(255,255,255,.82); font-size: 1.05rem; }
.site-button--light-outline { margin-top: 1.5rem; border-color: rgba(255,255,255,.8); color: #fff; }
.site-button--light-outline:hover { background: #fff; color: var(--color-primary-deep); }
.reviews-section { padding-bottom: 1rem; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.review-card { min-height: 10rem; display: flex; align-items: flex-start; gap: 1rem; padding: 1.4rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-background); }
.review-card__badge { width: 2.8rem; height: 2.8rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #64706d; color: #fff; font-weight: 800; }
.review-selector { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.review-controls { display: none; }

/* Repair landing page */
.repair-page { max-width: 100%; }
.repair-hero { background: var(--color-background); }
.repair-hero__grid { min-height: 16rem; display: grid; grid-template-columns: minmax(0, 1fr) minmax(22rem, .8fr); align-items: center; gap: clamp(2.5rem, 6vw, 5.5rem); padding-block: clamp(1.5rem, 3vw, 2.5rem); }
.repair-hero__content { max-width: 42rem; }
.repair-hero h1 { max-width: 17ch; margin: 0; font-size: clamp(2.3rem, 4vw, 3.6rem); line-height: 1.08; letter-spacing: -.045em; }
.repair-hero__content > p:not(.eyebrow) { max-width: 39rem; margin: 1.25rem 0 0; color: var(--color-muted); font-size: clamp(1rem, 1.5vw, 1.12rem); }
.repair-hero__actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 1.6rem; }
.repair-hero__actions .site-button { min-height: 3.2rem; padding-inline: 1.25rem; }
.repair-hero__actions svg, .repair-text-link svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.repair-hero__visual { min-width: 0; min-height: 12rem; display: grid; place-items: center; overflow: hidden; border: 1px dashed #a9c7b9; border-radius: 1.1rem; background: #edf3f0; color: var(--color-primary); }
.repair-hero__visual svg { width: min(78%, 24rem); fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }

/* Online quotation */
.quotation-section { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.quotation-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .42fr); align-items: start; gap: 1.5rem; }
.quotation-builder { min-width: 0; display: grid; gap: 1rem; }
.quotation-card, .quotation-summary { border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: var(--shadow-soft); }
.quotation-card { position: relative; padding: 1.5rem; }
.quotation-card > div:first-of-type { padding-left: 3rem; }
.quotation-card h2, .quotation-summary h2 { margin: 0; font-size: 1.25rem; }
.quotation-card p { margin: .25rem 0 0; color: var(--color-muted); }
.quotation-step { position: absolute; top: 1.45rem; left: 1.5rem; width: 2.25rem; height: 2.25rem; display: grid; place-items: center; border-radius: 50%; background: var(--color-primary); color: #fff; font-weight: 800; }
.quotation-select, .quotation-field input, .quotation-field textarea { width: 100%; min-height: 3rem; margin-top: 1.1rem; padding: .7rem .8rem; border: 1px solid #bdcbc5; border-radius: .65rem; background: #fff; color: var(--color-ink); }
.quotation-services { display: grid; gap: .7rem; margin-top: 1.2rem; }
.quotation-service { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .85rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: .75rem; cursor: pointer; }
.quotation-service:hover, .quotation-service:has(input:checked) { border-color: var(--color-primary); background: var(--color-primary-soft); }
.quotation-service input { width: 1.25rem; height: 1.25rem; accent-color: var(--color-primary); }
.quotation-service span { min-width: 0; }
.quotation-service strong, .quotation-service small { display: block; }
.quotation-service small { margin-top: .2rem; color: var(--color-muted); line-height: 1.4; }
.quotation-service b { color: var(--color-primary-dark); white-space: nowrap; }
.quotation-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.25rem; }
.quotation-field { min-width: 0; }
.quotation-field--wide { grid-column: 1 / -1; }
.quotation-field label { display: block; font-weight: 750; }
.quotation-field input, .quotation-field textarea { margin-top: .35rem; }
.quotation-field textarea { resize: vertical; }
.quotation-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.quotation-insurance-warning { margin: 1.25rem 0; padding: 1rem; border-left: 4px solid var(--color-accent); border-radius: .55rem; background: #fff3f3; }
.quotation-insurance-warning strong { color: var(--color-accent-dark); }
.quotation-insurance-warning p { margin: .35rem 0 0; }
.quotation-alert { padding: 1rem 1.15rem; border-radius: .75rem; }
.quotation-alert--error { border: 1px solid #efb7ba; background: #fff3f3; color: #751016; }
.quotation-alert ul { margin: .5rem 0 0; }
.quotation-summary { position: sticky; top: 1rem; padding: 1.35rem; }
.quotation-summary__empty { color: var(--color-muted); }
.quotation-summary ul { margin: 1rem 0; padding: 0; list-style: none; }
.quotation-summary li, .quotation-summary__totals p { display: flex; justify-content: space-between; gap: 1rem; }
.quotation-summary li { padding-block: .6rem; border-bottom: 1px solid var(--color-border); }
.quotation-summary li strong { white-space: nowrap; }
.quotation-summary__totals { border-top: 2px solid var(--color-primary); }
.quotation-summary__totals p:last-child { font-size: 1.05rem; }
.quotation-document-wrap { padding-block: 2rem; background: var(--color-background); }
.quotation-document-actions { display: flex; justify-content: flex-end; gap: .75rem; margin-bottom: 1rem; }
.quotation-document { position: relative; overflow: hidden; padding: clamp(2rem, 5vw, 4rem); border: 1px solid var(--color-border); background: #fff; box-shadow: var(--shadow-soft); }
.quotation-watermark { position: absolute; top: 48%; left: 50%; width: 115%; z-index: 0; transform: translate(-50%, -50%) rotate(-28deg); color: rgba(227,27,35,.085); font-size: clamp(2rem, 6vw, 5.5rem); font-weight: 900; line-height: 1.1; text-align: center; pointer-events: none; }
.quotation-document > *:not(.quotation-watermark) { position: relative; z-index: 1; }
.quotation-document__header { display: flex; justify-content: space-between; gap: 2rem; padding-bottom: 1.5rem; border-bottom: 3px solid var(--color-primary); }
.quotation-document__header img { width: auto; height: 5rem; object-fit: contain; }
.quotation-document__header h1 { margin: 0 0 .75rem; color: var(--color-primary-dark); }
.quotation-document dl, .quotation-document dd { margin: 0; }
.quotation-document dl > div { display: flex; gap: 1rem; }
.quotation-document dt { font-weight: 750; }
.quotation-document__parties { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.quotation-document section { margin-top: 1.75rem; }
.quotation-document h2 { margin: 0 0 .6rem; font-size: 1.15rem; }
.quotation-document p { margin: 0; }
.quotation-document__table { border: 1px solid var(--color-border); border-radius: .6rem; overflow: hidden; }
.quotation-document__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--color-border); }
.quotation-document__row:last-child { border-bottom: 0; }
.quotation-document__row--head { background: var(--color-primary-soft); font-weight: 800; }
.quotation-document__row small { display: block; color: var(--color-muted); }
.quotation-document__totals { width: min(100%, 28rem); margin-left: auto; }
.quotation-document__totals > div { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; }
.quotation-document__totals .quotation-total { margin-top: .35rem; padding-top: .75rem; border-top: 2px solid var(--color-primary); font-size: 1.15rem; }
.quotation-document footer { margin-top: 2rem; color: var(--color-muted); font-size: .85rem; }
.repair-section { padding-block: clamp(3rem, 5.5vw, 5rem); }
.repair-section__title { margin: 0 0 1.75rem; font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.15; letter-spacing: -.035em; }
.repair-section__intro { max-width: 50rem; margin: -1rem 0 2rem; color: var(--color-muted); }
.repair-section__title .brand-red { color: var(--color-accent); }
.repair-section__title .brand-green { color: var(--color-primary); }
.repair-categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.repair-category-card { min-height: 19rem; display: flex; flex-direction: column; align-items: flex-start; padding: clamp(1.5rem, 3vw, 2.25rem); border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: var(--shadow-soft); }
.repair-category-card__icon { width: 4rem; height: 4rem; display: grid; place-items: center; margin-bottom: 1.35rem; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary); }
.repair-category-card__icon svg { width: 2.2rem; height: 2.2rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.repair-category-card h3 { margin: 0; font-size: 1.45rem; line-height: 1.25; }
.repair-category-card p { max-width: 34rem; margin: .75rem 0 0; color: var(--color-muted); }
.repair-text-link { display: inline-flex; align-items: center; gap: .45rem; margin-top: auto; padding-top: 1.4rem; color: var(--color-primary); font-weight: 750; text-decoration: none; }
.repair-text-link:not([aria-disabled="true"]):hover { text-decoration: underline; }
.repair-problems { background: var(--color-background); }
.repair-checklist { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem 1.5rem; margin: 0; padding: 0; list-style: none; }
.repair-checklist li { min-height: 2.75rem; display: flex; align-items: center; gap: .7rem; font-weight: 650; }
.repair-checklist li::before { content: ""; width: 1.35rem; height: 1.35rem; flex: 0 0 auto; border-radius: 50%; background-color: var(--color-primary); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 8 2.5 2.5L12 5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-size: 100%; }
.repair-process { padding-bottom: clamp(2.75rem, 5vw, 4.5rem); }
.repair-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.repair-steps li { display: flex; align-items: flex-start; gap: 1rem; padding-right: 1rem; }
.repair-steps li > span { width: 2.75rem; height: 2.75rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--color-primary); color: #fff; font-size: 1.1rem; font-weight: 800; }
.repair-steps h3 { margin: .2rem 0 0; font-size: 1.1rem; line-height: 1.3; }
.repair-steps p { margin: .55rem 0 0; color: var(--color-muted); font-size: .94rem; }
.repair-callout-section { padding-bottom: clamp(3rem, 5vw, 4.5rem); }
.repair-callout { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.35rem; padding: clamp(1.5rem, 3vw, 2.25rem); border: 1px solid #cce5d8; border-radius: 1rem; background: var(--color-primary-soft); }
.repair-callout__icon { width: 3.5rem; height: 3.5rem; display: grid; place-items: center; border-radius: 50%; background: var(--color-surface); color: var(--color-primary); }
.repair-callout__icon svg { width: 2rem; height: 2rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.repair-callout h2 { margin: 0; font-size: clamp(1.35rem, 2.4vw, 1.8rem); line-height: 1.2; }
.repair-callout p { margin: .45rem 0 0; color: var(--color-muted); }
.repair-callout .site-button { margin: 0; white-space: nowrap; }
.repair-final-cta { background: var(--color-primary-deep); color: #fff; }
.repair-final-cta__inner { min-height: 12rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 2.5rem; }
.repair-final-cta h2 { margin: 0; font-size: clamp(1.9rem, 3vw, 2.6rem); line-height: 1.15; }
.repair-final-cta p { margin: .45rem 0 0; color: rgba(255,255,255,.82); font-size: 1.05rem; }
.repair-final-cta__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .8rem; }
.repair-final-cta .site-button--light-outline { margin-top: 0; }
.device-types { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.device-type-card { min-height: 13rem; display: flex; align-items: flex-start; gap: 1.25rem; padding: clamp(1.5rem, 3vw, 2.1rem); border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: 0 8px 25px rgba(10,43,34,.06); }
.device-type-card__icon { width: 3.75rem; height: 3.75rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary); }
.device-type-card__icon svg { width: 2rem; height: 2rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.device-type-card h2, .device-type-card h3 { margin: .15rem 0 0; font-size: 1.35rem; line-height: 1.25; }
.device-type-card p { margin: .7rem 0 0; color: var(--color-muted); }
.device-problem-list li { min-width: 0; overflow-wrap: anywhere; }
.tariffs-section { background: var(--color-background); }
.tariff-group + .tariff-group { margin-top: 1.5rem; }
.tariff-group > h3 { margin: 0 0 .75rem; color: var(--color-primary-dark); font-size: 1.3rem; }
.tariff-list { overflow: hidden; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: 0 8px 25px rgba(10,43,34,.05); }
.tariff-row { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; padding: 1.1rem 1.25rem; }
.tariff-row + .tariff-row { border-top: 1px solid var(--color-border); }
.tariff-row__content { min-width: 0; }
.tariff-row h3, .tariff-row h4 { margin: 0; font-size: 1rem; line-height: 1.35; }
.tariff-row p { margin: .3rem 0 0; color: var(--color-muted); font-size: .92rem; overflow-wrap: anywhere; }
.tariff-row__price { color: var(--color-primary-dark); font-size: 1rem; white-space: nowrap; }
.tariff-note { margin-top: 1.5rem; padding: 1.25rem 1.4rem; border-left: .25rem solid var(--color-primary); border-radius: .25rem .75rem .75rem .25rem; background: var(--color-primary-soft); }
.tariff-note h3 { margin: 0; font-size: 1.05rem; }
.tariff-note p { margin: .35rem 0 0; color: var(--color-muted); }
.tariff-message { padding: 1rem 1.25rem; border: 1px solid #ebc6c6; border-radius: .75rem; background: #fff5f5; color: #8b1f24; }
.recovery-media-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.recovery-media-card { min-width: 0; padding: 1.4rem; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: 0 8px 25px rgba(10,43,34,.05); }
.recovery-media-card__icon { width: 3.25rem; height: 3.25rem; display: grid; place-items: center; margin-bottom: 1rem; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary); }
.recovery-media-card__icon svg { width: 1.8rem; height: 1.8rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.recovery-media-card h3 { margin: 0; font-size: 1.1rem; line-height: 1.3; }
.recovery-media-card p { margin: .55rem 0 0; color: var(--color-muted); font-size: .92rem; }
.recovery-notice-section { padding-block: clamp(1rem, 2.5vw, 2rem) clamp(3rem, 5vw, 4.5rem); }
.recovery-warning { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.25rem; padding: clamp(1.4rem, 3vw, 2rem); border: 1px solid #e3b8ba; border-left: .35rem solid var(--color-accent); border-radius: 1rem; background: #fff8f8; box-shadow: 0 8px 25px rgba(10,43,34,.04); }
.recovery-warning__icon { width: 2.75rem; height: 2.75rem; display: grid; place-items: center; border-radius: 50%; background: var(--color-accent); color: #fff; font-size: 1.35rem; font-weight: 850; }
.recovery-warning h2, .recovery-advice h2 { margin: 0; font-size: clamp(1.3rem, 2.3vw, 1.7rem); line-height: 1.25; }
.recovery-warning p { margin: .65rem 0 0; color: var(--color-muted); }
.recovery-advice-section { padding-block: 0 clamp(3rem, 5vw, 4.5rem); background: var(--color-background); }
.recovery-advice { padding: 1.4rem 1.6rem; border-left: .3rem solid var(--color-primary); border-radius: .35rem 1rem 1rem .35rem; background: var(--color-primary-soft); }
.recovery-advice p { margin: .5rem 0 0; color: var(--color-muted); }
.data-recovery-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.windows-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.windows-service-card { min-width: 0; display: flex; align-items: flex-start; gap: 1.1rem; padding: clamp(1.4rem, 3vw, 1.9rem); border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: 0 8px 25px rgba(10,43,34,.05); }
.windows-service-card__icon { width: 2.8rem; height: 2.8rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--color-primary); color: #fff; font-weight: 800; }
.windows-service-card h3 { margin: .1rem 0 0; font-size: 1.2rem; line-height: 1.3; }
.windows-service-card p { margin: .6rem 0 0; color: var(--color-muted); }
.windows-service-card__note { padding-top: .6rem; border-top: 1px solid var(--color-border); font-size: .92rem; font-weight: 650; }
.windows-license-section { padding-block: 0 clamp(3rem, 5vw, 4.5rem); }
.windows-license-info { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.2rem; padding: clamp(1.4rem, 3vw, 1.9rem); border: 1px solid #cce5d8; border-radius: 1rem; background: var(--color-primary-soft); }
.windows-license-info__icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 50%; background: var(--color-surface); color: var(--color-primary); }
.windows-license-info__icon svg { width: 1.8rem; height: 1.8rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.windows-license-info h2 { margin: 0; font-size: clamp(1.3rem, 2.3vw, 1.7rem); line-height: 1.25; }
.windows-license-info p { margin: .6rem 0 0; color: var(--color-muted); }
.windows-service-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.home-service-intro__inner { max-width: 55rem; }
.home-service-intro__inner > p { color: var(--color-muted); font-size: 1.02rem; }
.home-service-intro__inner > p + p { margin-top: .75rem; }
.home-audience-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.home-audience-card { min-width: 0; display: flex; align-items: flex-start; gap: 1rem; padding: 1.4rem; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: 0 8px 25px rgba(10,43,34,.05); }
.home-audience-card > span { width: 2.8rem; height: 2.8rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--color-primary); color: #fff; font-weight: 800; }
.home-audience-card h3 { margin: .1rem 0 0; font-size: 1.15rem; }
.home-audience-card p { margin: .5rem 0 0; color: var(--color-muted); font-size: .92rem; }
.home-help-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; margin: 0; padding: 0; list-style: none; }
.home-help-grid li { min-width: 0; min-height: 4rem; display: flex; align-items: center; gap: .7rem; padding: .85rem 1rem; border: 1px solid var(--color-border); border-radius: .75rem; background: var(--color-surface); font-weight: 650; overflow-wrap: anywhere; }
.home-help-grid li::before { content: ""; width: .7rem; height: .7rem; flex: 0 0 auto; border-radius: 50%; background: var(--color-primary); }
.home-travel-section { padding-block: 0 clamp(3rem, 5vw, 4.5rem); }
.home-travel-info { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.2rem; padding: clamp(1.4rem, 3vw, 1.9rem); border: 1px solid #b9dfcc; border-left: .35rem solid var(--color-primary); border-radius: 1rem; background: var(--color-primary-soft); }
.home-travel-info__icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 50%; background: var(--color-primary); color: #fff; }
.home-travel-info__icon svg { width: 1.8rem; height: 1.8rem; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.home-travel-info h2 { margin: 0; font-size: clamp(1.3rem, 2.3vw, 1.7rem); line-height: 1.25; }
.home-travel-info p { margin: .55rem 0 0; color: var(--color-muted); }
.home-service-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.business-solutions-section { scroll-margin-top: 6rem; }
.business-solutions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.business-solution-card { min-width: 0; min-height: 19rem; display: flex; flex-direction: column; align-items: flex-start; padding: clamp(1.5rem, 3vw, 2rem); border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: var(--shadow-soft); }
.business-solution-card__icon { width: 3.75rem; height: 3.75rem; display: grid; place-items: center; margin-bottom: 1.25rem; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary); }
.business-solution-card__icon svg { width: 2rem; height: 2rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.business-solution-card h3 { margin: 0; font-size: 1.35rem; line-height: 1.25; }
.business-solution-card p { margin: .75rem 0 0; color: var(--color-muted); }
.business-custom-section { padding-block: clamp(1rem, 2vw, 2rem) clamp(3rem, 6vw, 5rem); }
.business-custom-panel { padding: clamp(2rem, 5vw, 4rem); border-radius: 1.25rem; background: var(--color-primary-deep); color: #fff; }
.business-custom-panel__label { margin: 0 0 .55rem; color: #bce8d2; font-size: .8rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.business-custom-panel h2 { max-width: 24ch; margin: 0; font-size: clamp(1.9rem, 3.5vw, 2.8rem); line-height: 1.15; }
.business-custom-panel > p:not(.business-custom-panel__label) { max-width: 52rem; margin: .9rem 0 0; color: rgba(255,255,255,.84); }
.business-process-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.business-contact-point { background: var(--color-background); }
.business-contact-point__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, .8fr); align-items: center; gap: clamp(2rem, 6vw, 5rem); }
.business-contact-point__grid .repair-section__title { margin-bottom: .8rem; }
.business-contact-point__grid p { max-width: 40rem; margin: 0; color: var(--color-muted); }
.business-example-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.business-example-list li { min-width: 0; display: flex; align-items: center; gap: .65rem; padding: .9rem 1rem; border: 1px solid var(--color-border); border-radius: .75rem; background: var(--color-surface); font-weight: 650; overflow-wrap: anywhere; }
.business-example-list li::before { content: ""; width: .7rem; height: .7rem; flex: 0 0 auto; border-radius: 50%; background: var(--color-primary); }
.software-possibilities-section { scroll-margin-top: 6rem; }
.software-text-column { max-width: 54rem; }
.software-text-column > p { margin: .75rem 0 0; color: var(--color-muted); font-size: 1.02rem; }
.software-possibilities-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.software-possibility-card { min-width: 0; display: flex; align-items: flex-start; gap: 1rem; padding: 1.35rem; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: 0 8px 25px rgba(10,43,34,.05); }
.software-possibility-card > span { width: 3.2rem; height: 3.2rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary); }
.software-possibility-card svg { width: 1.75rem; height: 1.75rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.software-possibility-card h3 { margin: .1rem 0 0; font-size: 1.1rem; line-height: 1.3; }
.software-possibility-card p { margin: .5rem 0 0; color: var(--color-muted); font-size: .92rem; }
.software-example-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.software-example-grid li { min-width: 0; display: flex; align-items: center; gap: .6rem; padding: .85rem .9rem; border: 1px solid var(--color-border); border-radius: .75rem; background: var(--color-surface); font-size: .92rem; font-weight: 650; overflow-wrap: anywhere; }
.software-example-grid li::before { content: ""; width: .65rem; height: .65rem; flex: 0 0 auto; border-radius: 50%; background: var(--color-primary); }
.software-why-section { background: var(--color-background); }
.software-benefits-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.software-benefits-grid article { padding: 1.35rem; border-left: .25rem solid var(--color-primary); border-radius: .25rem .85rem .85rem .25rem; background: var(--color-surface); }
.software-benefits-grid h3 { margin: 0; font-size: 1.1rem; }
.software-benefits-grid p { margin: .5rem 0 0; color: var(--color-muted); font-size: .92rem; }
.software-process-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.software-process-steps li { min-width: 0; }
.software-process-steps li > span { width: 2.75rem; height: 2.75rem; display: grid; place-items: center; margin-bottom: .85rem; border-radius: 50%; background: var(--color-primary); color: #fff; font-weight: 800; }
.software-process-steps h3 { margin: 0; font-size: 1.05rem; line-height: 1.3; }
.software-process-steps p { margin: .5rem 0 0; color: var(--color-muted); font-size: .9rem; }
.software-price-section { padding-block: 0 clamp(3rem, 6vw, 5rem); }
.software-price-info { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.2rem; padding: clamp(1.5rem, 3vw, 2rem); border: 1px solid #cce5d8; border-left: .35rem solid var(--color-primary); border-radius: 1rem; background: var(--color-primary-soft); }
.software-price-info > span { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 50%; background: var(--color-primary); color: #fff; font-size: 1.25rem; font-weight: 800; }
.software-price-info h2 { margin: 0; font-size: clamp(1.35rem, 2.4vw, 1.8rem); }
.software-price-info p { margin: .55rem 0 0; color: var(--color-muted); }
.software-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.software-related-card { min-width: 0; display: flex; flex-direction: column; gap: .35rem; padding: 1.35rem; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); color: var(--color-ink); text-decoration: none; box-shadow: 0 8px 25px rgba(10,43,34,.05); }
.software-related-card span { font-weight: 800; }
.software-related-card small { color: var(--color-muted); }
.software-related-card--all { border-color: var(--color-primary); color: var(--color-primary-dark); }
.software-related-card--all:hover, .software-related-card--all:focus-visible { background: var(--color-primary-soft); }
.web-main-services { scroll-margin-top: 6rem; }
.web-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.web-service-card { min-width: 0; padding: 1.6rem; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: var(--shadow-soft); }
.web-service-card > span { color: var(--color-primary); font-size: .8rem; font-weight: 850; letter-spacing: .12em; }
.web-service-card h3 { margin: .4rem 0 0; font-size: 1.4rem; }
.web-service-card p { margin: .65rem 0 0; color: var(--color-muted); font-size: .93rem; }
.web-service-card ul { display: grid; gap: .35rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.web-service-card li { display: flex; gap: .55rem; font-size: .9rem; }
.web-service-card li::before { content: ""; width: .55rem; height: .55rem; flex: 0 0 auto; margin-top: .42rem; border-radius: 50%; background: var(--color-primary); }
.web-service-card__note { padding-top: .7rem; border-top: 1px solid var(--color-border); font-weight: 650; }
.web-connection-grid, .web-responsive-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .65fr); align-items: center; gap: clamp(2rem, 6vw, 5rem); }
.web-flow { display: grid; justify-items: stretch; gap: .45rem; text-align: center; }
.web-flow span { padding: .9rem 1rem; border: 1px solid var(--color-border); border-radius: .75rem; background: var(--color-surface); font-weight: 750; box-shadow: 0 8px 20px rgba(10,43,34,.04); }
.web-flow b { color: var(--color-primary); font-size: 1.25rem; }
.web-responsive-section { background: var(--color-background); }
.web-responsive-grid .repair-section__title { margin-bottom: .75rem; }
.web-responsive-grid p { margin: 0; color: var(--color-muted); }
.web-device-icons { color: var(--color-primary); }
.web-device-icons svg { width: min(100%, 20rem); fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.web-integrated-teaser { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 1.25rem; padding: 1.35rem; border: 1px solid #cce5d8; border-radius: 1rem; background: var(--color-primary-soft); }
.web-integrated-teaser h3 { margin: 0; font-size: 1.15rem; }
.web-integrated-teaser p { max-width: 50rem; margin: .45rem 0 0; color: var(--color-muted); font-size: .92rem; }
.web-integrated-teaser .site-button { flex: 0 0 auto; }
.system-components-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.system-components-grid article { min-width: 0; padding: 1.35rem; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: var(--shadow-soft); }
.system-components-grid article>span { color: var(--color-primary); font-weight: 850; }
.system-components-grid h3 { margin: .35rem 0 0; font-size: 1.2rem; }.system-components-grid p,.system-components-grid small { color: var(--color-muted); font-size: .9rem; }.system-components-grid ul { padding-left: 1.1rem; font-size: .88rem; }
.system-integration-section { scroll-margin-top: 6rem; background: var(--color-primary-deep); color: #fff; }
.system-integration-grid { display:grid; grid-template-columns:minmax(25rem,1fr) minmax(0,1fr); align-items:center; gap:3rem; }.system-integration-copy p{color:rgba(255,255,255,.84)}
.system-diagram { display:grid; justify-items:center; }.system-node { padding:.85rem 1rem; border:1px solid rgba(255,255,255,.55); border-radius:.75rem; background:rgba(255,255,255,.1); text-align:center; font-weight:750; }.system-node small{display:block;margin-top:.25rem;color:rgba(255,255,255,.75)}.system-node--database{background:#fff;color:var(--color-primary-deep)}.system-line{width:2px;height:2rem;background:#fff}.system-branches{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;position:relative}.system-branches:before{content:"";position:absolute;top:-1rem;left:16.66%;right:16.66%;height:1rem;border-top:2px solid #fff;border-left:2px solid #fff;border-right:2px solid #fff}
.system-two-column,.system-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.system-two-column p,.system-detail-grid p{color:var(--color-muted)}.system-highlight{padding:1.5rem;border-left:.3rem solid var(--color-primary);border-radius:.3rem 1rem 1rem .3rem;background:var(--color-primary-soft)}.system-highlight h3,.system-detail-grid h2{margin:0;font-size:1.4rem}
.system-process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin:0;padding:0;list-style:none}.system-process-steps li{padding:1.2rem;border:1px solid var(--color-border);border-radius:.85rem}.system-process-steps span{width:2.4rem;height:2.4rem;display:grid;place-items:center;border-radius:50%;background:var(--color-primary);color:#fff;font-weight:800}.system-process-steps h3{margin:.75rem 0 0;font-size:1.05rem}.system-process-steps p{margin:.45rem 0 0;color:var(--color-muted);font-size:.9rem}

.about-hero__brand { min-height: 18rem; display: grid; place-items: center; padding: clamp(2rem,5vw,4rem); border: 1px solid var(--color-border); border-radius: var(--radius-large); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.about-hero__brand img { width: min(100%,25rem); height: auto; }
.about-copy { max-width: 58rem; }
.about-copy p { color: var(--color-muted); font-size: 1.02rem; }
.about-sides-section, .about-audiences-section { background: var(--color-background); }
.about-sides-grid, .about-audiences-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
.about-side-card { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; padding: clamp(1.4rem,3vw,2rem); border: 1px solid var(--color-border); border-top: .3rem solid var(--color-primary); border-radius: 1rem; background: var(--color-surface); box-shadow: var(--shadow-soft); }
.about-side-card--business { border-top-color: var(--color-accent); }
.about-side-card h3 { margin: 0; font-size: clamp(1.35rem,2.5vw,1.7rem); }
.about-side-card > p:not(.eyebrow) { color: var(--color-muted); }
.about-side-card ul { display: grid; gap: .45rem; margin: .5rem 0 1.5rem; padding: 0; list-style: none; }
.about-side-card li { display: flex; gap: .6rem; }
.about-side-card li::before { content: ""; width: .55rem; height: .55rem; flex: 0 0 auto; margin-top: .45rem; border-radius: 50%; background: var(--color-primary); }
.about-side-card .site-button { margin-top: auto; }
.about-approach-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.about-approach-grid article { padding: 1.25rem; border-left: .25rem solid var(--color-primary); border-radius: .25rem .85rem .85rem .25rem; background: var(--color-surface); }
.about-approach-grid h3, .about-audiences-grid h3 { margin: 0; font-size: 1.1rem; }
.about-approach-grid p, .about-audiences-grid p { margin: .5rem 0 0; color: var(--color-muted); font-size: .92rem; }
.about-audiences-grid article { padding: 1.4rem; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); }
.about-local-panel { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(1.5rem,3vw,2rem); border: 1px solid #cce5d8; border-radius: 1rem; background: var(--color-primary-soft); }
.about-local-panel .repair-section__title { margin-bottom: .5rem; }
.about-local-panel p { max-width: 50rem; margin: 0; color: var(--color-muted); }
.about-local-panel .site-button { flex: 0 0 auto; }
.about-links-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; }
.about-links-grid a { min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: .75rem; background: var(--color-surface); color: var(--color-ink); font-weight: 700; text-decoration: none; box-shadow: 0 8px 20px rgba(10,43,34,.04); }
.about-links-grid a:hover, .about-links-grid a:focus-visible { border-color: var(--color-primary); color: var(--color-primary-dark); background: var(--color-primary-soft); }

.contact-hero__card { min-width: 0; display: grid; justify-items: start; align-content: center; gap: .75rem; padding: clamp(1.5rem,4vw,3rem); border: 1px solid var(--color-border); border-radius: var(--radius-large); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.contact-hero__card img { width: min(100%,22rem); height: auto; margin-bottom: .5rem; }
.contact-hero__card address { font-style: normal; font-weight: 700; }
.contact-hero__card a { color: var(--color-primary-dark); overflow-wrap: anywhere; }
.contact-main-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(19rem,.75fr); align-items: start; gap: 1.5rem; }
.contact-form-card, .contact-info-card { min-width: 0; padding: clamp(1.35rem,3vw,2rem); border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: var(--shadow-soft); }
.contact-form-card .repair-section__title { margin-bottom: 1.5rem; }
.contact-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.contact-field { min-width: 0; display: grid; gap: .4rem; }
.contact-field--wide { grid-column: 1 / -1; }
.contact-field .contact-form-label { display: inline-flex; align-items: center; align-self: start; gap: 7px; min-width: 0; font-weight: 750; line-height: 1.35; }
.contact-form-label .form-label-icon, .contact-info-card .contact-info-icon, .contact-info-card .section-heading-icon { display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.contact-form-label .form-label-icon { width: 17px; height: 17px; max-width: 17px; max-height: 17px; flex: 0 0 17px; color: var(--color-primary); }
.contact-info-card .contact-info-icon { width: 19px; height: 19px; max-width: 19px; max-height: 19px; flex: 0 0 19px; color: var(--color-primary); }
.contact-info-card .section-heading-icon { width: 20px; height: 20px; max-width: 20px; max-height: 20px; flex: 0 0 20px; color: var(--color-primary); }
.contact-section-heading { display: flex; align-items: center; gap: .55rem; }
.contact-field input, .contact-field select, .contact-field textarea { width: 100%; min-width: 0; padding: .8rem .9rem; border: 1px solid #bdc9c4; border-radius: .65rem; background: #fff; color: var(--color-ink); font: inherit; }
.contact-field input::placeholder, .contact-field textarea::placeholder { color: #7b8582; opacity: 1; }
.contact-field textarea { min-height: 10rem; resize: vertical; }
.contact-field input:focus, .contact-field select:focus, .contact-field textarea:focus { border-color: var(--color-primary); outline: .2rem solid rgba(8,122,70,.16); }
.contact-required-note { color: var(--color-muted); font-size: .85rem; }
.contact-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.contact-form-message { margin-bottom: 1.25rem; padding: 1rem; border-radius: .7rem; }
.contact-form-message ul { margin: .5rem 0 0; padding-left: 1.25rem; }
.contact-form-message--success { border: 1px solid #8bc5a8; background: var(--color-primary-soft); color: var(--color-primary-dark); }
.contact-form-message--error { border: 1px solid #e0a3a3; background: #fff2f2; color: #8b1717; }
.contact-sidebar { display: grid; gap: 1rem; }
.contact-info-card h2 { margin: 0 0 1rem; font-size: 1.3rem; }
.contact-info-card dl, .contact-opening-hours { display: grid; gap: .8rem; margin: 0; }
.contact-info-card dl > div { min-width: 0; padding-bottom: .8rem; border-bottom: 1px solid var(--color-border); }
.contact-info-card dl > div:last-child { padding-bottom: 0; border-bottom: 0; }
.contact-info-card dt { display: flex; align-items: center; gap: .45rem; color: var(--color-muted); font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.contact-info-card dd { margin: .25rem 0 0; font-weight: 650; }
.contact-info-card a { color: var(--color-primary-dark); overflow-wrap: anywhere; }
.contact-breakable { overflow-wrap: anywhere; }
.contact-hours-card .opening-status { display: block; margin: -.2rem 0 1rem; }
.contact-opening-hours > div { display: flex; justify-content: space-between; gap: 1rem; }
.contact-opening-hours dt { color: var(--color-ink); font-size: .9rem; font-weight: 650; letter-spacing: 0; text-transform: none; }
.contact-opening-hours dd { margin: 0; color: var(--color-muted); font-size: .9rem; font-weight: 600; white-space: nowrap; }
.contact-location-section { background: var(--color-background); }
.contact-location-copy { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 1.25rem; }
.contact-location-copy .repair-section__title { margin-bottom: .5rem; }
.contact-location-copy p { margin: 0; color: var(--color-muted); }
.contact-location-copy address { margin-top: .75rem; font-style: normal; font-weight: 700; }
.contact-location-copy .site-button { flex: 0 0 auto; }
.contact-map { position: relative; min-height: 24rem; overflow: hidden; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); }
.contact-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.quick-contact-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; }
.quick-contact-grid a { min-width: 0; display: flex; flex-direction: column; gap: .3rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: .8rem; background: var(--color-surface); color: var(--color-ink); text-decoration: none; box-shadow: 0 8px 20px rgba(10,43,34,.04); }
.quick-contact-grid a:hover, .quick-contact-grid a:focus-visible { border-color: var(--color-primary); background: var(--color-primary-soft); }
.quick-contact-grid strong { color: var(--color-primary-dark); }
.quick-contact-grid span { color: var(--color-muted); font-size: .88rem; overflow-wrap: anywhere; }

.error-page { max-width: 100%; }
.error-page__hero { background: var(--color-background); }
.error-page__inner { min-height: 25rem; display: flex; align-items: flex-start; justify-content: center; flex-direction: column; padding-block: clamp(3.5rem,8vw,7rem); }
.error-page__code { margin: 0 0 .4rem; color: var(--color-accent); font-size: .85rem; font-weight: 850; letter-spacing: .16em; }
.error-page h1 { max-width: 18ch; margin: 0; font-size: clamp(2.4rem,5vw,4.25rem); line-height: 1.05; letter-spacing: -.045em; }
.error-page__inner > p:not(.error-page__code) { max-width: 43rem; margin: 1.15rem 0 0; color: var(--color-muted); font-size: clamp(1rem,1.5vw,1.12rem); }
.error-page__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.error-help-card { padding: clamp(1.4rem,3vw,2rem); border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: var(--shadow-soft); }
.error-help-card .repair-section__title { margin-bottom: 1.25rem; }
.error-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.error-links a { min-width: 0; padding: .9rem 1rem; border: 1px solid var(--color-border); border-radius: .7rem; background: var(--color-background); color: var(--color-ink); font-weight: 700; text-decoration: none; }
.error-links a:hover, .error-links a:focus-visible { border-color: var(--color-primary); background: var(--color-primary-soft); color: var(--color-primary-dark); }

@media (max-width: 68rem) {
    .desktop-nav, .header-call { display: none; }
    .header-main { min-height: 4.7rem; justify-content: space-between; }
    .mobile-menu-toggle {
        width: 2.9rem; height: 2.9rem; display: grid; align-content: center; gap: .3rem;
        padding: .65rem; border: 0; border-radius: var(--radius-small);
        background: transparent; color: var(--color-ink); cursor: pointer;
    }
    .mobile-menu-toggle span { width: 100%; height: 2px; background: currentColor; border-radius: 2px; }
    .mobile-menu-toggle:hover, .mobile-menu-toggle:focus-visible { background: var(--color-primary-soft); color: var(--color-primary-dark); }
    .mobile-menu-backdrop { position: fixed; inset: 0; z-index: 105; display: block; background: rgba(4,20,16,.58); }
    .mobile-nav {
        position: fixed; top: 0; right: 0; z-index: 110; width: min(88vw, 25rem); height: 100vh; height: 100dvh;
        display: block; overflow-y: auto; overscroll-behavior: contain; background: var(--color-surface);
        box-shadow: -18px 0 45px rgba(0,0,0,.16);
    }
    .mobile-nav__header { min-height: 4.75rem; display: flex; align-items: center; justify-content: space-between; padding: 0 1.25rem; border-bottom: 1px solid var(--color-border); }
    .mobile-nav__title { color: var(--color-primary-dark); font-size: 1.15rem; font-weight: 800; }
    .mobile-nav__close { width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: var(--color-background); color: var(--color-ink); font-size: 1.75rem; line-height: 1; cursor: pointer; }
    .mobile-nav__list, .mobile-submenu { margin: 0; padding: 0; list-style: none; }
    .mobile-nav__list { padding: .75rem 1.25rem 2rem; }
    .mobile-nav__list > li { border-bottom: 1px solid var(--color-border); }
    .mobile-nav__link { width: 100%; min-height: 3.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .3rem; border: 0; background: transparent; color: var(--color-ink); font-weight: 750; text-align: left; text-decoration: none; cursor: pointer; }
    .mobile-nav__link.is-current, .mobile-nav__link:hover, .mobile-nav__link:focus-visible { color: var(--color-primary); }
    .mobile-nav__row { display: grid; grid-template-columns: minmax(0, 1fr) 3.25rem; align-items: stretch; }
    .mobile-nav__row .mobile-nav__link { justify-content: flex-start; }
    .mobile-submenu-toggle--arrow { display: grid; place-items: center; border: 0; background: transparent; color: var(--color-ink); cursor: pointer; }
    .mobile-submenu-toggle--arrow:hover, .mobile-submenu-toggle--arrow:focus-visible { background: var(--color-primary-soft); color: var(--color-primary); }
    .mobile-submenu { padding: 0 0 .75rem .8rem; }
    .mobile-submenu a { display: block; padding: .6rem .5rem; border-radius: .4rem; color: var(--color-muted); font-size: .92rem; font-weight: 600; text-decoration: none; }
    .mobile-submenu a:hover, .mobile-submenu a:focus-visible { background: var(--color-primary-soft); color: var(--color-primary-dark); }
    .site-footer__grid { grid-template-columns: repeat(2, 1fr); }
    .home-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(20rem, .85fr); gap: 2rem; }
    .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-card { min-height: 12rem; }
    .benefits-grid { grid-template-columns: 1fr; gap: 1rem; }
    .benefit-item, .benefit-item:first-child { padding: .75rem 0; }
    .benefit-item + .benefit-item { border-top: 1px solid var(--color-border); border-left: 0; }
    .repair-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(18rem, .7fr); gap: 2rem; }
    .repair-checklist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .repair-steps { grid-template-columns: 1fr; gap: 1.5rem; }
    .repair-callout { grid-template-columns: auto minmax(0, 1fr); }
    .repair-callout .site-button { grid-column: 2; justify-self: start; }
    .device-problem-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .recovery-media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .data-recovery-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .windows-service-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-audience-grid { grid-template-columns: 1fr; }
    .home-help-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-service-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .business-solutions-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .business-solution-card:last-child { grid-column: 1 / -1; }
    .business-process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .business-contact-point__grid { grid-template-columns: 1fr; }
    .software-possibilities-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .software-example-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .software-process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .software-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .software-related-card--all { grid-column: 1 / -1; }
    .web-service-grid { grid-template-columns: 1fr; }
    .web-service-card { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: .75rem; }
    .web-service-card > span { grid-row: 1; }
    .web-service-card h3 { grid-row: 1; margin-top: 0; }
    .web-service-card > p, .web-service-card > ul { grid-column: 1 / -1; }
    .system-components-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.system-integration-grid{grid-template-columns:1fr}.system-process-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
    .about-approach-grid, .about-links-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .contact-main-grid { grid-template-columns: 1fr; }
    .contact-sidebar { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .contact-hours-card { grid-column: 1 / -1; }
    .quick-contact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .error-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 42rem) {
    :root { --mobile-contact-height: 4.25rem; }
    body { padding-bottom: var(--mobile-contact-height); }
    .site-container { width: min(calc(100% - 1.5rem), var(--container-width)); }
    .trust-bar { display: block; font-size: .7rem; }
    .trust-bar__inner { min-height: 2.15rem; flex-wrap: wrap; justify-content: center; gap: .25rem .75rem; padding-block: .25rem; }
    .trust-bar .opening-status { padding: .12rem .5rem; }
    .header-main { min-height: 4.5rem; }
    .brand__logo { height: 2.75rem; }
    .brand--footer .brand__logo { height: 3.75rem; }
    .site-footer { margin-top: 3.5rem; padding-top: 2.75rem; }
    .site-footer__grid { grid-template-columns: 1fr; gap: 2.25rem; }
    .site-footer__bottom { align-items: flex-start; flex-direction: column; padding-block: 1.25rem; }
    .site-footer__bottom nav, .footer-legal { flex-wrap: wrap; }
    .mobile-contact-bar {
        position: fixed; right: 0; bottom: 0; left: 0; z-index: 90;
        height: var(--mobile-contact-height); display: grid; grid-template-columns: repeat(3, 1fr);
        padding-bottom: env(safe-area-inset-bottom); border-top: 1px solid var(--color-border);
        background: rgba(255,255,255,.97); box-shadow: 0 -8px 24px rgba(10,43,34,.09); backdrop-filter: blur(10px);
    }
    .mobile-contact-bar__item { min-height: 2.75rem; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: .12rem; padding: .25rem .15rem; color: var(--color-primary); font-size: .7rem; font-weight: 700; line-height: 1.15; text-align: center; text-decoration: none; }
    .mobile-contact-bar__item .icon { width: 1.3rem; height: 1.3rem; }
    .home-section { padding-block: 3.5rem; }
    .home-section__title { margin-bottom: 1.35rem; font-size: 1.8rem; }
    .eyebrow { display: none; }
    .home-hero__grid { min-height: auto; grid-template-columns: 1fr; gap: 1.75rem; padding-block: 2.25rem 2.5rem; }
    .home-hero h1 { max-width: 15ch; font-size: clamp(2.15rem, 10.5vw, 3rem); }
    .home-hero__intro { margin-top: 1.1rem; font-size: 1rem; }
    .home-hero__actions { display: grid; grid-template-columns: 1fr; gap: .7rem; margin-top: 1.35rem; }
    .home-hero__actions .site-button { width: 100%; min-height: 3.2rem; border-radius: .7rem; }
    .home-hero__visual { width: 100%; min-width: 0; min-height: 13.5rem; margin-top: .15rem; border-radius: var(--radius-medium); }
    .home-hero__device { width: min(84%, 22rem); }
    .services-grid { grid-template-columns: 1fr; gap: .875rem; }
    .service-card { min-height: auto; display: grid; grid-template-columns: 3rem minmax(0, 1fr); column-gap: 1.05rem; padding: 1.2rem 1.1rem; }
    .service-card__icon { grid-row: 1 / span 2; margin: 0; }
    .service-card h3 { align-self: end; }
    .service-card p { align-self: start; margin-top: .35rem; line-height: 1.5; }
    .benefits-section { padding-block: 3rem; }
    .benefit-item { align-items: flex-start; }
    .benefit-item__icon { width: 3.15rem; height: 3.15rem; }
    .business-section { padding-top: 3.5rem; }
    .home-store-promo__card { align-items: stretch; flex-direction: column; gap: 1.25rem; }
    .home-store-promo__card .site-button { width: 100%; }
    .business-banner { padding: 2rem 1.35rem; border-radius: var(--radius-medium); }
    .business-banner h2 { font-size: 2rem; }
    .business-banner .site-button { width: 100%; }
    .reviews-section { padding-bottom: 2rem; }
    .reviews-grid { display: block; }
    .review-card { min-height: 10rem; display: none; }
    #review-select-1:checked ~ .reviews-grid .review-card:nth-child(1),
    #review-select-2:checked ~ .reviews-grid .review-card:nth-child(2),
    #review-select-3:checked ~ .reviews-grid .review-card:nth-child(3) { display: flex; }
    .review-controls { display: flex; justify-content: center; gap: .65rem; margin-top: 1rem; }
    .review-controls label { width: 2.75rem; height: 2.75rem; display: grid; place-items: center; cursor: pointer; }
    .review-controls label::before { content: ""; width: .65rem; height: .65rem; border: 2px solid var(--color-primary); border-radius: 50%; background: transparent; }
    #review-select-1:checked ~ .review-controls label[for="review-select-1"]::before,
    #review-select-2:checked ~ .review-controls label[for="review-select-2"]::before,
    #review-select-3:checked ~ .review-controls label[for="review-select-3"]::before { background: var(--color-primary); }
    .repair-hero__grid { min-height: auto; grid-template-columns: 1fr; gap: 1.75rem; padding-block: 2.25rem 2.5rem; }
    .repair-hero h1 { max-width: 18ch; font-size: clamp(2.05rem, 10vw, 2.75rem); }
    .repair-hero__content > p:not(.eyebrow) { margin-top: 1rem; }
    .repair-hero__actions { display: grid; grid-template-columns: 1fr; gap: .7rem; margin-top: 1.35rem; }
    .repair-hero__actions .site-button { width: 100%; min-height: 3.2rem; }
    .repair-hero__visual { width: 100%; min-height: 12.5rem; }
    .repair-section { padding-block: 3.25rem; }
    .repair-section__title { margin-bottom: 1.35rem; font-size: 1.8rem; }
    .repair-section__intro { margin-top: -.7rem; margin-bottom: 1.5rem; }
    .repair-categories { grid-template-columns: 1fr; gap: 1rem; }
    .repair-category-card { min-height: 17rem; padding: 1.4rem; }
    .repair-checklist { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem .8rem; }
    .repair-checklist li { min-width: 0; font-size: .9rem; }
    .repair-process { padding-bottom: 3rem; }
    .repair-steps li { padding-right: 0; }
    .repair-callout-section { padding-bottom: 3.25rem; }
    .repair-callout { grid-template-columns: 1fr; gap: 1rem; padding: 1.4rem; }
    .repair-callout .site-button { grid-column: auto; width: 100%; justify-self: stretch; white-space: normal; }
    .repair-final-cta__inner { min-height: auto; align-items: stretch; flex-direction: column; padding-block: 2.5rem; }
    .repair-final-cta__actions { display: grid; grid-template-columns: 1fr; justify-content: stretch; }
    .repair-final-cta__actions .site-button { width: 100%; }
    .quotation-layout { grid-template-columns: 1fr; }
    .quotation-summary { position: static; order: -1; }
    .quotation-card { padding: 1.25rem 1rem; }
    .quotation-step { top: 1.2rem; left: 1rem; }
    .quotation-card > div:first-of-type { padding-left: 2.8rem; }
    .quotation-service { grid-template-columns: auto minmax(0, 1fr); padding: .85rem; }
    .quotation-service b { grid-column: 2; white-space: normal; }
    .quotation-form { grid-template-columns: 1fr; }
    .quotation-field--wide { grid-column: auto; }
    .quotation-document-actions { display: grid; grid-template-columns: 1fr; }
    .quotation-document { padding: 1.25rem; }
    .quotation-document__header, .quotation-document__parties { display: grid; grid-template-columns: 1fr; gap: 1rem; }
    .quotation-document__header img { height: 4rem; }
    .quotation-document__row { padding-inline: .75rem; }
    .device-types { grid-template-columns: 1fr; gap: 1rem; }
    .device-type-card { min-height: auto; padding: 1.35rem; }
    .tariff-row { grid-template-columns: 1fr; gap: .55rem; padding: 1rem; }
    .tariff-row__price { justify-self: start; }
    .recovery-media-grid, .data-recovery-steps { grid-template-columns: 1fr; }
    .recovery-media-card { padding: 1.25rem; }
    .recovery-warning { grid-template-columns: 1fr; gap: 1rem; padding: 1.35rem; }
    .recovery-advice { padding: 1.25rem; }
    .windows-service-grid, .windows-service-steps { grid-template-columns: 1fr; }
    .windows-service-card { padding: 1.25rem; }
    .windows-license-info { grid-template-columns: 1fr; padding: 1.35rem; }
    .home-help-grid, .home-service-steps { grid-template-columns: 1fr; }
    .home-audience-card { padding: 1.25rem; }
    .home-travel-info { grid-template-columns: 1fr; padding: 1.35rem; }
    .business-solutions-grid, .business-process-steps { grid-template-columns: 1fr; }
    .business-solution-card, .business-solution-card:last-child { min-height: auto; grid-column: auto; padding: 1.4rem; }
    .business-custom-panel { padding: 2rem 1.35rem; border-radius: var(--radius-medium); }
    .business-example-list { grid-template-columns: 1fr; }
    .software-possibilities-grid, .software-example-grid, .software-benefits-grid, .software-process-steps, .software-related-grid { grid-template-columns: 1fr; }
    .software-possibility-card { padding: 1.2rem; }
    .software-price-info { grid-template-columns: 1fr; padding: 1.35rem; }
    .software-related-card--all { grid-column: auto; }
    .web-service-card { display: block; padding: 1.35rem; }
    .web-connection-grid, .web-responsive-grid { grid-template-columns: 1fr; }
    .web-integrated-teaser { align-items: stretch; flex-direction: column; }
    .web-integrated-teaser .site-button { width: 100%; }
    .system-components-grid,.system-two-column,.system-detail-grid,.system-process-steps{grid-template-columns:1fr}.system-branches{grid-template-columns:1fr}.system-branches:before{display:none}.system-branches .system-node+ .system-node{margin-top:.35rem}.system-diagram{gap:.35rem}.system-line{height:1.25rem}
    .about-hero__brand { min-height: 11rem; padding: 2rem; }
    .about-sides-grid, .about-audiences-grid, .about-approach-grid, .about-links-grid { grid-template-columns: 1fr; }
    .about-side-card { padding: 1.35rem; }
    .about-local-panel { align-items: stretch; flex-direction: column; padding: 1.35rem; }
    .about-local-panel .site-button { width: 100%; }
    .contact-hero__card { min-height: 10rem; padding: 1.5rem; }
    .contact-form-card { padding: 1.35rem; }
    .contact-form-grid, .contact-sidebar, .quick-contact-grid { grid-template-columns: 1fr; }
    .contact-hours-card { grid-column: auto; }
    .contact-location-copy { align-items: stretch; flex-direction: column; }
    .contact-location-copy .site-button { width: 100%; }
    .contact-map { min-height: 19rem; }
    .error-page__inner { min-height: 21rem; padding-block: 3.5rem; }
    .error-page__actions { display: grid; grid-template-columns: 1fr; width: 100%; }
    .error-page__actions .site-button { width: 100%; }
    .error-links { grid-template-columns: 1fr; }
}

@media print {
    @page { margin: 12mm; }
    .site-header, .site-footer, .mobile-contact-bar, .quotation-document-actions { display: none !important; }
    body { padding: 0 !important; background: #fff; color: #000; }
    #main-content { min-height: 0; }
    .quotation-document-wrap { padding: 0; background: #fff; }
    .quotation-document { width: 100%; max-width: none; padding: 0; border: 0; box-shadow: none; }
    .quotation-document__row, .quotation-insurance-warning { break-inside: avoid; }
    .quotation-watermark { color: rgba(227,27,35,.1); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

.announcement-modal[hidden] { display: none; }
.announcement-modal { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 1.5rem; background: rgba(16, 29, 25, .58); }
.announcement-dialog { position: relative; width: min(100%, 34rem); max-height: calc(100vh - 3rem); overflow-y: auto; padding: 2.25rem; border: 1px solid rgba(8, 122, 70, .2); border-radius: 1.25rem; background: #fff; color: var(--color-ink); box-shadow: 0 1.5rem 4rem rgba(8, 35, 25, .25); text-align: center; }
.announcement-dialog__close { position: absolute; top: .75rem; right: .75rem; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--color-text); font: inherit; font-size: 1.8rem; line-height: 1; cursor: pointer; }
.announcement-dialog__close:hover { background: var(--color-surface); color: var(--color-primary); }
.announcement-dialog__close:focus-visible { outline: 3px solid rgba(8, 122, 70, .3); outline-offset: 2px; }
.announcement-dialog__icon { width: 4rem; height: 4rem; display: grid; place-items: center; margin: 0 auto 1.15rem; border-radius: 50%; background: rgba(8, 122, 70, .1); color: var(--color-primary); }
.announcement-dialog__icon svg { width: 2rem; height: 2rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.announcement-dialog h2 { margin: 0; color: var(--color-primary-dark); font-size: clamp(1.55rem, 4vw, 2rem); line-height: 1.2; }
.announcement-dialog__text { max-width: 100%; margin: 1rem 0 1.5rem; overflow-x: auto; color: var(--color-muted); line-height: 1.7; white-space: pre-line; overflow-wrap: anywhere; }
.announcement-dialog__text img { display: block; max-width: 100% !important; height: auto !important; margin-inline: auto; }
.announcement-dialog__button { min-width: 9rem; }
body.announcement-open { overflow: hidden; }

@media (max-width: 600px) {
    .announcement-modal { align-items: center; padding: 1rem 1rem calc(5.5rem + env(safe-area-inset-bottom)); }
    .announcement-dialog { max-height: calc(100vh - 7.5rem - env(safe-area-inset-bottom)); padding: 2rem 1.25rem 1.4rem; border-radius: var(--radius-medium); }
    .announcement-dialog__close { top: .45rem; right: .45rem; }
    .announcement-dialog__icon { width: 3.5rem; height: 3.5rem; margin-bottom: .9rem; }
    .announcement-dialog__button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
