/* ──────────────────────────────────────────────────────────────────
   wp-extras.css
   Bridges between the standalone handoff design (which used
   <image-slot> custom elements) and the WordPress build (plain <img>
   and CSS-bg div). Mirrors the image-slot rules onto our markup.
   ────────────────────────────────────────────────────────────────── */

/* Hero photo */
.hero__media .hero__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 4/4.4;
    object-fit: cover;
    border-radius: 26px;
    box-shadow: var(--shadow);
    position: relative;
    z-index: 1;
}

/* Reposition the "Recién cocinado" badge so it doesn't collide with the
   hero qpills on the left. Pin it to the bottom-right of the photo. */
.hero__media .hero__badge {
    left: auto !important;
    right: 12px !important;
    bottom: 12px !important;
    z-index: 3;
}
@media (max-width: 720px) {
    .hero__media .hero__badge { right: 12px !important; bottom: 12px !important; }
}

/* About photo */
.about__media .about__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 4/5;
    object-fit: cover;
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
    display: block;
}

/* Starter photo (placeholder while no image set yet) */
.starter__media .starter__photo {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--lilac-t), var(--peach-t));
}

/* Feature card photo */
.fcard__media .fcard__photo {
    position: absolute;
    inset: 0;
    background: var(--cream-2);
    background-size: cover;
    background-position: center;
}
.fcard:nth-child(1) .fcard__photo { background-color: var(--olive-t); }
.fcard:nth-child(2) .fcard__photo { background-color: var(--lilac-t); }
.fcard:nth-child(3) .fcard__photo { background-color: var(--peach-t); }

/* Primary nav — strip list markers from items rendered by wp_nav_menu */
.nav,
.nav ul {
    list-style: none !important;
    margin: 0;
    padding: 0;
}
.nav li {
    list-style: none !important;
    margin: 0;
    padding: 0;
    background: none;
    display: inline-flex;
    align-items: center;
}
.nav li::before, .nav li::marker { content: none !important; display: none !important; }
.nav li a { text-decoration: none; }

/* Marquee items — design built them via JS, here we ship server-side */
.marquee__item {
    display: inline-block;
    padding: 0 28px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
}

/* ──────────────────────────────────────────────────────────────────
   Fixed marquee (LFP plugin wrapper) pinned to the very top of the
   viewport. Header sits below it (sticky), body padded so content
   isn't covered.
   ────────────────────────────────────────────────────────────────── */
.lafp-mq-wrapper {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 70 !important;
    min-height: 36px;
    padding: 8px 0 !important;
    display: flex;
    align-items: center;
}
.header {
    top: 36px !important;
}
body {
    padding-top: 36px;
}
/* Tamaño del texto del marquee (pisa el 14px inline del plugin) */
.lafp-mq-wrapper,
.lafp-mq-track,
.lafp-mq-content,
.lafp-mq-item { font-size: 12px !important; }
@media (max-width: 720px) {
    .lafp-mq-wrapper { min-height: 28px; padding: 5px 0 !important; letter-spacing: .02em !important; }
    .lafp-mq-wrapper,
    .lafp-mq-track,
    .lafp-mq-content,
    .lafp-mq-item { font-size: 9px !important; }
    .header { top: 28px !important; }
    body { padding-top: 28px; }
}

/* Logged-in admins: the WP admin bar (32px / 46px mobile) is fixed on top —
   push the marquee + header below it so it doesn't get covered. */
body.admin-bar .lafp-mq-wrapper { top: 32px; }
body.admin-bar .header { top: 68px !important; }
@media (max-width: 782px) {
    body.admin-bar .lafp-mq-wrapper { top: 46px; }
    body.admin-bar .header { top: 78px !important; }
}

@media (max-width: 720px) {
    .hero__media .hero__photo { aspect-ratio: 4/3; }
}

/* ──────────────────────────────────────────────────────────────────
   Destacados — featured carousel + tiles row
   ────────────────────────────────────────────────────────────────── */
.destacados {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 24px;
    margin-top: 28px;
}
@media (max-width: 560px) {
    .destacados { grid-template-columns: 1fr 1fr; }
}

/* Featured row (full width, always on top regardless of DOM order) */
.dest-item.is-featured {
    order: -1;
    grid-column: 1 / -1;
    animation: nbc-fade .35s ease-out;
}
.dest-item.is-featured .dest-item__tile { display: none !important; }
.dest-item.is-featured .dest-item__featured {
    display: grid;
    grid-template-columns: .95fr 1.05fr;
    background: var(--paper);
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--shadow);
    min-height: 480px;
}
@media (max-width: 900px) {
    .dest-item.is-featured .dest-item__featured { grid-template-columns: 1fr; min-height: 0; }
}

/* Tiles flow below the featured, wrapping across the available columns */
.dest-item.is-tile {
    cursor: pointer;
    animation: nbc-fade-soft .35s ease-out;
}
.dest-item.is-tile .dest-item__featured { display: none !important; }

@keyframes nbc-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes nbc-fade-soft { from { opacity: 0; } to { opacity: 1; } }

/* Tile card */
.dest-item__tile {
    width: 100%;
    height: 100%;
    appearance: none;
    background: var(--paper, #fff);
    border: 1px solid var(--line, #e5e3dc);
    border-radius: var(--r-md, 18px);
    overflow: hidden;
    padding: 0;
    text-align: left;
    cursor: pointer;
    transition: transform .2s, box-shadow .2s, border-color .2s;
    display: flex;
    flex-direction: column;
    font-family: inherit;
    color: inherit;
}
.dest-item__tile:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow, 0 12px 32px rgba(0,0,0,.08));
    border-color: var(--ink, #1a1a1a);
}
.dest-item__tile-photo {
    aspect-ratio: 5/4;
    background: var(--cream-2, #f3efe8);
    position: relative;
}
.dest-item__tile-tag {
    position: absolute;
    top: 12px;
    left: 12px;
    max-width: calc(100% - 24px);
    background: var(--paper, #fff);
    color: var(--ink, #1a1a1a);
    border-radius: 999px;
    padding: 5px 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.dest-item__tile-tag i { flex: none; }
.dest-item__tile-tag i { color: var(--accent-d, #ef7c33); }
.dest-item__tile-body {
    padding: 18px 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}
.dest-item__tile-title {
    font-family: var(--font-head);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.15;
    margin: 0;
    color: var(--ink, #1a1a1a);
}
.dest-item__tile-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
}
.dest-item__tile-price {
    font-family: var(--font-head);
    font-size: 19px;
    font-weight: 700;
    color: var(--accent-d, #ef7c33);
    white-space: nowrap;
}
.dest-item__tile-price small { font-family: var(--font-body); font-size: 12px; font-weight: 500; color: var(--ink-2, #666); margin-left: 4px; }
/* Precio + "Ver combo" agrupados al fondo → alineados a la misma altura en todas las cards */
.dest-item__tile-price { margin-top: auto; }
.dest-item__tile-cta {
    color: var(--ink-2, #736a5c);
    font-size: 13.5px;
    font-weight: 700;
    white-space: nowrap;
    margin-top: 6px;       /* justo debajo del precio */
}

/* Product photo fill (featured media + tile) — shown when the product has one */
.starter__img,
.dest-item__tile-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* No-photo tiles: compact colored label band instead of a big empty block */
.dest-item__tile-photo:not(.has-photo) {
    aspect-ratio: auto;
    min-height: 0;
    padding: 15px 16px;
    display: flex;
    align-items: center;
}
.dest-item__tile-photo:not(.has-photo) .dest-item__tile-tag {
    position: static;
    top: auto;
    left: auto;
}

/* Featured (uses .starter layout from main.css) */
.dest-item__featured.simple .starter__list li {
    font-size: 14.5px;
}

/* Mobile: stack price + CTA so "$ 60.000" never splits across lines */
@media (max-width: 560px) {
    .dest-item__tile-foot {
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
    }
    .dest-item__tile-photo.has-photo { aspect-ratio: 16/10; }
}

/* ──────────────────────────────────────────────────────────────────
   Novedades carousel — arrows + horizontal scroll-snap
   ────────────────────────────────────────────────────────────────── */
.nov-carousel {
    position: relative;
    margin-top: 28px;
}
.nov-carousel .nov-row {
    grid-auto-flow: column;
    grid-auto-columns: 280px;
    display: grid;
    gap: 18px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 0;
    padding: 6px 2px 8px;
    /* Ocultar la barra de scroll — se navega con las flechas / swipe */
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.nov-carousel .nov-row::-webkit-scrollbar { display: none; height: 0; width: 0; }
.nov-carousel.no-scroll .nov-arrow { display: none; }
.nov-arrow {
    position: absolute;
    top: 38%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--paper, #fff);
    border: 1px solid var(--line, #e5e3dc);
    box-shadow: 0 6px 18px rgba(0,0,0,.08);
    color: var(--ink, #1a1a1a);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    z-index: 3;
    transition: transform .12s, box-shadow .12s, background .12s, color .12s;
}
.nov-arrow svg { width: 20px; height: 20px; }
.nov-arrow:hover {
    background: var(--ink, #1a1a1a);
    color: #fff;
    transform: translateY(-50%) scale(1.05);
}
.nov-arrow--prev { left: -22px; }
.nov-arrow--next { right: -22px; }
.nov-arrow[hidden] { display: none; }
.nov-arrow.is-disabled { opacity: .3; pointer-events: none; }

@media (max-width: 700px) {
    .nov-arrow { display: none !important; }
}

/* ──────────────────────────────────────────────────────────────────
   Shop archive (tienda + categorías)
   ────────────────────────────────────────────────────────────────── */
.shop-layout {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 36px;
    margin-top: 24px;
}
@media (max-width: 900px) {
    .shop-layout { grid-template-columns: 1fr; }
}

.shop-filters {
    position: sticky;
    top: 100px;
    align-self: start;
}

/* Botón "Filtros" — sólo mobile */
.shop-filters-toggle {
    display: none;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1.5px solid var(--line, #e5e3dc);
    border-radius: 999px;
    padding: 9px 18px;
    font-family: inherit;
    font-weight: 700;
    font-size: 14px;
    color: var(--ink, #2c2823);
    cursor: pointer;
}
.shop-filters-toggle svg { width: 18px; height: 18px; }
.shop-filters-toggle.is-active { background: var(--ink, #2c2823); color: #fff; }

@media (max-width: 900px) {
    .shop-filters-toggle { display: inline-flex; }
    /* Sin sticky en mobile: causaba que los productos se vieran por detrás (overlap) */
    .shop-filters { position: static; top: auto; }
    /* Buscador siempre visible; categorías/precio/reset colapsados hasta abrir "Filtros" */
    .shop-filters .shop-filter-block:not(:first-child),
    .shop-filters .shop-filter-reset { display: none; }
    .shop-filters.is-open .shop-filter-block:not(:first-child),
    .shop-filters.is-open .shop-filter-reset { display: block; }
}
.shop-filters__title {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ink-2, #555);
    margin: 0 0 12px;
}
.shop-filters__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.shop-filters__list a {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 8px 12px;
    border-radius: 8px;
    text-decoration: none;
    color: var(--ink, #1a1a1a);
    font-size: 14px;
    transition: background .12s;
}
.shop-filters__list a:hover { background: var(--cream-2, #f3efe8); }
.shop-filters__list a.is-active { background: var(--ink, #1a1a1a); color: #fff; }
.shop-filters__list a.is-active small { color: rgba(255,255,255,.7); }
.shop-filters__list small { color: var(--ink-2, #888); font-size: 12px; }

.shop-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}
.shop-toolbar .woocommerce-result-count { margin: 0; color: var(--ink-2, #666); font-size: 13px; }
.shop-toolbar .woocommerce-ordering select {
    border: 1px solid var(--line, #e5e3dc);
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 13px;
    background: #fff;
}

.shop-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 18px;
}
.shop-grid .ncard { scroll-snap-align: none; display: flex; flex-direction: column; }

.shop-pagination {
    margin-top: 32px;
    display: flex;
    justify-content: center;
}
.shop-pagination .page-numbers {
    display: flex;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.shop-pagination .page-numbers li { list-style: none; }
.shop-pagination .page-numbers a, .shop-pagination .page-numbers span {
    display: inline-block;
    padding: 8px 14px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid var(--line, #e5e3dc);
    color: var(--ink, #1a1a1a);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
}
.shop-pagination .page-numbers .current { background: var(--ink, #1a1a1a); color: #fff; border-color: var(--ink, #1a1a1a); }

.shop-empty { padding: 60px 0; text-align: center; color: var(--ink-2, #888); }

/* Filter blocks */
.shop-filter-block { margin-bottom: 22px; padding-bottom: 22px; border-bottom: 1px solid var(--line, #e5e3dc); }
.shop-filter-block:last-of-type { border-bottom: 0; }
.shop-filter-label {
    display: block;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--ink-2, #555);
    margin: 0 0 10px;
}
.shop-search-input {
    width: 100%;
    border: 1px solid var(--line, #e5e3dc);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 14px;
    background: #fff;
    box-sizing: border-box;
}
.shop-search-input:focus { outline: none; border-color: var(--ink, #1a1a1a); }

.shop-price-inputs {
    display: flex;
    gap: 8px;
    align-items: center;
}
.shop-price-inputs input {
    width: 100%;
    border: 1px solid var(--line, #e5e3dc);
    border-radius: 8px;
    padding: 8px 10px;
    font-size: 13px;
    box-sizing: border-box;
}
.shop-price-inputs input:focus { outline: none; border-color: var(--ink, #1a1a1a); }
.shop-price-hint { margin: 8px 0 0; font-size: 11.5px; color: var(--ink-2, #888); }

.shop-filter-reset {
    width: 100%;
    background: transparent;
    border: 1px solid var(--line, #e5e3dc);
    border-radius: 8px;
    padding: 10px;
    color: var(--ink-2, #555);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background .12s, color .12s, border-color .12s;
    margin-top: 8px;
}
.shop-filter-reset:hover { background: var(--ink, #1a1a1a); color: #fff; border-color: var(--ink, #1a1a1a); }

/* Toolbar */
.shop-toolbar__count { color: var(--ink-2, #666); font-size: 13px; }
.shop-order {
    border: 1px solid var(--line, #e5e3dc);
    border-radius: 8px;
    padding: 8px 32px 8px 12px;
    font-size: 13px;
    background: #fff;
    cursor: pointer;
}

/* Infinite scroll loader */
.shop-loadmore {
    margin-top: 32px;
    text-align: center;
}
.shop-loader {
    display: inline-flex;
    gap: 6px;
    padding: 16px 0;
}
.shop-loader .dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--ink, #1a1a1a);
    animation: nbc-bounce 1.2s infinite ease-in-out both;
}
.shop-loader .dot:nth-child(2) { animation-delay: -1.1s; }
.shop-loader .dot:nth-child(3) { animation-delay: -1.0s; }
@keyframes nbc-bounce {
    0%, 80%, 100% { transform: scale(.4); opacity: .5; }
    40%           { transform: scale(1);  opacity: 1; }
}
.shop-loadmore__btn { padding: 12px 28px; }
.shop-loadmore__end { color: var(--ink-2, #888); font-size: 13px; margin: 8px 0; }

/* ──────────────────────────────────────────────────────────────────
   Header search overlay
   ────────────────────────────────────────────────────────────────── */
.nbc-search-overlay {
    position: fixed;
    inset: 0;
    background: rgba(20, 18, 14, .65);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 9999;
    opacity: 0;
    pointer-events: none;
    transition: opacity .18s;
}
.nbc-search-overlay.is-open { opacity: 1; pointer-events: auto; }
.nbc-search-panel {
    max-width: 640px;
    margin: 12vh auto 0;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 30px 80px rgba(0,0,0,.25);
    transform: translateY(-8px);
    transition: transform .18s;
}
.nbc-search-overlay.is-open .nbc-search-panel { transform: translateY(0); }
.nbc-search-form {
    display: flex;
    align-items: center;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line, #e5e3dc);
}
.nbc-search-input {
    flex: 1;
    border: 0;
    font-size: 18px;
    padding: 12px;
    outline: none;
    background: transparent;
}
.nbc-search-close {
    background: transparent;
    border: 0;
    width: 36px; height: 36px;
    font-size: 26px;
    cursor: pointer;
    color: var(--ink-2, #888);
    border-radius: 50%;
}
.nbc-search-close:hover { background: #f3f0ea; color: var(--ink, #1a1a1a); }
.nbc-search-results {
    max-height: 60vh;
    overflow-y: auto;
}
.nbc-search-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line, #e5e3dc);
    text-decoration: none;
    color: var(--ink, #1a1a1a);
    transition: background .12s;
}
.nbc-search-item:hover { background: #f8f5ee; }
.nbc-search-thumb {
    width: 48px; height: 48px;
    border-radius: 10px;
    background: var(--cream-2, #f3efe8) center/cover no-repeat;
    flex: none;
}
.nbc-search-info { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.nbc-search-title { font-weight: 600; font-size: 14px; }
.nbc-search-price { font-size: 13px; color: var(--ink-2, #666); }
.nbc-search-all {
    display: block;
    padding: 14px 16px;
    text-align: center;
    background: var(--ink, #1a1a1a);
    color: #fff !important;
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
}
.nbc-search-all:hover { background: #000; }
.nbc-search-empty { padding: 30px 16px; text-align: center; color: var(--ink-2, #888); }

/* ──────────────────────────────────────────────────────────────────
   Single product
   ────────────────────────────────────────────────────────────────── */
.product-detail__crumbs {
    margin-bottom: 24px;
    font-size: 13px;
    color: var(--ink-2, #666);
}
.product-detail__crumbs a { color: var(--ink-2, #666); text-decoration: none; }
.product-detail__crumbs a:hover { color: var(--ink, #1a1a1a); }
.product-detail__crumbs .sep { padding: 0 6px; opacity: .5; }

.product-detail__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 40px;
    align-items: start;
}
@media (max-width: 900px) {
    /* minmax(0,1fr): la columna NO se expande al contenido más ancho
       (iframes/imágenes/palabras largas) — eso causaba el overflow horizontal. */
    .product-detail__grid { grid-template-columns: minmax(0, 1fr); }
}
.product-detail__gallery,
.product-detail__info { min-width: 0; }
.product-detail__info { overflow-wrap: break-word; }

.product-detail__photo {
    aspect-ratio: 4/4.4;
    background: var(--cream-2, #f3efe8) center/cover no-repeat;
    border-radius: 26px;
    box-shadow: var(--shadow);
}
.product-detail__photo--empty {
    background: repeating-linear-gradient(45deg, #f1efe8 0 12px, #ebe9e0 12px 24px);
}
.product-detail__thumbs {
    display: flex;
    gap: 10px;
    margin-top: 14px;
    overflow-x: auto;
}
.product-detail__thumb {
    width: 72px;
    height: 72px;
    border-radius: 10px;
    border: 2px solid var(--line, #e5e3dc);
    background: var(--cream-2, #f3efe8) center/cover no-repeat;
    cursor: pointer;
    flex: none;
    padding: 0;
    transition: border-color .12s;
}
.product-detail__thumb:hover { border-color: var(--ink-2, #888); }
.product-detail__thumb.is-active { border-color: var(--ink, #1a1a1a); }

.product-detail__title {
    font-size: clamp(28px, 3.6vw, 44px);
    line-height: 1.05;
    margin: 8px 0 16px;
    letter-spacing: -0.015em;
}
.product-detail__price {
    font-family: var(--font-head);
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 18px;
}
.product-detail__price del { color: var(--ink-2, #888); font-weight: 500; font-size: 18px; margin-right: 8px; }
.product-detail__price ins { text-decoration: none; }

.product-detail__short {
    color: var(--ink-2, #444);
    font-size: 15.5px;
    line-height: 1.55;
    margin-bottom: 24px;
}

.product-detail__atc { margin: 0 0 8px; }
.product-detail__atc form.cart {
    display: flex;
    flex-direction: column;
    gap: 18px;
    align-items: stretch;
    margin: 0;
}

/* Variations table */
.product-detail__atc .variations {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}
.product-detail__atc .variations tr { display: block; margin-bottom: 14px; }
.product-detail__atc .variations th.label {
    display: block;
    padding: 0 0 8px;
    text-align: left;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ink-2, #555);
}
.product-detail__atc .variations th.label label { color: inherit; font-weight: inherit; }
.product-detail__atc .variations td.value { display: block; padding: 0; vertical-align: middle; }

/* Hide native select once we've swatched it */
.product-detail__atc .variations select.is-hidden-by-swatches { display: none !important; }

/* Reset variation form remnants */
.product-detail__atc .reset_variations {
    display: inline-block !important;
    margin-top: 8px;
    font-size: 12px;
    color: var(--ink-2, #888) !important;
    text-decoration: underline;
    background: none;
    border: 0;
    padding: 0;
}
.product-detail__atc .reset_variations:hover { color: var(--ink, #1a1a1a) !important; }

/* Swatch buttons */
.nbc-swatches {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.nbc-swatch {
    background: #fff;
    color: var(--ink, #1a1a1a);
    border: 1.5px solid var(--line, #e5e3dc);
    padding: 10px 18px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .12s, background .12s, color .12s;
    font-family: inherit;
    line-height: 1;
    min-width: 56px;
    text-align: center;
}
.nbc-swatch:hover { border-color: var(--ink, #1a1a1a); }
.nbc-swatch.is-selected {
    background: var(--ink, #1a1a1a);
    border-color: var(--ink, #1a1a1a);
    color: #fff;
}

/* Variation price + availability lines */
.product-detail__atc .woocommerce-variation { margin: 4px 0 0; }
.product-detail__atc .woocommerce-variation-price { font-family: var(--font-head, inherit); font-size: 22px; font-weight: 700; color: var(--ink, #1a1a1a); }
.product-detail__atc .woocommerce-variation-availability { font-size: 13px; color: var(--ink-2, #666); margin-top: 4px; }

/* Quantity + add-to-cart row */
.product-detail__atc .single_variation_wrap > div.woocommerce-variation-add-to-cart,
.product-detail__atc form.cart > .quantity { /* containers */ }

.product-detail__atc .quantity {
    display: inline-flex;
    align-items: center;
    border: 1.5px solid var(--line, #e5e3dc);
    border-radius: 999px;
    padding: 4px;
    background: #fff;
    vertical-align: middle;
    width: auto !important;   /* que no se estire a todo el ancho */
    flex: none;
    align-self: flex-start;
}
.product-detail__atc .quantity input.qty {
    width: 64px;
    padding: 10px 4px;
    border: 0;
    background: transparent;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
    color: var(--ink, #1a1a1a);
    -moz-appearance: textfield;
    appearance: textfield;
}
.product-detail__atc .quantity input.qty::-webkit-outer-spin-button,
.product-detail__atc .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.product-detail__atc .quantity input.qty:focus { outline: none; }

.product-detail__atc .single_add_to_cart_button,
.product-detail__atc .woocommerce-variation-add-to-cart button {
    background: var(--ink, #1a1a1a);
    color: #fff;
    border: 0;
    padding: 14px 32px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: background .12s, transform .12s, opacity .12s;
    flex: 1;
    text-transform: none;
    letter-spacing: 0;
    min-width: 0;
}
.product-detail__atc .single_add_to_cart_button:hover { background: #000; transform: translateY(-1px); }
.product-detail__atc .single_add_to_cart_button.disabled,
.product-detail__atc .single_add_to_cart_button:disabled { opacity: .45; cursor: not-allowed; background: var(--ink-2, #888); }

/* Layout: cantidad compacta arriba a la izquierda, botón full width debajo */
.product-detail__atc form.cart,
.product-detail__atc .woocommerce-variation-add-to-cart {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
}
.product-detail__atc form.cart > .quantity,
.product-detail__atc .woocommerce-variation-add-to-cart > .quantity {
    align-self: flex-start;
}
.product-detail__atc form.cart > .single_add_to_cart_button,
.product-detail__atc .woocommerce-variation-add-to-cart button.single_add_to_cart_button {
    width: 100%;
    flex: none;
}

.product-detail__meta {
    border-top: 1px solid var(--line, #e5e3dc);
    padding-top: 16px;
    color: var(--ink-2, #666);
    font-size: 13px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.product-detail__meta b { color: var(--ink, #1a1a1a); margin-right: 4px; }

.product-detail__description {
    margin-top: 60px;
    padding-top: 40px;
    border-top: 1px solid var(--line, #e5e3dc);
    max-width: 760px;
}
.product-detail__description h2 {
    font-size: 24px;
    margin-bottom: 16px;
}

.product-detail__related {
    margin-top: 60px;
    padding-top: 40px;
    border-top: 1px solid var(--line, #e5e3dc);
}

/* Single product — extras */
.product-detail__cat { color: var(--accent-d, #ef7c33); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; font-size: 12px; }
.product-detail__badge {
    position: absolute;
    top: 16px; left: 16px;
    background: var(--ink, #1a1a1a);
    color: #fff;
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
}
.product-detail__badge--sale { background: var(--accent, #fb914e); }
.product-detail__photo { position: relative; }

.product-detail__discounts { display: flex; gap: 8px; flex-wrap: wrap; margin: 14px 0 18px; }
.pay-pill {
    display: inline-flex;
    align-items: center;
    background: var(--olive-t, #e6eadf);
    color: var(--olive-d, #4a5a3a);
    border-radius: 999px;
    padding: 5px 12px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
}

.product-detail__trust {
    list-style: none !important;
    padding: 0 !important;
    margin: 28px 0 0 !important;
    display: grid;
    gap: 14px;
    border-top: 1px solid var(--line, #e5e3dc);
    padding-top: 22px !important;
}
.product-detail__trust li {
    list-style: none !important;
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.product-detail__trust svg { width: 28px; height: 28px; flex: none; color: var(--accent-d, #ef7c33); margin-top: 2px; }
.product-detail__trust b { display: block; font-size: 14px; font-weight: 700; color: var(--ink, #1a1a1a); }
.product-detail__trust span { font-size: 12.5px; color: var(--ink-2, #555); line-height: 1.4; }

.product-detail__sku { font-size: 13px; color: var(--ink-2, #666); margin: 18px 0 0; }
.product-detail__sku code { background: var(--cream-2, #f3efe8); padding: 2px 8px; border-radius: 6px; font-family: monospace; font-size: 12px; }

.product-detail__wa {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #25d366;
    color: #fff !important;
    border-radius: 999px;
    padding: 12px 20px;
    font-weight: 700;
    font-size: 14px;
    margin-top: 24px;
    text-decoration: none;
    transition: background .12s, transform .12s;
}
.product-detail__wa:hover { background: #1eb854; transform: translateY(-1px); color: #fff !important; }
.product-detail__wa svg { width: 20px; height: 20px; flex: none; }

@media (min-width: 901px) {
    /* La FOTO acompaña el scroll mientras se lee el detalle a la derecha
       (que suele ser más largo). Patrón estándar de ficha de producto. */
    .product-detail__gallery { position: sticky; top: 120px; align-self: start; }
    .product-detail__info { position: static; }
}

/* Tabs */
.product-detail__tabs {
    margin-top: 60px;
    padding-top: 40px;
    border-top: 1px solid var(--line, #e5e3dc);
}
.product-detail__tabs-nav {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--line, #e5e3dc);
    margin-bottom: 24px;
}
.product-detail__tab {
    background: transparent;
    border: 0;
    padding: 14px 4px;
    margin-right: 28px;
    font-size: 15px;
    font-weight: 600;
    color: var(--ink-2, #666);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color .12s, border-color .12s;
}
.product-detail__tab:hover { color: var(--ink, #1a1a1a); }
.product-detail__tab.is-active {
    color: var(--ink, #1a1a1a);
    border-bottom-color: var(--accent, #fb914e);
}
.product-detail__panel { display: none; max-width: 760px; line-height: 1.6; color: var(--ink-2, #444); }
.product-detail__panel.is-active { display: block; }
.product-detail__panel p { margin: 0 0 1em; }

/* ──────────────────────────────────────────────────────────────────
   Contact page
   ────────────────────────────────────────────────────────────────── */
.contact-extra { max-width: 720px; margin: 0 0 32px; color: var(--ink-2, #444); line-height: 1.6; }
.contact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 18px;
    margin-top: 12px;
}
.contact-card {
    background: var(--paper, #fff);
    border: 1px solid var(--line, #e5e3dc);
    border-radius: var(--r-md, 18px);
    padding: 26px 24px;
    text-decoration: none;
    color: var(--ink, #1a1a1a);
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: transform .15s, box-shadow .15s, border-color .15s;
}
.contact-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--ink, #1a1a1a); }
.contact-card__icon {
    width: 48px; height: 48px;
    border-radius: 12px;
    background: var(--cream-2, #f3efe8);
    display: grid; place-items: center;
    color: var(--ink, #1a1a1a);
}
.contact-card__icon svg { width: 24px; height: 24px; }
.contact-card--wa .contact-card__icon { background: #25d366; color: #fff; }
.contact-card h3 { margin: 0; font-size: 18px; font-weight: 700; }
.contact-card p { margin: 0; font-size: 13.5px; color: var(--ink-2, #555); line-height: 1.4; }
.contact-card__cta { margin-top: auto; font-size: 13px; font-weight: 700; color: var(--accent-d, #ef7c33); }

.contact-faq { margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--line, #e5e3dc); max-width: 760px; }
.contact-faq h2 { font-size: 22px; margin: 0 0 18px; }
.contact-faq ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.contact-faq li { list-style: none; padding: 14px 0; border-bottom: 1px solid var(--line, #e5e3dc); }
.contact-faq li:last-child { border-bottom: none; }
.contact-faq b { display: block; font-size: 14px; font-weight: 700; color: var(--ink, #1a1a1a); margin-bottom: 4px; }
.contact-faq span { font-size: 14px; color: var(--ink-2, #555); line-height: 1.5; }

/* ──────────────────────────────────────────────────────────────────
   About page — wider About section
   ────────────────────────────────────────────────────────────────── */
.about-hero { padding-top: 40px; }
.about-hero .about__text.page-content p { margin: 0 0 1em; }
.about-hero .about__text.page-content { color: var(--ink-2, #444); line-height: 1.6; }

/* About: secondary image stacked */
.about__media--stack { position: relative; }
.about__photo--secondary {
    position: absolute;
    bottom: -32px;
    right: -32px;
    width: 42%;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 18px;
    border: 6px solid var(--paper, #fff);
    box-shadow: 0 12px 32px rgba(0,0,0,.12);
    z-index: 2;
}
@media (max-width: 720px) {
    .about__photo--secondary { right: 0; bottom: -24px; width: 56%; border-width: 4px; }
}

/* About — pillars */
.about-pillars { padding-top: 70px; padding-bottom: 70px; }
.about__pillars {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 22px;
    margin-top: 30px;
}
.pillar {
    background: var(--paper, #fff);
    border-radius: var(--r-md, 18px);
    padding: 26px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.pillar__ico {
    width: 44px; height: 44px;
    border-radius: 12px;
    background: var(--accent-t, #fde7d6);
    color: var(--accent-d, #ef7c33);
    display: grid; place-items: center;
    flex-shrink: 0;
}
.pillar__ico svg { width: 22px; height: 22px; }
.pillar__title { margin: 0; font-size: 17px; font-weight: 700; color: var(--ink, #1a1a1a); }
.pillar__text { margin: 0; font-size: 13.5px; color: var(--ink-2, #555); line-height: 1.5; }

/* About — facts inline strip */
.about-facts-section { padding-top: 40px; padding-bottom: 40px; border-top: 1px solid var(--line, #e5e3dc); border-bottom: 1px solid var(--line, #e5e3dc); }
.about__facts--inline {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 24px;
}

/* About — CTA */
.about-cta { padding-top: 60px; padding-bottom: 60px; }
.about-cta__box {
    background: var(--ink, #1a1a1a);
    color: #fff;
    border-radius: var(--r-lg, 26px);
    padding: 40px 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
}
.about-cta__title { font-size: clamp(22px, 3vw, 32px); margin: 0 0 6px; color: #fff; }
.about-cta__text { margin: 0; color: rgba(255,255,255,.75); max-width: 38ch; font-size: 14.5px; }
.about-cta__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.about-cta__actions .btn-primary { background: var(--accent, #fb914e); color: #fff; }
.about-cta__actions .btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.3); }
.about-cta__actions .btn-ghost:hover { background: rgba(255,255,255,.1); }

/* ──────────────────────────────────────────────────────────────────
   Cart page
   ────────────────────────────────────────────────────────────────── */
.cart-page__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: 36px;
    align-items: start;
    margin-top: 24px;
}
@media (max-width: 900px) {
    .cart-page__layout { grid-template-columns: 1fr; }
}

/* min-width:0 lets the grid column shrink the table instead of overflowing
   under the sticky sidebar */
.cart-page__items { min-width: 0; }
.cart-page__items .shop_table {
    width: 100%;
    background: var(--paper, #fff);
    border-radius: var(--r-md, 18px);
    overflow: hidden;
    border-collapse: collapse;
    box-shadow: 0 4px 14px rgba(0,0,0,.04);
}
.cart-page__items .shop_table .product-thumbnail { width: 88px; }
.cart-page__items .shop_table th {
    background: var(--cream-2, #f3efe8);
    color: var(--ink-2, #555);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    padding: 14px 18px;
    text-align: left;
    border: none;
}
.cart-page__items .shop_table td {
    padding: 16px 12px;
    vertical-align: middle;
    border-top: 1px solid var(--line, #e5e3dc);
}
.cart-page__items .shop_table td:first-child,
.cart-page__items .shop_table th:first-child { padding-left: 18px; }
.cart-page__items .shop_table td:last-child,
.cart-page__items .shop_table th:last-child { padding-right: 18px; }
.cart-page__items .shop_table .product-thumbnail img {
    width: 64px; height: 64px;
    object-fit: cover;
    border-radius: 12px;
}
.cart-page__items .shop_table .product-name a {
    font-weight: 700;
    color: var(--ink, #1a1a1a);
    text-decoration: none;
    font-size: 15px;
}
.cart-page__items .shop_table .product-name a:hover { color: var(--accent-d, #ef7c33); }
.cart-page__items .shop_table .product-price,
.cart-page__items .shop_table .product-subtotal {
    font-weight: 700;
    color: var(--ink, #1a1a1a);
    white-space: nowrap;
    font-size: 14px;
}
.cart-page__items .shop_table .quantity input.qty {
    width: 70px;
    padding: 8px 10px;
    border: 1px solid var(--line, #e5e3dc);
    border-radius: 8px;
    text-align: center;
    font-weight: 600;
}
.cart-page__items .shop_table .remove {
    display: inline-flex;
    width: 26px; height: 26px;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--ink-2, #888) !important;
    border-radius: 50%;
    margin-left: 12px;
    text-decoration: none !important;
    font-size: 22px;
    line-height: 1;
}
.cart-page__items .shop_table .remove:hover { background: #ffe1d4; color: var(--accent-d, #ef7c33) !important; }

.cart-page__items .shop_table {
    border-radius: var(--r-md, 18px) var(--r-md, 18px) 0 0;
}
.cart-page__items .cart-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    background: var(--cream-2, #f3efe8);
    border-radius: 0 0 var(--r-md, 18px) var(--r-md, 18px);
    padding: 16px 18px;
}
.cart-page__items .coupon {
    display: flex;
    gap: 8px;
    align-items: center;
    flex: 1;
    min-width: 0;
    max-width: 360px;
}
.cart-page__items .coupon input#coupon_code {
    flex: 1;
    border: 1px solid var(--line, #e5e3dc);
    border-radius: 8px;
    padding: 8px 14px;
    background: #fff;
    font-size: 13.5px;
}
.cart-page__items .button {
    background: var(--ink, #1a1a1a);
    color: #fff !important;
    border: 0;
    border-radius: 999px;
    padding: 10px 22px;
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none !important;
}
.cart-page__items .button:hover { background: #000; }
.cart-page__items .button.button-secondary { background: transparent; color: var(--ink-2, #555) !important; border: 1px solid var(--line, #e5e3dc); }
.cart-page__items .button.button-secondary:hover { border-color: var(--ink, #1a1a1a); color: var(--ink, #1a1a1a) !important; }

/* Mobile: stack the cart table rows as cards (shop_table_responsive) */
@media (max-width: 720px) {
    .cart-page__items .shop_table thead { display: none; }
    .cart-page__items .shop_table,
    .cart-page__items .shop_table tbody,
    .cart-page__items .shop_table tr,
    .cart-page__items .shop_table td { display: block; width: 100%; box-sizing: border-box; }
    .cart-page__items .shop_table tr.cart_item {
        position: relative;
        padding: 16px 18px 16px 96px;
        border-top: 1px solid var(--line, #e5e3dc);
        min-height: 96px;
    }
    .cart-page__items .shop_table tr.cart_item:first-child { border-top: none; }
    .cart-page__items .shop_table td { padding: 2px 0; border: none; }
    .cart-page__items .shop_table td.product-thumbnail {
        position: absolute;
        left: 18px; top: 16px;
        width: 64px; padding: 0;
    }
    .cart-page__items .shop_table td.product-price::before,
    .cart-page__items .shop_table td.product-quantity::before,
    .cart-page__items .shop_table td.product-subtotal::before {
        content: attr(data-title) ": ";
        font-size: 11px;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .06em;
        color: var(--ink-2, #888);
        margin-right: 6px;
    }
    .cart-page__items .shop_table td.product-quantity { display: flex; align-items: center; gap: 6px; }
    .cart-page__items .cart-actions { margin-top: 0; padding-top: 16px; }
}

/* Trust badges row */
.cart-page__trust {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 18px;
    margin: 24px 0 0;
    padding: 0;
    list-style: none !important;
}
.cart-page__trust li {
    list-style: none !important;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--paper, #fff);
    border: 1px solid var(--line, #e5e3dc);
    border-radius: 14px;
    padding: 14px 16px;
}
.cart-page__trust svg { width: 24px; height: 24px; flex: none; color: var(--accent-d, #ef7c33); margin-top: 2px; }
.cart-page__trust b { display: block; font-size: 13px; font-weight: 700; color: var(--ink, #1a1a1a); }
.cart-page__trust span { font-size: 12px; color: var(--ink-2, #666); line-height: 1.4; }

/* Sticky totals sidebar */
.cart-page__sidebar {
    position: sticky;
    top: 110px;
    align-self: start;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
/* Woo's stylesheet floats .cart_totals at width:48% — kill that so the card
   fills the sidebar and the table stays inside it */
.cart-page__sidebar .cart_totals {
    width: 100% !important;
    float: none !important;
    background: var(--paper, #fff);
    border-radius: var(--r-md, 18px);
    padding: 24px;
    box-sizing: border-box;
    box-shadow: 0 4px 14px rgba(0,0,0,.04);
}
.cart-page__sidebar::after { content: ""; display: table; clear: both; }
.cart-page__sidebar .cart_totals h2 {
    margin: 0 0 16px;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ink-2, #555);
}
/* Neutralize Woo's default shop_table chrome (outer border + negative margin
   overflow the rounded card) */
.cart-page__sidebar .cart_totals table.shop_table {
    width: 100%;
    border-collapse: collapse;
    border: none;
    margin: 0;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}
.cart-page__sidebar .cart_totals table th,
.cart-page__sidebar .cart_totals table td {
    padding: 12px 0;
    border: none;
    border-bottom: 1px solid var(--line, #e5e3dc);
    font-size: 14px;
    vertical-align: middle;
    background: transparent;
}
.cart-page__sidebar .cart_totals table th {
    color: var(--ink-2, #666);
    font-weight: 600;
    text-align: left;
    padding-right: 12px;
    max-width: 140px;
    line-height: 1.3;
}
.cart-page__sidebar .cart_totals table td { color: var(--ink, #1a1a1a); font-weight: 700; text-align: right; }
.cart-page__sidebar .cart_totals .order-total td,
.cart-page__sidebar .cart_totals .order-total th {
    font-size: 16px;
    color: var(--ink, #1a1a1a);
    border-bottom: none;
    padding-top: 16px;
}
.cart-page__sidebar .cart_totals .order-total td { font-size: 22px; }
.cart-page__sidebar .cart_totals .checkout-button,
.cart-page__sidebar .wc-proceed-to-checkout .checkout-button {
    background: var(--ink, #1a1a1a) !important;
    color: #fff !important;
    border: 0;
    border-radius: 999px !important;
    padding: 16px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-decoration: none;
    text-align: center;
    display: block;
    width: 100%;
    margin-top: 18px !important;
    transition: background .15s, transform .15s;
}
.cart-page__sidebar .checkout-button:hover { background: #000 !important; transform: translateY(-1px); }
.cart-page__sidebar .shipping-calculator-form { margin-top: 12px; }
.cart-page__sidebar .shipping-calculator-form input,
.cart-page__sidebar .shipping-calculator-form select {
    width: 100%;
    border: 1px solid var(--line, #e5e3dc);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 13.5px;
}
.cart-page__sidebar .shipping ul { list-style: none !important; padding: 0; margin: 0; }
.cart-page__sidebar .shipping label { display: inline; margin-left: 6px; }

/* WhatsApp button under totals */
.cart-page__wa {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #25d366;
    color: #fff !important;
    border-radius: 999px;
    padding: 14px 20px;
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
    justify-content: center;
    transition: background .12s, transform .12s;
}
.cart-page__wa:hover { background: #1eb854; transform: translateY(-1px); color: #fff !important; }
.cart-page__wa svg { width: 20px; height: 20px; flex: none; }

/* Empty cart fallback */
.cart-empty.woocommerce-info {
    text-align: center;
    padding: 60px 20px;
    background: var(--paper, #fff);
    border-radius: var(--r-md, 18px);
    color: var(--ink-2, #666);
    font-size: 16px;
}
.return-to-shop .wc-backward {
    display: inline-block;
    background: var(--ink, #1a1a1a);
    color: #fff !important;
    padding: 14px 28px;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 700;
    margin-top: 16px;
}

/* ──────────────────────────────────────────────────────────────────
   My account
   ────────────────────────────────────────────────────────────────── */
.woocommerce-account .sec.wrap { padding: 40px 0 80px; }
.myaccount {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 40px;
    margin: 40px 0 80px;
    padding: 0 24px;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 800px) {
    .myaccount { grid-template-columns: 1fr; }
}
.myaccount__nav {
    background: var(--paper, #fff);
    border: 1px solid var(--line, #e5e3dc);
    border-radius: var(--r-md, 18px);
    padding: 18px;
    align-self: start;
}
.myaccount__user {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 6px 16px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--line, #e5e3dc);
}
.myaccount__avatar img { border-radius: 50%; }
.myaccount__user small { display: block; font-size: 11.5px; color: var(--ink-2, #888); }
.myaccount__user b     { display: block; font-size: 14px; color: var(--ink, #1a1a1a); }

/* Woo's stylesheet floats the account nav at 30% and the content at 68% —
   inside our grid cards that collapses the links to ~70px. Kill it. */
.myaccount .woocommerce-MyAccount-navigation {
    float: none !important;
    width: 100% !important;
}
.myaccount .woocommerce-MyAccount-content,
.myaccount__content .woocommerce-MyAccount-content {
    float: none !important;
    width: 100% !important;
}
.woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.woocommerce-MyAccount-navigation li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 10px 14px;
    border-radius: 10px;
    text-decoration: none;
    color: var(--ink, #1a1a1a);
    font-size: 14px;
    font-weight: 600;
    transition: background .12s, color .12s;
}
.woocommerce-MyAccount-navigation li a:hover { background: var(--cream-2, #f3efe8); }
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--is-active a {
    background: var(--ink, #1a1a1a);
    color: #fff;
}

.myaccount__content {
    background: var(--paper, #fff);
    border: 1px solid var(--line, #e5e3dc);
    border-radius: var(--r-md, 18px);
    padding: 32px;
    min-height: 380px;
}
.myaccount__content table.shop_table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 24px;
}
.myaccount__content table.shop_table th,
.myaccount__content table.shop_table td {
    padding: 12px 14px;
    text-align: left;
    border-bottom: 1px solid var(--line, #e5e3dc);
    font-size: 14px;
}
.myaccount__content table.shop_table th { font-weight: 700; color: var(--ink-2, #555); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.myaccount__content input[type="text"],
.myaccount__content input[type="email"],
.myaccount__content input[type="password"],
.myaccount__content input[type="tel"],
.myaccount__content select,
.myaccount__content textarea {
    width: 100%;
    border: 1px solid var(--line, #e5e3dc);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 14px;
    background: #fff;
    box-sizing: border-box;
}
.myaccount__content input:focus,
.myaccount__content select:focus,
.myaccount__content textarea:focus { outline: none; border-color: var(--ink, #1a1a1a); }
.myaccount__content button[type="submit"],
.myaccount__content .button {
    background: var(--ink, #1a1a1a);
    color: #fff !important;
    border: 0;
    border-radius: 999px;
    padding: 12px 28px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    transition: background .12s, transform .12s;
}
.myaccount__content button[type="submit"]:hover,
.myaccount__content .button:hover { background: #000; transform: translateY(-1px); }

/* ──────────────────────────────────────────────────────────────────
   Box builder — "armá tu caja" (Tartas Individuales)
   ────────────────────────────────────────────────────────────────── */
.nbc-box {
    margin: 22px 0 4px;
    border: 1.5px solid var(--line, #e5e3dc);
    border-radius: 16px;
    padding: 18px;
    background: var(--paper, #fff);
}
.nbc-box.is-locked { opacity: .6; pointer-events: none; }
.nbc-box.is-locked [data-nbc-filters],
.nbc-box.is-locked .nbc-box__grid { filter: grayscale(.3); }
.nbc-box__head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
}
.nbc-box__label {
    font-size: 11px; font-weight: 800; text-transform: uppercase;
    letter-spacing: .08em; color: var(--ink-2, #555);
}
.nbc-box__counter {
    font-size: 13px; color: var(--ink-2, #666);
    background: var(--cream-2, #f3efe8); border-radius: 999px; padding: 5px 12px;
}
.nbc-box__counter b { color: var(--ink, #1a1a1a); font-size: 14px; }
.nbc-box.is-ready .nbc-box__counter { background: var(--olive-t, #e6eadf); color: var(--olive-d, #4a5a3a); }
.nbc-box.is-ready .nbc-box__counter b { color: var(--olive-d, #4a5a3a); }

.nbc-box__filters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.nbc-box__chip {
    border: 1px solid var(--line, #e5e3dc); background: #fff;
    border-radius: 999px; padding: 6px 13px; font-size: 12.5px; font-weight: 600;
    color: var(--ink-2, #555); cursor: pointer; font-family: inherit;
    transition: background .12s, color .12s, border-color .12s;
}
.nbc-box__chip:hover { border-color: var(--ink, #1a1a1a); }
.nbc-box__chip.is-active { background: var(--ink, #1a1a1a); color: #fff; border-color: var(--ink, #1a1a1a); }

.nbc-box__grid { display: flex; flex-direction: column; gap: 2px; }
.nbc-box__row {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    padding: 10px 2px; border-bottom: 1px solid var(--line, #eee);
}
.nbc-box__row:last-child { border-bottom: none; }
.nbc-box__name { font-size: 14px; color: var(--ink, #1a1a1a); line-height: 1.3; flex: 1; min-width: 0; }
/* Reset defensivo: ningún <button> del box-builder hereda estilos de Woo/theme. */
.nbc-box button {
    box-shadow: none;
    text-transform: none;
    letter-spacing: normal;
    min-width: 0;
    margin: 0;
    width: auto;
    flex: none;
}
/* Stepper: pill de ancho fijo, 3 celdas iguales, todo centrado */
.nbc-box__stepper {
    display: grid;
    grid-template-columns: 32px 30px 32px;
    align-items: center;
    flex: none;
    border: 1.5px solid var(--line, #e5e3dc);
    border-radius: 999px;
    background: #fff;
    height: 36px;
    overflow: hidden;
}
.nbc-box__btn {
    width: 100%; height: 100%;
    border: none; background: transparent;
    font-size: 20px; font-weight: 500; line-height: 0;
    color: var(--ink, #1a1a1a); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    padding: 0; transition: background .12s;
}
.nbc-box__btn:hover { background: var(--cream-2, #f3efe8); }
.nbc-box__btn:active { background: var(--line, #e5e3dc); }
.nbc-box__qty {
    width: 100%; height: 100%;
    border: none; background: transparent; text-align: center;
    font-size: 15px; font-weight: 700; color: var(--ink, #1a1a1a);
    font-family: inherit;
    -moz-appearance: textfield; appearance: textfield; pointer-events: none;
    padding: 0;
}
.nbc-box__qty::-webkit-outer-spin-button,
.nbc-box__qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.nbc-box__hint { margin: 14px 0 0; font-size: 13px; color: var(--ink-2, #666); }
.nbc-box.is-ready .nbc-box__hint { color: var(--olive-d, #4a5a3a); font-weight: 600; }
.nbc-box.nbc-shake { animation: nbc-box-shake .42s; }
@keyframes nbc-box-shake {
    0%,100% { transform: translateX(0); }
    20%,60% { transform: translateX(-6px); }
    40%,80% { transform: translateX(6px); }
}

/* Producto box-builder: ocultar el selector de cantidad de Woo (redundante:
   ya se compra 1 caja) y bloquear "Añadir" hasta completar los sabores. */
.nbc-box-product .product-detail__atc .quantity { display: none !important; }
.nbc-box-product .product-detail__atc .single_add_to_cart_button { width: 100%; flex: 1 1 100%; }
.nbc-atc-blocked .single_add_to_cart_button {
    opacity: .45 !important;
    cursor: not-allowed !important;
    background: var(--ink-2, #8a8175) !important;
    pointer-events: none !important;
}

/* ──────────────────────────────────────────────────────────────────
   Box builder + página de producto — MOBILE
   ────────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
    /* Foto: menos protagonismo en mobile (la portrait 4/4.4 tapaba toda la pantalla) */
    .product-detail__photo { aspect-ratio: 4 / 3.4; border-radius: 18px; }
    .product-detail__grid { gap: 22px; }
    .product-detail__title { font-size: 27px; }
    .product-detail__price { font-size: 23px; }
    .product-detail__discounts { gap: 6px; margin: 12px 0 14px; }
    .product-detail__discounts .pay-pill { font-size: 11px; padding: 4px 10px; }

    /* Caja */
    .nbc-box { padding: 14px; border-radius: 14px; }
    .nbc-box__head { gap: 8px; margin-bottom: 12px; }
    .nbc-box__label { font-size: 10.5px; letter-spacing: .06em; }
    .nbc-box__counter { font-size: 12px; padding: 4px 10px; flex: none; }

    /* Filtros dietarios: scroll horizontal si no entran */
    .nbc-box__filters { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; gap: 6px; padding-bottom: 4px; margin: 0 -2px 12px; }
    .nbc-box__filters::-webkit-scrollbar { display: none; }
    .nbc-box__chip { flex: none; white-space: nowrap; }

    /* Filas de sabores: nombre arriba, stepper alineado a la derecha */
    .nbc-box__row { gap: 10px; padding: 10px 0; }
    .nbc-box__name { font-size: 13.5px; line-height: 1.3; }
    .nbc-box__stepper { grid-template-columns: 32px 26px 32px; height: 34px; }
    .nbc-box__btn { font-size: 19px; }
    .nbc-box__qty { font-size: 14px; }
    .nbc-box__hint { font-size: 12.5px; margin-top: 12px; }
}

@media (max-width: 360px) {
    .nbc-box__name { font-size: 13px; }
    .nbc-box__stepper { grid-template-columns: 30px 24px 30px; }
}

/* Destacados — flechas de navegación */
.destacados-wrap { display: flex; flex-direction: column; }
.dest-nav {
    order: 2;
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
}
.dest-arrow {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1.5px solid var(--line, #e5e3dc);
    background: var(--paper, #fff);
    color: var(--ink, #2c2823);
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: border-color .2s, transform .2s, background .2s, color .2s;
}
.dest-arrow:hover {
    border-color: var(--ink, #2c2823);
    background: var(--ink, #2c2823);
    color: #fff;
    transform: translateY(-2px);
}
.dest-arrow:active { transform: translateY(0); }
.dest-arrow svg { width: 22px; height: 22px; }

/* Quantity stepper (− / +) en la página de producto */
.product-detail__atc .quantity.nbc-qty { gap: 2px; padding: 4px; }
.nbc-qty-btn {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: var(--cream-2, #e8e2da);
    color: var(--ink, #2c2823);
    display: grid;
    place-items: center;
    cursor: pointer;
    flex: none;
    padding: 0;
    transition: background .15s, color .15s, transform .1s;
}
.nbc-qty-btn:hover { background: var(--accent, #ff914d); color: #fff; }
.nbc-qty-btn:active { transform: scale(.92); }
.nbc-qty-btn svg { width: 18px; height: 18px; }

/* Asegura que el botón de compra respete el color del theme (no el violeta default de WooCommerce) */
.product-detail__atc .single_add_to_cart_button,
.product-detail__atc .single_add_to_cart_button.alt,
.product-detail__atc .woocommerce-variation-add-to-cart button {
    background-color: var(--ink, #2c2823) !important;
    color: #fff !important;
}
.product-detail__atc .single_add_to_cart_button:hover { background-color: #000 !important; }

/* Media dentro de contenido no debe desbordar en mobile (iframes/imgs anchos) */
.product-detail__short img,
.product-detail__panel img,
.page-content img,
.entry img { max-width: 100%; height: auto; }
.product-detail__short iframe,
.product-detail__panel iframe,
.page-content iframe,
.entry iframe { max-width: 100%; }
/* Guard: sin scroll horizontal accidental (clip no rompe position:sticky) */
body { overflow-x: clip; }

/* Tablas de Info Nutricional */
.nbc-nut { width: 100%; border-collapse: collapse; margin: 14px 0 32px; font-size: 15px; }
.nbc-nut th, .nbc-nut td { text-align: left; padding: 11px 14px; border-bottom: 1px solid var(--line, #e5e3dc); }
.nbc-nut thead th { font-family: var(--font-head); font-size: 12.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-2, #736a5c); }
.nbc-nut td:last-child, .nbc-nut th:last-child { text-align: right; white-space: nowrap; font-weight: 600; }
.nbc-nut tbody tr:hover { background: var(--cream-2, #e8e2da); }
.entry h3, .page-content h3 { font-family: var(--font-head); font-size: 22px; margin: 28px 0 6px; }
