/*
 * cart-lahoda-1 — full cart page. Wrapper / inner split (same convention as
 * product-list-lahoda-1 / footer-lahoda-1 / form-lahoda-1).
 */

.cart-lahoda-1 {
    width: 100%;
    container-type: inline-size;
}

.cart-lahoda-1__inner {
    max-width: var(--content-max-width);
    margin: 0 auto;
    padding: var(--space-7) var(--container-gutter);
}

.cart-lahoda-1__heading {
    font-family: var(--font-display);
    color: var(--ink);
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    margin: 0 0 var(--space-6);
}

.cart-lahoda-1__loading,
.cart-lahoda-1__empty {
    font-family: var(--font-body);
    color: var(--ink-muted);
}

.cart-lahoda-1__lines {
    list-style: none;
    margin: 0 0 var(--space-6);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.cart-lahoda-1__line {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4);
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.cart-lahoda-1__line-img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: var(--radius-sm, var(--radius));
    flex-shrink: 0;
}

.cart-lahoda-1__line-img-link {
    display: block;
    flex-shrink: 0;
}

.cart-lahoda-1__line-info {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    flex: 1 1 auto;
    min-width: 0;
}

.cart-lahoda-1__line-name {
    font-family: var(--font-body);
    font-weight: 600;
    color: var(--ink);
    text-decoration: none;
}

a.cart-lahoda-1__line-name:hover {
    text-decoration: underline;
}

/* Configured parameters under a line (composedConfig.summary). */
/* Configured parameters (composedConfig.summary, e.g. the cake) — one
   flowing line, a step smaller than the name: "Typ torty: Narodeninová ·
   Počet poschodí: 2 · Motív torty: …". The <dl> keeps its semantics; the
   pairs just run inline and wrap like text. */
.cart-lahoda-1__line-details {
    display: block;
    margin: 2px 0 0;
    font-family: var(--font-body);
    font-size: 0.75rem;
    line-height: 1.5;
    color: var(--ink-muted);
}

.cart-lahoda-1__line-details dt,
.cart-lahoda-1__line-details dd {
    display: inline;
    margin: 0;
}

.cart-lahoda-1__line-details dt {
    font-weight: 400;
}

.cart-lahoda-1__line-details dt::after {
    content: ": ";
}

.cart-lahoda-1__line-details dd {
    font-weight: 600;
    color: var(--ink);
    overflow-wrap: anywhere;
}

.cart-lahoda-1__line-details dd:not(:last-child)::after {
    content: " · ";
    font-weight: 400;
    color: var(--ink-muted);
}

/* "Cena dohodou" — a label in place of the line total. */
.cart-lahoda-1__line-price.cart-lahoda-1__line-price--on-request {
    font-size: 0.9375rem;
}

.cart-lahoda-1__line-warning {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    color: var(--brand-red);
}

.cart-lahoda-1__line-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    width: fit-content;
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--cart-lahoda-1-badge-color, var(--ink));
    border: 1px solid var(--cart-lahoda-1-badge-color, var(--border));
    border-radius: var(--radius-pill);
    padding: 2px var(--space-2);
}

.cart-lahoda-1__line-badge-icon {
    width: 14px;
    height: 14px;
    object-fit: contain;
}

.cart-lahoda-1__line-qty-row {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.cart-lahoda-1__line-qty {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    width: fit-content;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    padding: 2px var(--space-2);
}

.cart-lahoda-1__line-qty-unit {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    color: var(--ink-muted);
}

.cart-lahoda-1__line-qty button {
    border: none;
    background: none;
    cursor: pointer;
    font-size: 1rem;
    color: var(--ink);
    width: 32px;
    height: 32px;
    border-radius: var(--radius-pill);
}

/* At the product's admin-set quantity min/max — greyed but still
   clickable: the click explains the limit in the hint below. */
.cart-lahoda-1__line-qty button:disabled,
.cart-lahoda-1__line-qty button[aria-disabled="true"] {
    cursor: default;
    opacity: 0.35;
}

/* Touch / phone: 40 px tap targets (audit U18). */
@media (max-width: 767.98px), (pointer: coarse) {
    .cart-lahoda-1__line-qty {
        gap: var(--space-1);
    }

    .cart-lahoda-1__line-qty button {
        width: 40px;
        height: 40px;
    }
}

/* Limit feedback under the stepper („Minimálne množstvo na objednanie je
   10 ks.“) — always-present polite live region, zero height while empty. */
.cart-lahoda-1__line-qty-hint {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--ink-muted);
}

.cart-lahoda-1__line-qty-hint:empty {
    display: none;
}

.cart-lahoda-1__line-qty-input {
    width: 36px;
    border: none;
    background: none;
    text-align: center;
    font-family: var(--font-body);
    font-size: 0.875rem;
    color: var(--ink);
}

.cart-lahoda-1__line-price-block {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    flex-shrink: 0;
}

.cart-lahoda-1__line-unit-price {
    font-family: var(--font-body);
    font-size: 0.75rem;
    color: var(--ink-muted);
    white-space: nowrap;
}

.cart-lahoda-1__line-price {
    font-family: var(--font-body);
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
}

.cart-lahoda-1__line-price-exvat {
    font-family: var(--font-body);
    font-size: 0.6875rem;
    color: var(--ink-muted);
    white-space: nowrap;
}

.cart-lahoda-1__line-pending {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-style: italic;
    color: var(--ink-muted);
    white-space: nowrap;
    animation: cart-lahoda-1-pulse 1.4s ease-in-out infinite;
}

@keyframes cart-lahoda-1-pulse {
    0%,
    100% {
        opacity: 1;
    }
    50% {
        opacity: 0.45;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cart-lahoda-1__line-pending {
        animation: none;
    }
}

.cart-lahoda-1__line-remove {
    border: none;
    background: none;
    cursor: pointer;
    color: var(--ink-muted);
    font-size: 1rem;
    padding: var(--space-2);
}

.cart-lahoda-1__line-remove:hover {
    color: var(--brand-red);
}

.cart-lahoda-1__summary {
    border-top: 1px solid var(--border);
    padding-top: var(--space-5);
}

.cart-lahoda-1__summary-row {
    display: flex;
    justify-content: space-between;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 0.9375rem;
    color: var(--ink-muted);
    margin-bottom: var(--space-2);
}

/* Our company is no VAT payer (ERP VAT kinds): only "Spolu". */
.cart-lahoda-1[data-vat-payer="no"] .cart-lahoda-1__summary-row--vat {
    display: none;
}

.cart-lahoda-1__summary-row--total {
    font-weight: 700;
    font-size: 1.125rem;
    color: var(--ink);
    border-top: 1px solid var(--border);
    padding-top: var(--space-3);
    margin-top: var(--space-2);
    margin-bottom: var(--space-4);
}

.cart-lahoda-1__packaging-note {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--ink-muted);
    margin: calc(-1 * var(--space-2)) 0 var(--space-4);
}

.cart-lahoda-1__requested-date {
    font-family: var(--font-body);
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--ink);
    margin: 0 0 var(--space-4);
}

.cart-lahoda-1__requested-date[hidden] {
    display: none;
}

.cart-lahoda-1__notice {
    font-family: var(--font-body);
    font-size: 0.875rem;
    color: var(--brand-red);
    margin: 0 0 var(--space-4);
}

/* Information, not a blocker: gold tint + ink text (DESIGN_MANUAL badges). */
.cart-lahoda-1__notice.cart-lahoda-1__notice--info {
    padding: var(--space-3) var(--space-4);
    color: var(--ink);
    background: var(--brand-gold-tint);
    border-radius: var(--radius-sm);
}

.cart-lahoda-1__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    align-items: center;
}

.cart-lahoda-1__continue,
.cart-lahoda-1__clear {
    font-family: var(--font-body);
    font-size: 0.875rem;
    color: var(--ink);
    background: none;
    border: none;
    text-decoration: underline;
    cursor: pointer;
    padding: 0;
}

.cart-lahoda-1__checkout {
    margin-left: auto;
    font-family: var(--font-body);
    font-weight: 600;
    color: #fff;
    background: var(--brand-red);
    border-radius: var(--radius-pill);
    padding: var(--space-3) var(--space-6);
    text-decoration: none;
}

.cart-lahoda-1__checkout--disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

@container (max-width: 599.98px) {
    .cart-lahoda-1__line {
        flex-wrap: wrap;
    }

    .cart-lahoda-1__checkout {
        margin-left: 0;
        width: 100%;
        text-align: center;
    }
}
