:root {
    --dm-ink: #1a1a1a;
    --dm-muted: #6f6f6f;
    --dm-paper: #ffffff;
    --dm-accent: #d4af37;
    --dm-line: #e5e5e5;
}

* { box-sizing: border-box; }
body { min-width: 320px; margin: 0; background: var(--dm-paper); color: var(--dm-ink); font-family: 'Montserrat', Arial, sans-serif; }
body:has(.navbar-dm) { background: var(--dm-paper); color: var(--dm-ink); }
body:has(.navbar-dm) .navbar-dm { display: flex !important; min-height: 72px; padding: 10px clamp(18px, 5vw, 76px); background: rgba(255,255,255,.96); border-bottom: 1px solid var(--dm-line); }
.dm-store-topbar { padding: 8px clamp(18px, 5vw, 76px); background: var(--dm-ink); color: #fff; font-size: .78rem; letter-spacing: .04em; }
.dm-brand-strip { display: flex; min-height: 68px; align-items: center; gap: clamp(18px, 3vw, 42px); overflow: hidden; padding: 13px clamp(18px, 5vw, 76px); border-bottom: 1px solid var(--dm-line); background: #fff; }
.dm-brand-strip-label { flex: 0 0 auto; color: #8b8982; font-size: .63rem; font-weight: 800; letter-spacing: .14em; white-space: nowrap; }
.dm-brand-strip ul { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: clamp(14px, 2vw, 26px); margin: 0; padding: 0; overflow-x: auto; list-style: none; scrollbar-width: none; }
.dm-brand-strip ul::-webkit-scrollbar { display: none; }
.dm-brand-strip li { display: grid; width: clamp(72px, 7vw, 96px); min-height: 40px; flex: 0 0 clamp(72px, 7vw, 96px); place-items: center; color: #383733; font-family: inherit; font-size: clamp(.78rem, 1.05vw, .9rem); font-weight: 700; letter-spacing: .015em; white-space: nowrap; }
.dm-brand-strip li img { display: block; width: 100%; max-width: 96px; height: 36px; max-height: 36px; object-fit: contain; }
.dm-brand-strip li img.dm-brand-logo-small { width: 86%; max-width: 82px; height: 31px; max-height: 31px; }
.navbar-dm .container-fluid { gap: 22px; }
.navbar-dm .navbar-brand { color: var(--dm-ink); font-size: 1.35rem; font-weight: 800; letter-spacing: -.06em; }
.dm-store-links { gap: 30px; margin: 0 auto; }
.dm-store-links a { color: var(--dm-ink); font-size: .9rem; font-weight: 600; text-decoration: none; }
.dm-store-links a:hover { color: var(--dm-accent); }
.dm-hero { display: grid; grid-template-columns: 1fr 1fr; min-height: 308px; background: #eee9df; }
.dm-hero-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(26px, 3vw, 48px); }
.dm-eyebrow { color: #9d7135; font-size: .72rem; font-weight: 800; letter-spacing: .16em; }
.dm-hero h1 { margin: 12px 0; font-size: clamp(2.4rem, 4.2vw, 4.5rem); font-weight: 600; letter-spacing: -.065em; line-height: .99; }
.dm-hero h1 em { color: #92734d; font-family: Georgia, serif; font-weight: 400; }
.dm-hero-copy p { max-width: 430px; margin-bottom: 10px; color: #66635c; line-height: 1.65; }
.dm-hero-cta { display: inline-flex; align-items: center; gap: 18px; margin-top: 8px; padding: 12px 18px; background: var(--dm-ink); color: white; font-weight: 700; text-decoration: none; transition: background .2s, transform .2s; }
.dm-hero-cta:hover { background: #876433; color: white; transform: translateY(-2px); }
.dm-hero-art { position: relative; display: block; min-height: 308px; overflow: hidden; padding: 0; background: #e8e5de; }
.dm-hero-campaign { isolation: isolate; }
.dm-hero-slide { position: absolute; inset: 0; overflow: hidden; opacity: 0; transition: opacity .35s ease; }
.dm-hero-slide.is-active { z-index: 0; opacity: 1; }
.dm-hero-slide[hidden] { display: none; }
.dm-hero-slide::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,19,18,.08), transparent 34%, rgba(20,19,18,.52)); content: ''; pointer-events: none; }
.dm-hero-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .7s ease; }
.dm-hero-slide.is-active:hover img { transform: scale(1.025); }
.dm-campaign-brand { position: absolute; z-index: 1; right: 24px; bottom: 24px; color: white; font-size: .9rem; font-weight: 800; letter-spacing: .06em; text-shadow: 0 2px 10px rgba(0,0,0,.55); }
.dm-hero-caption { position: absolute; z-index: 2; top: 22px; left: 22px; padding: 10px 13px; background: rgba(23,23,21,.82); color: white; font-size: .68rem; font-weight: 800; letter-spacing: .13em; line-height: 1.45; }
.dm-hero-arrow { position: absolute; z-index: 3; top: 50%; display: grid; width: 42px; height: 42px; place-items: center; transform: translateY(-50%); border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(20,20,18,.44); color: #fff; transition: background .2s ease, transform .2s ease; }
.dm-hero-arrow:hover { transform: translateY(-50%) scale(1.06); background: rgba(20,20,18,.78); }
.dm-hero-prev { left: 16px; }
.dm-hero-next { right: 16px; }
.dm-hero-pagination { position: absolute; z-index: 3; bottom: 22px; left: 50%; display: flex; gap: 8px; transform: translateX(-50%); }
.dm-hero-pagination button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 99px; background: rgba(255,255,255,.62); transition: width .2s ease, background .2s ease; }
.dm-hero-pagination button[aria-current="true"] { width: 25px; background: #fff; }
.dm-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 48px 0 22px; }
.dm-section-heading h2 { margin: 8px 0 0; font-size: clamp(1.6rem, 3vw, 2.25rem); font-weight: 700; letter-spacing: -.04em; }
.dm-section-heading p { color: var(--dm-muted); }
#productos.container-fluid { padding-right: clamp(18px, 5vw, 76px); padding-left: clamp(18px, 5vw, 76px); }
.products-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.product-card { position: relative; overflow: hidden; border: 1px solid var(--dm-line); border-radius: 3px; background: white; cursor: pointer; transition: transform .22s, box-shadow .22s; }
.product-card:hover { transform: translateY(-5px); box-shadow: 0 14px 32px rgba(26,24,20,.09); }
.product-card .product-img { display: block; width: 100%; height: 270px; object-fit: cover; background: #f2f0ec; }
.product-card .product-info { padding: 18px; }
.product-brand { color: var(--dm-muted); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.product-title { margin: 6px 0 10px; color: var(--dm-ink); font-size: 1rem; font-weight: 700; }
.product-price { color: var(--dm-ink); font-weight: 800; }
.old-price { color: #999; }
.badge-discount { position: absolute; z-index: 1; top: 12px; left: 12px; padding: 6px 9px; background: var(--dm-ink); color: #fff; font-size: .72rem; }
.dm-card-add { width: 100%; margin-top: 15px; padding: 11px 12px; border: 0; background: var(--dm-ink); color: white; font-size: .85rem; font-weight: 700; transition: background .2s; }
.dm-card-add:hover { background: #96713d; }
.filters-sidebar { border: 1px solid var(--dm-line); background: white; }
.dm-catalog-layout { display: grid; grid-template-columns: minmax(220px, 250px) minmax(0, 1fr); gap: clamp(22px, 3vw, 38px); align-items: start; }
.dm-filter-toggle { display: none; }
.dm-filter-sidebar { position: static; height: max-content; padding: 20px; border: 1px solid var(--dm-line); background: #fff; }
.dm-filter-heading { display: flex; align-items: center; gap: 11px; padding: 2px 0 15px; border-bottom: 1px solid var(--dm-line); }
.dm-filter-heading i { color: #8e6a3b; }
.dm-filter-heading h3 { margin: 0; font-size: 1rem; font-weight: 750; }
.dm-filter-section { padding: 17px 0; border-bottom: 1px solid var(--dm-line); }
.dm-filter-section h4 { margin: 0 0 13px; color: #5e5c56; font-size: .83rem; font-weight: 750; }
.dm-category-tree { display: grid; gap: 4px; }
.dm-category-parent-row { display: grid; grid-template-columns: minmax(0, 1fr) 34px; gap: 4px; }
.dm-category-parent, .dm-category-child { display: flex; width: 100%; min-height: 39px; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 0; background: transparent; color: #55534e; text-align: left; font-size: .84rem; }
.dm-category-parent:hover, .dm-category-child:hover { background: #f6f4ef; color: var(--dm-ink); }
.dm-category-parent.active, .dm-category-child.active { background: #f3eee5; color: #7e5d32; font-weight: 750; }
.dm-category-parent small, .dm-category-child small { color: #96938c; font-size: .72rem; }
.dm-category-all { margin-bottom: 4px; }
.dm-category-expand { display: grid; min-height: 38px; place-items: center; border: 0; background: transparent; color: #77746e; }
.dm-category-expand:hover { background: #f6f4ef; color: var(--dm-ink); }
.dm-category-children { display: grid; gap: 2px; margin: 2px 0 6px 13px; padding-left: 9px; border-left: 1px solid #dfd8cc; }
.dm-category-children[hidden] { display: none; }
.dm-category-child { min-height: 34px; padding: 6px 9px; font-size: .8rem; }
.dm-filter-section .dm-stock-filter { color: #55534e; }
.dm-filter-sidebar .dm-price-filter { max-width: none; margin: 0; }
.dm-filter-sidebar .dm-price-filter label { color: #6b6861; font-size: .81rem; }
.dm-filter-sidebar .dm-clear-filters { width: 100%; margin: 17px 0 0; border-color: #b7a6c4; border-radius: 4px; background: #a997b8; color: #fff; font-weight: 700; }
.dm-filter-sidebar .dm-clear-filters:hover { border-color: #917ca4; background: #917ca4; color: white; }
.dm-sort-control { display: inline-flex; align-items: center; gap: 10px; color: var(--dm-muted); font-size: .84rem; }
.dm-sort-control .form-select { min-width: 155px; border-color: var(--dm-line); border-radius: 3px; }
.dm-catalog-results { min-width: 0; }
.dm-catalog-results .dm-catalog-toolbar { margin-top: 0; }
.dm-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 7px; margin-top: 30px; }
.dm-pagination[hidden] { display: none; }
.dm-pagination button { min-width: 40px; min-height: 40px; padding: 0 12px; border: 1px solid var(--dm-line); background: #fff; color: var(--dm-ink); font-size: .83rem; font-weight: 650; transition: border-color .2s ease, background .2s ease, color .2s ease; }
.dm-pagination button:hover:not(:disabled), .dm-pagination button[aria-current="page"] { border-color: var(--dm-ink); background: var(--dm-ink); color: #fff; }
.dm-pagination button:disabled { cursor: not-allowed; opacity: .45; }
.dm-pagination-gap { padding: 0 3px; color: var(--dm-muted); }
.dm-tracking-page { display: grid; min-height: 68vh; place-items: center; padding: 54px 18px 72px; background: radial-gradient(ellipse at top, #f3efe7 0%, var(--dm-paper) 62%); }
.dm-tracking-card { width: min(100%, 590px); padding: clamp(25px, 5vw, 48px); border: 1px solid var(--dm-line); background: #fff; box-shadow: 0 22px 55px rgba(28,26,22,.07); }
.dm-tracking-icon { display: grid; width: 58px; height: 58px; margin-bottom: 23px; place-items: center; border-radius: 50%; background: #f3eee5; color: #8e6a3b; font-size: 1.35rem; }
.dm-tracking-card h1 { margin: 10px 0 12px; font-size: clamp(2rem, 5vw, 2.8rem); font-weight: 750; letter-spacing: -.055em; }
.dm-tracking-intro { margin-bottom: 22px; color: var(--dm-muted); line-height: 1.7; }
.dm-tracking-note { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 25px; padding: 14px; background: #f8f6f1; color: #625e55; font-size: .83rem; line-height: 1.6; }
.dm-tracking-note i { margin-top: 3px; color: #8e6a3b; }
.dm-tracking-field { margin-bottom: 18px; }
.dm-tracking-field label { display: block; margin-bottom: 7px; font-size: .85rem; font-weight: 700; }
.dm-tracking-field input { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #dedbd4; border-radius: 2px; background: #fff; color: var(--dm-ink); }
.dm-tracking-field input:focus { border-color: #9d7135; outline: 3px solid rgba(157,113,53,.14); }
.dm-tracking-error { display: block; min-height: 18px; padding-top: 3px; color: #b42318; font-size: .76rem; }
.dm-tracking-submit { display: flex; width: 100%; min-height: 49px; align-items: center; justify-content: center; gap: 10px; border: 0; background: #16844a; color: #fff; font-weight: 750; transition: background .2s ease, transform .2s ease; }
.dm-tracking-submit:hover { transform: translateY(-1px); background: #116e3d; }
.dm-tracking-feedback { min-height: 20px; margin: 12px 0 0; color: #267447; font-size: .82rem; }
.dm-tracking-back { display: inline-block; margin-top: 16px; color: #72572f; font-size: .84rem; font-weight: 700; text-decoration: none; }
.dm-tracking-back:hover { text-decoration: underline; }
.footer-dm { margin-top: 72px; padding: 42px clamp(18px, 5vw, 76px) 22px; background: var(--dm-ink); color: #f7f5ef; }
.footer-dm a { color: inherit; text-decoration: none; }
.footer-dm a:hover { color: #e9bf77; }
.footer-dm hr { border-color: var(--dm-accent); }
.btn-cart { border-radius: 0; background: var(--dm-ink); color: #fff; }
.btn-cart:hover { background: #96713d; color: #fff; }
.toast-custom { z-index: 3000; }

@media (max-width: 991px) {
    .dm-catalog-layout { grid-template-columns: minmax(205px, 225px) minmax(0, 1fr); gap: 20px; }
    .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
    .product-card .product-img { height: 230px; }
    .dm-hero, .dm-hero-art { min-height: 266px; }
}
@media (max-width: 767px) {
    .dm-hero { grid-template-columns: 1fr; min-height: 0; }
    .dm-hero-copy { padding: 24px 20px; }
    .dm-hero h1 { margin: 10px 0; font-size: clamp(2rem, 8vw, 2.5rem); }
    .dm-hero-art { height: 224px; min-height: 224px; }
    .dm-hero-caption { top: 14px; left: 14px; }
    .dm-hero-arrow { width: 38px; height: 38px; }
    .dm-hero-prev { left: 10px; }
    .dm-hero-next { right: 10px; }
    .dm-campaign-brand { right: 15px; bottom: 18px; }
    .dm-hero-pagination { bottom: 20px; }
    .dm-catalog-layout { grid-template-columns: minmax(0, 1fr); }
    .dm-filter-toggle { display: flex; width: 100%; min-height: 50px; align-items: center; gap: 12px; padding: 0 16px; border: 1px solid var(--dm-line); background: #fff; color: var(--dm-ink); text-align: left; font-size: .9rem; font-weight: 750; }
    .dm-filter-toggle > i:first-child { color: #8e6a3b; }
    .dm-filter-toggle-chevron { margin-left: auto; transition: transform .2s ease; }
    .dm-filter-toggle[aria-expanded="true"] .dm-filter-toggle-chevron { transform: rotate(180deg); }
    .dm-filter-sidebar { display: none; padding: 17px; border-top: 0; }
    .dm-filter-sidebar.is-open { display: block; }
    .dm-brand-strip { align-items: flex-start; flex-direction: column; gap: 10px; padding-top: 14px; padding-bottom: 14px; }
    .dm-brand-strip ul { justify-content: flex-start; gap: 25px; }
    .dm-section-heading { align-items: flex-start; flex-direction: column; margin-top: 35px; }
    .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .product-card .product-img { height: 190px; }
    .product-card .product-info { padding: 12px; }
    .navbar-dm { top: 0; }
    .navbar-dm .search-box { max-width: 180px; }
}

@media (max-width: 420px) {
    .dm-detail-brand { font-size: 1.3rem; }
    .dm-detail-cart { gap: 6px; padding: 9px; }
    .dm-detail-cart span { display: none; }
    .dm-detail-header .container { padding-right: 14px; padding-left: 14px; }
    .dm-cart-row { grid-template-columns: 54px minmax(0, 1fr); }
    .dm-cart-row > b { grid-column: 2; }
}
@media (max-width: 420px) {
    .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .product-card .product-img { height: 190px; }
    .product-card .product-info { padding: 10px; }
    .navbar-dm .container-fluid { gap: 8px; }
    .navbar-dm .navbar-brand { font-size: 1.1rem; }
}

/* Product detail and shared cart components */
.dm-detail-header { background: #171715; padding: 13px 0; color: white; position: sticky; top: 0; z-index: 1000; }
.dm-detail-header .container { max-width: 1240px; }
.dm-detail-header .btn-outline-light { border-radius: 2px; }
.dm-detail-header .cart-badge { display: inline-grid; min-width: 23px; height: 23px; place-items: center; margin-left: 6px; border-radius: 50%; background: #c99443; color: #171715; font-size: .75rem; font-weight: 800; }
.main-image { display: grid; min-height: 440px; place-items: center; overflow: hidden; border: 1px solid var(--dm-line); border-radius: 3px; background: white; }
.main-image img { max-width: 100%; max-height: 520px; object-fit: contain; }
.thumbnail-button { width: 68px; height: 68px; padding: 3px; overflow: hidden; border: 1px solid var(--dm-line); background: white; }
.thumbnail-button img { width: 100%; height: 100%; object-fit: cover; }
.thumbnail-button.active, .thumbnail-button:hover { border-color: var(--dm-accent); }
.size-btn { min-width: 48px; min-height: 46px; padding: 8px 13px; border: 1px solid var(--dm-line); border-radius: 2px; background: white; }
.size-btn.selected, .size-btn:hover { border-color: var(--dm-ink); background: var(--dm-ink); color: white; }
.btn-add, .btn-wa { border-radius: 2px; font-weight: 700; }
.btn-add { background: var(--dm-ink); }
.btn-wa { background: #168b54; }
.dm-cart-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 13px; align-items: start; padding: 16px 0; border-bottom: 1px solid var(--dm-line); }
.dm-cart-row > img { width: 64px; height: 76px; object-fit: cover; background: #f3f1ec; }
.dm-cart-info { display: grid; gap: 4px; }
.dm-cart-info small { color: var(--dm-muted); }
.dm-cart-controls { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.dm-cart-controls button { padding: 3px 9px; border: 1px solid var(--dm-line); background: white; }
.dm-cart-total { display: flex; justify-content: space-between; margin-top: 20px; font-size: 1.1rem; }
.dm-card-add:disabled, button:disabled { cursor: not-allowed; opacity: .55; }
.dm-feedback { grid-column: 1 / -1; padding: 24px; border: 1px solid var(--dm-line); background: #fff; color: var(--dm-muted); }
.offcanvas#cartOffcanvas { position: fixed; z-index: 1060; top: 0; right: 0; bottom: 0; display: flex; flex-direction: column; width: min(440px, 100vw); height: 100dvh; background: #fff; box-shadow: -16px 0 48px rgba(20,20,18,.16); transform: translateX(105%); visibility: hidden; transition: transform .26s ease, visibility .26s; }
.offcanvas#cartOffcanvas.is-open { transform: translateX(0); visibility: visible; }
.offcanvas#cartOffcanvas .offcanvas-header { display: flex; align-items: center; justify-content: space-between; padding: 20px; }
.offcanvas#cartOffcanvas .offcanvas-body { flex: 1; overflow-y: auto; padding: 20px; }
.offcanvas#cartOffcanvas > .p-3 { padding: 16px 20px !important; }
.dm-cart-backdrop { position: fixed; z-index: 1055; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(18,18,16,.46); }
.dm-cart-open { overflow: hidden; }
.modal#imageModal { position: fixed; z-index: 1065; inset: 0; display: none; overflow: auto; padding: 24px; background: rgba(18,18,16,.88); }
.modal#imageModal.is-open { display: grid; place-items: center; }
.modal#imageModal .modal-content { position: relative; width: min(900px, 100%); margin: auto; background: transparent; }
.modal#imageModal img { max-height: 88dvh; object-fit: contain; }
.dm-image-close { position: absolute; z-index: 1; top: 12px; right: 12px; width: 42px; height: 42px; border: 0; border-radius: 50%; background: white; color: var(--dm-ink); font-size: 1.7rem; line-height: 1; }
.dm-store-header { position: sticky; z-index: 1000; top: 0; border-bottom: 1px solid var(--dm-line); background: rgba(255,255,255,.96); backdrop-filter: blur(14px); }
.dm-header-inner { display: flex; min-height: 78px; align-items: center; gap: 30px; padding-right: clamp(18px, 5vw, 76px); padding-left: clamp(18px, 5vw, 76px); }
.dm-header-actions { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.dm-search { display: flex; width: min(250px, 23vw); align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--dm-line); color: var(--dm-muted); }
.dm-search input, .dm-mobile-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--dm-ink); }
.dm-detail-brand { color: var(--dm-ink); font-size: 1.55rem; font-weight: 800; letter-spacing: -.075em; text-decoration: none; white-space: nowrap; }
.dm-detail-brand span { color: #9d7135; }
.dm-tracking-link { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; gap: 8px; padding: 8px 11px; border: 1px solid var(--dm-line); color: var(--dm-ink); font-size: .82rem; font-weight: 700; text-decoration: none; transition: border-color .2s ease, color .2s ease, background .2s ease; white-space: nowrap; }
.dm-tracking-link:hover { border-color: var(--dm-accent); background: #fbf8f1; color: #8e6a3b; }
.dm-tracking-link i { color: #8e6a3b; }
.dm-detail-cart { display: inline-flex; align-items: center; gap: 9px; padding: 10px 13px; border: 0; background: var(--dm-ink); color: white; font-weight: 700; }
.dm-detail-cart b { display: inline-grid; min-width: 22px; height: 22px; place-items: center; border-radius: 50%; background: var(--dm-accent); color: var(--dm-ink); font-size: .72rem; }
.dm-mobile-search { display: none; }
.dm-catalog { padding: 4px clamp(18px, 5vw, 76px) 65px; }
.dm-catalog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 24px 0 14px; }
.dm-catalog-toolbar p { margin: 0; color: var(--dm-muted); font-size: .9rem; }
.dm-toolbar-controls { display: flex; align-items: center; gap: 16px; }
.dm-stock-filter { display: flex; align-items: center; gap: 7px; color: var(--dm-muted); font-size: .85rem; }
.dm-sort-label { color: var(--dm-muted); font-size: .85rem; }
.dm-toolbar-controls .form-select { width: auto; min-width: 160px; border-radius: 2px; border-color: var(--dm-line); }
.dm-price-filter { max-width: 430px; margin: 4px 0 24px auto; }
.dm-price-filter label { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: .84rem; }
.dm-price-filter input { width: 100%; accent-color: #9d7135; }
.dm-price-ends { display: flex; justify-content: space-between; color: var(--dm-muted); font-size: .75rem; }
.dm-clear-filters { display: block; margin: 26px auto 0; padding: 10px 18px; border: 1px solid var(--dm-line); background: transparent; color: var(--dm-muted); font-size: .84rem; }
.dm-clear-filters:hover { border-color: var(--dm-ink); color: var(--dm-ink); }
.dm-detail-page { max-width: 1240px; padding-top: 34px; padding-bottom: 68px; }
.dm-back-link { display: inline-block; margin-bottom: 24px; color: var(--dm-muted); font-size: .87rem; text-decoration: none; }
.dm-back-link:hover { color: var(--dm-ink); }
.dm-detail-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(350px, .95fr); gap: clamp(35px, 6vw, 84px); align-items: start; }
.dm-gallery { min-width: 0; }
.dm-gallery .main-image { position: relative; width: 100%; min-height: min(650px, 58vw); padding: 24px; border: 1px solid var(--dm-line); border-radius: 2px; background: white; cursor: zoom-in; }
.dm-gallery .main-image img { width: 100%; max-height: 570px; object-fit: contain; }
.dm-image-hint { position: absolute; right: 15px; bottom: 14px; color: var(--dm-muted); font-size: .76rem; }
.dm-thumbnails { display: flex; gap: 10px; margin-top: 12px; }
.dm-product-panel { padding: 14px 0; }
.dm-product-panel h1 { margin: 12px 0 16px; font-size: clamp(1.9rem, 3.4vw, 3rem); font-weight: 700; letter-spacing: -.055em; line-height: 1.08; }
.dm-product-price-row { display: flex; align-items: center; gap: 12px; }
.dm-product-price-row > strong { font-size: 1.7rem; }
.dm-product-description { margin: 20px 0 26px; color: var(--dm-muted); line-height: 1.75; }
.dm-choice-block { margin: 24px 0; }
.dm-choice-label { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 11px; font-size: .92rem; font-weight: 700; }
.dm-choice-label span, .dm-stock-note { color: var(--dm-muted); font-size: .78rem; font-weight: 400; }
.dm-size-options { display: flex; flex-wrap: wrap; gap: 9px; }
.dm-choice-block[hidden] { display: none !important; }
.dm-quantity-control { display: inline-flex; align-items: center; border: 1px solid var(--dm-line); }
.dm-quantity-control button { width: 42px; height: 40px; border: 0; background: white; font-size: 1.1rem; }
.dm-quantity-control span { min-width: 38px; text-align: center; }
.dm-stock-note { display: block; margin-top: 9px; }
.dm-product-actions { display: grid; gap: 11px; margin-top: 27px; }
.dm-product-actions button { min-height: 52px; border: 0; color: white; font-weight: 700; }
.dm-product-actions .btn-add { background: var(--dm-ink); }
.dm-product-actions .btn-wa { background: #168b54; }
.dm-product-actions button:hover { filter: brightness(1.1); }
.dm-purchase-note { display: flex; gap: 10px; margin-top: 16px; padding: 13px; background: #f1efe9; color: var(--dm-muted); font-size: .8rem; line-height: 1.5; }
.dm-purchase-note i { color: #9d7135; }
.dm-detail-information { display: grid; grid-template-columns: 1.2fr .8fr; gap: 22px; margin-top: 65px; }
.dm-information-card { padding: 26px; border: 1px solid var(--dm-line); background: white; }
.dm-information-card h2 { margin: 8px 0 13px; font-size: 1.25rem; }
.dm-information-card p, .dm-information-card li { color: var(--dm-muted); line-height: 1.7; }
.dm-information-card ul { margin: 0; padding-left: 19px; }
.dm-footer-inner { display: grid; grid-template-columns: 1fr auto; gap: 10px 25px; align-items: center; }
.dm-footer-inner p { margin: 0; color: #c5c2bb; }
.dm-footer-inner small { grid-column: 1 / -1; padding-top: 15px; border-top: 1px solid #45443f; color: #aaa79f; }
.dm-footer-social { display: flex; gap: 18px; font-size: 1.25rem; }
.dm-footer-social a { color: white; }
.dm-footer-social a:hover { color: #e9bf77; }
.offcanvas#cartOffcanvas .offcanvas-title { margin: 0; font-size: 1.1rem; }
.dm-cart-actions { padding: 16px 20px; border-top: 1px solid var(--dm-line); }
.dm-cart-actions .btn { border-radius: 2px; }

@media (max-width: 767px) {
    .dm-header-inner { min-height: 66px; gap: 15px; }
    .dm-store-links { display: none; }
    .dm-search { display: none; }
    .dm-mobile-search { display: flex; align-items: center; gap: 10px; margin: 0 0 20px; padding: 12px; border: 1px solid var(--dm-line); background: white; color: var(--dm-muted); }
    .dm-catalog-toolbar { align-items: flex-start; flex-direction: column; }
    .dm-toolbar-controls { width: 100%; justify-content: space-between; gap: 8px; }
    .dm-toolbar-controls .form-select { min-width: 130px; }
    .dm-price-filter { margin-left: 0; }
    .dm-detail-grid { grid-template-columns: 1fr; gap: 24px; }
    .dm-gallery .main-image { min-height: 330px; }
    .dm-gallery .main-image img { max-height: 380px; }
    .dm-product-panel { padding: 4px 0; }
    .dm-detail-information { grid-template-columns: 1fr; margin-top: 40px; }
    .dm-footer-inner { grid-template-columns: 1fr auto; }
}

@media (max-width: 767px) {
    .main-image { min-height: 300px; }
    .header-ripley .input-group { display: none; }
}
/* DMExpress storefront refinements */
.dm-header-inner { position: relative; }
.dm-menu-toggle { display: none; border: 0; padding: 9px; background: transparent; color: var(--dm-ink); font-size: 1.1rem; }
.dm-favorites-toggle { display: inline-flex; align-items: center; gap: 8px; border: 0; background: transparent; color: var(--dm-ink); font-size: .86rem; font-weight: 650; }
.dm-favorites-toggle.active, .dm-favorite-button.active { color: #a23c4a; }
.dm-product-visual { position: relative; overflow: hidden; background: #f3f1ec; }
.product-card .product-img { transition: transform .45s ease; }
.product-card:hover .product-img { transform: scale(1.035); }
.dm-favorite-button { position: absolute; z-index: 2; top: 13px; right: 13px; display: grid; width: 39px; height: 39px; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); color: var(--dm-ink); box-shadow: 0 3px 14px rgba(0,0,0,.1); }
.dm-favorite-button:hover { transform: scale(1.06); }
.dm-price-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 9px; }
.dm-stock { display: block; margin-top: 7px; color: #937a55; font-size: .76rem; }
.dm-stock.in-stock { color: #407658; }
.dm-skeleton { min-height: 390px; padding: 0 0 20px; overflow: hidden; border: 1px solid var(--dm-line); background: white; }
.dm-skeleton span { display: block; height: 270px; background: linear-gradient(100deg,#f0eee9 25%,#faf9f6 38%,#f0eee9 63%); background-size: 400% 100%; animation: dm-shimmer 1.3s infinite; }
.dm-skeleton i { display: block; height: 12px; margin: 18px 18px 0; background: #f0eee9; }
.dm-skeleton i:last-child { width: 48%; margin-top: 10px; }
@keyframes dm-shimmer { to { background-position: -100% 0; } }
.dm-feedback { grid-column: 1/-1; padding: 38px; text-align: center; }
.dm-feedback p { margin: 8px 0 0; }
.dm-error { border-color: #efd7d7; background: #fffafa; }
.dm-retry { margin-top: 15px; padding: 10px 18px; border: 0; background: var(--dm-ink); color: white; }
.dm-cart-empty { display: grid; justify-items: center; padding: 68px 16px; text-align: center; }
.dm-cart-empty > span { display: grid; width: 64px; height: 64px; margin-bottom: 18px; place-items: center; border-radius: 50%; background: #f4f1eb; color: #987749; font-size: 1.35rem; }
.dm-cart-empty p, .dm-cart-disclaimer { color: var(--dm-muted); font-size: .84rem; line-height: 1.6; }
.dm-cart-disclaimer { margin: 14px 0 0; }
.dm-cart-actions .btn-success { background: #168b54; border-color: #168b54; }
.dm-cart-actions .btn-success:hover { background: #116e42; }
.dm-card-add { border-radius: 2px; }
.dm-menu-toggle:focus-visible, .dm-favorite-button:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid rgba(157,113,53,.42); outline-offset: 2px; }
@media (max-width: 767px) {
 .dm-menu-toggle { display: inline-flex; order: 3; }
 .dm-header-inner { gap: 10px; }
 .dm-store-links { position: absolute; top: calc(100% + 1px); right: 0; left: 0; z-index: 10; display: none; flex-direction: column; gap: 0; padding: 8px 20px; border-bottom: 1px solid var(--dm-line); background: white; box-shadow: 0 12px 18px rgba(0,0,0,.07); }
 .dm-store-links.is-open { display: flex; }
 .dm-store-links a { padding: 13px 5px; border-bottom: 1px solid #f0eee9; }
 .dm-header-actions { gap: 8px; }
 .dm-header-actions .dm-tracking-link span { display: none; }
 .dm-favorites-toggle { padding: 8px; }
 .dm-favorites-toggle span { display: none; }
}
/* Carrusel de galería y visor ampliado */
.dm-gallery { position: relative; }
.dm-gallery-arrow, .dm-modal-arrow { position: absolute; z-index: 2; display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid rgba(255,255,255,.72); border-radius: 50%; background: rgba(255,255,255,.92); color: var(--dm-ink); box-shadow: 0 5px 18px rgba(0,0,0,.12); transition: transform .2s ease, background .2s ease; }
.dm-gallery-arrow:hover, .dm-modal-arrow:hover { transform: scale(1.06); background: white; }
.dm-gallery-prev { top: 50%; left: 16px; transform: translateY(-50%); }
.dm-gallery-next { top: 50%; right: 16px; transform: translateY(-50%); }
.dm-gallery-prev:hover { transform: translateY(-50%) scale(1.06); }
.dm-gallery-next:hover { transform: translateY(-50%) scale(1.06); }
.dm-gallery-count, .dm-modal-count { position: absolute; z-index: 2; right: 16px; bottom: 16px; padding: 6px 10px; border-radius: 999px; background: rgba(23,23,21,.72); color: white; font-size: .76rem; font-variant-numeric: tabular-nums; }
.dm-gallery-count { right: 16px; bottom: 16px; }
.dm-gallery-arrow[hidden] { display: none; }
.dm-thumbnails { overflow-x: auto; padding-bottom: 4px; }
.thumbnail-button { flex: 0 0 auto; }
.modal#imageModal .modal-content { display: grid; min-height: min(82dvh, 820px); place-items: center; }
.modal#imageModal img { width: 100%; max-width: 100%; max-height: 82dvh; }
.dm-modal-arrow { top: 50%; }
.dm-modal-prev { left: 14px; }
.dm-modal-next { right: 14px; }
.dm-modal-count { right: 50%; bottom: 14px; transform: translateX(50%); }
@media (max-width: 576px) {
 .dm-gallery-arrow, .dm-modal-arrow { width: 39px; height: 39px; }
 .dm-gallery-prev { left: 10px; }
 .dm-gallery-next { right: 10px; }
 .modal#imageModal { padding: 12px; }
 .modal#imageModal .modal-content { min-height: 68dvh; }
}

/* Identidad de marca DMExpress: dorado, blanco y negro. */
.dm-brand-logo { display: block; width: clamp(184px, 18vw, 238px); height: auto; }
.dm-footer-inner > .dm-detail-brand { display: inline-flex; width: fit-content; padding: 5px 8px; border-radius: 3px; background: transparent; }
.dm-detail-header { background: #fff; border-bottom: 1px solid var(--dm-line); color: var(--dm-ink); }
.dm-eyebrow, .dm-store-links a:hover, .dm-hero h1 em { color: var(--dm-accent); }
.dm-hero-cta { background: var(--dm-accent); color: var(--dm-ink); }
.dm-hero-cta:hover { background: var(--dm-ink); color: #fff; }
@media (max-width: 767px) {
    .dm-brand-logo { width: 184px; }
}
@media (max-width: 360px) {
    .dm-brand-logo { width: 126px; }
    .dm-header-inner { gap: 5px; }
    .dm-header-actions { gap: 4px; }
    .dm-header-actions .dm-favorites-toggle { display: none; }
    .dm-detail-cart { gap: 5px; padding: 8px; }
}

/* Cabecera inspirada en el modelo de navegación compartido. */
body[data-page="catalog"] .dm-store-header { top: 0; border-bottom-color: #e5e5e5; }
body[data-page="catalog"] .dm-header-inner { min-height: 68px; gap: clamp(18px, 2.6vw, 38px); padding-right: clamp(18px, 3vw, 42px); padding-left: clamp(18px, 3vw, 42px); }
body[data-page="catalog"] .dm-brand-logo { width: clamp(160px, 17vw, 215px); }
body[data-page="catalog"] .dm-store-links { display: flex; flex: 0 0 auto; gap: clamp(18px, 2vw, 30px); margin: 0; }
body[data-page="catalog"] .dm-store-links a { font-size: .88rem; font-weight: 500; }
body[data-page="catalog"] .dm-header-actions { gap: clamp(12px, 1.7vw, 22px); margin-left: auto; }
body[data-page="catalog"] .dm-search { width: clamp(210px, 22vw, 282px); height: 40px; padding: 8px 11px; border-color: #1a1a1a; color: #333; }
body[data-page="catalog"] .dm-search input { font-size: .83rem; }
body[data-page="catalog"] .dm-header-actions .dm-tracking-link,
body[data-page="catalog"] .dm-header-actions .dm-favorites-toggle { min-width: 27px; justify-content: center; padding: 5px; border: 0; background: transparent; color: #1a1a1a; font-size: 1.14rem; }
body[data-page="catalog"] .dm-header-actions .dm-tracking-link span,
body[data-page="catalog"] .dm-header-actions .dm-favorites-toggle span,
body[data-page="catalog"] .dm-header-actions .dm-detail-cart span { display: none; }
body[data-page="catalog"] .dm-header-actions .dm-tracking-link i { color: #1a1a1a; }
body[data-page="catalog"] .dm-header-actions .dm-detail-cart { position: relative; display: grid; width: 34px; height: 40px; place-items: center; padding: 0; background: transparent; color: #1a1a1a; font-size: 1.1rem; }
body[data-page="catalog"] .dm-header-actions .dm-detail-cart b { position: absolute; top: -1px; right: -7px; min-width: 16px; height: 16px; border: 2px solid #fff; background: var(--dm-accent); color: #1a1a1a; font-size: .61rem; }
@media (max-width: 991px) and (min-width: 768px) {
    body[data-page="catalog"] .dm-header-inner { gap: 15px; }
    body[data-page="catalog"] .dm-brand-logo { width: 155px; }
    body[data-page="catalog"] .dm-store-links { gap: 13px; }
    body[data-page="catalog"] .dm-store-links a { font-size: .78rem; }
    body[data-page="catalog"] .dm-search { width: 190px; }
    body[data-page="catalog"] .dm-header-actions { gap: 8px; }
}
@media (max-width: 767px) {
    body[data-page="catalog"] .dm-header-inner { min-height: 66px; gap: 10px; }
    body[data-page="catalog"] .dm-brand-logo { width: 156px; }
    body[data-page="catalog"] .dm-header-actions { gap: 7px; }
    body[data-page="catalog"] .dm-store-links { display: none; }
    body[data-page="catalog"] .dm-store-links.is-open { display: flex; }
}
@media (max-width: 360px) {
    body[data-page="catalog"] .dm-brand-logo { width: 126px; }
}

/* Carrusel táctil de marcas destacadas. */
.dm-brand-strip { display: grid; grid-template-columns: max-content 36px minmax(0, 1fr) 36px; align-items: center; gap: clamp(10px, 1.4vw, 20px); overflow: hidden; }
.dm-brand-strip-label { grid-column: 1; grid-row: 1; }
.dm-brand-arrow { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #d8d8d8; border-radius: 50%; background: #fff; color: #1a1a1a; transition: background .18s ease, color .18s ease, border-color .18s ease, opacity .18s ease; }
.dm-brand-arrow[data-brand-direction="-1"] { grid-column: 2; grid-row: 1; }
.dm-brand-arrow[data-brand-direction="1"] { grid-column: 4; grid-row: 1; }
.dm-brand-arrow:hover:not(:disabled) { border-color: #1a1a1a; background: #1a1a1a; color: #fff; }
.dm-brand-arrow:disabled { cursor: default; opacity: .35; }
.dm-brand-arrow:focus-visible, #brandCarousel:focus-visible { outline: 3px solid rgba(212,175,55,.55); outline-offset: 3px; }
.dm-brand-strip ul { grid-column: 3; grid-row: 1; width: auto; min-width: 0; gap: 16px; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
.dm-brand-strip li { width: auto; flex: 0 0 calc((100% - 64px) / 5); scroll-snap-align: start; }
@media (max-width: 991px) and (min-width: 768px) {
    .dm-brand-strip { grid-template-columns: minmax(126px, 1.2fr) 36px minmax(0, 4fr) 36px; }
    .dm-brand-strip-label { font-size: .58rem; }
    .dm-brand-strip li { flex-basis: calc((100% - 48px) / 4); }
}
@media (max-width: 767px) {
    .dm-brand-strip { display: grid; grid-template-columns: 36px minmax(0, 1fr) 36px; align-items: center; gap: 10px; }
    .dm-brand-strip-label { grid-column: 1 / -1; grid-row: 1; }
    .dm-brand-arrow[data-brand-direction="-1"] { grid-column: 1; grid-row: 2; }
    .dm-brand-strip ul { grid-column: 2; grid-row: 2; }
    .dm-brand-arrow[data-brand-direction="1"] { grid-column: 3; grid-row: 2; }
    .dm-brand-strip li { flex-basis: calc((100% - 32px) / 3); }
}
@media (prefers-reduced-motion: reduce) {
    .dm-brand-strip ul { scroll-behavior: auto; }
}

/* Buscador de productos integrado en la cabecera. */
body[data-page="catalog"] .dm-search {
    width: clamp(230px, 24vw, 330px);
    height: 42px;
    gap: 11px;
    padding: 0 15px;
    border: 1px solid #e6e6e6;
    border-radius: 999px;
    background: #f7f7f7;
    color: #747474;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
body[data-page="catalog"] .dm-search:focus-within {
    border-color: #d4af37;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(212,175,55,.14);
}
body[data-page="catalog"] .dm-search > i { color: #a78117; font-size: .9rem; }
body[data-page="catalog"] .dm-search input { min-width: 0; font-size: .8rem; }
body[data-page="catalog"] .dm-search input::placeholder { color: #888; opacity: 1; }
body[data-page="catalog"] .dm-mobile-search { display: none; }

@media (max-width: 991px) and (min-width: 768px) {
    body[data-page="catalog"] .dm-search { width: clamp(185px, 21vw, 230px); }
}
@media (max-width: 767px) {
    body[data-page="catalog"] .dm-header-inner {
        min-height: 0;
        flex-wrap: wrap;
        row-gap: 0;
        padding-top: 7px;
    }
    body[data-page="catalog"] .dm-header-actions {
        order: 4;
        flex: 1 0 100%;
        width: 100%;
        gap: 8px;
        margin: 0;
        padding: 0 0 11px;
    }
    body[data-page="catalog"] .dm-header-actions .dm-search {
        display: flex;
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
        height: 39px;
        padding: 0 13px;
    }
    body[data-page="catalog"] .dm-header-actions .dm-search input { font-size: .78rem; }
    body[data-page="catalog"] .dm-header-actions .dm-favorites-toggle { flex: 0 0 auto; }
}

/* El mismo encabezado en producto, carrito y seguimiento. */
body:not([data-page="catalog"]) .dm-store-header { top: 0; border-bottom-color: #e5e5e5; }
body:not([data-page="catalog"]) .dm-header-inner { min-height: 68px; gap: clamp(18px, 2.6vw, 38px); padding-right: clamp(18px, 3vw, 42px); padding-left: clamp(18px, 3vw, 42px); }
body:not([data-page="catalog"]) .dm-brand-logo { width: clamp(160px, 17vw, 215px); }
body:not([data-page="catalog"]) .dm-store-links { display: flex; flex: 0 0 auto; gap: clamp(18px, 2vw, 30px); margin: 0; }
body:not([data-page="catalog"]) .dm-store-links a { font-size: .88rem; font-weight: 500; }
body:not([data-page="catalog"]) .dm-header-actions { gap: clamp(12px, 1.7vw, 22px); margin-left: auto; }
body:not([data-page="catalog"]) .dm-search { width: clamp(210px, 22vw, 282px); height: 42px; padding: 0 15px; border-color: #e6e6e6; border-radius: 999px; background: #f7f7f7; color: #747474; }
body:not([data-page="catalog"]) .dm-search:focus-within { border-color: #d4af37; background: #fff; box-shadow: 0 0 0 3px rgba(212,175,55,.14); }
body:not([data-page="catalog"]) .dm-search > i { color: #a78117; }
body:not([data-page="catalog"]) .dm-header-actions .dm-tracking-link,
body:not([data-page="catalog"]) .dm-header-actions .dm-favorites-toggle { min-width: 27px; justify-content: center; padding: 5px; border: 0; background: transparent; color: #1a1a1a; font-size: 1.14rem; }
body:not([data-page="catalog"]) .dm-header-actions .dm-tracking-link span,
body:not([data-page="catalog"]) .dm-header-actions .dm-favorites-toggle span,
body:not([data-page="catalog"]) .dm-header-actions .dm-detail-cart span { display: none; }
body:not([data-page="catalog"]) .dm-header-actions .dm-detail-cart { position: relative; display: grid; width: 34px; height: 40px; place-items: center; padding: 0; border: 0; background: transparent; color: #1a1a1a; font-size: 1.1rem; }
body:not([data-page="catalog"]) .dm-header-actions .dm-detail-cart b { position: absolute; top: -1px; right: -7px; min-width: 16px; height: 16px; border: 2px solid #fff; background: var(--dm-accent); color: #1a1a1a; font-size: .61rem; }
@media (max-width: 991px) and (min-width: 768px) {
    body:not([data-page="catalog"]) .dm-header-inner { gap: 15px; }
    body:not([data-page="catalog"]) .dm-brand-logo { width: 155px; }
    body:not([data-page="catalog"]) .dm-store-links { gap: 13px; }
    body:not([data-page="catalog"]) .dm-store-links a { font-size: .78rem; }
    body:not([data-page="catalog"]) .dm-search { width: 190px; }
    body:not([data-page="catalog"]) .dm-header-actions { gap: 8px; }
}
@media (max-width: 767px) {
    body:not([data-page="catalog"]) .dm-header-inner { min-height: 0; flex-wrap: wrap; row-gap: 0; padding-top: 7px; }
    body:not([data-page="catalog"]) .dm-brand-logo { width: 156px; }
    body:not([data-page="catalog"]) .dm-header-actions { order: 4; flex: 1 0 100%; width: 100%; gap: 7px; margin: 0; padding: 0 0 11px; }
    body:not([data-page="catalog"]) .dm-header-actions .dm-search { display: flex; flex: 1 1 auto; width: auto; min-width: 0; height: 39px; padding: 0 13px; }
    body:not([data-page="catalog"]) .dm-header-actions .dm-search input { font-size: .78rem; }
    body:not([data-page="catalog"]) .dm-header-actions .dm-favorites-toggle { flex: 0 0 auto; }
    body:not([data-page="catalog"]) .dm-store-links { display: none; }
    body:not([data-page="catalog"]) .dm-store-links.is-open { display: flex; }
}
@media (max-width: 360px) {
    body:not([data-page="catalog"]) .dm-brand-logo { width: 126px; }
}

/* Mantiene las fotos del catálogo nítidas y sin recortes ni ampliación por hover. */
.product-card .dm-product-visual {
    display: grid;
    height: 270px;
    place-items: center;
    padding: 10px;
    background: #f8f7f4;
}
.product-card .dm-product-visual > .product-img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    background: transparent;
    image-rendering: auto;
    transform: none;
}
.product-card:hover .dm-product-visual > .product-img { transform: none; }
.dm-card-image-arrow {
    position: absolute;
    z-index: 2;
    top: 50%;
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    transform: translateY(-50%);
    border: 1px solid rgba(26,26,26,.08);
    border-radius: 50%;
    background: rgba(255,255,255,.94);
    color: #1a1a1a;
    box-shadow: 0 2px 10px rgba(0,0,0,.1);
    opacity: 0;
    transition: opacity .18s ease, background .18s ease;
}
.dm-card-image-prev { left: 12px; }
.dm-card-image-next { right: 12px; }
.product-card:hover .dm-card-image-arrow,
.dm-card-image-arrow:focus-visible { opacity: 1; }
.dm-card-image-arrow:hover { background: #fff; }
.dm-card-image-count {
    position: absolute;
    z-index: 1;
    right: 12px;
    bottom: 12px;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(26,26,26,.72);
    color: #fff;
    font-size: .68rem;
    line-height: 1.2;
}
@media (max-width: 991px) {
    .product-card .dm-product-visual { height: 230px; }
}
@media (max-width: 767px) {
    .product-card .dm-product-visual { height: 190px; }
    .dm-card-image-arrow { width: 28px; height: 28px; opacity: 1; }
}

/* Vista de producto más compacta, con controles legibles y proporciones equilibradas. */
@media (min-width: 768px) {
    .dm-detail-grid {
        width: 100%;
        max-width: 870px;
        grid-template-columns: minmax(0, 1fr) minmax(0, .95fr);
        gap: clamp(24px, 4vw, 59px);
        margin-right: auto;
        margin-left: auto;
    }
    .dm-gallery .main-image {
        min-height: min(455px, 40.6vw);
        padding: 17px;
    }
    .dm-gallery .main-image img { max-height: 399px; }
    .thumbnail-button { width: 48px; height: 48px; }
    .dm-thumbnails { gap: 7px; margin-top: 8px; }
    .dm-product-panel { padding: 10px 0; }
    .dm-product-panel h1 {
        margin: 9px 0 11px;
        font-size: clamp(1.5rem, 2.38vw, 2.1rem);
    }
    .dm-product-price-row { gap: 8px; }
    .dm-product-price-row > strong { font-size: 1.2rem; }
    .dm-product-description { margin: 14px 0 18px; font-size: .86rem; line-height: 1.6; }
    .dm-choice-block { margin: 17px 0; }
    .dm-choice-label { margin-bottom: 8px; font-size: .86rem; }
    .dm-size-options { gap: 6px; }
    .size-btn { min-width: 36px; min-height: 34px; padding: 6px 9px; }
    .dm-quantity-control button { width: 30px; height: 29px; font-size: .95rem; }
    .dm-quantity-control span { min-width: 27px; }
    .dm-stock-note { margin-top: 7px; font-size: .72rem; }
    .dm-product-actions { gap: 8px; margin-top: 19px; }
    .dm-product-actions button { min-height: 40px; font-size: .86rem; }
    .dm-purchase-note { gap: 8px; margin-top: 11px; padding: 9px; font-size: .75rem; line-height: 1.45; }
}

/* Ficha de producto inspirada en una tienda deportiva: galería limpia y compra directa. */
body[data-page="product"] .dm-detail-page { padding-top: 24px; }
body[data-page="product"] .dm-back-link { margin-bottom: 14px; font-size: .78rem; }
body[data-page="product"] .dm-gallery .main-image {
    aspect-ratio: 1 / 1;
    min-height: min(455px, 40.6vw);
    overflow: hidden;
    border: 1px solid #ecebe7;
    border-radius: 8px;
    background: #f6f5f1;
}
body[data-page="product"] .dm-gallery .main-image img { max-height: 100%; }
body[data-page="product"] .dm-thumbnails { gap: 9px; margin-top: 10px; }
body[data-page="product"] .thumbnail-button { border-radius: 5px; transition: border-color .18s ease, box-shadow .18s ease; }
body[data-page="product"] .thumbnail-button.active { box-shadow: 0 0 0 1px var(--dm-accent); }
body[data-page="product"] .dm-product-panel {
    padding: 22px;
    border: 1px solid #ecebe7;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(26,26,26,.045);
}
body[data-page="product"] .dm-product-heading-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
body[data-page="product"] .dm-product-heading-meta .dm-eyebrow { margin: 0; color: #9b761e; font-size: .62rem; }
body[data-page="product"] .dm-product-code { color: #898780; font-size: .67rem; letter-spacing: .04em; }
body[data-page="product"] .dm-product-panel h1 { margin: 12px 0 14px; font-size: clamp(1.45rem, 2vw, 1.9rem); line-height: 1.2; }
body[data-page="product"] .dm-product-price-row { margin: 0 0 15px; padding: 12px 0; border-top: 1px solid #efeee9; border-bottom: 1px solid #efeee9; }
body[data-page="product"] .dm-product-price-row > strong { color: #1a1a1a; font-size: 1.35rem; font-weight: 750; }
body[data-page="product"] .dm-product-description { margin: 0 0 15px; color: #66645e; font-size: .82rem; line-height: 1.65; }
body[data-page="product"] .dm-choice-block { margin: 15px 0; }
body[data-page="product"] .dm-choice-label { color: #242321; }
body[data-page="product"] .dm-size-options { gap: 7px; }
body[data-page="product"] .size-btn { min-width: 42px; min-height: 40px; border-radius: 4px; font-size: .8rem; transition: border-color .18s ease, background .18s ease, color .18s ease; }
body[data-page="product"] .size-btn:hover, body[data-page="product"] .size-btn.selected { border-color: #d4af37; background: #d4af37; color: #1a1a1a; }
body[data-page="product"] .dm-quantity-control { border-radius: 4px; overflow: hidden; }
body[data-page="product"] .dm-quantity-control button { background: #f8f7f4; }
body[data-page="product"] .dm-product-actions { gap: 9px; margin-top: 18px; }
body[data-page="product"] .dm-product-actions button { min-height: 46px; border-radius: 5px; font-size: .82rem; }
body[data-page="product"] .dm-product-actions .btn-add { background: #d4af37; color: #1a1a1a; }
body[data-page="product"] .dm-product-actions .btn-add:hover { background: #bd961f; }
body[data-page="product"] .dm-product-actions .btn-wa { border: 1px solid #1a1a1a; background: #fff; color: #1a1a1a; }
body[data-page="product"] .dm-product-actions .btn-wa:hover { background: #f7f6f2; }
body[data-page="product"] .dm-purchase-note { margin-top: 12px; border-radius: 5px; }
body[data-page="product"] .dm-detail-information { display: block; max-width: 870px; margin: 36px auto 0; border-top: 1px solid #e8e7e2; }
body[data-page="product"] .dm-info-accordion { border-bottom: 1px solid #e8e7e2; }
body[data-page="product"] .dm-info-accordion summary { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; font-size: .9rem; font-weight: 700; list-style: none; }
body[data-page="product"] .dm-info-accordion summary::-webkit-details-marker { display: none; }
body[data-page="product"] .dm-info-accordion summary i { color: #987517; font-size: .75rem; transition: transform .2s ease; }
body[data-page="product"] .dm-info-accordion[open] summary i { transform: rotate(180deg); }
body[data-page="product"] .dm-info-content { max-width: 760px; padding: 0 0 20px; color: #62615c; font-size: .84rem; line-height: 1.75; }
body[data-page="product"] .dm-info-content p { margin: 0; }
body[data-page="product"] .dm-info-content ul { margin: 0; padding-left: 18px; }
@media (min-width: 992px) {
    body[data-page="product"] .dm-product-panel { position: sticky; top: 88px; }
}
@media (max-width: 767px) {
    body[data-page="product"] .dm-detail-page { padding-top: 18px; padding-bottom: 44px; }
    body[data-page="product"] .dm-product-panel { padding: 18px; border: 1px solid #ecebe7; border-radius: 8px; }
    body[data-page="product"] .dm-gallery .main-image { min-height: 330px; aspect-ratio: auto; }
    body[data-page="product"] .dm-detail-information { margin-top: 28px; }
}
