:root {
    --ink-purple: #8067a6;
    --ink-purple-strong: #4b347d;
    --ink-deep: #292147;
    --ink-pink: #ff76a7;
    --ink-pink-soft: #ffd3e2;
    --ink-yellow: #ffd866;
    --ink-lavender: #f2e9ff;
    --ink-paper: #fff9ed;
    --ink-surface: #fffef9;
    --ink-line: rgba(41, 33, 71, .18);
    --ink-shadow: 0 22px 54px rgba(41, 33, 71, .12);
}

body {
    color: var(--ink-deep);
    background:
        radial-gradient(circle at top left, rgba(255, 211, 226, .46), transparent 34rem),
        linear-gradient(180deg, #fbf7ff 0%, var(--ink-paper) 46%, #fff 100%);
    font-family: "Trebuchet MS", "Segoe UI", system-ui, -apple-system, sans-serif;
    line-height: 1.6;
}

a {
    color: var(--ink-purple-strong);
}

a:hover {
    color: var(--ink-pink);
}

main {
    overflow: hidden;
}

.site-nav,
.site-footer,
.admin-nav {
    background: rgba(255, 254, 249, .94);
    backdrop-filter: blur(14px);
}

.site-nav,
.admin-nav {
    border-bottom: 3px solid var(--ink-deep);
    box-shadow: 0 8px 0 rgba(128, 103, 166, .12);
}

.navbar-brand {
    letter-spacing: 0;
    padding-block: 0;
}

.nav-link {
    color: rgba(41, 33, 71, .76);
    font-weight: 700;
}

.nav-link:hover,
.nav-link:focus {
    color: var(--ink-purple-strong);
}

.brand-word {
    color: var(--ink-purple-strong);
}

.nav-logo {
    width: clamp(180px, 20vw, 240px);
    height: auto;
    max-height: 96px;
    object-fit: contain;
    filter: drop-shadow(0 5px 0 rgba(41, 33, 71, .1));
}

.footer-logo {
    width: 48px;
    height: 48px;
    object-fit: contain;
    flex: 0 0 48px;
}

.fw-black {
    font-weight: 900;
}

.btn {
    min-height: 44px;
    border-radius: 8px;
    font-weight: 800;
    letter-spacing: 0;
    touch-action: manipulation;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
}

.btn:hover {
    transform: translateY(-1px);
}

.btn:active {
    transform: translateY(0);
}

.btn-primary {
    --bs-btn-bg: var(--ink-purple-strong);
    --bs-btn-border-color: var(--ink-deep);
    --bs-btn-hover-bg: #372264;
    --bs-btn-hover-border-color: var(--ink-deep);
    --bs-btn-active-bg: #372264;
    --bs-btn-active-border-color: var(--ink-deep);
    box-shadow: 4px 4px 0 var(--ink-yellow);
}

.btn-light {
    --bs-btn-bg: #fff;
    --bs-btn-border-color: var(--ink-deep);
    --bs-btn-color: var(--ink-deep);
    --bs-btn-hover-bg: var(--ink-yellow);
    --bs-btn-hover-border-color: var(--ink-deep);
    box-shadow: 4px 4px 0 var(--ink-pink);
}

.btn-outline-primary {
    --bs-btn-color: var(--ink-purple-strong);
    --bs-btn-border-color: rgba(41, 33, 71, .34);
    --bs-btn-hover-bg: var(--ink-lavender);
    --bs-btn-hover-border-color: var(--ink-purple-strong);
    --bs-btn-hover-color: var(--ink-purple-strong);
}

.btn-outline-danger {
    --bs-btn-color: #a31d45;
    --bs-btn-border-color: rgba(163, 29, 69, .34);
    --bs-btn-hover-bg: #a31d45;
    --bs-btn-hover-border-color: #a31d45;
}

.hero {
    background:
        linear-gradient(135deg, rgba(128, 103, 166, .96), rgba(128, 103, 166, .84) 44%, rgba(255, 118, 167, .78)),
        url('../img/print-pattern.svg');
    color: #fff;
    min-height: min(720px, calc(100dvh - 76px));
    display: flex;
    align-items: center;
    position: relative;
    isolation: isolate;
}

.hero .container {
    position: relative;
    z-index: 1;
}

.hero::before,
.hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    pointer-events: none;
}

.hero::before {
    inset: 40px 32px;
    border: 5px solid rgba(41, 33, 71, .72);
    border-radius: 48px;
    background: rgba(255, 249, 237, .12);
}

.hero::after {
    right: 9%;
    bottom: 18%;
    width: min(340px, 38vw);
    aspect-ratio: 1;
    border: 5px solid rgba(41, 33, 71, .58);
    border-radius: 50%;
    background:
        linear-gradient(#fff 0 0) 50% 26% / 46% 12% no-repeat,
        linear-gradient(var(--ink-yellow) 0 0) 50% 74% / 50% 14% no-repeat,
        var(--ink-lavender);
    box-shadow: 12px 12px 0 rgba(255, 216, 102, .64);
    opacity: .72;
}

.hero h1 {
    font-size: clamp(2.5rem, 6vw, 5.25rem);
    line-height: 1;
    letter-spacing: 0;
    text-wrap: balance;
    text-shadow: 0 4px 0 rgba(41, 33, 71, .2);
}

.hero .lead {
    max-width: 680px;
    color: rgba(255, 255, 255, .92);
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    border-radius: 999px;
    border: 2px solid rgba(41, 33, 71, .28);
    background: rgba(255, 249, 237, .88);
    color: var(--ink-deep);
    padding: 6px 14px;
    font-weight: 900;
    box-shadow: 3px 3px 0 rgba(41, 33, 71, .16);
}

.section-pad {
    padding: 72px 0;
}

.service-band {
    background: var(--ink-paper);
    border-block: 4px solid var(--ink-deep);
}

.section-title {
    text-wrap: balance;
}

.section-kicker {
    color: var(--ink-purple-strong);
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.pricing-card,
.order-panel,
.admin-card {
    background: var(--ink-surface);
    border: 3px solid var(--ink-deep);
    border-radius: 8px;
    box-shadow: var(--ink-shadow);
}

.order-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(320px, 5fr);
    gap: 24px;
    align-items: start;
}

.order-left-column {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

.order-total-panel {
    position: sticky;
    top: 120px;
}

.pricing-card {
    height: 100%;
    padding: 24px;
    position: relative;
}

.pricing-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 12px;
    border-radius: 5px 5px 0 0;
    background: var(--ink-lavender);
}

.pricing-card.highlight::before {
    background: var(--ink-pink-soft);
}

.pricing-card.scan::before {
    background: var(--ink-yellow);
}

.sample-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 174px;
    border-radius: 8px;
    border: 2px solid rgba(41, 33, 71, .16);
    background:
        linear-gradient(180deg, rgba(242, 233, 255, .82), rgba(255, 249, 237, .92));
    overflow: hidden;
}

.sample-page {
    position: relative;
    width: 104px;
    min-height: 142px;
    border: 2px solid var(--ink-deep);
    background: #fff;
    box-shadow: 7px 7px 0 rgba(75, 52, 125, .16);
    padding: 12px;
    overflow: hidden;
}

.sample-page strong {
    display: block;
    color: var(--ink-deep);
    font-size: .67rem;
    line-height: 1.12;
    font-weight: 900;
}

.sample-page span {
    display: block;
    width: 100%;
    height: 5px;
    margin-top: 9px;
    border-radius: 999px;
    background: #1f1a34;
    opacity: .18;
}

.sample-page span.short {
    width: 68%;
}

.sample-page ul {
    display: grid;
    gap: 7px;
    margin: 16px 0 0;
    padding: 0 0 0 12px;
}

.sample-page li {
    height: 5px;
    border-radius: 999px;
    background: #1f1a34;
    opacity: .28;
}

.sample-grayscale .sample-page,
.sample-poster .sample-page,
.sample-photo .sample-page {
    padding: 5px;
}

.sample-mountain {
    width: 100%;
    min-height: 128px;
    background:
        linear-gradient(130deg, transparent 0 35%, rgba(255,255,255,.36) 35% 42%, transparent 42% 100%),
        linear-gradient(35deg, transparent 0 36%, #464646 36% 58%, transparent 58% 100%),
        linear-gradient(145deg, transparent 0 42%, #777 42% 63%, transparent 63% 100%),
        linear-gradient(180deg, #d8d8d8 0%, #939393 50%, #505050 100%);
}

.sample-color-line {
    height: 5px;
    margin: 7px 0 13px;
    border-radius: 999px;
    background: linear-gradient(90deg, #3b82f6 0 32%, #18b394 32% 60%, #ffd866 60% 78%, #ff5e6c 78%);
}

.sample-mini-bars,
.sample-chart-bars {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    align-items: end;
    gap: 3px;
}

.sample-mini-bars {
    height: 16px;
    margin-top: 18px;
}

.sample-mini-bars::before,
.sample-mini-bars::after,
.sample-chart-bars::before,
.sample-chart-bars::after {
    content: "";
}

.sample-mini-bars span,
.sample-mini-bars::before,
.sample-mini-bars::after,
.sample-chart-bars span,
.sample-chart-bars::before,
.sample-chart-bars::after {
    border-radius: 2px 2px 0 0;
    background: var(--ink-purple);
}

.sample-mini-bars::before {
    height: 8px;
    background: #3b82f6;
}

.sample-mini-bars span {
    height: 13px;
    background: #18b394;
}

.sample-mini-bars::after {
    height: 10px;
    background: var(--ink-yellow);
}

.sample-chart-row {
    display: grid;
    grid-template-columns: 1fr 34px;
    gap: 8px;
    align-items: end;
    margin-top: 18px;
}

.sample-chart-bars {
    height: 46px;
}

.sample-chart-bars::before {
    height: 21px;
    background: #3b82f6;
}

.sample-chart-bars span {
    height: 32px;
    background: #ff5e6c;
}

.sample-chart-bars::after {
    height: 42px;
    background: var(--ink-yellow);
}

.sample-pie {
    width: 34px;
    aspect-ratio: 1;
    border: 2px solid rgba(41, 33, 71, .24);
    border-radius: 50%;
    background: conic-gradient(#3b82f6 0 30%, #ff5e6c 30% 54%, var(--ink-yellow) 54% 76%, #18b394 76%);
}

.sample-sky {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(135deg, transparent 42%, rgba(255,255,255,.55) 42% 48%, transparent 48%),
        linear-gradient(35deg, transparent 38%, #3f6b85 38% 59%, transparent 59%),
        linear-gradient(180deg, #aee2ff 0 44%, #5ca47f 44% 100%);
}

.sample-poster strong {
    position: relative;
    margin-top: 42px;
    font-size: .72rem;
}

.sample-layout-hero {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 38px;
    background:
        radial-gradient(circle at 78% 40%, rgba(255, 255, 255, .65), transparent 15px),
        linear-gradient(135deg, #7dd3fc, #8067a6 58%, #ff76a7);
}

.sample-layout-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 5px;
    margin-top: 10px;
}

.sample-layout-grid span {
    width: auto;
    height: 19px;
    margin: 0;
    border-radius: 3px;
    opacity: 1;
}

.sample-layout-grid span:nth-child(1) {
    background: #ffd866;
}

.sample-layout-grid span:nth-child(2) {
    background: #18b394;
}

.sample-layout-grid span:nth-child(3) {
    background: #ff76a7;
}

.sample-layout-grid span:nth-child(4) {
    background: #7dd3fc;
}

.sample-layout-banner {
    height: 13px;
    margin-top: 10px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--ink-purple-strong), var(--ink-pink));
}

.sample-photo-field {
    min-height: 128px;
    padding: 10px;
    background:
        radial-gradient(circle at 50% 56%, #f4b56e 0 18%, #9b5d32 19% 24%, transparent 25%),
        radial-gradient(circle at 30% 20%, rgba(255,255,255,.88), transparent 18%),
        linear-gradient(145deg, #82c788 0%, #f4d7a1 48%, #fff5d5 100%);
}

.sample-photo-field strong {
    margin-left: auto;
    width: 48px;
    color: #fff;
    font-size: .68rem;
    text-align: right;
    text-shadow: 0 1px 2px rgba(41, 33, 71, .35);
}

.sample-scanner-light {
    height: 32px;
    margin: -12px -12px 18px;
    background: linear-gradient(90deg, rgba(255, 216, 102, .1), rgba(255, 216, 102, .9), rgba(255, 216, 102, .1));
}

.sample-scan .sample-page {
    min-height: 110px;
}

.price-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 116px;
    min-height: 44px;
    padding: 8px 16px;
    border-radius: 8px;
    border: 2px solid rgba(41, 33, 71, .18);
    background: var(--ink-lavender);
    color: var(--ink-deep);
    font-weight: 900;
    box-shadow: 3px 3px 0 rgba(41, 33, 71, .1);
}

.price-pill.pink {
    background: var(--ink-pink-soft);
}

.price-pill.yellow {
    background: var(--ink-yellow);
}

.step-number {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--ink-deep);
    border-radius: 8px;
    background: var(--ink-yellow);
    color: var(--ink-deep);
    font-weight: 900;
    flex: 0 0 42px;
    box-shadow: 4px 4px 0 var(--ink-pink-soft);
}

.admin-shell {
    background:
        radial-gradient(circle at top right, rgba(255, 216, 102, .28), transparent 28rem),
        linear-gradient(180deg, #f7f0ff 0%, #fff9ed 100%);
}

.login-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
}

.table > :not(caption) > * > * {
    vertical-align: middle;
}

.table thead th {
    color: var(--ink-purple-strong);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.form-label {
    color: var(--ink-deep);
    font-weight: 800;
}

.form-control,
.form-select {
    min-height: 44px;
    border: 2px solid rgba(41, 33, 71, .22);
    border-radius: 8px;
    color: var(--ink-deep);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--ink-purple-strong);
    box-shadow: 0 0 0 .25rem rgba(128, 103, 166, .18);
}

.form-text,
.text-muted {
    color: #696176 !important;
}

.alert {
    border-radius: 8px;
    border-width: 2px;
}

.alert-info {
    color: #2b2450;
    background: #f1ebff;
    border-color: rgba(75, 52, 125, .22);
}

.upload-dropzone {
    width: 100%;
    min-height: 170px;
    border: 3px dashed rgba(75, 52, 125, .48);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 211, 226, .18), rgba(255, 249, 237, .78)),
        #fbf8ff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 24px;
    cursor: pointer;
    text-align: center;
    transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}

.upload-dropzone:hover,
.upload-dropzone:focus-within,
.upload-dropzone.is-dragover {
    border-color: var(--ink-purple-strong);
    background: #f4efff;
    transform: translateY(-1px);
}

.upload-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--ink-deep);
    background: var(--ink-yellow);
    color: var(--ink-deep);
    font-size: 1.8rem;
    line-height: 1;
    font-weight: 900;
    box-shadow: 4px 4px 0 var(--ink-pink-soft);
}

.upload-title {
    font-weight: 900;
}

.upload-meta {
    color: #6c6878;
    font-size: .92rem;
}

.payment-layout {
    display: grid;
    gap: 24px;
    align-items: start;
}

.payment-layout > * {
    min-width: 0;
}

.gcash-payment-details {
    display: grid;
    justify-items: center;
    gap: 0;
    text-align: center;
}

.gcash-recipient {
    width: 100%;
}

.gcash-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.gcash-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: .875rem;
    line-height: 1.2;
    white-space: nowrap;
    text-decoration: none;
}

.gcash-actions .btn:focus-visible {
    outline: 2px solid var(--ink-purple-strong);
    outline-offset: 3px;
}

.gcash-qr {
    width: min(100%, 300px);
    background: #fff;
}

.gcash-qr img {
    display: block;
    width: 100%;
    height: auto;
}

.gcash-number {
    font-size: 1.15rem;
    font-variant-numeric: tabular-nums;
    user-select: all;
}

.payment-proof-dropzone {
    position: relative;
    display: grid;
    place-items: center;
    width: min(100%, 340px);
    min-height: 320px;
    max-height: 420px;
    aspect-ratio: 9 / 14;
    overflow: hidden;
    border: 3px dashed rgba(41, 33, 71, .28);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(242, 233, 255, .46), rgba(255, 249, 237, .86)),
        #fff;
    cursor: pointer;
    text-align: center;
    transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}

.payment-proof-dropzone:hover,
.payment-proof-dropzone:focus-within {
    border-color: var(--ink-purple-strong);
    background: #f4efff;
    transform: translateY(-1px);
}

.payment-proof-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 24px;
}

.payment-proof-dropzone img {
    display: none;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
}

.payment-proof-dropzone img.is-visible {
    display: block;
}

.admin-payment-proof-image {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: min(560px, calc(100vh - 160px));
    max-height: min(560px, calc(100dvh - 160px));
    margin-inline: auto;
    object-fit: contain;
}

.payment-proof-file {
    overflow-wrap: anywhere;
}

@media (min-width: 992px) {
    .payment-layout {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 20px;
    }

    .payment-layout .gcash-qr {
        width: min(100%, 240px);
    }

    .payment-layout .payment-proof-dropzone {
        width: min(100%, 240px);
        min-height: 0;
        height: auto;
        max-height: none;
    }

    .payment-layout .payment-proof-empty {
        padding: 12px;
    }
}

.upload-file-list {
    display: grid;
    gap: 8px;
}

.upload-file-item {
    border: 2px solid rgba(41, 33, 71, .12);
    border-radius: 8px;
    background: #fff;
    padding: 10px 12px;
    font-size: .92rem;
    overflow-wrap: anywhere;
}

.file-estimate-card {
    border: 2px solid rgba(41, 33, 71, .18);
    border-radius: 8px;
    background: linear-gradient(180deg, #fff 0%, #fffaf0 100%);
    padding: 16px;
    box-shadow: 0 12px 24px rgba(41, 33, 71, .06);
}

.file-estimate-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    margin-bottom: 16px;
}

.file-estimate-actions {
    display: flex;
    min-width: 120px;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.file-estimate-name {
    overflow-wrap: anywhere;
}

.file-subtotal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    border-radius: 8px;
    background: var(--ink-lavender);
    color: var(--ink-purple-strong);
    padding: 6px 12px;
    font-weight: 900;
    line-height: 1.15;
    text-align: right;
    white-space: normal;
}

.estimate-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.estimate-choice {
    border: 2px solid rgba(41, 33, 71, .12);
    border-radius: 8px;
    background: #fbfafc;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.estimate-choice span {
    color: #6c6878;
    font-size: .82rem;
}

.estimate-choice strong,
#EstimateTotal {
    font-variant-numeric: tabular-nums;
}

.site-footer {
    border-top: 3px solid var(--ink-deep) !important;
}

.admin-nav {
    background: rgba(255, 254, 249, .94) !important;
}

.admin-nav .navbar-brand {
    color: var(--ink-purple-strong);
}

.admin-nav .nav-link {
    color: rgba(41, 33, 71, .76);
}

.admin-nav .nav-link:hover,
.admin-nav .nav-link:focus {
    color: var(--ink-purple-strong);
}

.admin-user {
    color: #696176;
}

.admin-user-badge {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    max-width: 100%;
    min-height: 44px;
    padding: 6px 10px;
    border: 1px solid var(--ink-line);
    border-radius: 8px;
    background: var(--ink-lavender);
}

.admin-user-name {
    color: var(--ink-deep);
    font-weight: 800;
    overflow-wrap: anywhere;
    min-width: 0;
}

.admin-user-role {
    padding: 2px 8px;
    border-radius: 6px;
    background: var(--ink-surface);
    color: var(--ink-purple-strong);
    font-size: .75rem;
    font-weight: 700;
}

.admin-shell .btn-outline-primary {
    --bs-btn-color: var(--ink-purple-strong);
    --bs-btn-bg: var(--ink-surface);
    --bs-btn-border-color: var(--ink-purple-strong);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--ink-purple-strong);
    --bs-btn-hover-border-color: var(--ink-purple-strong);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--ink-deep);
    --bs-btn-active-border-color: var(--ink-deep);
    --bs-btn-disabled-color: var(--ink-purple-strong);
    --bs-btn-disabled-border-color: var(--ink-purple-strong);
    --bs-btn-focus-shadow-rgb: 75, 52, 125;
    border: 2px solid var(--bs-btn-border-color);
    box-shadow: 3px 3px 0 var(--ink-lavender);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.admin-shell .btn-outline-primary:hover {
    border-color: var(--bs-btn-hover-border-color);
}

.admin-shell .btn-outline-primary:focus-visible {
    outline: 3px solid var(--ink-purple);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media (max-width: 767.98px) {
    .hero {
        min-height: 0;
        align-items: stretch;
        padding: 18px 0;
    }

    .hero .container {
        padding: 48px 36px 58px;
    }

    .hero::before {
        inset: 18px 12px;
        border-radius: 28px;
    }

    .hero::after {
        display: none;
    }

    .section-pad {
        padding: 48px 0;
    }

    .order-main-grid {
        display: flex;
        flex-direction: column;
        gap: 24px;
    }

    .order-left-column {
        display: contents;
    }

    .order-files-panel {
        order: 1;
    }

    .order-total-panel {
        position: static;
        order: 2;
    }

    .order-payment-panel {
        order: 3;
    }

    .file-estimate-head {
        grid-template-columns: 1fr;
    }

    .file-estimate-actions {
        align-items: stretch;
        min-width: 0;
    }

    .file-subtotal {
        justify-content: space-between;
        text-align: left;
    }

    .estimate-choice-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .hero .container {
        padding: 42px 30px 54px;
    }

    .hero h1 {
        font-size: clamp(2.1rem, 11vw, 2.9rem);
    }

    .hero .lead {
        font-size: 1.08rem !important;
    }
}
