.v3-proof,
.v3-capabilities,
.v3-guarantees,
.v3-recent-projects {
    background: #090a0a;
    color: #f7f2e8;
}

:root,
[data-theme="black"] {
    --v3-bg: #050505;
    --v3-bg-alt: #111111;
    --v3-card: rgba(18, 18, 18, 0.92);
    --v3-text: #f7f3ed;
    --v3-copy: #d9d0c4;
    --v3-accent: #7a4c2f;
    --v3-accent-rgb: 122, 76, 47;
    --v3-border: rgba(213, 187, 166, 0.22);
    --v3-surface-line: rgba(213, 187, 166, 0.06);
}

[data-theme="white"] {
    --v3-bg: #ffffff;
    --v3-bg-alt: #f7f4ef;
    --v3-card: rgba(255, 255, 255, 0.96);
    --v3-text: #231b16;
    --v3-copy: #5a5048;
    --v3-accent: #7a4c2f;
    --v3-accent-rgb: 122, 76, 47;
    --v3-border: rgba(35, 27, 22, 0.14);
    --v3-surface-line: rgba(122, 76, 47, 0.08);
}

#home {
    display: flex;
    flex-direction: column;
}

#home > .hero {
    order: 1;
}

#home > .v3-products {
    order: 2;
}

#home > .about-section {
    order: 3;
}

#home > .services-section {
    order: 4;
}

#home > .v3-capabilities {
    order: 5;
}

#home > .v3-recent-projects {
    order: 6;
}

#home > .v3-proof {
    order: 10;
}

#home > .v3-guarantees {
    order: 7;
}

#home > .process-section {
    order: 8;
}

#home > .guarantees-marquee {
    order: 9;
}

#home > .reviews-section {
    order: 11;
}

#home > .projects-section {
    order: 12;
}

#home > .calculator-section {
    order: 13;
}

#home > .live-dispatch-section {
    order: 14;
}

#home > .faq-section {
    order: 15;
}

#home > .merged-contact-cta {
    order: 16;
}

body.v3-hero-ready:not(.js-animations-active) :is(.site-header .brand, .site-header .nav-link, .site-header .header-actions, .hero-content .section-label, .hero-tagline, .hero-btns, .hero-headline, .hero-headline span, .hero-split-word, .hero-char) {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
}

body.v3-hero-ready:not(.js-animations-active) .hero-content {
    opacity: 1 !important;
    visibility: visible !important;
}

body.v3-hero-ready:not(.js-animations-active) :is(.v3-products, .v3-capabilities, .v3-recent-projects, .v3-guarantees, .about-section, .services-section, .projects-section, .calculator-section, .live-dispatch-section, .faq-section, .merged-contact-cta) :is(.blur-reveal, .title-split-word) {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
}

.v3-products {
    padding: 96px 0;
    border-bottom: none;
    position: relative;
    color: #f7f2e8;
    isolation: isolate;
    /* Solid at top, fades to transparent at 90% — swirl / next section bleeds through */
    background: linear-gradient(
        to bottom,
        #090a0a 0%,
        #090a0a 30%,
        transparent 90%
    );
}

/* Asphalt granule texture overlay — matches the section's gradient fade via mask */
.v3-products::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: url('../assets/images/textures/asphalt-granule-texture.png') center / 440px auto repeat;
    opacity: 0.22;
    /* Fade the texture out at the same point the section bg fades to transparent */
    -webkit-mask-image: linear-gradient(to bottom, black 0%, black 30%, transparent 90%);
    mask-image: linear-gradient(to bottom, black 0%, black 30%, transparent 90%);
}

/* Lift grid content above the texture overlay */
.v3-products-grid {
    position: relative;
    z-index: 1;
}

/* Deep Blue: fade from deep navy to transparent */
[data-theme="deep-blue"] .v3-products {
    background: linear-gradient(
        to bottom,
        #0a1424 0%,
        #0a1424 30%,
        transparent 90%
    ) !important;
}

/* Other dark theme overrides */
[data-theme="obsidian"] .v3-products {
    background: linear-gradient(to bottom, #050505 0%, #050505 30%, transparent 90%);
}
[data-theme="foundry"] .v3-products {
    background: linear-gradient(to bottom, #080807 0%, #080807 30%, transparent 90%);
}
[data-theme="safety"] .v3-products {
    background: linear-gradient(to bottom, #070706 0%, #070706 30%, transparent 90%);
}
[data-theme="steel"] .v3-products {
    background: linear-gradient(to bottom, #0b0f17 0%, #0b0f17 30%, transparent 90%);
}
[data-theme="white"] .v3-products {
    background: linear-gradient(to bottom, #f7f8fa 0%, #f7f8fa 30%, transparent 90%);
    color: #111827;
}
/* White theme: use darker texture so it's legible on light bg */
[data-theme="white"] .v3-products::before {
    opacity: 0.06;
}

.v3-products-grid {
    display: grid;
    grid-template-columns: minmax(380px, 460px) minmax(0, 1fr);
    gap: 72px;
    align-items: start;
}

.v3-section-copy {
    max-width: 460px;
}

.v3-products .v3-section-copy {
    position: sticky;
    top: 116px;
}

.v3-display {
    margin: 0 0 24px;
    color: #fffaf0;
    font-family: var(--font-display);
    font-size: clamp(28px, 3.2vw, 42px);
    font-weight: 800;
    line-height: 0.96;
    letter-spacing: 0;
    text-transform: uppercase;
}

.v3-section-copy p,
.v3-capability-copy p {
    color: rgba(247, 242, 232, 0.76);
    font-size: 17px;
    line-height: 1.68;
}

.v3-text-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    color: #d9a43f;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.v3-text-link:hover {
    opacity: 0.85;
}

.v3-text-link i {
    transition: transform 0.2s ease;
}

.v3-text-link:hover i {
    transform: translateX(4px);
}

.v3-product-rail {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.v3-product-card,
.v3-project-card {
    position: relative;
    aspect-ratio: 1 / 1;
    min-height: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: #111;
}

.v3-product-card img,
.v3-project-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.92) contrast(1.05);
    transition: transform 420ms ease, filter 420ms ease;
}

.v3-product-card::after,
.v3-project-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 45%, rgba(0, 0, 0, 0.88));
}

.v3-product-card strong,
.v3-project-card strong {
    position: absolute;
    z-index: 2;
    left: 18px;
    right: 18px;
    bottom: 20px;
    color: #fff;
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.v3-product-card:hover img,
.v3-project-card:hover img {
    transform: scale(1.05);
    filter: saturate(1.04) contrast(1.1);
}

.v3-proof {
    overflow: hidden;
    white-space: nowrap;
    border-top: 1px solid rgba(255, 255, 255, 0.11);
    border-bottom: 1px solid rgba(255, 255, 255, 0.11);
    background: #090a0a;
}

.v3-proof-track {
    display: flex;
    width: max-content;
    animation: v3ProofMarquee 34s linear infinite;
}

.v3-proof-content {
    display: flex;
    align-items: stretch;
}

.v3-proof-content span {
    min-height: 72px;
    display: inline-flex;
    align-items: center;
    padding: 0 clamp(34px, 4.2vw, 76px);
    border: 0;
    color: #fff;
    font-family: var(--font-display);
    font-size: clamp(16px, 1.7vw, 28px);
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.v3-proof-content span::after {
    content: "";
    width: 8px;
    height: 8px;
    margin-left: clamp(34px, 4.2vw, 76px);
    background: #d9a43f;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

.v3-proof:hover .v3-proof-track {
    animation-play-state: paused;
}

@keyframes v3ProofMarquee {
    0% {
        transform: translate3d(0, 0, 0);
    }

    100% {
        transform: translate3d(-50%, 0, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .v3-proof-track {
        animation: none;
    }
}

.v3-capabilities {
    position: relative;
    min-height: 520px;
    display: grid;
    align-items: center;
    padding: 96px 0;
    overflow: hidden;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    background:
        linear-gradient(90deg, rgba(5, 5, 5, 0.96) 0%, rgba(5, 5, 5, 0.86) 42%, rgba(5, 5, 5, 0.48) 100%),
        linear-gradient(180deg, rgba(5, 5, 5, 0.12), rgba(5, 5, 5, 0.72)),
        url("../assets/images/projects/sls-project-4.jpg") center / cover no-repeat;
}

.v3-capability-copy {
    max-width: 720px;
}

.v3-check-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 48px;
    padding: 0;
    margin: 32px 0 34px;
    list-style: none;
}

.v3-check-list li {
    position: relative;
    padding-left: 28px;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
}

.v3-check-list li::before {
    content: "\f058";
    position: absolute;
    left: 0;
    top: 1px;
    color: #d9a43f;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

.v3-solid-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 24px;
    background: linear-gradient(180deg, #e7ba52, #c8922b);
    color: #090a0a;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.v3-solid-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
    filter: brightness(1.08);
}

.v3-solid-btn:active {
    transform: translateY(0);
}

.v3-recent-projects {
    padding: 82px 0 88px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.v3-guarantees {
    padding: 88px 0 96px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.v3-guarantee-head {
    display: block;
    max-width: 780px;
    margin-bottom: 48px;
}

.v3-guarantee-head .v3-display {
    max-width: 760px;
    margin: 18px 0 24px;
}

.v3-guarantee-head p {
    max-width: 650px;
    color: rgba(255, 250, 240, 0.82);
    font-size: 17px;
    line-height: 1.62;
}

.v3-guarantee-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.v3-guarantee-grid article {
    min-height: 230px;
    padding: 34px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012)),
        rgba(9, 10, 10, 0.62);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.v3-guarantee-grid i {
    color: #d9a43f;
    font-size: 24px;
    margin-bottom: 28px;
}

.v3-guarantee-grid h3 {
    margin: 0 0 12px;
    color: #fff;
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 800;
    text-transform: uppercase;
}

.v3-guarantee-grid p {
    margin: 0;
    color: rgba(255, 250, 240, 0.8);
    font-size: 14px;
    line-height: 1.56;
}

.v3-projects-head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px 28px;
    align-items: end;
    margin-bottom: 30px;
}

.v3-projects-head .section-label {
    grid-column: 1 / -1;
}

.v3-projects-head .v3-display {
    max-width: 720px;
    margin-bottom: 0;
}

.v3-project-rail {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.v3-project-card {
    min-height: 0;
}

@media (max-width: 1100px) {
    .v3-products-grid,
    .v3-projects-head {
        grid-template-columns: 1fr;
    }

    .v3-products .v3-section-copy {
        position: static;
    }

    .v3-proof,
    .v3-product-rail {
        grid-template-columns: repeat(3, 1fr);
    }

    .v3-project-rail {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 700px) {
    .v3-products {
        padding: 46px 0 54px;
    }

    .v3-capabilities {
        padding: 56px 0;
    }

    .v3-recent-projects {
        padding: 50px 0 54px;
    }

    .v3-products-grid {
        gap: 34px;
    }

    .v3-display {
        font-size: clamp(22px, 7vw, 30px);
        margin-bottom: 18px;
    }

    .v3-section-copy p,
    .v3-capability-copy p {
        font-size: 15px;
        line-height: 1.6;
    }

    .v3-check-list {
        grid-template-columns: 1fr;
    }

    .v3-product-rail,
    .v3-project-rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .v3-product-card,
    .v3-project-card {
        min-height: 0;
    }

    .v3-product-card strong,
    .v3-project-card strong {
        left: 14px;
        right: 14px;
        bottom: 16px;
        font-size: 13px;
        line-height: 1.05;
    }

    .v3-proof-content span {
        min-height: 58px;
        padding: 0 34px;
        font-size: 16px;
    }

    .v3-proof-content span::after {
        margin-left: 34px;
    }

    .v3-capabilities {
        min-height: auto;
        background:
            linear-gradient(90deg, rgba(5, 5, 5, 0.96), rgba(5, 5, 5, 0.76)),
            url("../assets/images/projects/sls-project-4.jpg") center / cover no-repeat;
    }

    .v3-projects-head {
        gap: 12px;
    }

    .about-section,
    .services-section,
    .v3-guarantees,
    .projects-section,
    .calculator-section,
    .live-dispatch-section,
    .faq-section,
    .merged-contact-cta {
        padding-top: 56px !important;
        padding-bottom: 56px !important;
    }

    .section-header {
        margin-bottom: 32px !important;
    }

    .section-title {
        font-size: clamp(20px, 6vw, 26px) !important;
        line-height: 0.98 !important;
        margin-bottom: 16px !important;
    }

    .section-sub,
    .about-desc p,
    .calc-copy p,
    .merged-cta-copy p {
        font-size: 15px !important;
        line-height: 1.58 !important;
    }

    .about-grid,
    .calc-grid,
    .cta-inner {
        gap: 32px !important;
    }

    .about-stats-grid {
        display: none !important;
    }

    .services-grid {
        gap: 18px !important;
    }

    .svc-card {
        min-height: auto !important;
    }

    .svc-img-wrap {
        height: 180px !important;
    }

    .svc-body {
        padding: 22px !important;
    }

    .process-timeline {
        gap: 18px !important;
    }

    .process-visual,
    .process-line,
    .process-dot {
        display: none !important;
    }

    .process-step {
        grid-template-columns: 1fr !important;
    }

    .process-card {
        padding: 22px !important;
    }

    .process-section,
    .reviews-section,
    .guarantees-marquee {
        display: none !important;
    }

    .reviews-slider-container {
        margin-bottom: 28px !important;
    }

    .review-card,
    .calc-card,
    .contact-form-card {
        padding: 24px !important;
    }

    .gallery-pills-wrap {
        gap: 14px !important;
    }

    .density-reference {
        display: none !important;
    }

    .faq-accordion {
        gap: 12px !important;
    }

    .contact-details-list {
        gap: 14px !important;
    }

    .v3-guarantees {
        padding: 50px 0 !important;
    }

    .v3-guarantee-head {
        margin-bottom: 34px;
    }

    .v3-guarantee-head .v3-display {
        margin: 14px 0 18px;
    }

    .v3-guarantee-head p {
        font-size: 15px;
        line-height: 1.58;
    }

    .v3-guarantee-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .v3-guarantee-grid article {
        min-height: auto;
        padding: 26px 24px;
    }

    .v3-guarantee-grid i {
        margin-bottom: 16px;
        font-size: 22px;
    }
}

/* Safety theme alternate: orange and black bands flipped */
[data-theme="safety"] :is(
    .v3-products,
    .services-section,
    .v3-proof,
    .projects-section,
    .live-dispatch-section,
    .faq-section
) {
    --primary: #eda32b;
    --primary-rgb: 237, 163, 43;
    --primary-hover: #f5b84d;
    --accent: #eda32b;
    --accent-rgb: 237, 163, 43;
    --text-on-primary: #090806;
    --bg-primary: #070706;
    --bg-secondary: #100e0b;
    --bg-tertiary: #19150f;
    --bg-card: rgba(24, 20, 14, 0.84);
    --text-main: #eee7dc;
    --text-muted: #bdb1a1;
    --text-light: #fffaf0;
    --border-color: rgba(237, 163, 43, 0.18);
    --border-hover: rgba(237, 163, 43, 0.52);
    --v3-bg: #070706;
    --v3-bg-alt: #12100c;
    --v3-card: rgba(24, 20, 14, 0.84);
    --v3-text: #fffaf0;
    --v3-copy: rgba(255, 247, 235, 0.8);
    --v3-accent: #eda32b;
    --v3-accent-rgb: 237, 163, 43;
    --v3-border: rgba(237, 163, 43, 0.2);
    --v3-surface-line: rgba(237, 163, 43, 0.055);
    background: #070706;
    color: #fffaf0;
}

[data-theme="safety"] :is(
    .about-section,
    .v3-recent-projects,
    .v3-guarantees,
    .calculator-section,
    .merged-contact-cta
) {
    --primary: #090806;
    --primary-rgb: 9, 8, 6;
    --primary-hover: #242019;
    --accent: #090806;
    --accent-rgb: 9, 8, 6;
    --text-on-primary: #eda32b;
    --bg-primary: #eda32b;
    --bg-secondary: #e29a26;
    --bg-tertiary: #f0b349;
    --bg-card: #0c0b09;
    --text-main: #17120b;
    --text-muted: #3f3322;
    --text-light: #090806;
    --border-color: rgba(9, 8, 6, 0.24);
    --border-hover: rgba(9, 8, 6, 0.72);
    --v3-bg: #eda32b;
    --v3-bg-alt: #0c0b09;
    --v3-card: #0c0b09;
    --v3-text: #090806;
    --v3-copy: #3d301e;
    --v3-accent: #090806;
    --v3-accent-rgb: 9, 8, 6;
    --v3-border: rgba(9, 8, 6, 0.24);
    --v3-surface-line: rgba(255, 255, 255, 0.035);
    background: #eda32b;
    color: #090806;
}

[data-theme="safety"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .live-dispatch-section,
    .faq-section
) :is(
    .section-title,
    .title-split-word,
    .v3-display,
    .section-label
) {
    color: #fffaf0;
    -webkit-text-fill-color: #fffaf0;
}

[data-theme="safety"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .live-dispatch-section,
    .faq-section
) :is(
    .section-sub,
    .v3-section-copy p,
    .svc-body p,
    .faq-answer,
    .gallery-pill
) {
    color: rgba(255, 247, 235, 0.76);
}

[data-theme="safety"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .live-dispatch-section,
    .faq-section
) :is(
    .v3-text-link,
    .svc-icon,
    .faq-question i
) {
    color: #eda32b;
}

[data-theme="safety"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .live-dispatch-section,
    .faq-section
) .section-label::before {
    background: #eda32b;
}

[data-theme="safety"] :is(
    .about-section,
    .v3-guarantees,
    .calculator-section,
    .merged-contact-cta
) :is(
    .section-title,
    .title-split-word,
    .v3-display,
    .section-label,
    .calc-copy h2,
    .merged-cta-copy h2
) {
    color: #090806;
    -webkit-text-fill-color: #090806;
}

[data-theme="safety"] .v3-recent-projects :is(
    .section-title,
    .title-split-word,
    .v3-display,
    .section-label,
    .calc-copy h2,
    .merged-cta-copy h2
) {
    color: #fffaf0;
    -webkit-text-fill-color: #fffaf0;
}

[data-theme="safety"] :is(
    .about-section,
    .v3-guarantees,
    .calculator-section,
    .merged-contact-cta
) :is(
    .about-desc p,
    .v3-guarantee-head p,
    .calc-copy p,
    .merged-cta-copy p,
    .contact-detail-item span,
    .contact-detail-item a
) {
    color: #3d301e;
}

[data-theme="safety"] :is(
    .about-section,
    .v3-guarantees,
    .calculator-section,
    .merged-contact-cta
) .section-label::before {
    background: #090806;
}

[data-theme="safety"] .about-section :is(.stat-card, .about-showcase),
[data-theme="safety"] .v3-guarantee-grid article,
[data-theme="safety"] .calculator-section :is(.calc-card, .density-reference),
[data-theme="safety"] .merged-contact-cta .contact-form-card {
    background: #0c0b09;
    border-color: rgba(9, 8, 6, 0.68);
    box-shadow: 0 18px 38px rgba(52, 31, 5, 0.25);
}

[data-theme="safety"] .about-section :is(.stat-card h3, .stat-card p),
[data-theme="safety"] .v3-guarantee-grid :is(h3, p),
[data-theme="safety"] .calculator-section :is(
    .density-reference h4,
    .density-reference li,
    .form-group label,
    .calc-result-item span,
    .calc-result-item strong
),
[data-theme="safety"] .merged-contact-cta :is(
    .contact-form-card,
    .form-group label,
    .checkbox-container
) {
    color: #fffaf0;
}

[data-theme="safety"] :is(
    .about-section .stat-icon-wrap,
    .v3-guarantee-grid i,
    .calculator-section .density-reference li::before,
    .calculator-section .calc-result-item.highlighted span,
    .calculator-section .calc-result-item.highlighted strong
) {
    color: #eda32b;
}

[data-theme="safety"] .calculator-section :is(
    .form-group input,
    .calc-card select,
    .calc-results
),
[data-theme="safety"] .merged-contact-cta :is(
    .form-group input,
    .form-group textarea
) {
    background: #17130e;
    border-color: rgba(237, 163, 43, 0.24);
    color: #fffaf0;
}

[data-theme="safety"] .calculator-section :is(
    .form-group input,
    .calc-card select
):focus,
[data-theme="safety"] .merged-contact-cta :is(
    .form-group input,
    .form-group textarea
):focus {
    background: #0c0b09;
    border-color: #eda32b;
    box-shadow: 0 0 0 3px rgba(237, 163, 43, 0.18);
}

[data-theme="safety"] .services-section {
    background: #070706;
}

[data-theme="safety"] .services-section .svc-card,
[data-theme="safety"] .faq-section .faq-item {
    background: #12100c;
    border-color: rgba(237, 163, 43, 0.18);
}

[data-theme="safety"] .projects-section {
    background: #070706;
}

[data-theme="safety"] .projects-section .project-card {
    background: #12100c;
    border-color: rgba(237, 163, 43, 0.18);
}

[data-theme="safety"] .projects-section :is(.gallery-nav, .gallery-pill.active) {
    color: #fffaf0;
    border-color: rgba(237, 163, 43, 0.34);
}

[data-theme="safety"] .projects-section .gallery-pill.active {
    background: rgba(237, 163, 43, 0.12);
}

[data-theme="safety"] .projects-section .gallery-pill:hover:not(.active),
[data-theme="safety"] .projects-section .gallery-pill:focus-visible,
[data-theme="safety"] .projects-section .gallery-nav:hover:not(:disabled),
[data-theme="safety"] .projects-section .gallery-nav:focus-visible {
    background: #eda32b;
    border-color: #eda32b;
    color: #090806;
}

[data-theme="safety"] .v3-proof {
    background: #070706;
    border-color: rgba(237, 163, 43, 0.2);
}

[data-theme="safety"] .v3-proof-content span {
    color: #fffaf0;
}

[data-theme="safety"] .v3-proof-content span::after {
    background: #eda32b;
}

[data-theme="safety"] .faq-section {
    background: #070706;
}

[data-theme="safety"] :is(
    .about-section,
    .v3-guarantees,
    .calculator-section,
    .merged-contact-cta
)::before {
    opacity: 0.075;
    mix-blend-mode: multiply;
}

/* Alternating black and construction-orange theme */
[data-theme="safety"] :is(
    .v3-products,
    .services-section,
    .v3-proof,
    .projects-section,
    .faq-section
) {
    --primary: #090806;
    --primary-rgb: 9, 8, 6;
    --primary-hover: #242019;
    --accent: #090806;
    --accent-rgb: 9, 8, 6;
    --text-on-primary: #eda32b;
    --bg-primary: #eda32b;
    --bg-secondary: #e29a26;
    --bg-tertiary: #f0b349;
    --bg-card: #0c0b09;
    --text-main: #17120b;
    --text-muted: #3f3322;
    --text-light: #090806;
    --border-color: rgba(9, 8, 6, 0.24);
    --border-hover: rgba(9, 8, 6, 0.72);
    --card-shadow: 0 18px 38px rgba(52, 31, 5, 0.2);
    --v3-bg: #eda32b;
    --v3-bg-alt: #0c0b09;
    --v3-card: #0c0b09;
    --v3-text: #090806;
    --v3-copy: #3d301e;
    --v3-accent: #090806;
    --v3-accent-rgb: 9, 8, 6;
    --v3-border: rgba(9, 8, 6, 0.24);
    --v3-surface-line: rgba(255, 255, 255, 0.035);
    background-color: #eda32b;
    color: #090806;
}

[data-theme="safety"] :is(
    .about-section,
    .v3-recent-projects,
    .v3-guarantees,
    .calculator-section,
    .merged-contact-cta
) {
    background-color: #070706;
}

[data-theme="safety"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .faq-section
) :is(
    .section-title,
    .title-split-word,
    .v3-display
) {
    color: #090806;
    -webkit-text-fill-color: #090806;
}

[data-theme="safety"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .faq-section
) :is(
    .section-sub,
    .v3-section-copy p,
    .gallery-pill
) {
    color: #3d301e;
}

[data-theme="safety"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .faq-section
) :is(
    .section-label,
    .v3-text-link
) {
    color: #090806;
}

[data-theme="safety"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .faq-section
) .section-label::before {
    background: #090806;
}

[data-theme="safety"] .v3-product-card {
    border-color: rgba(9, 8, 6, 0.34);
    box-shadow: 0 14px 30px rgba(52, 31, 5, 0.2);
}

[data-theme="safety"] .services-section {
    background: #eda32b;
}

[data-theme="safety"] .services-section .svc-card,
[data-theme="safety"] .faq-section .faq-item {
    background: #0c0b09;
    border-color: rgba(9, 8, 6, 0.62);
    box-shadow: 0 16px 34px rgba(52, 31, 5, 0.24);
}

[data-theme="safety"] :is(
    .services-section .svc-body h3,
    .faq-section .faq-question
) {
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
}

[data-theme="safety"] :is(
    .services-section .svc-body p,
    .faq-section .faq-answer
) {
    color: rgba(255, 250, 240, 0.76);
}

[data-theme="safety"] :is(
    .services-section .svc-icon,
    .faq-section .faq-question i
) {
    color: #eda32b;
}

[data-theme="safety"] .services-section .svc-img-wrap {
    border-color: rgba(237, 163, 43, 0.24);
}

[data-theme="safety"] .v3-solid-btn {
    background: #eda32b;
    color: #090806;
}

[data-theme="safety"] .v3-solid-btn:hover {
    background: #f0b64a;
    color: #090806;
}

[data-theme="safety"] .v3-proof {
    background: #eda32b;
    border-color: rgba(9, 8, 6, 0.28);
}

[data-theme="safety"] .v3-proof-content span {
    color: #090806;
}

[data-theme="safety"] .v3-proof-content span::after {
    background: #090806;
}

[data-theme="safety"] .projects-section {
    background: #eda32b;
}

[data-theme="safety"] .projects-section .gallery-pills-wrap {
    border-color: rgba(9, 8, 6, 0.24);
}

[data-theme="safety"] .projects-section :is(.gallery-nav, .gallery-pill.active) {
    color: #090806;
    border-color: rgba(9, 8, 6, 0.38);
}

[data-theme="safety"] .projects-section .gallery-pill.active {
    background: rgba(9, 8, 6, 0.1);
}

[data-theme="safety"] .projects-section .gallery-pill:hover:not(.active),
[data-theme="safety"] .projects-section .gallery-pill:focus-visible,
[data-theme="safety"] .projects-section .gallery-nav:hover:not(:disabled),
[data-theme="safety"] .projects-section .gallery-nav:focus-visible {
    background: #090806;
    border-color: #090806;
    color: #eda32b;
    outline: none;
}

[data-theme="safety"] .projects-section .project-card {
    background: #0c0b09;
    border-color: rgba(9, 8, 6, 0.62);
    color: #ffffff;
    box-shadow: 0 16px 36px rgba(52, 31, 5, 0.24);
}

[data-theme="safety"] .projects-section .project-card:hover,
[data-theme="safety"] .projects-section .project-card.active-scroll,
[data-theme="safety"] .projects-section .project-card:focus-visible {
    border-color: #090806;
    box-shadow: 0 22px 46px rgba(52, 31, 5, 0.34);
    outline: none;
}

[data-theme="safety"] .projects-section .project-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.02) 38%, rgba(0, 0, 0, 0.62) 100%);
    opacity: 0.42;
    transition: opacity 280ms ease;
}

[data-theme="safety"] .projects-section :is(
    .project-card:hover,
    .project-card.active-scroll,
    .project-card:focus-visible
) .project-photo::after {
    opacity: 1;
}

[data-theme="safety"] .projects-section .project-photo-count {
    z-index: 2;
    background: rgba(9, 8, 6, 0.86);
    border-color: rgba(237, 163, 43, 0.55);
    color: #eda32b;
}

[data-theme="safety"] .projects-section .project-view-more {
    z-index: 2;
    background: #eda32b;
    border: 1px solid #090806;
    color: #090806;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
}

[data-theme="safety"] .projects-section :is(
    .project-card:hover,
    .project-card.active-scroll,
    .project-card:focus-visible
) .project-view-more {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

[data-theme="safety"] .projects-section .project-meta span:first-child {
    color: #eda32b;
}

[data-theme="safety"] .projects-section .project-meta strong {
    color: #ffffff;
}

[data-theme="safety"] .projects-section .project-meta small {
    color: rgba(255, 250, 240, 0.7);
}

[data-theme="safety"] .faq-section {
    background: #eda32b;
    border-color: rgba(9, 8, 6, 0.24);
}

[data-theme="safety"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .faq-section
)::before,
[data-theme="safety"] :is(.v3-products, .services-section)::after {
    opacity: 0.075;
    mix-blend-mode: multiply;
}

/* Alternating monochrome theme */
[data-theme="contrast"] :is(
    .v3-products,
    .services-section,
    .v3-proof,
    .projects-section,
    .faq-section
) {
    --primary: #090909;
    --primary-rgb: 9, 9, 9;
    --primary-hover: #2b2b2b;
    --accent: #090909;
    --accent-rgb: 9, 9, 9;
    --text-on-primary: #ffffff;
    --bg-primary: #ffffff;
    --bg-secondary: #f4f4f2;
    --bg-tertiary: #e9e9e6;
    --bg-card: rgba(255, 255, 255, 0.94);
    --text-main: #202020;
    --text-muted: #595959;
    --text-light: #090909;
    --border-color: rgba(9, 9, 9, 0.14);
    --border-hover: rgba(9, 9, 9, 0.4);
    --card-shadow: 0 16px 34px rgba(9, 9, 9, 0.1);
    --v3-bg: #f4f4f2;
    --v3-bg-alt: #ffffff;
    --v3-card: rgba(255, 255, 255, 0.94);
    --v3-text: #090909;
    --v3-copy: #515151;
    --v3-accent: #090909;
    --v3-accent-rgb: 9, 9, 9;
    --v3-border: rgba(9, 9, 9, 0.14);
    --v3-surface-line: rgba(9, 9, 9, 0.035);
    background-color: var(--v3-bg);
    color: var(--v3-text);
}

[data-theme="contrast"] :is(
    .about-section,
    .v3-recent-projects,
    .v3-guarantees,
    .calculator-section,
    .merged-contact-cta
) {
    background-color: #070707;
}

[data-theme="contrast"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .faq-section
) :is(
    .section-title,
    .title-split-word,
    .v3-display,
    .svc-body h3,
    .faq-question
) {
    color: #090909;
    -webkit-text-fill-color: #090909;
}

[data-theme="contrast"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .faq-section
) :is(
    .section-sub,
    .v3-section-copy p,
    .svc-body p,
    .faq-answer,
    .gallery-pill
) {
    color: #555555;
}

[data-theme="contrast"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .faq-section
) :is(
    .section-label,
    .v3-text-link,
    .svc-icon,
    .faq-question i
) {
    color: #090909;
}

[data-theme="contrast"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .faq-section
) .section-label::before {
    background: #090909;
}

[data-theme="contrast"] .services-section {
    background: #f4f4f2;
}

[data-theme="contrast"] .services-section .svc-card,
[data-theme="contrast"] .faq-section .faq-item {
    background: #ffffff;
    border-color: rgba(9, 9, 9, 0.14);
    box-shadow: 0 14px 32px rgba(9, 9, 9, 0.09);
}

[data-theme="contrast"] .services-section .svc-img-wrap {
    border-color: rgba(9, 9, 9, 0.14);
}

[data-theme="contrast"] .services-section .v3-solid-btn {
    background: #090909;
    color: #ffffff;
}

[data-theme="contrast"] .v3-proof {
    background: #ffffff;
    border-color: rgba(9, 9, 9, 0.14);
}

[data-theme="contrast"] .v3-proof-content span {
    color: #090909;
}

[data-theme="contrast"] .v3-proof-content span::after {
    background: #090909;
}

[data-theme="contrast"] .projects-section {
    background: #f4f4f2;
}

[data-theme="contrast"] .projects-section :is(.gallery-nav, .gallery-pill.active) {
    color: #090909;
    border-color: rgba(9, 9, 9, 0.22);
}

[data-theme="contrast"] .projects-section .gallery-pill.active {
    background: rgba(9, 9, 9, 0.08);
}

[data-theme="contrast"] .projects-section .gallery-pill:hover:not(.active),
[data-theme="contrast"] .projects-section .gallery-pill:focus-visible {
    background: #090909;
    border-color: #090909;
    color: #ffffff;
    outline: none;
}

[data-theme="contrast"] .projects-section .gallery-nav:hover:not(:disabled),
[data-theme="contrast"] .projects-section .gallery-nav:focus-visible {
    background: #090909;
    border-color: #090909;
    color: #ffffff;
    box-shadow: 0 8px 22px rgba(9, 9, 9, 0.18);
    outline: none;
}

[data-theme="contrast"] .projects-section .project-card {
    background: #ffffff;
    border-color: rgba(9, 9, 9, 0.14);
    color: #090909;
    box-shadow: 0 16px 36px rgba(9, 9, 9, 0.1);
}

[data-theme="contrast"] .projects-section .project-card:hover,
[data-theme="contrast"] .projects-section .project-card.active-scroll,
[data-theme="contrast"] .projects-section .project-card:focus-visible {
    border-color: #090909;
    box-shadow: 0 20px 42px rgba(9, 9, 9, 0.17);
    outline: none;
}

[data-theme="contrast"] .projects-section .project-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.02) 42%, rgba(0, 0, 0, 0.46) 100%);
    opacity: 0.35;
    transition: opacity 280ms ease;
}

[data-theme="contrast"] .projects-section :is(
    .project-card:hover,
    .project-card.active-scroll,
    .project-card:focus-visible
) .project-photo::after {
    opacity: 1;
}

[data-theme="contrast"] .projects-section .project-photo-count {
    z-index: 2;
    background: rgba(9, 9, 9, 0.82);
    border-color: rgba(255, 255, 255, 0.24);
    color: #ffffff;
}

[data-theme="contrast"] .projects-section .project-view-more {
    z-index: 2;
    background: #ffffff;
    border: 1px solid rgba(9, 9, 9, 0.18);
    color: #090909;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24);
}

[data-theme="contrast"] .projects-section :is(
    .project-card:hover,
    .project-card.active-scroll,
    .project-card:focus-visible
) .project-view-more {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

[data-theme="contrast"] .projects-section .project-meta span:first-child,
[data-theme="contrast"] .projects-section .project-meta strong {
    color: #090909;
}

[data-theme="contrast"] .projects-section .project-meta small {
    color: #5a5a5a;
}

[data-theme="contrast"] .faq-section {
    background: #f4f4f2;
    border-color: rgba(9, 9, 9, 0.14);
}

[data-theme="contrast"] :is(
    .v3-products,
    .services-section,
    .projects-section,
    .faq-section
)::before,
[data-theme="contrast"] :is(.v3-products, .services-section)::after {
    opacity: 0.035;
    mix-blend-mode: multiply;
}

[data-theme="contrast"] .v3-recent-projects::before {
    opacity: 0.1;
}

[data-theme="contrast"] .v3-product-card,
[data-theme="contrast"] .v3-project-card {
    box-shadow: 0 14px 30px rgba(9, 9, 9, 0.14);
}

[data-theme="contrast"] .v3-product-card strong,
[data-theme="contrast"] .v3-project-card strong {
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
}

/* Theme-aware v3 surfaces */
.v3-products,
.v3-proof,
.v3-capabilities,
.v3-guarantees,
.v3-recent-projects {
    background-color: var(--v3-bg);
    color: var(--v3-text);
}

.v3-products,
.v3-recent-projects,
.v3-guarantees {
    border-color: var(--v3-border);
}

.v3-display,
.v3-guarantee-grid h3 {
    color: var(--v3-text);
}

.v3-section-copy p,
.v3-capability-copy p,
.v3-guarantee-head p,
.v3-guarantee-grid p {
    color: var(--v3-copy);
}

.v3-text-link,
.v3-guarantee-grid i,
.v3-check-list li::before {
    color: var(--v3-section-accent, var(--v3-accent));
}

.v3-product-card,
.v3-project-card {
    background: var(--v3-bg-alt);
    border-color: var(--v3-border);
}

.v3-proof {
    border-color: var(--v3-border);
    background:
        linear-gradient(
            90deg,
            rgba(var(--v3-accent-rgb), 0.09),
            transparent 20%,
            transparent 80%,
            rgba(var(--v3-accent-rgb), 0.09)
        ),
        var(--v3-bg);
}

[data-theme="obsidian"] .v3-proof,
[data-theme="textured"] .v3-proof {
    background: var(--v3-bg);
}

.v3-proof-content span {
    color: var(--v3-text);
}

.v3-proof-content span::after {
    background: var(--v3-accent);
}

.v3-guarantee-grid article {
    background:
        linear-gradient(180deg, var(--v3-surface-line), transparent),
        var(--v3-card);
    border-color: var(--v3-border);
    transition: border-color 220ms ease, background-color 220ms ease, transform 220ms ease;
}

.v3-guarantee-grid article:hover {
    border-color: rgba(var(--v3-accent-rgb), 0.42);
    transform: translateY(-3px);
}

.v3-solid-btn {
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--v3-section-accent, var(--v3-accent)) 84%, white),
        color-mix(in srgb, var(--v3-section-accent, var(--v3-accent)) 82%, black)
    );
    color: var(--text-on-primary);
}

[data-theme="foundry"] .v3-products {
    --v3-section-accent: #f0a53a;
    border-top: 2px solid rgba(240, 165, 58, 0.34);
}

[data-theme="foundry"] .about-section {
    --v3-section-accent: #f2b84b;
    border-top-color: rgba(242, 184, 75, 0.28);
}

[data-theme="foundry"] .services-section {
    --v3-section-accent: #d97b25;
    border-top-color: rgba(217, 123, 37, 0.28);
}

[data-theme="foundry"] .v3-recent-projects {
    --v3-section-accent: #efaa3c;
    border-top: 2px solid rgba(239, 170, 60, 0.3);
}

[data-theme="foundry"] .v3-guarantees {
    --v3-section-accent: #f0b64a;
    border-top: 2px solid rgba(240, 182, 74, 0.3);
}

[data-theme="foundry"] :is(
    .v3-products,
    .about-section,
    .services-section,
    .v3-recent-projects,
    .v3-guarantees
) :is(.section-label, .v3-text-link, .svc-icon) {
    color: var(--v3-section-accent, var(--v3-accent));
}

[data-theme="foundry"] :is(.svc-card, .about-slider-shell) {
    border-color: rgba(var(--v3-accent-rgb), 0.17);
}

[data-theme="foundry"] :is(.svc-card, .about-slider-shell):hover {
    border-color: var(--v3-section-accent, var(--v3-accent));
}

[data-theme="white"] :is(
    .v3-products,
    .v3-proof,
    .v3-guarantees,
    .v3-recent-projects
) {
    background-color: var(--v3-bg);
}

[data-theme="white"] :is(
    .v3-products,
    .v3-guarantees,
    .about-section,
    .services-section,
    .v3-recent-projects
)::before,
[data-theme="white"] :is(.v3-products, .services-section)::after {
    opacity: 0.035;
    mix-blend-mode: multiply;
}

[data-theme="white"] .v3-recent-projects::before {
    opacity: 0.025;
    mix-blend-mode: multiply;
}

[data-theme="white"] .v3-product-card,
[data-theme="white"] .v3-project-card {
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.1);
}

[data-theme="white"] .projects-section .project-meta small {
    color: #64748b;
}

[data-theme="white"] .v3-guarantee-grid article {
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.055);
}

[data-theme="white"] .v3-solid-btn {
    color: #ffffff;
}

/* Capabilities always stays dark bg — force text back to light for glacier */
[data-theme="white"] .v3-capabilities .section-label {
    color: rgba(255, 255, 255, 0.68);
}
[data-theme="white"] .v3-capabilities .section-label::before {
    background: rgba(255, 255, 255, 0.5);
}
[data-theme="white"] .v3-capabilities .v3-display {
    color: #ffffff;
}
[data-theme="white"] .v3-capabilities .v3-capability-copy p {
    color: rgba(255, 250, 240, 0.82);
}
[data-theme="white"] .v3-capabilities .v3-text-link {
    color: rgba(255, 255, 255, 0.88);
}

@supports not (background: color-mix(in srgb, black, white)) {
    .v3-solid-btn {
        background: var(--v3-section-accent, var(--v3-accent));
    }
}

body.theme-royal-dark,
html[data-theme="obsidian"] body {
    --text-muted: rgba(246, 241, 232, 0.78);
}

.hero-tagline,
.section-sub,
.about-desc p,
.svc-body p,
.process-card p,
.stat-card p,
.merged-cta-copy p,
.contact-detail-item span,
.contact-detail-item a,
.calc-copy p,
.density-reference li,
.calc-result-item span,
.faq-answer,
.review-author span,
.reviews-cta p,
.project-card p,
.footer-brand-block p,
.site-footer nav a,
.footer-bottom p {
    color: rgba(246, 241, 232, 0.78);
}

.hero-tagline,
.v3-section-copy p,
.v3-capability-copy p,
.v3-capabilities .v3-check-list li,
.merged-cta-copy p {
    color: rgba(255, 250, 240, 0.86);
}

.about-desc p,
.svc-body p,
.calc-copy p,
.faq-answer {
    color: rgba(255, 250, 240, 0.82);
}

.v3-proof span,
.contact-detail-item span,
.contact-detail-item a,
.density-reference li,
.calc-result-item span {
    color: rgba(255, 250, 240, 0.74);
}

[data-theme="white"] body,
[data-theme="white"] .section-sub,
[data-theme="white"] .about-desc p,
[data-theme="white"] .svc-body p,
[data-theme="white"] .merged-cta-copy p,
[data-theme="white"] .calc-copy p,
[data-theme="white"] .faq-answer,
[data-theme="white"] .process-card p,
[data-theme="white"] .stat-card p,
[data-theme="white"] .review-author span,
[data-theme="white"] .reviews-cta p,
[data-theme="white"] .project-card p {
    color: inherit;
}

[data-theme="white"] .v3-section-copy p {
    color: var(--v3-copy);
}

[data-theme="white"] .review-stars {
    color: #92400e;
}

[data-theme="white"] .v3-proof-content span {
    color: var(--v3-text);
}

[data-theme="white"] .contact-detail-item span,
[data-theme="white"] .contact-detail-item a {
    color: var(--text-main);
}

.v3-products,
.v3-capabilities,
.v3-recent-projects,
.v3-guarantees,
.about-section,
.services-section,
.projects-section,
.calculator-section,
.faq-section,
.merged-contact-cta {
    position: relative;
    isolation: isolate;
}

.v3-products::before,
.v3-guarantees::before,
.about-section::before,
.services-section::before,
.projects-section::before,
.calculator-section::before,
.faq-section::before,
.v3-recent-projects::before,
.merged-contact-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(9, 10, 10, 0.82), rgba(9, 10, 10, 0.94)),
        url("../assets/images/textures/poured-concrete-texture.png") center / 760px auto repeat;
    opacity: 0.2;
    mix-blend-mode: screen;
}

.v3-products::after,
.services-section::after,
.merged-contact-cta::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(9, 10, 10, 0.94), rgba(9, 10, 10, 0.52), rgba(9, 10, 10, 0.94)),
        url("../assets/images/textures/asphalt-granule-texture.png") center / 440px auto repeat;
    opacity: 0.22;
    mix-blend-mode: soft-light;
}

.v3-capabilities::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: url("../assets/images/textures/black-diamond-plate-texture.png") center / 520px auto repeat;
    opacity: 0.12;
    mix-blend-mode: screen;
}

/* Gradient overlay: fades bg color at top+bottom, semi-transparent center vignette */
.v3-capabilities::before,
.v3-recent-projects::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(to bottom,
            var(--v3-bg) 0%,
            transparent 22%,
            transparent 78%,
            var(--v3-bg) 100%
        );
}

/* Lift content above gradient overlay */
.v3-capabilities > .container,
.v3-recent-projects > .container {
    position: relative;
    z-index: 2;
}

.v3-product-card,
.v3-project-card,
.svc-card,
.about-slider-shell,
.calc-card,
.contact-form-card,
.faq-item {
    box-shadow:
        inset 0 0 0 1px rgba(255, 250, 240, 0.05),
        0 18px 45px rgba(0, 0, 0, 0.24);
}

.v3-product-card::before,
.v3-project-card::before,
.svc-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(180deg, transparent 30%, rgba(0, 0, 0, 0.36)),
        url("../assets/images/textures/crushed-gravel-texture.png") center / 260px auto repeat;
    opacity: 0.16;
    mix-blend-mode: overlay;
}

.svc-card::before {
    z-index: 2;
}

.svc-body {
    position: relative;
    z-index: 3;
}

.btn-primary,
.v3-solid-btn,
.form-submit-btn,
.calc-apply-btn {
    position: relative;
    overflow: hidden;
}

.btn-primary::before,
.v3-solid-btn::before,
.form-submit-btn::before,
.calc-apply-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.22), transparent 38%, rgba(0, 0, 0, 0.18)),
        url("../assets/images/textures/black-diamond-plate-texture.png") center / 320px auto repeat;
    opacity: 0.2;
    mix-blend-mode: multiply;
}

.btn-primary > *,
.v3-solid-btn > *,
.form-submit-btn > *,
.calc-apply-btn > * {
    position: relative;
    z-index: 1;
}

.v3-capabilities {
    display: none !important;
}

.guarantees-marquee {
    display: none !important;
}

.services-section {
    padding: 88px 0;
}

.services-section .section-header {
    max-width: 760px;
    margin-bottom: 34px;
}

.services-section .section-title {
    max-width: 780px;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.svc-card {
    display: grid;
    grid-template-columns: 146px minmax(0, 1fr);
    min-height: 168px;
    background: var(--v3-card);
    border: 1px solid var(--v3-border);
    border-radius: 10px;
    overflow: hidden;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s ease, box-shadow 0.4s ease, background-color 0.4s ease;
    position: relative;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.3);
}

.svc-card:hover {
    transform: translateY(-4px);
    border-color: rgba(var(--v3-accent-rgb), 0.35);
    background: var(--v3-bg-alt);
    box-shadow: 
        0 20px 40px -12px rgba(0, 0, 0, 0.6),
        inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.svc-img-wrap {
    height: 100%;
    overflow: hidden;
    position: relative;
    border-right: 1px solid var(--v3-border);
}

.svc-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), filter 0.5s ease;
}

.svc-card:hover .svc-img-wrap img {
    transform: scale(1.08);
    filter: saturate(1.06) brightness(1.04);
}

.svc-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 24px 28px;
    position: relative;
    z-index: 3;
}

.svc-icon {
    display: flex;
    align-items: center;
    color: var(--v3-section-accent, var(--v3-accent));
    font-size: 1.45rem;
    margin-bottom: 12px;
    transition: transform 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275), color 0.3s ease;
}

.svc-icon svg {
    width: 1.5em;
    height: 1.5em;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.svc-card:hover .svc-icon {
    transform: scale(1.12) rotate(-4deg);
    color: #ffffff;
}

.svc-body h3 {
    margin: 0 0 8px 0;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--v3-text);
}

.svc-body p {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--v3-copy);
}

.services-cta-row {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-top: 30px;
}

@media (max-width: 700px) {
    .services-section {
        padding-top: 50px !important;
        padding-bottom: 50px !important;
    }

    .services-section .section-header {
        margin-bottom: 24px !important;
    }

    .services-grid {
        grid-template-columns: 1fr;
        gap: 12px !important;
    }

    .svc-card {
        grid-template-columns: 100px minmax(0, 1fr);
        min-height: 120px !important;
        border-radius: 8px;
    }

    .svc-img-wrap {
        min-height: 120px;
        height: 100% !important;
    }

    .svc-body {
        padding: 16px 18px !important;
    }

    .svc-icon {
        display: flex;
        font-size: 1.2rem;
        margin-bottom: 6px;
    }

    .svc-body h3 {
        font-size: 1.0rem;
        margin-bottom: 4px;
    }

    .svc-body p {
        font-size: 0.82rem !important;
        line-height: 1.4 !important;
    }

    .services-cta-row {
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
        margin-top: 22px;
    }

    .services-cta-row .v3-solid-btn,
    .services-cta-row .v3-text-link {
        width: 100%;
        justify-content: center;
    }
}

/* Final Safety inversion layer */
[data-theme="safety"] :is(.v3-products, .services-section, .v3-proof, .projects-section, .faq-section) {
    --primary: #eda32b;
    --primary-rgb: 237, 163, 43;
    --accent: #eda32b;
    --accent-rgb: 237, 163, 43;
    --text-on-primary: #090806;
    --bg-primary: #070706;
    --bg-secondary: #100e0b;
    --bg-card: #12100c;
    --text-main: #eee7dc;
    --text-muted: #bdb1a1;
    --text-light: #fffaf0;
    --border-color: rgba(237, 163, 43, 0.18);
    --border-hover: rgba(237, 163, 43, 0.52);
    --v3-bg: #070706;
    --v3-bg-alt: #12100c;
    --v3-card: #12100c;
    --v3-text: #fffaf0;
    --v3-copy: rgba(255, 247, 235, 0.8);
    --v3-accent: #eda32b;
    --v3-accent-rgb: 237, 163, 43;
    --v3-border: rgba(237, 163, 43, 0.2);
    background: #070706;
    color: #fffaf0;
}

[data-theme="safety"] :is(.about-section, .v3-guarantees, .calculator-section, .merged-contact-cta) {
    --primary: #090806;
    --primary-rgb: 9, 8, 6;
    --accent: #090806;
    --accent-rgb: 9, 8, 6;
    --text-on-primary: #eda32b;
    --bg-primary: #eda32b;
    --bg-secondary: #e29a26;
    --bg-card: #0c0b09;
    --text-main: #17120b;
    --text-muted: #3f3322;
    --text-light: #090806;
    --border-color: rgba(9, 8, 6, 0.24);
    --border-hover: rgba(9, 8, 6, 0.72);
    --v3-bg: #eda32b;
    --v3-bg-alt: #0c0b09;
    --v3-card: #0c0b09;
    --v3-text: #090806;
    --v3-copy: #3d301e;
    --v3-accent: #090806;
    --v3-accent-rgb: 9, 8, 6;
    --v3-border: rgba(9, 8, 6, 0.24);
    background: #eda32b;
    color: #090806;
}

[data-theme="safety"] .v3-recent-projects {
    --v3-bg: #070706;
    --v3-text: #fffaf0;
    --v3-copy: rgba(255, 247, 235, 0.8);
    --v3-accent: #eda32b;
    --v3-border: rgba(237, 163, 43, 0.2);
    background: #070706;
    color: #fffaf0;
}

[data-theme="safety"] :is(.v3-products, .services-section, .projects-section, .faq-section)
    :is(.section-title, .title-split-word, .v3-display, .section-label, .svc-body h3, .faq-question) {
    color: #fffaf0;
    -webkit-text-fill-color: #fffaf0;
}

[data-theme="safety"] :is(.v3-products, .services-section, .projects-section, .faq-section)
    :is(.section-sub, .v3-section-copy p, .svc-body p, .faq-answer, .gallery-pill) {
    color: rgba(255, 247, 235, 0.76);
}

[data-theme="safety"] :is(.v3-products, .services-section, .projects-section, .faq-section)
    :is(.v3-text-link, .svc-icon, .faq-question i) {
    color: #eda32b;
}

[data-theme="safety"] :is(.v3-products, .services-section, .projects-section, .faq-section) .section-label::before {
    background: #eda32b;
}

[data-theme="safety"] :is(.about-section, .v3-guarantees, .calculator-section, .merged-contact-cta)
    :is(.section-title, .title-split-word, .v3-display, .section-label, .calc-copy h2, .merged-cta-copy h2) {
    color: #090806;
    -webkit-text-fill-color: #090806;
}

[data-theme="safety"] .v3-recent-projects
    :is(.section-title, .title-split-word, .v3-display, .section-label) {
    color: #fffaf0;
    -webkit-text-fill-color: #fffaf0;
}

[data-theme="safety"] :is(.about-section, .v3-guarantees, .calculator-section, .merged-contact-cta)
    :is(.about-desc p, .v3-guarantee-head p, .calc-copy p, .merged-cta-copy p, .contact-detail-item span, .contact-detail-item a) {
    color: #3d301e;
}

[data-theme="safety"] .v3-recent-projects :is(.v3-text-link, strong) {
    color: #eda32b;
}

[data-theme="safety"] :is(.about-section, .v3-guarantees, .calculator-section, .merged-contact-cta)
    .section-label::before {
    background: #090806;
}

[data-theme="safety"] .v3-recent-projects .section-label::before {
    background: #eda32b;
}

[data-theme="safety"] .services-section,
[data-theme="safety"] .projects-section,
[data-theme="safety"] .faq-section {
    background: #070706;
}

[data-theme="safety"] .services-section .svc-card,
[data-theme="safety"] .faq-section .faq-item,
[data-theme="safety"] .projects-section .project-card {
    background: #12100c;
    border-color: rgba(237, 163, 43, 0.18);
}

[data-theme="safety"] .v3-proof {
    background: #070706;
    border-color: rgba(237, 163, 43, 0.2);
}

[data-theme="safety"] .v3-proof-content span {
    color: #fffaf0;
}

[data-theme="safety"] .v3-proof-content span::after {
    background: #eda32b;
}

[data-theme="safety"] .projects-section :is(.gallery-nav, .gallery-pill.active) {
    color: #fffaf0;
    border-color: rgba(237, 163, 43, 0.34);
}

[data-theme="safety"] .projects-section .gallery-pill.active {
    background: rgba(237, 163, 43, 0.12);
}

[data-theme="safety"] .projects-section :is(.gallery-pill:hover:not(.active), .gallery-pill:focus-visible, .gallery-nav:hover:not(:disabled), .gallery-nav:focus-visible) {
    background: #eda32b;
    border-color: #eda32b;
    color: #090806;
}

[data-theme="safety"] .about-section :is(.stat-card, .about-showcase),
[data-theme="safety"] .v3-guarantee-grid article,
[data-theme="safety"] .calculator-section :is(.calc-card, .density-reference),
[data-theme="safety"] .merged-contact-cta .contact-form-card {
    background: #0c0b09;
    border-color: rgba(9, 8, 6, 0.68);
    box-shadow: 0 18px 38px rgba(52, 31, 5, 0.25);
}

[data-theme="safety"] .about-section :is(.stat-card h3, .stat-card p),
[data-theme="safety"] .v3-guarantee-grid :is(h3, p),
[data-theme="safety"] .calculator-section :is(.density-reference h4, .density-reference li, .form-group label, .calc-result-item span, .calc-result-item strong),
[data-theme="safety"] .merged-contact-cta :is(.contact-form-card, .form-group label, .checkbox-container) {
    color: #fffaf0;
}

[data-theme="safety"] :is(.about-section .stat-icon-wrap, .v3-guarantee-grid i, .calculator-section .density-reference li::before, .calculator-section .calc-result-item.highlighted span, .calculator-section .calc-result-item.highlighted strong) {
    color: #eda32b;
}

[data-theme="safety"] .calculator-section :is(.form-group input, .calc-card select, .calc-results),
[data-theme="safety"] .merged-contact-cta :is(.form-group input, .form-group textarea) {
    background: #17130e;
    border-color: rgba(237, 163, 43, 0.24);
    color: #fffaf0;
}

[data-theme="safety"] .calculator-section :is(.form-group input, .calc-card select):focus,
[data-theme="safety"] .merged-contact-cta :is(.form-group input, .form-group textarea):focus {
    background: #0c0b09;
    border-color: #eda32b;
    box-shadow: 0 0 0 3px rgba(237, 163, 43, 0.18);
}

/* ==========================================================================
   TEXTURED THEME — Exposed material textures on dark obsidian palette
   Each section gets its own unique material texture, clearly visible.

   BLEND MODE NOTE: mix-blend-mode: screen is used throughout.
   Overlay crushes to black on near-black backgrounds (#070808).
   Screen lightens — texture highlights punch through the dark base.

   MASKING NOTE: mask-image fades the texture at the edges so it blends
   naturally into the section boundaries, without a dark gradient layer
   inside the background that would suppress the texture to near-invisible.
   ========================================================================== */

/* V3 token palette — same dark base as obsidian */
[data-theme="textured"] {
    --v3-bg:           #070808;
    --v3-bg-alt:       #0f0f0f;
    --v3-card:         rgba(7, 8, 8, 0.72);
    --v3-text:         #fffaf0;
    --v3-copy:         rgba(255, 250, 240, 0.84);
    --v3-accent:       #ffffff;
    --v3-accent-rgb:   255, 255, 255;
    --v3-border:       rgba(255, 255, 255, 0.10);
    --v3-surface-line: rgba(255, 255, 255, 0.04);
}

/* Sections that don't already have position/isolation */
[data-theme="textured"] :is(
    .process-section,
    .reviews-section,
    .v3-proof
) {
    position: relative;
    isolation: isolate;
}

/*
 * Shared edge-fade mask applied to every section's ::before.
 * Fades transparent → opaque over 10% at top and bottom,
 * center 80% is fully unmasked so texture is fully visible.
 */
[data-theme="textured"] :is(
    .v3-products,
    .about-section,
    .services-section,
    .v3-recent-projects,
    .v3-guarantees,
    .projects-section,
    .calculator-section,
    .faq-section,
    .merged-contact-cta,
    .process-section,
    .reviews-section
)::before {
    -webkit-mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        black 10%,
        black 90%,
        transparent 100%
    );
    mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        black 10%,
        black 90%,
        transparent 100%
    );
}

/* ── v3-products ─ Crushed Gravel ─────────────────────────────────────────── */
[data-theme="textured"] .v3-products::before {
    background:
        linear-gradient(to bottom,
            #000000 0%,
            rgba(0, 0, 0, 0.88) 20%,
            rgba(0, 0, 0, 0.88) 80%,
            #000000 100%
        ),
        url("../assets/images/textures/crushed-gravel-texture.png") center / 480px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
}

[data-theme="textured"] .v3-products::after {
    background:
        linear-gradient(90deg,
            #000000 0%,
            rgba(0, 0, 0, 0.92) 12%,
            rgba(0, 0, 0, 0.92) 88%,
            #000000 100%
        ),
        url("../assets/images/textures/asphalt-granule-texture.png") center / 360px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 12%, black 88%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, black 12%, black 88%, transparent 100%);
}

/* ── about-section ─ Compacted Sand (dirt/earth, kept bright as requested) ── */
[data-theme="textured"] .about-section::before {
    background: url("../assets/images/textures/compacted-sand-texture.png") center / 560px auto repeat;
    opacity: 0.52;
    mix-blend-mode: screen;
}

/* ── services-section ─ Diamond Plate ────────────────────────────────────── */
[data-theme="textured"] .services-section::before {
    background:
        linear-gradient(to bottom,
            #000000 0%,
            rgba(0, 0, 0, 0.90) 20%,
            rgba(0, 0, 0, 0.90) 80%,
            #000000 100%
        ),
        url("../assets/images/textures/black-diamond-plate-texture.png") center / 440px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
}

[data-theme="textured"] .services-section::after {
    background:
        linear-gradient(90deg,
            #000000 0%,
            rgba(0, 0, 0, 0.93) 14%,
            rgba(0, 0, 0, 0.93) 86%,
            #000000 100%
        ),
        url("../assets/images/textures/asphalt-granule-texture.png") center / 340px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 14%, black 86%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, black 14%, black 86%, transparent 100%);
}

/* ── process-section ─ Compacted Sand (dirt/earth, kept bright as requested) ─ */
[data-theme="textured"] .process-section::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: url("../assets/images/textures/compacted-sand-texture.png") center / 520px auto repeat;
    opacity: 0.50;
    mix-blend-mode: screen;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
}

/* ── v3-recent-projects ─ Asphalt Granule ────────────────────────────────── */
[data-theme="textured"] .v3-recent-projects::before {
    background:
        linear-gradient(to bottom,
            #000000 0%,
            rgba(0, 0, 0, 0.90) 20%,
            rgba(0, 0, 0, 0.90) 80%,
            #000000 100%
        ),
        url("../assets/images/textures/asphalt-granule-texture.png") center / 400px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
}

/* Keep the section edge vignette above the texture */
[data-theme="textured"] .v3-recent-projects::after {
    background: linear-gradient(to bottom,
        var(--v3-bg) 0%,
        transparent 14%,
        transparent 86%,
        var(--v3-bg) 100%
    );
    /* This vignette sits above texture (z-index: 1 from base styles), unmask it */
    -webkit-mask-image: none;
    mask-image: none;
}

/* ── v3-proof marquee ─ Diamond Plate ────────────────────────────────────── */
[data-theme="textured"] .v3-proof::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(to bottom,
            #000000 0%,
            rgba(0, 0, 0, 0.92) 20%,
            rgba(0, 0, 0, 0.92) 80%,
            #000000 100%
        ),
        url("../assets/images/textures/black-diamond-plate-texture.png") center / 320px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
}

/* ── reviews-section ─ Poured Concrete ───────────────────────────────────── */
[data-theme="textured"] .reviews-section::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        linear-gradient(to bottom,
            #000000 0%,
            rgba(0, 0, 0, 0.90) 20%,
            rgba(0, 0, 0, 0.90) 80%,
            #000000 100%
        ),
        url("../assets/images/textures/poured-concrete-texture.png") center / 600px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
}

[data-theme="textured"] .reviews-section .container {
    position: relative;
    z-index: 1;
}

/* ── v3-guarantees ─ Poured Concrete ─────────────────────────────────────── */
[data-theme="textured"] .v3-guarantees::before {
    background:
        linear-gradient(to bottom,
            #000000 0%,
            rgba(0, 0, 0, 0.90) 20%,
            rgba(0, 0, 0, 0.90) 80%,
            #000000 100%
        ),
        url("../assets/images/textures/poured-concrete-texture.png") center / 680px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
}

/* ── projects-section ─ Crushed Gravel ───────────────────────────────────── */
[data-theme="textured"] .projects-section::before {
    background:
        linear-gradient(to bottom,
            #000000 0%,
            rgba(0, 0, 0, 0.88) 20%,
            rgba(0, 0, 0, 0.88) 80%,
            #000000 100%
        ),
        url("../assets/images/textures/crushed-gravel-texture.png") center / 500px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
}

/* ── calculator-section ─ Compacted Sand (dirt/earth, kept bright as requested) ── */
[data-theme="textured"] .calculator-section::before {
    background: url("../assets/images/textures/compacted-sand-texture.png") center / 520px auto repeat;
    opacity: 0.52;
    mix-blend-mode: screen;
}

/* ── faq-section ─ Poured Concrete ───────────────────────────────────────── */
[data-theme="textured"] .faq-section::before {
    background:
        linear-gradient(to bottom,
            #000000 0%,
            rgba(0, 0, 0, 0.90) 20%,
            rgba(0, 0, 0, 0.90) 80%,
            #000000 100%
        ),
        url("../assets/images/textures/poured-concrete-texture.png") center / 700px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
}

/* ── merged-contact-cta ─ Diamond Plate ──────────────────────────────────── */
[data-theme="textured"] .merged-contact-cta::before {
    background:
        linear-gradient(to bottom,
            #000000 0%,
            rgba(0, 0, 0, 0.90) 20%,
            rgba(0, 0, 0, 0.90) 80%,
            #000000 100%
        ),
        url("../assets/images/textures/black-diamond-plate-texture.png") center / 460px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
}

[data-theme="textured"] .merged-contact-cta::after {
    background:
        linear-gradient(90deg,
            #000000 0%,
            rgba(0, 0, 0, 0.93) 15%,
            rgba(0, 0, 0, 0.93) 85%,
            #000000 100%
        ),
        url("../assets/images/textures/asphalt-granule-texture.png") center / 340px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 15%, black 85%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, black 15%, black 85%, transparent 100%);
}

/* ── Card grain overlays ──────────────────────────────────────────────────── */
[data-theme="textured"] :is(
    .v3-product-card,
    .v3-project-card,
    .svc-card
)::before {
    opacity: 0.32;
    mix-blend-mode: screen;
}

/* ── v3-capabilities (hidden, future-proofed) ────────────────────────────── */
[data-theme="textured"] .v3-capabilities::after {
    background:
        linear-gradient(to bottom,
            #000000 0%,
            rgba(0, 0, 0, 0.90) 20%,
            rgba(0, 0, 0, 0.90) 80%,
            #000000 100%
        ),
        url("../assets/images/textures/black-diamond-plate-texture.png") center / 480px auto repeat;
    opacity: 1.0;
    mix-blend-mode: screen;
}

/* ── UI polish ────────────────────────────────────────────────────────────── */
[data-theme="textured"] .section-label::before {
    background: rgba(255, 255, 255, 0.60);
}

[data-theme="textured"] .svc-glow {
    background: radial-gradient(
        400px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
        rgba(255, 255, 255, 0.05),
        transparent 60%
    );
}

[data-theme="textured"] .v3-proof-content span::after {
    background: var(--v3-accent);
}

/* Monochromatic button hover overrides */
[data-theme="obsidian"] .v3-solid-btn:hover,
[data-theme="textured"] .v3-solid-btn:hover {
    background: #e5e7eb !important;
    color: #050505 !important;
}

/* ── Deep Blue Theme Override (Swirl Background & Clear Surfaces) ── */
[data-theme="deep-blue"] body {
    background-color: transparent !important;
}

[data-theme="deep-blue"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    background-color: #0a1424;
    background-image: linear-gradient(rgba(10, 20, 36, 0.88), rgba(10, 20, 36, 0.88)), url('../assets/images/textures/sls-swirl-bg.webp');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center top;
    z-index: -1;
    pointer-events: none;
}

/* Only the About section and Process section stay transparent — swirl shows through */
[data-theme="deep-blue"] .about-section,
[data-theme="deep-blue"] .process-section {
    background: transparent !important;
    background-color: transparent !important;
}

/* All remaining sections: solid deep blue — swirl is covered for clean readability */
[data-theme="deep-blue"] :is(
    .v3-proof,
    .v3-capabilities,
    .v3-guarantees,
    .services-section,
    .projects-section,
    .calculator-section,
    .live-dispatch-section,
    .faq-section,
    .v3-recent-projects,
    .reviews-section
) {
    background: #0a1424 !important;
    background-color: #0a1424 !important;
}

/* Disable the concrete/asphalt/sand/grit texture overlay images in Deep Blue theme */
[data-theme="deep-blue"] :is(
    .v3-products,
    .v3-proof,
    .v3-capabilities,
    .v3-guarantees,
    .about-section,
    .services-section,
    .projects-section,
    .calculator-section,
    .live-dispatch-section,
    .faq-section,
    .v3-recent-projects,
    .process-section,
    .reviews-section
)::before,
[data-theme="deep-blue"] :is(
    .services-section,
    .v3-recent-projects,
    .v3-capabilities,
    .process-section,
    .reviews-section,
    .live-dispatch-section
)::after {
    background: none !important;
    background-image: none !important;
    opacity: 0 !important;
}

/* ── Custom Mountain Background for Contact CTA Section (Replaces Dirt Texture) ── */
:is(
    [data-theme="obsidian"],
    [data-theme="steel"],
    [data-theme="deep-blue"],
    [data-theme="foundry"],
    [data-theme="contrast"],
    [data-theme="safety"]
) .merged-contact-cta {
    background: #0a1424 url('../assets/images/textures/sls-section-bg.webp') no-repeat center bottom !important;
    background-size: cover !important;
}

/* Remove default grit textures on Contact CTA in these dark themes */
:is(
    [data-theme="obsidian"],
    [data-theme="steel"],
    [data-theme="deep-blue"],
    [data-theme="foundry"],
    [data-theme="contrast"],
    [data-theme="safety"]
) :is(.merged-contact-cta::before, .merged-contact-cta::after) {
    background: none !important;
    background-image: none !important;
    opacity: 0 !important;
}

/* ── Live Dispatch & Scale Tracker Section ── */
.live-dispatch-section {
    background: var(--v3-bg);
    color: var(--v3-text);
    padding: 96px 0;
    border-bottom: 1px solid var(--v3-border);
    position: relative;
    overflow: hidden;
}

.live-tracker-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    margin-top: 48px;
    align-items: stretch;
}

.tracker-card {
    background: var(--v3-card);
    border: 1px solid var(--v3-border);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    padding: 40px;
    border-radius: var(--radius-card, 0px);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 520px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
    transition: transform 0.3s ease, border-color 0.3s ease;
}

.tracker-card:hover {
    border-color: var(--v3-accent);
}

.tracker-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    border-bottom: 1px solid var(--v3-border);
    padding-bottom: 18px;
}

.status-indicator-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
}

.status-pulse-dot {
    width: 8px;
    height: 8px;
    background-color: #10b981;
    border-radius: 50%;
    position: relative;
    display: inline-block;
    animation: statusPulse 2s infinite ease-in-out;
}

.status-pulse-dot.active-blue {
    background-color: #3b82f6;
    animation: statusPulseBlue 2s infinite ease-in-out;
}

@keyframes statusPulse {
    0% {
        transform: scale(0.9);
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
    }
    70% {
        transform: scale(1.1);
        box-shadow: 0 0 0 8px rgba(16, 185, 129, 0);
    }
    100% {
        transform: scale(0.9);
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
    }
}

@keyframes statusPulseBlue {
    0% {
        transform: scale(0.9);
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
    }
    70% {
        transform: scale(1.1);
        box-shadow: 0 0 0 8px rgba(59, 130, 246, 0);
    }
    100% {
        transform: scale(0.9);
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
    }
}

.status-label {
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--v3-copy);
}

.icon-premium {
    font-size: 20px;
    color: var(--v3-accent);
}

/* Odometer Styling */
.odometer-container {
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--v3-border);
    padding: 24px;
    text-align: center;
    margin-bottom: 30px;
}

.odometer-label {
    display: block;
    font-family: "Acumin Variable Concept", var(--font-body);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.1em;
    color: var(--v3-copy);
    margin-bottom: 8px;
}

.odometer-value {
    font-family: var(--font-display);
    font-size: clamp(28px, 2.5vw, 42px);
    font-weight: 800;
    color: var(--v3-accent);
    letter-spacing: 0.05em;
}

/* Ticket Stream */
.ticket-stream-container {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.stream-title {
    font-family: "Acumin Variable Concept", var(--font-body);
    font-weight: 800;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 12px;
    color: var(--v3-text);
}

.ticket-stream-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex-grow: 1;
    overflow: hidden;
    max-height: 220px;
}

.ticket-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--v3-border);
    padding: 12px 16px;
    transition: all 0.5s ease;
}

.ticket-item.highlight {
    background: rgba(var(--v3-accent-rgb), 0.15);
    border-color: var(--v3-accent);
    transform: scale(1.02);
}

.ticket-left {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ticket-id {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 14px;
    color: var(--v3-text);
}

.ticket-material {
    font-family: var(--font-body);
    font-size: 12px;
    color: var(--v3-copy);
}

.ticket-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.ticket-weight {
    font-family: "Acumin Variable Concept", var(--font-body);
    font-weight: 700;
    font-size: 13px;
    color: var(--v3-accent);
}

.ticket-time {
    font-family: var(--font-body);
    font-size: 11px;
    color: rgba(255, 255, 255, 0.4);
}

/* Dispatch Selector */
.dispatch-selector-wrap {
    margin-bottom: 24px;
}

.select-label {
    display: block;
    font-family: "Acumin Variable Concept", var(--font-body);
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--v3-copy);
    margin-bottom: 8px;
}

.select-btn-group {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 12px;
}

.track-select {
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid var(--v3-border);
    color: var(--v3-text);
    padding: 12px 16px;
    font-family: "Acumin Variable Concept", var(--font-body);
    font-weight: 700;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    cursor: pointer;
    outline: none;
    border-radius: var(--radius-btn, 0px);
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg fill='white' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 40px;
}

.track-select:focus {
    border-color: var(--v3-accent);
}

.select-btn-group .btn {
    padding: 0 24px;
    height: 100%;
}

/* Result Card */
.tracker-result-card {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--v3-border);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: opacity 0.25s ease;
    flex-grow: 1;
}

.result-top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--v3-border);
    padding-bottom: 14px;
}

.truck-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.truck-label, .eta-label, .detail-label {
    font-family: "Acumin Variable Concept", var(--font-body);
    font-weight: 700;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: rgba(255, 255, 255, 0.4);
}

.truck-tag {
    display: inline-block;
    padding: 4px 10px;
    font-family: "Acumin Variable Concept", var(--font-body);
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 2px;
}

.truck-tag.in-transit {
    background: rgba(59, 130, 246, 0.15);
    color: #93c5fd;
    border: 1px solid rgba(59, 130, 246, 0.3);
}

.truck-tag.unloading {
    background: rgba(245, 158, 11, 0.15);
    color: #fde047;
    border: 1px solid rgba(245, 158, 11, 0.3);
}

.truck-tag.completed {
    background: rgba(16, 185, 129, 0.15);
    color: #a7f3d0;
    border: 1px solid rgba(16, 185, 129, 0.3);
}

.eta-info {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.eta-value {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(11px, 2.8vw, 16px);
    color: var(--v3-accent);
    text-align: right;
    line-height: 1.2;
    word-break: break-word;
}

.result-details-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.detail-cell {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.detail-val {
    font-family: "Acumin Variable Concept", var(--font-body);
    font-weight: 700;
    font-size: 13px;
    color: var(--v3-text);
}

/* Timeline */
.tracker-timeline-container {
    margin-top: 10px;
    border-top: 1px solid var(--v3-border);
    padding-top: 20px;
}

.tracker-timeline {
    display: flex;
    justify-content: space-between;
    position: relative;
}

.tracker-timeline::before {
    content: "";
    position: absolute;
    top: 15px;
    left: 20px;
    right: 20px;
    height: 2px;
    background: var(--v3-border);
    z-index: 1;
}

.timeline-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    position: relative;
    z-index: 2;
    flex: 1;
}

.step-circle {
    width: 32px;
    height: 32px;
    background: var(--v3-bg-alt);
    border: 2px solid var(--v3-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.3);
    font-size: 12px;
    transition: all 0.3s ease;
}

.step-title {
    font-family: "Acumin Variable Concept", var(--font-body);
    font-weight: 700;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: rgba(255, 255, 255, 0.4);
    transition: all 0.3s ease;
}

/* Timeline Step States */
.timeline-step.completed .step-circle {
    background: rgba(16, 185, 129, 0.15);
    border-color: #10b981;
    color: #10b981;
}

.timeline-step.completed .step-title {
    color: #10b981;
}

.timeline-step.active .step-circle {
    background: rgba(59, 130, 246, 0.15);
    border-color: #3b82f6;
    color: #3b82f6;
    box-shadow: 0 0 12px rgba(59, 130, 246, 0.3);
    animation: timelinePulse 2s infinite ease-in-out;
}

.timeline-step.active .step-title {
    color: #3b82f6;
    font-weight: 800;
}

@keyframes timelinePulse {
    0% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.5);
    }
    70% {
        box-shadow: 0 0 0 6px rgba(59, 130, 246, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
    }
}

/* Responsiveness */
@media (max-width: 900px) {
    .live-tracker-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .tracker-card {
        min-height: auto;
    }
}
@media (max-width: 500px) {
    .live-dispatch-section {
        padding: 56px 0;
    }
    .tracker-card {
        padding: 24px;
    }
    .select-btn-group {
        grid-template-columns: 1fr;
    }
    /* Reset button height when stacked — don't let it stretch */
    .select-btn-group .btn {
        height: auto;
        padding: 0.75rem 1.5rem;
        font-size: 0.9rem;
        width: 100%;
        justify-content: center;
    }
    .result-details-grid {
        grid-template-columns: 1fr;
    }
    /* Keep top-bar text tighter on small screens */
    .result-top-bar {
        flex-wrap: wrap;
        gap: 10px;
    }
    .eta-info {
        align-items: flex-start;
    }
}

/* Final Brickworks homepage section order */
#home > .hero { order: 1; }
#home > .masons-logo-strip-section { order: 2; }
#home > .v3-products { order: 3; }
#home > .about-section { order: 4; }
#home > .services-section { order: 5; }
#home > .v3-capabilities { order: 6; }
#home > .v3-recent-projects { order: 7; }
#home > .v3-guarantees { order: 8; }
#home > .process-section { order: 9; }
#home > .v3-proof { order: 10; }
#home > .reviews-section { order: 11; }
#home > .projects-section { order: 12; }
#home > .faq-section { order: 13; }
#home > .location-finder-section { order: 14; }
#home > .resource-pathways-section { order: 15; }
#home > .merged-contact-cta { order: 16; }

