/* Calculator styles are scoped and loaded only on /tarify/calculator/. */
body.calculator-page, .calculator-page .app__content { min-width: 0; }
.gc {
    --gc-ink: #253b2b;
    --gc-green: #347442;
    --gc-line: #dce4dc;
    --gc-muted: #5e6b60;
    color: var(--gc-ink);
    font: 16px/1.55 Arial, sans-serif;
    text-align: left;
}

.gc *, .gc *::before, .gc *::after { box-sizing: border-box; }
.gc [hidden] { display: none !important; }
.gc h1, .gc h2, .gc h3, .gc p { margin: 0; padding: 0; }
.gc h1, .gc h2, .gc h3 { color: var(--gc-ink); font-family: inherit; text-align: left; }
.gc h1 { margin: 12px 0 18px; font-size: clamp(30px, 3.8vw, 46px); line-height: 1.12; letter-spacing: -1.3px; font-weight: 700; }
.gc h2 { margin-bottom: 12px; font-size: 23px; line-height: 1.25; }
.gc h3 { margin-bottom: 8px; font-size: 18px; line-height: 1.4; }
.gc p { margin-bottom: 14px; }
.gc a { color: #276737; text-decoration: underline; text-underline-offset: 3px; }
.gc button, .gc input, .gc select { font: inherit; }
.gc button { cursor: pointer; touch-action: manipulation; }
.gc button:disabled { cursor: default; opacity: .35; }
.gc button:focus-visible, .gc a:focus-visible, .gc input:focus-visible, .gc select:focus-visible, .gc summary:focus-visible { outline: 3px solid #bb8b24; outline-offset: 3px; }
.gc-intro { max-width: 760px; padding: 12px 0 28px; }
.gc-intro > p { max-width: 650px; color: var(--gc-muted); font-size: 18px; }
.gc-eyebrow { color: #47734a; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; }
.gc-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: start; gap: 30px; }
.gc-workspace { min-width: 0; }
.gc-modes { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 28px; padding: 0; border: 0; }
.gc-modes legend { margin-bottom: 10px; font-size: 13px; color: var(--gc-muted); }
.gc-modes label { position: relative; flex: 1 1 auto; cursor: pointer; }
.gc-modes input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gc-modes span { display: block; padding: 12px 10px; border: 1px solid var(--gc-line); border-radius: 999px; background: #edf1e9; color: var(--gc-ink); text-align: center; font-size: 14px; font-weight: 700; transition: background-color .16s, color .16s; }
.gc-modes input:checked + span { background: #e2e36c; color: #253b2b; border-color: #e2e36c; }
.gc-modes input:focus-visible + span { outline: 3px solid #bb8b24; outline-offset: 3px; }
.gc-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.gc-reset { padding: 6px 0; border: 0; background: none; color: var(--gc-muted); font-size: 13px; text-decoration: underline; }
.gc .gc-muted { font-size: 13px; line-height: 1.5; color: var(--gc-muted); }
/* Realistic catalog cards; retain existing calculation controls. */
.gc-catalog { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.gc-item { display: grid; grid-template-columns: 104px minmax(0, 1fr); grid-template-rows: 1fr auto auto; column-gap: 14px; row-gap: 8px; align-items: center; min-width: 0; min-height: 210px; padding: 22px 18px 18px; border: 2px solid transparent; border-radius: 24px; background: #aec1a8; transition: border-color .16s, box-shadow .16s; }
.gc-item:nth-child(even) { background: #f5f2d3; }
.gc-item.gc-selected { border-color: #347442; box-shadow: inset 0 0 0 1px #347442; }
.gc-picture { grid-column: 1; grid-row: 1 / 3; width: 104px; height: 104px; display: flex; align-items: center; justify-content: center; }
.gc-picture img { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: contain; }
.gc-item-name { grid-column: 2; align-self: end; display: block; margin: 0; color: #203626; text-align: left; font-size: 18px; font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; }
.gc-item-caption { grid-column: 2; align-self: start; font-size: 12px; line-height: 1.5; color: #304a36; text-align: left; }
.gc-stepper { grid-column: 1 / -1; display: grid; grid-template-columns: 44px minmax(44px, 1fr) 44px; align-items: center; justify-self: center; width: 164px; max-width: 100%; margin-top: 14px; padding: 5px; border: 0; border-radius: 999px; background: #ffffff55; }
.gc-stepper button { width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: #ffffffc7; color: #253b2b; font-size: 25px; line-height: 1; }
.gc-stepper button:hover:not(:disabled) { background: #fff; }
.gc-stepper button:disabled { opacity: .55; }
.gc-stepper:focus-within { outline: 2px solid #347442; outline-offset: 4px; }
.gc .gc-stepper input { width: 100%; min-width: 0; height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; color: #203626; text-align: center; font-size: 16px; font-weight: 700; appearance: textfield; }
.gc-stepper input::-webkit-inner-spin-button, .gc-stepper input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.gc-volume-help { margin: 18px 0; font-size: 13px; }
.gc-volume-help summary { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.gc-volume-help p { margin-top: 10px; color: var(--gc-muted); }
.gc label:not(.gc-check):not(.gc-modes label):not(.gc-item-name) { display: block; margin-bottom: 6px; font-weight: 700; font-size: 14px; }
.gc input[type="number"]:not(.gc-stepper input), .gc select { display: block; width: 100%; min-width: 0; max-width: 100%; min-height: 46px; margin-bottom: 10px; padding: 10px 12px; border: 1px solid #b6c4b8; border-radius: 7px; color: var(--gc-ink); background: #fff; font-size: 16px; }
.gc #gc-mixed-volume { margin-top: 20px; }
.gc #gc-item-volume, .gc #gc-volume, .gc #gc-bags { max-width: 180px; }
.gc-volume-entry { display: flex; gap: 12px; align-items: baseline; }
.gc-volume-visual, .gc-bag-visual { padding: 10px 0 20px; }
.gc-presets { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 18px; }
.gc-presets button { padding: 10px 15px; border: 1px solid var(--gc-line); border-radius: 6px; background: #f4f7f1; color: var(--gc-ink); }
.gc-access { margin-top: 28px; padding-top: 26px; border-top: 1px solid var(--gc-line); }
.gc-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 16px 0; }
.gc-check { display: flex; align-items: flex-start; gap: 10px; margin: 14px 0; font-size: 14px; cursor: pointer; }
.gc-check input { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--gc-green); }
.gc-summary { position: sticky; top: 24px; padding: 24px; background: #f2f6ed; border: 1px solid #dbe5d4; border-radius: 12px; min-width: 0; }
.gc-summary-top h2 { margin: 8px 0 20px; font-size: 19px; }
.gc .gc-price { margin-bottom: 6px; font-size: 34px; font-weight: 700; line-height: 1.2; letter-spacing: -1px; }
.gc .gc-price-text { font-size: 26px; letter-spacing: -.5px; }
.gc #gc-method { font-size: 13px; color: var(--gc-muted); }
.gc .gc-selection { max-height: 190px; overflow: auto; margin: 18px 0; padding: 0; list-style: none; font-size: 14px; }
.gc-selection li { padding: 6px 0; border-bottom: 1px solid #dbe5d4; }
.gc .gc-breakdown { font-size: 12px; }
.gc-breakdown p { margin-bottom: 6px; }
.gc-breakdown ul { margin: 12px 0; padding-left: 16px; }
.gc-breakdown li { margin: 6px 0; }
.gc .gc-summary-note { margin: 18px 0; font-size: 12px; color: var(--gc-muted); }
.gc a.gc-order { display: flex; justify-content: space-between; gap: 12px; padding: 15px 17px; border-radius: 7px; color: #fff; background: var(--gc-green); font-size: 15px; font-weight: 700; text-decoration: none; transition: background-color .16s; }
.gc a.gc-order:hover { background: #285d34; }
.gc .gc-phone { display: block; margin: 16px 0; text-align: center; font-size: 16px; }
.gc-explanation { margin-top: 44px; padding: 28px 0 10px; border-top: 1px solid var(--gc-line); }
.gc-explanation-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin: 24px 0; }
.gc-explanation-grid p { color: var(--gc-muted); font-size: 14px; }
.gc-mobile-total { display: none; }
.gc #gc-summary-title { scroll-margin-top: 72px; }
.gc .gc-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.gc-copy { margin-bottom: 12px; padding: 8px 0; border: 0; background: none; text-decoration: underline; color: var(--gc-green); font-size: 13px; }
.gc-copy-fallback { margin-bottom: 16px; font-size: 13px; }
.gc-copy-fallback textarea { width: 100%; padding: 8px; border: 1px solid var(--gc-line); background: #fff; font: 16px/1.4 Arial, sans-serif; }

@media (max-width: 1000px) {
    .gc-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .gc-summary { position: static; }
    .gc-summary { padding: 18px; }
    .gc-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .gc-intro { padding-top: 4px; padding-bottom: 20px; }
    .gc h1 { font-size: 33px; letter-spacing: -1px; }
    .gc-intro > p { font-size: 16px; }
    .gc-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .gc-summary { position: static; }
    .gc-modes { gap: 5px; }
    .gc-modes span { padding: 12px 8px; font-size: 12px; }
    .gc-modes label { flex: 1 1 28%; }
    .gc-item-name { font-size: 17px; }
    .gc-fields { grid-template-columns: minmax(0, 1fr); gap: 4px; }
    .gc-explanation-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .gc-summary .gc-selection { max-height: none; }
    .gc-summary-top h2 { margin-bottom: 12px; }
    .gc .gc-mobile-total { position: fixed; z-index: 1001; bottom: 10px; left: 10px; right: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 16px; border: 1px solid #dbe5d4; border-radius: 9px; background: #f2f6ed; box-shadow: 0 3px 18px #253b2b26; font-size: 14px; }
    .gc-mobile-total > span { font-weight: 700; }
    .gc-mobile-total a { font-size: 12px; }
    .gc { padding-bottom: 65px; }
}

@media (prefers-reduced-motion: reduce) {
    .gc * { transition: none !important; }
}

/* Branded truck in the estimate card; text and controls remain separate. */
.gc-summary .gc-truck {
    display: block;
    width: 100%;
    max-width: 270px;
    height: auto;
    margin: 0 auto 18px;
    object-fit: contain;
}

@media (max-width: 560px) {
    .gc-catalog { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .gc-item { min-height: 188px; padding: 16px; grid-template-columns: 96px minmax(0, 1fr); column-gap: 14px; border-radius: 22px; }
    .gc-picture { width: 96px; height: 96px; }
    .gc-stepper { margin-top: 4px; }
    .gc .gc-mobile-total { bottom: max(10px, env(safe-area-inset-bottom)); }
}

/* Keep each amount together on narrow screens. */
.gc-item-rate { display: inline-block; white-space: nowrap; font-size: 14px; font-weight: 600; }
