@import 'Concrete.Client.sh6bk4j609.bundle.scp.css';

/* /Components/Layout/MainLayout.razor.rz.scp.css */
.site[b-j4s82k3jss] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.site-main[b-j4s82k3jss] {
    flex: 1;
}

.site-main:focus[b-j4s82k3jss] {
    outline: none;
}

.skip-link[b-j4s82k3jss] {
    position: absolute;
    top: -100px;
    left: 16px;
    z-index: 100;
    padding: 10px 16px;
    font-weight: 700;
    color: var(--accent-ink);
    background: var(--accent);
}

.skip-link:focus[b-j4s82k3jss] {
    top: 12px;
}

/* ---- Utility bar ------------------------------------------------------- */

.topbar[b-j4s82k3jss] {
    font-size: 0.8125rem;
    color: var(--steel-muted);
    background: var(--steel-deep);
}

.topbar-inner[b-j4s82k3jss] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-block: 8px;
}

.topbar ul[b-j4s82k3jss] {
    display: flex;
    gap: 24px;
    margin: 0 0 0 auto;
    padding: 0;
    list-style: none;
}

.topbar a[b-j4s82k3jss] {
    color: var(--steel-text);
    text-decoration: none;
}

.topbar a:hover[b-j4s82k3jss] {
    color: var(--accent);
}

/* ---- Header ------------------------------------------------------------ */

.site-header[b-j4s82k3jss] {
    position: sticky;
    top: 0;
    z-index: 50;
    box-shadow: 0 6px 18px rgb(0 0 0 / 0.25);
}

.header-inner[b-j4s82k3jss] {
    display: flex;
    align-items: center;
    gap: 32px;
    min-height: 84px;
}

.brand[b-j4s82k3jss] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-right: auto;
    color: var(--steel-text);
    text-decoration: none;
}

/* The IRC plate (wwwroot/logo.svg); width follows from its 96 x 60 shape. */
.brand-mark[b-j4s82k3jss] {
    display: block;
    flex: none;
    width: auto;
    height: 52px;
}

.brand-text[b-j4s82k3jss] {
    display: flex;
    flex-direction: column;
    font-family: var(--font-display);
    font-stretch: condensed;
    line-height: 1;
    text-transform: uppercase;
}

.brand-name[b-j4s82k3jss] {
    font-size: 1.375rem;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.brand-tag[b-j4s82k3jss] {
    margin-top: 5px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.46em;
    color: var(--accent);
}

/* NavLink renders its own <a>, so it needs ::deep to pick up these styles. */
.site-nav ul[b-j4s82k3jss] {
    display: flex;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-nav[b-j4s82k3jss]  a {
    display: block;
    padding: 8px 14px 5px;
    font-family: var(--font-display);
    font-size: 0.9375rem;
    font-weight: 600;
    font-stretch: condensed;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    color: var(--steel-text);
    border-bottom: 3px solid transparent;
}

.site-nav[b-j4s82k3jss]  a:hover {
    color: var(--accent);
}

.site-nav[b-j4s82k3jss]  a.active {
    color: var(--accent);
    border-bottom-color: var(--accent);
}

.header-cta[b-j4s82k3jss] {
    padding: 12px 20px;
}

/* ---- Footer ------------------------------------------------------------ */

.site-footer[b-j4s82k3jss] {
    font-size: 0.9375rem;
    color: var(--steel-muted);
    background: var(--noise), var(--steel-deep);
    border-top: 4px solid var(--accent);
}

.footer-grid[b-j4s82k3jss] {
    display: grid;
    grid-template-columns: 1.5fr repeat(3, 1fr);
    gap: 40px;
    padding-block: 64px 48px;
}

.footer-about p[b-j4s82k3jss] {
    max-width: 34ch;
    margin-top: 20px;
}

.site-footer h2[b-j4s82k3jss] {
    margin-bottom: 18px;
    font-size: 0.9375rem;
    letter-spacing: 0.18em;
    color: var(--steel-text);
}

.site-footer ul[b-j4s82k3jss] {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer a:not(.brand)[b-j4s82k3jss] {
    color: var(--steel-muted);
    text-decoration: none;
}

.site-footer a:not(.brand):hover[b-j4s82k3jss] {
    color: var(--accent);
}

.site-footer address[b-j4s82k3jss] {
    font-style: normal;
    line-height: 1.9;
}

.footer-hours[b-j4s82k3jss] {
    margin-top: 12px;
}

.footer-bottom[b-j4s82k3jss] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px;
    padding-block: 20px;
    font-size: 0.8125rem;
    border-top: 1px solid var(--steel-border);
}

/* ---- Narrow screens ---------------------------------------------------- */

@media (max-width: 960px) {
    .footer-grid[b-j4s82k3jss] {
        grid-template-columns: 1fr 1fr;
    }

    .footer-about[b-j4s82k3jss] {
        grid-column: 1 / -1;
    }
}

/* The nav drops to its own row under the logo, and scrolls sideways if it
   has to. No menu button, so nothing needs script. */
@media (max-width: 860px) {
    .site-header[b-j4s82k3jss] {
        position: static;
    }

    .header-inner[b-j4s82k3jss] {
        flex-wrap: wrap;
        gap: 0 16px;
        min-height: 0;
        padding-top: 14px;
    }

    .site-nav[b-j4s82k3jss] {
        order: 3;
        width: 100%;
        margin-top: 8px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .site-nav ul[b-j4s82k3jss] {
        justify-content: space-between;
    }

    .site-nav[b-j4s82k3jss]  a {
        padding: 12px 8px 11px;
        font-size: 0.875rem;
        letter-spacing: 0.06em;
    }

    .header-cta[b-j4s82k3jss] {
        padding: 10px 14px;
        font-size: 0.875rem;
    }

    .brand-mark[b-j4s82k3jss] {
        height: 42px;
    }

    .brand-name[b-j4s82k3jss] {
        font-size: 1.125rem;
    }

    .brand-tag[b-j4s82k3jss] {
        font-size: 0.6875rem;
        letter-spacing: 0.38em;
    }
}

@media (max-width: 600px) {
    .topbar-hours[b-j4s82k3jss] {
        display: none;
    }

    .topbar ul[b-j4s82k3jss] {
        justify-content: space-between;
        width: 100%;
        gap: 12px;
    }

    .footer-grid[b-j4s82k3jss] {
        grid-template-columns: 1fr;
        gap: 32px;
        padding-block: 48px 36px;
    }
}
/* /Components/Pages/About.razor.rz.scp.css */
.story[b-7y4dx65c8w] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 64px;
}

.story-text[b-7y4dx65c8w] {
    display: grid;
    gap: 20px;
    font-size: 1.125rem;
    color: var(--text-muted);
}

.values[b-7y4dx65c8w] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.values li[b-7y4dx65c8w] {
    padding: 28px;
    background: var(--surface);
    border-top: 4px solid var(--accent);
}

.values h3[b-7y4dx65c8w] {
    margin-bottom: 12px;
}

.values p[b-7y4dx65c8w] {
    color: var(--text-muted);
}

@media (max-width: 860px) {
    .story[b-7y4dx65c8w] {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}
/* /Components/Pages/Account/AccessDenied.razor.rz.scp.css */
.denied-note[b-w9wsl0b1xx] {
    margin-bottom: 32px;
}
/* /Components/Pages/Admin/AdminHome.razor.rz.scp.css */
/* ---- Form -------------------------------------------------------------- */

.job-form[b-2k6id6x23b] {
    gap: 32px;
}

fieldset[b-2k6id6x23b] {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

legend[b-2k6id6x23b] {
    margin-bottom: 14px;
    padding: 0;
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 700;
    font-stretch: condensed;
    line-height: 1.1;
    text-transform: uppercase;
}

/* Two or three boxes a row on a wide screen, one on a phone. */
.fields[b-2k6id6x23b] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    align-items: start;
    gap: 16px;
}

.form-field input[b-2k6id6x23b] {
    font-family: var(--font-mono);
}

.optional[b-2k6id6x23b] {
    margin-left: 6px;
    font-weight: 400;
    color: var(--text-muted);
}

/* ---- Price ------------------------------------------------------------- */

.job-cost[b-2k6id6x23b] {
    position: sticky;
    top: 120px;
    padding: 32px;
    border-top: 6px solid var(--accent);
}

.job-cost-title[b-2k6id6x23b] {
    font-size: 1rem;
    letter-spacing: 0.2em;
    color: var(--accent);
}

.price[b-2k6id6x23b] {
    margin-block: 14px 8px;
    font-family: var(--font-display);
    font-size: clamp(2.25rem, 2.5vw + 1.25rem, 3.25rem);
    font-weight: 800;
    font-stretch: condensed;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.price-empty[b-2k6id6x23b] {
    margin-bottom: 20px;
    color: var(--steel-muted);
}

.price-sub[b-2k6id6x23b] {
    margin-bottom: 20px;
    font-size: 0.9375rem;
    color: var(--text-muted);
}

.lines[b-2k6id6x23b] {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.lines th[b-2k6id6x23b],
.lines td[b-2k6id6x23b] {
    padding-block: 10px;
    vertical-align: top;
    border-bottom: 1px dashed var(--steel-border);
}

.lines th[b-2k6id6x23b] {
    font-weight: 400;
    text-align: left;
}

.lines th small[b-2k6id6x23b] {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.lines td[b-2k6id6x23b] {
    padding-left: 16px;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
}

.lines .subtotal th[b-2k6id6x23b],
.lines .subtotal td[b-2k6id6x23b] {
    font-weight: 700;
    border-bottom-style: solid;
}

.lines .total th[b-2k6id6x23b],
.lines .total td[b-2k6id6x23b] {
    padding-top: 14px;
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 700;
    font-stretch: condensed;
    text-transform: uppercase;
    color: var(--accent);
    border-bottom: 0;
}

.error-list[b-2k6id6x23b] {
    margin: 10px 0 0;
    padding-left: 20px;
    font-weight: 600;
    color: #f2726a;
}

.fine-print[b-2k6id6x23b] {
    margin-top: 20px;
    font-size: 0.875rem;
    color: var(--text-muted);
}

/* ---- Narrow screens ---------------------------------------------------- */

/* Where .split stacks the two columns. */
@media (max-width: 860px) {
    .job-cost[b-2k6id6x23b] {
        position: static;
    }
}

@media (max-width: 600px) {
    .job-cost[b-2k6id6x23b] {
        padding: 28px 20px;
    }
}
/* /Components/Pages/Admin/CostFactorSettings.razor.rz.scp.css */
.factors[b-mp5ddfzjyt] {
    gap: 32px;
}

fieldset[b-mp5ddfzjyt] {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

legend[b-mp5ddfzjyt] {
    margin-bottom: 14px;
    padding: 0;
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 700;
    font-stretch: condensed;
    line-height: 1.1;
    text-transform: uppercase;
}

.fields[b-mp5ddfzjyt] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    align-items: start;
    gap: 20px;
}

.form-field input[b-mp5ddfzjyt] {
    font-family: var(--font-mono);
}

.side-note form[b-mp5ddfzjyt] {
    margin-block: 4px 8px;
}
/* /Components/Pages/Contact.razor.rz.scp.css */
.contact-grid[b-z67ay4te47] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
    align-items: start;
    gap: 64px;
}

.contact-card[b-z67ay4te47] {
    padding: 36px;
    border-top: 6px solid var(--accent);
}

.contact-card h2[b-z67ay4te47] {
    margin-bottom: 28px;
    font-size: 1.75rem;
}

.contact-card dl[b-z67ay4te47] {
    display: grid;
    gap: 22px;
    margin: 0;
}

.contact-card dt[b-z67ay4te47] {
    margin-bottom: 4px;
    font-family: var(--font-display);
    font-size: 0.8125rem;
    font-weight: 700;
    font-stretch: condensed;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--accent);
}

.contact-card dd[b-z67ay4te47] {
    margin: 0;
    font-size: 1.125rem;
}

.contact-card a[b-z67ay4te47] {
    text-decoration: none;
}

.contact-card a:hover[b-z67ay4te47] {
    color: var(--accent);
}

.quote-request .lead[b-z67ay4te47] {
    margin-top: 16px;
}

.quote-list[b-z67ay4te47] {
    display: grid;
    gap: 2px;
    margin: 32px 0;
    padding: 0;
    list-style: none;
    counter-reset: item;
}

.quote-list li[b-z67ay4te47] {
    display: flex;
    gap: 18px;
    padding: 16px 20px;
    background: var(--surface);
    counter-increment: item;
}

.quote-list li[b-z67ay4te47]::before {
    content: counter(item, decimal-leading-zero);
    font-family: var(--font-mono);
    font-size: 0.875rem;
    line-height: 1.85;
    color: var(--text-muted);
}

@media (max-width: 860px) {
    .contact-grid[b-z67ay4te47] {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .contact-card[b-z67ay4te47] {
        padding: 28px 24px;
    }
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* ---- Hero: a cast-in-place wall, darkened on the left for the text ----- */

.hero[b-30qjf6iteo] {
    background:
        linear-gradient(90deg, rgb(20 20 19 / 0.94) 25%, rgb(20 20 19 / 0.6) 70%, rgb(20 20 19 / 0.4)),
        radial-gradient(circle, rgb(0 0 0 / 0.6) 0 4px, rgb(255 255 255 / 0.08) 5px, transparent 6px) 60px 45px / 120px 90px,
        linear-gradient(rgb(0 0 0 / 0.22) 1px, transparent 1px) 0 0 / 100% 90px,
        linear-gradient(90deg, rgb(0 0 0 / 0.22) 1px, transparent 1px) 0 0 / 240px 100%,
        var(--noise),
        #5d5a54;
}

.hero-grid[b-30qjf6iteo] {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    align-items: center;
    gap: 64px;
    padding-block: clamp(72px, 10vw, 136px);
}

.hero h1[b-30qjf6iteo] {
    font-size: clamp(3rem, 5.5vw + 1rem, 6rem);
    line-height: 0.95;
}

.hero .accent[b-30qjf6iteo] {
    display: block;
    color: var(--accent);
}

.hero .lead[b-30qjf6iteo] {
    margin-block: 28px 40px;
}

/* ---- Spec plate: brushed steel with a rivet in each corner ------------- */

.plate[b-30qjf6iteo] {
    --rivet: #a29f98 0 2px, #5e5c57 3px 4px, transparent 5px;

    padding: 36px 36px 28px;
    background:
        radial-gradient(circle at 16px 16px, var(--rivet)),
        radial-gradient(circle at calc(100% - 16px) 16px, var(--rivet)),
        radial-gradient(circle at 16px calc(100% - 16px), var(--rivet)),
        radial-gradient(circle at calc(100% - 16px) calc(100% - 16px), var(--rivet)),
        repeating-linear-gradient(90deg, rgb(255 255 255 / 0.025) 0 2px, transparent 2px 5px),
        linear-gradient(160deg, #3d3b38, #252422);
    border: 1px solid #4b4945;
    box-shadow: 0 24px 48px rgb(0 0 0 / 0.4);
}

.plate-title[b-30qjf6iteo] {
    padding-bottom: 14px;
    font-size: 1rem;
    letter-spacing: 0.22em;
    color: var(--accent);
    border-bottom: 2px solid var(--steel-border);
}

.plate-list[b-30qjf6iteo] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.plate-list li[b-30qjf6iteo] {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding-block: 11px;
    border-bottom: 1px dashed var(--steel-border);
}

.plate-num[b-30qjf6iteo] {
    font-family: var(--font-mono);
    font-size: 0.8125rem;
    color: var(--steel-muted);
}

.plate-list a[b-30qjf6iteo] {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 600;
    font-stretch: condensed;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
}

.plate-list a:hover[b-30qjf6iteo] {
    color: var(--accent);
}

.plate-foot[b-30qjf6iteo] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    margin-top: 20px;
    font-size: 0.875rem;
    color: var(--steel-muted);
}

.plate-foot a[b-30qjf6iteo] {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 700;
    font-stretch: condensed;
    color: var(--accent);
    text-decoration: none;
}

/* ---- Service cards, ruled like a spec sheet ---------------------------- */

.service-grid[b-30qjf6iteo] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr));
    gap: 1px;
    background: var(--border);
    border: 1px solid var(--border);
}

.service-card[b-30qjf6iteo] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 32px 32px 28px;
    color: var(--text);
    text-decoration: none;
    background: var(--surface);
    transition: background-color 0.15s;
}

.service-card[b-30qjf6iteo]::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: var(--accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.2s;
}

.service-card:hover[b-30qjf6iteo]::before,
.service-card:focus-visible[b-30qjf6iteo]::before {
    transform: scaleX(1);
}

.service-num[b-30qjf6iteo] {
    font-family: var(--font-display);
    font-size: 3.25rem;
    font-weight: 800;
    font-stretch: condensed;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px var(--text-muted);
}

.service-card p[b-30qjf6iteo] {
    flex: 1;
    color: var(--text-muted);
}

.service-more[b-30qjf6iteo] {
    font-family: var(--font-display);
    font-size: 0.875rem;
    font-weight: 700;
    font-stretch: condensed;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

/* ---- Process ----------------------------------------------------------- */

.steps[b-30qjf6iteo] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 32px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.steps li[b-30qjf6iteo] {
    padding-top: 24px;
    border-top: 4px solid var(--steel-border);
}

.steps li:first-child[b-30qjf6iteo] {
    border-top-color: var(--accent);
}

.step-num[b-30qjf6iteo] {
    display: block;
    margin-bottom: 12px;
    font-family: var(--font-mono);
    font-size: 0.875rem;
    color: var(--accent);
}

.steps h3[b-30qjf6iteo] {
    margin-bottom: 10px;
}

.steps p[b-30qjf6iteo] {
    color: var(--text-muted);
}

/* ---- About teaser ------------------------------------------------------ */

.about-grid[b-30qjf6iteo] {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    align-items: center;
    gap: 64px;
}

.about-lead[b-30qjf6iteo] {
    margin-block: 20px 32px;
}

.checklist[b-30qjf6iteo] {
    display: grid;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.checklist li[b-30qjf6iteo] {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 20px 24px;
    font-weight: 600;
    background: var(--surface);
    border-left: 4px solid var(--accent);
}

/* A stenciled check mark in a yellow box. */
.checklist li[b-30qjf6iteo]::before {
    content: '';
    flex: none;
    width: 24px;
    height: 24px;
    background: var(--accent);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M0 0h24v24H0z M5 12.5l4.5 4.5L19 7.5l-2-2-7.5 7.5L7 10.5z' fill-rule='evenodd'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M0 0h24v24H0z M5 12.5l4.5 4.5L19 7.5l-2-2-7.5 7.5L7 10.5z' fill-rule='evenodd'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---- Narrow screens ---------------------------------------------------- */

@media (max-width: 960px) {
    .hero-grid[b-30qjf6iteo],
    .about-grid[b-30qjf6iteo] {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .steps[b-30qjf6iteo] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .plate[b-30qjf6iteo] {
        padding: 32px 24px 24px;
    }

    .steps[b-30qjf6iteo] {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .service-card[b-30qjf6iteo],
    .service-card[b-30qjf6iteo]::before {
        transition: none;
    }
}
/* /Components/Pages/Projects.razor.rz.scp.css */
.project-grid[b-3fh8vsva2a] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
    gap: 32px;
}

.project[b-3fh8vsva2a] {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border: 1px solid var(--border);
}

.project-body[b-3fh8vsva2a] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
    padding: 24px 28px 28px;
    border-top: 4px solid var(--accent);
}

.project-body h2[b-3fh8vsva2a] {
    font-size: 1.5rem;
}

.project-body p[b-3fh8vsva2a] {
    color: var(--text-muted);
}

.project-body .finish[b-3fh8vsva2a] {
    margin-top: auto;
    padding-top: 8px;
    font-family: var(--font-mono);
    font-size: 0.8125rem;
}

.tag[b-3fh8vsva2a] {
    position: absolute;
    top: 16px;
    left: 16px;
    padding: 4px 10px;
    font-family: var(--font-display);
    font-size: 0.75rem;
    font-weight: 700;
    font-stretch: condensed;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--accent-ink);
    background: var(--accent);
}

/* ---- Finish swatches, drawn in CSS ------------------------------------- */

.swatch[b-3fh8vsva2a] {
    aspect-ratio: 16 / 10;
    background-color: #a9a59d;
}

/* Steel trowel: smooth, with a soft sheen and saw-cut joints. */
.swatch-trowel[b-3fh8vsva2a] {
    background:
        linear-gradient(90deg, rgb(0 0 0 / 0.3) 2px, transparent 2px) 0 0 / 50% 100%,
        linear-gradient(rgb(0 0 0 / 0.3) 2px, transparent 2px) 0 50% / 100% 50%,
        linear-gradient(120deg, transparent 30%, rgb(255 255 255 / 0.22) 45%, transparent 60%),
        var(--noise),
        linear-gradient(160deg, #c3bfb7, #9d998f);
}

/* Broom: fine parallel grooves across the slab. */
.swatch-broom[b-3fh8vsva2a] {
    background:
        repeating-linear-gradient(0deg, rgb(0 0 0 / 0.09) 0 1px, transparent 1px 3px),
        repeating-linear-gradient(0deg, rgb(255 255 255 / 0.07) 0 1px, transparent 1px 5px),
        var(--noise),
        #aeaaa1;
}

/* Stamped ashlar: offset stone courses in a warm integral color. */
.swatch-stamped[b-3fh8vsva2a] {
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='80'%3E%3Cpath d='M0 1.5H120M0 41.5H120M1.5 0V40M61.5 40V80' stroke='%23281a0f' stroke-opacity='.45' stroke-width='3' fill='none'/%3E%3C/svg%3E"),
        radial-gradient(ellipse at 30% 40%, rgb(255 255 255 / 0.12), transparent 60%) 0 0 / 60px 40px,
        var(--noise),
        #a2826a;
}

/* Board-formed: horizontal form boards with tie holes. */
.swatch-board[b-3fh8vsva2a] {
    background:
        radial-gradient(circle, rgb(0 0 0 / 0.55) 0 4px, transparent 5px) 30px 33px / 120px 66px,
        repeating-linear-gradient(0deg, rgb(0 0 0 / 0.16) 0 2px, transparent 2px 22px),
        repeating-linear-gradient(90deg, rgb(255 255 255 / 0.05) 0 1px, transparent 1px 7px, rgb(0 0 0 / 0.04) 7px 9px, transparent 9px 17px),
        var(--noise),
        #8f8b83;
}

/* Exposed aggregate: river rock showing through the paste. */
.swatch-aggregate[b-3fh8vsva2a] {
    background:
        radial-gradient(circle, #6a6157 0 3px, transparent 4px) 0 0 / 19px 17px,
        radial-gradient(circle, #d8cfbf 0 2.5px, transparent 3.5px) 7px 9px / 23px 19px,
        radial-gradient(circle, #8c7f6d 0 3.5px, transparent 4.5px) 13px 4px / 29px 23px,
        radial-gradient(circle, #4f4943 0 2px, transparent 3px) 3px 13px / 13px 11px,
        var(--noise),
        #b3aa9b;
}

/* Sidewalk: broom finish with tooled control joints and edges. */
.swatch-sidewalk[b-3fh8vsva2a] {
    background:
        linear-gradient(90deg, rgb(0 0 0 / 0.35) 2px, transparent 2px) 0 0 / 110px 100%,
        linear-gradient(rgb(0 0 0 / 0.25) 2px, transparent 2px, transparent calc(100% - 2px), rgb(0 0 0 / 0.25) calc(100% - 2px)),
        repeating-linear-gradient(90deg, rgb(0 0 0 / 0.08) 0 1px, transparent 1px 3px),
        var(--noise),
        #b6b2a9;
}
/* /Components/Pages/Quote.razor.rz.scp.css */
.quote-grid[b-21qpdgf7dc] {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    align-items: start;
    gap: 56px;
}

/* ---- Form -------------------------------------------------------------- */

.calc[b-21qpdgf7dc] {
    display: grid;
    gap: 40px;
}

fieldset[b-21qpdgf7dc] {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

legend[b-21qpdgf7dc] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
    padding: 0;
    font-family: var(--font-display);
    font-size: 1.375rem;
    font-weight: 700;
    font-stretch: condensed;
    line-height: 1.1;
    text-transform: uppercase;
}

.step[b-21qpdgf7dc] {
    display: grid;
    place-items: center;
    flex: none;
    width: 36px;
    height: 36px;
    font-family: var(--font-mono);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--accent-ink);
    background: var(--accent);
}

/* Type of work: big radio cards, easy to hit with a thumb. */
.work-types[b-21qpdgf7dc] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.work[b-21qpdgf7dc] {
    position: relative;
    display: grid;
    align-content: start;
    gap: 2px;
    padding: 16px 18px 16px 50px;
    background: var(--surface);
    border: 2px solid var(--border);
    cursor: pointer;
}

.work:hover[b-21qpdgf7dc] {
    border-color: var(--text-muted);
}

.work:has(input:checked)[b-21qpdgf7dc] {
    border-color: var(--accent);
    box-shadow: inset 0 0 0 1px var(--accent);
}

.work input[b-21qpdgf7dc] {
    position: absolute;
    top: 18px;
    left: 18px;
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--accent);
}

.work-name[b-21qpdgf7dc] {
    font-weight: 700;
}

.work-desc[b-21qpdgf7dc] {
    font-size: 0.875rem;
    color: var(--text-muted);
}

.work-rate[b-21qpdgf7dc] {
    margin-top: 6px;
    font-family: var(--font-mono);
    font-size: 0.8125rem;
}

/* Length × width or total area: a two-way switch made of radios. */
.segmented[b-21qpdgf7dc] {
    position: relative;
    display: inline-flex;
    margin-bottom: 20px;
    border: 2px solid var(--text);
}

.segmented input[b-21qpdgf7dc] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.segmented label[b-21qpdgf7dc] {
    padding: 9px 18px;
    font-family: var(--font-display);
    font-size: 0.9375rem;
    font-weight: 700;
    font-stretch: condensed;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
}

.segmented input:checked + label[b-21qpdgf7dc] {
    color: var(--bg);
    background: var(--text);
}

.segmented input:focus-visible + label[b-21qpdgf7dc] {
    outline: 2px solid var(--focus);
    outline-offset: 2px;
}

/* Only the boxes for the chosen way of measuring. Without :has() support
   both show, and the server still reads the right ones. */
.calc:has(#measure-area:checked) .by-size[b-21qpdgf7dc],
.calc:has(#measure-size:checked) .by-area[b-21qpdgf7dc] {
    display: none;
}

.by-size[b-21qpdgf7dc],
.by-area[b-21qpdgf7dc] {
    display: flex;
    align-items: flex-end;
    gap: 12px;
}

.by-area .field[b-21qpdgf7dc] {
    max-width: 260px;
}

.field[b-21qpdgf7dc] {
    display: grid;
    flex: 1;
    gap: 6px;
}

.field label[b-21qpdgf7dc] {
    font-size: 0.875rem;
    font-weight: 600;
}

/* 1.25rem keeps phones from zooming in when a box is tapped. */
.field input[b-21qpdgf7dc] {
    width: 100%;
    padding: 12px 14px;
    font-family: var(--font-mono);
    font-size: 1.25rem;
    color: var(--text);
    background: var(--surface);
    border: 2px solid var(--border);
    border-radius: var(--radius);
}

.field input:focus[b-21qpdgf7dc] {
    border-color: var(--accent);
}

.field input[aria-invalid][b-21qpdgf7dc] {
    border-color: var(--status-bad);
}

.times[b-21qpdgf7dc] {
    padding-bottom: 12px;
    font-size: 1.5rem;
    color: var(--text-muted);
}

.field-error[b-21qpdgf7dc] {
    margin-top: 10px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--status-bad);
}

.check[b-21qpdgf7dc] {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    background: var(--surface);
    border: 2px solid var(--border);
    cursor: pointer;
}

.check:has(input:checked)[b-21qpdgf7dc] {
    border-color: var(--accent);
}

.check input[b-21qpdgf7dc] {
    flex: none;
    width: 20px;
    height: 20px;
    margin: 2px 0 0;
    accent-color: var(--accent);
}

.check span[b-21qpdgf7dc] {
    font-weight: 600;
}

.check small[b-21qpdgf7dc] {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--text-muted);
}

.calc-actions[b-21qpdgf7dc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 28px;
}

.calc-actions .btn[b-21qpdgf7dc] {
    padding: 16px 32px;
    font-size: 1.0625rem;
}

/* ---- Estimate ---------------------------------------------------------- */

.estimate[b-21qpdgf7dc] {
    position: sticky;
    top: 120px;
    padding: 32px;
    border-top: 6px solid var(--accent);
}

.estimate-title[b-21qpdgf7dc] {
    font-size: 1rem;
    letter-spacing: 0.2em;
    color: var(--accent);
}

.price[b-21qpdgf7dc] {
    margin-block: 14px 24px;
    font-family: var(--font-display);
    font-size: clamp(2.25rem, 2.5vw + 1.25rem, 3.25rem);
    font-weight: 800;
    font-stretch: condensed;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.price-empty[b-21qpdgf7dc] {
    color: var(--steel-muted);
}

.breakdown[b-21qpdgf7dc] {
    margin: 0 0 20px;
}

.breakdown div[b-21qpdgf7dc] {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding-block: 10px;
    border-bottom: 1px dashed var(--steel-border);
}

.breakdown dt[b-21qpdgf7dc] {
    color: var(--text-muted);
}

.breakdown dd[b-21qpdgf7dc] {
    margin: 0;
    font-weight: 600;
    text-align: right;
}

.note[b-21qpdgf7dc] {
    margin-bottom: 14px;
    font-weight: 600;
    color: var(--accent);
}

.fine-print[b-21qpdgf7dc] {
    margin-top: 16px;
    font-size: 0.875rem;
    color: var(--text-muted);
}

.error-list[b-21qpdgf7dc] {
    margin: 10px 0 0;
    padding-left: 20px;
    font-weight: 600;
    color: #f2726a;
}

.estimate-actions[b-21qpdgf7dc] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

.estimate-actions .btn[b-21qpdgf7dc] {
    flex: 1 1 auto;
}

/* ---- Narrow screens ---------------------------------------------------- */

@media (max-width: 960px) {
    .quote-grid[b-21qpdgf7dc] {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .estimate[b-21qpdgf7dc] {
        position: static;
    }
}

@media (max-width: 600px) {
    .quote-section[b-21qpdgf7dc] {
        padding-top: 32px;
    }

    .work-types[b-21qpdgf7dc] {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    /* Name and rate share a line, so the four cards fit on one screen. */
    .work[b-21qpdgf7dc] {
        grid-template-columns: minmax(0, 1fr) auto;
        column-gap: 12px;
        padding: 12px 14px 12px 44px;
    }

    .work input[b-21qpdgf7dc] {
        top: 15px;
        left: 14px;
    }

    .work-rate[b-21qpdgf7dc] {
        grid-column: 2;
        grid-row: 1;
        margin-top: 0;
        padding-top: 2px;
    }

    .work-desc[b-21qpdgf7dc] {
        grid-column: 1 / -1;
    }

    .estimate[b-21qpdgf7dc] {
        padding: 28px 20px;
    }

    .calc-actions .btn[b-21qpdgf7dc] {
        width: 100%;
    }
}
/* /Components/Pages/Services.razor.rz.scp.css */
.service-list[b-vbabxzd4zk] {
    display: grid;
    gap: 24px;
}

.service[b-vbabxzd4zk] {
    display: grid;
    grid-template-columns: 96px minmax(0, 1.3fr) minmax(0, 1fr);
    gap: 32px;
    padding: 40px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-left: 6px solid var(--accent);
}

.service-num[b-vbabxzd4zk] {
    font-family: var(--font-display);
    font-size: 4rem;
    font-weight: 800;
    font-stretch: condensed;
    line-height: 0.9;
    color: transparent;
    -webkit-text-stroke: 1.5px var(--text-muted);
}

.service .lead[b-vbabxzd4zk] {
    margin-top: 14px;
}

.includes[b-vbabxzd4zk] {
    padding-left: 32px;
    border-left: 1px solid var(--border);
}

.includes h3[b-vbabxzd4zk] {
    margin-bottom: 14px;
    font-size: 0.875rem;
    letter-spacing: 0.2em;
    color: var(--text-muted);
}

.includes ul[b-vbabxzd4zk] {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.includes li[b-vbabxzd4zk] {
    display: flex;
    gap: 12px;
}

/* A small square marker, like a stake flag. */
.includes li[b-vbabxzd4zk]::before {
    content: '';
    flex: none;
    width: 8px;
    height: 8px;
    margin-top: 0.6em;
    background: var(--accent);
}

@media (max-width: 860px) {
    .service[b-vbabxzd4zk] {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 28px 24px;
    }

    .service-num[b-vbabxzd4zk] {
        font-size: 3rem;
    }

    .includes[b-vbabxzd4zk] {
        padding: 20px 0 0;
        border-left: 0;
        border-top: 1px solid var(--border);
    }
}
/* /Components/Site/PageHeader.razor.rz.scp.css */
/* Board-formed concrete: form-panel seams with a tie hole at each crossing. */
.page-header[b-njruuulu6r] {
    padding-block: clamp(48px, 7vw, 88px);
    background:
        linear-gradient(90deg, rgb(20 20 19 / 0.9) 30%, rgb(20 20 19 / 0.55)),
        radial-gradient(circle, rgb(0 0 0 / 0.6) 0 3px, rgb(255 255 255 / 0.08) 4px, transparent 5px) -60px -40px / 120px 80px,
        linear-gradient(rgb(0 0 0 / 0.22) 1px, transparent 1px) 0 0 / 100% 80px,
        linear-gradient(90deg, rgb(0 0 0 / 0.22) 1px, transparent 1px) 0 0 / 240px 100%,
        var(--noise),
        #57544f;
}

.page-header .lead[b-njruuulu6r] {
    margin-top: 20px;
}
/* /Components/Site/QuoteBand.razor.rz.scp.css */
.quote-band[b-zfud70yoox] {
    --focus: var(--accent-ink);

    position: relative;
    padding-block: 64px;
    color: var(--accent-ink);
    background: var(--noise), var(--accent);
}

/* Hazard tape along the top and bottom edges. */
.quote-band[b-zfud70yoox]::before,
.quote-band[b-zfud70yoox]::after {
    content: '';
    position: absolute;
    inset-inline: 0;
    height: 10px;
    background: var(--hazard);
}

.quote-band[b-zfud70yoox]::before {
    top: 0;
}

.quote-band[b-zfud70yoox]::after {
    bottom: 0;
}

.quote-inner[b-zfud70yoox] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px 48px;
}

.quote-inner h2[b-zfud70yoox] {
    font-size: clamp(2rem, 2.5vw + 1.25rem, 3.25rem);
}

.quote-inner p[b-zfud70yoox] {
    margin-top: 8px;
    font-size: 1.125rem;
}

.quote-actions[b-zfud70yoox] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 24px;
}

.quote-phone[b-zfud70yoox] {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 700;
    font-stretch: condensed;
    letter-spacing: 0.04em;
    color: var(--accent-ink);
    text-decoration-color: var(--accent-ink);
}
