/* =========================
   Hunter Construction - Site Styles (cleaned)
   ========================= */

/* Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600&family=Oswald:wght@400;600&display=swap');

/* =========================
   Design Tokens
   ========================= */
:root {
    --brand: #FFC300; /* construction yellow */
    --brand-2: #333333; /* steel gray */
    --ink: #111111;
    --muted: #6E6E6E;
    --bg: #FFFFFF;
    --bg-alt: #F4F4F4;
    --radius: .75rem;
    --shadow: 0 6px 18px rgba(0,0,0,.08);
    /* Request/HC scoped tokens (defaults) */
    --hc-accent: #FFC300;
    --hc-ink: #111;
    --hc-card-bg: rgba(255,255,255,0.90);
    --hc-card-border: rgba(0,0,0,0.08);
}

/* =========================
   Base layout
   ========================= */
html, body {
    height: 100%;
}

body {
    margin: 0;
    min-height: 100vh;
    overflow-x: hidden;
    background: var(--bg);
    color: var(--ink);
    font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1 0 auto;
    padding: 2rem 0;
    position: relative;
    z-index: 1;
}

/* =========================
   Typography
   ========================= */
h1, h2, h3, h4 {
    font-family: Oswald, Impact, Arial, sans-serif;
    letter-spacing: .25px;
    color: var(--brand-2);
}

.lead {
    font-weight: 400;
    color: var(--muted);
}

/* =========================
   Navbar
   ========================= */
.navbar {
    background-color: var(--brand-2);
    box-shadow: var(--shadow);
}

.navbar-brand span {
    color: var(--brand);
    font-weight: 600;
}

.nav-link {
    color: #fff !important;
    font-weight: 500;
}

    .nav-link.active,
    .nav-link[aria-current="page"] {
        color: var(--brand) !important;
        font-weight: 600;
    }

    .nav-link:hover {
        color: var(--brand) !important;
        opacity: .9;
    }

/* =========================
   Buttons
   ========================= */
.btn-brand {
    background: var(--brand-2);
    border-color: var(--brand-2);
    color: var(--brand);
    font-weight: 600;
}

    .btn-brand:hover {
        background: #222;
        border-color: #222;
        color: var(--brand);
    }

    .btn-brand:focus {
        outline: 2px solid var(--brand);
        outline-offset: 2px;
    }

/* CTA: brand-yellow primary button */
.btn-cta {
    --bs-btn-color: #111;
    --bs-btn-bg: var(--brand);
    --bs-btn-border-color: var(--brand);
    --bs-btn-hover-bg: #e6b800;
    --bs-btn-hover-border-color: #e6b800;
    --bs-btn-focus-shadow-rgb: 255,195,0;
    border-radius: 10px;
    font-weight: 700;
    letter-spacing: .2px;
    box-shadow: 0 4px 12px rgba(255,195,0,.35);
}

    .btn-cta:focus {
        box-shadow: 0 0 0 .2rem rgba(255,195,0,.35);
    }

/* =========================
   Cards (only for .card-lite utility)
   ========================= */
.card-lite {
    border: 0;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    background: #fff;
    color: #2B2B2B;
    transition: transform .15s ease, box-shadow .15s ease;
}

    .card-lite:hover {
        transform: translateY(-2px);
    }

    .card-lite .card-img-top {
        border-top-left-radius: var(--radius);
        border-top-right-radius: var(--radius);
        object-fit: cover;
        width: 100%;
        height: 100%;
    }

/* =========================
   Footer
   ========================= */
footer.site-footer {
    background: linear-gradient(180deg,#343434,#2D2D2D);
    color: #fff;
    text-align: left;
    padding: 1rem 0;
    margin-top: auto;
    box-shadow: inset 0 2px 0 var(--brand);
}

    footer.site-footer .row {
        --bs-gutter-y: .5rem;
    }

    footer.site-footer .brand {
        font-family: Oswald, Impact, Arial, sans-serif;
        font-size: 1.25rem;
        letter-spacing: .3px;
    }

        footer.site-footer .brand span {
            color: var(--brand);
        }

    footer.site-footer h6 {
        margin-bottom: .35rem;
    }

    footer.site-footer ul {
        margin-bottom: .5rem;
    }

        footer.site-footer ul li {
            margin-bottom: .25rem;
        }

    footer.site-footer .social {
        font-size: 1.1rem;
        line-height: 1;
        opacity: .9;
        transition: transform .15s ease, opacity .15s ease;
    }

        footer.site-footer .social:hover {
            transform: translateY(-2px);
            opacity: 1;
        }

    footer.site-footer hr {
        margin: .75rem 0 !important;
    }

    footer.site-footer a {
        color: var(--brand);
        text-decoration: none;
    }

        footer.site-footer a:hover {
            text-decoration: underline;
        }

/* =========================
   Utilities
   ========================= */
.section {
    padding: 3rem 0;
}

.section-alt {
    background: var(--bg-alt);
}

.text-muted {
    color: var(--muted) !important;
}

.link-underline {
    text-decoration: underline;
    text-underline-offset: 3px;
}

a.link-underline {
    color: var(--brand-2);
}

    a.link-underline:hover {
        opacity: .9;
    }

.img-cover {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

/* Motion safety */
@media (prefers-reduced-motion: reduce) {
    .card-lite:hover {
        transform: none;
        transition: none;
    }
}

/* =========================
   Dark Theme + Carbon
   ========================= */
.theme-dark {
    background: #151515;
    color: #EAEAEA;
}

    .theme-dark a {
        color: var(--brand);
    }

        .theme-dark a:hover {
            opacity: .9;
        }

    .theme-dark h1,
    .theme-dark h2,
    .theme-dark h3,
    .theme-dark h4 {
        color: #fff;
    }

    .theme-dark hr,
    .theme-dark .border-top,
    .theme-dark .border-bottom {
        border-color: rgba(255,255,255,.08) !important;
    }

    .theme-dark .container,
    .theme-dark .section-alt {
        background: transparent;
    }

    .theme-dark .navbar {
        background-color: var(--brand-2);
    }

html.theme-dark, body.theme-dark {
    background: #151515 !important;
    color: #EAEAEA;
}

    html.theme-dark.bg-carbon, body.theme-dark.bg-carbon {
        background: repeating-linear-gradient(45deg, rgba(255,255,255,0.04) 0 6px, rgba(0,0,0,0.12) 6px 12px), repeating-linear-gradient(-45deg, rgba(0,0,0,0.12) 0 6px, rgba(255,255,255,0.04) 6px 12px) !important;
        background-color: #121212 !important;
    }

/* Dark theme readability helpers */
.theme-dark .table {
    --bs-table-bg: #0f1217;
    --bs-table-color: #e9eef7;
    --bs-table-border-color: rgba(255,255,255,.12);
    --bs-table-striped-bg: rgba(255,255,255,.05);
    --bs-table-striped-color: #e9eef7;
    --bs-table-hover-bg: rgba(255,255,255,.09);
    --bs-table-hover-color: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 6px 18px rgba(0,0,0,.35);
}

    .theme-dark .table thead th {
        color: #ffffff;
        background: #0a0d12;
        border-bottom: 1px solid rgba(255,255,255,.15);
    }

    .theme-dark .table td,
    .theme-dark .table th {
        border-color: rgba(255,255,255,.12);
    }

.theme-dark .form-control,
.theme-dark .form-select,
.theme-dark .form-check-input {
    background-color: #151a22;
    color: #e9eef7;
    border-color: rgba(255,255,255,.18);
}

    .theme-dark .form-control::placeholder {
        color: rgba(233,238,247,.55);
    }

    .theme-dark .form-control:focus,
    .theme-dark .form-select:focus,
    .theme-dark .form-check-input:focus {
        background-color: #161c26;
        color: #fff;
        border-color: rgba(130,160,255,.65);
        box-shadow: 0 0 0 .2rem rgba(130,160,255,.25);
    }

.theme-dark .btn-primary {
    background-image: linear-gradient(180deg,#5680ff,#3b66ff);
    border-color: #3b66ff;
}

    .theme-dark .btn-primary:hover {
        background-image: linear-gradient(180deg,#6a8dff,#4a72ff);
        border-color: #4a72ff;
    }

/* =========================
   Request a Quote (scoped to .hc-wrap)
   ========================= */
.hc-wrap {
    /* scoped defaults (overrides :root when inside .hc-wrap) */
    --hc-accent: #ffc300;
    --hc-ink: #e9edf1;
    --hc-card-bg: rgba(255,255,255,0.06);
    --hc-card-border: rgba(255,255,255,0.12);
    --tile: 12px;
    position: relative;
    isolation: isolate;
    background: radial-gradient(circle at 25% 25%, #2b2b2b 0 30%, transparent 32%) 0 0/var(--tile) var(--tile), radial-gradient(circle at 75% 75%, #2b2b2b 0 30%, transparent 32%) 0 0/var(--tile) var(--tile), linear-gradient(0deg, #111 0 0) 0 0/100% 100%;
    background-blend-mode: overlay, overlay, normal;
}

    .hc-wrap::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        background: linear-gradient(180deg, rgba(0,0,0,.5), rgba(0,0,0,.6));
        pointer-events: none;
    }

    .hc-wrap > .container {
        position: relative;
        z-index: 1;
    }

/* Card */
.hc-card {
    background: var(--hc-card-bg);
    border: 1px solid var(--hc-card-border);
    border-radius: 18px;
    overflow: clip;
    backdrop-filter: saturate(110%) blur(6px);
    box-shadow: 0 12px 30px rgba(0,0,0,.25);
    animation: hc-fadeInUp .4s ease;
}

.hc-card-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--hc-card-border);
    background: linear-gradient(180deg, rgba(255,255,255,.75), rgba(255,255,255,.6));
    color: #111;
}

.hc-card-body {
    padding: 1.5rem;
}

.hc-card-footer {
    padding: .9rem 1.5rem;
    border-top: 1px solid var(--hc-card-border);
    background: rgba(255,255,255,.7);
}

/* Labels + required marks */
.hc-wrap .form-label {
    color: var(--hc-ink);
    opacity: .9;
    font-weight: 600;
    margin-bottom: .35rem;
}

    .hc-wrap .form-label.required::after {
        content: " *";
        color: var(--hc-accent);
        font-weight: 700;
    }

/* Inputs */
.hc-wrap .form-control {
    background: rgba(255,255,255,.72);
    border: 1px solid var(--hc-card-border);
    color: #111;
}

    .hc-wrap .form-control::placeholder {
        color: rgba(17,17,17,.45);
    }

    .hc-wrap .form-control:focus {
        background: rgba(255,255,255,.9);
        border-color: var(--hc-accent);
        box-shadow: 0 0 0 .2rem rgba(255,195,0,.25);
    }

.hc-wrap .form-control-lg {
    border-radius: 12px;
    padding: .8rem 1rem;
}

/* Accent button (base) */
.hc-wrap .btn-accent {
    --bs-btn-color: #111;
    --bs-btn-bg: var(--hc-accent);
    --bs-btn-border-color: var(--hc-accent);
    --bs-btn-hover-bg: #e6b800;
    --bs-btn-hover-border-color: #e6b800;
    --bs-btn-focus-shadow-rgb: 255,195,0;
    font-weight: 600;
    letter-spacing: .25px;
    box-shadow: 0 8px 24px rgba(255,195,0,.35);
    transition: box-shadow .2s ease, transform .06s ease;
}

    .hc-wrap .btn-accent:hover {
        box-shadow: 0 12px 30px rgba(255,195,0,.45);
        transform: translateY(-1px);
    }

    .hc-wrap .btn-accent:active {
        transform: translateY(0);
        box-shadow: 0 6px 18px rgba(255,195,0,.35);
    }

    .hc-wrap .btn-accent:focus-visible {
        outline: none;
        box-shadow: 0 0 0 .2rem rgba(255,195,0,.35), 0 10px 26px rgba(255,195,0,.45);
    }

/* ONE SOURCE OF TRUTH: submit override */
.hc-wrap form [type="submit"] {
    background-color: var(--hc-accent) !important;
    border-color: var(--hc-accent) !important;
    color: #111 !important;
    text-shadow: 0 1px 0 rgba(255,255,255,.35);
    box-shadow: 0 8px 24px rgba(255,195,0,.35);
}

    .hc-wrap form [type="submit"]:hover,
    .hc-wrap form [type="submit"]:focus {
        background-color: #e6b800 !important;
        border-color: #e6b800 !important;
        color: #111 !important;
    }

    .hc-wrap form [type="submit"]:active {
        background-color: #d4a600 !important;
        border-color: #d4a600 !important;
        color: #111 !important;
    }

    .hc-wrap form [type="submit"].disabled,
    .hc-wrap form [type="submit"]:disabled {
        opacity: 1 !important;
        pointer-events: auto;
        background-color: var(--hc-accent) !important;
        border-color: var(--hc-accent) !important;
        color: #111 !important;
    }

@keyframes hc-fadeInUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* =========================
   Services Grid (scoped)
   ========================= */
.services .card {
    border: 0;
    border-radius: 16px;
    overflow: hidden;
    background: linear-gradient(180deg, #fbfbfb, #f0f0f0);
    border: 1px solid rgba(255,255,255,.06);
    box-shadow: 0 8px 26px rgba(0,0,0,.22);
    transition: transform .15s ease, box-shadow .15s ease;
}

    .services .card:hover {
        transform: translateY(-2px);
        box-shadow: 0 14px 34px rgba(0,0,0,.26);
    }

.services .card-img-top {
    height: 220px;
    object-fit: cover;
    width: 100%;
    display: block;
}

.services .card-body {
    padding: 14px 16px;
}

.services .service-title {
    font-weight: 800;
    font-size: 1rem;
    color: #111;
    letter-spacing: .2px;
    margin: 0 0 6px;
}

.services .service-blurb {
    margin: 0;
    color: #3b3b3b;
    font-size: .975rem;
    line-height: 1.45;
}

.services .no-image {
    background: linear-gradient(180deg, rgba(255,255,255,1), rgba(245,245,245,1));
    border: 1px solid rgba(0,0,0,.06);
}

/* =========================
   Request Quote – local restyle (scoped)
   ========================= */
.rq-quote .card {
    border-radius: 16px;
    box-shadow: 0 18px 44px rgba(0,0,0,.28);
}

.rq-quote .form-label,
.rq-quote .rq-label {
    font-weight: 800;
    letter-spacing: .25px;
    margin-bottom: .35rem;
    color: #222;
}

.theme-dark .rq-quote .form-label,
.theme-dark .rq-quote .rq-label {
    color: #fff;
}

.rq-quote .form-control,
.rq-quote textarea.form-control {
    background: #fff;
    color: #111;
    border: 1px solid #d9dee5;
    border-radius: 12px;
    padding: .8rem 1rem;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.6);
}

    .rq-quote .form-control::placeholder {
        color: #9aa3af;
    }

    .rq-quote .form-control:focus,
    .rq-quote .form-select:focus {
        border-color: var(--brand);
        box-shadow: 0 0 0 .2rem rgba(255,195,0,.25);
        background: #fff;
        color: #111;
    }

.rq-quote .row.g-3 > [class^="col"] {
    margin-top: 2px;
}

.rq-quote .btn-cta {
    padding: .7rem 1.1rem;
}

/* =========================
   Featured Projects polish
   ========================= */
.project-card .project-title {
    font-weight: 800;
    letter-spacing: .2px;
    line-height: 1.2;
}

.project-card .project-summary {
    line-height: 1.55;
    font-size: .95rem;
    color: rgba(0,0,0,.72);
}

/* Theme-aware summary on dark pages (your site runs theme-dark) */
.theme-dark .project-card .project-summary {
    color: rgba(255,255,255,.78);
}

.project-image-link {
    display: block;
    cursor: zoom-in;
}

    .project-image-link:hover .project-img {
        filter: brightness(0.98);
    }


/* Carbon weave background (works even if only .bg-carbon is present) */
html.bg-carbon, body.bg-carbon {
    background: repeating-linear-gradient(45deg, rgba(255,255,255,0.04) 0 6px, rgba(0,0,0,0.12) 6px 12px), repeating-linear-gradient(-45deg, rgba(0,0,0,0.12) 0 6px, rgba(255,255,255,0.04) 6px 12px) !important;
    background-color: #121212 !important;
}

/* Keep the dark theme defaults too */
html.theme-dark, body.theme-dark {
    background: #151515 !important;
    color: #EAEAEA;
}
/* =========================
   About Page
   ========================= */
.about-hero {
    position: relative;
}

/* FIX: your markup uses .about-hero-grid, not .about-hero-inner */
.about-hero-grid {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 24px;
    align-items: start;
}

@media (max-width: 992px) {
    .about-hero-grid {
        grid-template-columns: 1fr;
    }
}

.about-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: .4rem .75rem;
    border-radius: 999px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.10);
    color: rgba(255,255,255,.78);
    font-weight: 700;
    letter-spacing: .2px;
    text-transform: uppercase;
    font-size: .75rem;
}

.about-title {
    font-family: Oswald, Impact, Arial, sans-serif;
    font-weight: 700;
    letter-spacing: .3px;
    line-height: 1.05;
    font-size: clamp(2.1rem, 3.2vw, 3.2rem);
}

.about-lead {
    color: rgba(255,255,255,.80);
    line-height: 1.65;
    font-size: 1.05rem;
    max-width: 62ch;
}

/* Owner card */
.about-owner-card {
    border-radius: 18px;
    padding: 18px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 18px 44px rgba(0,0,0,.35);
    backdrop-filter: blur(8px);
}

.about-owner-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: rgba(0,0,0,.28);
    border: 1px solid rgba(255,255,255,.10);
    color: rgba(255,255,255,.85);
    font-weight: 700;
    font-size: .85rem;
}

    .about-owner-badge .dot {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: var(--brand);
        box-shadow: 0 0 0 4px rgba(255,195,0,.18);
    }

.about-owner-title {
    font-family: Oswald, Impact, Arial, sans-serif;
    letter-spacing: .25px;
}

.about-owner-text {
    color: rgba(255,255,255,.78);
    line-height: 1.6;
}

.about-owner-stats {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.stat {
    border-radius: 14px;
    padding: 12px;
    background: rgba(0,0,0,.22);
    border: 1px solid rgba(255,255,255,.10);
}

.stat-label {
    color: rgba(255,255,255,.70);
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .25px;
}

.stat-value {
    color: #fff;
    font-weight: 800;
    font-size: 1.1rem;
    margin-top: 2px;
}

.about-owner-cta {
    margin-top: 14px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.about-owner-card > * + * {
    margin-top: 14px;
}

/* Panels below */
.about-panel {
    border-radius: 18px;
    padding: 20px;
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 14px 34px rgba(0,0,0,.25);
}

.panel-title {
    font-family: Oswald, Impact, Arial, sans-serif;
    margin-bottom: 10px;
}

.panel-text {
    color: rgba(255,255,255,.78);
    line-height: 1.6;
}

.about-list {
    list-style: none;
    padding: 0;
    margin: 14px 0 0;
    display: grid;
    gap: 10px;
}

    .about-list li {
        display: flex;
        gap: 10px;
        align-items: flex-start;
        color: rgba(255,255,255,.82);
    }

    .about-list i {
        color: var(--brand);
        margin-top: 2px;
    }

.about-pill-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

@media (max-width: 576px) {
    .about-pill-grid {
        grid-template-columns: 1fr;
    }
}

.about-pill {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(0,0,0,.22);
    border: 1px solid rgba(255,255,255,.10);
    color: rgba(255,255,255,.85);
    font-weight: 700;
}

    .about-pill i {
        color: var(--brand);
    }

.about-divider {
    height: 1px;
    background: rgba(255,255,255,.10);
    margin: 16px 0;
}

/* Top section refinements */
.about-owner-story {
    font-size: 1.05rem; /* bigger than body text */
    line-height: 1.7;
    color: rgba(255,255,255,.88);
    margin-bottom: 18px; /* space below the paragraph */
    max-width: 62ch;
}

/* Credentials list */
.about-credentials {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 10px;
}

    .about-credentials li {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 8px;
        align-items: start;
        padding: 8px 10px;
        border-radius: 12px;
        background: rgba(0,0,0,.22);
        border: 1px solid rgba(255,255,255,.10);
    }

    .about-credentials .label {
        font-weight: 800;
        color: var(--brand);
        white-space: nowrap;
    }

    .about-credentials .value {
        color: rgba(255,255,255,.85);
        line-height: 1.4;
    }

/* Highlight list */
.about-highlights {
    margin-top: 14px;
    display: grid;
    gap: 12px;
    max-width: 64ch;
}

.about-highlight {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 12px;
    align-items: start;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(0,0,0,.18);
    border: 1px solid rgba(255,255,255,.10);
}

    .about-highlight .icon {
        width: 40px;
        height: 40px;
        border-radius: 12px;
        display: grid;
        place-items: center;
        background: rgba(255,195,0,.14);
        border: 1px solid rgba(255,195,0,.22);
        color: var(--brand);
    }

    .about-highlight .label {
        font-weight: 900;
        letter-spacing: .2px;
        color: #fff;
        line-height: 1.2;
    }

    .about-highlight .value {
        margin-top: 2px;
        color: rgba(255,255,255,.75);
        line-height: 1.5;
        font-size: .95rem;
    }

/* Space between the left and right blocks when they stack (mobile) */
@media (max-width: 992px) {
    .about-hero-grid > div:first-child {
        margin-bottom: 32px;
    }
}




