.ll-page,
.ll-header--classic,
.ll-header--emergency,
.ll-header--project,
.ll-header--comparator,
.ll-hero,
.ll-trust--classic,
.ll-trust--emergency,
.ll-services--classic,
.ll-situations--emergency,
.ll-types--project,
.ll-materials--project,
.ll-levels--project,
.ll-process--classic,
.ll-process--emergency,
.ll-process--project,
.ll-results--classic,
.ll-results--comparator,
.ll-faq--classic,
.ll-faq--emergency,
.ll-cta--classic,
.ll-cta--emergency,
.ll-cta--project,
.ll-cta--comparator,
.ll-info--emergency,
.ll-pricing--emergency,
.ll-area--emergency,
.ll-form--emergency,
.ll-form--project,
.ll-form--comparator,
.ll-search--comparator,
.ll-manifest--project,
.ll-comparison--comparator,
.ll-guide--comparator {
    --ll-content: 1180px;
    --ll-ink: #14251f;
    --ll-paper: #f5f3ec;
    --ll-surface: #fff;
    --ll-accent: #205c48;
    --ll-accent-strong: #153e31;
    --ll-highlight: #e8a746;
    box-sizing: border-box;
}

.ll-page *,
.ll-page *::before,
.ll-page *::after,
[class^="ll-"] *,
[class^="ll-"] *::before,
[class^="ll-"] *::after {
    box-sizing: border-box;
}

.ll-page {
    width: 100%;
    max-width: none !important;
    margin: 0 !important;
    padding: 0;
    overflow: clip;
    background: var(--ll-paper);
    color: var(--ll-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.ll-page > .wp-block-group,
.ll-page > header,
.ll-page > section,
.ll-page > div {
    margin-block: 0;
}

.ll-page .wp-block-heading,
.ll-page p,
.ll-page ul,
.ll-page figure,
.ll-page .wp-block-columns {
    margin-top: 0;
}

.ll-page .wp-block-heading {
    color: inherit;
    text-wrap: balance;
}

.ll-page p,
.ll-page li {
    line-height: 1.65;
}

.ll-page .wp-block-button__link,
[class^="ll-"] .wp-block-button__link {
    min-height: 48px;
    padding: 13px 22px;
    border: 2px solid var(--ll-accent);
    border-radius: 999px;
    background: var(--ll-accent);
    color: #fff;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.ll-page .wp-block-button__link:hover,
.ll-page .wp-block-button__link:focus-visible,
[class^="ll-"] .wp-block-button__link:hover,
[class^="ll-"] .wp-block-button__link:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgb(20 37 31 / 18%);
    filter: brightness(.94);
}

.ll-page .wp-block-button__link:focus-visible,
[class^="ll-"] .wp-block-button__link:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--ll-highlight) 75%, white);
    outline-offset: 3px;
}

.ll-header--classic,
.ll-header--emergency,
.ll-header--project,
.ll-header--comparator {
    position: relative;
    z-index: 10;
    padding: 18px max(24px, calc((100% - var(--ll-content)) / 2));
    background: var(--ll-surface);
    color: var(--ll-ink);
}

.ll-header-columns {
    align-items: center !important;
    justify-content: space-between;
    margin-bottom: 0;
}

.ll-header-columns > .wp-block-column:last-child {
    display: flex;
    justify-content: flex-end;
}

.ll-header-columns h3 {
    margin-bottom: 0;
    font-size: clamp(1.1rem, 2vw, 1.45rem);
}

.ll-hero,
.ll-trust--classic,
.ll-trust--emergency,
.ll-services--classic,
.ll-situations--emergency,
.ll-types--project,
.ll-materials--project,
.ll-levels--project,
.ll-process--classic,
.ll-process--emergency,
.ll-process--project,
.ll-results--classic,
.ll-results--comparator,
.ll-faq--classic,
.ll-faq--emergency,
.ll-cta--classic,
.ll-cta--emergency,
.ll-cta--project,
.ll-cta--comparator,
.ll-info--emergency,
.ll-pricing--emergency,
.ll-area--emergency,
.ll-form--emergency,
.ll-form--project,
.ll-form--comparator,
.ll-search--comparator,
.ll-manifest--project,
.ll-comparison--comparator,
.ll-guide--comparator {
    width: 100%;
    max-width: none !important;
    padding: clamp(64px, 8vw, 118px) max(24px, calc((100% - var(--ll-content)) / 2));
    background: var(--ll-paper);
    color: var(--ll-ink);
}

.ll-hero-columns {
    width: 100%;
    max-width: var(--ll-content) !important;
    align-items: center !important;
    gap: clamp(34px, 6vw, 86px) !important;
}

.ll-results-columns {
    align-items: center !important;
    gap: clamp(34px, 6vw, 86px) !important;
}

.ll-hero h1 {
    max-width: 13ch;
    margin-bottom: 24px;
    overflow-wrap: normal;
    word-break: normal;
    font-size: clamp(2.8rem, 6vw, 5.9rem);
    line-height: .98;
    letter-spacing: -.055em;
}

.ll-hero p:not(.ll-eyebrow) {
    max-width: 58ch;
    margin-bottom: 28px;
    font-size: clamp(1.04rem, 1.6vw, 1.28rem);
}

.ll-eyebrow {
    margin-bottom: 16px;
    color: var(--ll-accent);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ll-card-grid,
.ll-process-grid {
    gap: 22px !important;
    margin-top: 36px;
}

.ll-card-grid .wp-block-column,
.ll-process-grid .wp-block-column {
    display: flex;
}

.ll-card {
    width: 100%;
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid color-mix(in srgb, var(--ll-ink) 14%, transparent);
    border-radius: 18px;
    background: var(--ll-surface);
    box-shadow: 0 16px 42px rgb(20 37 31 / 8%);
}

.ll-card h3 {
    margin-bottom: 12px;
    font-size: clamp(1.15rem, 2vw, 1.45rem);
}

.ll-card p:last-child {
    margin-bottom: 0;
}

.ll-list {
    display: grid;
    gap: 12px;
    padding-left: 0;
    list-style: none;
}

.ll-list li {
    position: relative;
    padding-left: 28px;
}

.ll-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--ll-accent);
    font-weight: 900;
}

.ll-results-columns > .wp-block-column {
    min-width: 0;
}

.ll-faq-item {
    margin-bottom: 14px;
    padding: 19px 22px;
    border: 1px solid color-mix(in srgb, var(--ll-ink) 18%, transparent);
    border-radius: 14px;
    background: var(--ll-surface);
}

.ll-faq-item summary {
    cursor: pointer;
    font-weight: 800;
}

.ll-faq-item p {
    margin: 14px 0 0;
}

.ll-cta--classic,
.ll-cta--emergency,
.ll-cta--project,
.ll-cta--comparator {
    text-align: center;
}

.ll-cta--classic h2,
.ll-cta--emergency h2,
.ll-cta--project h2,
.ll-cta--comparator h2 {
    max-width: 20ch;
    margin-inline: auto;
    font-size: clamp(2rem, 4.5vw, 4.2rem);
}

.ll-cta--classic .wp-block-buttons,
.ll-cta--emergency .wp-block-buttons,
.ll-cta--project .wp-block-buttons,
.ll-cta--comparator .wp-block-buttons {
    justify-content: center;
}

.ll-form--emergency .local-leads-dynamic-block--lead-form,
.ll-form--project .local-leads-dynamic-block--lead-form,
.ll-form--comparator .local-leads-dynamic-block--lead-form,
.ll-search--comparator .local-leads-dynamic-block--lead-form,
.ll-hero .local-leads-dynamic-block--lead-form {
    padding: clamp(22px, 4vw, 38px);
    border-radius: 22px;
    background: var(--ll-surface);
    box-shadow: 0 24px 70px rgb(20 37 31 / 12%);
}

/* Classic */
.ll-page--classic {
    --ll-content: 1180px;
    --ll-ink: #14251f;
    --ll-paper: #f5f3ec;
    --ll-surface: #fff;
    --ll-accent: #205c48;
    --ll-accent-strong: #153e31;
    --ll-highlight: #e8a746;
}

.ll-hero--classic {
    background: linear-gradient(135deg, #f5f3ec 0 63%, #edf3ef 63%);
}

.ll-hero--classic .local-leads-dynamic-block--lead-form {
    transform: rotate(1deg);
}

.ll-trust--classic {
    padding-block: 30px;
    background: var(--ll-accent-strong);
    color: #fff;
}

.ll-trust--classic .ll-card {
    border: 0;
    background: transparent;
    box-shadow: none;
    text-align: center;
}

.ll-services--classic,
.ll-faq--classic {
    background: #fff;
}

.ll-process--classic .ll-card {
    border-top: 5px solid var(--ll-highlight);
}

.ll-results--classic {
    background: #edf3ef;
}

.ll-cta--classic {
    background: var(--ll-accent-strong);
    color: #fff;
}

.ll-cta--classic .wp-block-button__link {
    border-color: var(--ll-highlight);
    background: var(--ll-highlight);
    color: #14251f;
}

/* Emergency */
.ll-page--emergency,
.ll-header--emergency,
.ll-hero--emergency,
.ll-trust--emergency,
.ll-situations--emergency,
.ll-process--emergency,
.ll-info--emergency,
.ll-pricing--emergency,
.ll-area--emergency,
.ll-form--emergency,
.ll-faq--emergency,
.ll-cta--emergency {
    --ll-content: 1160px;
    --ll-ink: #12202a;
    --ll-paper: #f7f1e7;
    --ll-surface: #fffdf8;
    --ll-accent: #d84a32;
    --ll-accent-strong: #12202a;
    --ll-highlight: #ffd866;
    font-family: Arial, Helvetica, sans-serif;
}

.ll-header--emergency {
    border-bottom: 3px solid var(--ll-ink);
    background: var(--ll-highlight);
}

.ll-hero--emergency {
    background: var(--ll-paper);
}

.ll-hero--emergency h1 {
    max-width: 11ch;
    letter-spacing: -.045em;
}

.ll-emergency-panel,
.ll-situations--emergency .ll-card,
.ll-process--emergency .ll-card,
.ll-pricing--emergency .ll-card {
    border: 3px solid var(--ll-ink);
    border-radius: 18px;
    box-shadow: 8px 8px 0 var(--ll-ink);
}

.ll-emergency-panel {
    padding: clamp(26px, 5vw, 52px);
    background: var(--ll-highlight);
}

.ll-trust--emergency,
.ll-info--emergency,
.ll-cta--emergency {
    background: var(--ll-ink);
    color: #fff;
}

.ll-trust--emergency .ll-card {
    border-color: #fff;
    background: transparent;
    box-shadow: 6px 6px 0 var(--ll-highlight);
}

.ll-situations--emergency .ll-card:nth-child(even),
.ll-pricing--emergency .ll-card:nth-child(even) {
    background: var(--ll-highlight);
}

.ll-process--emergency {
    background: #fffdf8;
}

.ll-process--emergency .ll-card h3 {
    color: var(--ll-accent);
}

.ll-info--emergency .ll-list {
    max-width: 760px;
}

.ll-info--emergency .ll-list li {
    padding-block: 12px;
    border-bottom: 1px solid rgb(255 255 255 / 24%);
    font-size: 1.12rem;
}

.ll-area--emergency {
    background: var(--ll-highlight);
}

.ll-form--emergency {
    background: var(--ll-accent);
    color: #fff;
}

.ll-form--emergency .local-leads-dynamic-block--lead-form {
    color: var(--ll-ink);
}

/* Project */
.ll-page--project,
.ll-header--project,
.ll-hero--project,
.ll-manifest--project,
.ll-types--project,
.ll-process--project,
.ll-materials--project,
.ll-levels--project,
.ll-form--project,
.ll-cta--project {
    --ll-content: 1200px;
    --ll-ink: #203329;
    --ll-paper: #f4eee4;
    --ll-surface: #fffaf2;
    --ll-accent: #b9583f;
    --ll-accent-strong: #203329;
    --ll-highlight: #99a486;
}

.ll-page--project h1,
.ll-page--project h2,
.ll-page--project h3,
.ll-header--project h3,
.ll-hero--project h1,
.ll-manifest--project h2,
.ll-types--project h2,
.ll-process--project h2,
.ll-materials--project h2,
.ll-levels--project h2,
.ll-form--project h2,
.ll-cta--project h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
}

.ll-header--project {
    background: var(--ll-paper);
}

.ll-hero--project {
    min-height: 720px;
    background: var(--ll-paper);
}

.ll-hero--project h1 {
    max-width: 10ch;
    font-size: clamp(3.2rem, 7vw, 7rem);
}

.ll-project-collage,
.ll-comparator-collage {
    position: relative;
    min-height: 480px;
}

.ll-project-swatch,
.ll-collage-card {
    position: absolute;
    min-height: 310px;
    border-radius: 46% 54% 62% 38% / 42% 46% 54% 58%;
}

.ll-project-swatch--sage {
    inset: 0 18% 22% 0;
    background: #99a486;
}

.ll-project-swatch--terracotta {
    inset: 38% 0 0 42%;
    background: #b9583f;
}

.ll-project-collage p {
    position: absolute;
    z-index: 2;
    right: 8%;
    bottom: 5%;
    max-width: 230px;
    padding: 18px;
    background: #fffaf2;
}

.ll-manifest--project {
    background: var(--ll-ink);
    color: #fff;
}

.ll-types--project .ll-card,
.ll-materials--project .ll-card {
    min-height: 300px;
    justify-content: flex-end;
    border: 0;
    border-radius: 34px 8px 34px 8px;
    background: #e6b49a;
    box-shadow: none;
}

.ll-types--project .wp-block-column:nth-child(2) .ll-card,
.ll-materials--project .wp-block-column:nth-child(2) .ll-card {
    background: #99a486;
}

.ll-types--project .wp-block-column:nth-child(3) .ll-card,
.ll-materials--project .wp-block-column:nth-child(3) .ll-card {
    background: #fffaf2;
}

.ll-process--project {
    background: #fffaf2;
}

.ll-process--project .ll-card {
    border: 0;
    border-radius: 0;
    border-left: 1px solid var(--ll-accent);
    background: transparent;
    box-shadow: none;
}

.ll-levels--project {
    background: var(--ll-highlight);
}

.ll-levels--project .ll-card {
    box-shadow: none;
}

.ll-form--project {
    background: #e6b49a;
}

.ll-cta--project {
    background: var(--ll-ink);
    color: #fffaf2;
}

/* Comparator */
.ll-page--comparator,
.ll-header--comparator,
.ll-hero--comparator,
.ll-search--comparator,
.ll-results--comparator,
.ll-comparison--comparator,
.ll-guide--comparator,
.ll-form--comparator,
.ll-cta--comparator {
    --ll-content: 1220px;
    --ll-ink: #241c38;
    --ll-paper: #fbf9ff;
    --ll-surface: #fff;
    --ll-accent: #6d42f5;
    --ll-accent-strong: #241c38;
    --ll-highlight: #d8ff62;
    font-family: Arial, Helvetica, sans-serif;
}

.ll-header--comparator {
    background: #fbf9ff;
}

.ll-header--comparator .wp-block-button__link,
.ll-hero--comparator .wp-block-button__link {
    color: #fff;
}

.ll-hero--comparator {
    min-height: 650px;
    padding-bottom: 150px;
    background: #fbf9ff;
}

.ll-hero--comparator h1 {
    max-width: 12ch;
}

.ll-comparator-collage {
    transform: rotate(2deg);
}

.ll-collage-card--pink {
    inset: 0 32% 32% 0;
    background: #f3d5ee;
}

.ll-collage-card--blue {
    inset: 26% 0 0 36%;
    background: #cce8ff;
}

.ll-collage-card--lime {
    inset: 56% 54% 0 4%;
    min-height: 170px;
    background: #d8ff62;
}

.ll-search--comparator {
    position: relative;
    z-index: 4;
    width: min(1120px, calc(100% - 40px));
    margin: -100px auto 0 !important;
    padding: 28px;
    border: 2px solid var(--ll-ink);
    border-radius: 22px;
    background: #fff;
    box-shadow: 12px 12px 0 var(--ll-ink);
}

.ll-search--comparator > h2 {
    font-size: 1.5rem;
}

.ll-search--comparator .local-leads-dynamic-block--lead-form {
    padding: 0;
    box-shadow: none;
}

.ll-results--comparator {
    padding-top: 140px;
}

.ll-results--comparator .local-leads-listing-card,
.ll-results--comparator .local-leads-business-card {
    border-radius: 18px;
    box-shadow: 0 18px 50px rgb(42 27 76 / 12%);
}

.ll-selection--comparator {
    margin-top: 36px;
    padding: 28px;
    border: 2px solid var(--ll-ink);
    border-radius: 18px;
    background: var(--ll-highlight);
}

.ll-comparison--comparator {
    background: var(--ll-ink);
    color: #fff;
}

.ll-comparison-table {
    overflow-x: auto;
}

.ll-comparison-table table {
    width: 100%;
    min-width: 660px;
    border-collapse: collapse;
    background: transparent;
    color: #fff;
}

.ll-comparison-table th,
.ll-comparison-table td {
    padding: 18px;
    border: 1px solid rgb(255 255 255 / 24%);
}

.ll-comparison-table th {
    background: var(--ll-accent);
}

.ll-guide--comparator .ll-card {
    border: 2px solid var(--ll-ink);
    box-shadow: 6px 6px 0 #f3d5ee;
}

.ll-form--comparator {
    background: #cce8ff;
}

.ll-cta--comparator {
    background: var(--ll-highlight);
}

.ll-cta--comparator .wp-block-heading {
    color: var(--ll-ink);
}

.ll-cta--comparator .wp-block-button__link {
    border-color: var(--ll-ink);
    background: var(--ll-ink);
}

.local-leads-canvas,
.local-leads-canvas__content {
    width: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;
}

@media (max-width: 920px) {
    .ll-hero-columns,
    .ll-results-columns,
    .ll-card-grid,
    .ll-process-grid,
    .ll-header-columns {
        flex-wrap: wrap !important;
    }

    .ll-hero-columns > .wp-block-column,
    .ll-results-columns > .wp-block-column,
    .ll-card-grid > .wp-block-column,
    .ll-process-grid > .wp-block-column {
        flex-basis: 100% !important;
    }

    .ll-card-grid > .wp-block-column,
    .ll-process-grid > .wp-block-column {
        flex-basis: calc(50% - 12px) !important;
    }

    .ll-hero--project,
    .ll-hero--comparator {
        min-height: auto;
    }

    .ll-project-collage,
    .ll-comparator-collage {
        min-height: 380px;
    }
}

@media (max-width: 650px) {
    .ll-header--classic,
    .ll-header--emergency,
    .ll-header--project,
    .ll-header--comparator {
        padding: 14px 18px;
    }

    .ll-header-columns {
        flex-wrap: nowrap !important;
    }

    .ll-header-columns .wp-block-heading {
        font-size: 1rem;
    }

    .ll-header-columns .wp-block-button__link {
        min-height: 42px;
        padding: 10px 14px;
        font-size: .85rem;
    }

    .ll-hero,
    .ll-trust--classic,
    .ll-trust--emergency,
    .ll-services--classic,
    .ll-situations--emergency,
    .ll-types--project,
    .ll-materials--project,
    .ll-levels--project,
    .ll-process--classic,
    .ll-process--emergency,
    .ll-process--project,
    .ll-results--classic,
    .ll-results--comparator,
    .ll-faq--classic,
    .ll-faq--emergency,
    .ll-cta--classic,
    .ll-cta--emergency,
    .ll-cta--project,
    .ll-cta--comparator,
    .ll-info--emergency,
    .ll-pricing--emergency,
    .ll-area--emergency,
    .ll-form--emergency,
    .ll-form--project,
    .ll-form--comparator,
    .ll-manifest--project,
    .ll-comparison--comparator,
    .ll-guide--comparator {
        padding: 58px 20px;
    }

    .ll-hero h1 {
        font-size: clamp(2.45rem, 13vw, 4rem);
    }

    .ll-card-grid > .wp-block-column,
    .ll-process-grid > .wp-block-column {
        flex-basis: 100% !important;
    }

    .ll-project-collage,
    .ll-comparator-collage {
        min-height: 310px;
    }

    .ll-search--comparator {
        width: calc(100% - 28px);
        margin-top: -70px !important;
        padding: 20px;
    }

    .ll-results--comparator {
        padding-top: 110px;
    }

    .ll-mobile-call {
        position: fixed;
        z-index: 1000;
        right: 12px;
        bottom: 12px;
        left: 12px;
        width: auto;
        padding: 8px;
        border: 3px solid #12202a;
        border-radius: 18px;
        background: #ffd866;
        color: #12202a;
        box-shadow: 6px 6px 0 #12202a;
    }

    .ll-mobile-call h2 {
        display: none;
    }

    .ll-mobile-call .wp-block-button__link {
        width: 100%;
    }

    .ll-mobile-call .wp-block-buttons,
    .ll-mobile-call .wp-block-button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ll-page *,
    [class^="ll-"] * {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}
