.co-page {
    padding: 18px 14px 28px;
    overflow-x: clip;
    --co-accent: var(--wx-primary, var(--theme-primary, #16a34a));
    --co-accent-soft: color-mix(in srgb, var(--co-accent) 12%, #ffffff);
    --co-ink: #0f172a;
    --co-muted: #64748b;
    --co-border: rgba(15, 23, 42, .10);
}

.co-wrap {
    max-width: 1120px;
    margin: 0 auto;
    overflow-x: clip;
}

.co-grid,
.co-form,
.co-summaryCol,
.co-section,
.co-tiles,
.co-tiles--scroll,
.co-addr3,
.co-addr4,
.co-grid2,
.co-grid3 {
    min-width: 0;
}

.co-page * {
    box-sizing: border-box;
}

.co-page input,
.co-page select,
.co-page textarea {
    width: 100%;
    max-width: 100%;
}

/* Checkout mezők: tenant theme-től függetlenül mindig látható beírt szöveg */
.co-page input[type="text"],
.co-page input[type="email"],
.co-page input[type="tel"],
.co-page input[type="number"],
.co-page input[type="search"],
.co-page input[type="password"],
.co-page select,
.co-page textarea {
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    caret-color: #0f172a;
}

.co-page input::placeholder,
.co-page textarea::placeholder {
    color: rgba(100, 116, 139, .86) !important;
    -webkit-text-fill-color: rgba(100, 116, 139, .86) !important;
}

.co-page input:disabled,
.co-page select:disabled,
.co-page textarea:disabled {
    color: rgba(100, 116, 139, .92) !important;
    -webkit-text-fill-color: rgba(100, 116, 139, .92) !important;
}

/* iOS: input zoom elkerülése */
@media (max-width: 720px) {

    .co-page input,
    .co-page select,
    .co-page textarea {
        font-size: 15px;
    }
}

.co-head {
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(15, 23, 42, .10);
    margin-bottom: 12px;
}

.co-title {
    margin: 0 0 4px;
    font-size: clamp(24px, 3vw, 34px);
    font-weight: 650;
    letter-spacing: 0;
    color: rgba(17, 24, 39, .96);
}

.co-subtitle {
    margin: 0;
    max-width: 620px;
    font-size: 14px;
    line-height: 1.5;
    color: rgba(107, 114, 128, 1);
}

.co-alert {
    margin: 10px 0;
    padding: 10px 12px;
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 12px;
    background: rgba(255, 255, 255, .92);
    word-break: break-word;
}

.co-alert--error {
    border-color: rgba(239, 68, 68, .25);
    background: rgba(254, 242, 242, .92);
}

.co-alert--success {
    border-color: rgba(34, 197, 94, .25);
    background: rgba(240, 253, 244, .92);
}

.co-empty {
    padding: 16px 0;
}

.co-empty__text {
    margin: 0 0 12px;
    color: rgba(107, 114, 128, 1);
}

.co-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 14px;
    margin-top: 14px;
    align-items: start;
}

@media (max-width: 1024px) {
    .co-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---------------------------------------------------------
   FORM / SECTIONS
--------------------------------------------------------- */
.co-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.co-section {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    padding: 16px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .92);
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 14px 36px rgba(15, 23, 42, .05);
}

.co-section--hero {
    border-color: color-mix(in srgb, var(--co-accent) 22%, rgba(15, 23, 42, .08));
    background: linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(248, 250, 252, .94));
}

.co-section--final {
    border-color: color-mix(in srgb, var(--co-accent) 26%, rgba(15, 23, 42, .10));
}

.co-sectionBody {
    min-width: 0;
}

.co-stepMark {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: var(--co-accent-soft);
    color: color-mix(in srgb, var(--co-accent) 78%, #052e16);
    border: 1px solid color-mix(in srgb, var(--co-accent) 30%, transparent);
    font-weight: 900;
    font-size: 13px;
}

.co-sectionTitle {
    margin: 0;
    font-size: 18px;
    line-height: 1.25;
    font-weight: 850;
    letter-spacing: 0;
    color: var(--co-ink);
}

.co-sectionHint {
    margin: 4px 0 14px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--co-muted);
}

@media (max-width: 560px) {
    .co-section {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        padding: 14px;
        border-radius: 14px;
    }

    .co-stepMark {
        width: 30px;
        height: 30px;
    }
}

/* ---------------------------------------------------------
   MOBILE ACCORDION (UX)
--------------------------------------------------------- */
.co-acc {
    padding: 0;
    overflow: hidden;
}

.co-accBtn {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 6px 10px;
    align-items: center;

    padding: 12px 12px;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;

    color: rgba(17, 24, 39, .96);
}

.co-accBtn:focus-visible {
    outline: 2px solid rgba(34, 197, 94, .28);
    outline-offset: 2px;
    border-radius: 14px;
}

.co-accTitle {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0;
}

.co-accMeta {
    grid-column: 1 / -1;
    margin-top: -2px;
    font-size: 11px;
    color: rgba(107, 114, 128, 1);
}

.co-accChevron {
    width: 18px;
    height: 18px;
    border-radius: 999px;
    position: relative;
    opacity: .75;
}

.co-accChevron::before,
.co-accChevron::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 10px;
    height: 2px;
    background: rgba(15, 23, 42, .65);
    transform: translate(-50%, -50%);
    border-radius: 2px;
}

.co-accChevron::after {
    transform: translate(-50%, -50%) rotate(90deg);
    transition: transform 160ms ease;
}

.co-acc.is-open .co-accChevron::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

.co-accPanel {
    padding: 0 12px 12px;
}

.co-accActions {
    margin-top: 12px;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.co-nextBtn {
    appearance: none;
    border: 1px solid rgba(15, 23, 42, .12);
    background: rgba(248, 250, 252, .95);
    color: rgba(15, 23, 42, 1);
    border-radius: 14px;
    padding: 10px 14px;
    min-height: 44px;
    font-weight: 750;
    cursor: pointer;
    transition: transform 120ms ease, border-color 140ms ease, background 140ms ease;
}

@media (hover: hover) and (pointer: fine) {
    .co-nextBtn:hover {
        transform: translateY(-1px);
    }
}

@media (max-width: 1024px) {
    .co-accBtn {
        padding: 14px 12px;
    }

    .co-nextBtn {
        width: 100%;
        justify-content: center;
    }

    .co-accActions {
        justify-content: stretch;
    }
}

@media (min-width: 1025px) {
    .co-accChevron {
        display: none;
    }

    .co-accBtn {
        cursor: default;
    }
}

/* ---------------------------------------------------------
   GRIDS
--------------------------------------------------------- */
.co-grid3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

@media (max-width: 820px) {
    .co-grid3 {
        grid-template-columns: minmax(0, 1fr);
    }
}

.co-grid2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

@media (max-width: 720px) {
    .co-grid2 {
        grid-template-columns: minmax(0, 1fr);
    }
}

.co-addr3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

@media (max-width: 820px) {
    .co-addr3 {
        grid-template-columns: minmax(0, 1fr);
    }
}

.co-addr4 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

@media (max-width: 980px) {
    .co-addr4 {
        grid-template-columns: minmax(0, 1fr);
    }
}

.co-addr4.is-hidden {
    display: none;
}

.co-toggle {
    margin-bottom: 10px;
}

.co-check {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    line-height: 1.35;
    cursor: pointer;
    user-select: none;
    max-width: 100%;
}

.co-check span {
    min-width: 0;
    word-break: break-word;
}

.co-check input[type="checkbox"] {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    accent-color: var(--co-accent);
}

.co-check--mini {
    margin-top: 10px;
    font-size: 12px;
}

.co-note {
    margin: 8px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: rgba(107, 114, 128, 1);
}

/* ---------------------------------------------------------
   TILES (shipping/payment)
--------------------------------------------------------- */
.co-tiles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

@media (max-width: 680px) {
    .co-tiles {
        grid-template-columns: minmax(0, 1fr);
    }
}

.co-tiles--scroll {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

@media (max-width: 860px) {
    .co-tiles--scroll {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .co-tiles--scroll {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 680px) {
    .co-tiles--shipping .co-tile {
        min-height: 72px;
        padding: 14px;
    }
}

.co-tile {
    position: relative;
    display: block;
    border-radius: 14px;
    background: rgba(249, 250, 251, .95);
    border: 1px solid rgba(148, 163, 184, .38);
    cursor: pointer;
    padding: 14px;
    transition: border-color 140ms ease, box-shadow 140ms ease, transform 120ms ease, background 140ms ease;
    min-height: 76px;
    min-width: 0;
}

@media (hover: hover) and (pointer: fine) {
    .co-tile:hover {
        transform: translateY(-1px);
    }
}

.co-tile input[type="radio"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    /* pointer-events: NE tiltsuk, mobilon emiatt néha nem vált biztosan */
}

.co-tile:focus-within {
    outline: 2px solid rgba(34, 197, 94, .30);
    outline-offset: 2px;
}

.co-tile.is-active {
    border-color: color-mix(in srgb, var(--co-accent) 72%, #ffffff);
    background: var(--co-accent-soft);
    box-shadow: 0 12px 30px color-mix(in srgb, var(--co-accent) 18%, transparent);
}

/* Fallback: ha JS nem fut, akkor is látszódjon a kiválasztás (modern böngészők) */
.co-tile:has(input[type="radio"]:checked) {
    border-color: color-mix(in srgb, var(--co-accent) 72%, #ffffff);
    background: var(--co-accent-soft);
    box-shadow: 0 12px 30px color-mix(in srgb, var(--co-accent) 18%, transparent);
}

.co-tileTop {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
}

.co-tileTitleWrap {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.co-tileTitle {
    font-weight: 800;
    font-size: 14px;
    line-height: 1.3;
    color: rgba(15, 23, 42, 1);
    min-width: 0;
    word-break: break-word;
}

.co-carrierBadge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 19px;
    padding: 0 8px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .03em;
}

.co-carrierBadge--gls {
    background: rgba(30, 64, 175, .10);
    color: rgba(30, 64, 175, 1);
    border-color: rgba(30, 64, 175, .25);
}

.co-carrierBadge--mpl {
    background: rgba(180, 83, 9, .10);
    color: rgba(180, 83, 9, 1);
    border-color: rgba(180, 83, 9, .25);
}

.co-carrierBadge--foxpost {
    background: rgba(190, 24, 93, .10);
    color: rgba(190, 24, 93, 1);
    border-color: rgba(190, 24, 93, .28);
}

.co-carrierBadge--csomagpiac {
    background: rgba(14, 116, 144, .10);
    color: rgba(14, 116, 144, 1);
    border-color: rgba(14, 116, 144, .28);
}

.co-tilePrice {
    font-weight: 800;
    font-size: 14px;
    color: rgba(17, 24, 39, 1);
    white-space: nowrap;
}

.co-tileAmount {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 9px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .06);
    color: rgba(15, 23, 42, .92);
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.co-tile.is-active .co-tileAmount,
.co-tile:has(input[type="radio"]:checked) .co-tileAmount {
    background: color-mix(in srgb, var(--co-accent) 14%, #ffffff);
    color: color-mix(in srgb, var(--co-accent) 78%, #111827);
}

.co-tileMeta {
    margin-top: 7px;
    font-size: 12px;
    line-height: 1.3;
    font-weight: 800;
    color: rgba(55, 65, 81, .88);
}

.co-tileDesc {
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.4;
    color: rgba(107, 114, 128, 1);
    word-break: break-word;
}

/* ---------------------------------------------------------
   ACCOUNT + SUBMIT
--------------------------------------------------------- */
.co-account {
    margin-top: 10px;
    padding: 12px;
    border-radius: 14px;
    border: 1px dashed rgba(148, 163, 184, .65);
    background: rgba(248, 250, 252, .95);
}

.co-accountFields {
    margin-top: 10px;
}

.co-accountFields.is-hidden {
    display: none;
}

.co-footnote {
    margin: 12px 0 0;
    font-size: 11px;
    color: rgba(107, 114, 128, 1);
}

.co-submit {
    width: 100%;
    justify-content: center;
    margin-top: 10px;
    border-radius: 14px;
    min-height: 54px;
    font-size: 16px;
    font-weight: 900;
}

@media (max-width: 1024px) {
    .co-submit {
        display: none;
    }
}

/* ---------------------------------------------------------
   SUMMARY
--------------------------------------------------------- */
.co-summaryCol {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.co-summary {
    position: sticky;
    top: .75rem;
    border-radius: 16px;
    border: 1px solid rgba(15, 23, 42, .10);
    background: rgba(255, 255, 255, .90);
    padding: 12px;
    min-width: 0;
}

@media (max-width: 1024px) {
    .co-summary {
        position: static;
    }
}

.co-sumTitle {
    margin: 0 0 8px;
    font-size: 13px;
    font-weight: 800;
    color: rgba(17, 24, 39, .96);
}

.co-lines {
    border-top: 1px solid rgba(15, 23, 42, .08);
    padding-top: 10px;
    margin-top: 6px;
}

.co-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-top: 1px solid rgba(15, 23, 42, .06);
    min-width: 0;
}

.co-line:first-child {
    border-top: 0;
    padding-top: 0;
}

.co-lineLeft {
    min-width: 0;
}

.co-lineName {
    font-weight: 650;
    font-size: 12px;
    color: rgba(17, 24, 39, .96);
    word-break: break-word;
}

.co-lineMeta {
    margin-top: 2px;
    font-size: 11px;
    color: rgba(107, 114, 128, 1);
}

.co-lineRight {
    white-space: nowrap;
    font-weight: 750;
    color: rgba(17, 24, 39, .92);
    flex: 0 0 auto;
}

.co-totals {
    border-top: 1px solid rgba(15, 23, 42, .08);
    margin-top: 10px;
    padding-top: 10px;
}

.co-totalRow {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 7px 0;
    color: rgba(17, 24, 39, .92);
}

.co-totalRow--discount {
    color: rgba(180, 83, 9, 1);
}

.co-totalRow--grand {
    margin-top: 8px;
    padding-top: 12px;
    border-top: 1px solid rgba(15, 23, 42, .10);
    font-size: 14px;
}

@media (max-width: 1024px) {
    .co-totalRow--grand {
        display: flex;
    }
}

.co-sumNote {
    margin: 10px 0 0;
    font-size: 11px;
    color: rgba(107, 114, 128, 1);
}

/* ---------------------------------------------------------
   MOBILE FIX BAR (easy navigation)
--------------------------------------------------------- */
.co-mobileBar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;

    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: transparent;
    border-top: 0;
    box-shadow: none;
    pointer-events: none;
}

.co-mobileBarInner {
    max-width: 1120px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    align-items: center;
}

.co-mobileBarLeft {
    display: none;
}

.co-mobileBarLabel {
    font-size: 11px;
    color: rgba(107, 114, 128, 1);
}

.co-mobileBarTotal {
    font-size: 15px;
    font-weight: 900;
    color: rgba(17, 24, 39, .96);
    letter-spacing: 0;
}

.co-mobileBarBtn {
    appearance: none;
    border: 1px solid color-mix(in srgb, var(--co-accent) 56%, transparent);
    background: var(--co-accent);
    color: #fff;
    border-radius: 14px;
    padding: 12px 18px;
    min-height: 48px;
    font-weight: 850;
    cursor: pointer;
    white-space: nowrap;
    width: 100%;
    pointer-events: auto;
}

.co-mobileBarBtn:disabled {
    opacity: .58;
    cursor: not-allowed;
}

@media (min-width: 1025px) {
    .co-mobileBar {
        display: none !important;
    }
}

/* hogy a fix sáv ne takarjon alul semmit mobilon */
@media (max-width: 1024px) {
    .co-page {
        padding-bottom: 96px;
    }
}

/* ---------------------------------------------------------
   PICKUP (GLS / FOXPOST) + MODAL
--------------------------------------------------------- */

.co-glsPoint {
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 14px;
    padding: 12px 14px;
    background: rgba(248, 250, 252, .95);
    margin-top: 12px;
}

.co-glsPointRow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.co-glsPointTitle {
    font-weight: 850;
    margin-bottom: 2px;
    color: rgba(15, 23, 42, 1);
}

.co-glsPointValue {
    font-size: 12px;
    color: rgba(107, 114, 128, 1);
    word-break: break-word;
}

@media (max-width: 680px) {
    .co-glsPointRow {
        flex-direction: column;
        align-items: stretch;
    }
}

.co-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 14px;
    border-radius: 14px;
    border: 1px solid rgba(15, 23, 42, .12);
    background: rgba(248, 250, 252, .95);
    color: rgba(15, 23, 42, 1);
    font-weight: 850;
    cursor: pointer;
    white-space: nowrap;
    transition: transform 120ms ease, border-color 140ms ease, background 140ms ease;
}

.co-btn--sm {
    min-height: 38px;
    padding: 8px 12px;
    border-radius: 12px;
    font-weight: 800;
}

.co-btn:focus-visible {
    outline: 2px solid rgba(34, 197, 94, .28);
    outline-offset: 2px;
}

@media (hover: hover) and (pointer: fine) {
    .co-btn:hover {
        transform: translateY(-1px);
        background: rgba(241, 245, 249, .98);
    }
}

.co-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 14000;
    display: grid;
    place-items: center;
    padding: 16px;
    width: 100vw;
    min-height: 100vh;
    min-height: 100dvh;
    margin: 0 !important;
    transform: none !important;
    overflow: hidden;
    isolation: isolate;
}

.co-modal[hidden] {
    display: none;
}

.co-modal,
.co-modal * {
    box-sizing: border-box;
}

.co-modal input,
.co-modal button {
    font: inherit;
}

.co-modal input[type="text"],
.co-modal input[type="search"] {
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    caret-color: #0f172a;
}

.co-modal input::placeholder {
    color: rgba(100, 116, 139, .86) !important;
    -webkit-text-fill-color: rgba(100, 116, 139, .86) !important;
}

.co-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .45);
    backdrop-filter: blur(2px);
}

.co-modal__panel {
    position: relative;
    width: min(920px, 100%);
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    min-height: 0;
    overflow: hidden;
    border-radius: 16px;
    border: 1px solid rgba(15, 23, 42, .12);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 30px 80px rgba(15, 23, 42, .28);
    display: flex;
    flex-direction: column;
}

.co-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.co-modal__title {
    font-weight: 900;
    font-size: 13px;
    color: rgba(15, 23, 42, 1);
}

.co-modal__close {
    appearance: none;
    border: 1px solid rgba(15, 23, 42, .12);
    background: rgba(248, 250, 252, .95);
    border-radius: 12px;
    min-height: 40px;
    width: 40px;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    display: grid;
    place-items: center;
    color: rgba(15, 23, 42, .9);
}

.co-modal__body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.co-foxpost-frame {
    width: 100%;
    height: 70vh;
    border: 0;
    display: block;
}

.co-foxModalBody {
    padding: 12px 14px;
}

.co-foxResults {
    margin-top: 10px;
    display: grid;
    gap: 8px;
    max-height: 58vh;
    overflow: auto;
}

.co-cspModalBody {
    padding: 12px 14px;
}

.co-cspSearchRow {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    align-items: center;
    margin-bottom: 10px;
}

.co-cspSearchInput {
    width: 100%;
    border-radius: 12px;
    border: 1px solid rgba(15, 23, 42, .12);
    padding: 10px 12px;
    min-height: 40px;
    background: rgba(255, 255, 255, .98);
}

.co-cspResults {
    margin-top: 10px;
    display: grid;
    gap: 8px;
    max-height: 58vh;
    overflow: auto;
}

.co-cspItem {
    appearance: none;
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 12px;
    background: rgba(248, 250, 252, .96);
    text-align: left;
    padding: 10px 12px;
    display: grid;
    gap: 4px;
    cursor: pointer;
}

.co-cspItemTitle {
    font-size: 12px;
    font-weight: 850;
    color: rgba(15, 23, 42, 1);
}

.co-cspItemMeta {
    font-size: 11px;
    color: rgba(71, 85, 105, 1);
}

.co-cspActions {
    margin-top: 10px;
    display: flex;
    justify-content: flex-end;
}

html.is-modalOpen,
body.is-modalOpen {
    overflow: hidden;
}

body.is-modalOpen {
    width: 100%;
    overscroll-behavior: contain;
    touch-action: none;
}

body.is-modalOpen .co-mobileBar {
    pointer-events: none;
}

/* ---------------------------------------------------------
   GLS modal / widget (saját full-screen host)
--------------------------------------------------------- */
.co-modal--gls {
    z-index: 14000;
    padding-top: max(10px, env(safe-area-inset-top));
    padding-right: max(10px, env(safe-area-inset-right));
    padding-bottom: max(10px, env(safe-area-inset-bottom));
    padding-left: max(10px, env(safe-area-inset-left));
}

.co-modal__panel--gls {
    width: min(1320px, 100%);
    max-height: none;
    height: calc(100dvh - max(20px, env(safe-area-inset-top)) - max(20px, env(safe-area-inset-bottom)));
}

.co-modal__body--gls {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    background: #fff;
}

.co-modal__body--gls gls-dpm {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 560px;
    color: #0f172a !important;
    color-scheme: light !important;
    font-size: 14px;
    line-height: 1.35;
    isolation: isolate;
}

@media (max-width: 1024px) {
    .co-modal,
    body.ui-v2.page-checkout .co-modal {
        align-items: stretch !important;
        justify-items: stretch !important;
        place-items: stretch !important;
        width: 100vw !important;
        height: 100dvh !important;
        min-height: 100dvh !important;
        padding: 0 !important;
    }

    .co-modal__overlay {
        background: rgba(15, 23, 42, .58);
        backdrop-filter: none;
    }

    .co-modal__panel,
    body.ui-v2.page-checkout .co-modal__panel {
        width: 100% !important;
        max-width: none !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .co-modal__head,
    body.ui-v2.page-checkout .co-modal__head {
        min-height: 58px;
        padding: max(10px, env(safe-area-inset-top)) 12px 10px !important;
        background: rgba(255, 255, 255, .98);
        position: sticky;
        top: 0;
        z-index: 3;
    }

    .co-modal__title,
    body.ui-v2.page-checkout .co-modal__title {
        font-size: 15px !important;
        line-height: 1.25;
    }

    .co-modal__close,
    body.ui-v2.page-checkout .co-modal__close {
        width: 46px !important;
        min-width: 46px;
        min-height: 46px !important;
        border-radius: 999px !important;
        font-size: 24px !important;
    }

    .co-modal__body {
        flex: 1 1 auto;
        min-height: 0;
    }

    .co-modal--pickup .co-modal__panel {
        background: #fff;
    }

    .co-foxModalBody,
    .co-cspModalBody {
        display: flex;
        flex-direction: column;
        gap: 10px;
        height: 100%;
        padding: 12px 12px max(18px, env(safe-area-inset-bottom)) !important;
        overflow: hidden;
    }

    .co-cspSearchRow {
        grid-template-columns: 1fr;
        gap: 8px;
        position: sticky;
        top: 0;
        z-index: 2;
        padding-bottom: 8px;
        background: #fff;
    }

    .co-cspSearchInput {
        min-height: 48px;
        font-size: 16px;
        border-radius: 14px;
    }

    .co-cspSearchRow .co-btn {
        width: 100%;
        min-height: 46px;
    }

    .co-foxResults,
    .co-cspResults {
        flex: 1 1 auto;
        min-height: 0;
        max-height: none !important;
        overflow: auto;
        padding-bottom: 8px;
        overscroll-behavior: contain;
    }

    .co-cspItem {
        min-height: 66px;
        padding: 13px 14px;
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 1px 0 rgba(15, 23, 42, .04);
    }

    .co-cspItemTitle {
        font-size: 14px;
        line-height: 1.3;
    }

    .co-cspItemMeta {
        font-size: 12px;
        line-height: 1.35;
    }

    .co-cspActions {
        margin-top: 0;
        padding-top: 8px;
        border-top: 1px solid rgba(15, 23, 42, .08);
        background: #fff;
    }

    .co-cspActions .co-btn {
        width: 100%;
        min-height: 46px;
    }

    .co-modal--gls {
        padding: 0 !important;
    }

    .co-modal__panel--gls {
        width: 100% !important;
        max-width: none !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
    }

    .co-modal__body--gls gls-dpm {
        height: 100%;
        min-height: 0;
    }
}

/* Legacy fallback (ha bárhol még gls-dpm-dialog maradt) */
body.page-checkout gls-dpm-dialog[open] {
    position: fixed !important;
    inset: 0 !important;
    z-index: 14000 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    transform: none !important;
}

/* ---------------------------------------------------------
   COUPON + TRUST + TERMS + SUBMIT
--------------------------------------------------------- */

.co-coupon {
    margin-top: 12px;
    padding: 12px;
    border-radius: 14px;
    border: 1px dashed rgba(148, 163, 184, .55);
    background: rgba(248, 250, 252, .95);
}

.co-couponTitle {
    font-weight: 850;
    font-size: 13px;
    color: rgba(15, 23, 42, 1);
    cursor: pointer;
    list-style: none;
}

.co-couponTitle::-webkit-details-marker {
    display: none;
}

.co-coupon[open] .co-couponTitle {
    margin-bottom: 8px;
}

.co-couponApplied {
    font-size: 12px;
    color: rgba(15, 23, 42, .96);
}

.co-couponSaved {
    margin-top: 6px;
    font-size: 11px;
    font-weight: 800;
    color: rgba(180, 83, 9, 1);
}

.co-couponRow {
    display: flex;
    gap: 8px;
}

.co-page .co-couponInput {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(15, 23, 42, .12);
    background: rgba(255, 255, 255, .98);
    min-height: 42px;
}

.co-couponBtn {
    appearance: none;
    border: 1px solid rgba(34, 197, 94, .40);
    background: rgba(240, 253, 244, .95);
    color: rgba(21, 128, 61, 1);
    border-radius: 12px;
    padding: 10px 12px;
    min-height: 42px;
    font-weight: 900;
    cursor: pointer;
    white-space: nowrap;
}

.co-couponBtn--ghost {
    border-color: rgba(15, 23, 42, .12);
    background: rgba(255, 255, 255, .92);
    color: rgba(15, 23, 42, .92);
}

@media (max-width: 520px) {
    .co-couponRow {
        flex-direction: column;
    }

    .co-couponBtn {
        width: 100%;
        justify-content: center;
    }
}

.co-trust {
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(15, 23, 42, .08);
    background: rgba(255, 255, 255, .88);
}

.co-trustList {
    margin: 0;
    padding-left: 18px;
    font-size: 12px;
    color: rgba(17, 24, 39, .92);
}

.co-trustList li {
    margin: 6px 0;
}

.co-terms {
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(15, 23, 42, .08);
    background: rgba(255, 255, 255, .92);
}

.co-terms a {
    margin-left: 8px;
    font-weight: 850;
    color: rgba(21, 128, 61, 1);
    text-decoration: underline;
}

.co-minOrder .co-minOrderLink {
    margin-left: 8px;
    font-weight: 900;
    color: rgba(185, 28, 28, 1);
    text-decoration: underline;
}

.co-submit:disabled {
    opacity: .65;
    cursor: not-allowed;
}

.co-submit.is-loading {
    position: relative;
    color: transparent !important;
    pointer-events: none;
}

.co-submit.is-loading::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 18px;
    height: 18px;
    margin-left: -9px;
    margin-top: -9px;
    border-radius: 999px;
    border: 2px solid rgba(255, 255, 255, .65);
    border-top-color: transparent;
    animation: co-spin .85s linear infinite;
}

/* ---------------------------------------------------------
   QUICK CHECKOUT DISCLOSURES
--------------------------------------------------------- */

.co-optionBlock {
    margin-top: 12px;
    border-radius: 14px;
    border: 1px dashed rgba(148, 163, 184, .55);
    background: rgba(248, 250, 252, .95);
    padding: 12px;
}

.co-optionBlock summary {
    cursor: pointer;
    font-size: 13px;
    font-weight: 850;
    color: var(--co-ink);
    list-style: none;
}

.co-optionBlock summary::-webkit-details-marker {
    display: none;
}

.co-optionBlock__body {
    margin-top: 10px;
}

.co-toggle--shipping {
    margin-top: 12px;
    margin-bottom: 0;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(15, 23, 42, .08);
    background: rgba(255, 255, 255, .86);
}

.co-weeklyMenu {
    display: grid;
    gap: 10px;
    margin-bottom: 12px;
    padding: 12px;
    border-radius: 14px;
    border: 1px solid color-mix(in srgb, var(--co-accent) 18%, rgba(15, 23, 42, .10));
    background: var(--co-accent-soft);
}

.co-page label {
    color: var(--co-ink);
    font-weight: 750;
}

.co-page .form-group {
    min-width: 0;
}

.co-page input[type="text"],
.co-page input[type="email"],
.co-page input[type="tel"],
.co-page input[type="number"],
.co-page input[type="search"],
.co-page input[type="password"],
.co-page select,
.co-page textarea {
    min-height: 48px;
    border-radius: 12px;
    border: 1px solid rgba(15, 23, 42, .14);
    background: rgba(255, 255, 255, .98);
    padding: 11px 12px;
}

.co-page textarea {
    min-height: 96px;
    resize: vertical;
}

.co-page input:focus,
.co-page select:focus,
.co-page textarea:focus {
    outline: 2px solid color-mix(in srgb, var(--co-accent) 28%, transparent);
    border-color: color-mix(in srgb, var(--co-accent) 54%, rgba(15, 23, 42, .14));
}

@media (max-width: 560px) {
    .co-mobileBarInner {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px;
    }

    .co-mobileBarBtn {
        padding-inline: 14px;
    }
}

@keyframes co-spin {
    to {
        transform: rotate(360deg);
    }
}
