/*
 * Theme Name:   Charlottesville Deck Builders
 * Description:  Neve Child Theme — Charlottesville Deck Builders
 * Template:     neve
 * Version:      2.0.0
 * Text Domain:  cdb
 */

/* ============================================================
   CSS CUSTOM PROPERTIES
   ============================================================ */
:root {
    --cdb-ink:          #1A1A2E;
    --cdb-slate:        #2E3A59;
    --cdb-steel:        #4A5568;
    --cdb-mist:         #8896AB;
    --cdb-white:        #FFFFFF;
    --cdb-fog:          #F7F8FA;
    --cdb-cloud:        #EFF2F7;
    --cdb-sand:         #F4F1EC;
    --cdb-cta:          #2563EB;
    --cdb-cta-dark:     #1D4ED8;
    --cdb-cta-light:    #DBEAFE;
    --cdb-warm:         #C2622A;
    --cdb-warm-light:   #FDF0E8;
    --cdb-font-display: 'Fraunces', Georgia, serif;
    --cdb-font-body:    'Inter', system-ui, -apple-system, sans-serif;
    --cdb-max-width:    1160px;
    --cdb-radius-sm:    6px;
    --cdb-radius-md:    12px;
    --cdb-radius-lg:    20px;
    --cdb-radius-pill:  999px;
    --cdb-shadow-sm:    0 2px 8px rgba(26,26,46,0.08);
    --cdb-shadow-md:    0 6px 24px rgba(26,26,46,0.10);
    --cdb-shadow-lg:    0 16px 56px rgba(26,26,46,0.14);
    --cdb-shadow-cta:   0 8px 32px rgba(37,99,235,0.30);
    --cdb-ease:         0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ============================================================
   ANIMATIONS
   ============================================================ */
@keyframes cdb-fade-up {
    from { opacity: 0; transform: translateY(32px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes cdb-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes cdb-slide-left {
    from { opacity: 0; transform: translateX(-32px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes cdb-slide-right-in {
    from { opacity: 0; transform: translateX(32px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes cdb-count-pulse {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.04); }
    100% { transform: scale(1); }
}

/* Hero load animation */
.cdb-hero__copy {
    animation: cdb-fade-up 0.7s ease both;
    animation-delay: 0.1s;
}
.cdb-hero__form {
    animation: cdb-fade-up 0.7s ease both;
    animation-delay: 0.25s;
}
.cdb-trustbar {
    animation: cdb-fade-in 0.6s ease both;
    animation-delay: 0.4s;
}

/* Scroll-triggered classes */
.cdb-animate {
    opacity: 0 !important;
    transform: translateY(28px) !important;
    transition: opacity 0.6s ease, transform 0.6s ease !important;
}
.cdb-animate.is-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
}
.cdb-animate--left {
    opacity: 0 !important;
    transform: translateX(-28px) !important;
    transition: opacity 0.6s ease, transform 0.6s ease !important;
}
.cdb-animate--left.is-visible {
    opacity: 1 !important;
    transform: translateX(0) !important;
}
.cdb-animate--right {
    opacity: 0 !important;
    transform: translateX(28px) !important;
    transition: opacity 0.6s ease, transform 0.6s ease !important;
}
.cdb-animate--right.is-visible {
    opacity: 1 !important;
    transform: translateX(0) !important;
}
.cdb-animate--delay-1 { transition-delay: 0.08s !important; }
.cdb-animate--delay-2 { transition-delay: 0.16s !important; }
.cdb-animate--delay-3 { transition-delay: 0.24s !important; }
.cdb-animate--delay-4 { transition-delay: 0.32s !important; }
.cdb-animate--delay-5 { transition-delay: 0.40s !important; }

/* ============================================================
   RESET & BASE
   ============================================================ */
.cdb-page *,
.cdb-page *::before,
.cdb-page *::after {
    box-sizing: border-box !important;
}
.cdb-page {
    font-family: var(--cdb-font-body) !important;
    color: var(--cdb-ink) !important;
    -webkit-font-smoothing: antialiased !important;
    line-height: 1.6 !important;
}
.cdb-page img {
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
}
.cdb-page a { text-decoration: none !important; }

/* ============================================================
   LAYOUT
   ============================================================ */
.cdb-container {
    max-width: var(--cdb-max-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 28px !important;
    padding-right: 28px !important;
}
.cdb-section {
    padding-top: 88px !important;
    padding-bottom: 88px !important;
    position: relative !important;
}
.cdb-section--fog   { background-color: var(--cdb-fog)   !important; }
.cdb-section--cloud { background-color: var(--cdb-cloud) !important; }
.cdb-section--sand  { background-color: var(--cdb-sand)  !important; }
.cdb-section--white { background-color: var(--cdb-white) !important; }
.cdb-section--ink   { background-color: var(--cdb-ink)   !important; }
.cdb-section--slate { background-color: var(--cdb-slate) !important; }

/* Section top accent line */
.cdb-section--accent-top::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 3px !important;
    background: linear-gradient(90deg, var(--cdb-cta) 0%, var(--cdb-cta-light) 100%) !important;
}

/* Grids */
.cdb-grid-2 {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px !important;
}
.cdb-grid-3 {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 28px !important;
}
.cdb-grid-4 {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
}
.cdb-split {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 64px !important;
    align-items: center !important;
}
.cdb-split--wide { grid-template-columns: 1.15fr 1fr !important; }
.cdb-split--form { grid-template-columns: 1fr 440px !important; gap: 56px !important; }
.cdb-split--reversed > *:first-child { order: 2 !important; }
.cdb-split--reversed > *:last-child  { order: 1 !important; }

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
.cdb-eyebrow {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-family: var(--cdb-font-body) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: var(--cdb-cta) !important;
    margin-bottom: 14px !important;
}
.cdb-eyebrow::before {
    content: '' !important;
    display: block !important;
    width: 22px !important;
    height: 2px !important;
    background: var(--cdb-cta) !important;
    flex-shrink: 0 !important;
}
.cdb-eyebrow--warm         { color: var(--cdb-warm) !important; }
.cdb-eyebrow--warm::before { background: var(--cdb-warm) !important; }
.cdb-eyebrow--light         { color: #93C5FD !important; }
.cdb-eyebrow--light::before { background: #93C5FD !important; }

.cdb-h1 {
    font-family: var(--cdb-font-display) !important;
    font-size: clamp(2.8rem, 5.5vw, 4.4rem) !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
    letter-spacing: -0.025em !important;
    margin: 0 0 20px !important;
    color: var(--cdb-ink) !important;
}
.cdb-h1--light { color: #FFFFFF !important; }

.cdb-h2 {
    font-family: var(--cdb-font-display) !important;
    font-size: clamp(2rem, 3.8vw, 3rem) !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 16px !important;
    color: var(--cdb-ink) !important;
}
.cdb-h2--light  { color: #FFFFFF !important; }
.cdb-h2--center { text-align: center !important; }

.cdb-h3 {
    font-family: var(--cdb-font-display) !important;
    font-size: clamp(1.3rem, 2.2vw, 1.7rem) !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    margin: 0 0 10px !important;
    color: var(--cdb-ink) !important;
}
.cdb-h3--light { color: #FFFFFF !important; }

.cdb-h4 {
    font-family: var(--cdb-font-body) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    margin: 0 0 8px !important;
    color: var(--cdb-ink) !important;
}
.cdb-h4--light { color: #FFFFFF !important; }

.cdb-lead {
    font-size: 1.1rem !important;
    color: var(--cdb-steel) !important;
    line-height: 1.75 !important;
    margin: 0 0 28px !important;
    max-width: 560px !important;
}
.cdb-lead--light { color: rgba(255,255,255,0.82) !important; }
.cdb-lead--wide  { max-width: none !important; }

.cdb-body {
    font-family: var(--cdb-font-body) !important;
    font-size: 1rem !important;
    color: var(--cdb-steel) !important;
    line-height: 1.78 !important;
    margin: 0 0 18px !important;
}
.cdb-body--light { color: rgba(255,255,255,0.75) !important; }
.cdb-body:last-child { margin-bottom: 0 !important; }

.cdb-section-header {
    max-width: 640px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 56px !important;
    text-align: center !important;
}
.cdb-section-header .cdb-eyebrow {
    justify-content: center !important;
}
.cdb-section-header .cdb-eyebrow::before { display: none !important; }

/* Pull quote accent */
.cdb-pull-quote {
    border-left: 3px solid var(--cdb-cta) !important;
    padding: 6px 0 6px 20px !important;
    margin: 24px 0 0 0 !important;
    font-family: var(--cdb-font-display) !important;
    font-size: 1.15rem !important;
    font-style: italic !important;
    color: var(--cdb-ink) !important;
    line-height: 1.6 !important;
}
.cdb-pull-quote--light {
    border-color: #93C5FD !important;
    color: rgba(255,255,255,0.92) !important;
}
/* Prevent pull quote from being clipped by image panel overflow */
.cdb-image-panel__content .cdb-animate {
    padding-bottom: 8px !important;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.cdb-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    font-family: var(--cdb-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.03em !important;
    padding: 15px 32px !important;
    border-radius: var(--cdb-radius-pill) !important;
    text-decoration: none !important;
    cursor: pointer !important;
    border: none !important;
    transition: all var(--cdb-ease) !important;
    white-space: nowrap !important;
    line-height: 1 !important;
}
.cdb-btn--primary {
    background: var(--cdb-cta) !important;
    color: #FFFFFF !important;
    box-shadow: var(--cdb-shadow-cta) !important;
}
.cdb-btn--primary:hover {
    background: var(--cdb-cta-dark) !important;
    box-shadow: 0 12px 40px rgba(37,99,235,0.42) !important;
    transform: translateY(-2px) !important;
    color: #FFFFFF !important;
}
.cdb-btn--lg { font-size: 1rem !important; padding: 18px 40px !important; }

.cdb-btn--ghost {
    background: transparent !important;
    color: #FFFFFF !important;
    border: 2px solid rgba(255,255,255,0.50) !important;
}
.cdb-btn--ghost:hover {
    background: rgba(255,255,255,0.10) !important;
    border-color: rgba(255,255,255,0.85) !important;
    color: #FFFFFF !important;
}
.cdb-btn--outline {
    background: transparent !important;
    color: var(--cdb-cta) !important;
    border: 2px solid var(--cdb-cta) !important;
}
.cdb-btn--outline:hover {
    background: var(--cdb-cta) !important;
    color: #FFFFFF !important;
}
.cdb-btn--warm {
    background: var(--cdb-warm) !important;
    color: #FFFFFF !important;
    box-shadow: 0 8px 28px rgba(194,98,42,0.28) !important;
}
.cdb-btn--warm:hover {
    background: #A8521F !important;
    transform: translateY(-2px) !important;
    color: #FFFFFF !important;
}
.cdb-btn-group {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    align-items: center !important;
}
.cdb-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-family: var(--cdb-font-body) !important;
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    color: var(--cdb-cta) !important;
    text-decoration: none !important;
    letter-spacing: 0.02em !important;
    transition: gap var(--cdb-ease), color var(--cdb-ease) !important;
}
.cdb-link:hover { gap: 10px !important; color: var(--cdb-cta-dark) !important; }
.cdb-link--light { color: #93C5FD !important; }
.cdb-link--light:hover { color: #FFFFFF !important; }

/* ============================================================
   NEVE HEADER OVERRIDES
   ============================================================ */
.hfg-header,
.hfg-header .hfg-wrapper {
    background-color: var(--cdb-ink) !important;
    box-shadow: 0 2px 20px rgba(26,26,46,0.22) !important;
}
.hfg-header .nv-nav-wrap .nav-ul li a,
.hfg-header .nv-nav-wrap .nav-ul li a:visited {
    font-family: var(--cdb-font-body) !important;
    font-weight: 600 !important;
    font-size: 0.875rem !important;
    color: rgba(255,255,255,0.88) !important;
    transition: color var(--cdb-ease) !important;
}
.hfg-header .nv-nav-wrap .nav-ul li a:hover,
.hfg-header .nv-nav-wrap .nav-ul li.current-menu-item > a {
    color: #93C5FD !important;
}
.nv-site-name-wrap .site-title a,
.site-logo .nv-site-name {
    font-family: var(--cdb-font-display) !important;
    font-weight: 900 !important;
    color: #FFFFFF !important;
    font-size: 1.3rem !important;
    letter-spacing: -0.02em !important;
}
.navbar-toggle .icon-bar { background-color: #FFFFFF !important; }

/* ============================================================
   NEVE FOOTER OVERRIDES
   ============================================================ */
.footer-top-wrap { background-color: var(--cdb-ink) !important; }
.footer-bottom-wrap {
    background-color: #0F0F1E !important;
    font-size: 0.85rem !important;
}
.footer-top-wrap p,
.footer-top-wrap li,
.footer-top-wrap span,
.footer-top-wrap a {
    color: rgba(255,255,255,0.68) !important;
    font-family: var(--cdb-font-body) !important;
}
.footer-top-wrap a:hover { color: #93C5FD !important; }
.footer-top-wrap h1,
.footer-top-wrap h2,
.footer-top-wrap h3,
.footer-top-wrap h4 {
    font-family: var(--cdb-font-display) !important;
    color: #FFFFFF !important;
}
.footer-bottom-wrap,
.footer-bottom-wrap p,
.footer-bottom-wrap a {
    color: rgba(255,255,255,0.45) !important;
    font-family: var(--cdb-font-body) !important;
}

/* ============================================================
   HERO
   ============================================================ */
.cdb-hero {
    background-color: var(--cdb-ink) !important;
    padding: 88px 0 80px !important;
    position: relative !important;
    overflow: hidden !important;
}
.cdb-hero::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background:
        radial-gradient(ellipse 70% 60% at 18% 50%, rgba(37,99,235,0.09) 0%, transparent 100%),
        radial-gradient(ellipse 45% 40% at 82% 20%, rgba(194,98,42,0.06) 0%, transparent 100%) !important;
    pointer-events: none !important;
}
.cdb-hero__inner {
    position: relative !important;
    z-index: 1 !important;
    display: grid !important;
    grid-template-columns: 1fr 440px !important;
    gap: 56px !important;
    align-items: center !important;
}
.cdb-hero__tag {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: rgba(37,99,235,0.15) !important;
    border: 1px solid rgba(37,99,235,0.35) !important;
    color: #93C5FD !important;
    font-family: var(--cdb-font-body) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    padding: 5px 14px !important;
    border-radius: var(--cdb-radius-pill) !important;
    margin-bottom: 22px !important;
}
.cdb-hero__title {
    font-family: var(--cdb-font-display) !important;
    font-size: clamp(2.6rem, 5.5vw, 4.2rem) !important;
    font-weight: 900 !important;
    color: #FFFFFF !important;
    line-height: 1.05 !important;
    letter-spacing: -0.025em !important;
    margin: 0 0 20px !important;
}
.cdb-hero__title span { color: #93C5FD !important; }
.cdb-hero__lead {
    font-size: 1.08rem !important;
    color: rgba(255,255,255,0.78) !important;
    line-height: 1.74 !important;
    margin: 0 0 32px !important;
    max-width: 520px !important;
}
.cdb-hero__form {
    background: var(--cdb-white) !important;
    border-radius: var(--cdb-radius-lg) !important;
    padding: 36px 32px !important;
    box-shadow: 0 20px 64px rgba(0,0,0,0.30) !important;
    position: relative !important;
}
.cdb-hero__form::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 4px !important;
    background: var(--cdb-cta) !important;
    border-radius: var(--cdb-radius-lg) var(--cdb-radius-lg) 0 0 !important;
}
.cdb-hero__form-title {
    font-family: var(--cdb-font-display) !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    color: var(--cdb-ink) !important;
    margin: 0 0 6px !important;
    line-height: 1.2 !important;
}
.cdb-hero__form-sub {
    font-size: 0.875rem !important;
    color: var(--cdb-steel) !important;
    margin: 0 0 22px !important;
    line-height: 1.5 !important;
}
.cdb-form-note {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-top: 14px !important;
    font-size: 0.78rem !important;
    color: var(--cdb-mist) !important;
    font-family: var(--cdb-font-body) !important;
}
.cdb-form-note-dot {
    width: 6px !important;
    height: 6px !important;
    border-radius: 50% !important;
    background: var(--cdb-cta) !important;
    flex-shrink: 0 !important;
}

/* ============================================================
   TRUST BAR
   ============================================================ */
.cdb-trustbar {
    background: var(--cdb-slate) !important;
    padding: 20px 0 !important;
    border-top: 1px solid rgba(255,255,255,0.05) !important;
    border-bottom: 1px solid rgba(255,255,255,0.05) !important;
}
.cdb-trustbar__inner {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px 40px !important;
}
.cdb-trustbar__item {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    font-family: var(--cdb-font-body) !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,0.85) !important;
}
.cdb-trustbar__icon {
    width: 30px !important;
    height: 30px !important;
    border-radius: 50% !important;
    background: rgba(37,99,235,0.25) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}
.cdb-trustbar__icon svg {
    width: 14px !important;
    height: 14px !important;
    fill: #93C5FD !important;
}

/* ============================================================
   IMAGE PANEL — full-bleed split sections
   ============================================================ */
.cdb-image-panel {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    min-height: 580px !important;
}
.cdb-image-panel__img {
    width: 100% !important;
    height: 100% !important;
    min-height: 420px !important;
    object-fit: cover !important;
    display: block !important;
    background: var(--cdb-cloud) !important;
}
.cdb-image-panel__content {
    padding: 80px 68px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    background: var(--cdb-white) !important;
}
.cdb-image-panel__content--fog   { background: var(--cdb-fog)   !important; }
.cdb-image-panel__content--sand  { background: var(--cdb-sand)  !important; }
.cdb-image-panel__content--ink   { background: var(--cdb-ink)   !important; }
.cdb-image-panel__content--slate { background: var(--cdb-slate) !important; }
.cdb-image-panel--reversed .cdb-image-panel__img     { order: 2 !important; }
.cdb-image-panel--reversed .cdb-image-panel__content { order: 1 !important; }

/* ============================================================
   STATS — counting animation
   ============================================================ */
.cdb-stats {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    border-radius: var(--cdb-radius-md) !important;
    overflow: hidden !important;
    box-shadow: var(--cdb-shadow-md) !important;
    border: 1px solid rgba(26,26,46,0.08) !important;
}
.cdb-stat {
    padding: 40px 28px !important;
    text-align: center !important;
    background: var(--cdb-white) !important;
    border-right: 1px solid rgba(26,26,46,0.08) !important;
    position: relative !important;
    overflow: hidden !important;
    transition: background var(--cdb-ease) !important;
}
.cdb-stat:last-child { border-right: none !important; }
.cdb-stat::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 3px !important;
    background: var(--cdb-cta) !important;
    transform: scaleX(0) !important;
    transition: transform 0.4s ease !important;
}
.cdb-stat.is-counted::after { transform: scaleX(1) !important; }
.cdb-stat__num {
    font-family: var(--cdb-font-display) !important;
    font-size: clamp(2.2rem, 4vw, 3.2rem) !important;
    font-weight: 900 !important;
    color: var(--cdb-cta) !important;
    display: block !important;
    line-height: 1 !important;
    margin-bottom: 10px !important;
    letter-spacing: -0.03em !important;
}
.cdb-stat__label {
    font-family: var(--cdb-font-body) !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    color: var(--cdb-steel) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    line-height: 1.3 !important;
}

/* ============================================================
   SERVICE CARDS
   ============================================================ */
.cdb-service-card {
    background: var(--cdb-white) !important;
    border-radius: var(--cdb-radius-md) !important;
    border: 1px solid rgba(26,26,46,0.08) !important;
    overflow: hidden !important;
    transition: transform var(--cdb-ease), box-shadow var(--cdb-ease) !important;
    display: flex !important;
    flex-direction: column !important;
    border-top: 3px solid transparent !important;
}
.cdb-service-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: var(--cdb-shadow-lg) !important;
    border-top-color: var(--cdb-cta) !important;
}
.cdb-service-card__img {
    width: 100% !important;
    height: 220px !important;
    object-fit: cover !important;
    display: block !important;
    background: var(--cdb-cloud) !important;
    transition: transform 0.4s ease !important;
}
.cdb-service-card:hover .cdb-service-card__img {
    transform: scale(1.03) !important;
}
.cdb-service-card__img-wrap {
    overflow: hidden !important;
    flex-shrink: 0 !important;
}
.cdb-service-card__body {
    padding: 28px 26px 32px !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}
.cdb-service-card__number {
    font-family: var(--cdb-font-display) !important;
    font-size: 2rem !important;
    font-weight: 900 !important;
    color: var(--cdb-cta-light) !important;
    line-height: 1 !important;
    margin-bottom: 8px !important;
    letter-spacing: -0.03em !important;
}
.cdb-service-card__title {
    font-family: var(--cdb-font-display) !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    color: var(--cdb-ink) !important;
    margin: 0 0 10px !important;
    line-height: 1.25 !important;
}
.cdb-service-card__text {
    font-size: 0.925rem !important;
    color: var(--cdb-steel) !important;
    line-height: 1.72 !important;
    margin: 0 0 20px !important;
    flex: 1 !important;
}

/* ============================================================
   FEATURE / BENEFIT CARDS
   ============================================================ */
.cdb-feature-card {
    padding: 32px 28px !important;
    border-radius: var(--cdb-radius-md) !important;
    background: var(--cdb-white) !important;
    border: 1px solid rgba(26,26,46,0.07) !important;
    box-shadow: var(--cdb-shadow-sm) !important;
    transition: transform var(--cdb-ease), box-shadow var(--cdb-ease), border-color var(--cdb-ease) !important;
}
.cdb-feature-card:hover {
    transform: translateY(-3px) !important;
    box-shadow: var(--cdb-shadow-md) !important;
    border-color: var(--cdb-cta-light) !important;
}
.cdb-feature-card--dark {
    background: rgba(255,255,255,0.06) !important;
    border-color: rgba(255,255,255,0.10) !important;
}
.cdb-feature-card__icon {
    width: 48px !important;
    height: 48px !important;
    border-radius: var(--cdb-radius-sm) !important;
    background: var(--cdb-cta-light) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-bottom: 18px !important;
}
.cdb-feature-card__icon svg { width: 22px !important; height: 22px !important; fill: var(--cdb-cta) !important; }
.cdb-feature-card__icon--warm { background: var(--cdb-warm-light) !important; }
.cdb-feature-card__icon--warm svg { fill: var(--cdb-warm) !important; }
.cdb-feature-card__title {
    font-family: var(--cdb-font-display) !important;
    font-size: 1.08rem !important;
    font-weight: 700 !important;
    color: var(--cdb-ink) !important;
    margin: 0 0 8px !important;
}
.cdb-feature-card__title--light { color: #FFFFFF !important; }
.cdb-feature-card__text {
    font-size: 0.9rem !important;
    color: var(--cdb-steel) !important;
    line-height: 1.72 !important;
    margin: 0 !important;
}
.cdb-feature-card__text--light { color: rgba(255,255,255,0.72) !important; }

/* ============================================================
   PROCESS STEPS
   ============================================================ */
.cdb-steps {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 0 !important;
    position: relative !important;
}
.cdb-steps::before {
    content: '' !important;
    position: absolute !important;
    top: 27px !important;
    left: calc(12.5% + 27px) !important;
    right: calc(12.5% + 27px) !important;
    height: 2px !important;
    background: var(--cdb-cta-light) !important;
    z-index: 0 !important;
}
.cdb-step {
    text-align: center !important;
    padding: 0 18px !important;
    position: relative !important;
    z-index: 1 !important;
}
.cdb-step__num {
    width: 54px !important;
    height: 54px !important;
    border-radius: 50% !important;
    background: var(--cdb-cta) !important;
    color: #FFFFFF !important;
    font-family: var(--cdb-font-display) !important;
    font-size: 1.2rem !important;
    font-weight: 900 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 auto 20px !important;
    box-shadow: var(--cdb-shadow-cta) !important;
    transition: transform var(--cdb-ease) !important;
}
.cdb-step:hover .cdb-step__num { transform: scale(1.08) !important; }
.cdb-step__title {
    font-family: var(--cdb-font-display) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--cdb-ink) !important;
    margin: 0 0 8px !important;
}
.cdb-step__text {
    font-size: 0.875rem !important;
    color: var(--cdb-steel) !important;
    line-height: 1.65 !important;
    margin: 0 !important;
}

/* ============================================================
   MATERIAL CARDS
   ============================================================ */
.cdb-material-card {
    background: var(--cdb-white) !important;
    border: 1px solid rgba(26,26,46,0.08) !important;
    border-radius: var(--cdb-radius-md) !important;
    padding: 28px 24px !important;
    border-top: 3px solid var(--cdb-cta) !important;
    transition: transform var(--cdb-ease), box-shadow var(--cdb-ease) !important;
}
.cdb-material-card:hover {
    transform: translateY(-3px) !important;
    box-shadow: var(--cdb-shadow-md) !important;
}
.cdb-material-card__swatch {
    width: 36px !important;
    height: 36px !important;
    border-radius: var(--cdb-radius-sm) !important;
    margin-bottom: 14px !important;
    border: 1px solid rgba(26,26,46,0.10) !important;
}
.cdb-material-card__title {
    font-family: var(--cdb-font-display) !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: var(--cdb-ink) !important;
    margin: 0 0 8px !important;
}
.cdb-material-card__text {
    font-size: 0.875rem !important;
    color: var(--cdb-steel) !important;
    line-height: 1.7 !important;
    margin: 0 !important;
}

/* ============================================================
   CTA BANNER — full width
   ============================================================ */
.cdb-cta-banner {
    background: var(--cdb-cta) !important;
    padding: 72px 0 !important;
    position: relative !important;
    overflow: hidden !important;
}
.cdb-cta-banner::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background:
        radial-gradient(ellipse 55% 80% at 90% 50%, rgba(255,255,255,0.07) 0%, transparent 100%),
        radial-gradient(ellipse 35% 60% at 8% 50%, rgba(0,0,0,0.08) 0%, transparent 100%) !important;
    pointer-events: none !important;
}
.cdb-cta-banner__inner {
    position: relative !important;
    z-index: 1 !important;
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 40px !important;
    align-items: center !important;
}
.cdb-cta-banner__title {
    font-family: var(--cdb-font-display) !important;
    font-size: clamp(1.8rem, 3.2vw, 2.6rem) !important;
    font-weight: 900 !important;
    color: #FFFFFF !important;
    line-height: 1.1 !important;
    margin: 0 0 10px !important;
    letter-spacing: -0.02em !important;
}
.cdb-cta-banner__text {
    font-size: 1rem !important;
    color: rgba(255,255,255,0.85) !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

/* ============================================================
   BOTTOM FORM — dark
   ============================================================ */
.cdb-bottom-form {
    padding: 88px 0 !important;
    background: var(--cdb-ink) !important;
}
.cdb-bottom-form__inner {
    display: grid !important;
    grid-template-columns: 1fr 440px !important;
    gap: 64px !important;
    align-items: start !important;
}
.cdb-bottom-form__form {
    background: var(--cdb-white) !important;
    border-radius: var(--cdb-radius-md) !important;
    padding: 36px 32px !important;
    box-shadow: var(--cdb-shadow-lg) !important;
    position: relative !important;
}
.cdb-bottom-form__form::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important; left: 0 !important; right: 0 !important;
    height: 4px !important;
    background: var(--cdb-cta) !important;
    border-radius: var(--cdb-radius-md) var(--cdb-radius-md) 0 0 !important;
}
.cdb-bottom-form__form-title {
    font-family: var(--cdb-font-display) !important;
    font-size: 1.35rem !important;
    font-weight: 700 !important;
    color: var(--cdb-ink) !important;
    margin: 0 0 6px !important;
}
.cdb-bottom-form__form-sub {
    font-size: 0.875rem !important;
    color: var(--cdb-steel) !important;
    margin: 0 0 20px !important;
    line-height: 1.5 !important;
}

/* ============================================================
   CHECKLIST
   ============================================================ */
.cdb-checklist {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
}
.cdb-checklist li {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    font-size: 0.95rem !important;
    color: var(--cdb-steel) !important;
    line-height: 1.55 !important;
}
.cdb-checklist--light li { color: rgba(255,255,255,0.85) !important; }
.cdb-checklist__icon {
    flex-shrink: 0 !important;
    width: 22px !important;
    height: 22px !important;
    border-radius: 50% !important;
    background: var(--cdb-cta) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: 1px !important;
}
.cdb-checklist__icon svg {
    width: 11px !important;
    height: 11px !important;
    fill: none !important;
    stroke: #fff !important;
    stroke-width: 2.5 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.cdb-testimonial {
    background: var(--cdb-white) !important;
    border-radius: var(--cdb-radius-md) !important;
    padding: 32px 28px !important;
    border: 1px solid rgba(26,26,46,0.07) !important;
    box-shadow: var(--cdb-shadow-sm) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    transition: transform var(--cdb-ease), box-shadow var(--cdb-ease) !important;
}
.cdb-testimonial:hover {
    transform: translateY(-3px) !important;
    box-shadow: var(--cdb-shadow-md) !important;
}
.cdb-testimonial__stars {
    color: #F59E0B !important;
    font-size: 0.9rem !important;
    letter-spacing: 2px !important;
}
.cdb-testimonial__text {
    font-size: 0.95rem !important;
    color: var(--cdb-ink) !important;
    line-height: 1.75 !important;
    font-style: italic !important;
    margin: 0 !important;
    flex: 1 !important;
}
.cdb-testimonial__author {
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    color: var(--cdb-cta) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
}

/* ============================================================
   FAQ ACCORDION
   ============================================================ */
.cdb-accordion {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    max-width: 840px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.cdb-accordion-item {
    background: var(--cdb-white) !important;
    border: 1px solid rgba(26,26,46,0.09) !important;
    border-radius: var(--cdb-radius-md) !important;
    overflow: hidden !important;
    transition: box-shadow var(--cdb-ease) !important;
}
.cdb-accordion-item.is-open {
    box-shadow: var(--cdb-shadow-md) !important;
}
.cdb-accordion-trigger {
    width: 100% !important;
    background: none !important;
    border: none !important;
    padding: 22px 26px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    cursor: pointer !important;
    text-align: left !important;
    transition: background var(--cdb-ease) !important;
}
.cdb-accordion-trigger:hover { background: var(--cdb-fog) !important; }
.cdb-accordion-trigger h4 {
    font-family: var(--cdb-font-body) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: var(--cdb-ink) !important;
    margin: 0 !important;
    line-height: 1.35 !important;
    flex: 1 !important;
}
.cdb-accordion-icon {
    flex-shrink: 0 !important;
    width: 30px !important;
    height: 30px !important;
    border-radius: 50% !important;
    background: var(--cdb-cta-light) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background var(--cdb-ease) !important;
}
.cdb-accordion-icon svg {
    width: 14px !important;
    height: 14px !important;
    fill: none !important;
    stroke: var(--cdb-cta) !important;
    stroke-width: 2.5 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    transition: transform 0.28s ease !important;
}
.cdb-accordion-item.is-open .cdb-accordion-icon { background: var(--cdb-cta) !important; }
.cdb-accordion-item.is-open .cdb-accordion-icon svg {
    stroke: #FFFFFF !important;
    transform: rotate(180deg) !important;
}
.cdb-accordion-body { display: none !important; padding: 0 26px 22px !important; }
.cdb-accordion-item.is-open .cdb-accordion-body { display: block !important; }
.cdb-accordion-body p {
    font-size: 0.925rem !important;
    color: var(--cdb-steel) !important;
    line-height: 1.75 !important;
    margin: 0 !important;
    border-top: 1px solid var(--cdb-cloud) !important;
    padding-top: 18px !important;
}

/* ============================================================
   MAP & TOWNS
   ============================================================ */
.cdb-map-wrap {
    border-radius: var(--cdb-radius-md) !important;
    overflow: hidden !important;
    box-shadow: var(--cdb-shadow-md) !important;
    line-height: 0 !important;
}
.cdb-map-wrap iframe {
    width: 100% !important;
    height: 380px !important;
    border: 0 !important;
    display: block !important;
}
.cdb-towns-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin: 20px 0 !important;
}
.cdb-town-pill {
    background: var(--cdb-cta-light) !important;
    color: var(--cdb-cta) !important;
    font-family: var(--cdb-font-body) !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    padding: 6px 16px !important;
    border-radius: var(--cdb-radius-pill) !important;
    text-decoration: none !important;
    transition: background var(--cdb-ease), color var(--cdb-ease) !important;
    display: inline-block !important;
}
.cdb-town-pill:hover {
    background: var(--cdb-cta) !important;
    color: #FFFFFF !important;
}

/* ============================================================
   STICKY SIDEBAR CTA (service pages)
   ============================================================ */
.cdb-page-with-sidebar {
    display: grid !important;
    grid-template-columns: 1fr 300px !important;
    gap: 48px !important;
    align-items: start !important;
    max-width: var(--cdb-max-width) !important;
    margin: 0 auto !important;
    padding: 0 28px !important;
}
.cdb-sidebar {
    position: sticky !important;
    top: 80px !important;
}
.cdb-sidebar-cta {
    background: var(--cdb-ink) !important;
    border-radius: var(--cdb-radius-md) !important;
    padding: 32px 28px !important;
    box-shadow: var(--cdb-shadow-lg) !important;
    position: relative !important;
    overflow: hidden !important;
}
.cdb-sidebar-cta::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important; left: 0 !important; right: 0 !important;
    height: 4px !important;
    background: var(--cdb-cta) !important;
}
.cdb-sidebar-cta__title {
    font-family: var(--cdb-font-display) !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    color: #FFFFFF !important;
    margin: 0 0 10px !important;
    line-height: 1.2 !important;
}
.cdb-sidebar-cta__text {
    font-size: 0.875rem !important;
    color: rgba(255,255,255,0.70) !important;
    margin: 0 0 22px !important;
    line-height: 1.6 !important;
}
.cdb-sidebar-cta__list {
    list-style: none !important;
    margin: 0 0 24px !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}
.cdb-sidebar-cta__list li {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 0.82rem !important;
    color: rgba(255,255,255,0.75) !important;
}
.cdb-sidebar-cta__list li::before {
    content: '' !important;
    width: 6px !important;
    height: 6px !important;
    border-radius: 50% !important;
    background: #93C5FD !important;
    flex-shrink: 0 !important;
}
.cdb-sidebar-cta .cdb-btn--primary {
    width: 100% !important;
    justify-content: center !important;
}

/* Breadcrumb */
.cdb-breadcrumb {
    font-size: 0.8rem !important;
    color: rgba(255,255,255,0.50) !important;
    font-family: var(--cdb-font-body) !important;
    margin-bottom: 16px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}
.cdb-breadcrumb a {
    color: rgba(255,255,255,0.50) !important;
    text-decoration: none !important;
    transition: color var(--cdb-ease) !important;
}
.cdb-breadcrumb a:hover { color: #93C5FD !important; }
.cdb-breadcrumb-sep { opacity: 0.4 !important; }

/* ============================================================
   LOCATION PAGE SYSTEM (lp-)
   ============================================================ */
.lp-hero {
    background: var(--cdb-ink) !important;
    padding: 72px 0 64px !important;
    position: relative !important;
    overflow: hidden !important;
}
.lp-hero::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: radial-gradient(ellipse 60% 70% at 15% 50%, rgba(37,99,235,0.09) 0%, transparent 100%) !important;
    pointer-events: none !important;
}
.lp-hero__inner {
    position: relative !important;
    z-index: 1 !important;
    display: grid !important;
    grid-template-columns: 1fr 420px !important;
    gap: 56px !important;
    align-items: center !important;
}
.lp-hero__title {
    font-family: var(--cdb-font-display) !important;
    font-size: clamp(2.2rem, 4.5vw, 3.4rem) !important;
    font-weight: 900 !important;
    color: #FFFFFF !important;
    line-height: 1.08 !important;
    letter-spacing: -0.025em !important;
    margin: 0 0 16px !important;
}
.lp-hero__title span { color: #93C5FD !important; }
.lp-hero__lead {
    font-size: 1rem !important;
    color: rgba(255,255,255,0.75) !important;
    line-height: 1.72 !important;
    margin: 0 0 28px !important;
}
.lp-trust-bar { background: var(--cdb-slate) !important; padding: 16px 0 !important; }
.lp-trust-bar__inner {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px 32px !important;
    align-items: center !important;
    justify-content: center !important;
}
.lp-trust-bar__item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-family: var(--cdb-font-body) !important;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,0.82) !important;
}
.lp-trust-bar__dot {
    width: 7px !important;
    height: 7px !important;
    border-radius: 50% !important;
    background: #93C5FD !important;
    flex-shrink: 0 !important;
}
.lp-service-area { padding: 72px 0 !important; background: var(--cdb-white) !important; }
.lp-service-area__inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 64px !important;
    align-items: start !important;
}
.lp-towns-grid { padding: 72px 0 !important; background: var(--cdb-fog) !important; }
.lp-towns-grid__header { text-align: center !important; max-width: 560px !important; margin: 0 auto 40px !important; }
.lp-towns-grid__cards {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 12px !important;
}
.lp-town-card {
    background: var(--cdb-white) !important;
    border: 1px solid rgba(26,26,46,0.08) !important;
    border-radius: var(--cdb-radius-md) !important;
    padding: 20px 18px !important;
    text-align: center !important;
    text-decoration: none !important;
    transition: all var(--cdb-ease) !important;
    display: block !important;
}
.lp-town-card:hover {
    background: var(--cdb-cta) !important;
    border-color: var(--cdb-cta) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--cdb-shadow-cta) !important;
}
.lp-town-card__name {
    font-family: var(--cdb-font-display) !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: var(--cdb-ink) !important;
    display: block !important;
    transition: color var(--cdb-ease) !important;
}
.lp-town-card:hover .lp-town-card__name { color: #FFFFFF !important; }
.lp-town-card__label {
    font-size: 0.72rem !important;
    color: var(--cdb-mist) !important;
    font-weight: 500 !important;
    display: block !important;
    margin-top: 3px !important;
    transition: color var(--cdb-ease) !important;
}
.lp-town-card:hover .lp-town-card__label { color: rgba(255,255,255,0.75) !important; }
.lp-cta { padding: 72px 0 !important; background: var(--cdb-cta) !important; text-align: center !important; }
.lp-cta__title {
    font-family: var(--cdb-font-display) !important;
    font-size: clamp(1.8rem, 3.5vw, 2.6rem) !important;
    font-weight: 900 !important;
    color: #FFFFFF !important;
    margin: 0 0 12px !important;
    letter-spacing: -0.02em !important;
    line-height: 1.1 !important;
}
.lp-cta__text {
    font-size: 1rem !important;
    color: rgba(255,255,255,0.85) !important;
    margin: 0 auto 28px !important;
    max-width: 540px !important;
    line-height: 1.65 !important;
}
.lp-faq { padding: 72px 0 !important; background: var(--cdb-sand) !important; }
.lp-map { padding: 72px 0 !important; background: var(--cdb-white) !important; }
.lp-map__inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 56px !important;
    align-items: start !important;
}

/* ============================================================
   IMAGE GRID
   ============================================================ */
.cdb-img-grid-3 {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 12px !important;
}
.cdb-img-grid-3 img {
    width: 100% !important;
    height: 260px !important;
    object-fit: cover !important;
    border-radius: var(--cdb-radius-sm) !important;
    display: block !important;
    background: var(--cdb-cloud) !important;
    transition: transform 0.4s ease !important;
}
.cdb-img-grid-3 img:hover { transform: scale(1.02) !important; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
    .cdb-hero__inner           { grid-template-columns: 1fr !important; }
    .cdb-split                 { grid-template-columns: 1fr !important; gap: 40px !important; }
    .cdb-split--reversed > *:first-child { order: unset !important; }
    .cdb-split--reversed > *:last-child  { order: unset !important; }
    .cdb-image-panel           { grid-template-columns: 1fr !important; }
    .cdb-image-panel--reversed .cdb-image-panel__img     { order: unset !important; }
    .cdb-image-panel--reversed .cdb-image-panel__content { order: unset !important; }
    .cdb-image-panel__content  { padding: 56px 48px !important; }
    .cdb-steps                 { grid-template-columns: repeat(2, 1fr) !important; gap: 32px !important; }
    .cdb-steps::before         { display: none !important; }
    .cdb-stats                 { grid-template-columns: repeat(2, 1fr) !important; }
    .cdb-grid-4                { grid-template-columns: repeat(2, 1fr) !important; }
    .cdb-cta-banner__inner     { grid-template-columns: 1fr !important; text-align: center !important; }
    .lp-hero__inner            { grid-template-columns: 1fr !important; }
    .lp-service-area__inner    { grid-template-columns: 1fr !important; }
    .lp-map__inner             { grid-template-columns: 1fr !important; }
    .lp-towns-grid__cards      { grid-template-columns: repeat(3, 1fr) !important; }
    .cdb-bottom-form__inner    { grid-template-columns: 1fr !important; }
    .cdb-page-with-sidebar     { grid-template-columns: 1fr !important; padding: 0 24px !important; }
    .cdb-sidebar               { position: static !important; }
}
@media (max-width: 768px) {
    .cdb-section               { padding-top: 60px !important; padding-bottom: 60px !important; }
    .cdb-hero                  { padding: 60px 0 52px !important; }
    .cdb-grid-3                { grid-template-columns: 1fr !important; }
    .cdb-grid-2                { grid-template-columns: 1fr !important; }
    .cdb-steps                 { grid-template-columns: 1fr !important; }
    .cdb-stats                 { grid-template-columns: repeat(2, 1fr) !important; }
    .cdb-image-panel__content  { padding: 44px 28px !important; }
    .cdb-trustbar__inner       { justify-content: flex-start !important; gap: 10px 24px !important; }
    .lp-towns-grid__cards      { grid-template-columns: repeat(2, 1fr) !important; }
    .cdb-img-grid-3            { grid-template-columns: repeat(2, 1fr) !important; }
    .cdb-img-grid-3 img        { height: 200px !important; }
}
@media (max-width: 480px) {
    .cdb-container             { padding-left: 20px !important; padding-right: 20px !important; }
    .cdb-stats                 { grid-template-columns: 1fr !important; }
    .cdb-hero__form            { padding: 28px 20px !important; }
    .cdb-bottom-form__form     { padding: 28px 20px !important; }
    .lp-towns-grid__cards      { grid-template-columns: repeat(2, 1fr) !important; }
    .cdb-img-grid-3            { grid-template-columns: 1fr !important; }
    .cdb-btn--lg               { padding: 16px 28px !important; font-size: 0.92rem !important; }
}