:root {
    --landing-ink: #111813;
    --landing-ink-soft: #202a22;
    --landing-muted: #687168;
    --landing-paper: #fffdf8;
    --landing-cream: #f3efe6;
    --landing-line: #dcded6;
    --landing-red: #e93239;
    --landing-red-dark: #c82128;
    --landing-white: #fff;
    --landing-shadow: 0 20px 56px rgba(28, 35, 29, .075);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    background:
        radial-gradient(circle at 8% 13%, rgba(233, 50, 57, .065), transparent 26rem),
        var(--landing-cream);
    color: var(--landing-ink);
    font-family: "DM Sans", sans-serif;
    margin: 0;
    min-width: 320px;
}

button, input, select { font: inherit; }

a { color: inherit; }

button, label { -webkit-tap-highlight-color: transparent; }

.visually-hidden,
.landing-honeypot {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.landing-skip {
    background: var(--landing-ink);
    color: var(--landing-white);
    left: 18px;
    padding: 10px 14px;
    position: fixed;
    top: -60px;
    transition: top .15s ease;
    z-index: 100;
}

.landing-skip:focus { top: 12px; }

.landing-header {
    background: rgba(255, 253, 248, .94);
    border-bottom: 1px solid rgba(220, 222, 214, .8);
    padding: 0 24px;
    position: sticky;
    top: 0;
    z-index: 20;
    backdrop-filter: blur(18px);
}

.landing-header-inner {
    align-items: center;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    margin: 0 auto;
    max-width: 1344px;
    min-height: 82px;
}

.landing-brand { display: inline-flex; justify-self: start; }
.landing-brand img { display: block; height: 40px; object-fit: contain; object-position: left center; width: 150px; }

.landing-header-context {
    align-items: center;
    background: var(--landing-white);
    border: 1px solid var(--landing-line);
    border-radius: 999px;
    color: #4f5951;
    display: flex;
    gap: 12px;
    padding: 9px 14px;
}

.landing-header-context > span { align-items: center; display: flex; font-size: 11px; font-weight: 800; gap: 8px; }
.landing-header-context > span::after { background: var(--landing-line); content: ""; height: 16px; margin-left: 4px; width: 1px; }
.landing-header-context i { background: var(--landing-red); border-radius: 50%; box-shadow: 0 0 0 4px rgba(233, 50, 57, .1); height: 7px; width: 7px; }
.landing-header-context small { color: #667068; font-size: 10px; font-weight: 700; }

.landing-header-actions { align-items: center; display: flex; gap: 16px; justify-self: end; }
.landing-header-help { border-right: 1px solid var(--landing-line); display: flex; flex-direction: column; padding-right: 16px; text-align: right; text-decoration: none; }
.landing-header-help small { color: #747d75; font-size: 9px; font-weight: 600; }
.landing-header-help strong { font-size: 12px; margin-top: 2px; }

.landing-exit {
    align-items: center;
    background: var(--landing-ink);
    border-radius: 999px;
    color: var(--landing-white);
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    gap: 13px;
    min-height: 44px;
    padding: 5px 6px 5px 17px;
    text-decoration: none;
    transition: background-color .15s ease, transform .15s ease;
}

.landing-exit b {
    align-items: center;
    background: rgba(255, 255, 255, .11);
    border-radius: 50%;
    display: flex;
    font-size: 14px;
    height: 32px;
    justify-content: center;
    width: 32px;
}

.landing-exit:hover { background: #2d382f; transform: translateY(-1px); }

.landing-page { margin: 0 auto; max-width: 1400px; padding: 66px 28px 90px; }

.landing-intro {
    align-items: end;
    display: grid;
    gap: 60px;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
    margin: 0 0 44px;
}

.landing-kicker {
    align-items: center;
    color: #566158;
    display: flex;
    font-size: 10px;
    font-weight: 800;
    gap: 10px;
    letter-spacing: .16em;
    margin-bottom: 18px;
    text-transform: uppercase;
}

.landing-kicker i { background: var(--landing-red); border-radius: 50%; height: 7px; width: 7px; }

.landing-intro h1,
.landing-success h1 {
    font-family: Manrope, sans-serif;
    font-size: clamp(42px, 5.2vw, 72px);
    letter-spacing: -.065em;
    line-height: .99;
    margin: 0;
    max-width: 920px;
}

.landing-intro > p {
    color: var(--landing-muted);
    font-size: 17px;
    font-weight: 500;
    line-height: 1.7;
    margin: 0 0 5px;
    max-width: 500px;
}

.landing-server-errors {
    background: #fff0ef;
    border: 1px solid #f2c6c4;
    border-radius: 14px;
    color: #7f2024;
    font-size: 13px;
    margin-bottom: 24px;
    padding: 16px 19px;
}

.landing-server-errors ul { margin: 7px 0 0; padding-left: 20px; }

.landing-layout { align-items: start; display: grid; gap: 22px; grid-template-columns: minmax(0, 1fr) 330px; }

.landing-wizard {
    background: var(--landing-paper);
    border: 1px solid rgba(209, 212, 202, .9);
    border-radius: 26px;
    box-shadow: var(--landing-shadow);
    min-width: 0;
    overflow: hidden;
}

.landing-progress {
    background: var(--landing-ink);
    color: var(--landing-white);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    list-style: none;
    margin: 0;
    padding: 19px 24px;
}

.landing-progress li { align-items: center; display: flex; gap: 10px; min-width: 0; opacity: .42; position: relative; }
.landing-progress li::after { background: #4a534c; content: ""; height: 1px; position: absolute; right: 13px; top: 16px; width: calc(100% - 55px); }
.landing-progress li:last-child::after { display: none; }
.landing-progress li.active, .landing-progress li.complete { opacity: 1; }
.landing-progress li.complete::after { background: #6d776f; }

.landing-progress li > span {
    align-items: center;
    border: 1px solid #677068;
    border-radius: 50%;
    display: flex;
    flex: none;
    font-size: 10px;
    font-weight: 800;
    height: 32px;
    justify-content: center;
    width: 32px;
}

.landing-progress li.active > span { background: var(--landing-red); border-color: var(--landing-red); color: var(--landing-white); }
.landing-progress li.complete > span { background: #3b443d; border-color: #687269; color: var(--landing-white); }
.landing-progress b, .landing-progress small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.landing-progress b { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.landing-progress small { color: #b8c0b9; font-size: 9px; font-weight: 500; margin-top: 3px; }

.landing-step { padding: clamp(32px, 5vw, 58px); }
.landing-step[hidden] { display: none; }

.landing-step-heading { margin-bottom: 32px; }
.landing-step-heading > span, .equipment-heading span {
    color: var(--landing-red-dark);
    display: block;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .13em;
    margin-bottom: 9px;
    text-transform: uppercase;
}

.landing-step-heading h2 {
    font-family: Manrope, sans-serif;
    font-size: clamp(30px, 3.6vw, 45px);
    letter-spacing: -.055em;
    line-height: 1.05;
    margin: 0;
}

.landing-step-heading p { color: #59635a; font-size: 16px; font-weight: 500; line-height: 1.6; margin: 14px 0 0; max-width: 680px; }

.service-grid { border: 0; display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; }

.service-choice {
    align-items: start;
    background: var(--landing-white);
    border: 1px solid var(--landing-line);
    border-radius: 16px;
    cursor: pointer;
    display: grid;
    gap: 11px 13px;
    grid-template-columns: auto 1fr auto;
    min-height: 195px;
    padding: 20px;
    position: relative;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.service-choice:hover { border-color: #b7bcb2; transform: translateY(-2px); }
.service-choice:has(input:checked) { background: #fff9f6; border-color: #cf5559; box-shadow: inset 0 0 0 1px #cf5559; }
.service-choice:has(input:focus-visible) { outline: 3px solid rgba(233, 50, 57, .25); outline-offset: 2px; }
.service-choice > input { opacity: 0; pointer-events: none; position: absolute; }

.service-check {
    align-items: center;
    background: var(--landing-white);
    border: 1px solid #c9cdc4;
    border-radius: 50%;
    color: transparent;
    display: flex;
    font-size: 10px;
    height: 22px;
    justify-content: center;
    position: absolute;
    right: 15px;
    top: 15px;
    width: 22px;
}

.service-choice:has(input:checked) .service-check { background: var(--landing-red); border-color: var(--landing-red); color: var(--landing-white); }

.service-icon {
    align-items: center;
    background: #202721;
    border: 1px solid #303932;
    border-radius: 13px;
    color: var(--landing-white);
    display: flex;
    height: 54px;
    justify-content: center;
    transition: background-color .16s ease, border-color .16s ease, transform .16s ease;
    width: 54px;
}

.service-choice:hover .service-icon { transform: translateY(-1px); }
.service-choice:has(input:checked) .service-icon { background: var(--landing-red); border-color: var(--landing-red); color: var(--landing-white); }
.service-icon svg { fill: none; height: 31px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.55; width: 31px; }
.service-icon svg .icon-soft { fill: currentColor; opacity: .09; stroke: none; }
.service-icon svg .icon-detail { stroke-width: 1.8; }
.service-copy { align-self: end; grid-column: 1 / -1; }
.service-copy b { display: block; font: 700 20px Manrope, sans-serif; letter-spacing: -.025em; }
.service-copy small { color: #59635a; display: block; font-size: 13px; font-weight: 500; line-height: 1.5; margin-top: 7px; max-width: 35ch; }
.service-choice > em { color: #7e877f; font-size: 9px; font-style: normal; font-weight: 800; letter-spacing: .12em; margin: 7px 30px 0 0; }

.plan-selection { border-top: 1px solid var(--landing-line); margin-top: 34px; padding-top: 32px; }
.plan-selection[hidden] { display: none; }
.plan-selection-heading > span { color: var(--landing-red-dark); display: block; font-size: 9px; font-weight: 800; letter-spacing: .13em; margin-bottom: 8px; text-transform: uppercase; }
.plan-selection-heading h3 { font: 800 clamp(24px, 3vw, 34px)/1.08 Manrope, sans-serif; letter-spacing: -.045em; margin: 0; }
.plan-selection-heading p { color: var(--landing-muted); font-size: 13px; line-height: 1.55; margin: 10px 0 0; max-width: 650px; }
.plan-selection-heading > strong { color: var(--landing-red-dark); display: block; font-size: 11px; margin-top: 12px; }
.plan-grid { border: 0; display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 21px 0 0; padding: 0; }
.plan-choice { background: var(--landing-white); border: 1px solid var(--landing-line); border-radius: 16px; cursor: pointer; display: flex; flex-direction: column; min-height: 230px; padding: 21px; position: relative; }
.plan-choice:hover { border-color: #b7bcb2; }
.plan-choice:has(input:checked) { background: #fff9f6; border-color: #cf5559; box-shadow: inset 0 0 0 1px #cf5559; }
.plan-choice:has(input:focus-visible) { outline: 3px solid rgba(233, 50, 57, .25); outline-offset: 2px; }
.plan-choice > input, .commercial-option > input { opacity: 0; pointer-events: none; position: absolute; }
.plan-choice-check, .commercial-option-check { border: 1px solid #bfc5bd; border-radius: 50%; flex: none; height: 20px; position: absolute; right: 16px; top: 16px; width: 20px; }
.plan-choice-check::after, .commercial-option-check::after { background: var(--landing-red); border-radius: 50%; content: ""; inset: 4px; opacity: 0; position: absolute; }
.plan-choice:has(input:checked) .plan-choice-check::after, .commercial-option:has(input:checked) .commercial-option-check::after { opacity: 1; }
.plan-choice > span:nth-of-type(2) { padding-right: 26px; }
.plan-choice b { display: block; font: 800 21px Manrope, sans-serif; }
.plan-choice small { color: #59635a; display: block; font-size: 13px; font-weight: 550; line-height: 1.55; margin-top: 9px; }
.plan-choice > strong { color: var(--landing-red-dark); font-size: 13px; line-height: 1.4; margin-top: auto; padding-top: 17px; }
.plan-choice > em { background: var(--landing-ink); border-radius: 999px; color: white; font-size: 8px; font-style: normal; font-weight: 800; left: 20px; letter-spacing: .08em; padding: 5px 8px; position: absolute; top: -9px; text-transform: uppercase; }
.hardware-only-choice { background: #f4f1ea; }
.hardware-only-choice > strong { color: var(--landing-ink); }
.plan-billing { align-items: stretch; background: #f2eee6; border: 1px solid var(--landing-line); border-radius: 14px; display: grid; gap: 8px; grid-template-columns: auto repeat(2, minmax(0, 1fr)); margin: 14px 0 0; padding: 11px; }
.plan-billing[hidden] { display: none; }
.plan-billing legend { align-self: center; font-size: 11px; font-weight: 800; padding: 0 10px 0 3px; }
.plan-billing label { background: var(--landing-white); border: 1px solid var(--landing-line); border-radius: 10px; cursor: pointer; padding: 10px 12px; position: relative; }
.plan-billing label:has(input:checked) { border-color: #cf5559; box-shadow: inset 0 0 0 1px #cf5559; }
.plan-billing input { opacity: 0; pointer-events: none; position: absolute; }
.plan-billing b, .plan-billing small { display: block; }
.plan-billing b { font-size: 11px; }
.plan-billing small { color: var(--landing-muted); font-size: 9px; line-height: 1.4; margin-top: 2px; }

.commercial-options { background: #f5f2eb; border: 1px solid var(--landing-line); border-radius: 16px; margin: 17px 0 0; padding: 18px; }
.commercial-options[hidden] { display: none; }
.commercial-options > legend { float: left; font: 800 15px Manrope, sans-serif; padding: 0; width: 100%; }
.commercial-options > p { clear: both; color: var(--landing-muted); font-size: 11px; line-height: 1.5; margin: 5px 0 14px; }
.commercial-option-grid { display: grid; gap: 9px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.commercial-option { background: var(--landing-white); border: 1px solid var(--landing-line); border-radius: 12px; cursor: pointer; min-height: 138px; padding: 16px; position: relative; }
.commercial-option[hidden] { display: none; }
.commercial-option:hover { border-color: #b7bcb2; }
.commercial-option:has(input:checked) { border-color: #cf5559; box-shadow: inset 0 0 0 1px #cf5559; }
.commercial-option:has(input:focus-visible) { outline: 3px solid rgba(233, 50, 57, .25); outline-offset: 2px; }
.commercial-option > span:last-child { display: flex; flex-direction: column; height: 100%; padding-right: 18px; }
.commercial-option b { display: block; font-size: 13px; }
.commercial-option small { color: var(--landing-muted); display: block; font-size: 11px; font-weight: 500; line-height: 1.45; margin-top: 5px; }
.commercial-option strong { color: var(--landing-red-dark); display: block; font-size: 11px; line-height: 1.4; margin-top: auto; padding-top: 12px; }

.landing-step-actions {
    align-items: center;
    border-top: 1px solid var(--landing-line);
    display: flex;
    gap: 16px;
    justify-content: flex-end;
    margin-top: 34px;
    padding-top: 22px;
}

.landing-step-actions > span { color: #5f695f; font-size: 12px; font-weight: 600; margin-right: auto; }

.landing-button {
    align-items: center;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    font-size: 14px;
    font-weight: 800;
    gap: 20px;
    justify-content: center;
    min-height: 52px;
    padding: 0 24px;
    text-decoration: none;
    transition: background-color .15s ease, color .15s ease, transform .15s ease;
}

.landing-button:hover { transform: translateY(-1px); }
.landing-button:disabled { cursor: wait; opacity: .68; transform: none; }
.landing-button.primary { background: var(--landing-red); color: var(--landing-white); }
.landing-button.primary:hover { background: var(--landing-red-dark); }
.landing-button.secondary { background: var(--landing-white); border: 1px solid var(--landing-line); }
.landing-button.text { background: transparent; color: var(--landing-muted); padding-left: 4px; }
.landing-button.text:hover { color: var(--landing-ink); }
.landing-button:focus-visible, .landing-exit:focus-visible, a:focus-visible { outline: 3px solid rgba(233, 50, 57, .3); outline-offset: 3px; }

.landing-step-error { color: #b51f25; font-size: 13px; font-weight: 700; margin: 16px 0 0; }
.landing-step-error.server { background: #fff0ef; border-radius: 8px; padding: 10px 12px; }

.equipment-planning {
    align-items: stretch;
    background: #f4f1ea;
    border: 1px solid var(--landing-line);
    border-radius: 16px;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    margin-bottom: 34px;
    padding: 18px;
}
.location-count { align-items: center; display: grid; gap: 4px 14px; grid-template-columns: minmax(0, 1fr) 82px; }
.location-count > span { font: 700 14px/1.35 Manrope, sans-serif; }
.location-count > small { color: #606a61; font-size: 10px; font-weight: 500; grid-column: 1; line-height: 1.45; }
.location-count > input {
    appearance: textfield;
    background: var(--landing-white);
    border: 1px solid #c9cdc5;
    border-radius: 10px;
    color: var(--landing-ink);
    font: 800 18px Manrope, sans-serif;
    grid-column: 2;
    grid-row: 1 / 3;
    height: 52px;
    min-width: 0;
    text-align: center;
    width: 82px;
}
.location-count > input::-webkit-inner-spin-button { opacity: 1; }
.location-count > input:focus { border-color: #778077; box-shadow: 0 0 0 3px rgba(78, 92, 80, .1); outline: 0; }
.equipment-scope { border: 0; display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; min-width: 0; padding: 0; }
.equipment-scope[hidden] { display: none; }
.equipment-scope legend { font-size: 10px; font-weight: 800; grid-column: 1 / -1; letter-spacing: .03em; margin-bottom: 1px; text-transform: uppercase; }
.equipment-scope label { cursor: pointer; display: block; min-width: 0; position: relative; }
.equipment-scope input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.equipment-scope label > span { background: var(--landing-white); border: 1px solid #c9cdc5; border-radius: 10px; display: block; min-height: 67px; padding: 11px 12px; }
.equipment-scope label > span b { display: block; font: 700 12px Manrope, sans-serif; }
.equipment-scope label > span small { color: #606a61; display: block; font-size: 9px; line-height: 1.4; margin-top: 3px; }
.equipment-scope input:checked + span { background: #fffaf7; border-color: var(--landing-red); box-shadow: inset 0 0 0 1px var(--landing-red); }
.equipment-scope input:focus-visible + span { outline: 3px solid rgba(233, 50, 57, .25); outline-offset: 2px; }

.equipment-section + .equipment-section { border-top: 1px solid var(--landing-line); margin-top: 34px; padding-top: 34px; }
.equipment-section[hidden] { display: none; }
.hardware-only-notice { align-items: flex-start; background: #edf5ec; border: 1px solid #c8d9c6; border-radius: 14px; display: flex; flex-direction: column; gap: 5px; margin: -8px 0 22px; padding: 15px 17px; }
.hardware-only-notice[hidden] { display: none; }
.hardware-only-notice strong { font: 800 14px Manrope, sans-serif; }
.hardware-only-notice span { color: #536055; font-size: 11px; font-weight: 550; line-height: 1.5; }
.equipment-heading { align-items: end; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 18px; }
.equipment-heading h3 { font: 700 25px Manrope, sans-serif; letter-spacing: -.04em; margin: 0; }
.equipment-heading p { color: #5c665d; font-size: 12px; font-weight: 500; line-height: 1.5; margin: 0; max-width: 280px; text-align: right; }

.product-choice-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kiosk-products { grid-template-columns: minmax(0, 1fr); }

.product-choice {
    background: var(--landing-white);
    border: 1px solid var(--landing-line);
    border-radius: 14px;
    display: grid;
    grid-template-columns: 98px 1fr;
    grid-template-rows: 1fr auto;
    min-height: 178px;
    overflow: hidden;
    position: relative;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.product-choice:hover { border-color: #b7bcb2; transform: translateY(-1px); }
.product-choice.configured { background: #fffaf7; border-color: #cf5559; box-shadow: inset 0 0 0 1px #cf5559; grid-column: 1 / -1; }
.product-choice:has(.product-choice-select > input:focus-visible) { outline: 3px solid rgba(233, 50, 57, .25); outline-offset: 2px; }
.product-choice-select { cursor: pointer; display: contents; }
.product-choice-select > input { opacity: 0; pointer-events: none; position: absolute; }
.product-radio { align-items: center; background: var(--landing-white); border: 1px solid #c8ccc3; border-radius: 6px; color: var(--landing-white); display: flex; font-size: 12px; font-weight: 900; height: 21px; justify-content: center; position: absolute; right: 13px; top: 13px; width: 21px; z-index: 2; }
.product-radio::after { content: "✓"; opacity: 0; transform: translateY(-.5px); }
.product-choice.configured .product-radio { background: var(--landing-red); border-color: var(--landing-red); }
.product-choice.configured .product-radio::after { opacity: 1; }
.product-image { align-items: center; background: #f1eee7; display: flex; grid-row: 1 / 3; justify-content: center; min-width: 0; }
.product-image img { height: 100%; max-height: 178px; object-fit: contain; padding: 10px 4px; width: 100%; }
.product-copy { display: flex; flex-direction: column; min-width: 0; padding: 17px 38px 7px 15px; }
.product-copy b { font: 700 15px/1.35 Manrope, sans-serif; }
.product-copy small { color: #59635a; display: -webkit-box; font-size: 11px; font-weight: 500; line-height: 1.5; margin-top: 7px; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.product-copy strong { font: 800 15px Manrope, sans-serif; margin-top: auto; padding-top: 11px; }
.product-copy strong em { color: #667067; font: 600 9px "DM Sans", sans-serif; font-style: normal; }
.product-monthly-price { color: #59635a; font-size: 10px; font-weight: 700; line-height: 1.35; margin-top: 4px; }
.product-more {
    align-items: center;
    align-self: end;
    background: transparent;
    border: 0;
    border-top: 1px solid var(--landing-line);
    color: var(--landing-ink);
    cursor: pointer;
    display: flex;
    font-size: 12px;
    font-weight: 800;
    gap: 8px;
    justify-content: space-between;
    margin: 0 14px;
    min-height: 38px;
    padding: 0 1px;
    text-align: left;
}
.product-more span { color: var(--landing-red); font-size: 14px; transition: transform .15s ease; }
.product-more:hover span { transform: translateX(2px); }
.product-more:focus-visible { outline: 3px solid rgba(233, 50, 57, .25); outline-offset: -2px; }
.product-configuration { border-top: 1px solid var(--landing-line); grid-column: 1 / -1; padding: 0 14px 14px; }
.product-configuration[hidden] { display: none; }
.product-equipment-quantity { margin-top: 14px; }
.product-choice.unavailable { opacity: .55; }
.product-choice.unavailable .product-choice-select { cursor: not-allowed; }

.service-choice.unavailable { opacity: .5; }
.service-choice.unavailable .service-copy small::after { content: " Kræver Go eller Pro."; font-weight: 800; }
.landing-layout.cart-mode .landing-progress { grid-template-columns: repeat(2, 1fr); }
.landing-layout.cart-mode .landing-progress [data-progress-step="3"],
.landing-layout.cart-mode .landing-progress [data-progress-step="4"] { display: none; }
.landing-layout.cart-mode .landing-progress [data-progress-step="2"]::after { display: none; }

.terminal-choice-intro { align-items: center; background: #f1eee7; border: 1px solid var(--landing-line); border-radius: 12px; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 14px; padding: 13px 15px; }
.terminal-choice-intro strong { font: 800 14px Manrope, sans-serif; white-space: nowrap; }
.terminal-choice-intro span { color: #59635a; font-size: 11px; font-weight: 500; line-height: 1.45; text-align: right; }
.terminal-product-grid { align-items: stretch; }
.terminal-product-choice { min-height: 190px; }
.terminal-none-choice { align-items: center; background: var(--landing-white); border: 1px solid var(--landing-line); border-radius: 12px; cursor: pointer; display: grid; gap: 13px; grid-column: 1 / -1; grid-template-columns: auto 1fr; padding: 15px 17px; position: relative; }
.terminal-none-choice > input { opacity: 0; pointer-events: none; position: absolute; }
.terminal-none-choice > span { background: var(--landing-white); border: 1px solid #c8ccc3; border-radius: 50%; height: 20px; width: 20px; }
.terminal-none-choice:has(input:checked) { background: #fffaf7; border-color: #cf5559; box-shadow: inset 0 0 0 1px #cf5559; }
.terminal-none-choice:has(input:checked) > span { border: 6px solid var(--landing-red); }
.terminal-none-choice:has(input:focus-visible) { outline: 3px solid rgba(233, 50, 57, .25); outline-offset: 2px; }
.terminal-none-choice b { display: block; font: 700 14px Manrope, sans-serif; }
.terminal-none-choice small { color: #5c665d; display: block; font-size: 11px; font-weight: 500; margin-top: 3px; }

.equipment-quantity {
    align-items: center;
    background: #f4f1ea;
    border: 1px solid var(--landing-line);
    border-radius: 12px;
    display: flex;
    gap: 18px;
    justify-content: space-between;
    margin-top: 14px;
    padding: 13px 14px;
}
.equipment-quantity[hidden] { display: none; }
.equipment-quantity label { display: block; font: 700 13px Manrope, sans-serif; }
.equipment-quantity small { color: #606a61; display: block; font-size: 10px; font-weight: 600; line-height: 1.4; margin-top: 3px; }
.quantity-stepper { align-items: center; background: var(--landing-white); border: 1px solid #c9cdc5; border-radius: 10px; display: grid; flex: 0 0 auto; grid-template-columns: 44px 54px 44px; overflow: hidden; }
.quantity-stepper button { background: transparent; border: 0; color: var(--landing-ink); cursor: pointer; font: 500 22px Manrope, sans-serif; height: 44px; padding: 0; }
.quantity-stepper button:hover { background: #ece9e1; }
.quantity-stepper button:disabled { color: #aeb4ad; cursor: not-allowed; }
.quantity-stepper button:disabled:hover { background: transparent; }
.quantity-stepper button:focus-visible { outline: 3px solid rgba(233, 50, 57, .28); outline-offset: -3px; }
.quantity-stepper input { appearance: textfield; background: transparent; border: 0; border-left: 1px solid var(--landing-line); border-right: 1px solid var(--landing-line); color: var(--landing-ink); font: 800 15px Manrope, sans-serif; height: 44px; min-width: 0; padding: 0 4px; text-align: center; width: 54px; }
.quantity-stepper input::-webkit-inner-spin-button { appearance: none; margin: 0; }
.quantity-stepper input:focus { box-shadow: inset 0 0 0 2px var(--landing-red); outline: 0; }

.product-dialog {
    background: transparent;
    border: 0;
    color: var(--landing-ink);
    height: auto;
    margin: auto;
    max-height: calc(100dvh - 38px);
    max-width: 900px;
    padding: 0;
    width: calc(100% - 38px);
}
.product-dialog[open] { animation: product-dialog-in .18s ease both; }
.product-dialog::backdrop { animation: product-dialog-backdrop-in .18s ease both; background: rgba(12, 17, 13, .7); backdrop-filter: blur(5px); }
.product-dialog-shell { background: var(--landing-paper); border: 1px solid rgba(255, 255, 255, .35); border-radius: 22px; box-shadow: 0 28px 90px rgba(7, 12, 8, .35); max-height: calc(100dvh - 38px); overflow: auto; }
.product-dialog-topbar {
    align-items: center;
    background: rgba(255, 253, 248, .94);
    border-bottom: 1px solid var(--landing-line);
    display: flex;
    justify-content: space-between;
    min-height: 58px;
    padding: 0 18px 0 24px;
    position: sticky;
    top: 0;
    z-index: 4;
    backdrop-filter: blur(14px);
}
.product-dialog-topbar > span { color: var(--landing-muted); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.product-dialog-topbar button { align-items: center; background: var(--landing-white); border: 1px solid var(--landing-line); border-radius: 50%; color: var(--landing-ink); cursor: pointer; display: flex; font-size: 21px; height: 34px; justify-content: center; padding: 0 0 2px; width: 34px; }
.product-dialog-topbar button:hover { border-color: #b8bdb4; }
.product-dialog-topbar button:focus-visible { outline: 3px solid rgba(233, 50, 57, .25); outline-offset: 2px; }
.product-dialog-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.product-dialog-gallery { align-content: start; background: #eeeae1; display: grid; gap: 1px; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; padding: 0; }
.product-dialog-gallery figure { align-items: center; background: #f5f2eb; display: flex; margin: 0; min-height: 150px; overflow: hidden; }
.product-dialog-gallery figure.primary { grid-column: 1 / -1; min-height: 350px; }
.product-dialog-gallery img { display: block; height: 100%; max-height: 350px; object-fit: contain; padding: 22px; width: 100%; }
.product-dialog-gallery figure:not(.primary) img { max-height: 170px; padding: 14px; }
.product-dialog-placeholder { justify-content: center; }
.product-dialog-placeholder span { color: #969d95; font: 800 15px Manrope, sans-serif; }
.product-dialog-content { padding: clamp(28px, 5vw, 48px); }
.product-dialog-kicker { color: var(--landing-red-dark); display: block; font-size: 9px; font-weight: 800; letter-spacing: .13em; margin-bottom: 10px; text-transform: uppercase; }
.product-dialog-content h2 { font: 700 clamp(27px, 4vw, 39px)/1.08 Manrope, sans-serif; letter-spacing: -.05em; margin: 0; }
.product-dialog-price { display: block; font: 800 19px Manrope, sans-serif; margin-top: 17px; }
.product-dialog-price small { color: var(--landing-muted); font: 500 9px "DM Sans", sans-serif; }
.product-dialog-prices > span { color: #59635a; display: block; font-size: 12px; font-weight: 700; margin-top: 5px; }
.product-dialog-commercial { border: 1px solid var(--landing-line); border-radius: 13px; margin-top: 19px; overflow: hidden; }
.product-dialog-commercial > span { background: #f1eee7; color: #667067; display: block; font-size: 9px; font-weight: 800; letter-spacing: .08em; padding: 10px 13px; text-transform: uppercase; }
.product-dialog-commercial ul { list-style: none; margin: 0; padding: 0; }
.product-dialog-commercial li { align-items: center; display: flex; gap: 14px; justify-content: space-between; padding: 12px 13px; }
.product-dialog-commercial li + li { border-top: 1px solid var(--landing-line); }
.product-dialog-commercial li > span { min-width: 0; }
.product-dialog-commercial li b { display: block; font-size: 12px; }
.product-dialog-commercial li small { color: var(--landing-muted); display: block; font-size: 10px; line-height: 1.4; margin-top: 2px; }
.product-dialog-commercial li > strong { color: var(--landing-red-dark); flex: 0 0 auto; font-size: 10px; line-height: 1.4; max-width: 170px; text-align: right; }
.product-dialog-commercial > p { border-top: 1px solid var(--landing-line); color: #59635a; font-size: 10px; font-weight: 700; margin: 0; padding: 10px 13px; }
.product-dialog-lead { color: #424c44; font-size: 15px; font-weight: 600; line-height: 1.55; margin: 24px 0 0; }
.product-dialog-description { border-top: 1px solid var(--landing-line); margin-top: 20px; padding-top: 6px; }
.product-dialog-description p { color: #59635a; font-size: 13px; font-weight: 500; line-height: 1.65; margin: 14px 0 0; }
.product-dialog-assurance { align-items: start; background: var(--landing-cream); border-radius: 11px; display: grid; gap: 10px; grid-template-columns: auto 1fr; margin-top: 23px; padding: 13px; }
.product-dialog-assurance > span { align-items: center; border: 1px solid #b7bdb4; border-radius: 50%; display: flex; font-size: 8px; height: 19px; justify-content: center; width: 19px; }
.product-dialog-assurance p { color: #566057; font-size: 11px; font-weight: 500; line-height: 1.5; margin: 1px 0 0; }
.product-dialog-actions { align-items: center; background: var(--landing-paper); border-top: 1px solid var(--landing-line); bottom: 0; display: flex; gap: 10px; justify-content: flex-end; padding: 16px 20px; position: sticky; z-index: 4; }
.product-dialog-actions .secondary { background: transparent; }
html.product-dialog-open { overflow: hidden; }

@keyframes product-dialog-in { from { opacity: 0; transform: translateY(10px) scale(.985); } }
@keyframes product-dialog-backdrop-in { from { opacity: 0; } }

.auto-choice {
    align-items: center;
    background: var(--landing-ink);
    border-radius: 15px;
    color: var(--landing-white);
    display: grid;
    gap: 15px;
    grid-template-columns: auto 1fr auto;
    padding: 19px;
}

.auto-choice.compact { grid-template-columns: auto 1fr; }
.auto-choice-icon { align-items: center; background: var(--landing-red); border-radius: 50%; color: var(--landing-white); display: flex; font-size: 10px; height: 30px; justify-content: center; width: 30px; }
.auto-choice b { display: block; font: 700 15px Manrope, sans-serif; }
.auto-choice p { color: #c1c8c2; font-size: 12px; font-weight: 500; line-height: 1.55; margin: 5px 0 0; }
.auto-choice em { color: #f4b1b4; font: 800 14px Manrope, sans-serif; font-style: normal; text-align: right; }
.equipment-empty { background: var(--landing-cream); border-radius: 12px; color: #59635a; font-size: 13px; font-weight: 500; padding: 18px; }

.restaurant-fields { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.restaurant-fields label > span { align-items: center; display: flex; font-size: 12px; font-weight: 800; justify-content: space-between; margin: 0 2px 8px; text-transform: uppercase; }
.restaurant-fields label > span small { color: #657067; font-size: 10px; font-weight: 600; text-transform: none; }
.restaurant-fields input, .restaurant-fields select {
    appearance: none;
    background: var(--landing-white);
    border: 1px solid var(--landing-line);
    border-radius: 10px;
    color: var(--landing-ink);
    font-size: 14px;
    font-weight: 500;
    min-height: 51px;
    outline: none;
    padding: 0 15px;
    width: 100%;
}

.restaurant-fields select { background-image: linear-gradient(45deg, transparent 50%, #5d655e 50%), linear-gradient(135deg, #5d655e 50%, transparent 50%); background-position: calc(100% - 18px) 22px, calc(100% - 13px) 22px; background-repeat: no-repeat; background-size: 5px 5px, 5px 5px; }
.restaurant-fields input:focus, .restaurant-fields select:focus { border-color: #778077; box-shadow: 0 0 0 3px rgba(78, 92, 80, .1); }
.restaurant-fields input:user-invalid, .restaurant-fields select:user-invalid { border-color: #cf5b5f; }
.restaurant-fields input::placeholder { color: #a1a8a1; }

.landing-review { background: var(--landing-white); border: 1px solid var(--landing-line); border-radius: 15px; overflow: hidden; }
.landing-review-head { align-items: center; background: var(--landing-ink); color: var(--landing-white); display: flex; justify-content: space-between; padding: 16px 18px; }
.landing-review-head span { font: 700 15px Manrope, sans-serif; }
.landing-review-head > div { display: flex; gap: 5px; }
.landing-review-head button { background: transparent; border: 0; color: #ffb5b8; cursor: pointer; font-size: 11px; font-weight: 800; padding: 5px 7px; text-decoration: underline; text-underline-offset: 4px; }
.landing-review-list { display: grid; }
.landing-review-list .summary-line { border-bottom: 1px solid var(--landing-line); padding: 14px 18px; }
.landing-review-list .summary-line > small { color: #59635a; }
.landing-review-list .summary-line-prices strong { color: var(--landing-ink); }
.landing-review-pricing { background: #faf8f3; border-bottom: 1px solid var(--landing-line); padding: 16px 18px; }
.landing-pricing-heading { align-items: end; display: flex; gap: 18px; justify-content: space-between; margin-bottom: 10px; }
.landing-pricing-heading > span { font: 800 13px Manrope, sans-serif; }
.landing-pricing-heading > small { color: #667067; font-size: 9px; line-height: 1.4; max-width: 260px; text-align: right; }
.landing-review-total { align-items: center; display: flex; justify-content: space-between; padding: 17px 18px 10px; }
.landing-review-total[hidden] { display: none; }
.landing-review-total span { color: #59635a; font-size: 12px; font-weight: 600; }
.landing-review-total span small { display: block; font-size: 9px; font-weight: 600; margin-top: 2px; }
.landing-review-total strong { font: 800 18px Manrope, sans-serif; }
.landing-review-pricing .landing-review-total { border-top: 1px solid var(--landing-line); padding: 11px 0; }
.landing-review-pricing .landing-review-total strong { font-size: 15px; }
.landing-quoted-costs { border-top: 1px solid var(--landing-line); margin-top: 3px; padding-top: 13px; }
.landing-quoted-costs > strong { color: #59635a; display: block; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.landing-quoted-costs ul { display: grid; gap: 7px; list-style: none; margin: 10px 0 0; padding: 0; }
.landing-quoted-costs li { align-items: center; display: flex; font-size: 11px; font-weight: 700; gap: 12px; justify-content: space-between; }
.landing-quoted-costs li[hidden] { display: none; }
.landing-quoted-costs li small { color: #667067; font-size: 9px; font-weight: 600; text-align: right; }
.landing-review > small { color: #59635a; display: block; font-size: 11px; font-weight: 500; line-height: 1.5; padding: 0 18px 17px; }

.landing-consents { display: grid; gap: 11px; margin-top: 20px; }
.landing-consents label { align-items: start; color: #4c564d; cursor: pointer; display: grid; font-size: 12px; font-weight: 500; gap: 10px; grid-template-columns: auto 1fr; line-height: 1.55; }
.landing-consents input { accent-color: var(--landing-ink); height: 16px; margin: 0; width: 16px; }
.landing-consents a { font-weight: 700; }
.landing-consents small { color: var(--landing-muted); }

.landing-summary {
    background: #171c18;
    border: 1px solid #333934;
    border-top: 3px solid var(--landing-red);
    border-radius: 20px;
    box-shadow: 0 16px 42px rgba(24, 30, 25, .12);
    color: var(--landing-white);
    overflow: hidden;
    padding: 23px;
    position: sticky;
    top: 98px;
}

.landing-summary-top { align-items: center; border-bottom: 1px solid #353b36; display: flex; justify-content: space-between; padding-bottom: 17px; }
.landing-summary-top > span { font: 700 17px Manrope, sans-serif; letter-spacing: -.015em; }
.landing-summary-top b { background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .08); border-radius: 999px; color: #d4d9d5; font-size: 10px; padding: 6px 9px; text-transform: uppercase; }
.landing-summary-empty { align-items: center; color: #9ca69d; display: flex; gap: 13px; padding: 25px 0; }
.landing-summary-empty > span { align-items: center; border: 1px dashed #4a554c; border-radius: 10px; display: flex; flex: none; height: 38px; justify-content: center; width: 38px; }
.landing-summary-empty p { font-size: 12px; font-weight: 500; line-height: 1.5; margin: 0; }
.landing-summary-list { display: grid; padding: 8px 0; }
.summary-line { align-items: center; display: grid; gap: 2px 11px; grid-template-columns: auto 1fr auto; padding: 11px 0; }
.landing-summary-list .summary-line + .summary-line { border-top: 1px solid rgba(255, 255, 255, .07); }
.summary-line > i { align-items: center; background: #292f2a; border: 1px solid #3c443d; border-radius: 8px; color: #ef9a9e; display: flex; font-size: 9px; font-style: normal; grid-row: 1 / 3; height: 28px; justify-content: center; width: 28px; }
.summary-line > b { font-size: 12px; font-weight: 700; }
.summary-line > small { color: #acb5ad; font-size: 10px; font-weight: 500; line-height: 1.35; }
.summary-line-prices { align-items: flex-end; align-self: center; display: flex; flex-direction: column; gap: 3px; grid-column: 3; grid-row: 1 / 3; max-width: 145px; text-align: right; }
.summary-line-prices strong { font-size: 10px; line-height: 1.25; }
.landing-summary-pricing[hidden] { display: none; }
.landing-summary-price { align-items: center; border-top: 1px solid #353b36; display: flex; justify-content: space-between; padding: 17px 0; }
.landing-summary-price[hidden] { display: none; }
.landing-summary-price span { color: #b5bdb6; font-size: 11px; font-weight: 600; }
.landing-summary-price span small { display: block; font-size: 8px; margin-top: 2px; }
.landing-summary-price strong { font: 800 16px Manrope, sans-serif; }
.landing-summary-note { align-items: start; background: rgba(255, 255, 255, .045); border: 1px solid rgba(255, 255, 255, .07); border-radius: 11px; display: grid; gap: 10px; grid-template-columns: auto 1fr; padding: 13px; }
.landing-summary-note i { align-items: center; border: 1px solid #636b64; border-radius: 50%; color: #cbd1cc; display: flex; font-size: 8px; font-style: normal; height: 19px; justify-content: center; width: 19px; }
.landing-summary-note p { color: #b1bab2; font-size: 11px; font-weight: 500; line-height: 1.5; margin: 0; }
.landing-summary-note b { color: var(--landing-white); display: block; font-size: 12px; margin-bottom: 4px; }
.landing-help { align-items: center; display: flex; font-size: 11px; justify-content: space-between; margin-top: 17px; }
.landing-help span { color: #89948b; }
.landing-help a { color: var(--landing-white); font-weight: 800; text-decoration: underline; text-decoration-color: #666e67; text-underline-offset: 4px; }

.landing-success {
    background: var(--landing-paper);
    border: 1px solid var(--landing-line);
    border-radius: 28px;
    box-shadow: var(--landing-shadow);
    margin: 4vh auto;
    max-width: 850px;
    padding: clamp(42px, 8vw, 90px);
    text-align: center;
}

.landing-success-mark { align-items: center; background: var(--landing-red); border-radius: 50%; color: var(--landing-white); display: flex; font-size: 24px; height: 62px; justify-content: center; margin: 0 auto 25px; width: 62px; }
.landing-success > span { color: var(--landing-red-dark); display: block; font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.landing-success h1 { font-size: clamp(40px, 6vw, 66px); margin-top: 15px; }
.landing-success > p { color: var(--landing-muted); line-height: 1.7; margin: 24px auto 26px; max-width: 580px; }
.landing-success-reference { background: var(--landing-white); border: 1px solid var(--landing-line); border-radius: 14px; margin: 0 auto 16px; max-width: 460px; padding: 16px 20px; }
.landing-success-reference > span { color: var(--landing-muted); display: block; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.landing-success-reference > strong { display: block; font: 800 22px Manrope, sans-serif; letter-spacing: .04em; margin-top: 5px; }
.landing-success-reference > small { color: var(--landing-muted); display: block; font-size: 10px; line-height: 1.45; margin-top: 5px; }
.landing-success-next { background: #f1eee7; border: 1px solid var(--landing-line); border-radius: 14px; margin: 0 auto 26px; max-width: 580px; padding: 19px 21px; text-align: left; }
.landing-success-next h2 { font: 700 16px Manrope, sans-serif; margin: 0 0 13px; }
.landing-success-next ol { display: grid; gap: 11px; list-style: none; margin: 0; padding: 0; }
.landing-success-next li { align-items: start; display: grid; gap: 11px; grid-template-columns: 27px 1fr; }
.landing-success-next li > span { align-items: center; background: var(--landing-ink); border-radius: 50%; color: var(--landing-white); display: flex; font-size: 9px; font-weight: 800; height: 27px; justify-content: center; width: 27px; }
.landing-success-next li p { margin: 0; }
.landing-success-next li b { display: block; font-size: 12px; }
.landing-success-next li small { color: var(--landing-muted); display: block; font-size: 10px; line-height: 1.45; margin-top: 3px; }
.landing-success-next > p { border-top: 1px solid var(--landing-line); color: var(--landing-muted); font-size: 10px; line-height: 1.5; margin: 15px 0 0; padding-top: 13px; }
.landing-success-next a { color: var(--landing-ink); font-weight: 800; text-underline-offset: 2px; }
.landing-success > div:last-child { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }

.site-footer { background: #0c110d; color: var(--landing-white); display: grid; gap: clamp(38px, 5vw, 64px); grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr)); padding: 58px max(32px, calc((100vw - 1176px) / 2)) 24px; }
.footer-logo { display: inline-flex; }
.footer-logo img { display: block; height: 43px; object-fit: contain; object-position: left center; width: 150px; }
.footer-brand p { color: #9ba49d; font-size: 13px; line-height: 1.55; margin: 22px 0 0; max-width: 230px; }
.site-footer > div:not(.footer-brand):not(.footer-bottom) { display: flex; flex-direction: column; gap: 10px; }
.site-footer strong { font-size: 11px; margin-bottom: 7px; text-transform: uppercase; }
.site-footer a, .site-footer span { color: #aeb6b0; font-size: 12px; line-height: 1.5; text-decoration: none; }
.site-footer a:hover { color: var(--landing-white); }
.footer-bottom { align-items: center; border-top: 1px solid #2d352f; display: flex; gap: 24px; grid-column: 1 / -1; justify-content: space-between; padding-top: 24px; }
.footer-bottom > div { align-items: center; display: flex; gap: 18px; }
.footer-bottom button { background: none; border: 0; color: #aeb6b0; cursor: pointer; font: inherit; font-size: 12px; padding: 0; }
.footer-bottom button:hover { color: var(--landing-white); }

.cookie-consent[hidden] { display: none; }
.cookie-consent { align-items: end; background: var(--landing-paper); border: 1px solid var(--landing-line); border-radius: 16px; bottom: 18px; box-shadow: 0 20px 60px rgba(16, 23, 18, .2); display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr) auto; left: 50%; max-width: 820px; padding: 22px; position: fixed; transform: translateX(-50%); width: calc(100% - 28px); z-index: 100; }
.cookie-consent > div:first-child > span { color: var(--landing-red); font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.cookie-consent h2 { font: 700 20px Manrope, sans-serif; letter-spacing: -.035em; margin: 6px 0 7px; }
.cookie-consent p { color: var(--landing-muted); font-size: 11px; line-height: 1.55; margin: 0 0 7px; max-width: 570px; }
.cookie-consent a { font-size: 10px; font-weight: 800; }
.cookie-consent-actions { display: flex; gap: 8px; }
.cookie-consent-actions button { background: var(--landing-cream); border: 0; border-radius: 8px; color: var(--landing-ink); cursor: pointer; font-size: 10px; font-weight: 800; padding: 12px 14px; white-space: nowrap; }
.cookie-consent-actions button.accept { background: var(--landing-red); color: var(--landing-white); }

@media (max-width: 1050px) {
    .landing-page { padding-top: 46px; }
    .landing-intro { align-items: start; gap: 24px; grid-template-columns: 1fr; }
    .landing-intro > p { max-width: 680px; }
    .landing-layout { grid-template-columns: minmax(0, 1fr) 285px; }
    .plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hardware-only-choice { grid-column: 1 / -1; min-height: 0; }
    .product-choice-grid { grid-template-columns: 1fr; }
    .commercial-option-grid { grid-template-columns: 1fr; }
    .site-footer { grid-template-columns: 1.3fr repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
    .landing-header { padding: 0 20px; }
    .landing-header-inner { grid-template-columns: 1fr auto; min-height: 74px; }
    .landing-header-context, .landing-header-help { display: none; }
    .landing-layout { display: flex; flex-direction: column; }
    .landing-wizard { width: 100%; }
    .landing-summary { order: -1; padding: 17px 19px; position: static; width: 100%; }
    .landing-summary-note, .landing-help { display: none; }
    .landing-summary-list { gap: 5px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .landing-summary-price { padding-bottom: 2px; }
    .site-footer { gap: 34px 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 48px 20px 22px; }
    .footer-brand, .footer-contact, .footer-bottom { grid-column: 1 / -1; }
    .footer-bottom { align-items: flex-start; flex-direction: column; }
    .product-dialog { max-height: calc(100dvh - 20px); width: calc(100% - 20px); }
    .product-dialog-shell { max-height: calc(100dvh - 20px); }
    .product-dialog-layout { grid-template-columns: 1fr; }
    .product-dialog-gallery figure.primary { min-height: 280px; }
    .product-dialog-gallery img { max-height: 280px; }
}

@media (max-width: 650px) {
    .landing-header-inner { min-height: 68px; }
    .landing-brand img { height: 30px; width: 122px; }
    .landing-exit > span { display: none; }
    .landing-exit { gap: 0; min-height: 40px; padding: 4px; }
    .landing-page { padding: 34px 14px 60px; }
    .landing-intro { margin-bottom: 28px; }
    .landing-intro h1 { font-size: clamp(39px, 12vw, 55px); }
    .landing-intro > p { font-size: 14px; }
    .landing-success { border-radius: 20px; padding: 38px 18px; }
    .landing-success h1 { font-size: clamp(36px, 12vw, 48px); }
    .landing-success-reference { padding: 15px; }
    .landing-success-next { padding: 17px 15px; }
    .landing-success > div:last-child { align-items: stretch; flex-direction: column; }
    .landing-progress { gap: 5px; padding: 14px 16px; }
    .landing-progress li { gap: 0; justify-content: center; }
    .landing-progress li > div { display: none; }
    .landing-progress li::after { right: -17px; top: 15px; width: 34px; }
    .landing-progress li > span { height: 30px; width: 30px; }
    .landing-step { padding: 30px 18px 22px; }
    .landing-step-heading { margin-bottom: 25px; }
    .landing-step-heading h2 { font-size: 32px; }
    .service-grid { grid-template-columns: 1fr; }
    .service-choice { min-height: 165px; }
    .plan-grid { grid-template-columns: 1fr; }
    .hardware-only-choice { grid-column: auto; }
    .plan-choice { min-height: 0; }
    .plan-billing { grid-template-columns: 1fr 1fr; }
    .plan-billing legend { grid-column: 1 / -1; padding: 2px; }
    .commercial-options { padding: 14px; }
    .equipment-planning { grid-template-columns: 1fr; margin-bottom: 28px; padding: 15px; }
    .equipment-scope { grid-template-columns: 1fr 1fr; }
    .product-choice { grid-template-columns: 90px 1fr; }
    .terminal-choice-intro { align-items: start; flex-direction: column; gap: 5px; }
    .terminal-choice-intro span { text-align: left; }
    .equipment-heading { align-items: start; flex-direction: column; gap: 6px; }
    .equipment-heading p { text-align: left; }
    .equipment-quantity { align-items: flex-start; flex-direction: column; }
    .quantity-stepper { align-self: stretch; grid-template-columns: 48px minmax(54px, 1fr) 48px; }
    .quantity-stepper input { width: 100%; }
    .restaurant-fields { grid-template-columns: 1fr; }
    .landing-review-head { align-items: flex-start; flex-direction: column; gap: 7px; }
    .landing-review-head > div { margin-left: -7px; }
    .landing-step-actions { align-items: stretch; flex-wrap: wrap; }
    .landing-step-actions > span { flex-basis: 100%; }
    .landing-step-actions .primary { flex: 1; }
    .landing-step-actions .text { order: 2; }
    .landing-step-actions.final .text { order: 0; }
    .landing-summary-list { grid-template-columns: 1fr; }
    .cookie-consent { align-items: stretch; bottom: 9px; gap: 16px; grid-template-columns: 1fr; padding: 18px; width: calc(100% - 18px); }
    .cookie-consent-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .cookie-consent-actions button { white-space: normal; }
    .product-dialog { margin-bottom: 0; max-height: calc(100dvh - 8px); width: calc(100% - 8px); }
    .product-dialog-shell { border-radius: 18px 18px 0 0; max-height: calc(100dvh - 8px); }
    .product-dialog-gallery figure.primary { min-height: 240px; }
    .product-dialog-gallery figure:not(.primary) { min-height: 110px; }
    .product-dialog-gallery img { max-height: 240px; padding: 17px; }
    .product-dialog-gallery figure:not(.primary) img { max-height: 125px; padding: 10px; }
    .product-dialog-content { padding: 28px 20px; }
    .product-dialog-commercial li { align-items: flex-start; flex-direction: column; gap: 7px; }
    .product-dialog-commercial li > strong { max-width: none; text-align: left; }
    .product-dialog-actions { align-items: stretch; display: grid; grid-template-columns: 1fr; padding: 13px; }
    .product-dialog-actions .secondary { order: 2; }
    .product-dialog-actions .landing-button { min-height: 48px; }
}

@media (max-width: 420px) {
    .site-footer { grid-template-columns: 1fr; }
    .site-footer > div { grid-column: 1; }
    .footer-bottom > div { align-items: flex-start; flex-direction: column; gap: 10px; }
}

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