/*
Theme Name: Amaze Duct Cleaning
Theme URI: https://www.amazeductcleaning.ca
Author: Amaze Duct Cleaning
Author URI: https://www.amazeductcleaning.ca
Description: Pixel-matched local SEO WordPress theme for Amaze Duct Cleaning. Fully dynamic Services and Locations CPTs, complete content import, editable homepage sections, lead capture and schema. Requires PHP 8.2+ and WordPress 6.7+.
Version: 3.0.0
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 8.2
Text Domain: amaze-duct-cleaning
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: custom-logo, custom-menu, featured-images, full-width-template, theme-options, translation-ready
*/


/* Exact preview palette + type scale (from Next/Tailwind build) */

:root {
    --navy-50: #eef4fb;
    --navy-100: #d8e5f4;
    --navy-200: #b3c9e6;
    --navy-300: #7fa3d1;
    --navy-400: #4b73ad;
    --navy-500: #2b5289;
    --navy-600: #1d3f70;
    --navy-700: #163259;
    --navy-800: #102544;
    --navy-900: #0a1a31;
    --accent: #f97316;
    --accent-dark: #e05d0a;
    --slate-50: #f8fafc;
    --slate-100: #f1f5f9;
    --slate-200: #e2e8f0;
    --slate-300: #cbd5e1;
    --slate-400: #94a3b8;
    --slate-500: #64748b;
    --slate-600: #475569;
    --slate-700: #334155;
    --slate-800: #1e293b;
    --slate-900: #0f172a;
    --white: #ffffff;
    --amber-500: #f59e0b;
    --emerald-50: #ecfdf5;
    --emerald-200: #a7f3d0;
    --emerald-700: #047857;
    --emerald-800: #065f46;
    --emerald-900: #064e3b;
    --red-50: #fef2f2;
    --red-200: #fecaca;
    --red-600: #dc2626;
    --red-700: #b91c1c;
    --radius-xl: 0.75rem;
    --radius-2xl: 1rem;
    --shadow-sm: 0 2px 14px rgba(10, 26, 49, 0.05);
    --shadow: 0 2px 16px rgba(10, 26, 49, 0.06);
    --shadow-lg: 0 16px 40px rgba(10, 26, 49, 0.12);
    --shadow-xl: 0 18px 50px rgba(10, 26, 49, 0.18);
    --shadow-2xl: 0 25px 50px rgba(10, 26, 49, 0.25);
    --max: 80rem;
    /* max-w-7xl */
    --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--white);
    color: var(--slate-800);
    font-family: var(--font);
    font-size: 1rem;
    /* 16px */
    line-height: 1.5;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

img,
svg,
video {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
    text-decoration: none;
}

p {
    margin: 0;
}

h1 {
    margin: 0;
    font-weight: 700;
    letter-spacing: -0.025em;
    color: var(--navy-800);
    line-height: 1.15;
}

h2,
h3,
h4,
h5,
h6 {
    margin: 0;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--navy-800);
    line-height: 1.2;
}

ul,
ol {
    margin: 0;
    padding: 0;
}

button,
input,
select,
textarea {
    font: inherit;
}

:where(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid var(--accent);
    outline-offset: 2px;
    border-radius: 4px;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.screen-reader-text:focus {
    position: fixed !important;
    left: 1rem;
    top: 1rem;
    width: auto;
    height: auto;
    clip: auto;
    z-index: 99999;
    padding: .75rem 1rem;
    border-radius: .5rem;
    background: #fff;
    color: var(--navy-800);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .2);
}


/* Layout helpers matching Tailwind utilities used in preview */

.ad-container {
    width: min(calc(100% - 2rem), var(--max));
    margin-inline: auto;
}

.ad-section {
    padding: 4rem 0;
}


/* py-16 */

@media (min-width: 640px) {
    .ad-section {
        padding: 5rem 0;
    }
}


/* sm:py-20 */

.ad-section--soft {
    background: var(--slate-50);
}

.ad-section--gradient {
    background: linear-gradient(to bottom, var(--navy-50), var(--white));
}

.ad-section-head {
    margin-bottom: 2.5rem;
}


/* max-w-3xl mt-10 spacing */

.ad-section-head--center {
    margin-inline: auto;
    text-align: center;
}

.ad-eyebrow {
    margin: 0;
    color: var(--accent);
    font-size: 0.75rem;
    /* text-xs */
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-align: center;
}

.ad-h2 {
    margin-top: 0.5rem;
    font-size: 1.875rem;
    /* text-3xl */
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--navy-800);
    line-height: 1.2;
    text-align: center;
}

@media (min-width: 640px) {
    .ad-h2 {
        font-size: 2.25rem;
    }
}


/* sm:text-4xl */

.ad-section-subtitle {
    margin-top: 0.75rem;
    color: var(--slate-600);
    font-size: 1.125rem;
    /* text-lg */
    font-weight: 400;
    line-height: 1.625;
    text-align: center;
}

@media (max-width: 640px) {
    .ad-header__actions .ad-btn {
        display: none;
    }
}

img.emoji {
    display: inline !important;
    border: none !important;
    box-shadow: none !important;
    height: 1.5em!important;
    width: 1.5em!important;
    margin: 0 0.07em !important;
    vertical-align: -0.1em !important;
    background: none !important;
    padding: 0 !important;
}

.ad-accent {
    color: var(--accent);
}

.ad-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    justify-content: center;
}

.ad-grid-2 {
    grid-template-columns: 1fr;
}

.ad-grid-3 {
    grid-template-columns: 1fr;
}

.ad-grid-4 {
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .ad-grid-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .ad-grid-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .ad-grid-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .ad-grid-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .ad-grid-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.ad-card {
    border: 1px solid var(--slate-200);
    border-radius: var(--radius-2xl);
    background: var(--white);
    padding: 1.5rem;
    box-shadow: var(--shadow);
    width: 100%;
    max-width: 400px;
}

.ad-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 3rem;
    border: 0;
    border-radius: var(--radius-xl);
    padding: 1rem 1.75rem;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.25;
    transition: .2s ease;
}

.ad-btn:hover {
    transform: translateY(-1px);
}

.ad-btn--primary {
    background: var(--accent);
    color: var(--white);
    box-shadow: 0 10px 25px rgba(249, 115, 22, .25);
}

.ad-btn--primary:hover {
    background: var(--accent-dark);
}

.ad-btn--navy {
    background: var(--navy-800);
    color: var(--white)!important;
}

.ad-btn--navy img.emoji {}

.ad-btn--navy:hover {
    background: var(--navy-700);
}

.ad-btn--outline {
    border: 2px solid var(--navy-200);
    background: var(--white);
    color: var(--navy-800);
}

.ad-btn--outline:hover {
    border-color: var(--navy-400);
}

.ad-btn--sm {
    min-height: 2.75rem;
    padding: .7rem 1.15rem;
    font-size: .875rem;
}

.ad-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}


/* ========== TOPBAR + HEADER (exact preview) ========== */

.ad-topbar {
    background: var(--navy-900);
    color: var(--navy-100);
    font-size: .75rem;
}

.ad-topbar__inner {
    min-height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-block: .375rem;
}

.ad-topbar__info {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
}

.ad-topbar__info span {
    display: flex;
    gap: 8px;
}

.ad-topbar__sep {
    color: var(--navy-500);
}

.ad-socials {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.ad-socials a {
    width: 1rem;
    height: 1rem;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    color: #fff;
    font-size: .825rem;
    font-weight: 700;
}

.ad-socials a:hover {
    background: var(--accent);
}

.ad-site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid var(--slate-200);
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 1px 2px rgba(10, 26, 49, .05);
    backdrop-filter: blur(12px);
}

.admin-bar .ad-site-header {
    top: 32px;
}

.ad-header__inner {
    min-height: 4.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding-block: .75rem;
}

.ad-logo {
    display: flex;
    align-items: center;
    gap: .625rem;
    flex-shrink: 0;
}

.ad-logo__mark {
    width: 2.75rem;
    height: 2.75rem;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--navy-800);
    color: #fff;
    font-size: 1.25rem;
    box-shadow: 0 0 0 2px rgba(249, 115, 22, .6);
}

.ad-logo__name {
    display: block;
    color: var(--navy-800);
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1;
}

.ad-logo__name em {
    color: var(--accent);
    font-style: normal;
}

.ad-logo__tag {
    display: block;
    margin-top: .3rem;
    color: var(--slate-500);
    font-size: .625rem;
    font-weight: 700;
    letter-spacing: .24em;
    line-height: 1;
    text-transform: uppercase;
}

.ad-nav {
    display: none;
}

@media (min-width: 1280px) {
    .ad-nav {
        display: flex;
        align-items: center;
    }
}

.ad-nav ul {
    display: flex;
    align-items: center;
    gap: .125rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.ad-nav li {
    position: relative;
}

.ad-nav a {
    display: block;
    border-radius: .5rem;
    padding: .5rem .75rem;
    color: var(--navy-800);
    font-size: .875rem;
    font-weight: 600;
    transition: .15s ease;
}

.ad-nav a:hover,
.ad-nav .current-menu-item>a,
.ad-nav .current_page_item>a {
    color: var(--accent);
    background: var(--navy-50);
}

.ad-nav .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    width: 18rem;
    max-height: 60vh;
    display: block;
    visibility: hidden;
    overflow-y: auto;
    border: 1px solid var(--slate-200);
    border-radius: 1rem;
    background: #fff;
    padding: .5rem;
    opacity: 0;
    box-shadow: var(--shadow-2xl);
    transform: translateY(.25rem);
    transition: .2s ease;
    z-index: 60;
}

.ad-nav li:hover>.sub-menu,
.ad-nav li:focus-within>.sub-menu {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

.ad-nav .sub-menu a {
    padding: .5rem .75rem;
    font-weight: 500;
    font-size: .875rem;
}

.ad-header__actions {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.ad-callbox {
    display: none;
    align-items: center;
    gap: .75rem;
    max-width: 170px;
    border-radius: var(--radius-xl);
    background: var(--navy-800);
    padding: .5rem 1rem;
    color: #fff;
    box-shadow: 0 4px 6px rgba(0, 0, 0, .1);
}

.ad-soft-card .ad-callbox strong {
    margin: 0px;
}

@media (min-width: 1024px) {
    .ad-callbox {
        display: flex;
    }
}

.ad-callbox:hover {
    background: var(--navy-700);
}

.ad-callbox__icon {
    display: grid;
    place-items: center;
    border-radius: 999px;
    color: var(--accent);
}

.ad-callbox small {
    display: block;
    color: var(--navy-200);
    font-size: .525rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    line-height: 1.1;
}

.ad-callbox strong {
    display: block;
    margin-top: .125rem;
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1;
}

.ad-call-mobile {
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-xl);
    background: var(--navy-800);
    color: var(--accent);
}

@media (min-width: 1024px) {
    .ad-call-mobile {
        display: none;
    }
}

.ad-menu-toggle {
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--slate-300);
    border-radius: var(--radius-xl);
    background: #fff;
    color: var(--navy-800);
    cursor: pointer;
    font-size: 1.125rem;
}

@media (min-width: 1280px) {
    .ad-menu-toggle {
        display: none;
    }
}

.ad-nav.is-open {
    display: block;
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    max-height: calc(100vh - 5rem);
    overflow-y: auto;
    border-top: 1px solid var(--slate-200);
    background: #fff;
    padding: .75rem 1rem 1.5rem;
    box-shadow: var(--shadow-lg);
}

.ad-nav.is-open ul {
    display: block;
}

.ad-nav.is-open .sub-menu {
    position: static;
    width: 100%;
    max-height: none;
    visibility: visible;
    border: 0;
    box-shadow: none;
    opacity: 1;
    transform: none;
    padding: 0 0 0 1rem;
}


/* ========== HERO ========== */

.ad-hero {
    background: var(--slate-50);
    overflow: hidden;
}

.ad-hero__inner {
    display: grid;
    gap: 2.5rem;
    align-items: center;
    padding-block: 3rem;
}

@media (min-width: 1024px) {
    .ad-hero__inner {
        grid-template-columns: 1fr 1fr;
        padding-block: 4rem;
    }
}

.ad-hero__kicker {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
    color: var(--navy-600);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.ad-hero__kicker span {
    color: var(--accent);
    font-size: 1rem;
}

.ad-hero h1 {
    margin-top: 1rem;
    max-width: 42rem;
    color: var(--navy-900);
    font-size: 2.25rem;
    /* text-4xl */
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

@media (min-width: 640px) {
    .ad-hero h1 {
        font-size: 3rem;
    }
}


/* sm:text-5xl */

@media (min-width: 1280px) {
    .ad-hero h1 {
        font-size: 3.4rem;
    }
}


/* xl:text-[3.6rem] */

.ad-hero__lead {
    margin-top: 1.25rem;
    max-width: 36rem;
    color: var(--slate-600);
    font-size: 1.125rem;
    line-height: 1.625;
}

.ad-hero__actions {
    margin-top: 1.75rem;
}

.ad-hero__reviews {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 2rem;
}

.ad-avatars {
    display: flex;
    padding-left: .5rem;
}

.ad-avatar {
    width: 2.5rem;
    height: 2.5rem;
    display: grid;
    place-items: center;
    margin-left: -.625rem;
    border: 2px solid #fff;
    border-radius: 999px;
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
}

.ad-avatar:nth-child(1) {
    background: var(--navy-600);
}

.ad-avatar:nth-child(2) {
    background: var(--navy-500);
}

.ad-avatar:nth-child(3) {
    background: var(--accent);
}

.ad-stars {
    color: var(--amber-500);
    font-size: .875rem;
    letter-spacing: 1px;
}

.ad-review-caption {
    color: var(--slate-600);
    font-size: .75rem;
    font-weight: 600;
}

.ad-hero__visual {
    position: relative;
}

.single-service .ad-hero__visual {
    display: flex;
    justify-content: flex-end;
}

.single-location .ad-hero__visual {
    display: flex;
    justify-content: flex-end;
}

.ad-hero__image-wrap {
    position: relative;
    height: 20rem;
    overflow: hidden;
    border-radius: var(--radius-2xl);
    box-shadow: var(--shadow-2xl);
}

@media (min-width: 640px) {
    .ad-hero__image-wrap {
        height: 35rem;
    }
}

.single-service .ad-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-height: 250px;
    border-radius: var(--radius-2xl);
    margin-bottom: 1rem;
}

.single-location .ad-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-height: 300px;
    border-radius: var(--radius-2xl);
    margin-bottom: 1rem;
}

.single-location-content .ad-eyebrow {
    text-align: left;
    margin-bottom: 0.5rem;
}

.ad-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--radius-2xl);
    margin-bottom: 1rem;
}

.single-service .ad-card {
    max-width: 100%;
}

.single-location .ad-card {
    max-width: 100%;
}

.single-service .ad-eyebrow {
    text-align: left;
    margin-bottom: 0.5rem;
}

.single-service .ad-section-subtitle {
    text-align: left;
    margin-top: 0.5rem;
}

.ad-service-ribbon {
    position: absolute;
    right: 1rem;
    bottom: -2rem;
    left: 1rem;
    display: none;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    border-radius: var(--radius-2xl);
    background: var(--navy-900);
    padding: 1.25rem;
    color: #fff;
    box-shadow: var(--shadow-2xl);
}

@media (min-width: 640px) {
    .ad-service-ribbon {
        right: 2rem;
        left: 2rem;
    }
}

.ad-ribbon-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .375rem;
    text-align: center;
}

.ad-ribbon-item__icon {
    width: 2.25rem;
    height: 2.25rem;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    font-size: 1rem;
}

.ad-ribbon-item strong {
    display: block;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
}

.ad-ribbon-item small {
    display: block;
    color: var(--navy-200);
    font-size: .625rem;
}

.ad-hero-spacer {
    height: 2rem;
}

@media (min-width: 1024px) {
    .ad-hero-spacer {
        height: 2.5rem;
    }
}


/* Brand strip */

.ad-brand-strip {
    border-bottom: 1px solid var(--slate-100);
    background: #fff;
    padding: 2rem 0;
}

.ad-brand-strip__label {
    margin: 0 0 1.25rem;
    color: var(--slate-500);
    text-align: center;
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .22em;
    text-transform: uppercase;
}

.ad-brands {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1rem 3rem;
}

.ad-brand {
    font-size: 1.5rem;
    font-weight: 900;
    opacity: .8;
}

.ad-brand:nth-child(1) {
    color: #ea580c;
    font-style: italic;
}

.ad-brand:nth-child(2) {
    color: #1d4ed8;
}

.ad-brand:nth-child(3) {
    color: #dc2626;
    letter-spacing: .2em;
}

.ad-brand:nth-child(4) {
    color: #b91c1c;
    font-style: italic;
}

.ad-brand:nth-child(5) {
    color: #334155;
    letter-spacing: .04em;
}

.ad-brand:nth-child(6) {
    color: #2563eb;
    letter-spacing: .08em;
}


/* Service cards — icon centered, exact preview */

.ad-service-grid {
    display: grid;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .ad-service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .ad-service-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.ad-service-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px solid var(--slate-200);
    border-radius: var(--radius-2xl);
    background: #fff;
    padding: 2rem;
    text-align: center;
    box-shadow: var(--shadow-sm);
    transition: .2s ease;
}

.ad-service-card:hover {
    border-color: rgba(249, 115, 22, .4);
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}

.ad-service-card__icon {
    width: 4rem;
    height: 4rem;
    display: grid;
    place-items: center;
    border-radius: var(--radius-2xl);
    background: var(--navy-50);
    color: var(--navy-600);
    font-size: 1.75rem;
    transition: .2s ease;
}

.ad-service-card:hover .ad-service-card__icon {
    background: var(--accent);
    color: #fff;
}

.ad-service-card h3 {
    margin-top: 1.25rem;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--navy-800);
}

.ad-service-card p {
    flex: 1;
    margin-top: .625rem;
    color: var(--slate-600);
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.625;
}

.ad-service-card__link {
    margin-top: 1.25rem;
    color: var(--accent);
    font-size: .875rem;
    font-weight: 600;
}

.ad-service-card:hover .ad-service-card__link {
    color: var(--accent-dark);
}


/* Why choose */

.ad-why-grid {
    display: grid;
    gap: 1rem;
}

@media (min-width: 640px) {
    .ad-why-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.ad-why-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    border: 1px solid var(--slate-200);
    border-radius: var(--radius-2xl);
    background: #fff;
    padding: 1.25rem;
    box-shadow: var(--shadow-sm);
}

.ad-icon-circle {
    width: 3rem;
    height: 3rem;
    display: grid;
    place-items: center;
    flex: 0 0 3rem;
    border-radius: 999px;
    background: var(--navy-50);
    font-size: 1.25rem;
}

.ad-why-item h3 {
    font-size: .9375rem;
    font-weight: 600;
    color: var(--navy-800);
}

.ad-why-item p {
    margin-top: .25rem;
    color: var(--slate-600);
    font-size: .8125rem;
    font-weight: 500;
    line-height: 1.625;
}


/* Benefits */

.ad-benefit-grid {
    display: grid;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .ad-benefit-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .ad-benefit-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.ad-benefit {
    border-radius: var(--radius-2xl);
    background: rgba(255, 255, 255, .8);
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--navy-100);
}

.ad-benefit__icon {
    font-size: 1.5rem;
}

.ad-benefit h3 {
    margin-top: .75rem;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--navy-800);
}

.ad-benefit p {
    margin-top: .5rem;
    color: var(--slate-600);
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.625;
}


/* Process */

.ad-process {
    display: grid;
    gap: 1.5rem;
    counter-reset: step;
    list-style: none;
}

@media (min-width: 768px) {
    .ad-process {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .ad-process {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.ad-process__step {
    position: relative;
    border: 1px solid var(--slate-200);
    border-radius: var(--radius-2xl);
    background: #fff;
    padding: 1.5rem;
    padding-top: 1.875rem;
    box-shadow: var(--shadow-sm);
    counter-increment: step;
}

.ad-process__step::before {
    content: "Step " counter(step);
    position: absolute;
    top: -.75rem;
    left: 1.5rem;
    border-radius: 999px;
    background: linear-gradient(to right, var(--navy-700), var(--navy-500));
    padding: .25rem .75rem;
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
}

.ad-process__step h3 {
    margin-top: .75rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--navy-800);
}

.ad-process__step p {
    margin-top: .375rem;
    color: var(--slate-600);
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.625;
}


/* Split layouts */

.ad-split {
    display: grid;
    gap: 2.5rem;
    align-items: start;
}

@media (min-width: 1024px) {
    .ad-split {
        grid-template-columns: minmax(0, 1.5fr) minmax(280px, .9fr);
    }
    .ad-split--equal {
        grid-template-columns: 1fr 1.1fr;
    }
    .ad-split--why {
        grid-template-columns: .85fr 1.15fr;
        align-items: center;
    }
    .ad-split--faq {
        grid-template-columns: 1.4fr 1fr;
        position: relative;
    }
}

.ad-prose {
    color: var(--slate-700);
    font-size: .9375rem;
    line-height: 1.75;
}

.ad-prose>*+* {
    margin-top: 1rem;
}

.ad-prose h2 {
    margin-top: 0.5em;
    margin-bottom: .5em;
    color: var(--navy-800);
}

.ad-prose h3 {
    margin-top: 1.75em;
    margin-bottom: .5em;
    color: var(--navy-800);
}

.ad-prose h2 {
    font-size: 1.5rem;
}

.ad-prose h3 {
    font-size: 1.15rem;
}

.ad-prose a {
    color: var(--navy-700);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--accent);
    text-underline-offset: 3px;
}

.ad-prose ul,
.ad-prose ol {
    padding-left: 1.25rem;
}

.ad-prose li+li {
    margin-top: .35rem;
}

.ad-sidebar {
    position: sticky;
    top: 7rem;
}

.ad-breadcrumbs {
    margin: 0 0 1rem;
    color: var(--slate-500);
    font-size: .75rem;
}

.ad-breadcrumbs a:hover {
    color: var(--accent);
}

.ad-check-list,
.ad-fact-list,
.ad-area-list {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
}

.ad-check-list li,
.ad-fact-list li {
    display: flex;
    gap: .625rem;
    margin-top: .625rem;
    color: var(--slate-600);
    font-size: .875rem;
}

.ad-check-list li::before {
    content: "✔";
    color: #059669;
    font-weight: 800;
}

.ad-area-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem 1rem;
}

.ad-area-list li {
    color: var(--slate-600);
    font-size: .875rem;
}

.ad-area-list li::before {
    content: "📍";
    margin-right: .35rem;
}

.ad-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1rem;
}

.ad-chip {
    border: 1px solid var(--slate-300);
    border-radius: 999px;
    background: #fff;
    padding: .375rem .875rem;
    color: var(--slate-700);
    font-size: .875rem;
    transition: .15s ease;
}

.ad-chip:hover {
    border-color: var(--accent);
    color: var(--navy-800);
}

.ad-location-card {
    display: block;
    border: 1px solid var(--slate-200);
    border-radius: var(--radius-2xl);
    background: #fff;
    padding: 1.25rem;
    box-shadow: var(--shadow-sm);
    transition: .2s ease;
}

.ad-location-card:hover {
    border-color: rgba(249, 115, 22, .5);
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}

.ad-location-card h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--navy-800);
}

.ad-location-card:hover h3 {
    color: var(--accent-dark);
}

.ad-location-card p {
    margin-top: .25rem;
    color: var(--slate-600);
    font-size: .875rem;
}


/* Reviews */

.ad-review-grid {
    display: grid;
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .ad-review-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.ad-review {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--slate-200);
    border-radius: var(--radius-2xl);
    background: #fff;
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
}

.ad-review blockquote {
    flex: 1;
    margin: .75rem 0 1.125rem;
    color: var(--slate-700);
    font-size: .875rem;
    line-height: 1.625;
}

.ad-review figcaption {
    display: flex;
    align-items: center;
    gap: .75rem;
    border-top: 1px solid var(--slate-100);
    padding-top: 1rem;
    color: var(--navy-800);
    font-size: .875rem;
    font-weight: 700;
}

.ad-review figcaption span {
    display: block;
    color: var(--slate-500);
    font-size: .75rem;
    font-weight: 500;
}

.ad-review-avatar {
    width: 2.25rem;
    height: 2.25rem;
    display: flex!important;
    justify-content: center;
    place-items: center;
    border-radius: 999px;
    background: var(--navy-100);
    color: var(--navy-700)!important;
    font-weight: 700!important;
}


/* Before/after swipe comparator */

.ad-before-after {
    display: grid;
    gap: 1.5rem;
}

@media (min-width: 1024px) {
    .ad-before-after {
        grid-template-columns: 1.55fr .75fr;
    }
}

.ad-compare {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: var(--radius-2xl);
    background: #0b1220;
    box-shadow: var(--shadow-sm);
    user-select: none;
    touch-action: none;
    aspect-ratio: 16 / 10;
    min-height: 16rem;
}

.ad-compare__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.ad-compare__after {
    z-index: 1;
}

.ad-compare__before {
    z-index: 2;
    clip-path: inset(0 50% 0 0);
}

.ad-compare__label {
    position: absolute;
    top: .75rem;
    z-index: 4;
    border-radius: .5rem;
    padding: .3rem .65rem;
    color: #fff;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .04em;
}

.ad-compare__label--before {
    left: .75rem;
    background: rgba(10, 26, 49, .82);
}

.ad-compare__label--after {
    right: .75rem;
    background: var(--accent);
}

.ad-compare__divider {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    z-index: 5;
    width: 3px;
    background: #fff;
    transform: translateX(-50%);
    box-shadow: 0 0 0 1px rgba(10, 26, 49, .15);
}

.ad-compare__handle {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 6;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 3px solid #fff;
    border-radius: 999px;
    background: var(--navy-800);
    color: #fff;
    transform: translate(-50%, -50%);
    box-shadow: 0 8px 24px rgba(10, 26, 49, .28);
    cursor: ew-resize;
    font-size: 14px;
    font-weight: 600;
}

.ad-compare__range {
    position: absolute;
    inset: 0;
    z-index: 7;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: ew-resize;
}

.ad-comparison__copy {
    padding: 1.5rem;
    border: 1px solid var(--slate-200);
    border-radius: var(--radius-2xl);
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.ad-comparison__copy h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--navy-800);
}

.ad-comparison__copy p {
    margin-top: .375rem;
    color: var(--slate-600);
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.625;
}

.ad-proof-stack {
    display: grid;
    gap: 1.5rem;
}


/* FAQ */

.ad-faqs {
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: var(--radius-2xl);
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.ad-faq {
    border-bottom: 1px solid var(--slate-200);
}

.ad-faq:last-child {
    border-bottom: 0;
}

.ad-faq summary {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 1.25rem;
    cursor: pointer;
    color: var(--navy-800);
    font-weight: 600;
    list-style: none;
}

.ad-faq summary::-webkit-details-marker {
    display: none;
}

.ad-faq summary::before {
    content: "＋";
    color: var(--accent);
    font-size: 1.1rem;
    line-height: 1;
}

.ad-faq[open] summary::before {
    content: "－";
}

.ad-faq[open] {
    background: rgba(238, 244, 251, .5);
}

.ad-faq p {
    margin: 0;
    padding: 0 1.25rem 1.25rem 3.25rem;
    color: var(--slate-600);
    font-size: .875rem;
    line-height: 1.625;
}


/* Forms — exact preview quote card */

.ad-quote-card {
    border: 1px solid var(--slate-200);
    border-radius: var(--radius-2xl);
    background: #fff;
    padding: 1.5rem 1.75rem;
    box-shadow: var(--shadow-xl);
}

.ad-quote-card h2,
.ad-quote-card h3 {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--navy-800);
}

.home-faq .ad-soft-card {
    margin-top: 110px;
}

.home-contact .ad-card {
    width: 100%;
    max-width: 1000px;
}

.contact-info-card {
    position: relative;
}

.contact-info-card-inner {
    position: sticky;
    top: 160px!important;
}

.ad-quote-card__intro {
    margin: .25rem 0 1.25rem;
    color: var(--slate-500);
    font-size: .875rem;
}

.ad-form-grid {
    display: grid;
    gap: 1rem;
}

@media (min-width: 640px) {
    .ad-form-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.ad-field {
    margin-bottom: 1rem;
}

.ad-field label {
    display: block;
    margin-bottom: .375rem;
    color: var(--navy-700);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ad-field input,
.ad-field select,
.ad-field textarea {
    width: 100%;
    border: 1px solid var(--slate-300);
    border-radius: var(--radius-xl);
    background: #fff;
    padding: .75rem .875rem;
    color: var(--slate-900);
    font-size: .875rem;
    outline: 0;
    transition: .15s ease;
}

.ad-field input:focus,
.ad-field select:focus,
.ad-field textarea:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 4px rgba(249, 115, 22, .15);
}

.ad-form-note {
    margin: .75rem 0 0;
    color: var(--slate-500);
    text-align: center;
    font-size: .6875rem;
    line-height: 1.5;
}

.ad-form-alert {
    border-radius: .75rem;
    margin-bottom: 1rem;
    padding: .75rem 1rem;
    font-size: .875rem;
    font-weight: 600;
}

.ad-form-alert--success {
    border: 1px solid var(--emerald-200);
    background: var(--emerald-50);
    color: var(--emerald-800);
}

.ad-form-alert--error {
    border: 1px solid var(--red-200);
    background: var(--red-50);
    color: var(--red-700);
}

.ad-honeypot {
    position: absolute !important;
    left: -10000px !important;
    height: 0;
    overflow: hidden;
}


/* CTA band */

.ad-cta {
    position: relative;
    overflow: hidden;
    background: var(--navy-800);
    padding: 3.5rem 0;
    color: #fff;
}

.ad-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .07;
    background-image: repeating-linear-gradient(-45deg, #fff 0 2px, transparent 2px 18px);
}

.ad-cta::after {
    content: "";
    position: absolute;
    right: -6rem;
    top: -6rem;
    width: 18rem;
    height: 18rem;
    border-radius: 999px;
    background: rgba(249, 115, 22, .2);
    filter: blur(48px);
}

.ad-cta__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    gap: 2rem;
}

@media (min-width: 768px) {
    .ad-cta__inner {
        flex-direction: row;
        align-items: center;
    }
}

.ad-cta .ad-eyebrow {
    color: var(--accent);
    text-align: left;
}

.ad-prose .ad-eyebrow {
    text-align: left;
}

.ad-cta h2 {
    color: #fff;
    font-size: 1.875rem;
}

@media (min-width: 640px) {
    .ad-cta h2 {
        font-size: 2.25rem;
    }
}

.ad-cta p {
    max-width: 40rem;
    color: var(--navy-100);
    margin: .75rem 0;
}

.ad-cta__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    flex-shrink: 0;
}

@media (min-width: 768px) {
    .ad-cta__actions {
        align-items: flex-end;
    }
}

.ad-cta__phone {
    display: flex;
    align-items: center;
    gap: .5rem;
    color: #fff;
    font-size: 1.125rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.ad-cta__phone span {
    color: var(--accent);
}


/* Blog cards */

.ad-post-grid {
    display: grid;
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .ad-post-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.ad-post-card {
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: var(--radius-2xl);
    background: #fff;
    box-shadow: var(--shadow-sm);
    transition: .2s ease;
}

.ad-post-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.ad-post-card img {
    width: 100%;
    height: 10rem;
    object-fit: cover;
    transition: .5s ease;
}

.ad-post-card:hover img {
    transform: scale(1.05);
}

.ad-post-card__body {
    padding: 1.5rem;
}

.ad-post-meta {
    color: var(--accent);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ad-post-card h3 {
    margin-top: .5rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--navy-800);
}

.ad-post-card p {
    margin-top: .5rem;
    color: var(--slate-600);
    font-size: .875rem;
    line-height: 1.625;
}


/* Soft callout cards */

.ad-soft-card {
    border-radius: var(--radius-2xl);
    background: var(--navy-50);
    padding: 1.5rem;
    box-shadow: 0 0 0 1px var(--navy-100);
    position: sticky;
    top: 120px;
}

.ad-soft-card h3 {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--navy-800);
}

.ad-soft-card p {
    margin: .8rem 0;
    color: var(--slate-600);
    font-size: .875rem;
    line-height: 1.625;
}


/* Footer */

.ad-footer {
    background: var(--navy-900);
    color: var(--navy-100);
}

.ad-footer__grid {
    display: grid;
    gap: 2.5rem;
    padding-block: 3.5rem;
}

@media (min-width: 768px) {
    .ad-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .ad-footer__grid {
        grid-template-columns: 1.3fr .7fr 1fr 1fr;
        gap: 3rem;
    }
}

.ad-footer h3 {
    margin-bottom: 1rem;
    color: #fff;
    font-size: .875rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ad-footer p,
.ad-footer li,
.ad-footer address {
    color: #bac8da;
    font-size: .875rem;
    font-style: normal;
    line-height: 1.6;
}

.ad-footer ul {
    list-style: none;
}

.ad-footer li+li {
    margin-top: .5rem;
}

.ad-footer a:hover {
    color: var(--accent);
}

.ad-footer__brand p {
    max-width: 20rem;
    margin-top: 1rem;
}

.ad-contact-line {
    display: flex;
    gap: .75rem;
    margin-bottom: .75rem;
}

.ad-contact-line span:first-child {
    color: var(--accent);
}

.ad-footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.ad-footer__bottom-inner {
    min-height: 3.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    font-size: .75rem;
    color: #8da1b9;
}

.ad-footer .ad-logo__name {
    color: #fff;
}

.ad-footer .ad-logo__tag {
    color: #8da1b9;
}

.ad-footer .ad-socials {
    margin-top: 1.25rem;
}

.ad-footer .ad-socials a {
    width: 2.25rem;
    height: 2.25rem;
    font-size: .875rem;
    background: rgba(255, 255, 255, .1);
}


/* Mobile sticky CTA */

.ad-mobile-cta {
    display: none;
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 50;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
    border-top: 1px solid var(--slate-200);
    background: rgba(255, 255, 255, .95);
    padding: .5rem;
    box-shadow: 0 -8px 24px rgba(10, 26, 49, .12);
    backdrop-filter: blur(8px);
}

@media (max-width: 767px) {
    body {
        padding-bottom: 4.25rem;
    }
    .ad-mobile-cta {
        display: grid;
    }
    .ad-topbar {
        display: none;
    }
}

.ad-mobile-cta a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    border-radius: var(--radius-xl);
    padding: .75rem;
    color: #fff;
    font-size: .875rem;
    font-weight: 700;
}

.ad-mobile-cta a:first-child {
    background: var(--navy-800);
}

.ad-mobile-cta a:last-child {
    background: linear-gradient(to right, var(--accent), #10b981);
}


/* Media helpers */

.ad-media {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-2xl);
    box-shadow: var(--shadow-lg);
}

.ad-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ad-media--h64 {
    height: 16rem;
}

.ad-link {
    color: var(--accent);
    font-weight: 700;
}

.ad-link:hover {
    color: var(--accent-dark);
}


/* WP core */

.alignwide {
    width: min(100%, var(--max));
    margin-inline: auto;
}

.alignfull {
    width: 100%;
}

.wp-block-image img {
    border-radius: var(--radius-xl);
}

.navigation.pagination {
    margin-top: 2rem;
}

.nav-links {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.page-numbers {
    border: 1px solid var(--slate-300);
    border-radius: .5rem;
    padding: .5rem .75rem;
    font-size: .875rem;
}

.page-numbers.current {
    border-color: var(--navy-800);
    background: var(--navy-800);
    color: #fff;
}

.single-location .ad-eyebrow {
    text-align: center;
    margin-bottom: 1rem;
}

.single-location .ad-prose .ad-eyebrow {
    text-align: left;
    margin-bottom: 1rem;
}

.single-location .ad-section-subtitle {
    text-align: center;
}

.single-location .ad-card p {
    margin: 1rem 0!important;
}

.single-location .ad-btn {
    padding: 0.8rem 1.75rem;
}


/* Page hero strip for inner pages */

.ad-page-hero {
    background: linear-gradient(to bottom right, var(--navy-900), var(--navy-700));
    color: #fff;
    padding: 3.5rem 0;
}

.ad-page-hero h1 {
    color: #fff;
    font-size: 2.25rem;
}

@media (min-width: 640px) {
    .ad-page-hero h1 {
        font-size: 3rem;
    }
}

.ad-page-hero p {
    margin-top: 1rem;
    max-width: 48rem;
    color: var(--navy-100);
    font-size: 1.125rem;
}

.ad-page-hero .ad-breadcrumbs {
    color: var(--navy-200);
}

.ad-page-hero .ad-breadcrumbs a:hover {
    color: #fff;
}

.ad-page-hero .ad-eyebrow {
    color: var(--accent);
}

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