/* Public marketing and inquiry pages only; admin and portal keep their typography. */
@font-face {
    font-family: Manrope;
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-variable.woff2') format('woff2');
}

/* Arial-compatible fallback, matched to Manrope 400's advance widths and metrics. */
@font-face {
    font-family: 'Manrope Fallback';
    src: local('Arial'), local('Nimbus Sans');
    size-adjust: 103.231%;
    ascent-override: 103.264%;
    descent-override: 29.061%;
    line-gap-override: 0%;
}
.public-site { font-family: Manrope, 'Manrope Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 1.0625rem; }
.public-site h1, .public-site h2, .public-site h3, .public-site h4 { font-weight: 700; letter-spacing: -.025em; text-wrap: balance; }
.public-site h1 { max-width: 22ch; font-size: clamp(2rem, 4.2vw, 3.5rem); line-height: 1.13; }
.public-site h2 { font-size: clamp(1.65rem, 2.6vw, 2.55rem); line-height: 1.2; }
.public-site h3 { font-size: clamp(1.15rem, 1.8vw, 1.5rem); line-height: 1.3; }
.public-site .lead { font-size: clamp(1.0625rem, 1.4vw, 1.2rem); line-height: 1.65; }
.public-site .eyebrow { font-size: .8125rem; font-weight: 700; letter-spacing: .09em; }
.public-site .section { padding-block: clamp(3.25rem, 6vw, 5.5rem); }
.public-site .section--compact { padding-block: clamp(2rem, 4vw, 3.5rem); }
.public-site .section-heading { gap: 1.5rem 3.5rem; margin-bottom: 2.25rem; }
.public-site .content-copy { max-width: 68ch; }
.public-site .page-hero--visual .page-hero__copy h1 { max-width: 23ch; font-size: clamp(2rem, 3.8vw, 3.4rem); line-height: 1.14; letter-spacing: -.025em; hyphens: manual; overflow-wrap: break-word; }
.public-site .page-hero--editorial .page-hero__copy h1 { max-width: 19ch; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.12; }
.public-site .home-hero__inner { padding-block: clamp(3rem, 6vw, 5.5rem); }
.public-site .home-hero__copy { max-width: 43rem; }
.public-site .home-hero h1 { max-width: 19ch; font-size: clamp(2.25rem, 4.4vw, 3.8rem); line-height: 1.1; letter-spacing: -.03em; }
.public-site .home-hero .lead { max-width: 41ch; color: #fff; }
.public-site .home-maintenance-check { background: #fff; backdrop-filter: none; border-radius: 1rem; padding: 1.15rem; }
.public-site .home-maintenance-check__heading { align-items: start; flex-direction: column; gap: .25rem; }
.public-site .home-maintenance-check__heading span { font-size: .8125rem; }
.public-site .home-maintenance-check__heading strong { font-size: 1.0625rem; }
.public-site .home-maintenance-check__options span { font-size: 1rem; font-weight: 700; }
.public-site .home-maintenance-check__options small { color: #4f5358; font-size: .875rem; }
.public-site .home-maintenance-check__links { gap: .65rem; flex-wrap: wrap; }
.public-site .home-maintenance-check__links a { font-size: .875rem; }
.public-site .home-maintenance-check > p { color: #55585e; font-size: .8125rem; line-height: 1.55; }
.public-site .home-maintenance-check__offer { margin: .85rem -1.15rem -1.15rem; border-radius: 0 0 .95rem .95rem; }
.public-site .home-maintenance-check__offer small { color: #fff; }
.public-site .home-maintenance-check__offer span, .public-site .home-maintenance-check__offer em { font-size: .8125rem; }
.public-site .trust-item strong { font-size: 1.125rem; }
.public-site .trust-item span { font-size: .875rem; }
.public-site .google-rating-strip h2 { font-size: 1.75rem; }
.public-site .google-rating-strip p { max-width: 40ch; font-size: .9375rem; }
.public-site .btn { font-weight: 700; min-height: 2.75rem; touch-action: manipulation; }
.public-site .btn:active { transform: translateY(1px); }
.public-site .feature-card, .public-site .price-card { border-radius: .9rem; box-shadow: 0 .25rem 1.5rem rgba(35, 35, 35, .04); }
.public-site .home-price-grid .price-card { padding: 1.5rem; }
.public-site .fine-print { font-size: .875rem; }
.public-site .motion-reveal { opacity: 1; transform: translateY(.45rem); transition: transform 360ms var(--motion-ease-out); }
.public-site .motion-reveal.is-visible { transform: none; }
.public-site .service-area-list { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.25rem 0; padding: 0; list-style: none; }
.public-site .service-area-list li { padding: .45rem .8rem; border: 1px solid var(--line); border-radius: .45rem; background: #fff; color: var(--ink); font-size: .9375rem; }
.public-site .service-deliverable { margin-top: 1.5rem; padding: 1.25rem; border-left: .2rem solid var(--brand); background: var(--surface); border-radius: 0 .5rem .5rem 0; }
.public-site .service-deliverable h3 { font-size: 1.125rem; }
.public-site .service-deliverable p:last-child { margin-bottom: 0; }
.public-site .quick-wizard-price { margin-bottom: 1.5rem; }
.public-site .consent-banner { max-height: calc(100dvh - 2rem); overflow-y: auto; }
.public-site .consent-banner p { font-size: .875rem; line-height: 1.5; max-width: 64ch; }
.public-site .consent-banner h2 { font-size: 1.125rem; }
.public-site .consent-banner__actions .btn { font-size: .875rem; }

@media (max-width: 820px) {
    .public-site .home-hero { min-height: 0; }
    .public-site .home-hero__inner { padding-block: 3rem; }
    .public-site .home-hero h1 { font-size: clamp(2rem, 6.3vw, 2.6rem); max-width: 18ch; }
    .public-site .page-hero--visual .page-hero__copy h1, .public-site .page-hero--editorial .page-hero__copy h1 { font-size: clamp(1.9rem, 5.8vw, 2.5rem); }
    .public-site .section-heading { gap: 1rem; }
    .public-site .trust-bar__grid { gap: 1.25rem; }
}

@media (max-width: 480px) {
    .public-site .home-price-grid .price-card { padding: 1.25rem; }
    .public-site .home-price-grid .price-card .price-note { margin-bottom: .5rem; }
}

@media (max-width: 760px) {
    .public-site .consent-banner { right: .65rem; left: .65rem; bottom: calc(.65rem + env(safe-area-inset-bottom)); padding: 1rem; }
    .public-site .consent-banner__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: .8rem; }
    .public-site .consent-banner__actions .btn { width: 100%; padding: .65rem .5rem; }
    .public-site .consent-banner__actions [data-consent-essential] { grid-column: 1; grid-row: 1; }
    .public-site .consent-banner__actions [data-consent-all] { grid-column: 2; grid-row: 1; }
    .public-site .consent-banner__actions [data-consent-open-settings] { grid-column: 1 / -1; min-height: 2.5rem; padding: .4rem; }
    .public-site:has(.consent-banner:not([hidden])) :is(.mobile-actionbar, .service-mobile-cta, .special-offer-mobile-cta) { visibility: hidden; pointer-events: none; }
}

@media (max-width: 480px) {
    .public-site .home-hero__inner { padding-block: 2.5rem; }
    .public-site .home-maintenance-check { padding: 1rem; }
    .public-site .home-maintenance-check__options { grid-template-columns: 1fr; gap: .45rem; }
    .public-site .home-maintenance-check__options a { min-height: 3rem; display: flex; align-items: center; justify-content: space-between; padding: .7rem .8rem .7rem 1rem; }
    .public-site .home-maintenance-check__options a::before { left: .5rem; }
    .public-site .home-maintenance-check__options span { font-size: .9375rem; overflow-wrap: normal; }
    .public-site .home-maintenance-check__options small { font-size: .875rem; white-space: nowrap; }
    .public-site .home-maintenance-check__offer { margin-inline: -1rem; margin-bottom: -1rem; }
    .public-site .home-maintenance-check__offer em { width: auto; }
    .public-site .trust-bar__grid { grid-template-columns: 1fr 1fr; }
    .public-site .trust-item strong { font-size: 1rem; }
    .public-site .trust-item span { font-size: .8125rem; }
}

@media (prefers-reduced-motion: reduce) {
    .public-site .motion-reveal, .public-site .btn:active { transform: none; transition: none; }
}
