:root {
    --digital-borde:#e5ddd0;
    --digital-texto-suave:#6c5e50;
    --digital-sombra:0 .6rem 1.5rem rgba(50,35,20,.08)
}
.carta-digital-body {
    background:var(--ml-paper);
    color:var(--ml-ink)
}
.carta-digital-body > .os-carta-principal {
    --os-size:10px;
    --os-padding-axis:3px;
    --os-padding-perpendicular:2px;
    --os-handle-border-radius:999px;
    --os-handle-bg:rgba(111,83,62,.52);
    --os-handle-bg-hover:rgba(111,83,62,.72);
    --os-handle-bg-active:var(--ml-wine);
    z-index:1035;
}
/* Con OverlayScrollbars, la raíz del documento es quien desplaza la página. */
html[data-overlayscrollbars-viewport]:has(> body.modal-open, > body > #contactoCarta:is(.showing,.show,.hiding)) {
    overflow:hidden;
}
.carta-digital-body:is(.modal-open, :has(> #contactoCarta:is(.showing,.show,.hiding))) > .os-carta-principal {
    visibility:hidden;
}
.digital-cabecera {
    background:rgba(248,245,238,.95);
    box-shadow:inset 0 -1px var(--digital-borde);
    position:sticky;
    top:0;
    z-index:1030
}
.digital-cabecera__interior {
    align-items:center;
    display:flex;
    gap:1rem;
    height:var(--ml-altura-cabecera);
    justify-content:space-between;
    margin:auto;
    max-width:1240px;
    padding:.45rem 1rem
}
.marca-digital {
    align-items:center;
    color:var(--ml-ink);
    display:flex;
    gap:.55rem;
    min-width:0;
    text-decoration:none
}
.marca-digital img {
    height:3rem;
    object-fit:contain;
    width:3rem
}
.marca-digital span {
    display:grid;
    line-height:1.1
}
.marca-digital strong {
    font-size:.95rem;
    white-space:nowrap
}
.marca-digital small {
    color:var(--digital-texto-suave);
    font-size:.64rem;
    white-space:nowrap
}
.selector-carta {
    background:#ede6d9;
    border-radius:999px;
    display:flex;
    padding:.18rem
}
.selector-carta__opcion {
    border-radius:999px;
    color:var(--digital-texto-suave);
    font-size:.75rem;
    font-weight:700;
    padding:.38rem .68rem;
    text-decoration:none
}
.selector-carta__opcion.is-active {
    background:var(--ml-ink);
    color:#fff
}
.digital-cabecera__acciones {
    align-items:center;
    display:flex;
    gap:.3rem
}
.boton-header-digital,.boton-carrito {
    align-items:center;
    background:transparent;
    border:0;
    border-radius:.55rem;
    color:var(--ml-wine);
    display:inline-flex;
    font-size:.78rem;
    font-weight:700;
    gap:.4rem;
    min-height:2.5rem;
    padding:.4rem .6rem
}
.boton-carrito {
    background:var(--ml-ink);
    border-radius:999px;
    color:#fff;
    justify-content:center;
    min-width:2.5rem
}
.boton-carrito span {
    align-items:center;
    background:var(--ml-accent);
    border-radius:99px;
    color:var(--ml-ink);
    display:flex;
    font-size:.64rem;
    font-variant-numeric:tabular-nums;
    justify-content:center;
    min-height:1.15rem;
    min-width:1.15rem;
    padding-inline:.25rem
}
.boton-carrito span[hidden] { display:none; }
.presentacion-carta {
    background:linear-gradient(120deg,#f3e8bc 0%,#f8f5ee 54%,#f3e8bc 100%);
    border-bottom:1px solid var(--digital-borde);
    padding:2.2rem 0 1rem
}
.etiqueta-carta,.modal-categoria {
    color:var(--ml-wine);
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.09em;
    margin:0 0 .35rem;
    text-transform:uppercase
}
.presentacion-carta__fila {
    align-items:end;
    display:flex;
    gap:1rem;
    justify-content:space-between
}
.presentacion-carta h1 {
    font-size:clamp(1.75rem,4vw,2.6rem);
    margin:0
}
.presentacion-carta p:not(.etiqueta-carta) {
    color:var(--digital-texto-suave);
    margin:.35rem 0 0
}
.btn-carta-secundario {
    background:transparent;
    border:1px solid #b6a996;
    border-radius:.5rem;
    color:var(--ml-ink);
    font-size:.78rem;
    font-weight:700;
    padding:.6rem .8rem;
    white-space:nowrap
}
.buscador-carta {
    align-items:center;
    background:#fff;
    border:1px solid #d8cdbd;
    border-radius:.7rem;
    box-shadow:var(--digital-sombra);
    display:flex;
    gap:.6rem;
    margin-top:1.35rem;
    padding:0 .85rem
}
.buscador-carta i {
    color:var(--ml-wine)
}
.buscador-carta input {
    background:transparent;
    border:0;
    color:var(--ml-ink);
    min-height:3.15rem;
    outline:0;
    width:100%
}
.buscador-carta input::placeholder {
    color:#928575
}
.categorias-navegacion {
    background:rgba(248,245,238,.96);
    border-bottom:1px solid var(--digital-borde);
    position:sticky;
    top:var(--ml-altura-cabecera);
    z-index:1020
}
.categorias-navegacion__interior {
    margin:auto;
    max-width:1240px;
    overflow-x:auto;
    scrollbar-width:thin
}
.categorias-navegacion__lista { display:flex; gap:.45rem; padding:.65rem 1rem; }
.categorias-navegacion .os-scrollbar { --os-size: 6px; --os-padding-perpendicular: 1px; }
@media (any-pointer:fine) {
    .categorias-navegacion__lista, .categoria-enlace { cursor:grab; user-select:none; }
    .is-arrastrando .categorias-navegacion__lista, .is-arrastrando .categoria-enlace { cursor:grabbing; }
}
.categoria-enlace {
    align-items:center;
    background:#fff;
    border:1px solid var(--digital-borde);
    border-radius:999px;
    color:var(--ml-ink);
    display:inline-flex;
    flex:0 0 auto;
    font-size:.75rem;
    gap:.35rem;
    min-height:2.35rem;
    padding:.4rem .7rem
}
.categoria-enlace.is-active {
    background:var(--ml-wine);
    border-color:var(--ml-wine);
    color:#fff
}
.contenido-carta {
    padding-bottom:calc(1rem + env(safe-area-inset-bottom));
    padding-top:.875rem
}
.tiene-pedido .contenido-carta { padding-bottom:calc(4.5rem + env(safe-area-inset-bottom)); }
.resultado-busqueda {
    color:var(--digital-texto-suave);
    font-size:.82rem;
    margin:0
}
.resultado-busqueda:not(:empty) { margin-bottom:.75rem; }
.bloque-categoria {
    scroll-margin-top:8.2rem
}
.bloque-categoria:not([hidden]) ~ .bloque-categoria:not([hidden]) { margin-top:2.8rem; }
.bloque-categoria__cabecera {
    align-items:center;
    display:flex;
    gap:.55rem;
    margin-bottom:.75rem
}
.bloque-categoria__cabecera i {
    color:var(--ml-wine);
    font-size:1.1rem
}
.bloque-categoria__cabecera h2 {
    font-size:1.22rem;
    margin:0
}
.grilla-productos {
    display:grid;
    gap:.8rem;
    grid-template-columns:repeat(3,minmax(0,1fr))
}
.tarjeta-producto {
    background:#fff;
    border:1px solid var(--digital-borde);
    border-radius:.75rem;
    box-shadow:0 .25rem .8rem rgba(50,35,20,.04);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-height:11rem;
    overflow:hidden;
    position:relative;
    transition:box-shadow .16s ease,border-color .16s ease
}
.tarjeta-producto__detalle {
    background:transparent;
    border:0;
    color:inherit;
    padding:1rem 1rem .6rem;
    text-align:left
}
.tarjeta-producto h3 {
    font-size:.98rem;
    line-height:1.35;
    margin:0 0 .45rem
}
.tarjeta-producto p {
    color:var(--digital-texto-suave);
    display:-webkit-box;
    font-size:.78rem;
    margin:0;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3
}
.tarjeta-producto__pie {
    align-items:center;
    border-top:1px solid #eee7dc;
    display:flex;
    justify-content:space-between;
    padding:.65rem 1rem
}
.tarjeta-producto__pie strong,.precio-modal {
    color:var(--ml-wine);
    font-size:1rem
}
.boton-agregar {
    align-items:center;
    background:#f2ead9;
    border:0;
    border-radius:.45rem;
    color:var(--ml-ink);
    display:inline-flex;
    font-size:.72rem;
    font-weight:800;
    gap:.35rem;
    padding:.42rem .55rem
}
.sin-resultados {
    align-items:center;
    background:#fff;
    border:1px dashed #cfc1ad;
    border-radius:.75rem;
    display:flex;
    flex-direction:column;
    gap:.8rem;
    margin:3rem auto;
    max-width:32rem;
    padding:2.5rem 1.2rem;
    text-align:center
}
.sin-resultados i {
    color:var(--ml-wine);
    font-size:1.7rem
}
.sin-resultados h2 {
    font-size:1rem;
    margin:0
}
.pedido-flotante-posicion {
    bottom:calc(1rem + env(safe-area-inset-bottom));
    display:flex;
    justify-content:center;
    pointer-events:none;
    z-index:1025
}
.pedido-flotante {
    align-items:center;
    background:var(--ml-ink);
    border:0;
    border-radius:999px;
    box-shadow:0 .7rem 1.8rem rgba(40,30,20,.28);
    color:#fff;
    display:flex;
    font-size:.78rem;
    gap:.8rem;
    justify-content:space-between;
    min-width:220px;
    padding:.75rem 1rem;
    pointer-events:auto;
    width:max-content
}
.pedido-flotante__etiqueta {
    align-items:center;
    display:inline-flex;
    gap:.45rem;
    line-height:1.2
}
.pedido-flotante__etiqueta i { line-height:1; }
.pedido-flotante strong {
    color:var(--ml-accent);
    font-variant-numeric:tabular-nums;
    line-height:1.2;
    white-space:nowrap
}
.pedido-agregado {
    bottom:calc(100% + .45rem);
    margin:0;
    position:absolute
}
.pedido-agregado:not(:empty) {
    background:#eff6eb;
    border:1px solid #c9debf;
    border-radius:999px;
    color:#2e502a;
    font-size:.75rem;
    font-weight:700;
    padding:.35rem .65rem;
    white-space:nowrap
}
.modal-carta {
    border:0;
    border-radius:.85rem
}
.modal-carta .modal-header,.modal-carta .modal-footer {
    border-color:var(--digital-borde)
}
.modal-producto__pie,.modal-carrito__pie {
    align-items:center;
    display:flex;
    justify-content:space-between
}
.descripcion-producto-modal {
    color:var(--digital-texto-suave);
    line-height:1.65
}
.form-label span {
    color:var(--digital-texto-suave);
    font-size:.78rem
}
.selector-cantidad {
    align-items:center;
    border:1px solid var(--digital-borde);
    border-radius:.5rem;
    display:inline-flex;
    overflow:hidden
}
.selector-cantidad button {
    background:#f7f2e9;
    border:0;
    height:2.55rem;
    width:2.55rem
}
.selector-cantidad output {
    min-width:2.4rem;
    text-align:center
}
.btn-principal-carta {
    background:var(--ml-wine);
    border:1px solid var(--ml-wine);
    border-radius:.55rem;
    color:#fff;
    font-size:.82rem;
    font-weight:800;
    min-height:2.7rem;
    padding:.55rem .9rem
}
.resumen-pedido {
    align-items:center;
    display:flex;
    gap:.5rem;
    justify-content:space-between;
    width:100%
}
.resumen-pedido strong {
    color:var(--ml-wine);
    font-size:1.1rem;
    white-space:nowrap
}
.resumen-pedido span {
    font-size:.85rem;
    font-weight:700
}
.resumen-pedido small {
    color:var(--digital-texto-suave);
    display:block;
    font-size:.75rem;
    font-weight:400
}
.aviso-precios {
    align-items:baseline;
    background:#f7f2e9;
    border-radius:.5rem;
    color:#57473a;
    display:flex;
    font-size:.75rem;
    gap:.45rem;
    padding:.55rem .65rem;
    width:100%
}
.aviso-precios[hidden] { display:none; }
.modal-entrega {
    --bs-modal-width:42rem;
    --bs-modal-padding:clamp(1rem,3vw,1.6rem);
    --bs-modal-header-padding:1rem var(--bs-modal-padding);
    --entrega-placeholder:#766b60;
}
.modal-entrega .form-label {
    color:#4a382d;
    font-size:.82rem;
    font-weight:700;
    margin-bottom:.35rem
}
.modal-entrega .form-label span { font-weight:400; }
.modal-entrega .form-control,.modal-entrega .form-select {
    border:1px solid #c9baab;
    border-radius:.65rem;
    color:var(--ml-ink);
    min-height:2.8rem;
    padding-block:.6rem
}
.modal-entrega .form-control::placeholder {
    color:var(--entrega-placeholder);
    opacity:1
}
.modal-entrega .form-control:focus,.modal-entrega .form-select:focus {
    border-color:var(--ml-wine);
    box-shadow:0 0 0 .18rem #70292026;
    outline:0
}
.modal-entrega .form-control.entrega-error {
    border-color:#a53631
}
.modal-entrega p.entrega-error {
    color:#a02d29;
    font-size:.77rem;
    font-weight:600;
    margin:.35rem 0 0
}
.modal-entrega .entrega-seccion {
    border-top:1px solid var(--digital-borde);
    margin-top:1rem;
    padding-top:1rem
}
.modal-entrega legend i { color:var(--ml-wine); margin-inline-end:.2rem; }
.modal-entrega .opciones-pago {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(5.2rem,1fr))
}
.modal-entrega .opciones-pago .btn {
    background:#fcfaf6;
    border-color:#c9baab;
    border-radius:.6rem;
    color:#4a382d;
    font-size:.84rem;
    font-weight:600;
    padding:.6rem .35rem
}
.modal-entrega .opciones-pago .btn-check:checked + .btn {
    background:#f8eee7;
    border-color:var(--ml-wine);
    color:var(--ml-wine)
}
.modal-entrega .opciones-pago .btn-check:focus-visible + .btn {
    outline:2px solid var(--ml-wine);
    outline-offset:2px
}
.datos-factura {
    background:#f8f2e8;
    border-radius:.65rem;
    margin-top:.75rem;
    padding:.85rem
}
.modal-entrega__pie {
    background:#fffdf8;
    justify-content:space-between;
    padding-inline:var(--bs-modal-padding)
}
.lineas-carrito {
    display:grid;
    gap:.65rem
}
.linea-carrito {
    align-items:center;
    border-bottom:1px solid var(--digital-borde);
    display:grid;
    gap:.6rem;
    grid-template-columns:1fr auto;
    padding-bottom:.65rem
}
.linea-carrito__nombre {
    font-size:.88rem;
    font-weight:700
}
.linea-carrito__nota {
    color:var(--digital-texto-suave);
    font-size:.72rem;
    margin:.18rem 0 0
}
.linea-carrito__acciones {
    align-items:center;
    display:flex;
    gap:.4rem
}
.linea-carrito__precio {
    color:var(--ml-wine);
    font-size:.8rem;
    font-weight:800
}
.boton-linea {
    background:transparent;
    border:1px solid var(--digital-borde);
    border-radius:.35rem;
    color:var(--ml-ink);
    height:1.9rem;
    min-width:1.9rem
}
.carrito-vacio {
    align-items:center;
    color:var(--digital-texto-suave);
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:14rem
}
.carrito-vacio i {
    color:var(--ml-wine);
    font-size:2rem
}
.carrito-vacio p {
    margin:.75rem 0 0
}
.grupo-formulario {
    border:0;
    margin:0;
    padding:0
}
.grupo-formulario legend {
    font-size:.88rem;
    font-weight:800;
    margin-bottom:.6rem
}
.opciones-pedido,.opciones-pago {
    display:flex;
    flex-wrap:wrap;
    gap:.5rem
}
.aviso-whatsapp {
    align-items:flex-start;
    background:#e7f6ed;
    border-radius:.5rem;
    color:#245b36;
    display:flex;
    font-size:.82rem;
    gap:.55rem;
    margin:0 0 1.2rem;
    padding:.7rem
}
.aviso-whatsapp i { margin-top:.15rem; }
.estado-compartir {
    bottom:5rem;
    color:var(--ml-ink);
    font-size:.75rem;
    left:50%;
    margin:0;
    position:fixed;
    transform:translateX(-50%);
    z-index:1100
}
button,a {
    transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease
}
button:hover:not(:disabled):not(.pedido-flotante,.boton-agregar) {
    transform:translateY(-1px)
}
.tarjeta-producto:has(.boton-agregar:focus-visible) {
    border-color:#cabb9f;
    box-shadow:var(--digital-sombra)
}
@media (prefers-reduced-motion:no-preference) {
    .tarjeta-producto { transition:scale .15s ease-out,box-shadow .16s ease,border-color .16s ease; }
    .tarjeta-producto:has(.boton-agregar:active) { scale:.985; transition-duration:.06s; }
}
.categoria-enlace:focus-visible,.boton-agregar:focus-visible,.btn-principal-carta:focus-visible {
    outline:3px solid var(--ml-accent);
    outline-offset:2px
}
@media(max-width:991px) {
    .grilla-productos {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}
@media(max-width:575px) {
    .digital-cabecera__interior {
        gap:.35rem;
        padding-inline:.65rem
    }
    .marca-digital img {
        height:2.5rem;
        width:2.5rem
    }
    .marca-digital small {
        display:none
    }
    .marca-digital strong {
        font-size:.82rem
    }
    .selector-carta__opcion {
        font-size:.67rem;
        padding-inline:.43rem
    }
    .boton-header-digital span {
        display:none
    }
    .boton-header-digital {
        min-width:2.25rem;
        padding-inline:.45rem
    }
    .presentacion-carta {
        padding-top:1.5rem
    }
    .presentacion-carta__fila {
        align-items:start
    }
    .presentacion-carta__fila .btn-carta-secundario {
        font-size:0;
        min-width:2.5rem;
        padding-inline:.55rem
    }
    .presentacion-carta__fila .btn-carta-secundario i {
        font-size:.85rem
    }
    .contenido-carta {
        padding-inline:.85rem
    }
    .grilla-productos {
        grid-template-columns:1fr
    }
    .bloque-categoria {
        scroll-margin-top:7.7rem
    }
    .tarjeta-producto {
        min-height:0
    }
    .tarjeta-producto p {
        -webkit-line-clamp:2
    }
    .pedido-flotante-posicion { bottom:calc(.8rem + env(safe-area-inset-bottom)); }
    .pedido-flotante { min-width:0; width:calc(100% - 1.6rem); }
    .categorias-lateral .pedido-flotante { width:min(16rem, calc(100% - 1.6rem)); }
    .modal-producto__pie {
        align-items:stretch;
        flex-direction:column
    }
    .modal-producto__pie .btn-principal-carta {
        width:100%
    }
    .boton-carrito { min-width:2.25rem; padding-inline:.42rem; }
}
@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        scroll-behavior:auto!important;
        transition:none!important
    }
}
@media (max-width: 400px) {
    .marca-digital { gap:.32rem; }
    .marca-digital img { height:2.2rem; width:2.2rem; }
    .marca-digital strong { font-size:.74rem; }
    .digital-cabecera__acciones { gap:.12rem; }
    .digital-cabecera__acciones button { min-width:2rem; padding-inline:.36rem; }
}
@media (max-width: 350px) {
    .marca-digital > span {
        display: none;
    }
}
.linea-carrito__subtotal {
    color:var(--ml-wine);
    font-size:.75rem;
    margin:.3rem 0 0;
}

.tarjeta-producto__media, .modal-producto__media { aspect-ratio: 16 / 9; background: #f5eee1; overflow: hidden; position: relative; }
.tarjeta-producto__media img, .modal-producto__media img { display:block; height:100%; object-fit:contain; width:100%; }
.tarjeta-producto__referencia, .modal-producto__media span { background: rgba(41,33,28,.78); bottom: .45rem; color: #fff; font-size: .65rem; left: .45rem; padding: .2rem .35rem; position: absolute; }
.modal-producto__media { margin-bottom: 1rem; }
.linea-carrito:last-child { border-bottom: 0; padding-bottom: 0; }
.categorias-lateral { --carta-ancho-lateral: clamp(5rem, 12vw, 8.25rem); }
.categorias-lateral main { padding-inline-start:var(--carta-ancho-lateral); }
.categorias-lateral .pedido-flotante-posicion { inset-inline-start:var(--carta-ancho-lateral); }
.categorias-lateral .categorias-navegacion { border-inline-end:1px solid var(--digital-borde); bottom:0; inset-inline-start:0; position:fixed; width:var(--carta-ancho-lateral); }
.categorias-lateral .categorias-navegacion__interior { height:100%; overflow:hidden auto; }
.categorias-lateral .categorias-navegacion__lista { flex-direction:column; gap:.2rem; padding:.4rem; }
.categorias-lateral .categoria-enlace { background:transparent; border-color:transparent; border-radius:.5rem; flex-direction:column; font-size:clamp(.65rem,1.1vw,.78rem); justify-content:center; min-height:3.5rem; padding:.4rem .2rem; text-align:center; }
.categorias-lateral .categoria-enlace i { font-size:1.15rem; }
.categorias-lateral .categoria-enlace.is-active { background:#f8ead0; color:#71390d; }
.categorias-lateral .bloque-categoria { scroll-margin-top:calc(var(--ml-altura-cabecera) + .8rem); }
@media (max-width:400px) {
    .categorias-lateral .tarjeta-producto__pie { gap:.35rem; padding-inline:.6rem; }
    .categorias-lateral .presentacion-carta .buscador-carta { padding-inline:.45rem; }
}
