:root {
    --dp-primary: #e5342a;
    --dp-primary-dark: #c62a21;
    --dp-dark: #1a1a1a;
    --dp-light: #f6f7f9;
    --dp-border: #e7e7e9;
}

body {
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    color: #212529;
    background: #fff;
}

/* Primary brand override */
.btn-primary {
    --bs-btn-bg: var(--dp-primary);
    --bs-btn-border-color: var(--dp-primary);
    --bs-btn-hover-bg: var(--dp-primary-dark);
    --bs-btn-hover-border-color: var(--dp-primary-dark);
    --bs-btn-active-bg: #b0251d;
    --bs-btn-active-border-color: #b0251d;
}
.btn-outline-primary {
    --bs-btn-color: var(--dp-primary);
    --bs-btn-border-color: var(--dp-primary);
    --bs-btn-hover-bg: var(--dp-primary);
    --bs-btn-hover-border-color: var(--dp-primary);
    --bs-btn-active-bg: var(--dp-primary);
    --bs-btn-active-border-color: var(--dp-primary);
}

.text-primary { color: var(--dp-primary) !important; }
.link-primary { color: var(--dp-primary) !important; }
.bg-primary { background-color: var(--dp-primary) !important; }
.border-primary { border-color: var(--dp-primary) !important; }

a { color: var(--dp-primary); }

.section-eyebrow {
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .8rem;
    font-weight: 600;
    color: var(--dp-primary);
}

/* ============ HEADER (light theme) ============ */
.site-header {
    z-index: 1030;
    box-shadow: none;
    transition: box-shadow .2s ease;
}
/* Shadow only once the page is scrolled */
.site-header.is-scrolled {
    box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
}

/* Utility bar */
.header-utility {
    background: #f5f6f7;
    border-bottom: 1px solid #ececee;
    font-size: .82rem;
}
.header-utility .container { height: 38px; }
.header-util-link {
    color: #5a6270;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: 0 .9rem;
    transition: color .14s;
}
.header-util-link:first-child { padding-left: 0; }
.header-util-link .bi { color: var(--dp-primary); font-size: .9rem; }
.header-util-link:hover { color: var(--dp-primary); }
.header-util-right .header-util-link { padding: 0 .8rem; }
.header-util-right .header-util-link:last-child { padding-right: 0; }
.header-util-right .header-util-link .bi { color: inherit; }
.header-util-sep {
    width: 1px;
    height: 13px;
    background: #d4d7dc;
}

/* Top bar */
.header-top {
    background: #fff;
}
.header-logo img { display: block; }

/* Professional pill search */
.header-search { max-width: 760px; }
.header-search-box {
    display: flex;
    align-items: center;
    background: #f1f2f4;
    border: 1.5px solid #eceef1;
    border-radius: 999px;
    padding: 0 .35rem 0 1.1rem;
    height: 50px;
    transition: border-color .15s, background .15s, box-shadow .15s;
}
.header-search-box:focus-within {
    background: #fff;
}
.header-search-icon { color: #9aa1ad; font-size: 1rem; margin-right: .6rem; }
.header-search-input {
    flex: 1;
    border: 0;
    background: transparent;
    outline: none;
    font-size: .92rem;
    color: #1a1a1a;
    min-width: 0;
}
.header-search-input::placeholder { color: #9aa1ad; }
.header-search-btn {
    border: 0;
    background: var(--dp-primary);
    color: #fff;
    font-weight: 600;
    font-size: .9rem;
    border-radius: 999px;
    padding: 0 1.6rem;
    height: 40px;
    transition: background .15s;
}
.header-search-btn:hover { background: var(--dp-primary-dark, #c62a21); }

/* Advanced search dropdown */
.search-panel {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #ececef;
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(16, 19, 26, .14);
    padding: .9rem 1rem;
    z-index: 1045;
}
.search-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: .74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #9aa1ad;
    margin-bottom: .5rem;
}
.search-clear {
    border: 0;
    background: none;
    color: var(--dp-primary);
    font-size: .74rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    cursor: pointer;
}
.search-recent { margin-bottom: .85rem; }
.search-recent-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 8px;
    transition: background .12s;
}
.search-recent-item:hover { background: #f6f7f9; }
.search-recent-item a {
    flex: 1;
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .5rem .6rem;
    color: #343a40;
    text-decoration: none;
    font-size: .9rem;
}
.search-recent-item a .bi { color: #9aa1ad; font-size: .9rem; }
.search-recent-del {
    border: 0;
    background: none;
    color: #b4b9c2;
    padding: .35rem .55rem;
    cursor: pointer;
    border-radius: 6px;
}
.search-recent-del:hover { color: var(--dp-primary); }

.search-trending-list {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}
.search-chip {
    display: inline-flex;
    align-items: center;
    padding: .4rem .8rem;
    background: #f1f2f4;
    border-radius: 999px;
    color: #343a40;
    text-decoration: none;
    font-size: .82rem;
    font-weight: 500;
    transition: background .12s, color .12s;
}
.search-chip:hover { background: var(--dp-primary); color: #fff; }

/* Quote button */
.header-quote-btn {
    border-radius: 999px;
    height: 42px;
    padding: 0 1.4rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

/* Mobile burger */
.header-burger {
    width: 44px;
    height: 44px;
    border: 1.5px solid #ebedf0;
    border-radius: 10px;
    background: #fff;
    color: #1a1a1a;
    font-size: 1.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Main nav bar */
.header-nav {
    background: #fff;
}
.main-nav {
    flex-wrap: nowrap;
    gap: 0;
}
.main-nav > .nav-item {
    position: relative;
}
.main-nav .nav-link {
    color: #343a40;
    font-weight: 500;
    font-size: .9rem;
    letter-spacing: -0.01em;
    padding: .9rem .95rem;
    position: relative;
    white-space: nowrap;
    transition: color .14s;
}
.main-nav .nav-link::after {
    display: none;
}
.main-nav .nav-link:hover { color: var(--dp-primary); }
.main-nav .nav-link.active { color: var(--dp-primary); font-weight: 600; }
.main-nav .nav-link .bi-chevron-down { transition: transform .18s; }
.main-nav .has-mega:hover > .nav-link .bi-chevron-down { transform: rotate(180deg); }

/* ============ MEGA MENU ============ */
.main-nav .has-mega .mega-menu {
    position: absolute;
    left: 0;
    top: calc(100% + 4px);
    width: 720px;
    max-width: min(720px, 92vw);
    background: #fff;
    border: 1px solid #eef0f2;
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(16, 19, 26, .16);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
    z-index: 1040;
}
/* small pointer notch */
/* Keep wide panel from overflowing the right edge for last items */
.main-nav > .nav-item:nth-last-child(-n+3) .mega-menu { left: auto; right: 0; }

/* Open state (click-driven) */
.main-nav .nav-item.open > .nav-link { color: var(--dp-primary); }
.main-nav .nav-item.open > .nav-link .mega-caret { transform: rotate(180deg); }
.main-nav .nav-item.open .mega-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Grid: columns + promo rail */
.mega-grid {
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 0;
}
.mega-cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(140px, 1fr));
    gap: .3rem 1.5rem;
    padding: 1.4rem 1.5rem;
    align-content: start;
}
.mega-menu:has(.mega-group:only-child) .mega-cols { grid-template-columns: 1fr; }
.mega-group { break-inside: avoid; }

.mega-col-title {
    display: block;
    font-weight: 700;
    color: #16181d;
    font-size: .9rem;
    letter-spacing: -0.01em;
    padding: .4rem 0;
    transition: color .12s;
}
.mega-col-title:hover { color: var(--dp-primary); }
.mega-list { margin: 0 0 .5rem; }
.mega-list li { margin-bottom: 0; }
.mega-list a {
    display: block;
    padding: .28rem 0 .28rem .9rem;
    color: #6b7280;
    text-decoration: none;
    font-size: .85rem;
    position: relative;
    transition: color .12s, padding-left .12s;
}
.mega-list a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #d7dae0;
    transform: translateY(-50%);
    transition: background .12s;
}
.mega-list a:hover { color: var(--dp-primary); padding-left: 1.1rem; }
.mega-list a:hover::before { background: var(--dp-primary); }
.mega-list a.mega-more {
    color: var(--dp-primary);
    font-weight: 600;
    font-size: .8rem;
    padding-left: 0;
}
.mega-list a.mega-more::before { display: none; }
.mega-list a.mega-more:hover { padding-left: .3rem; }

/* Promo rail */
.mega-rail {
    background: #f8f9fb;
    border-left: 1px solid #eef0f2;
    border-radius: 0 16px 16px 0;
    padding: 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.mega-rail-label {
    display: block;
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: #9aa1ad;
    margin-bottom: .2rem;
}
.mega-feature-item {
    display: flex;
    align-items: center;
    gap: .7rem;
    background: #fff;
    border: 1px solid #eef0f2;
    border-radius: 10px;
    padding: .5rem;
    text-decoration: none;
    transition: box-shadow .16s ease, transform .16s ease, border-color .16s ease;
}
.mega-feature-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(16, 19, 26, .1);
    border-color: #e0e2e6;
}
.mega-feature-thumb {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    background: #f3f4f6;
}
.mega-feature-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mega-feature-name {
    font-weight: 600;
    color: #16181d;
    font-size: .85rem;
    line-height: 1.25;
}

@media (max-width: 991.98px) {
    .mega-rail { display: none; }
    .mega-grid { grid-template-columns: 1fr; }
}

/* ============ HERO SLIDER ============ */
.hero-slider .carousel-item {
    height: 500px;
}
.hero-slider .hero-slide {
    height: 500px;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
}
.hero-slider .hero-slide::before {
    content: "";
    position: absolute;
    inset: 0;
    background: none;
}
.hero-slider .hero-caption {
    position: relative;
    z-index: 2;
    color: #1a1d23;
    max-width: 560px;
}
.hero-slider .hero-caption h2 { color: #16181d; }
.hero-slider .hero-caption .lead { color: #3a3f47; }
.hero-slider .carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 0;
}
.hero-slider .carousel-control-prev,
.hero-slider .carousel-control-next {
    width: 5%;
    opacity: .8;
}
@media (max-width: 767.98px) {
    .hero-slider .carousel-item,
    .hero-slider .hero-slide { height: 300px; }
    .hero-slider .hero-caption h2 { font-size: 1.5rem; }
}

/* ============ FEATURE SECTION (cards) ============ */
/* Three feature boxes that overlap up into the hero banner */
.feature-boxes {
    position: relative;
    z-index: 20;
    margin-top: -72px;          /* pull cards up over the hero */
    margin-bottom: 1.5rem;
}
.feature-box {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    background: #fff;
    border-radius: 10px;
    padding: 1.5rem 1.4rem;
    height: 100%;
    box-shadow: 0 18px 40px rgba(20, 24, 31, .14);
    transition: transform .2s ease, box-shadow .2s ease;
}
.feature-box:hover {
    transform: translateY(-5px);
    box-shadow: 0 24px 48px rgba(20, 24, 31, .2);
}
.feature-box-icon {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    flex-shrink: 0;
}
.feature-box-title {
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: #1a1d23;
    margin: .1rem 0 .4rem;
}
.feature-box-text {
    font-size: .88rem;
    color: #6b7280;
    line-height: 1.55;
    margin: 0;
}

@media (max-width: 767.98px) {
    .feature-boxes { margin-top: -40px; }
}

/* ============ SERVICE CARDS ============ */
.service-card {
    transition: transform .18s ease, box-shadow .18s ease;
    border: 1px solid var(--dp-border);
}
.service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 .75rem 1.5rem rgba(0, 0, 0, .1);
}
.service-card .card-img-placeholder {
    height: 170px;
    background: linear-gradient(135deg, #f3f3f3, #e4e4e4);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    color: var(--dp-primary);
    overflow: hidden;
}

.category-icon {
    width: 64px;
    height: 64px;
    border-radius: 14px;
    background: rgba(229, 52, 42, .1);
    color: var(--dp-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
}

/* ============================================================
   FLOATING CONTACT DOCK (bottom-right)
   ============================================================ */
.floating-dock {
    position: fixed;
    right: 16px;
    bottom: 18px;
    z-index: 1050;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 7px 5px;
    background: rgba(255, 255, 255, .9);
    backdrop-filter: saturate(180%) blur(8px);
    border-radius: 999px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .12);
}

.fdock-btn {
    position: relative;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(229, 52, 42, .1);
    color: var(--dp-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    text-decoration: none;
    transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
    animation: fdock-in .45s cubic-bezier(.2, .8, .25, 1) backwards;
}
.fdock-btn:nth-child(1) { animation-delay: .05s; }
.fdock-btn:nth-child(2) { animation-delay: .13s; }
.fdock-btn:nth-child(3) { animation-delay: .21s; }

.fdock-btn:hover {
    background: var(--dp-primary);
    color: #fff;
    transform: translateY(-3px) scale(1.06);
    box-shadow: 0 8px 20px rgba(229, 52, 42, .35);
}

/* Tooltip on hover */
.fdock-btn::after {
    content: attr(data-tip);
    position: absolute;
    right: calc(100% + 14px);
    top: 50%;
    transform: translateY(-50%) translateX(6px);
    background: #1a1a1a;
    color: #fff;
    font-size: .78rem;
    font-weight: 500;
    padding: .35rem .6rem;
    border-radius: 7px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
}
.fdock-btn::before {
    content: "";
    position: absolute;
    right: calc(100% + 8px);
    top: 50%;
    transform: translateY(-50%);
    border: 6px solid transparent;
    border-left-color: #1a1a1a;
    opacity: 0;
    transition: opacity .16s ease;
}
.fdock-btn:hover::after { opacity: 1; transform: translateY(-50%) translateX(0); }
.fdock-btn:hover::before { opacity: 1; }

/* Pulsing ring on the primary (first) button */
.fdock-pulse {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: var(--dp-primary);
    opacity: .5;
    z-index: -1;
    animation: fdock-pulse 2s ease-out infinite;
}

@keyframes fdock-pulse {
    0%   { transform: scale(1);   opacity: .45; }
    70%  { transform: scale(1.7); opacity: 0; }
    100% { transform: scale(1.7); opacity: 0; }
}
@keyframes fdock-in {
    from { opacity: 0; transform: translateY(14px) scale(.6); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Back-to-top (collapses out of the dock until needed) */
.fdock-top {
    width: 42px;
    border: 0;
    border-radius: 50%;
    background: #1a1a1a;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    cursor: pointer;
    overflow: hidden;
    /* Hidden: collapse height + the dock gap it would create */
    height: 0;
    opacity: 0;
    transform: scale(0);
    margin-top: -8px;            /* cancels the dock's 8px gap */
    pointer-events: none;
    transition: height .25s ease, opacity .2s ease, transform .25s ease,
                margin-top .25s ease, background .18s;
}
.fdock-top.show {
    height: 42px;
    opacity: 1;
    transform: scale(1);
    margin-top: 0;
    pointer-events: auto;
    /* Gentle attention animation while available */
    animation: fdock-top-bob 1.8s ease-in-out infinite;
}
.fdock-top:hover { background: var(--dp-primary); animation: none; }

@keyframes fdock-top-bob {
    0%, 100% { transform: translateY(0) scale(1); }
    50%      { transform: translateY(-3px) scale(1); }
}

@media (max-width: 575.98px) {
    .floating-dock { right: 10px; bottom: 12px; gap: 7px; padding: 6px 4px; }
    .fdock-btn { width: 40px; height: 40px; font-size: 1rem; }
    .fdock-btn::after, .fdock-btn::before { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .fdock-btn, .fdock-pulse, .fdock-top.show { animation: none; }
}

/* ============================================================
   WELCOME SECTION
   ============================================================ */
.welcome-section {
    padding: 4.5rem 0;
    
}

/* Welcome image (single combined image) */
.welcome-media {
    position: relative;
}
.welcome-single-img {
    display: block;
    width: 100%;
    height: auto;
}

/* Text column */
.welcome-eyebrow {
    display: block;
    color: var(--dp-primary);
    font-size: 1.5rem;
    line-height: 1;
    margin-bottom: .5rem;
    font-family: "Brush Script MT", "Segoe Script", cursive;
    transform: rotate(-4deg);
    transform-origin: left center;
    width: fit-content;
}
.welcome-title {
    font-size: clamp(2.2rem, 4vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #1a1d23;
    margin-bottom: 1.25rem;
}
.welcome-text {
    color: #6b7280;
    font-size: 1.02rem;
    line-height: 1.75;
    margin-bottom: 1.1rem;
    max-width: 540px;
}
.welcome-btn {
    margin-top: .75rem;
    background: #f6b40a;
    color: #1a1d23;
    font-weight: 700;
    border-radius: 999px;
    padding: .85rem 2.4rem;
    transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.welcome-btn:hover {
    background: #e5a600;
    color: #1a1d23;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(246, 180, 10, .4);
}

@media (max-width: 991.98px) {
    .welcome-section { padding: 3rem 0; }
    .welcome-media { max-width: 520px; margin: 0 auto; }
}

/* ============================================================
   UNIQUE FEATURES CTA BAND
   ============================================================ */
.unique-section {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 4.5rem 0 0;      /* no bottom padding so hands reach the edge */
    overflow: hidden;
}
/* Bottom-align the two columns and let the hands sit flush at the bottom. */
.unique-section .row { align-items: flex-end !important; }
.unique-section .unique-content { padding-bottom: 4.5rem; }
.unique-feature { margin-bottom: -4px; }
.unique-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(229,52,42,.96) 0%, rgba(229,52,42,.9) 55%, rgba(229,52,42,.82) 100%);
}

.unique-eyebrow {
    display: block;
    color: #fff;
    font-family: "Brush Script MT", "Segoe Script", cursive;
    font-size: 1.4rem;
    margin-bottom: .5rem;
}
.unique-title {
    color: #fff;
    font-weight: 800;
    font-size: clamp(2.1rem, 4vw, 3rem);
    line-height: 1.08;
    letter-spacing: -0.01em;
    margin-bottom: 1.1rem;
}
.unique-text {
    color: rgba(255, 255, 255, .9);
    font-size: 1.02rem;
    line-height: 1.7;
    max-width: 460px;
    margin: 0;
}

/* Feature = white paper held up by a hand */
.unique-feature {
    display: block;
    position: relative;
    text-decoration: none;
    text-align: center;
    transition: transform .25s ease;
}
.unique-feature:hover { transform: translateY(-10px); }

/* The hand image already contains a blank white sheet; we overlay the icon
   and label onto that sheet's area. */
.unique-feature {
    position: relative;
    display: block;
    text-decoration: none;
}
.unique-hand {
    display: block;
    width: 100%;
    height: auto;
}
/* Icon + label centered over the paper area of the image.
   The paper occupies roughly the top ~62% of the hand image, so we centre
   the content within that region. */
.unique-paper-content {
    position: absolute;
    top: 31%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 72%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .9rem;
    text-align: center;
    pointer-events: none;
}
.unique-paper-content .bi {
    color: #2f7ac8;
    font-size: 2.6rem;
    line-height: 1;
}
.unique-paper-title {
    color: #1a1d23;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.25;
}

@media (max-width: 991.98px) {
    .unique-section { padding: 3rem 0; }
    .unique-content { margin-bottom: 1.5rem; }
    .unique-paper-content { gap: .5rem; top: 7%; }
    .unique-paper-content .bi { font-size: 1.7rem; }
    .unique-paper-title { font-size: .72rem; }
}

/* ============================================================
   PREMIUM CARDS CTA BAND
   ============================================================ */
.thick-cta {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 5rem 0;
}
.thick-cta-inner {
    max-width: 640px;
    margin: 0 auto;
}
.thick-cta-eyebrow {
    display: inline-block;
    color: #1a1d23;
    font-family: "Brush Script MT", "Segoe Script", cursive;
    font-size: 1.4rem;
    margin-bottom: .5rem;
}
.thick-cta-title {
    color: #fff;
    font-weight: 800;
    font-size: clamp(2rem, 4.5vw, 4.1rem);
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin-bottom: 1.75rem;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .12);
}
.thick-cta-btn {
    background: #1a1d23;
    color: #fff;
    font-weight: 700;
    border-radius: 999px;
    padding: .9rem 2.6rem;
    transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.thick-cta-btn:hover {
    background: #000;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(0, 0, 0, .25);
}

@media (max-width: 767.98px) {
    .thick-cta { padding: 3.25rem 0; }
}

/* ============================================================
   FAQ SECTION
   ============================================================ */
.faq-section {
    padding: 4.5rem 0;
    background: #fff;
}

/* Left belief card */
.faq-belief {
    background: #f6f7f9;
    border-radius: 10px;
    padding: 2rem 1.75rem 2.5rem;
}
.faq-belief-img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    margin-bottom: 1.75rem;
}
.faq-belief-title {
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: #1a1d23;
    margin-bottom: 1rem;
}
.faq-belief-text {
    color: #6b7280;
    line-height: 1.7;
    font-size: .95rem;
    margin-bottom: 1.75rem;
}
.faq-belief-btn {
    background: #f6b40a;
    color: #1a1d23;
    font-weight: 700;
    border-radius: 999px;
    padding: .85rem 2.4rem;
    transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.faq-belief-btn:hover {
    background: #e5a600;
    color: #1a1d23;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(246, 180, 10, .4);
}

/* Right accordion */
.faq-eyebrow {
    display: block;
    color: var(--dp-primary);
    font-family: "Brush Script MT", "Segoe Script", cursive;
    font-size: 1.4rem;
    margin-bottom: .35rem;
}
.faq-title {
    font-size: clamp(2rem, 4vw, 2.9rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #1a1d23;
    margin-bottom: 1.75rem;
    line-height: 1.1;
}
.faq-accordion .accordion-item {
    border: 0;
    border-bottom: 1px solid #ececee;
    background: transparent;
}
.faq-accordion .accordion-button {
    font-weight: 700;
    font-size: 1.02rem;
    color: #1a1d23;
    padding: 1.15rem 2.2rem 1.15rem 0;
    background: transparent;
    box-shadow: none;
}
.faq-accordion .accordion-button:not(.collapsed) { color: #1a1d23; }
.faq-accordion .accordion-button:focus { box-shadow: none; }
/* Chevron toggle marker (uses Bootstrap's default arrow, recoloured) */
.faq-accordion .accordion-button::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236b7280'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    background-size: 1.1rem;
    width: 1.1rem;
    height: 1.1rem;
    transition: transform .2s ease;
}
.faq-accordion .accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23e5342a'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    transform: rotate(-180deg);
}
.faq-accordion .accordion-body {
    padding: 0 2rem 1.25rem 0;
    color: #6b7280;
    line-height: 1.7;
    font-size: .95rem;
}

@media (max-width: 991.98px) {
    .faq-section { padding: 3rem 0; }
}

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.contact-hero {
    position: relative;
    padding: 4.5rem 0;
    background-image:
        linear-gradient(90deg, rgba(16,18,22,.82) 0%, rgba(16,18,22,.55) 100%),
        url('https://live.themewild.com/printex/assets/img/breadcrumb/01.jpg');
    background-size: cover;
    background-position: center;
}
.contact-hero > .container { position: relative; z-index: 1; }
.contact-hero h1 {
    font-size: clamp(2.2rem, 5vw, 4rem);
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.contact-info-card {
    background: #fff;
    border: 1px solid #eef0f2;
    border-radius: 12px;
    padding: 1.75rem 1.5rem;
    text-align: center;
    box-shadow: 0 6px 18px rgba(20, 24, 31, .05);
    transition: transform .18s ease, box-shadow .18s ease;
}
.contact-info-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(20, 24, 31, .12);
}
.contact-info-icon {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: rgba(229, 52, 42, .1);
    color: var(--dp-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: 1rem;
}
.contact-info-text {
    color: #6b7280;
    font-size: .92rem;
    line-height: 1.6;
}
a.contact-info-text:hover { color: var(--dp-primary); }

.contact-map-wrap {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 6px 18px rgba(20, 24, 31, .08);
    border: 1px solid #eef0f2;
    display: flex;
}
.contact-map-wrap iframe { display: block; flex: 1; }

.contact-faq-section {
    padding: 1rem 0 4.5rem;
}

/* ============================================================
   WHY CHOOSE US
   ============================================================ */
.choose-section { background: #f6f7f9; }
.choose-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
}
.choose-image {
    background-size: cover;
    background-position: center;
    min-height: 480px;
}
.choose-content {
    display: flex;
    align-items: center;
    padding: 3.5rem 0;
}
.choose-inner {
    max-width: 560px;
    padding: 0 3rem;
    position: relative;
}
.choose-eyebrow {
    display: block;
    color: var(--dp-primary);
    font-family: "Brush Script MT", "Segoe Script", cursive;
    font-size: 1.5rem;
    margin-bottom: .4rem;
}
.choose-title {
    position: relative;
    font-size: clamp(1.9rem, 3.2vw, 2.6rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #16181d;
    margin-bottom: 1.1rem;
    z-index: 1;
}
/* Faded watermark word behind the heading */
.choose-title::before {
    content: "Choose";
    position: absolute;
    top: -0.4em;
    left: 0;
    font-size: 2.4em;
    font-weight: 800;
    color: rgba(16, 24, 61, .04);
    z-index: -1;
    pointer-events: none;
    white-space: nowrap;
}
.choose-text {
    color: #6b7280;
    line-height: 1.75;
    margin-bottom: 1.5rem;
}
.choose-features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .9rem 1.25rem;
    margin: 0 0 1.75rem;
}
.choose-feature {
    display: flex;
    align-items: center;
    gap: .7rem;
    font-weight: 600;
    color: #1a1d23;
    font-size: .92rem;
}
.choose-feature-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(229, 52, 42, .1);
    color: var(--dp-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
}
@media (max-width: 575.98px) {
    .choose-features { grid-template-columns: 1fr; }
}
.choose-btn {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    background: var(--dp-primary);
    color: #fff;
    font-weight: 700;
    border-radius: 6px;
    padding: .7rem .8rem .7rem 1.4rem;
    transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.choose-btn:hover {
    background: var(--dp-primary-dark, #c62a21);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(229, 52, 42, .35);
}
.choose-btn-arrow {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #16183d;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .95rem;
}

@media (max-width: 991.98px) {
    .choose-grid { grid-template-columns: 1fr; }
    .choose-image { min-height: 300px; }
    .choose-content { padding: 2.5rem 0; }
    .choose-inner { padding: 0 1.25rem; }
}

/* ============================================================
   ABOUT STATS BAND
   ============================================================ */
.about-stats {
    padding: 3.5rem 0;
    background: #fff;
}
.about-stat {
    padding: 1rem .5rem;
}
.about-stat-value {
    display: block;
    font-size: clamp(2rem, 4vw, 2.8rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--dp-primary);
    line-height: 1;
}
.about-stat-label {
    display: block;
    margin-top: .4rem;
    color: #6b7280;
    font-weight: 600;
    font-size: .9rem;
}

/* ============================================================
   ADVANCED FOOTER
   ============================================================ */
.site-footer {
    background: #14161c;
    color: #cfd4de;
}

/* Top CTA / newsletter strip */
.footer-cta {
    position: relative;
    padding: 4rem 0;
    background:
        radial-gradient(900px 300px at 85% -40%, rgba(255,255,255,.18), transparent 70%),
        linear-gradient(100deg, #e5342a 0%, #c62a21 60%, #a81f17 100%);
    overflow: hidden;
}
/* Faint image texture behind the red */
.footer-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url('https://live.themewild.com/printex/assets/img/breadcrumb/01.jpg');
    background-size: cover;
    background-position: center;
    opacity: .1;
    mix-blend-mode: luminosity;
    pointer-events: none;
}
/* Soft glow accent */
.footer-cta-glow {
    position: absolute;
    right: -80px;
    bottom: -120px;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,.22), transparent 65%);
    pointer-events: none;
}
.footer-cta > .container { position: relative; z-index: 1; }

/* Lead block (icon + text) */
.footer-cta-lead { display: flex; align-items: center; gap: 1.1rem; }
.footer-cta-badge {
    width: 58px;
    height: 58px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .16);
    border: 1px solid rgba(255, 255, 255, .25);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    flex-shrink: 0;
}
.footer-cta-chip {
    display: inline-block;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #fff;
    background: rgba(255, 255, 255, .18);
    padding: .25rem .7rem;
    border-radius: 999px;
    margin-bottom: .5rem;
}
.footer-cta-title {
    color: #fff;
    font-weight: 800;
    font-size: 1.5rem;
    letter-spacing: -0.02em;
    margin: 0 0 .25rem;
    line-height: 1.2;
}
.footer-cta-text { color: rgba(255, 255, 255, .88); font-size: .95rem; margin: 0; }

/* Newsletter / quote form */
.footer-newsletter-box {
    display: flex;
    align-items: center;
    background: #fff;
    border-radius: 999px;
    padding: .4rem .4rem .4rem 1.2rem;
    gap: .5rem;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .18);
}
.footer-newsletter-icon { color: #9aa1ad; font-size: 1.05rem; }
.footer-newsletter-box input {
    flex: 1;
    border: 0;
    outline: none;
    font-size: .92rem;
    min-width: 0;
    background: transparent;
    color: #1a1d23;
}
.footer-newsletter-box .btn {
    border-radius: 999px;
    white-space: nowrap;
    font-weight: 700;
    padding: .6rem 1.4rem;
    background: #16181d;
    border-color: #16181d;
    box-shadow: none;
}
.footer-newsletter-box .btn:hover {
    background: #000;
    border-color: #000;
    transform: translateY(-1px);
}
.footer-newsletter-note {
    display: block;
    margin-top: .7rem;
    font-size: .78rem;
    color: rgba(255, 255, 255, .8);
}

/* Body */
.footer-body { padding: 4.5rem 0 3rem; }
.footer-logo { height: 46px; width: auto; border-radius: 6px; }
.footer-about {
    color: #9aa1ad;
    font-size: .9rem;
    line-height: 1.7;
    margin-bottom: 1.25rem;
    max-width: 340px;
}
.footer-social { display: flex; gap: .6rem; }
.footer-social a {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    color: #cfd4de;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}
.footer-social a:hover {
    background: var(--dp-primary);
    color: #fff;
    transform: translateY(-3px);
}

.footer-heading {
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 1.1rem;
    position: relative;
    padding-bottom: .6rem;
}
.footer-heading::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 30px;
    height: 2px;
    background: var(--dp-primary);
}
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin-bottom: .6rem; }
.footer-links a {
    color: #9aa1ad;
    text-decoration: none;
    font-size: .9rem;
    transition: color .14s ease, padding-left .14s ease;
}
.footer-links a:hover { color: #fff; padding-left: .35rem; }

.footer-contact { list-style: none; padding: 0; margin: 0; }
.footer-contact li {
    display: flex;
    gap: .7rem;
    margin-bottom: 1rem;
    font-size: .9rem;
    color: #9aa1ad;
    line-height: 1.6;
}
.footer-contact li .bi { color: var(--dp-primary); font-size: 1rem; margin-top: .15rem; flex-shrink: 0; }
.footer-contact a { color: #9aa1ad; text-decoration: none; }
.footer-contact a:hover { color: #fff; }

/* Bottom bar */
.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .08);
    padding: 1.1rem 0;
    font-size: .85rem;
    color: #8a93a6;
}
.footer-bottom-links {
    list-style: none;
    display: flex;
    gap: 1.25rem;
    padding: 0;
    margin: 0;
}
.footer-bottom-links a {
    color: #8a93a6;
    text-decoration: none;
    transition: color .14s;
}
.footer-bottom-links a:hover { color: #fff; }

@media (max-width: 575.98px) {
    .footer-cta-title { font-size: 1.2rem; }
    .footer-cta-lead { gap: .8rem; }
    .footer-cta-badge { width: 48px; height: 48px; font-size: 1.15rem; border-radius: 13px; }
    .footer-newsletter-box { flex-wrap: wrap; border-radius: 16px; padding: .6rem; }
    .footer-newsletter-box input { padding: .3rem .4rem; }
    .footer-newsletter-box .btn { width: 100%; justify-content: center; }
    .footer-bottom-links { gap: .9rem; flex-wrap: wrap; justify-content: center; }
}

/* ============================================================
   MODERN POLISH (home page + shared)
   ============================================================ */

/* Smoother typography + rendering */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* Consistent, airier section rhythm */
.welcome-section { padding: 5.5rem 0; }
.unique-section { padding: 5.5rem 0; }
.choose-section .choose-content { padding: 4.5rem 0; }
.faq-section { padding: 5.5rem 0; }
.feature-boxes { margin-top: -84px; }

/* Pill-style eyebrow (modern chip look) applied consistently */
.section-eyebrow,
.welcome-eyebrow,
.choose-eyebrow,
.faq-eyebrow,
.unique-eyebrow,
.thick-cta-eyebrow {
    font-family: inherit !important;
    transform: none !important;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: .76rem !important;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: .4rem .9rem;
    border-radius: 999px;
    line-height: 1;
}
/* Light-background eyebrows */
.section-eyebrow,
.welcome-eyebrow,
.choose-eyebrow,
.faq-eyebrow {
    color: var(--dp-primary) !important;
    background: rgba(229, 52, 42, .1);
}
/* On-dark / on-colour eyebrows */
.unique-eyebrow,
.thick-cta-eyebrow {
    color: #fff !important;
    background: rgba(255, 255, 255, .16);
}
.section-eyebrow::before,
.welcome-eyebrow::before,
.choose-eyebrow::before,
.faq-eyebrow::before,
.unique-eyebrow::before,
.thick-cta-eyebrow::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
}

/* Heading weight/tracking tune-up */
.welcome-title, .choose-title, .faq-title, .unique-title, .thick-cta-title {
    font-weight: 800;
    letter-spacing: -0.025em;
}

/* Softer, more modern card shadows + rounding */
.feature-box, .contact-info-card, .stat-card {
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(16, 19, 26, .06);
}
.service-card { border-radius: 14px; }

/* Buttons: slightly rounder, subtle lift */
.btn-primary, .btn-outline-primary, .btn-outline-dark {
    border-radius: 10px;
}
.btn-primary { box-shadow: 0 6px 16px rgba(229, 52, 42, .22); }
.btn-primary:hover { box-shadow: 0 10px 22px rgba(229, 52, 42, .3); }

/* Featured services: modern section header + reveal */
.featured-head .btn-link { color: var(--dp-primary); font-weight: 600; }

/* Subtle fade-up entrance for sections (progressive enhancement) */
@media (prefers-reduced-motion: no-preference) {
    .reveal-up {
        opacity: 0;
        transform: translateY(24px);
        transition: opacity .6s ease, transform .6s ease;
    }
    .reveal-up.is-visible {
        opacity: 1;
        transform: none;
    }
}

/* Section divider accents */
.welcome-section { background: #fff; }
.faq-section { background: linear-gradient(180deg, #ffffff 0%, #f8f9fb 100%); }

/* ============================================================
   FEATURED SERVICE CARDS (modern)
   ============================================================ */
.featured-section { background: #f6f7f9; }

.feat-card {
    display: block;
    text-decoration: none;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(16, 19, 26, .06);
    transition: transform .22s ease, box-shadow .22s ease;
}
.feat-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 44px rgba(16, 19, 26, .14);
}

/* Square media */
.feat-card-media {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, #f3f4f6 0%, #e9ebef 100%);
    overflow: hidden;
    color: var(--dp-primary);
}
.feat-card-media > i {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
}
.feat-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.feat-card:hover .feat-card-media img { transform: scale(1.06); }

/* Title */
.feat-card-title {
    display: block;
    padding: .9rem 1rem 1.1rem;
    font-weight: 700;
    color: #16181d;
    font-size: .95rem;
    text-align: center;
    letter-spacing: -0.01em;
}

/* ============================================================
   SERVICE DETAILS PAGE
   ============================================================ */
/* Compact breadcrumb, no underlines */
.svc-breadcrumb {
    background: #fafbfc;
    border-bottom: 1px solid #eef0f2;
    padding: .7rem 0;
}
.svc-breadcrumb .breadcrumb { margin: 0; font-size: .78rem; }
.svc-breadcrumb .breadcrumb a {
    color: #8a93a6;
    text-decoration: none;
    transition: color .14s;
}
.svc-breadcrumb .breadcrumb a:hover { color: var(--dp-primary); }
.svc-breadcrumb .breadcrumb-item.active { color: #16181d; font-weight: 600; }
.svc-breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: #c3c9d4; }

/* Gallery */
.svc-gallery-main {
    border-radius: 16px;
    overflow: hidden;
    background: #f3f4f6;
    aspect-ratio: 4 / 3;
    box-shadow: 0 10px 30px rgba(16, 19, 26, .08);
}
.svc-gallery-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svc-gallery-empty {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-size: 4rem; color: var(--dp-primary);
}
.svc-gallery-thumbs {
    display: flex;
    gap: .6rem;
    margin-top: .8rem;
    flex-wrap: wrap;
}
.svc-thumb-btn {
    width: 74px;
    height: 74px;
    border: 2px solid #eef0f2;
    border-radius: 10px;
    overflow: hidden;
    padding: 0;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s ease;
}
.svc-thumb-btn img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svc-thumb-btn.active, .svc-thumb-btn:hover { border-color: var(--dp-primary); }

/* Info */
.svc-cat-chip {
    display: inline-block;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--dp-primary);
    background: rgba(229, 52, 42, .1);
    padding: .35rem .8rem;
    border-radius: 999px;
    text-decoration: none;
    margin-bottom: 1rem;
}
.svc-cat-chip { font-size: .68rem !important; padding: .3rem .7rem !important; margin-bottom: .85rem !important; }
.svc-title {
    font-size: clamp(1.5rem, 2.6vw, 2rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #16181d;
    margin-bottom: .6rem;
    line-height: 1.2;
}
.svc-lead { color: #6b7280; font-size: .95rem; line-height: 1.65; margin-bottom: 1.1rem; }

.svc-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .55rem;
    padding: .9rem 0;
    border-top: 1px solid #eef0f2;
    border-bottom: 1px solid #eef0f2;
    margin-bottom: 1.25rem;
}
.svc-price-now { font-size: 1.6rem; font-weight: 800; color: var(--dp-primary); letter-spacing: -0.02em; }
.svc-price-was { font-size: 1rem; color: #9aa1ad; text-decoration: line-through; }
.svc-price-off {
    font-size: .72rem; font-weight: 700;
    color: #7c3aed; background: rgba(124, 58, 237, .12);
    padding: .18rem .5rem; border-radius: 999px;
}
.svc-price-unit { color: #9aa1ad; font-size: .82rem; }

.svc-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.75rem; }
.svc-actions .btn { border-radius: 10px; font-size: .9rem; }
.svc-enquire-btn { box-shadow: 0 10px 24px rgba(229, 52, 42, .28); }

.svc-block { margin-bottom: 1.5rem; }
.svc-block-title {
    font-weight: 700;
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #9aa1ad;
    margin-bottom: .75rem;
}
.rich-text { font-size: .92rem; line-height: 1.7; color: #4b5563; }

/* Spec table — modern striped rows */
.svc-spec-table { width: 100%; border-collapse: collapse; border: 1px solid #eef0f2; border-radius: 10px; overflow: hidden; }
.svc-spec-table tr:nth-child(odd) { background: #fafbfc; }
.svc-spec-table th, .svc-spec-table td {
    padding: .65rem .9rem;
    font-size: .86rem;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid #f0f1f3;
}
.svc-spec-table tr:last-child th, .svc-spec-table tr:last-child td { border-bottom: 0; }
.svc-spec-table th { font-weight: 600; color: #16181d; width: 42%; }
.svc-spec-table td { color: #6b7280; }

.svc-related { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid #eef0f2; }

/* ============ ENQUIRY DRAWER ============ */
.enquiry-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(16, 19, 26, .5);
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s;
    z-index: 1058;
}
.enquiry-backdrop.show { opacity: 1; visibility: visible; }
.enquiry-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 560px;
    max-width: 94vw;
    background: #fff;
    box-shadow: -24px 0 60px rgba(16, 19, 26, .22);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform .42s cubic-bezier(.16, 1, .3, 1);
    will-change: transform;
    z-index: 1059;
}
.enquiry-drawer.show { transform: translateX(0); }

/* Header — soft gradient band */
.enquiry-drawer-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.6rem 1.9rem;
    background: linear-gradient(135deg, #16181d 0%, #2a2d35 60%, #3a1512 140%);
    color: #fff;
    flex-shrink: 0;
}
.enquiry-drawer-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #fff;
    background: rgba(255, 255, 255, .16);
    padding: .25rem .6rem;
    border-radius: 999px;
    margin-bottom: .6rem;
}
.enquiry-drawer-title { font-size: 1.25rem; font-weight: 800; letter-spacing: -0.02em; margin: 0; color: #fff; line-height: 1.25; }
.icon-btn-close {
    width: 40px; height: 40px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 10px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .15s ease, transform .15s ease;
}
.icon-btn-close:hover { background: rgba(255, 255, 255, .2); transform: rotate(90deg); }

.enquiry-drawer-body { flex: 1; overflow-y: auto; padding: 1.9rem; }
.enquiry-drawer-form .form-label { font-size: .82rem; font-weight: 600; color: #374151; }
.enquiry-drawer-note {
    font-size: .8rem;
    color: #9aa1ad;
    text-align: center;
    margin-top: 1rem;
}

@media (max-width: 575.98px) {
    .enquiry-drawer { width: 100vw; max-width: 100vw; }
    .enquiry-drawer-head { padding: 1.3rem 1.25rem; }
    .enquiry-drawer-body { padding: 1.25rem; }
}

/* ============================================================
   SERVICES INDEX (by category) — modern
   ============================================================ */
.svc-index-hero {
    background: linear-gradient(180deg, #fbfbfc 0%, #f4f5f7 100%);
    border-bottom: 1px solid #eef0f2;
    padding: 2.5rem 0;
}
.svc-index-crumb { font-size: .78rem; background: none; padding: 0; margin: 0; }
.svc-index-crumb a { color: #8a93a6; text-decoration: none; }
.svc-index-crumb a:hover { color: var(--dp-primary); }
.svc-index-crumb .active { color: #16181d; font-weight: 600; }
.svc-index-title { font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; letter-spacing: -0.02em; color: #16181d; margin-bottom: .4rem; }
.svc-index-sub { color: #6b7280; max-width: 640px; margin: 0; }

/* Sidebar */
.svc-sidebar { position: sticky; top: 90px; }
.svc-filter-head {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: #9aa1ad;
    margin-bottom: .6rem;
}
.svc-filter { display: flex; flex-direction: column; gap: .15rem; }
.svc-filter-link {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .55rem .75rem;
    border-radius: 8px;
    color: #4b5563;
    text-decoration: none;
    font-size: .9rem;
    font-weight: 500;
    transition: background .14s, color .14s;
}
.svc-filter-link i { font-size: 1rem; width: 18px; text-align: center; color: #9aa1ad; }
.svc-filter-link:hover { background: #f4f5f7; color: var(--dp-primary); }
.svc-filter-link:hover i { color: var(--dp-primary); }
.svc-filter-link.active { background: var(--dp-primary); color: #fff; }
.svc-filter-link.active i { color: #fff; }
.svc-filter-sub { padding-left: 2.1rem; font-size: .85rem; font-weight: 400; color: #6b7280; }

/* Toolbar */
.svc-toolbar {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #eef0f2;
    font-size: .9rem;
    color: #6b7280;
}
.svc-count strong { color: #16181d; }
.svc-query { color: #9aa1ad; }
.svc-query-clear { color: var(--dp-primary); text-decoration: none; font-weight: 600; margin-left: .25rem; }

/* Empty state */
.svc-empty i { font-size: 3rem; color: #d1d5db; }

/* Feature-card extras for the grid (title + price + badge) */
.feat-card-body { display: block; padding: .85rem 1rem 1.1rem; }
.feat-card-body .feat-card-title { padding: 0; margin-bottom: .3rem; text-align: left; }
.feat-card-price {
    display: block;
    font-weight: 800;
    color: var(--dp-primary);
    font-size: .95rem;
    text-align: left;
}
.feat-card-price small { color: #9aa1ad; font-weight: 500; font-size: .75rem; }
.feat-card-badge {
    position: absolute;
    top: .6rem;
    left: .6rem;
    background: #7c3aed;
    color: #fff;
    font-size: .7rem;
    font-weight: 700;
    padding: .2rem .5rem;
    border-radius: 999px;
    z-index: 2;
}

@media (max-width: 991.98px) {
    .svc-sidebar { position: static; margin-bottom: 1.5rem; }
}

/* ============================================================
   FAQ PAGE
   ============================================================ */
.faq-group-title {
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: #16181d;
    margin-bottom: 1rem;
    display: inline-flex;
    align-items: center;
    gap: .6rem;
}
.faq-group-title::before {
    content: "";
    width: 22px;
    height: 3px;
    border-radius: 3px;
    background: var(--dp-primary);
}
.faq-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: #f6f7f9;
    border: 1px solid #eef0f2;
    border-radius: 16px;
    padding: 1.75rem 2rem;
}
.faq-cta-title { font-size: 1.2rem; font-weight: 800; color: #16181d; margin-bottom: .2rem; }
.faq-cta-text { color: #6b7280; }

/* ============================================================
   MODERN FORM INPUTS (public site)
   ============================================================ */
.enquiry-form .form-label,
.enquiry-drawer-form .form-label,
.card-body .form-label,
.contact-hero ~ section .form-label {
    font-size: .82rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: .4rem;
    letter-spacing: -0.01em;
}

/* Scope modern inputs to public-site forms (avoid the admin area) */
main .form-control,
main .form-select {
    border: 1.5px solid #e3e6ea;
    border-radius: 10px;
    padding: .72rem .95rem;
    font-size: .92rem;
    color: #16181d;
    background-color: #fff;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
main .form-control::placeholder { color: #aab0ba; }
main .form-control:hover:not(:focus),
main .form-select:hover:not(:focus) { border-color: #cdd2d9; }
main .form-control:focus,
main .form-select:focus {
    border-color: var(--dp-primary);
    box-shadow: 0 0 0 3px rgba(229, 52, 42, .12);
    background-color: #fff;
}
main textarea.form-control { min-height: 120px; resize: vertical; line-height: 1.6; }
main .form-select {
    background-position: right .95rem center;
}

/* Invalid state refinement */
main .form-control.is-invalid,
main .form-select.is-invalid {
    border-color: #e11d48;
    box-shadow: none;
    background-image: none;
}
main .form-control.is-invalid:focus,
main .form-select.is-invalid:focus {
    box-shadow: 0 0 0 3px rgba(225, 29, 72, .12);
}
main .invalid-feedback { font-size: .78rem; font-weight: 500; margin-top: .35rem; }

/* Floating pill search inputs keep their own look */
main .header-search-box .form-control,
main .header-search-input { border: 0; box-shadow: none; }

/* Hero title — full bold, slightly larger */
.hero-slider .hero-caption h2.hero-title {
    font-weight: 800 !important;
    letter-spacing: -0.02em;
    font-size: clamp(2.3rem, 4.5vw, 3rem);
}

/* ============================================================
   GET A QUOTE PAGE
   ============================================================ */
.quote-steps {
    background: #f6f7f9;
    border-bottom: 1px solid #eef0f2;
    padding: 2rem 0;
}
.quote-step {
    display: flex;
    align-items: center;
    gap: .9rem;
}
.quote-step-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--dp-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    flex-shrink: 0;
}
.quote-step-title { font-weight: 700; color: #16181d; font-size: .95rem; }
.quote-step-text { color: #6b7280; font-size: .85rem; line-height: 1.4; }

/* Aside */
.quote-aside-title { font-size: 1.8rem; font-weight: 800; letter-spacing: -0.02em; color: #16181d; }
.quote-aside-text { color: #6b7280; line-height: 1.7; margin-bottom: 1.5rem; }
.quote-benefits { list-style: none; padding: 0; margin: 0 0 1.75rem; }
.quote-benefits li {
    display: flex;
    align-items: center;
    gap: .75rem;
    font-weight: 600;
    color: #1a1d23;
    font-size: .95rem;
    margin-bottom: .9rem;
}
.quote-benefit-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(229, 52, 42, .1);
    color: var(--dp-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    flex-shrink: 0;
}
.quote-contact {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    padding-top: 1.25rem;
    border-top: 1px solid #eef0f2;
}
.quote-contact a {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    color: #16181d;
    text-decoration: none;
    font-weight: 600;
    font-size: .95rem;
}
.quote-contact a .bi { color: var(--dp-primary); }
.quote-contact a:hover { color: var(--dp-primary); }

/* Form card */
.quote-form-card {
    background: #fff;
    border: 1px solid #eef0f2;
    border-radius: 18px;
    box-shadow: 0 18px 48px rgba(16, 19, 26, .08);
    padding: 2rem 2rem 2.25rem;
}
.quote-form-title { font-size: 1.35rem; font-weight: 800; letter-spacing: -0.01em; color: #16181d; margin-bottom: .25rem; }
.quote-form-sub { color: #9aa1ad; font-size: .88rem; margin-bottom: 1.5rem; }
.quote-form-note { text-align: center; color: #9aa1ad; font-size: .8rem; margin-top: .9rem; margin-bottom: 0; }

@media (max-width: 575.98px) {
    .quote-form-card { padding: 1.5rem 1.25rem; }
}

/* ============================================================
   LEGAL PAGES (privacy / terms)
   ============================================================ */
.legal-page { color: #3a3f47; }
.legal-updated {
    display: inline-block;
    font-size: .78rem;
    font-weight: 600;
    color: #9aa1ad;
    background: #f4f5f7;
    padding: .3rem .7rem;
    border-radius: 999px;
    margin-bottom: 1.25rem;
}
.legal-intro { font-size: 1.05rem; line-height: 1.75; color: #4b5563; margin-bottom: 1.5rem; }
.legal-heading {
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: #16181d;
    margin: 2rem 0 .65rem;
}
.legal-page p { line-height: 1.75; margin-bottom: 1rem; }
.legal-list { padding-left: 1.1rem; margin-bottom: 1rem; }
.legal-list li { line-height: 1.7; margin-bottom: .5rem; }
.legal-page a { color: var(--dp-primary); }
.legal-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: #f6f7f9;
    border: 1px solid #eef0f2;
    border-radius: 14px;
    padding: 1.25rem 1.5rem;
    margin-top: 2.5rem;
    font-weight: 600;
    color: #16181d;
}
