:root {
    --brand: #f8a700;
    --brand-dark: #9a6500;
    --brand-soft: #fff6dc;
    --accent: #cf112b;
    --ink: #343434;
    --muted: #696969;
    --line: #e4e4e1;
    --surface: #ffffff;
    --canvas: #f5f5f3;
    --success: #267253;
    --success-soft: #e9f6ef;
    --warning: #8a5a13;
    --warning-soft: #fff6df;
    --danger: #cf112b;
    --danger-soft: #fff0f2;
    --info: #2d6282;
    --info-soft: #edf7fc;
    --shadow-sm: 0 2px 10px rgba(52, 52, 52, .07);
    --shadow-md: 0 14px 38px rgba(52, 52, 52, .11);
    --radius-sm: 10px;
    --radius: 16px;
    --radius-lg: 24px;
    --shell: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    color: var(--ink);
    background: var(--canvas);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

body.auth-area {
    min-height: 100vh;
    background:
        radial-gradient(circle at 8% 12%, rgba(248, 167, 0, .16), transparent 30%),
        radial-gradient(circle at 92% 88%, rgba(207, 17, 43, .08), transparent 34%),
        #f8f8f6;
}

button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: var(--brand-dark); }
img { max-width: 100%; display: block; }

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

:focus-visible {
    outline: 3px solid rgba(248, 167, 0, .36);
    outline-offset: 3px;
}

.skip-link {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 1000;
    transform: translateY(-140%);
    padding: 10px 14px;
    border-radius: 8px;
    color: #fff;
    background: var(--ink);
}

.skip-link:focus { transform: translateY(0); }

.client-shell {
    width: min(calc(100% - 32px), var(--shell));
    margin-inline: auto;
}

.client-main { padding: 28px 0 110px; }
.narrow-shell { max-width: 820px; }
.medium-shell { max-width: 980px; }

.client-header {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid rgba(228, 228, 225, .95);
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 1px 8px rgba(52, 52, 52, .05);
    backdrop-filter: blur(12px);
}

.client-header__inner {
    min-height: 74px;
    display: flex;
    align-items: center;
    gap: 28px;
}

.brand {
    display: inline-flex;
    align-items: center;
    color: var(--ink);
    text-decoration: none;
    white-space: nowrap;
}

.brand__logo-frame { display: block; overflow: hidden; line-height: 0; }
.brand__logo { display: block; width: 100%; height: auto; clip-path: inset(4px 0 0); transform: translateY(-1px); }
.brand--header { width: 235px; flex: 0 0 235px; }
.brand--auth { width: min(390px, 88vw); }

.desktop-navigation {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
}

.desktop-navigation a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 14px;
    border-radius: 11px;
    color: #565656;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.desktop-navigation a:hover,
.desktop-navigation a.is-active { color: var(--ink); background: var(--brand-soft); }

.nav-count {
    min-width: 22px;
    height: 22px;
    display: inline-grid;
    place-items: center;
    padding: 0 6px;
    border-radius: 999px;
    color: #fff;
    background: var(--accent);
    font-size: 11px;
}

.client-header__account { display: flex; align-items: center; gap: 10px; }
.client-header__account form { margin: 0; }
.account-name { max-width: 140px; color: var(--muted); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.client-destination-header {
    position: sticky;
    top: 74px;
    z-index: 45;
    border-bottom: 1px solid #eadcae;
    background: rgba(255, 250, 240, .97);
    box-shadow: 0 3px 10px rgba(52, 52, 52, .04);
    backdrop-filter: blur(12px);
}

.client-destination-header .order-destination {
    min-height: 48px;
    margin: 0;
    padding: 7px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.mobile-navigation { display: none; }

.page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.eyebrow {
    margin: 0 0 5px;
    color: var(--brand-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

h1, h2, h3, p { margin-top: 0; }
.page-heading h1, .auth-card h1 { margin-bottom: 6px; font-size: clamp(26px, 3vw, 38px); line-height: 1.15; letter-spacing: -.03em; }
.page-heading p { max-width: 680px; margin-bottom: 0; color: var(--muted); }

.button {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 18px;
    border: 1px solid transparent;
    border-radius: 12px;
    color: #2f2f2f;
    background: var(--brand);
    box-shadow: 0 5px 13px rgba(248, 167, 0, .22);
    font-weight: 750;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: transform .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.button:hover { color: #222; background: #ffb719; transform: translateY(-1px); }
.button:active { transform: translateY(0); }
.button:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.button--secondary { color: var(--ink); background: #fff; border-color: #e7c46a; box-shadow: none; }
.button--secondary:hover { color: var(--ink); background: var(--brand-soft); }
.button--quiet { color: #5d5d5d; background: transparent; border-color: var(--line); box-shadow: none; }
.button--quiet:hover { color: var(--ink); background: #f1f1ef; }
.button--danger { color: var(--danger); background: transparent; border-color: #efc7c4; box-shadow: none; }
.button--danger:hover { color: #fff; background: var(--danger); }
.button--small { min-height: 44px; padding: 8px 12px; border-radius: 10px; font-size: 13px; }
.button--large { min-height: 56px; padding: 14px 22px; font-size: 17px; }
.button--block { width: 100%; }
.text-link { min-height: 44px; display: inline-flex; align-items: center; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 3px; }

.notice {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 18px;
    padding: 14px 16px;
    border: 1px solid;
    border-radius: 13px;
    font-size: 14px;
}

.notice__icon {
    width: 23px;
    height: 23px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
}

.notice--success { border-color: #bddfcd; color: #205b44; background: var(--success-soft); }
.notice--success .notice__icon { background: var(--success); }
.notice--warning { border-color: #efd89f; color: #765018; background: var(--warning-soft); }
.notice--warning .notice__icon { background: #b5791e; }
.notice--historical-prices > div { display: grid; gap: 2px; }
.notice--historical-prices strong { color: #684411; }
.notice--historical-prices span { line-height: 1.45; }
.notice--history > div { min-width: 0; }
.notice--history p { margin: 3px 0 10px; }
.notice-history-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.notice-history-list li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-top: 8px; border-top: 1px solid rgba(118, 80, 24, .18); }
.notice-history-list li > span { min-width: 0; display: grid; gap: 2px; }
.notice-history-list small { font-size: 12px; line-height: 1.4; }
.notice-history-list .text-link { min-height: 40px; display: inline-flex; align-items: center; flex: 0 0 auto; padding: 7px 10px; border-radius: 9px; background: rgba(255, 255, 255, .58); white-space: nowrap; }
.notice--danger { border-color: #efc5c2; color: #842b2b; background: var(--danger-soft); }
.notice--danger .notice__icon { background: var(--danger); }
.notice--info { border-color: #c6deeb; color: #285a77; background: var(--info-soft); }
.notice--info .notice__icon { background: var(--info); }

.surface-card {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.order-destination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 20px;
    padding: 10px 13px;
    border: 1px solid #e8d697;
    border-radius: 12px;
    background: linear-gradient(90deg, #fffaf0, #fffdf8);
}

.order-destination__main { min-width: 0; display: flex; align-items: center; gap: 10px; }
.order-destination__pin { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 9px; color: #765000; background: #ffe9aa; }
.order-destination__pin svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.order-destination__copy { min-width: 0; display: flex; align-items: baseline; gap: 5px; }
.order-destination__label { color: var(--muted); font-size: 12px; font-weight: 700; }
.order-destination__copy strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.order-destination__copy small { color: var(--muted); font-size: 11px; white-space: nowrap; }
.order-destination__change { min-height: 44px; display: inline-flex; align-items: center; flex: 0 0 auto; padding: 6px 9px; border-radius: 8px; color: #715000; background: #fff; font-size: 12px; font-weight: 800; text-decoration: none; }
.order-destination__change:hover { color: #513800; background: var(--brand-soft); }
.order-destination__confirmed { flex: 0 0 auto; padding: 5px 9px; border: 1px solid #c9dfd3; border-radius: 999px; color: var(--success); background: var(--success-soft); font-size: 11px; font-weight: 800; }
.repeat-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(270px, 340px);
    align-items: center;
    gap: 24px;
    margin-bottom: 24px;
    padding: 22px;
    border-color: #efd171;
    background: linear-gradient(125deg, #fff 5%, #fff7df 100%);
    box-shadow: var(--shadow-md);
}

.repeat-card__copy { position: relative; z-index: 1; }
.repeat-card h2 { margin-bottom: 5px; font-size: 20px; }
.repeat-card p { margin-bottom: 0; color: var(--muted); }
.repeat-card form { position: relative; z-index: 1; margin: 0; }
.repeat-card__facts { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 14px; }
.repeat-card__facts > span { min-width: 132px; display: grid; gap: 1px; padding: 9px 11px; border: 1px solid #eadcae; border-radius: 11px; background: rgba(255,255,255,.76); }
.repeat-card__facts small { color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }
.repeat-card__facts strong { font-size: 17px; }
.repeat-card__facts .repeat-card__pending { color: var(--warning); font-size: 12px; line-height: 1.35; }
.repeat-card__preview { display: flex; flex-wrap: wrap; gap: 6px; margin: 13px 0 0; padding: 0; list-style: none; }
.repeat-card__preview li { padding: 5px 8px; border: 1px solid #f0dfad; border-radius: 999px; color: #5c5544; background: rgba(255,255,255,.72); font-size: 11px; font-weight: 700; }
.repeat-card__actions { position: relative; z-index: 2; display: grid; gap: 8px; }
.repeat-card__actions .button { width: 100%; }
.repeat-card__actions small { color: var(--muted); font-size: 11px; line-height: 1.4; }
.repeat-card__actions .text-link { justify-self: start; font-size: 12px; }
.catalog-tools { margin-bottom: 18px; padding: 18px; }
.catalog-tools__heading { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 10px 16px; margin-bottom: 14px; }
.catalog-tools__heading .eyebrow { margin-bottom: 2px; }
.catalog-tools__heading h2 { margin: 0; font-size: 21px; }
.catalog-tools__heading > span { color: var(--muted); font-size: 12px; font-weight: 750; white-space: nowrap; }
.catalog-tools__title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 10px; }
.catalog-usuals-link { min-height: 44px; display: inline-flex; align-items: center; gap: 5px; padding: 6px 10px; border: 1px solid #cfe2d6; border-radius: 999px; color: #286543; background: #f4faf6; font-size: 11px; font-weight: 800; line-height: 1; text-decoration: none; white-space: nowrap; }
.catalog-usuals-link:hover { border-color: #a8cbb5; background: #eaf6ee; }
.catalog-usuals-link:focus-visible { outline: 3px solid rgba(40, 101, 67, .2); outline-offset: 2px; }
.catalog-usuals-link[aria-current="page"] { border-color: #286543; color: #fff; background: #286543; }
.search-form { margin: 0; }
.search-field { position: relative; display: flex; align-items: center; }
.search-field svg { position: absolute; left: 17px; width: 22px; height: 22px; fill: none; stroke: var(--muted); stroke-width: 2; pointer-events: none; }
.search-field input {
    width: 100%;
    min-height: 58px;
    padding: 13px 128px 13px 50px;
    border: 1px solid #d8d8d5;
    border-radius: 15px;
    color: var(--ink);
    background: #fff;
    box-shadow: var(--shadow-sm);
    font-size: 16px;
}
.search-field input:focus { border-color: var(--brand); outline: 3px solid rgba(248, 167, 0, .16); }
.search-field .button { position: absolute; right: 6px; min-height: 46px; }
.catalog-filters { margin-top: 17px; }
.catalog-filters__label { display: block; margin-bottom: 8px; color: var(--muted); font-size: 12px; font-weight: 750; }
.catalog-filters__scroller { overflow-x: auto; padding-bottom: 3px; scrollbar-width: thin; overscroll-behavior-inline: contain; }
.catalog-filters__chips { width: max-content; min-width: 100%; display: flex; gap: 7px; }
.catalog-filter { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border: 1px solid #deded9; border-radius: 999px; color: var(--ink); background: #fff; font-size: 12px; font-weight: 750; text-decoration: none; white-space: nowrap; transition: border-color .16s ease, background .16s ease, transform .16s ease; }
.catalog-filter:hover { border-color: #c8a34d; background: #fffaf0; transform: translateY(-1px); }
.catalog-filter:focus-visible { outline: 3px solid rgba(248, 167, 0, .24); outline-offset: 2px; }
.catalog-filter > span:last-child { min-width: 23px; min-height: 23px; display: inline-grid; place-items: center; padding: 2px 6px; border-radius: 999px; color: var(--muted); background: #f1f1ee; font-size: 10px; }
.catalog-filter.is-active { border-color: var(--brand-dark); background: var(--brand-soft); box-shadow: inset 0 0 0 1px rgba(126,86,0,.16); }
.catalog-filter.is-active > span:last-child { color: #634500; background: rgba(255,255,255,.74); }
.catalog-filter--usual { color: #5d480f; }
.search-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 18px; padding: 0 2px; color: var(--muted); font-size: 13px; }
.search-summary strong { color: var(--ink); }
.search-summary__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; }

.product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.product-card { overflow: hidden; display: flex; flex-direction: column; min-width: 0; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.product-card:focus-within { border-color: #b77a00; box-shadow: 0 0 0 3px rgba(248, 167, 0, .20), var(--shadow-md); }
.product-card.is-in-cart { border-color: #e6bd45; box-shadow: 0 0 0 2px rgba(248, 167, 0, .12), var(--shadow-sm); }

.product-card__media {
    position: relative;
    height: 230px;
    display: grid;
    place-items: center;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 50% 52%, #fff 0 34%, rgba(255,255,255,.55) 58%, transparent 75%),
        linear-gradient(145deg, #f8f8f6, #ededeb);
    border-bottom: 1px solid #e8e8e5;
}
.product-card__media::before {
    content: "";
    position: absolute;
    inset: 14% 12%;
    z-index: -1;
    border-radius: 50%;
    background: rgba(248, 167, 0, .055);
    filter: blur(10px);
}
.product-picture { width: 100%; height: 100%; display: grid; place-items: center; }
.product-card__image {
    width: auto;
    height: auto;
    max-width: 88%;
    max-height: 193px;
    object-fit: contain;
    filter: drop-shadow(0 9px 8px rgba(52,52,52,.10));
    transition: transform .25s ease;
}
.product-media--vertical .product-card__image { max-width: 62%; max-height: 214px; }
.product-media--panoramica .product-card__image { max-width: 96%; max-height: 156px; }
.product-media--cuadrada .product-card__image { max-width: 80%; max-height: 198px; }
.product-media--small-source .product-card__image { max-width: 76%; max-height: 179px; }
.product-image-fallback { width: min(76%, 220px); display: grid; place-items: center; opacity: .88; }
.product-image-fallback img { width: 100% !important; height: auto !important; max-width: 100% !important; max-height: none !important; object-fit: contain; mix-blend-mode: normal !important; filter: none !important; }
.product-card__cart-badge { position: absolute; top: 10px; right: 10px; padding: 6px 9px; border-radius: 999px; color: #fff; background: var(--success); box-shadow: 0 3px 10px rgba(38,114,83,.24); font-size: 11px; font-weight: 800; }
.product-card__frequent-badge { position: absolute; top: 10px; left: 10px; display: inline-flex; align-items: center; gap: 4px; padding: 6px 9px; border: 1px solid #ead28a; border-radius: 999px; color: #684a08; background: rgba(255,249,229,.96); box-shadow: 0 3px 10px rgba(82,67,25,.10); font-size: 10px; font-weight: 850; }
.product-card__body { display: flex; flex: 1; flex-direction: column; padding: 16px; }
.product-card__header { display: grid; gap: 5px; }
.product-card__reference { margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.product-card h2 { min-height: 44px; margin: 0; font-size: 17px; line-height: 1.32; letter-spacing: -.012em; }
.product-card__format { min-height: 34px; display: flex; align-items: flex-start; gap: 7px; margin: 0 0 9px; color: #545454; font-size: 12px; line-height: 1.35; }
.product-card__format > span { width: 23px; height: 23px; display: grid; place-items: center; flex: 0 0 23px; border-radius: 7px; color: #6f4a00; background: var(--brand-soft); font-size: 13px; }
.product-card__format strong { padding-top: 3px; font-weight: 750; }
.product-card__price { display: grid; gap: 2px; margin: 0 0 10px; padding: 10px 11px; border: 1px solid #eadcae; border-radius: 11px; color: var(--ink); background: linear-gradient(100deg, #fffdf8, #fff8e6); }
.product-card__price-label { color: #5f5f5f; font-size: 11px; font-weight: 750; }
.product-card__price-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.product-card__price-row strong { font-size: 23px; line-height: 1.15; letter-spacing: -.03em; }
.product-card__price-row .product-card__tax { padding: 4px 7px; border-radius: 999px; color: #205b44; background: var(--success-soft); font-size: 10px; font-weight: 800; white-space: nowrap; }
.stock-indicator { display: flex; align-items: flex-start; gap: 7px; margin: 0 0 9px; color: var(--muted); font-size: 11px; font-weight: 700; line-height: 1.4; }
.stock-indicator__dot { width: 8px; height: 8px; flex: 0 0 8px; margin-top: 4px; border-radius: 50%; background: var(--muted); }
.stock-indicator--disponible { color: #276349; }
.stock-indicator--disponible .stock-indicator__dot { background: var(--success); }
.stock-indicator--bajo { color: #765018; }
.stock-indicator--bajo .stock-indicator__dot { background: #d89728; }
.stock-indicator--agotado { color: #7a3f3f; }
.stock-indicator--agotado .stock-indicator__dot { background: #bd5a55; }
.promotion-pill { display: inline-flex; align-items: center; align-self: flex-start; margin: 0 0 7px; padding: 4px 8px; border-radius: 999px; color: #1f684b; background: var(--success-soft); font-size: 11px; font-weight: 800; }
.gift-pill { display: inline-flex; align-items: center; align-self: flex-start; margin: 0 0 7px; padding: 4px 8px; border-radius: 999px; color: #754f00; background: #fff4cf; font-size: 11px; font-weight: 800; }
.product-benefits { display: grid; gap: 7px; margin: 2px 0 9px; }
.product-benefit { display: grid; gap: 2px; padding: 9px 10px; border: 1px solid #dfe9e3; border-radius: 11px; background: #f8fbf9; color: var(--text); font-size: 12px; line-height: 1.35; }
.product-benefit--gift { border-color: #eadca8; background: #fffaf0; }
.product-benefit strong { font-size: 13px; }
.product-benefit small { color: var(--muted); font-size: 11px; }
.product-card__unavailable { display: grid; grid-template-columns: 31px minmax(0, 1fr); gap: 9px; margin: 2px 0 auto; padding: 11px; border: 1px solid #ecd79a; border-radius: 10px; color: #71501a; background: var(--warning-soft); }
.product-card__unavailable-icon { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; color: #fff; background: var(--warning); font-size: 17px; font-weight: 900; }
.product-card__unavailable > span:last-child { display: grid; gap: 3px; }
.product-card__unavailable strong { font-size: 13px; }
.product-card__unavailable small { color: #765a2d; font-size: 11px; line-height: 1.4; }
.product-card__unavailable .text-link { justify-self: start; margin-top: 3px; font-size: 11px; }
.product-card.is-saving { opacity: .78; }
.product-card__form { display: grid; gap: 9px; margin-top: auto; }
.button--product { min-height: 52px; color: #2b2b2b; border-color: #d89200; background: var(--brand); box-shadow: 0 5px 13px rgba(248, 167, 0, .22); font-size: 15px; }
.button--product:hover { color: #222; background: #ffb719; }
.button--product__icon { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #6f4a00; font-size: 17px; font-weight: 900; line-height: 1; }

.quantity-control { display: grid; gap: 8px; }
.measure-selector { min-width: 0; margin: 0; padding: 0; border: 0; }
.measure-selector legend, .quantity-control__label { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .02em; }
.measure-selector__options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.measure-option { position: relative; min-width: 0; cursor: pointer; }
.measure-option input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.measure-option > span { min-height: 54px; display: flex; flex-direction: column; justify-content: center; padding: 8px 9px; border: 1px solid #d8d8d5; border-radius: 11px; color: var(--ink); background: #fff; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.measure-option strong { font-size: 12px; line-height: 1.2; }
.measure-option small { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.measure-option input:checked + span { border-color: var(--brand-dark); background: var(--brand-soft); box-shadow: inset 0 0 0 1px var(--brand-dark); }
.measure-option input:focus-visible + span { outline: 3px solid rgba(248, 167, 0, .24); outline-offset: 2px; }
.measure-summary { min-height: 54px; display: flex; align-items: center; gap: 9px; padding: 8px 10px; border: 1px solid #e2d5b9; border-radius: 11px; background: #fffaf0; }
.measure-summary__icon { width: 32px; height: 32px; flex: 0 0 32px; display: grid; place-items: center; border-radius: 9px; color: var(--brand-dark); background: var(--brand-soft); font-size: 17px; font-weight: 900; }
.measure-summary > span:last-child { min-width: 0; display: grid; }
.measure-summary strong { font-size: 12px; }
.measure-summary small { margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.25; }
.quantity-control__amount { min-width: 0; }
.quantity-stepper { display: grid; grid-template-columns: 50px minmax(48px, 1fr) 50px; min-height: 52px; overflow: hidden; border: 1px solid #d0d0cc; border-radius: 12px; background: #fff; }
.quantity-stepper:focus-within { border-color: var(--brand-dark); box-shadow: 0 0 0 3px rgba(248, 167, 0, .18); }
.quantity-stepper button { min-width: 50px; min-height: 50px; border: 0; color: var(--ink); background: #f4f4f1; font-size: 25px; font-weight: 650; cursor: pointer; touch-action: manipulation; }
.quantity-stepper button:hover { background: var(--brand-soft); }
.quantity-stepper button:active { background: #f4cf75; transform: scale(.97); }
.quantity-stepper button:focus-visible { position: relative; z-index: 1; outline-offset: -4px; }
.quantity-stepper input { width: 100%; min-width: 0; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 17px; font-weight: 800; text-align: center; appearance: textfield; }
.quantity-stepper input::-webkit-inner-spin-button, .quantity-stepper input::-webkit-outer-spin-button { margin: 0; appearance: none; }
.quantity-result { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 10px; color: var(--muted); background: #f5f5f2; font-size: 10px; line-height: 1.25; }
.quantity-result strong { color: var(--ink); font-size: 11px; text-align: right; }
.quantity-control__rule { min-height: 14px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.35; }
.quantity-control__rule.is-warning { color: #845d14; font-weight: 700; }

.field-select, .field-input, .field-textarea {
    width: 100%;
    min-height: 48px;
    padding: 11px 13px;
    border: 1px solid #d8d8d5;
    border-radius: 11px;
    color: var(--ink);
    background: #fff;
}
.field-textarea { min-height: 100px; resize: vertical; }
.field-select:focus, .field-input:focus, .field-textarea:focus { border-color: var(--brand); outline: 3px solid rgba(248, 167, 0, .16); }
.field-group { margin-bottom: 18px; }
.field-label { display: block; margin-bottom: 7px; font-size: 14px; font-weight: 750; }
.field-help { display: block; margin-top: 6px; color: var(--muted); font-size: 12px; }
.field-error { display: block; margin-top: 6px; color: #a30f24; font-size: 13px; font-weight: 750; }
.field-input[aria-invalid="true"], .field-select[aria-invalid="true"], .field-textarea[aria-invalid="true"] { border-color: var(--danger); }

.pagination-wrap { margin-top: 26px; }
.pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; padding: 0; list-style: none; }
.page-item .page-link { min-width: 44px; height: 44px; display: grid; place-items: center; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: #fff; text-decoration: none; }
.page-item.active .page-link { color: var(--ink); border-color: var(--brand); background: var(--brand); }
.page-item.disabled .page-link { color: #696969; background: #f1f1ef; }

.floating-cart {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 45;
    min-width: 260px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 12px 12px 18px;
    border: 1px solid #efd171;
    border-radius: 17px;
    color: var(--ink);
    background: rgba(255,255,255,.97);
    box-shadow: 0 16px 42px rgba(52, 52, 52, .18);
    text-decoration: none;
    backdrop-filter: blur(10px);
}
.floating-cart__copy { display: grid; }
.floating-cart__copy small { color: var(--muted); }
.floating-cart__action { min-height: 44px; padding: 10px 14px; border-radius: 11px; color: var(--ink); background: var(--brand); font-weight: 800; }

.whatsapp-help {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 70;
    width: 58px;
    height: 58px;
    min-height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px;
    border: 2px solid #fff;
    border-radius: 999px;
    color: #fff;
    background: #1fa855;
    box-shadow: 0 12px 30px rgba(23,112,60,.28);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    transition: transform .18s ease, background-color .18s ease, bottom .18s ease;
}
.whatsapp-help span { display: none; }
.whatsapp-help--raised { bottom: 94px; }
.whatsapp-help:hover { color: #fff; background: #178b46; transform: translateY(-2px); }
.whatsapp-help--disabled { color: #6f7772; background: #e9ece9; box-shadow: 0 10px 24px rgba(52,52,52,.12); cursor: not-allowed; }
.whatsapp-help--disabled:hover { color: #6f7772; background: #e9ece9; transform: none; }
.whatsapp-help svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.45; }

.client-toast-region { position: fixed; top: 90px; left: 50%; z-index: 120; width: min(calc(100% - 28px), 460px); display: grid; gap: 8px; transform: translateX(-50%); pointer-events: none; }
.client-toast { display: flex; align-items: center; gap: 10px; padding: 13px 15px; border: 1px solid #b9ddc9; border-radius: 13px; color: #205b44; background: rgba(241,251,246,.98); box-shadow: var(--shadow-md); opacity: 0; transform: translateY(-10px); transition: opacity .2s ease, transform .2s ease; }
.client-toast.is-visible { opacity: 1; transform: translateY(0); }
.client-toast > span { width: 25px; height: 25px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: #fff; background: var(--success); font-weight: 900; }
.client-toast strong { font-size: 13px; }
.client-toast--error { border-color: #efc5c2; color: #842b2b; background: rgba(255,245,245,.98); }
.client-toast--error > span { background: var(--danger); }

.empty-state { max-width: 520px; margin: 54px auto; padding: 34px 24px; text-align: center; }
.empty-state__icon { width: 68px; height: 68px; display: grid; place-items: center; margin: 0 auto 16px; border-radius: 22px; color: var(--brand); background: var(--brand-soft); font-size: 30px; }
.empty-state h2 { margin-bottom: 7px; font-size: 21px; }
.empty-state p { color: var(--muted); }

.feedback-state { width: min(100%, 620px); display: grid; justify-items: center; gap: 13px; margin: 42px auto; padding: 30px 26px; text-align: center; }
.feedback-state__icon { width: 62px; height: 62px; display: grid; place-items: center; border-radius: 19px; color: #62625e; background: #f1f1ed; }
.feedback-state__icon svg { width: 31px; height: 31px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.feedback-state--info .feedback-state__icon { color: var(--info); background: var(--info-soft); }
.feedback-state--warning .feedback-state__icon { color: #7a5300; background: var(--warning-soft); }
.feedback-state--danger .feedback-state__icon { color: var(--danger); background: var(--danger-soft); }
.feedback-state__copy h2 { margin: 2px 0 6px; font-size: 22px; }
.feedback-state__copy > p:last-child { max-width: 520px; margin: 0; color: var(--muted); }
.feedback-state__actions { display: flex; align-items: center; justify-content: center; gap: 9px; flex-wrap: wrap; margin-top: 3px; }
.feedback-state--compact { width: 100%; max-width: none; grid-template-columns: 52px minmax(0, 1fr) auto; justify-items: start; align-items: center; gap: 15px; margin: 0 0 24px; padding: 16px 18px; text-align: left; }
.feedback-state--compact .feedback-state__icon { width: 52px; height: 52px; border-radius: 15px; }
.feedback-state--compact .feedback-state__icon svg { width: 26px; height: 26px; }
.feedback-state--compact .feedback-state__copy h2 { font-size: 18px; }
.feedback-state--compact .feedback-state__actions { justify-content: flex-end; margin: 0; }
.feedback-state--catalog { grid-column: 1 / -1; }

.center-filter { margin-bottom: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-sm); }
.center-filter .field-label { margin-bottom: 7px; }
.center-filter .search-field input { min-height: 50px; padding-right: 16px; }
.center-filter > small { display: block; margin-top: 7px; color: var(--muted); }
.center-list { display: grid; gap: 13px; }
.center-option { margin: 0; }
.center-option button { width: 100%; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink); background: #fff; box-shadow: var(--shadow-sm); text-align: left; cursor: pointer; }
.center-option button:hover { border-color: #e6bd45; box-shadow: var(--shadow-md); }
.center-option.is-selected button { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(248, 167, 0, .14); }
.center-option button:disabled { opacity: 1; cursor: default; }
.center-option.is-selected button:disabled:hover { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(248, 167, 0, .14); }
.center-option__icon { width: 47px; height: 47px; display: grid; place-items: center; border-radius: 14px; color: var(--brand); background: var(--brand-soft); font-size: 21px; }
.center-option__copy { display: grid; min-width: 0; }
.center-option__copy strong { margin-bottom: 3px; font-size: 17px; }
.center-option__copy span { color: var(--muted); font-size: 13px; }
.center-option__copy .center-option__current { margin-top: 5px; color: var(--success); font-weight: 750; }
.center-option__arrow { color: var(--brand-dark); font-size: 24px; }
.center-filter-empty { margin-top: 20px; }
.destination-cart-warning strong, .destination-cart-warning span { display: block; }
.destination-cart-warning strong { margin-bottom: 2px; }

.destination-change-dialog {
    width: min(calc(100% - 32px), 500px);
    padding: 25px;
    border: 0;
    border-radius: 20px;
    color: var(--ink);
    background: #fff;
    box-shadow: 0 24px 70px rgba(35, 35, 31, .25);
}
.destination-change-dialog::backdrop { background: rgba(31, 32, 29, .58); backdrop-filter: blur(3px); }
.destination-change-dialog__icon { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 15px; border-radius: 15px; color: #805600; background: var(--brand-soft); font-size: 24px; font-weight: 850; }
.destination-change-dialog h2 { margin-bottom: 8px; font-size: 24px; }
.destination-change-dialog p { margin-bottom: 10px; color: var(--muted); }
.destination-change-dialog__warning { padding: 11px 12px; border: 1px solid #edd697; border-radius: 11px; color: #725019 !important; background: var(--warning-soft); font-size: 13px; }
.destination-change-dialog__actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; }
body:has(.destination-change-dialog[open]) { overflow: hidden; }

.back-link { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; margin-bottom: 16px; color: var(--muted); font-size: 14px; font-weight: 700; text-decoration: none; }
.back-link:hover { color: var(--brand-dark); }

.checkout-overview { display: grid; grid-template-columns: repeat(2, minmax(120px, auto)) minmax(0, 1fr); align-items: center; gap: 12px; margin-bottom: 18px; padding: 12px 15px; }
.checkout-overview > span { min-width: 120px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #dce8e1; border-radius: 10px; color: #285d48; background: #f4faf7; }
.checkout-overview > span small { font-size: 11px; font-weight: 750; }
.checkout-overview > span strong { font-size: 20px; }
.checkout-overview > span.has-warning { border-color: #ecdba8; color: #765018; background: var(--warning-soft); }
.checkout-overview p { margin: 0; color: var(--muted); font-size: 12px; text-align: right; }

.cart-list { display: grid; gap: 13px; margin-bottom: 20px; }
.cart-line { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 17px; padding: 16px; }
.cart-line__image { width: 112px; aspect-ratio: 1 / 1; display: grid; place-items: center; overflow: hidden; border-radius: 13px; background: linear-gradient(145deg, #fafaf8, #ebebe8); }
.cart-line__image img, .detail-line__image img { width: auto; height: auto; max-width: 88%; max-height: 84%; object-fit: contain; filter: drop-shadow(0 5px 5px rgba(52,52,52,.09)); }
.cart-line__image.product-media--vertical img, .detail-line__image.product-media--vertical img { max-width: 62%; max-height: 94%; }
.cart-line__image.product-media--panoramica img, .detail-line__image.product-media--panoramica img { max-width: 96%; max-height: 66%; }
.cart-line__image.product-media--small-source img, .detail-line__image.product-media--small-source img { max-width: 76%; max-height: 78%; }
.cart-line__image .product-image-fallback { width: 82%; }
.detail-line__image .product-image-fallback { width: 88%; }
.cart-line__body { min-width: 0; }
.cart-line__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.cart-line__heading > div { min-width: 0; }
.cart-line__reference { color: var(--muted); font-size: 11px; font-weight: 750; text-transform: uppercase; }
.cart-line h2 { margin: 3px 0 5px; font-size: 17px; }
.cart-line__status { min-height: 28px; display: inline-flex; align-items: center; flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; font-size: 10px; font-weight: 850; white-space: nowrap; }
.cart-line__status.is-ready { color: #205b44; background: var(--success-soft); }
.cart-line__status.is-review { color: #765018; background: var(--warning-soft); }
.cart-line__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: 7px; margin: 9px 0; }
.cart-line__facts > span { min-width: 0; display: grid; gap: 1px; padding: 8px 9px; border-radius: 9px; background: #f5f5f2; }
.cart-line__facts small { color: var(--muted); font-size: 9px; font-weight: 750; letter-spacing: .025em; text-transform: uppercase; }
.cart-line__facts strong { overflow-wrap: anywhere; font-size: 13px; }
.cart-line__facts strong em { color: var(--muted); font-size: 9px; font-style: normal; font-weight: 700; white-space: nowrap; }
.cart-line__facts .cart-line__subtotal { color: #205b44; background: var(--success-soft); }
.cart-line__facts .cart-line__subtotal strong { font-size: 16px; }
.cart-line__update-form { width: 100%; display: grid; gap: 9px; padding-top: 10px; }
.cart-line__update-form > .button { width: 100%; }
.cart-line.is-unavailable { border-color: #e5c979; }
.cart-line.is-unavailable:not(.needs-review) { border-color: #efc5c2; }
.cart-line__error { display: grid; gap: 2px; margin: 9px 0; padding: 10px 11px; border: 1px solid #ecd79a; border-radius: 10px; color: #71501a; background: var(--warning-soft); font-size: 12px; }
.cart-line.is-unavailable:not(.needs-review) .cart-line__error { border-color: #efc5c2; color: #842b2b; background: var(--danger-soft); }
.cart-line__editor { margin-top: 9px; border: 1px solid #deded9; border-radius: 11px; background: #fff; }
.cart-line__editor summary { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 11px; color: #684b0c; font-size: 12px; font-weight: 800; cursor: pointer; list-style: none; touch-action: manipulation; }
.cart-line__editor summary::-webkit-details-marker { display: none; }
.cart-line__editor summary::after { content: "+"; width: 24px; height: 24px; display: grid; place-items: center; flex: 0 0 24px; border-radius: 50%; color: #684b0c; background: var(--brand-soft); font-size: 17px; }
.cart-line__editor[open] summary { border-bottom: 1px solid #eee1bb; }
.cart-line__editor[open] summary::after { content: "−"; }
.cart-line__editor summary:focus-visible { outline-offset: 2px; }
.cart-line__editor form { padding: 0 11px 11px; }
.cart-line__actions { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; }
.cart-line__actions form { margin: 0 0 0 auto; }
.cart-line__actions .text-link { min-height: 44px; display: inline-flex; align-items: center; font-size: 12px; }
.cart-line__actions .button, .cart-line__update-form .button { min-height: 44px; }

.checkout-grid { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 20px; align-items: start; }
.checkout-panel { position: sticky; top: 140px; padding: 22px; }
.checkout-panel > .eyebrow { margin-bottom: 2px; }
.checkout-panel h2 { margin-bottom: 15px; font-size: 21px; }
.checkout-destination { display: grid; gap: 2px; margin-bottom: 15px; padding: 11px 12px; border: 1px solid #eadcae; border-radius: 11px; background: #fffaf0; }
.checkout-destination span { color: var(--muted); font-size: 11px; font-weight: 700; }
.checkout-destination strong { font-size: 14px; }
.checkout-counts { display: grid; gap: 7px; margin: 0 0 14px; }
.checkout-counts > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #315d4b; font-size: 12px; }
.checkout-counts dt { font-weight: 700; }
.checkout-counts dd { min-width: 27px; min-height: 27px; display: grid; place-items: center; margin: 0; border-radius: 50%; color: #fff; background: var(--success); font-size: 12px; font-weight: 850; }
.checkout-counts .has-warning { color: #765018; }
.checkout-counts .has-warning dd { background: #b5791e; }
.checkout-review-warning { display: grid; gap: 2px; margin-bottom: 15px; padding: 10px 11px; border: 1px solid #ecd79a; border-radius: 10px; color: #71501a; background: var(--warning-soft); font-size: 11px; line-height: 1.4; }
.checkout-panel form[data-confirm-order] { display: grid; gap: 13px; }
.checkout-panel .field-label span { color: var(--muted); font-weight: 500; }
.checkout-panel .field-help { margin-top: 4px; }
.total-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.total-row span { color: var(--muted); }
.total-row strong { font-size: 25px; letter-spacing: -.03em; }
.checkout-safe-submit { display: flex; align-items: flex-start; justify-content: center; gap: 6px; margin: -4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.35; text-align: center; }
.checkout-safe-submit > span { color: var(--success); font-weight: 900; }
.checkout-next-step { display: grid; gap: 2px; margin: 15px 0; padding: 11px; border-radius: 10px; color: #315d4b; background: #f4faf7; font-size: 11px; }
.checkout-next-step strong { font-size: 12px; }

.orders-list { display: grid; gap: 14px; }
.order-card { padding: 20px; }
.order-card__top { display: flex; justify-content: space-between; gap: 20px; }
.order-card__number { margin-bottom: 4px; font-size: 19px; }
.order-card__meta { color: var(--muted); font-size: 13px; }
.order-card__total { font-size: 21px; font-weight: 850; white-space: nowrap; }
.order-card__status { display: inline-flex; align-items: center; gap: 7px; margin-top: 11px; padding: 6px 10px; border-radius: 999px; color: var(--info); background: var(--info-soft); font-size: 12px; font-weight: 800; }
.order-card__status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.status--accepted, .status--served, .status--prepared { color: var(--success); background: var(--success-soft); }
.status--rejected, .status--cancelled { color: var(--danger); background: var(--danger-soft); }
.status--preparing { color: var(--warning); background: var(--warning-soft); }
.order-card__update { display: grid; gap: 5px; margin-top: 12px; padding: 12px 14px; border-radius: 12px; background: #fafaf7; }
.order-card__message { margin: 0; color: var(--ink); font-size: 13px; font-weight: 700; }
.order-card__reason { margin: 0; color: #8a342e; font-size: 13px; }
.order-card__next { margin: 0; color: var(--muted); font-size: 12px; }
.order-card__update time { color: #777; font-size: 11px; }
.order-card__items { margin: 14px 0 0; padding-top: 13px; border-top: 1px solid var(--line); color: #5d5d5d; font-size: 13px; }
.order-card__items span + span::before { content: " · "; color: #aaa; }
.order-card__actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.order-card__actions form { margin: 0; }

.usual-order { margin-bottom: 24px; padding: 22px; border-color: #efd171; background: linear-gradient(125deg, #fff 10%, #fff7df); }
.usual-order__top { display: flex; justify-content: space-between; gap: 20px; }
.usual-order h2 { margin-bottom: 5px; font-size: 20px; }
.usual-order p { color: var(--muted); }
.usual-order__items { display: grid; gap: 6px; margin: 15px 0; padding: 0; list-style: none; font-size: 13px; }

.order-hero { display: flex; justify-content: space-between; gap: 24px; margin-bottom: 18px; padding: 24px; }
.order-hero__label { color: var(--muted); font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; }
.order-hero h1 { margin: 4px 0 5px; font-size: 30px; }
.order-hero p { margin-bottom: 0; color: var(--muted); }
.order-hero__total { font-size: 26px; font-weight: 850; white-space: nowrap; }

.order-status-summary { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 16px; margin-bottom: 18px; padding: 22px; border-left: 4px solid var(--info); }
.order-status-summary--accepted, .order-status-summary--prepared, .order-status-summary--served { border-left-color: var(--success); }
.order-status-summary--preparing { border-left-color: var(--warning); }
.order-status-summary--rejected, .order-status-summary--cancelled { border-left-color: var(--danger); }
.order-status-summary__icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: var(--info); background: var(--info-soft); font-size: 22px; font-weight: 900; }
.order-status-summary--accepted .order-status-summary__icon, .order-status-summary--prepared .order-status-summary__icon, .order-status-summary--served .order-status-summary__icon { color: var(--success); background: var(--success-soft); }
.order-status-summary--preparing .order-status-summary__icon { color: var(--warning); background: var(--warning-soft); }
.order-status-summary--rejected .order-status-summary__icon, .order-status-summary--cancelled .order-status-summary__icon { color: var(--danger); background: var(--danger-soft); }
.order-status-summary__content h2 { margin: 2px 0 4px; font-size: 22px; }
.order-status-summary__message { margin: 0; color: var(--muted); }
.order-status-summary__reason, .order-status-summary__next { display: grid; gap: 2px; margin-top: 14px; padding: 11px 13px; border-radius: 11px; background: #f7f7f3; font-size: 13px; }
.order-status-summary__reason { color: #79332e; background: var(--danger-soft); }
.order-status-summary__next strong, .order-status-summary__reason strong { font-size: 12px; }
.order-status-summary__content > time { display: block; margin-top: 10px; color: var(--muted); font-size: 11px; }

.order-progress { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0 0 18px; padding: 18px 14px 14px; list-style: none; }
.order-progress__step { position: relative; display: grid; justify-items: center; gap: 7px; color: #90908b; font-size: 11px; font-weight: 700; line-height: 1.2; text-align: center; }
.order-progress__step:not(:first-child)::before { content: ""; position: absolute; top: 13px; right: 50%; width: 100%; height: 2px; background: #e5e5df; }
.order-progress__marker { position: relative; z-index: 1; width: 28px; height: 28px; display: grid; place-items: center; border: 2px solid #deded7; border-radius: 50%; color: #777; background: #fff; }
.order-progress__step--completado, .order-progress__step--actual { color: var(--brand-dark); }
.order-progress__step--completado::before, .order-progress__step--actual::before { background: var(--brand); }
.order-progress__step--completado .order-progress__marker { border-color: var(--brand); color: #fff; background: var(--brand); }
.order-progress__step--actual .order-progress__marker { border-color: var(--brand); color: var(--brand-dark); background: var(--brand-soft); box-shadow: 0 0 0 4px rgba(248, 167, 0, .14); }

.timeline-card, .order-detail-card { margin-bottom: 18px; padding: 22px; }
.timeline-card h2, .order-detail-card h2 { margin-bottom: 20px; font-size: 20px; }
.timeline-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.timeline-card__heading h2 { margin: 2px 0 0; }
.timeline-card__heading > p { max-width: 250px; margin: 0; color: var(--muted); font-size: 12px; text-align: right; }
.timeline { margin: 0; padding: 0; list-style: none; }
.timeline__item { position: relative; display: grid; grid-template-columns: 22px 1fr; gap: 12px; padding-bottom: 22px; }
.timeline__item:not(:last-child)::before { content: ""; position: absolute; top: 19px; bottom: -1px; left: 9px; width: 2px; background: #f0d77f; }
.timeline__dot { position: relative; z-index: 1; width: 20px; height: 20px; display: grid; place-items: center; border: 4px solid #ffe5a0; border-radius: 50%; background: var(--brand); }
.timeline__item--current .timeline__dot { box-shadow: 0 0 0 4px rgba(248, 167, 0, .14); }
.timeline__item--rejected .timeline__dot, .timeline__item--cancelled .timeline__dot { border-color: var(--danger-soft); background: var(--danger); }
.timeline__copy strong { display: block; margin-bottom: 3px; }
.timeline__copy p { margin-bottom: 3px; }
.timeline__copy time { color: var(--muted); font-size: 12px; }

.detail-lines { display: grid; }
.detail-line { display: grid; grid-template-columns: 1fr auto; gap: 15px; padding: 14px 0; border-top: 1px solid var(--line); }
.detail-line:first-child { padding-top: 0; border-top: 0; }
.detail-line h3 { margin-bottom: 3px; font-size: 15px; }
.detail-line p { margin-bottom: 0; color: var(--muted); font-size: 12px; }
.detail-line strong { white-space: nowrap; }
.detail-line__main { display: flex; align-items: center; gap: 12px; min-width: 0; }
.detail-line__image { width: 58px; height: 58px; display: grid; place-items: center; flex: 0 0 auto; overflow: hidden; border-radius: 11px; background: linear-gradient(145deg, #fafaf8, #ebebe8); }

.auth-shell { width: min(calc(100% - 32px), 1040px); min-height: 100vh; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 72px; margin-inline: auto; padding: 48px 0; }
.auth-intro { padding: 20px; }
.auth-intro .brand { margin-bottom: 34px; }
.auth-intro__title { max-width: 520px; margin-bottom: 14px; color: var(--ink); font-size: clamp(34px, 5vw, 54px); font-weight: 800; line-height: 1.04; letter-spacing: -.045em; }
.auth-intro > p { max-width: 510px; color: var(--muted); font-size: 18px; }
.auth-panel { position: relative; }
.auth-panel::before { content: ""; position: absolute; inset: -10px 18px 10px -18px; z-index: -1; border-radius: 30px; background: rgba(248, 167, 0, .13); transform: rotate(-2deg); }
.auth-card { padding: clamp(24px, 5vw, 38px); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.auth-card__intro { margin-bottom: 24px; }
.auth-card__intro p { margin-bottom: 0; color: var(--muted); }
.password-field { position: relative; }
.password-field .field-input { padding-right: 78px; }
.password-toggle { position: absolute; top: 2px; right: 6px; min-height: 44px; padding: 6px 9px; border: 0; border-radius: 8px; color: var(--brand-dark); background: var(--brand-soft); font-size: 12px; font-weight: 800; cursor: pointer; }
.check-row { min-height: 44px; display: flex; align-items: center; gap: 9px; margin: 3px 0 20px; color: var(--muted); font-size: 14px; }
.check-row input { width: 22px; height: 22px; accent-color: var(--brand); }
.auth-help { margin: 18px 0 0; text-align: center; }
.auth-help a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 750; }
.auth-security { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 21px; color: var(--muted); font-size: 11px; }

.page-loading, .blocking-feedback { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 20px; background: rgba(32, 33, 30, .52); backdrop-filter: blur(3px); }
.page-loading[hidden], .blocking-feedback[hidden] { display: none; }
.page-loading__panel { min-width: min(86vw, 290px); display: grid; justify-items: center; gap: 5px; padding: 24px; border-radius: 18px; color: var(--ink); background: #fff; box-shadow: 0 20px 60px rgba(30, 30, 27, .24); text-align: center; }
.page-loading__panel > span:last-child { color: var(--muted); font-size: 12px; }
.page-loading__spinner { width: 38px; height: 38px; margin-bottom: 6px; border: 4px solid #f1e4bd; border-top-color: var(--brand-dark); border-radius: 50%; animation: client-spin .8s linear infinite; }
.blocking-feedback__panel { width: min(100%, 480px); padding: 28px; text-align: center; box-shadow: 0 22px 70px rgba(30, 30, 27, .28); }
.blocking-feedback__icon { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 14px; border-radius: 18px; color: #765018; background: var(--warning-soft); font-size: 28px; font-weight: 900; }
.blocking-feedback h2 { margin-bottom: 7px; font-size: 24px; }
.blocking-feedback p { color: var(--muted); }
.blocking-feedback .button { margin-top: 5px; }
@keyframes client-spin { to { transform: rotate(360deg); } }

.error-area { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: linear-gradient(145deg, #faf9f5, #f3efe3); }
.error-shell { width: min(100%, 590px); }
.error-brand { width: 220px; margin: 0 auto 20px; }
.error-brand img { width: 100%; height: auto; display: block; }
.error-card { padding: clamp(26px, 7vw, 42px); text-align: center; box-shadow: var(--shadow-md); }
.error-card__icon { width: 66px; height: 66px; display: grid; place-items: center; margin: 0 auto 17px; border-radius: 20px; color: #765018; background: var(--warning-soft); font-size: 30px; font-weight: 900; }
.error-card h1 { margin: 3px 0 9px; font-size: clamp(27px, 6vw, 38px); line-height: 1.1; }
.error-card > p:not(.eyebrow) { color: var(--muted); font-size: 16px; }
.error-card__notice { margin: 18px 0; padding: 12px 14px; border-radius: 11px; color: #4e554f; background: #f4f6f3; font-size: 13px; }
.error-card__notice strong { display: block; margin-bottom: 2px; }
.error-footer { margin: 15px 0 0; color: #777; font-size: 11px; text-align: center; }

@media (max-width: 980px) {
    body.client-area { padding-bottom: 76px; }
    body.client-area .whatsapp-help { bottom: 84px; }
    body.client-area .whatsapp-help--raised { bottom: 160px; }
    .whatsapp-help { right: 14px; width: 54px; height: 54px; min-height: 54px; padding: 8px; justify-content: center; }
    .whatsapp-help span { display: none; }
    .whatsapp-help svg { width: 34px; height: 34px; }
    .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .checkout-grid { grid-template-columns: 1fr; }
    .checkout-panel { position: static; }
    .auth-shell { grid-template-columns: .9fr 1.1fr; gap: 32px; }
    .auth-intro__title { font-size: 38px; }
    .desktop-navigation { display: none; }
    .client-header__account { margin-left: auto; }
    .brand--header { width: 215px; flex-basis: 215px; }
    body.client-area > .whatsapp-help { display: none; }
    .mobile-navigation { position: fixed; right: 0; bottom: 0; left: 0; z-index: 60; min-height: 68px; display: grid; grid-template-columns: repeat(4, 1fr); padding: 6px max(8px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); border-top: 1px solid var(--line); background: rgba(255,255,255,.98); box-shadow: 0 -8px 24px rgba(52,52,52,.08); backdrop-filter: blur(12px); }
    .mobile-navigation a, .mobile-navigation__help { position: relative; min-height: 54px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; border-radius: 10px; color: #696969; font-size: 11px; font-weight: 700; text-decoration: none; }
    .mobile-navigation__help { color: #5f675f; }
    .mobile-navigation a.is-active { color: #6f4a00; background: var(--brand-soft); }
    .mobile-navigation svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
    .mobile-navigation__icon-wrap { position: relative; line-height: 0; }
    .mobile-navigation__count { position: absolute; top: -7px; right: -12px; min-width: 19px; height: 19px; display: grid; place-items: center; padding: 0 5px; border: 2px solid #fff; border-radius: 999px; color: #fff; background: var(--accent); font-size: 9px; }
}

@media (max-width: 720px) {
    body.client-area { padding-bottom: 76px; }
    .client-shell { width: min(calc(100% - 24px), var(--shell)); }
    .client-main { padding-top: 20px; padding-bottom: 36px; }
    .client-header__inner { min-height: 64px; }
    .client-destination-header { top: 64px; }
    .brand--header { width: 185px; flex-basis: 185px; }
    .account-name { display: none; }
    .client-header__account { gap: 5px; }
    .client-header__account .button { min-height: 44px; padding: 7px 10px; }
    .page-heading { display: block; margin-bottom: 18px; }
    .page-heading h1 { font-size: 28px; }
    .page-heading .button { width: 100%; margin-top: 14px; }
    .order-destination { margin-bottom: 17px; padding: 9px 10px; }
    .client-destination-header .order-destination { min-height: 46px; margin-bottom: 0; padding: 6px 0; }
    .order-destination__copy { display: grid; gap: 0; }
    .order-destination__label { font-size: 10px; }
    .order-destination__copy small { display: none; }
    .order-destination__change { padding: 7px 9px; }
    .destination-change-dialog { inset: auto 0 0; width: 100%; max-width: none; margin: 0; padding: 24px 18px calc(22px + env(safe-area-inset-bottom)); border-radius: 22px 22px 0 0; }
    .destination-change-dialog__actions { display: grid; }
    .destination-change-dialog__actions .button { width: 100%; }
    .repeat-card { grid-template-columns: 1fr; gap: 16px; padding: 19px; }
    .repeat-card .button { width: 100%; }
    .repeat-card__actions small { font-size: 12px; }
    .repeat-card__facts { display: grid; grid-template-columns: .8fr 1.2fr; }
    .repeat-card__facts > span { min-width: 0; }
    .feedback-state--compact { grid-template-columns: 48px minmax(0, 1fr); padding: 15px; }
    .feedback-state--compact .feedback-state__icon { width: 48px; height: 48px; }
    .feedback-state--compact .feedback-state__actions { grid-column: 1 / -1; width: 100%; display: grid; }
    .feedback-state--compact .feedback-state__actions .button { width: 100%; }
    .product-grid { grid-template-columns: 1fr; gap: 12px; }
    .product-card { display: grid; grid-template-columns: 116px minmax(0, 1fr); }
    .product-card__media { width: 100%; height: auto; min-height: 100%; border-right: 1px solid #e8e8e5; border-bottom: 0; }
    .product-card__body { padding: 13px; }
    .product-card h2 { min-height: 0; font-size: 15px; }
    .product-card__format { min-height: 0; margin-bottom: 7px; font-size: 11px; }
    .product-card__price { margin-bottom: 8px; padding: 8px 9px; }
    .product-card__price-row strong { font-size: 20px; }
    .product-card__price-row .product-card__tax { font-size: 9px; }
    .product-card__form { gap: 7px; }
    .measure-option > span { min-height: 50px; padding: 7px; }
    .measure-option strong { font-size: 11px; }
    .measure-summary { min-height: 50px; padding: 7px 8px; }
    .quantity-stepper { grid-template-columns: 48px minmax(44px, 1fr) 48px; min-height: 50px; }
    .quantity-stepper button { min-width: 48px; min-height: 48px; }
    .quantity-result { display: grid; gap: 2px; }
    .quantity-result strong { text-align: left; }
    .field-select { min-height: 42px; padding: 8px; font-size: 13px; }
    .product-card .button { min-height: 48px; padding: 11px 12px; font-size: 13px; }
    .product-card .button--product { min-height: 52px; }
    .floating-cart { right: 12px; bottom: 78px; left: 12px; min-width: 0; }
    .whatsapp-help { right: 12px; width: 54px; height: 54px; min-height: 54px; padding: 8px; justify-content: center; }
    .whatsapp-help span { display: none; }
    .whatsapp-help svg { width: 34px; height: 34px; }
    .client-toast-region { top: 76px; }
    .notice-history-list li { align-items: flex-start; flex-direction: column; gap: 6px; }
    .notice-history-list .text-link { min-height: 44px; }
    .search-field input { min-height: 54px; padding-right: 104px; }
    .search-field .button { min-height: 44px; padding-inline: 14px; }
    .catalog-tools { padding: 15px 12px; }
    .catalog-tools__heading { align-items: flex-start; }
    .catalog-tools__heading h2 { font-size: 19px; }
    .catalog-usuals-link { padding-inline: 9px; }
    .catalog-filters__scroller { margin-right: -12px; padding-right: 12px; }
    .catalog-filter { min-height: 44px; }
    .search-summary { align-items: flex-start; flex-direction: column; gap: 8px; }
    .search-summary__actions { justify-content: flex-start; }
    .checkout-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 11px; }
    .checkout-overview > span { min-width: 0; }
    .checkout-overview p { grid-column: 1 / -1; text-align: left; }
    .cart-line { grid-template-columns: 78px minmax(0, 1fr); gap: 12px; padding: 13px; }
    .cart-line__image { width: 78px; }
    .cart-line__heading { display: grid; gap: 5px; }
    .cart-line__status { justify-self: start; }
    .cart-line__facts { grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); }
    .cart-line__update-form { width: 100%; }
    .checkout-panel { padding: 18px; }
    .order-card { padding: 16px; }
    .order-card__top { gap: 10px; }
    .order-card__total { font-size: 18px; }
    .order-card__actions { display: grid; grid-template-columns: 1fr; }
    .order-card__actions .button, .order-card__actions form, .order-card__actions form .button { width: 100%; }
    .order-hero { padding: 19px; }
    .order-hero h1 { font-size: 25px; }
    .order-hero__total { font-size: 22px; }
    .order-status-summary { padding: 18px; }
    .order-progress { padding-inline: 8px; }
    .order-progress__step { font-size: 10px; }
    .timeline-card, .order-detail-card { padding: 18px; }
    .auth-shell { width: min(calc(100% - 24px), 520px); grid-template-columns: 1fr; gap: 18px; padding: 24px 0; }
    .auth-intro { padding: 0 6px; }
    .auth-intro .brand { margin-bottom: 18px; }
    .auth-intro__title { font-size: 29px; }
    .auth-intro > p { font-size: 15px; }
    .auth-panel::before { display: none; }
    .auth-card { padding: 24px 20px; }
}

@media (max-width: 420px) {
    .brand--header { width: 172px; flex-basis: 172px; }
    .product-card { grid-template-columns: 102px minmax(0, 1fr); }
    .product-card__reference { font-size: 10px; }
    .center-option button { grid-template-columns: auto 1fr; }
    .center-option__arrow { display: none; }
    .order-hero { display: grid; }
    .order-hero__total { text-align: left; }
    .order-status-summary { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; }
    .order-status-summary__icon { width: 40px; height: 40px; font-size: 19px; }
    .timeline-card__heading { display: grid; gap: 5px; }
    .timeline-card__heading > p { text-align: left; }
    .order-progress__step > span:last-child { max-width: 54px; }
}

@media (hover: hover) {
    .product-card:hover { transform: translateY(-2px); border-color: #d4d4cf; box-shadow: var(--shadow-md); }
    .product-card:hover .product-card__image { transform: scale(1.035); }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}
