/* =========================================================
   PEDIDO EN LÍNEA V2 — CSS LIMPIO REAL
   Archivo: public/css/portal/orders/index.css
   Objetivo:
   - Una sola definición por bloque principal
   - Desktop intacto
   - Mobile dedicado
   - Carrito alineado al alto del catálogo, con scroll interno
   ========================================================= */

:root {
    --ord-primary: #6f1dbe;
    --ord-primary-dark: #53119a;
    --ord-primary-soft: #f4ecff;
    --ord-pink: #ff2f92;
    --ord-pink-soft: #fff0f7;
    --ord-gold: #ffb800;
    --ord-text: #221b44;
    --ord-text-soft: #6f6887;
    --ord-border: #e8deef;
    --ord-border-strong: #dac8ea;
    --ord-bg: #fbf8fd;
    --ord-card: #ffffff;
    --ord-success: #22a06b;
    --ord-danger: #ff4d6d;
    --ord-shadow: 0 18px 45px rgba(96, 34, 145, 0.08);
    --ord-radius-xl: 28px;
    --ord-radius-lg: 22px;
    --ord-radius-md: 18px;
    --ord-radius-sm: 14px;
}

* {
    box-sizing: border-box;
}

.ord-no-scroll {
    overflow: hidden;
}

/* =========================================================
   BANDAS / HERO
   ========================================================= */

.ord-band {
    padding: 18px 0 0;
}

.ord-band-hero {
    position: relative;
    overflow: hidden;
    padding: 18px 0 14px;
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 111, 196, 0.18) 0%, transparent 26%),
        radial-gradient(circle at 12% 20%, rgba(143, 76, 255, 0.12) 0%, transparent 22%),
        linear-gradient(135deg, #f7effc 0%, #fdf8ff 100%);
}

.ord-band-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,0) 28%),
        linear-gradient(180deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,0) 40%);
    pointer-events: none;
}

.ord-band-hero::after {
    content: '';
    position: absolute;
    right: -40px;
    top: -10px;
    width: 360px;
    height: 220px;
    background:
        radial-gradient(circle at 30% 40%, rgba(255, 196, 58, 0.18) 0%, transparent 26%),
        radial-gradient(circle at 62% 38%, rgba(255, 79, 160, 0.18) 0%, transparent 28%),
        radial-gradient(circle at 72% 72%, rgba(107, 31, 168, 0.16) 0%, transparent 30%);
    filter: blur(8px);
    pointer-events: none;
}

.ord-band-main {
    background: #fff;
    padding: 14px 0 32px;
}

.ord-hero-grid,
.ord-hero-grid-simple {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    min-height: auto;
}

.ord-hero-copy {
    position: relative;
    z-index: 2;
    padding: 8px 0 6px;
}

.ord-hero-title,
.ord-hero-copy h1 {
    margin: 0 0 6px;
    font-size: 3.4rem;
    line-height: .95;
    font-weight: 900;
    letter-spacing: -0.04em;
    color: #2b1e4a;
    text-shadow: 0 6px 18px rgba(111, 29, 190, 0.08);
}

.ord-hero-title span {
    display: block;
    background: linear-gradient(135deg, #ff4fa0 0%, #6b1fa8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.ord-hero-copy p {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.6;
    color: #6e6487;
    max-width: 560px;
}

/* =========================================================
   TARJETAS SUPERIORES
   ========================================================= */

.ord-top-cards {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 10px;
    padding-bottom: 18px;
}

.ord-top-card {
    background: rgba(255,255,255,0.84);
    backdrop-filter: blur(10px);
    border: 1px solid #e8d8f2;
    border-radius: 18px;
    padding: 14px 16px;
    display: flex;
    gap: 12px;
    align-items: flex-start;
    transition: .2s ease;
    box-shadow: 0 10px 24px rgba(74, 20, 105, 0.05);
}

.ord-top-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(111, 29, 190, 0.09);
}

.ord-top-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: linear-gradient(135deg, #f2ddff 0%, #ffe8f4 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.12rem;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.55);
}

.ord-top-label {
    font-size: 12px;
    line-height: 1.1;
    color: #7d7493;
    font-weight: 600;
    margin-bottom: 4px;
}

.ord-top-title {
    font-size: 14px;
    line-height: 1.15;
    color: var(--ord-primary-dark);
    font-weight: 900;
}

.ord-top-sub {
    font-size: 10px;
    color: #786f8f;
}

.ord-top-sub a {
    color: var(--ord-primary);
    font-weight: 800;
    text-decoration: none;
}

/* =========================================================
   LAYOUT DESKTOP
   ========================================================= */

.ord-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr) 350px;
    gap: 18px;
    align-items: stretch;
}

.ord-sidebar,
.ord-products,
.ord-cart {
    min-width: 0;
}

.ord-mobile-filters,
.ord-mobile-cart-btn {
    display: none;
}

/* =========================================================
   SIDEBAR / FILTROS DESKTOP
   ========================================================= */

.ord-sidebar {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.ord-search-box {
    display: grid;
    grid-template-columns: 1fr 42px;
    align-items: center;
    height: 52px;
    background: #fff;
    border: 1px solid var(--ord-border);
    border-radius: 14px;
    overflow: hidden;
}

.ord-search-box input {
    width: 100%;
    height: 100%;
    padding: 0 16px;
    border: 0;
    outline: none;
    background: transparent;
    color: var(--ord-text);
    font-size: .97rem;
    font-weight: 500;
}

.ord-search-box input::placeholder {
    color: #9189a6;
}

.ord-search-box button {
    width: 42px;
    height: 42px;
    margin-right: 6px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--ord-primary-dark);
    font-size: 1.05rem;
    cursor: pointer;
}

.ord-sidebar-card {
    background: #fff;
    border: 1px solid var(--ord-border);
    border-radius: 18px;
    padding: 14px;
}

.ord-sidebar-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.ord-sidebar-card h3 {
    margin: 4px 0 14px;
    color: var(--ord-text);
    font-size: 1.02rem;
    font-weight: 900;
}

.ord-cat-main-static,
.ord-cat-main {
    width: 100%;
    min-height: 42px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(135deg, #6f1dbe 0%, #7f28d8 100%);
    color: #fff;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 14px;
    font-weight: 900;
    margin-bottom: 12px;
    box-shadow: 0 10px 18px rgba(111, 29, 190, 0.16);
}

.ord-cat-list,
.ord-cat-list-short {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 420px;
    overflow-y: auto;
    padding-right: 4px;
}

.ord-cat-list a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 34px;
    padding: 4px 10px;
    border-radius: 10px;
    text-decoration: none;
    color: #352c59;
    font-weight: 600;
    transition: .16s ease;
}

.ord-cat-list a:hover,
.ord-cat-list a.is-active {
    background: #faf5ff;
    color: var(--ord-primary);
    font-weight: 800;
}

.ord-check {
    position: relative;
    display: grid;
    grid-template-columns: 18px 1fr auto;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    margin: 0;
    color: #494061;
    font-size: .94rem;
    font-weight: 600;
}

.ord-check input {
    width: 16px;
    height: 16px;
    accent-color: var(--ord-primary);
}

.ord-check b {
    min-width: 24px;
    padding: 2px 7px;
    border-radius: 999px;
    background: var(--ord-pink);
    color: #fff;
    font-size: .72rem;
    line-height: 1.2;
    text-align: center;
}

.ord-filter-note {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 14px;
    background: #f8f2ff;
    border: 1px solid #eadcf5;
    color: #5b247a;
}

.ord-filter-note span {
    display: block;
    font-size: .82rem;
    font-weight: 900;
}

.ord-filter-note small {
    display: block;
    margin-top: 3px;
    font-size: .72rem;
    color: #8a739b;
    font-weight: 700;
    line-height: 1.25;
}

.ord-clear-btn {
    width: 100%;
    height: 40px;
    margin-top: 12px;
    border: 1px solid #eadcf5;
    border-radius: 12px;
    background: #faf5ff;
    color: #8d77a8;
    font-weight: 700;
    font-size: .92rem;
    cursor: pointer;
}

/* =========================================================
   PRODUCTOS
   ========================================================= */

.ord-products {
    width: 100%;
}

.ord-products-head,
.ord-products-head-form {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
    padding: 2px 8px 0;
}

.ord-products-head h2 {
    margin: 0;
    font-size: 1.02rem;
    color: var(--ord-text);
    font-weight: 900;
}

.ord-products-head-right {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ord-products-head select,
.ord-products-head-right select {
    min-width: 220px;
    height: 42px;
    padding: 0 14px;
    border: 1px solid var(--ord-border);
    border-radius: 12px;
    background: #fff;
    color: #4c4266;
    font-weight: 700;
    outline: none;
}

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

.ord-empty-products {
    grid-column: 1 / -1;
    padding: 24px;
    border: 1px dashed #e2d4ee;
    border-radius: 18px;
    background: #fbf7fe;
    color: #6f6887;
    text-align: center;
    font-weight: 700;
}

.ord-product-card {
    position: relative;
    background: var(--ord-card);
    border: 1px solid var(--ord-border);
    border-radius: 16px;
    padding: 10px 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 7px;
    transition: .16s ease;
    min-height: 258px;
}

.ord-product-card:hover {
    border-color: #dcc8ee;
    box-shadow: 0 16px 32px rgba(94, 31, 152, 0.08);
    transform: translateY(-2px);
}

.ord-product-card.has-promo {
    border-color: #ffd3ea;
    box-shadow: 0 14px 34px rgba(255,47,146,.10);
    background: linear-gradient(180deg,#fff 0%,#fff9fd 100%);
}

.ord-product-card.has-promo:hover {
    box-shadow: 0 18px 42px rgba(255,47,146,.16);
}

.ord-product-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 28px;
}

.ord-product-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 950;
    line-height: 1;
}

.ord-badge-promo,
.ord-product-badge.is-promo {
    background: linear-gradient(135deg,#ff2f92,#ff7abf);
    color: #fff;
    box-shadow: 0 8px 18px rgba(255,47,146,.22);
}

.ord-badge-combo {
    background: linear-gradient(135deg, #6f1dbe 0%, #8b34e3 100%);
    color: #fff;
}

.ord-product-badge-spacer {
    min-width: 1px;
}

.ord-stock-pill {
    display: inline-flex;
    align-items: center;
    padding: 5px 8px;
    border-radius: 999px;
    background: #f1fff6;
    color: #18864b;
    font-size: .68rem;
    font-weight: 900;
    white-space: nowrap;
}

.ord-product-image {
    height: 110px;
    border-radius: 14px;
    background: linear-gradient(180deg, #fff 0%, #faf8fd 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.ord-product-image img {
    max-width: 100%;
    max-height: 112px;
    object-fit: contain;
    display: block;
}

.ord-product-fallback {
    width: 72px;
    height: 72px;
    border-radius: 18px;
    background: #f4ebff;
    color: var(--ord-primary);
    font-size: 2rem;
    font-weight: 900;
    place-items: center;
}

.ord-product-info {
    min-height: 34px;
}

.ord-product-name {
    min-height: 34px;
    color: #2b2349;
    font-size: .92rem;
    line-height: 1.18;
    font-weight: 800;
}

.ord-product-promo-text {
    margin-top: 5px;
    color: #ff2f92;
    font-size: .76rem;
    font-weight: 900;
}

.ord-product-prices {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.ord-product-prices strong {
    font-size: .98rem;
    line-height: 1;
    color: var(--ord-primary);
    font-weight: 900;
}

.ord-product-prices span {
    font-size: .84rem;
    color: #a59ab5;
    text-decoration: line-through;
    font-weight: 700;
}

.ord-product-meta-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: -16px;
}

.ord-product-points {
    font-size: .6rem;
    color: #f2a500;
    font-weight: 800;
}

.ord-product-stock {
    color: #7b668d;
    font-size: .72rem;
    font-weight: 850;
    white-space: nowrap;
}

.ord-add-btn {
    width: 100%;
    min-height: 36px;
    margin-top: auto;
    border: 1.5px solid #ff8cc3;
    border-radius: 12px;
    background: #fff;
    color: var(--ord-pink);
    font-size: .9rem;
    font-weight: 800;
    cursor: pointer;
    transition: .16s ease;
}

.ord-add-btn:hover {
    background: var(--ord-pink);
    color: #fff;
    border-color: var(--ord-pink);
}

.ord-more-wrap {
    display: flex;
    justify-content: center;
    padding: 8px 0;
}

.ord-more-wrap-dual {
    gap: 10px;
    flex-wrap: wrap;
}

.ord-more-btn {
    min-width: 220px;
    min-height: 42px;
    padding: 10px 28px;
    border: 1.5px solid #d9c8e8;
    border-radius: 999px;
    background: #fff;
    color: #6d5b88;
    font-weight: 800;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
}

.ord-more-btn-back {
    background: #faf5ff;
    color: #6f1dbe;
    border-color: #d9c8e8;
}

.ord-mobile-remove-item-btn {
    margin-top: 6px;
    border: 0;
    background: #fff1f2;
    color: #be123c;
    font-weight: 800;
    font-size: 12px;
    border-radius: 999px;
    padding: 6px 10px;
}

/* =========================================================
   BENEFICIOS
   ========================================================= */

.ord-bottom-benefits {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin-top: 14px;
    padding: 0;
    border: 1px solid #eee5f4;
    border-radius: 18px;
    background: #f4f5ff;
    overflow: hidden;
}

.ord-benefit {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 68px;
    padding: 0 14px;
    background: #f4f5ff;
}

.ord-benefit + .ord-benefit {
    border-left: 1px solid #eadff3;
}

.ord-benefit span {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #e9dff1;
}

.ord-benefit strong {
    display: block;
    margin-bottom: 2px;
    color: #7e7694;
    font-size: .93rem;
    font-weight: 900;
}

.ord-benefit small {
    display: block;
    color: #786f8f;
    font-size: .82rem;
    line-height: 1.35;
    font-weight: 500;
}

/* =========================================================
   CARRITO DESKTOP
   Altura: estira con la fila del grid hasta el final del catálogo.
   No usa vh ni altura fija.
   ========================================================= */

.ord-cart {
    position: sticky;
    top: 16px;
    align-self: stretch;
    min-height: 0;
}

.ord-cart-card {
    height: 100%;
    min-height: 560px;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--ord-border);
    border-radius: 18px;
    padding: 14px;
    box-shadow: 0 16px 40px rgba(95, 41, 142, 0.06);
    overflow: hidden;
}

.ord-cart-head,
.ord-cart-branch,
.ord-cart-totals,
.ord-cart-total-main,
.ord-cart-note,
.ord-cart-foot,
.ord-cart-cta {
    flex: 0 0 auto;
}

.ord-cart-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 14px;
}

.ord-cart-head-title-wrap {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.ord-cart-head h2 {
    margin: 0;
    color: #2a214a;
    font-size: 1.03rem;
    font-weight: 900;
}

.ord-cart-chip-inline {
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid #e6d8f1;
    background: #ff57a557;
    color: #392f5e;
    font-weight: 900;
    cursor: default;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ord-cart-count {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: var(--ord-pink);
    color: #fff;
    font-size: .8rem;
    font-weight: 900;
    display: grid;
    place-items: center;
}

.ord-cart-branch {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding: 0 0 12px;
    margin-bottom: 10px;
    border-bottom: 1px solid #f0e9f5;
}

.ord-cart-branch strong {
    display: block;
    color: #2f2652;
    font-size: .94rem;
    font-weight: 900;
}

.ord-cart-branch span {
    display: block;
    margin-top: 2px;
    color: #7c7391;
    font-size: .88rem;
    font-weight: 500;
}

.ord-branch-change-btn,
.ord-cart-branch-btn {
    margin-top: 8px;
    border: 0;
    background: transparent;
    color: var(--ord-primary);
    font-size: .86rem;
    font-weight: 900;
    padding: 0;
    cursor: pointer;
    white-space: nowrap;
}

.ord-cart-items {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding-right: 18px;
    margin-right: -8px;
}

.ord-cart-empty {
    padding: 18px 8px;
    color: #7c7391;
    text-align: center;
    font-weight: 600;
}

.ord-cart-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid #f3edf7;
}

.ord-cart-item:last-child {
    border-bottom: 0;
}

.ord-cart-item-left {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex: 1;
}

.ord-cart-thumb {
    width: 66px;
    min-width: 66px;
    height: 66px;
    border-radius: 12px;
    border: 1px solid #efe6f4;
    background: #fff;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.ord-cart-thumb img {
    max-width: 100%;
    max-height: 58px;
    object-fit: contain;
    display: block;
}

.ord-cart-thumb-fallback {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    color: var(--ord-primary);
    background: #f7f0ff;
    font-weight: 900;
}

.ord-cart-item-info {
    min-width: 0;
    padding-top: 2px;
}

.ord-cart-item-name {
    color: #2f2652;
    font-size: .93rem;
    line-height: 1.22;
    font-weight: 800;
    margin-bottom: 8px;
}

.ord-cart-qty-box {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 32px;
    padding: 0 6px;
    border: 1px solid #e8ddef;
    border-radius: 10px;
    background: #fff;
}

.ord-cart-qty-box button {
    width: 20px;
    height: 20px;
    border: 0;
    border-radius: 6px;
    background: #f6f0fb;
    color: #5e4f7f;
    font-size: 1rem;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
    display: grid;
    place-items: center;
}

.ord-cart-qty-box span {
    min-width: 16px;
    text-align: center;
    font-size: .92rem;
    color: #2e264d;
    font-weight: 800;
}

.ord-cart-item-right {
    min-width: 72px;
    padding-right: 8px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: space-between;
    gap: 8px;
}

.ord-cart-item-right strong {
    color: #2f2652;
    font-size: .95rem;
    font-weight: 900;
}

.ord-remove-btn {
    width: 28px;
    height: 28px;
    border: 1px solid #ffd0d8;
    background: #fff1f3;
    color: #e11d48;
    font-size: 1rem;
    cursor: pointer;
    padding: 0;
    border-radius: 999px;
    display: grid;
    place-items: center;
    font-weight: 900;
}

.ord-remove-btn:hover {
    background: #ffe4e8;
    color: #be123c;
}

.ord-cart-totals {
    margin-top: 10px;
    padding-top: 12px;
    border-top: 1px solid #f0e9f5;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ord-cart-totals > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: .93rem;
}

.ord-cart-totals span {
    color: #564d70;
    font-weight: 600;
}

.ord-cart-totals strong {
    color: #2c244a;
    font-weight: 900;
}

.ord-cart-totals .is-minus {
    color: var(--ord-danger);
}

.ord-cart-total-main {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #f0e9f5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.ord-cart-total-main span {
    color: #2c244a;
    font-size: 1.03rem;
    font-weight: 900;
}

.ord-cart-total-main strong {
    color: var(--ord-pink);
    font-size: 2rem;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -0.04em;
}

.ord-cart-note {
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid #eadcf5;
    border-radius: 14px;
    background: #fbf6ff;
}

.ord-cart-note strong {
    display: block;
    margin-bottom: 8px;
    color: #5c2a94;
    font-size: .92rem;
    font-weight: 900;
}

.ord-cart-note ul {
    margin: 0;
    padding-left: 18px;
    color: #5f5777;
    font-size: .86rem;
    line-height: 1.45;
}

.ord-cart-foot {
    margin-top: 10px;
    text-align: center;
    color: #7d7493;
    font-size: .85rem;
    font-weight: 600;
    padding: 14px 0 0;
}

.ord-cart-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 62px;
    margin-top: 14px;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(135deg, #ff2f92 0%, #ff1786 100%);
    color: #fff;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 900;
    box-shadow: 0 18px 30px rgba(255, 47, 146, 0.2);
    cursor: pointer;
}

/* =========================================================
   MODALES GENERALES / SUCURSALES
   ========================================================= */

.ord-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(38, 18, 60, 0.48);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 80;
    padding: 22px;
}

.ord-modal-backdrop.is-hidden {
    display: none !important;
}

.ord-modal-card {
    width: min(760px, 100%);
    background: #fff;
    border-radius: 24px;
    border: 1px solid #eadcf5;
    box-shadow: 0 30px 60px rgba(39, 18, 73, 0.25);
    overflow: hidden;
}

.ord-modal-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 24px 18px;
    border-bottom: 1px solid #f1e5f7;
    background: linear-gradient(135deg, rgba(255,79,160,.05) 0%, rgba(107,31,168,.05) 100%);
}

.ord-modal-kicker {
    color: #c21873;
    font-size: .82rem;
    font-weight: 900;
    margin-bottom: 6px;
    letter-spacing: .02em;
}

.ord-modal-head h3 {
    margin: 0;
    color: #2c1f4f;
    font-size: 1.85rem;
    line-height: 1.02;
    font-weight: 900;
}

.ord-modal-close {
    width: 38px;
    height: 38px;
    border-radius: 999px;
    border: 1px solid #eadcf5;
    background: #fff;
    color: #4f4369;
    cursor: pointer;
    font-weight: 900;
    display: grid;
    place-items: center;
    box-shadow: 0 10px 24px rgba(45,16,65,.06);
}

.ord-modal-close svg {
    width: 18px;
    height: 18px;
}

.ord-branch-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 14px;
    padding: 20px 22px 22px;
}

.ord-branch-option {
    text-align: left;
    border: 1px solid #e6d9f1;
    border-radius: 18px;
    background: #fff;
    padding: 16px;
    cursor: pointer;
    transition: .18s ease;
}

.ord-branch-option:hover,
.ord-branch-option.is-active {
    border-color: #bb97e5;
    background: #fbf6ff;
    box-shadow: 0 10px 22px rgba(111, 29, 190, 0.08);
}

.ord-branch-option-name {
    color: #2d254a;
    font-size: 1rem;
    font-weight: 900;
    margin-bottom: 6px;
}

.ord-branch-option-address,
.ord-branch-option-phone {
    color: #766e8c;
    font-size: .88rem;
    line-height: 1.45;
}

/* =========================================================
   MODAL FINALIZAR DESKTOP
   ========================================================= */

.ord-finalize-modal-card,
.ord-finalize-v2 {
    max-width: 1060px;
    width: min(1060px, calc(100vw - 28px));
    border-radius: 26px;
    overflow: hidden;
    background: linear-gradient(135deg,#fff 0%,#fff9fd 55%,#fff 100%);
    border: 1px solid #ead8f4;
    box-shadow: 0 28px 90px rgba(39,13,57,.22);
}

.ord-finalize-head {
    padding: 22px 26px 18px;
    background: linear-gradient(135deg,#fff7fc,#fff);
    border-bottom: 1px solid #f0def8;
}

.ord-finalize-head h3 {
    margin: 4px 0 0;
    font-size: 1.65rem;
    line-height: 1.1;
    color: #2b123f;
    letter-spacing: -.035em;
}

.ord-finalize-head p {
    margin: 7px 0 0;
    color: #7a668c;
    font-size: .92rem;
    font-weight: 650;
}

.ord-finalize-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 20px;
    padding: 24px 26px 26px;
    align-items: stretch;
}

.ord-finalize-main {
    display: grid;
    gap: 18px;
}

.ord-finalize-summary {
    display: flex;
    align-items: stretch;
}

.ord-finalize-block {
    border: 1px solid #ead8f4;
    border-radius: 22px;
    background: rgba(255,255,255,.86);
    padding: 18px;
    box-shadow: 0 14px 36px rgba(45,16,65,.045);
}

.ord-delivery-address-box,
.ord-mobile-delivery-address-box {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid rgba(236, 72, 153, .16);
    border-radius: 22px;
    background: linear-gradient(135deg, #fff7fb, #ffffff);
}

.ord-delivery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ord-delivery-grid label,
.ord-mobile-delivery-fields label {
    display: grid;
    gap: 6px;
    font-weight: 800;
    font-size: 12px;
    color: #7c2d55;
}

.ord-delivery-grid input,
.ord-delivery-grid textarea,
.ord-mobile-delivery-fields input,
.ord-mobile-delivery-fields textarea {
    width: 100%;
    border: 1px solid rgba(236, 72, 153, .18);
    border-radius: 14px;
    padding: 11px 12px;
    outline: none;
    background: #fff;
}

.ord-delivery-grid .is-wide {
    grid-column: 1 / -1;
}

.ord-mobile-delivery-fields {
    display: grid;
    gap: 12px;
}

.ord-delivery-address-error {
    margin-top: 12px;
    border-radius: 14px;
    padding: 10px 12px;
    background: #fff1f2;
    color: #be123c;
    font-weight: 800;
    font-size: 13px;
}

@media (max-width: 720px) {
    .ord-delivery-grid {
        grid-template-columns: 1fr;
    }
}

.ord-section-title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.ord-section-title strong {
    display: block;
    color: #2b123f;
    font-size: 1rem;
    font-weight: 900;
}

.ord-section-title small {
    display: block;
    margin-top: 2px;
    color: #7a668c;
    font-size: .78rem;
    font-weight: 650;
}

.ord-section-icon {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}

.ord-section-icon svg {
    width: 21px;
    height: 21px;
}

.ord-section-icon.is-purple {
    background: #f3e8ff;
    color: #8b00e8;
}

.ord-section-icon.is-pink {
    background: #ffe4f3;
    color: #ec4899;
}

.ord-section-icon.is-blue {
    background: #e0f2fe;
    color: #0284c7;
}

.ord-radio-card,
.ord-payment-choice-card {
    position: relative;
    display: grid;
    grid-template-columns: 22px 44px 1fr auto;
    align-items: center;
    gap: 12px;
    min-height: 78px;
    padding: 14px 16px;
    border: 1px solid #ead8f4;
    border-radius: 18px;
    background: linear-gradient(135deg,#fff,#fff9fd);
    cursor: pointer;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.ord-radio-card + .ord-radio-card,
.ord-payment-choice-card + .ord-payment-choice-card {
    margin-top: 12px;
}

.ord-payment-choice-card:hover {
    transform: translateY(-1px);
    border-color: #d8b4fe;
    box-shadow: 0 16px 32px rgba(126,34,206,.08);
}

.ord-payment-choice-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.ord-radio-dot {
    width: 18px;
    height: 18px;
    border-radius: 999px;
    border: 2px solid #c4b5fd;
    background: #fff;
    box-shadow: inset 0 0 0 4px #fff;
}

.ord-payment-choice-card:has(input:checked) {
    border-color: #a855f7;
    background: linear-gradient(135deg,#fbf5ff,#fff);
    box-shadow: 0 18px 36px rgba(168,85,247,.13);
}

.ord-payment-choice-card:has(input:checked) .ord-radio-dot {
    background: #8b00e8;
    border-color: #8b00e8;
}

.ord-payment-card-icon {
    width: 44px;
    height: 44px;
    border-radius: 16px;
    display: grid;
    place-items: center;
}

.ord-payment-card-icon svg {
    width: 23px;
    height: 23px;
}

.ord-payment-card-icon.is-green {
    background: #dcfce7;
    color: #059669;
}

.ord-payment-card-icon.is-orange {
    background: #ffedd5;
    color: #ea580c;
}

.ord-payment-card-copy strong {
    display: block;
    color: #2b123f;
    font-size: .96rem;
    font-weight: 900;
}

.ord-payment-card-copy small {
    display: block;
    margin-top: 4px;
    color: #7a668c;
    font-size: .8rem;
    font-weight: 650;
    line-height: 1.25;
}

.ord-payment-card-badge {
    padding: 7px 10px;
    border-radius: 999px;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #047857;
    font-size: .72rem;
    font-weight: 900;
    white-space: nowrap;
}

.ord-payment-context {
    margin-top: 14px;
    display: flex;
    grid-template-columns: 34px 1fr;
    gap: 10px;
    align-items: center;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid #e9d5ff;
    background: #faf5ff;
    color: #6b21a8;
}

.ord-payment-context span {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: #fff;
    display: grid;
    place-items: center;
}

.ord-payment-context svg {
    width: 18px;
    height: 18px;
}

.ord-payment-context p {
    margin: 0;
    font-size: .82rem;
    font-weight: 750;
    line-height: 1.35;
}

.ord-finalize-user-box,
.ord-finalize-guest-box,
.ord-finalize-guest-v2 {
    display: grid;
    gap: 10px;
    margin-bottom: 12px;
}

.ord-finalize-user-box > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 13px 14px;
    border: 1px solid #efe5f5;
    border-radius: 16px;
    background: #fcf9fe;
}

.ord-finalize-user-box span {
    color: #8a7ea0;
    font-size: .82rem;
    font-weight: 800;
}

.ord-finalize-user-box strong {
    color: #2d254a;
    font-size: .96rem;
    font-weight: 900;
}

.ord-input {
    width: 100%;
    min-height: 46px;
    border: 1px solid #ead8f4;
    border-radius: 14px;
    padding: 0 14px;
    color: #2b123f;
    font-weight: 700;
    outline: none;
    background: #fff;
    box-sizing: border-box;
}

.ord-input:focus {
    border-color: #c084fc;
    box-shadow: 0 0 0 4px rgba(192,132,252,.16);
}

.ord-input-textarea {
    margin-top: 12px;
    width: 100%;
    min-height: 90px;
    padding-top: 12px;
    resize: vertical;
}

.ord-login-inline {
    color: #7c00d8;
    font-size: .82rem;
    font-weight: 950;
    text-decoration: none;
}

.ord-login-inline:hover {
    text-decoration: underline;
}

.ord-register-note {
    color: #7a668c;
    font-size: .78rem;
    font-weight: 700;
}

.ord-finalize-summary-card {
    width: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

.ord-finalize-summary-box {
    display: flex;
    flex-direction: column;
    flex: 1;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid #f0def8;
    background: #fff;
}

.ord-finalize-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 42px;
    padding: 10px 14px;
    border-bottom: 1px solid #f1e5f8;
}

.ord-finalize-summary-row:last-child {
    border-bottom: 0;
}

.ord-finalize-summary-row span {
    color: #7a668c;
    font-size: .82rem;
    font-weight: 800;
}

.ord-finalize-summary-row strong {
    color: #2b123f;
    font-size: .88rem;
    font-weight: 950;
    text-align: right;
}

.ord-finalize-summary-row.is-total {
    margin-top: 8px;
    min-height: 62px;
    background: linear-gradient(135deg,#fff0fb,#f7e9ff);
}

.ord-finalize-summary-row.is-total span {
    color: #2b123f;
}

.ord-finalize-summary-row.is-total strong {
    color: #f0008b;
    font-size: 1.65rem;
    letter-spacing: -.04em;
}

.ord-finalize-product-list-wrap {
    padding: 12px 14px;
    border-bottom: 1px solid #f1e5f8;
    background: #fff;
    flex: 1;
    min-height: 180px;
    display: flex;
    flex-direction: column;
}

.ord-finalize-product-list-title {
    margin-bottom: 8px;
    color: #2b123f;
    font-size: .72rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .045em;
    flex: 0 0 auto;
}

.ord-finalize-product-list {
    flex: 1;
    min-height: 0;
    max-height: 240px;
    overflow: auto;
    display: grid;
    align-content: start;
    gap: 0;
    padding-right: 4px;
}

.ord-finalize-product-list::-webkit-scrollbar {
    width: 6px;
}

.ord-finalize-product-list::-webkit-scrollbar-thumb {
    background: #e9d5ff;
    border-radius: 999px;
}

.ord-finalize-product-item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid #f1e5f8;
    background: transparent;
}

.ord-finalize-product-item:last-child {
    border-bottom: 0;
}

.ord-finalize-product-name {
    color: #2b123f;
    font-size: .78rem;
    font-weight: 900;
    line-height: 1.22;
}

.ord-finalize-product-meta {
    margin-top: 3px;
    color: #7a668c;
    font-size: .7rem;
    font-weight: 750;
}

.ord-finalize-product-amount {
    color: #2b123f;
    font-size: .78rem;
    font-weight: 950;
    white-space: nowrap;
    text-align: right;
}

.ord-finalize-product-empty {
    padding: 10px;
    border: 1px dashed #ead8f4;
    border-radius: 12px;
    color: #7a668c;
    font-size: .78rem;
    font-weight: 750;
    text-align: center;
}

.ord-finalize-summary-row.is-subtotal-start {
    margin-top: auto;
}

.ord-finalize-submit-note {
    margin-top: auto;
    padding-top: 16px;
    color: #7a668c;
    font-size: .78rem;
    font-weight: 750;
    text-align: center;
}

.ord-finalize-submit-btn {
    width: 100%;
    min-height: 48px;
    margin-top: 16px;
    border-radius: 15px;
    background: linear-gradient(90deg,#8b00e8,#f0008b);
    color: #fff;
    border: 0;
    font-weight: 950;
    cursor: pointer;
    box-shadow: 0 16px 28px rgba(240,0,139,.18);
}

.ord-finalize-submit-btn:hover {
    filter: brightness(1.03);
    transform: translateY(-1px);
}

.ord-finalize-submit-btn.is-pickup {
    background: linear-gradient(90deg,#f97316,#f0008b);
}

.ord-finalize-submit-btn.is-paynow {
    background: linear-gradient(90deg,#059669,#8b00e8);
}

/* =========================================================
   MOBILE CHECKOUT DEDICADO
   ========================================================= */

.ord-mobile-finalize-modal {
    display: none !important;
}

.ord-mobile-finalize-modal:not(.is-hidden) {
    display: none !important;
}

.ord-mobile-finalize-card,
.ord-mobile-finalize-head,
.ord-mobile-finalize-body,
.ord-mobile-box,
.ord-mobile-finalize-submit {
    box-sizing: border-box;
}

.ord-mobile-finalize-card {
    width: min(560px, 100%);
    margin: 10px auto 90px;
    border-radius: 22px;
    background: linear-gradient(180deg, #fff 0%, #fff9fd 100%);
    border: 1px solid #ead8f4;
    box-shadow: 0 26px 60px rgba(39,13,57,.24);
    overflow: hidden;
}

.ord-mobile-finalize-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 16px;
    border-bottom: 1px solid #f1e5f8;
    background: linear-gradient(135deg,#fff7fc,#fff);
}

.ord-mobile-finalize-kicker {
    color: #c21873;
    font-size: .76rem;
    font-weight: 950;
    margin-bottom: 4px;
}

.ord-mobile-finalize-head h3 {
    margin: 0;
    color: #2b123f;
    font-size: 1.3rem;
    font-weight: 950;
    letter-spacing: -.03em;
}

.ord-mobile-finalize-head p {
    margin: 5px 0 0;
    color: #7a668c;
    font-size: .82rem;
    font-weight: 650;
}

.ord-mobile-finalize-close {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    border: 1px solid #ead8f4;
    background: #fff;
    color: #6b587a;
    font-weight: 950;
    cursor: pointer;
}

.ord-mobile-finalize-body {
    display: grid;
    gap: 12px;
    padding: 12px;
}

.ord-mobile-box {
    border: 1px solid #ead8f4;
    border-radius: 18px;
    background: rgba(255,255,255,.92);
    padding: 12px;
    box-shadow: 0 10px 24px rgba(45,16,65,.04);
}

.ord-mobile-box-title {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.ord-mobile-box-title strong {
    color: #2b123f;
    font-size: .96rem;
    font-weight: 950;
}

.ord-mobile-box-title small {
    color: #7a668c;
    font-size: .76rem;
    font-weight: 750;
}

.ord-mobile-order-list {
    display: grid;
    gap: 8px;
    max-height: 260px;
    overflow-y: auto;
    padding-right: 3px;
}

.ord-mobile-order-item {
    display: grid;
    grid-template-columns: 48px 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 8px;
    border: 1px solid #f1e5f8;
    border-radius: 14px;
    background: #fff;
}

.ord-mobile-order-thumb {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #f7f0ff;
    display: grid;
    place-items: center;
    overflow: hidden;
    color: var(--ord-primary);
    font-weight: 950;
}
.ord-branch-option.is-selected {
    border-color: #ec4899;
    background: linear-gradient(135deg, #fff1f8, #ffffff);
    box-shadow: 0 12px 28px rgba(236, 72, 153, .16);
}

.ord-add-btn:disabled,
.cart-inc-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
    filter: grayscale(.4);
}

#delivery-cp-message.is-success {
    background: #ecfdf5;
    border-color: #86efac;
    color: #047857;
}

#delivery-cp-message.is-error {
    background: #fff1f2;
    border-color: #fb7185;
    color: #be123c;
}

.ord-cart-stock-limit {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    font-weight: 800;
    color: #c2410c;
}


.ord-mobile-order-thumb img {
    max-width: 100%;
    max-height: 42px;
    object-fit: contain;
}



.ord-mobile-order-name {
    color: #2b123f;
    font-size: .78rem;
    line-height: 1.15;
    font-weight: 900;
}

.ord-mobile-order-meta {
    margin-top: 3px;
    color: #7a668c;
    font-size: .7rem;
    font-weight: 750;
}

.ord-mobile-order-amount {
    color: #2b123f;
    font-size: .78rem;
    font-weight: 950;
    white-space: nowrap;
}

.ord-mobile-total-box {
    margin-top: 10px;
    border-top: 1px solid #f1e5f8;
    padding-top: 10px;
    display: grid;
    gap: 7px;
}

.ord-mobile-total-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #5f5777;
    font-size: .84rem;
    font-weight: 800;
}

.ord-mobile-total-row strong {
    color: #2b123f;
    font-weight: 950;
}

.ord-mobile-total-row.is-total {
    margin-top: 4px;
    padding-top: 8px;
    border-top: 1px solid #f1e5f8;
    color: #2b123f;
    font-size: 1rem;
}

.ord-mobile-total-row.is-total strong {
    color: var(--ord-pink);
    font-size: 1.45rem;
    letter-spacing: -.04em;
}

.ord-mobile-payment-grid {
    display: grid;
    gap: 8px;
}

.ord-mobile-payment-card {
    position: relative;
    display: grid;
    grid-template-columns: 20px 1fr;
    gap: 10px;
    align-items: flex-start;
    padding: 12px;
    border: 1px solid #ead8f4;
    border-radius: 15px;
    background: linear-gradient(135deg,#fff,#fff9fd);
    cursor: pointer;
}

.ord-mobile-payment-card input {
    margin-top: 2px;
    accent-color: var(--ord-primary);
}

.ord-mobile-payment-card strong {
    display: block;
    color: #2b123f;
    font-size: .88rem;
    font-weight: 950;
}

.ord-mobile-payment-card small {
    display: block;
    margin-top: 3px;
    color: #7a668c;
    font-size: .74rem;
    line-height: 1.25;
    font-weight: 650;
}

.ord-mobile-help {
    margin-top: 10px;
    padding: 10px;
    border-radius: 13px;
    border: 1px solid #e9d5ff;
    background: #faf5ff;
    color: #6b21a8;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.35;
}

.ord-mobile-guest-grid {
    display: grid;
    gap: 9px;
}

.ord-mobile-finalize-submit {
    position: sticky;
    bottom: 0;
    z-index: 2;
    padding: 12px;
    background: rgba(255,255,255,.96);
    border-top: 1px solid #f1e5f8;
    backdrop-filter: blur(8px);
}

.ord-mobile-submit-note {
    margin-bottom: 8px;
    color: #7a668c;
    font-size: .74rem;
    font-weight: 750;
    text-align: center;
}

.ord-mobile-finalize-submit button {
    width: 100%;
    min-height: 48px;
    border: 0;
    border-radius: 15px;
    background: linear-gradient(90deg,#8b00e8,#f0008b);
    color: #fff;
    font-weight: 950;
    cursor: pointer;
    box-shadow: 0 16px 28px rgba(240,0,139,.18);
}

.ord-mobile-finalize-submit button.is-pickup {
    background: linear-gradient(90deg,#f97316,#f0008b);
}

.ord-mobile-finalize-submit button.is-paynow {
    background: linear-gradient(90deg,#059669,#8b00e8);
}

/* =========================================================
   FOOTER
   ========================================================= */

.portal-footer,
.df-footer,
footer {
    margin-top: 0 !important;
}

/* =========================================================
   RESPONSIVE DESKTOP / TABLET
   ========================================================= */

@media (max-width: 1320px) {
    .ord-layout {
        grid-template-columns: 240px minmax(0,1fr) 330px;
    }

    .ord-grid {
        grid-template-columns: repeat(3, minmax(0,1fr));
    }
}

@media (max-width: 1080px) {
    .ord-layout {
        grid-template-columns: 220px minmax(0,1fr) 310px;
    }

    .ord-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ord-top-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ord-bottom-benefits {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ord-benefit + .ord-benefit {
        border-left: 0;
    }

    .ord-benefit:nth-child(even) {
        border-left: 1px solid #eadff3;
    }

    .ord-benefit:nth-child(n+3) {
        border-top: 1px solid #eadff3;
    }
}

@media (max-width: 980px) {
    .ord-finalize-grid {
        grid-template-columns: 1fr;
    }

    .ord-finalize-summary-card {
        position: static;
    }

    .ord-payment-choice-card {
        grid-template-columns: 22px 40px 1fr;
    }

    .ord-payment-card-badge {
        grid-column: 3;
        justify-self: start;
    }
}

/* =========================================================
   MOBILE GENERAL
   ========================================================= */

@media (max-width: 768px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    body {
        padding-bottom: 82px;
    }

    .df-wrap {
        width: 100%;
        max-width: 100%;
        padding-left: 10px;
        padding-right: 10px;
        box-sizing: border-box;
    }

    .ord-band {
        padding-top: 12px;
    }

    .ord-band-main {
        padding-bottom: 18px;
    }

    .ord-hero-grid,
    .ord-hero-grid-simple {
        flex-direction: column;
        align-items: flex-start;
    }

    .ord-hero-title,
    .ord-hero-copy h1 {
        font-size: 2.05rem;
        line-height: .95;
    }

    .ord-hero-copy p {
        font-size: .88rem;
    }

    .ord-top-cards {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .ord-top-card {
        width: 100%;
        min-width: 0;
        border-radius: 16px;
    }

    .ord-layout {
        display: block;
        width: 100%;
        max-width: 100%;
    }

    .ord-sidebar,
    .ord-cart {
        display: none !important;
    }

    .ord-mobile-filters {
        display: block;
        margin-bottom: 14px;
    }

    .ord-mobile-filter-form {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        padding: 10px;
        border: 1px solid #eadcf5;
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 10px 26px rgba(80, 20, 120, .06);
    }

    .ord-mobile-filter-form input[type="text"] {
        grid-column: 1 / -1;
    }

    .ord-mobile-filter-form input[type="text"],
    .ord-mobile-filter-form select {
        width: 100%;
        min-width: 0;
        height: 40px;
        border: 1px solid #eadcf5;
        border-radius: 12px;
        padding: 0 10px;
        background: #fff;
        color: #2b123f;
        font-size: .78rem;
        font-weight: 800;
        box-sizing: border-box;
    }

    .ord-mobile-promo-check {
        grid-column: 1 / -1;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        min-height: 40px;
        padding: 8px 10px;
        border: 1px solid #f2d7ef;
        border-radius: 12px;
        background: #fff7fd;
        color: #2b123f;
        font-size: .78rem;
        font-weight: 900;
    }

    .ord-mobile-promo-check b {
        display: inline-grid;
        place-items: center;
        min-width: 24px;
        height: 24px;
        border-radius: 999px;
        background: #ff2f92;
        color: #fff;
        font-size: .72rem;
    }

    .ord-products {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .ord-products-head {
        display: block;
        margin-bottom: 10px;
        padding: 0;
    }

    .ord-products-head-right {
        display: none !important;
    }

    .ord-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 100%;
        max-width: 100%;
    }

    .ord-product-card {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        min-height: 0;
        padding: 9px;
        border-radius: 15px;
        overflow: hidden;
        box-sizing: border-box;
    }

    .ord-product-top {
        min-height: 24px;
        gap: 5px;
    }

    .ord-product-badge {
        padding: 5px 7px;
        font-size: .62rem;
    }

    .ord-stock-pill {
        display: none;
    }

    .ord-product-image {
        height: 100px;
        max-height: 100px;
        display: grid;
        place-items: center;
        overflow: hidden;
    }

    .ord-product-image img {
        max-width: 100%;
        max-height: 92px;
        object-fit: contain;
    }

    .ord-product-info {
        min-height: 48px;
    }

    .ord-product-name {
        font-size: .72rem;
        line-height: 1.15;
        min-height: 32px;
        word-break: break-word;
    }

    .ord-product-promo-text {
        margin-top: 3px;
        font-size: .62rem;
        line-height: 1.1;
    }

    .ord-product-prices strong {
        font-size: .86rem;
    }

    .ord-product-meta-row {
        margin-top: 4px;
        align-items: center;
        justify-content: flex-end;
    }

    .ord-product-points {
        display: none;
    }

    .ord-product-stock {
        font-size: .62rem;
    }

    .ord-add-btn {
        width: 100%;
        min-height: 34px;
        margin-top: 8px;
        padding: 7px 5px;
        border-radius: 11px;
        font-size: .70rem;
        line-height: 1.1;
        white-space: normal;
    }

    .ord-bottom-benefits {
        display: none !important;
    }

    .ord-more-wrap-dual {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .ord-more-wrap-dual .ord-more-btn {
        width: 100%;
        min-width: 0;
        text-align: center;
    }

    .ord-more-wrap-dual .ord-more-btn:only-child {
        grid-column: 1 / -1;
    }

    .ord-mobile-cart-btn {
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: 12px;
        z-index: 850;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        min-height: 54px;
        padding: 12px 16px;
        border: 0;
        border-radius: 18px;
        background: linear-gradient(135deg, #9b1cff, #ff2f92);
        color: #fff;
        box-shadow: 0 18px 42px rgba(155, 28, 255, .28);
        font-weight: 950;
    }

    .ord-mobile-cart-btn span {
        font-size: .95rem;
    }

    .ord-mobile-cart-btn strong {
        font-size: 1.05rem;
    }

    .ord-mobile-cart-btn.has-items {
        box-shadow: 0 18px 44px rgba(255,47,146,.34);
    }

    body.ord-no-scroll .ord-mobile-cart-btn {
        display: none !important;
    }

    .ord-modal-backdrop {
        padding: 10px !important;
        align-items: flex-start !important;
        overflow-y: auto;
    }

    .ord-modal-card,
    .ord-finalize-modal-card,
    .ord-finalize-v2 {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 12px 0 90px !important;
        border-radius: 18px !important;
        box-sizing: border-box;
    }

    .ord-finalize-grid {
        grid-template-columns: 1fr;
        padding: 14px !important;
        gap: 14px !important;
    }

    .ord-finalize-head {
        padding: 18px;
    }

    .ord-finalize-head h3 {
        font-size: 1.35rem;
    }

    .ord-payment-choice-card {
        grid-template-columns: 22px 1fr;
    }

    .ord-payment-card-icon {
        display: none;
    }

    .ord-payment-card-badge {
        grid-column: 2;
    }

    .ord-finalize-product-list {
        max-height: 260px;
    }

    .ord-mobile-finalize-modal:not(.is-hidden) {
        position: fixed;
        inset: 0;
        z-index: 980;
        background: rgba(31, 18, 50, .50);
        backdrop-filter: blur(7px);
        padding: 10px;
        overflow-y: auto;
        display: flex !important;
        align-items: flex-start;
        justify-content: center;
    }

    .ord-mobile-finalize-modal.is-hidden {
        display: none !important;
    }

    .ord-mobile-guest-grid .ord-input {
        min-height: 44px;
    }
}

@media (max-width: 480px) {
    .df-wrap {
        padding-left: 10px;
        padding-right: 10px;
    }

    .ord-hero-title,
    .ord-hero-copy h1 {
        font-size: 1.75rem;
    }

    .ord-product-image {
        height: 135px;
        max-height: 135px;
    }

    .ord-product-image img {
        max-height: 120px;
    }

    .ord-sidebar-card,
    .ord-product-card,
    .ord-cart-card {
        border-radius: 16px;
    }
}

@media (max-width: 380px) {
    .ord-mobile-filter-form {
        grid-template-columns: 1fr;
    }

    .ord-grid {
        gap: 8px !important;
    }

    .ord-product-card {
        padding: 8px;
    }

    .ord-product-image {
        height: 88px;
    }

    .ord-product-image img {
        max-height: 82px;
    }

    .ord-product-name {
        font-size: .68rem;
    }

    .ord-add-btn {
        font-size: .66rem;
    }
}
/* =========================================================
   CART HEIGHT CONTROL — Pedido Online V2
   La altura la define JS con base en .ord-products
   ========================================================= */

@media (min-width: 769px) {
    .ord-layout {
        align-items: start !important;
    }

    .ord-cart {
        position: sticky !important;
        top: 16px !important;
        align-self: start !important;
        min-height: 0 !important;
    }

    .ord-cart-card {
        height: 1220px !important;
        max-height: 1220px !important;
        min-height: 520px !important;

        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
    }
    .ord-cart-head,
    .ord-cart-branch,
    .ord-cart-totals,
    .ord-cart-total-main,
    .ord-cart-note,
    .ord-cart-foot,
    .ord-cart-cta {
        flex: 0 0 auto !important;
    }

    .ord-cart-items {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding-right: 18px !important;
        margin-right: -8px !important;
    }
}

@media (max-width: 768px) {
    .ord-cart {
        display: none !important;
    }
}

/* =========================================================
   ONLINE DISCOUNT BADGE — Product Cards compact v2
   ========================================================= */

.ord-product-price-area {
    height: 46px;
    min-height: 46px;
    max-height: 46px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 3px;
    margin-top: 6px;
    margin-bottom: 4px;
    overflow: hidden;
}

.ord-product-promo-placeholder {
    height: 19px;
    min-height: 19px;
}

.ord-product-promo-money {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 5px;
    width: 100%;
    height: 19px;
    min-height: 19px;
    max-height: 19px;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(236, 72, 153, 0.10);
    border: 1px solid rgba(236, 72, 153, 0.22);
    color: #be185d;
    font-size: 9px;
    font-weight: 850;
    line-height: 1;
}

.ord-product-promo-money span {
    opacity: .85;
    font-weight: 800;
}

.ord-product-promo-money strong {
    font-weight: 950;
    white-space: nowrap;
}

.ord-product-price-wrap {
    height: 22px;
    min-height: 22px;
    max-height: 22px;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
    overflow: hidden;
}

.ord-product-price-before {
    color: #9ca3af;
    text-decoration: line-through;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.ord-product-price-promo {
    color: #16a34a;
    font-size: 16px;
    font-weight: 950;
    letter-spacing: -0.03em;
    white-space: nowrap;
}

.ord-product-price-normal {
    color: #111827;
    font-size: 16px;
    font-weight: 950;
    letter-spacing: -0.03em;
    white-space: nowrap;
}


.ord-product-card {
    display: flex;
    flex-direction: column;
}

.ord-product-card .ord-product-name {
    margin-bottom: 0 !important;
}

.ord-product-card .ord-product-price-area {
    margin-top: 1px !important;
}

.ord-product-card .ord-product-stock,
.ord-product-card .ord-stock {
    margin-top: auto;
}

.ord-product-card .ord-add-btn {
    margin-top: 6px;
}

.ord-loyalty-panel{
    margin-top:14px;
    padding:14px;
    border:1px solid #eadcf8;
    background:linear-gradient(180deg,#ffffff 0%,#fbf7ff 100%);
    border-radius:14px;
}

.ord-loyalty-title{
    margin-bottom:10px;
}

.ord-loyalty-title span{
    display:block;
    font-size:14px;
    font-weight:900;
    color:#43135f;
}

.ord-loyalty-title small{
    display:block;
    margin-top:2px;
    font-size:12px;
    font-weight:700;
    color:#7c5a91;
}

.ord-loyalty-earn-preview{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:10px 0 12px;
    padding:11px 12px;
    border:1px solid #dbeafe;
    background:#f8fbff;
    border-radius:12px;
    color:#334155;
}

.ord-loyalty-earn-icon{
    width:26px;
    height:26px;
    min-width:26px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#eef2ff;
    color:#7c3aed;
    font-size:13px;
    font-weight:950;
}

.ord-loyalty-earn-preview strong{
    display:block;
    font-size:13px;
    font-weight:950;
    color:#1e293b;
}

.ord-loyalty-earn-preview p{
    margin:3px 0 0;
    font-size:12px;
    font-weight:700;
    line-height:1.35;
    color:#64748b;
}

.ord-loyalty-toggle{
    display:flex;
    align-items:center;
    gap:9px;
    margin:10px 0 0;
    cursor:pointer;
    user-select:none;
    font-size:12px;
    font-weight:850;
    color:#4c1768;
}

.ord-loyalty-toggle input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.ord-loyalty-checkmark{
    width:16px;
    height:16px;
    min-width:16px;
    border:2px solid #c084fc;
    border-radius:5px;
    background:#fff;
    position:relative;
}

.ord-loyalty-toggle input:checked + .ord-loyalty-checkmark{
    border-color:#f97316;
    background:#f97316;
}

.ord-loyalty-toggle input:checked + .ord-loyalty-checkmark::after{
    content:"";
    position:absolute;
    left:5px;
    top:1px;
    width:5px;
    height:10px;
    border:solid #fff;
    border-width:0 2px 2px 0;
    transform:rotate(45deg);
}

.ord-loyalty-controls{
    margin-top:12px;
    display:flex;
    align-items:flex-end;
    gap:10px;
    flex-wrap:wrap;
}

.ord-loyalty-input-group{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.ord-loyalty-input-group span{
    font-size:10px;
    font-weight:900;
    color:#6b4b7c;
    text-transform:uppercase;
    letter-spacing:.03em;
}

.ord-loyalty-input-group input{
    width:130px;
    height:30px;
    border:1px solid #d8c7e8;
    border-radius:10px;
    padding:0 10px;
    background:#fff;
    color:#301046;
    font-size:14px;
    font-weight:900;
    outline:none;
}

.ord-loyalty-input-group input:focus{
    border-color:#a855f7;
    box-shadow:0 0 0 3px rgba(168,85,247,.12);
}

.ord-loyalty-max-btn{
    height:30px;
    border:1px solid #4c1768;
    background:#4c1768;
    color:#fff;
    border-radius:10px;
    padding:0 13px;
    font-size:12px;
    font-weight:950;
    cursor:pointer;
}

.ord-loyalty-max-btn:hover{
    background:#351047;
}

.ord-loyalty-help{
    width:100%;
    margin:2px 0 0;
    padding-top:10px;
    border-top:1px dashed #dec8ee;
    font-size:12px;
    font-weight:750;
    color:#6b4b7c;
    line-height:1.35;
}

@media (max-width:640px){
    .ord-loyalty-panel{
        padding:12px;
        border-radius:12px;
    }

    .ord-loyalty-controls{
        display:grid !important;
        grid-template-columns:1fr;
    }

    .ord-loyalty-input-group input,
    .ord-loyalty-max-btn{
        width:100%;
    }
}

/* =========================================================
   FINALIZAR PEDIDO - MODAL CON ALTO CONTROLADO
   Soluciona que el modal no se vea completo sin bajar zoom
========================================================= */

#finalize-modal.ord-modal-backdrop{
    align-items:flex-start !important;
    justify-content:center !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding:86px 18px 28px !important;
}

#finalize-modal .ord-finalize-modal-card{
    width:min(1040px, 100%) !important;
    max-height:calc(100vh - 114px) !important;
    overflow:hidden !important;
    display:flex !important;
    flex-direction:column !important;
}

#finalize-modal .ord-finalize-head{
    flex:0 0 auto !important;
}

#finalize-order-form{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow:hidden !important;
}

#finalize-modal .ord-finalize-grid{
    height:100% !important;
    max-height:calc(100vh - 230px) !important;
    min-height:0 !important;
    overflow:hidden !important;
}

#finalize-modal .ord-finalize-main{
    min-height:0 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding-right:8px;
    -webkit-overflow-scrolling:touch;
}

#finalize-modal .ord-finalize-summary{
    min-height:0 !important;
    max-height:calc(100vh - 230px) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch;
}

/* Scroll más fino en desktop */
#finalize-modal .ord-finalize-main::-webkit-scrollbar,
#finalize-modal .ord-finalize-summary::-webkit-scrollbar{
    width:7px;
}

#finalize-modal .ord-finalize-main::-webkit-scrollbar-thumb,
#finalize-modal .ord-finalize-summary::-webkit-scrollbar-thumb{
    background:#dcc7ea;
    border-radius:999px;
}

#finalize-modal .ord-finalize-main::-webkit-scrollbar-track,
#finalize-modal .ord-finalize-summary::-webkit-scrollbar-track{
    background:transparent;
}

/* Pantallas bajitas o navegador con zoom */
@media (max-height: 760px){
    #finalize-modal.ord-modal-backdrop{
        padding-top:64px !important;
        padding-bottom:18px !important;
    }

    #finalize-modal .ord-finalize-modal-card{
        max-height:calc(100vh - 82px) !important;
    }

    #finalize-modal .ord-finalize-grid{
        max-height:calc(100vh - 190px) !important;
    }

    #finalize-modal .ord-finalize-summary{
        max-height:calc(100vh - 190px) !important;
    }
}

/* Mobile / tablet */
@media (max-width: 900px){
    #finalize-modal.ord-modal-backdrop{
        padding:72px 12px 18px !important;
    }

    #finalize-modal .ord-finalize-modal-card{
        width:100% !important;
        max-height:calc(100vh - 90px) !important;
    }

    #finalize-modal .ord-finalize-grid{
        display:block !important;
        max-height:calc(100vh - 175px) !important;
        overflow-y:auto !important;
        overflow-x:hidden !important;
        -webkit-overflow-scrolling:touch;
    }

    #finalize-modal .ord-finalize-main{
        overflow:visible !important;
        padding-right:0 !important;
    }

    #finalize-modal .ord-finalize-summary{
        max-height:none !important;
        overflow:visible !important;
        margin-top:14px;
    }
}


/* =========================================================
   FINALIZAR PEDIDO - FIX DEFINITIVO 3 COLUMNAS
   Evita columnas cortadas y tarjetas aplastadas
========================================================= */

#finalize-modal .ord-finalize-modal-card{
    width: min(1380px, calc(100vw - 80px)) !important;
    max-width: min(1380px, calc(100vw - 80px)) !important;
}

#finalize-order-form{
    width:100% !important;
    min-width:0 !important;
}

#finalize-modal .ord-finalize-grid-3{
    display:grid !important;
    grid-template-columns: 32% 42% 23% !important;
    gap:18px !important;
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
}

#finalize-modal .ord-finalize-methods-col,
#finalize-modal .ord-finalize-customer-col,
#finalize-modal .ord-finalize-summary-col{
    min-width:0 !important;
    width:100% !important;
    box-sizing:border-box !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
}

#finalize-modal .ord-finalize-methods-col > *,
#finalize-modal .ord-finalize-customer-col > *,
#finalize-modal .ord-finalize-summary-col > *{
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
}

/* Resumen nunca debe salirse */
#finalize-modal .ord-finalize-summary,
#finalize-modal .ord-finalize-summary-card{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
}

/* =========================================================
   Tarjetas de pago: que no se partan palabra por palabra
========================================================= */

#finalize-modal .ord-payment-option,
#finalize-modal .ord-payment-choice,
#finalize-modal .ord-finalize-payment-choice,
#finalize-modal .ord-payment-method-card{
    display:grid !important;
    grid-template-columns:22px 44px minmax(0, 1fr) !important;
    gap:12px !important;
    align-items:center !important;
    padding:14px !important;
    min-width:0 !important;
    width:100% !important;
    box-sizing:border-box !important;
}

#finalize-modal .ord-payment-option .ord-payment-badge,
#finalize-modal .ord-payment-choice .ord-payment-badge,
#finalize-modal .ord-finalize-payment-choice .ord-payment-badge,
#finalize-modal .ord-payment-method-card .ord-payment-badge{
    grid-column:3 !important;
    justify-self:start !important;
    margin-top:6px !important;
    white-space:nowrap !important;
}

#finalize-modal .ord-payment-option h4,
#finalize-modal .ord-payment-choice h4,
#finalize-modal .ord-finalize-payment-choice h4,
#finalize-modal .ord-payment-method-card h4{
    margin:0 0 4px !important;
    font-size:15px !important;
    line-height:1.15 !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
}

#finalize-modal .ord-payment-option p,
#finalize-modal .ord-payment-choice p,
#finalize-modal .ord-finalize-payment-choice p,
#finalize-modal .ord-payment-method-card p{
    margin:0 !important;
    font-size:12px !important;
    line-height:1.3 !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
}

/* Si el texto está dentro de un div interno */
#finalize-modal .ord-payment-option div,
#finalize-modal .ord-payment-choice div,
#finalize-modal .ord-finalize-payment-choice div,
#finalize-modal .ord-payment-method-card div{
    min-width:0 !important;
}

/* =========================================================
   Pantallas medianas: mejor 2 columnas + resumen abajo
========================================================= */

@media (max-width: 1280px){
    #finalize-modal .ord-finalize-modal-card{
        width: min(1120px, calc(100vw - 52px)) !important;
        max-width: min(1120px, calc(100vw - 52px)) !important;
    }

    #finalize-modal .ord-finalize-grid-3{
        grid-template-columns: 1fr 1fr !important;
    }

    #finalize-modal .ord-finalize-summary-col{
        grid-column:1 / -1 !important;
        max-height:320px !important;
    }
}

/* Mobile */
@media (max-width: 900px){
    #finalize-modal .ord-finalize-modal-card{
        width:calc(100vw - 24px) !important;
        max-width:calc(100vw - 24px) !important;
    }

    #finalize-modal .ord-finalize-grid-3{
        display:block !important;
        overflow-y:auto !important;
        max-height:calc(100vh - 170px) !important;
    }

    #finalize-modal .ord-finalize-methods-col,
    #finalize-modal .ord-finalize-customer-col,
    #finalize-modal .ord-finalize-summary-col{
        overflow:visible !important;
        margin-bottom:14px !important;
    }
}