/*
Theme Name:   Dressing Mostras
Theme URI:    https://dressingmostras.com
Description:  Child theme de Storefront para la tienda Dressing Mostras. Diseño personalizado con sidebar fija, paleta rosa/crema y tipografía Outfit.
Author:       Dressing Mostras v.1.2
Template:     storefront
Version:      1.1.7
Text Domain:  dressing-mostras-child
*/

/* ─────────────────────────────────────────
   RESET STOREFRONT
───────────────────────────────────────── */
.site        { padding-top: 0 !important; }
.site-header { display: none !important; }
.site-footer { display: none !important; }
.col-full    { max-width: 100% !important; padding: 0 !important; }
.woocommerce-breadcrumb { display: none !important; }
.storefront-sorting { margin-bottom: 1rem; }

body {
  font-family: 'Outfit', sans-serif !important;
  background: #faf9f7 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #2c2c2a;
  /* Storefront keeps body as a flex container on some layouts. Reset it so
     .page stacks normally with the footer below instead of side-by-side. */
  display: block !important;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

a { text-decoration: none; color: inherit; }

/* ─────────────────────────────────────────
   SHARED
───────────────────────────────────────── */
.logo-img { display: block; object-fit: contain; }
.logo-img-sidebar { width: 120px; height: auto; }
.logo-img-mobile  { width: 80px;  height: auto; }
.logo-img-drawer  { width: 100px; height: auto; }

.marquee-bar { background: #B85C75; color: #fff; font-size: 10px; letter-spacing: 0.2em; padding: 9px 0; overflow: hidden; white-space: nowrap; }
.marquee-inner { display: inline-block; animation: marquee 18s linear infinite; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.marquee-sep { margin: 0 1.5rem; color: rgba(255,255,255,0.5); }

.hero-title { font-size: 56px; font-weight: 900; line-height: 0.95; color: #1a1a18; margin-bottom: 0.3rem; }
.hero-title .accent { color: #B85C75; }
.hero-eyebrow { font-size: 10px; letter-spacing: 0.2em; color: #B85C75; font-weight: 700; margin-bottom: 1rem; text-transform: uppercase; }
.hero-subtitle { font-size: 14px; color: #555; margin-bottom: 2rem; font-weight: 400; line-height: 1.5; }
.hero-cta {
  display: inline-flex; align-items: center; gap: 8px;
  background: #B85C75; color: #fff; font-size: 12px; font-weight: 700;
  padding: 13px 26px; letter-spacing: 0.12em; text-transform: uppercase;
  width: fit-content; cursor: pointer; border: none; transition: background 0.3s;
}
.hero-cta:hover { background: #5F2C3E; color: #fff; }

.product-badge { position: absolute; top: 8px; left: 8px; background: #B85C75; color: #fff; font-size: 9px; font-weight: 500; padding: 3px 8px; letter-spacing: 0.08em; z-index: 1; }
.product-badge.sale { background: #1a1a18; }
.product-name { font-size: 11px; font-weight: 500; color: #2c2c2a; margin-bottom: 3px; }
.product-price { font-size: 12px; color: #888; }
.product-price .old { text-decoration: line-through; margin-right: 4px; color: #bbb; }
.product-price .new { color: #B85C75; font-weight: 500; }

/* ─────────────────────────────────────────
   DESKTOP LAYOUT
───────────────────────────────────────── */
.page { display: flex; min-height: 100vh; }

/* Sidebar */
.sidebar {
  width: 280px; min-width: 280px; background: #fff;
  border-right: 0.5px solid #e8e4de; display: flex; flex-direction: column;
  padding: 2rem 1.5rem; position: sticky; top: 0; height: 100vh;
}
.sidebar .logo-area { margin-bottom: 3rem; }
nav.sidebar-nav { flex: 1; }
.nav-item { display: flex; align-items: center; gap: 10px; padding: 0.6rem 0; cursor: pointer; text-decoration: none; }
.nav-num { font-size: 10px; color: #b8b0a6; font-weight: 400; width: 16px; }
.nav-label { font-size: 32px; font-weight: 800; color: #2c2c2a; letter-spacing: 0.08em; }
.nav-item.active .nav-label,
.nav-item.active .nav-num,
.nav-item:hover .nav-label { color: #B85C75; }
.nav-item:hover .nav-num { color: #B85C75; }
.sidebar-footer { border-top: 0.5px solid #e8e4de; padding-top: 1rem; display: flex; justify-content: space-between; align-items: center; }
.social { display: flex; gap: 12px; }
.social a { font-size: 11px; color: #888; font-weight: 500; letter-spacing: 0.06em; text-decoration: none; }
.social a:hover { color: #B85C75; }
.year { font-size: 10px; color: #aaa; }

/* Main content */
.main { flex: 1; display: flex; flex-direction: column; overflow-x: hidden; min-width: 0; }

/* Desktop topbar */
.desktop-topbar {
  display: flex; justify-content: flex-end; align-items: center;
  padding: 14px 24px; background: #fff; border-bottom: 0.5px solid #e8e4de;
}
.cart-btn-desk {
  position: relative; width: 38px; height: 38px;
  background: #fff; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; border: 1.5px solid #e8e4de; transition: all 0.2s;
  text-decoration: none;
}
.cart-btn-desk:hover { border-color: #B85C75; background: #faf9f7; }
.cart-badge-desk {
  position: absolute; top: -4px; right: -4px;
  width: 16px; height: 16px; background: #B85C75;
  border-radius: 50%; font-size: 9px; font-weight: 700;
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-family: 'Outfit', sans-serif;
}

/* Hero section */
.hero-section { display: grid; grid-template-columns: 1fr 1fr 1fr; min-height: 380px; }
.hero-main {
  background: linear-gradient(135deg, #fff 60%, #fce8ef 100%);
  padding: 3rem 2.5rem;
  display: flex; flex-direction: column; justify-content: center;
  border-bottom: 0.5px solid #e8e4de;
}
.hero-cat {
  position: relative; overflow: hidden; cursor: pointer;
  border-left: 0.5px solid #e8e4de; border-bottom: 0.5px solid #e8e4de;
  transition: transform 0.3s ease;
}
.hero-cat:hover { transform: scale(1.01); }
.hero-cat-bg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.urban-bg { background: #9e8f84; }
.chic-bg  { background: #b8a898; }
.hero-cat-overlay {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  justify-content: flex-end; padding: 1.5rem;
  background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.1) 60%, transparent 100%);
}
.cat-label { font-size: 24px; font-weight: 900; color: #fff; letter-spacing: 0.15em; }
.cat-count { font-size: 10px; color: rgba(255,255,255,0.85); letter-spacing: 0.12em; margin-top: 4px; }
.cat-arrow {
  position: absolute; top: 1rem; right: 1rem;
  width: 28px; height: 28px; background: rgba(255,255,255,0.2);
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 12px;
}

/* Desktop products */
.products-section { padding: 2.5rem 2.5rem 2rem; background: #faf9f7; }
.section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.section-title { font-size: 24px; font-weight: 800; letter-spacing: -0.02em; color: #1a1a1a; }
.section-nav { display: flex; gap: 8px; align-items: center; }
.nav-arrow {
  width: 28px; height: 28px; border: 1px solid #e0dbd5; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; cursor: pointer; color: #888; background: #fff; transition: all 0.2s;
}
.nav-arrow:hover { background: #B85C75; color: #fff; border-color: #B85C75; }
.products-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.product-card { background: #fff; border: none; border-radius: 10px; overflow: hidden; cursor: pointer; box-shadow: 0 2px 12px rgba(0,0,0,0.06); transition: box-shadow 0.2s; }
.product-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.11); }
.product-img {
  width: 100%; aspect-ratio: 3/4;
  background: #f5f1ed; position: relative; overflow: hidden;
}
.product-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.product-card:hover .product-img img { transform: scale(1.04); }
.product-info { padding: 14px 16px 16px; }
.product-card .product-name { font-size: 15px; font-weight: 600; color: #1a1a1a; margin-bottom: 6px; }
.product-card .product-price { font-size: 16px; font-weight: 800; color: #B85C75; }
.product-card .product-price .old { font-size: 13px; color: #bbb; text-decoration: line-through; font-weight: 400; margin-right: 5px; }
.product-card .product-price .new { color: #B85C75; }

/* ─────────────────────────────────────────
   FEATURED SECTION
───────────────────────────────────────── */
.featured-section { background: #fff; border-top: 0.5px solid #e8e4de; padding: 3rem 2.5rem; }
.featured-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.featured-img-wrap { position: relative; }
.featured-img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; }
.featured-tag { position: absolute; top: 16px; left: 16px; background: #B85C75; color: #fff; font-size: 10px; font-weight: 700; padding: 5px 12px; letter-spacing: 0.1em; }
.featured-eyebrow { font-size: 11px; letter-spacing: 0.22em; color: #aaa; text-transform: uppercase; margin-bottom: 12px; }
.featured-title { font-size: 42px; font-weight: 900; line-height: 1.05; color: #1a1a18; margin-bottom: 16px; }
.featured-desc { font-size: 15px; color: #777; line-height: 1.7; margin-bottom: 24px; max-width: 380px; }
.featured-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; flex-wrap: wrap; gap: 12px; }
.featured-price-wrap { display: flex; align-items: baseline; gap: 10px; }
.featured-old { font-size: 16px; color: #bbb; text-decoration: line-through; }
.featured-price { font-size: 32px; font-weight: 900; color: #1a1a18; }
.featured-sizes { display: flex; align-items: center; gap: 6px; }
.size-label { font-size: 11px; color: #aaa; letter-spacing: 0.1em; margin-right: 4px; }
.size-btn { width: 36px; height: 36px; border: 0.5px solid #d0ccc6; background: transparent; font-size: 12px; font-weight: 500; color: #2c2c2a; cursor: pointer; transition: all 0.2s; font-family: 'Outfit', sans-serif; }
.size-btn:hover, .size-btn.active { background: #1a1a18; color: #fff; border-color: #1a1a18; }
.featured-actions { display: flex; gap: 10px; margin-bottom: 16px; }
.featured-cta { flex: 1; background: #B85C75; color: #fff; border: none; padding: 15px 28px; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; font-family: 'Outfit', sans-serif; transition: background 0.2s; }
.featured-cta:hover { background: #1a1a18; color: #fff; }
.featured-wish { width: 50px; height: 50px; border: 0.5px solid #d0ccc6; background: transparent; font-size: 20px; cursor: pointer; color: #888; transition: all 0.2s; }
.featured-wish:hover { border-color: #B85C75; color: #B85C75; }
.featured-shipping { font-size: 13px; color: #aaa; letter-spacing: 0.04em; }

/* ─────────────────────────────────────────
   ALSO SECTION
───────────────────────────────────────── */
.also-section { background: #fff; padding: 2.5rem 0 2.5rem; border-top: none; }
.also-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding: 0 2.5rem; }
.also-card { background: #faf9f7; border: none; border-radius: 10px; overflow: hidden; cursor: pointer; box-shadow: 0 2px 12px rgba(0,0,0,0.05); transition: box-shadow 0.2s; }
.also-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.1); }
.also-img-wrap { position: relative; width: 100%; aspect-ratio: 3/4; overflow: hidden; background: #ede9e3; }
.also-img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.also-card:hover .also-img-wrap img { transform: scale(1.04); }
.also-cart-btn { position: absolute; bottom: 10px; right: 10px; width: 32px; height: 32px; background: #fff; border: none; border-radius: 50%; font-size: 16px; cursor: pointer; display: flex; align-items: center; justify-content: center; color: #B85C75; font-weight: 700; transition: all 0.2s; opacity: 0; font-family: 'Outfit', sans-serif; box-shadow: 0 2px 8px rgba(0,0,0,0.12); text-decoration: none; }
.also-card:hover .also-cart-btn { opacity: 1; }
.see-all-link2 { font-size: 13px; color: #B85C75; font-weight: 500; letter-spacing: 0.05em; cursor: pointer; }

/* ─────────────────────────────────────────
   EDITORIAL BANNER
───────────────────────────────────────── */
.editorial-banner { background: #1a1a18; padding: 4rem 2.5rem; }
.editorial-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.editorial-kicker { font-size: 11px; letter-spacing: 0.25em; color: #B85C75; text-transform: uppercase; margin-bottom: 20px; }
.editorial-headline { font-size: 52px; font-weight: 900; line-height: 1; color: #fff; margin-bottom: 20px; }
.editorial-headline em { color: #B85C75; font-style: italic; }
.editorial-body { font-size: 15px; color: #888; line-height: 1.75; margin-bottom: 32px; max-width: 380px; }
.editorial-btn { background: transparent; border: 0.5px solid #555; color: #fff; font-size: 13px; font-weight: 500; padding: 13px 26px; letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer; font-family: 'Outfit', sans-serif; transition: all 0.2s; }
.editorial-btn:hover { background: #B85C75; border-color: #B85C75; color: #fff; }
.editorial-img-block { display: flex; gap: 16px; align-items: flex-end; }
.editorial-img-frame { flex: 1; position: relative; }
.editorial-img-frame--offset { margin-bottom: -40px; }
.editorial-img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; }
.editorial-img-label { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(184,92,117,0.92); color: #fff; font-size: 9px; font-weight: 700; letter-spacing: 0.12em; padding: 8px 12px; line-height: 1.5; }
.editorial-img-label span { color: #fff; font-size: 11px; }

/* ─────────────────────────────────────────
   NEW ARRIVALS
───────────────────────────────────────── */
.newarrivals-section { background: #fff; border-top: 0.5px solid #e5e5e5; padding: 3rem 2.5rem 3.5rem; }
.newarrivals-header { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 2rem; }
.newarrivals-eyebrow { font-size: 11px; letter-spacing: 0.22em; color: #B85C75; text-transform: uppercase; font-weight: 700; margin-bottom: 6px; }
.newarrivals-title { font-size: 32px; font-weight: 900; color: #1a1a1a; line-height: 1; }
.newarrivals-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; align-items: start; }
.na-smalls-row { display: block; overflow: hidden; }
.na-smalls-row .swiper-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; transform: none !important; }
.na-smalls-row .swiper-slide { width: auto !important; margin: 0 !important; }
.na-smalls-row .na-small { height: 100%; }
.na-feature { position: relative; overflow: hidden; cursor: pointer; background: #f8f4f0; }
.na-feature img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; transition: transform 0.6s cubic-bezier(0.22,1,0.36,1); }
.na-feature:hover img { transform: scale(1.05); }
.na-feature-info { padding: 14px 16px 16px; }
.na-feature-name { font-size: 17px; font-weight: 700; color: #1a1a1a; margin-bottom: 4px; }
.na-feature-desc { font-size: 14px; color: #999; margin-bottom: 12px; line-height: 1.5; }
.na-feature-footer { display: flex; align-items: center; justify-content: space-between; }
.na-feature-price { font-size: 22px; font-weight: 900; color: #B85C75; }
.na-feature-btn { background: #B85C75; color: #fff; border: none; padding: 11px 20px; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; font-family: 'Outfit', sans-serif; transition: background 0.2s; }
.na-feature-btn:hover { background: #5F2C3E; color: #fff; }
.na-small { position: relative; overflow: hidden; cursor: pointer; background: #f8f4f0; }
.na-small img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; transition: transform 0.6s cubic-bezier(0.22,1,0.36,1); }
.na-small:hover img { transform: scale(1.05); }
.na-small-info { padding: 10px 12px 12px; }
.na-small-name { font-size: 14px; font-weight: 700; color: #1a1a1a; margin-bottom: 3px; }
.na-small-price { font-size: 16px; font-weight: 900; color: #B85C75; }
.na-small-add { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.na-small-add-btn { flex: 1; background: #B85C75; color: #fff; border: none; padding: 9px; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; font-family: 'Outfit', sans-serif; transition: background 0.2s; }
.na-small-add-btn:hover { background: #5F2C3E; }
.na-badge { position: absolute; top: 10px; left: 10px; background: #B85C75; color: #fff; font-size: 8px; font-weight: 700; padding: 3px 9px; letter-spacing: 0.1em; z-index: 1; }

/* New arrivals mobile swiper — hidden on desktop */
.na-mobile-section { display: none; }

/* ─────────────────────────────────────────
   FOOTER
───────────────────────────────────────── */
footer.dm-footer {
  background: #1a1a1a; border-top: 3px solid #B85C75;
  padding: 52px 40px 24px; font-family: 'Outfit', sans-serif;
  width: 100%; display: block; clear: both; float: none;
}
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 36px; align-items: start; }
.footer-big-title { font-size: 3.8rem; font-weight: 900; color: #fff; line-height: 0.92; letter-spacing: -2px; margin-bottom: 14px; }
.footer-big-title span { color: #B85C75; }
.footer-tagline { font-size: 13px; color: rgba(255,255,255,0.4); line-height: 1.65; margin-bottom: 22px; max-width: 220px; }
.footer-social-links { display: flex; gap: 8px; }
.footer-social-links a { font-size: 10px; font-weight: 700; color: rgba(255,255,255,0.55); text-decoration: none; letter-spacing: 0.12em; border: 0.5px solid rgba(255,255,255,0.18); padding: 5px 13px; transition: all 0.2s; }
.footer-social-links a:hover { color: #B85C75; border-color: #B85C75; }
.footer-col h5 { font-size: 9px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255,255,255,0.35); margin-bottom: 16px; }
.footer-col ul { list-style: none; margin: 0; padding: 0; }
.footer-col li { margin: 0; padding: 0; }
.footer-col a { display: block; font-size: 13px; color: rgba(255,255,255,0.6); text-decoration: none; margin-bottom: 10px; transition: color 0.2s; }
.footer-col a:hover { color: #B85C75; }
.footer-col p { font-size: 12px; color: rgba(255,255,255,0.35); margin-bottom: 12px; line-height: 1.6; }
.email-row { display: flex; }
.email-row input {
  flex: 1; border: 0.5px solid rgba(255,255,255,0.15); border-right: none;
  padding: 10px 12px; font-size: 12px; font-family: 'Outfit', sans-serif;
  background: rgba(255,255,255,0.07); outline: none; color: #fff; transition: border-color 0.2s;
}
.email-row input::placeholder { color: rgba(255,255,255,0.3); }
.email-row input:focus { border-color: #B85C75; }
.email-row button {
  background: #B85C75; color: #fff; border: none;
  padding: 10px 16px; font-size: 13px; font-weight: 700; cursor: pointer; transition: background 0.2s;
}
.email-row button:hover { background: #5F2C3E; }
.footer-bottom { border-top: 0.5px solid rgba(255,255,255,0.08); padding-top: 18px; display: flex; justify-content: space-between; align-items: center; }
.footer-bottom p { font-size: 11px; color: rgba(255,255,255,0.25); }

/* ─────────────────────────────────────────
   MOBILE HEADER & DRAWER
───────────────────────────────────────── */
.mobile-header { display: none; }
.drawer-overlay, .drawer { display: none; }

.mobile-header {
  position: sticky; top: 0; z-index: 100;
  background: #fff; border-bottom: 0.5px solid #e8e4de;
  align-items: center; justify-content: space-between;
  padding: 12px 18px;
}
.header-right { display: flex; align-items: center; gap: 10px; }
.cart-btn-mob {
  position: relative; width: 36px; height: 36px;
  background: #fff; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; border: 1.5px solid #e8e4de; text-decoration: none; color: inherit;
}
.cart-badge-mob {
  position: absolute; top: -4px; right: -4px;
  width: 15px; height: 15px; background: #B85C75;
  border-radius: 50%; font-size: 8px; font-weight: 700;
  color: #fff; display: flex; align-items: center; justify-content: center;
}
.hamburger-btn {
  width: 36px; height: 36px; background: transparent;
  border: 0.5px solid #e8e4de; border-radius: 50%;
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 4px; cursor: pointer;
}
.hamburger-btn span { display: block; width: 15px; height: 1.5px; background: #1a1a18; }

.drawer-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.35);
  z-index: 200; opacity: 0; pointer-events: none; transition: opacity 0.3s;
}
.drawer-overlay.open { opacity: 1; pointer-events: all; }
.drawer {
  position: fixed; top: 0; left: 0; bottom: 0; width: 260px;
  background: #fff; z-index: 201; transform: translateX(-100%);
  transition: transform 0.3s cubic-bezier(0.4,0,0.2,1);
  flex-direction: column; padding: 28px 24px;
}
.drawer.open { transform: translateX(0); }
.drawer-logo { margin-bottom: 36px; }
.drawer-close {
  position: absolute; top: 18px; right: 18px;
  width: 32px; height: 32px; background: transparent; border: none;
  font-size: 20px; color: #888; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.drawer-nav { flex: 1; }
.drawer-nav-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 0; border-bottom: 0.5px solid #f0ece6; cursor: pointer;
  text-decoration: none; color: inherit;
}
.drawer-nav-item:last-child { border-bottom: none; }
.drawer-nav-item .nav-label { font-size: 15px; }
.drawer-nav-item.active .nav-label,
.drawer-nav-item.active .nav-num { color: #B85C75; }
.drawer-nav-item:hover .nav-label,
.drawer-nav-item:hover .nav-num { color: #B85C75; }
.drawer-footer { border-top: 0.5px solid #e8e4de; padding-top: 14px; display: flex; justify-content: space-between; align-items: center; }

/* ─────────────────────────────────────────
   MOBILE OVERRIDES  ≤1023px
───────────────────────────────────────── */
@media (max-width: 1023px) {
  .mobile-header  { display: flex !important; }
  .drawer-overlay { display: block; }
  .drawer         { display: flex; }
  .sidebar        { display: none !important; }
  .desktop-topbar { display: none !important; }
  .page           { display: block !important; }
  .main           { display: block !important; overflow: visible !important; }

  /* Hero */
  .hero-section { grid-template-columns: 1fr; min-height: auto; }
  .hero-main    { padding: 24px 18px 20px; border-bottom: 0.5px solid #e8e4de; }
  .hero-title   { font-size: 44px; }
  .hero-cta     { font-size: 11px; padding: 11px 18px; }
  .hero-cat     { border-left: none; border-bottom: none; }
  .cats-mobile-grid {
    display: grid !important; grid-template-columns: 1fr 1fr;
    gap: 8px; padding: 8px; background: #faf9f7;
  }
  .cats-mobile-grid .hero-cat { aspect-ratio: 3/4; border: none; }

  /* Products */
  .products-grid    { grid-template-columns: 1fr 1fr; gap: 10px; }
  .products-section { padding: 20px 12px 16px; }
  .section-title    { font-size: 18px; }
  .section-nav      { display: none; }
  .see-all-link     { font-size: 13px; color: #B85C75; font-weight: 500; cursor: pointer; }
  .see-all-link2    { font-size: 13px; }
  .product-card     { border-radius: 8px; }
  .product-info     { padding: 10px 10px 14px; }
  .product-card .product-name  { font-size: 14px; }
  .product-card .product-price { font-size: 15px; }
  .product-badge    { font-size: 10px; padding: 4px 9px; }

  /* Footer */
  footer.dm-footer  { padding: 36px 18px 20px; }
  .footer-grid      { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .footer-big-title { font-size: 2.8rem; letter-spacing: -1px; }
  .footer-tagline   { font-size: 14px; max-width: 100%; }
  .footer-col h5    { font-size: 11px; }
  .footer-col a     { font-size: 14px; }
  .footer-social-links a { font-size: 12px; padding: 6px 14px; }
  .footer-bottom    { flex-direction: column; gap: 4px; align-items: flex-start; }
  .footer-bottom p  { font-size: 12px; }

  /* Featured */
  .featured-section { padding: 24px 16px; }
  .featured-inner   { grid-template-columns: 1fr; gap: 20px; }
  .featured-title   { font-size: 28px; }
  .featured-desc    { font-size: 14px; max-width: 100%; }
  .featured-price   { font-size: 26px; }
  .featured-cta     { font-size: 13px; padding: 14px 20px; }
  .featured-meta    { flex-direction: column; align-items: flex-start; }

  /* Also */
  .also-section  { padding: 20px 0 20px; }
  .also-grid     { grid-template-columns: 1fr 1fr; gap: 10px; padding: 0 12px; }
  .also-card     { border-radius: 8px; }
  .also-cart-btn { opacity: 1; font-size: 18px; }
  .also-section .section-header { padding: 0 12px !important; }

  /* Editorial */
  .editorial-banner  { padding: 36px 18px 48px; }
  .editorial-inner   { grid-template-columns: 1fr; gap: 28px; }
  .editorial-headline { font-size: 32px; }
  .editorial-img-frame--offset { margin-bottom: 0; }

  /* New Arrivals */
  .newarrivals-section { display: none !important; }
  .na-mobile-section   {
    display: block !important; background: #fff;
    border-top: 0.5px solid #e5e5e5; padding: 24px 0 28px;
  }
  .na-mobile-header { display: flex; align-items: baseline; justify-content: space-between; padding: 0 16px; margin-bottom: 18px; }
  .na-mobile-eyebrow { font-size: 9px; letter-spacing: 0.22em; color: #B85C75; text-transform: uppercase; font-weight: 700; margin-bottom: 4px; }
  .na-mobile-title   { font-size: 22px; font-weight: 900; color: #1a1a1a; line-height: 1; }
  .na-mobile-swiper  { padding-left: 16px !important; overflow: hidden; }
  .na-mobile-swiper .swiper-slide { width: 62vw; background: #f8f4f0; }
  .na-mobile-swiper .swiper-slide img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; }
  .na-mobile-card-info  { padding: 10px 12px 14px; }
  .na-mobile-card-name  { font-size: 13px; font-weight: 700; color: #1a1a1a; margin-bottom: 4px; }
  .na-mobile-card-price { font-size: 15px; font-weight: 900; color: #B85C75; margin-bottom: 10px; }
  .na-mobile-card-btn   { width: 100%; background: #B85C75; color: #fff; border: none; padding: 10px; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; font-family: 'Outfit', sans-serif; }

  .cat-label { font-size: 20px; }
  .cat-count { font-size: 12px; }
}

@media (min-width: 1024px) {
  .mobile-header    { display: none !important; }
  .sidebar          { display: flex !important; }
  .na-mobile-section{ display: none !important; }
}

/* ─────────────────────────────────────────
   WOOCOMMERCE — páginas internas
───────────────────────────────────────── */

/* Neutralizar el wrapper .woocommerce que Storefront/WC inyectan */
.main .woocommerce,
.main .woocommerce-page {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}

/* Content area inside .main for WC pages */
.main > .woocommerce-page-wrapper,
.main > .dm-wc-content {
  padding: 2.5rem 2.5rem 3rem;
  background: #faf9f7;
  min-height: calc(100vh - 60px);
}

/* WC Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background: #B85C75 !important;
  color: #fff !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em;
  border-radius: 0 !important;
  border: none !important;
  padding: 12px 24px !important;
  font-size: 12px !important;
  text-transform: uppercase;
  transition: background 0.2s !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background: #5F2C3E !important;
  color: #fff !important;
}

/* WC product grid */
.woocommerce ul.products { margin: 0 !important; }
.woocommerce ul.products li.product { border-radius: 10px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,0,0,0.06); background: #fff; }
.woocommerce ul.products li.product:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.11); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: 'Outfit', sans-serif !important; font-weight: 600; font-size: 13px; color: #1a1a1a; }
.woocommerce ul.products li.product .price { color: #B85C75 !important; font-weight: 800; font-family: 'Outfit', sans-serif !important; }
.woocommerce ul.products li.product .price del { color: #bbb !important; font-weight: 400; }
.woocommerce span.onsale { background: #1a1a18 !important; border-radius: 0 !important; font-family: 'Outfit', sans-serif !important; font-size: 9px !important; letter-spacing: 0.08em; }

/* WC single product */
.woocommerce div.product .product_title { font-family: 'Outfit', sans-serif !important; font-weight: 900; font-size: 28px; color: #1a1a18; }
.woocommerce div.product p.price { color: #B85C75 !important; font-size: 24px !important; font-weight: 900; font-family: 'Outfit', sans-serif !important; }
.woocommerce div.product p.price del { color: #bbb !important; font-size: 16px !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-family: 'Outfit', sans-serif !important; font-weight: 500; color: #555; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #B85C75; border-bottom-color: #B85C75; }

/* WC cart & checkout */
.woocommerce-cart table.cart td.actions .coupon .input-text,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
  font-family: 'Outfit', sans-serif !important;
  border-color: #e8e4de !important;
  border-radius: 0 !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { border-color: #B85C75 !important; outline: none !important; box-shadow: none !important; }

/* WC notices */
/* WooCommerce notices — override default blue */
body .woocommerce-message,
body .woocommerce-info {
  border-top: 3px solid #B85C75 !important;
  background-color: #fff !important;
  color: #1a1a1a !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
}
body .woocommerce-message::before,
body .woocommerce-info::before { color: #B85C75 !important; }
body .woocommerce-error {
  border-top: 3px solid #c0392b !important;
  font-family: 'Outfit', sans-serif !important;
}
/* Hide WC coupon toggle bar (uses checkout page native form instead) */
.woocommerce-form-coupon-toggle .woocommerce-info {
  border-top-color: #e8e4de !important;
  background: #faf9f7 !important;
  font-size: 12px !important;
}
.woocommerce-form-coupon-toggle .woocommerce-info a { color: #B85C75 !important; }

/* WC pagination */
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  font-family: 'Outfit', sans-serif !important;
}
.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: #B85C75 !important;
  color: #fff !important;
  border-color: #B85C75 !important;
}

/* WC breadcrumbs (hide) */
.woocommerce-breadcrumb { display: none !important; }

/* ─────────────────────────────────────────
   SHOP PAGE  (archive-product.php)
───────────────────────────────────────── */
.dm-shop-page { background: #faf9f7; }

.dm-shop-page .woocommerce-products-header { display: none; }

/* Header de sección */
.dm-shop-header {
  display: flex; align-items: flex-end; justify-content: space-between;
  padding: 2.5rem 2.5rem 1.5rem; flex-wrap: wrap; gap: 12px;
  background: #fff; border-bottom: 0.5px solid #e8e4de;
}
.dm-shop-eyebrow { font-size: 9px; letter-spacing: 0.22em; color: #B85C75; text-transform: uppercase; font-weight: 700; margin-bottom: 6px; }
.dm-shop-title   { font-size: 28px; font-weight: 900; color: #1a1a18; line-height: 1; letter-spacing: -0.02em; }
.dm-shop-desc    { font-size: 13px; color: #888; margin-top: 8px; max-width: 360px; line-height: 1.6; }
.dm-shop-controls { display: flex; align-items: center; gap: 16px; }
.dm-shop-count   { font-size: 11px; color: #aaa; letter-spacing: 0.08em; }

/* WooCommerce orderby select */
.dm-shop-controls .woocommerce-ordering select {
  border: 0.5px solid #e8e4de; background: #fff; font-family: 'Outfit', sans-serif;
  font-size: 11px; color: #555; padding: 7px 28px 7px 10px;
  letter-spacing: 0.06em; cursor: pointer; outline: none;
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center;
}
.dm-shop-controls .woocommerce-ordering select:focus { border-color: #B85C75; }

/* Filtro de categorías (pills) */
.dm-shop-cats {
  display: flex; gap: 8px; flex-wrap: wrap;
  padding: 1rem 2.5rem; background: #fff; border-bottom: 0.5px solid #e8e4de;
}
.dm-shop-cat-pill {
  font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 6px 14px; border: 0.5px solid #d0ccc6; color: #888;
  background: transparent; cursor: pointer; text-decoration: none; transition: all 0.2s;
  white-space: nowrap;
}
.dm-shop-cat-pill:hover,
.dm-shop-cat-pill.active { background: #B85C75; color: #fff; border-color: #B85C75; }
.dm-cat-pill-count { font-size: 9px; opacity: 0.6; margin-left: 4px; }

/* Grid de productos */
.dm-shop-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 16px; padding: 2rem 2.5rem;
}

/* Botón rápido add-to-cart sobre la imagen */
.dm-quick-add {
  position: absolute; bottom: 10px; right: 10px;
  width: 32px; height: 32px; background: #fff; border: none; border-radius: 50%;
  font-size: 18px; font-weight: 700; cursor: pointer; color: #B85C75;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12); opacity: 0;
  transition: opacity 0.2s; text-decoration: none; line-height: 1;
}
.product-card:hover .dm-quick-add { opacity: 1; }

/* Paginación */
.dm-shop-pagination {
  padding: 1.5rem 2.5rem 3rem;
  display: flex; justify-content: center;
}
.dm-shop-pagination .woocommerce-pagination ul { list-style: none; display: flex; gap: 4px; }
.dm-shop-pagination .woocommerce-pagination ul li a,
.dm-shop-pagination .woocommerce-pagination ul li span {
  width: 34px; height: 34px; display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-family: 'Outfit', sans-serif; font-weight: 500;
  border: 0.5px solid #e0dbd5; color: #555; text-decoration: none; transition: all 0.2s;
}
.dm-shop-pagination .woocommerce-pagination ul li a:hover,
.dm-shop-pagination .woocommerce-pagination ul li span.current {
  background: #B85C75; color: #fff; border-color: #B85C75;
}

/* Estado vacío */
.dm-shop-empty { padding: 4rem 2.5rem; text-align: center; }
.dm-shop-empty p { font-size: 15px; color: #888; margin-bottom: 24px; }

/* ── Shop mobile ── */
@media (max-width: 1023px) {
  .dm-shop-header  { padding: 20px 16px 14px; }
  .dm-shop-title   { font-size: 22px; }
  .dm-shop-cats    { padding: 10px 14px; gap: 6px; }
  .dm-shop-grid    { grid-template-columns: 1fr 1fr; gap: 10px; padding: 14px 12px; }
  .dm-quick-add    { opacity: 1; }
  .dm-shop-pagination { padding: 1rem 12px 2rem; }
}

/* ─────────────────────────────────────────
   SINGLE PRODUCT  (single-product.php)
───────────────────────────────────────── */
.dm-single-wrapper { background: #faf9f7; }

/* Breadcrumb */
.dm-single-breadcrumb {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  padding: 14px 2.5rem; background: #fff; border-bottom: 0.5px solid #e8e4de;
  font-size: 11px; color: #aaa;
}
.dm-single-breadcrumb a { color: #888; text-decoration: none; transition: color 0.2s; }
.dm-single-breadcrumb a:hover { color: #B85C75; }
.dm-bc-sep    { color: #d0ccc6; }
.dm-bc-cat    { color: #B85C75; font-weight: 600; }
.dm-bc-current{ color: #2c2c2a; font-weight: 500; }

/* Layout principal — imagen | info */
.dm-single-inner {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 0; background: #fff; border-bottom: 0.5px solid #e8e4de;
  align-items: start;
}

/* ── Galería ── */
.dm-single-gallery { padding: 2.5rem; display: flex; flex-direction: column; gap: 12px; }

.dm-single-main-img {
  position: relative; width: 100%; aspect-ratio: 3/4;
  background: #f5f1ed; overflow: hidden;
}
.dm-single-img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.5s cubic-bezier(0.22,1,0.36,1);
}
.dm-single-main-img:hover .dm-single-img { transform: scale(1.03); }

.dm-single-badge {
  position: absolute; top: 14px; left: 14px; background: #B85C75;
  color: #fff; font-size: 9px; font-weight: 700; padding: 4px 10px;
  letter-spacing: 0.1em; z-index: 1;
}
.dm-single-badge.sale { background: #1a1a18; }

/* Thumbnails */
.dm-single-thumbs {
  display: flex; gap: 8px; flex-wrap: wrap;
}
.dm-single-thumb {
  width: 64px; height: 64px; cursor: pointer; overflow: hidden;
  border: 1.5px solid transparent; transition: border-color 0.2s;
  flex-shrink: 0;
}
.dm-single-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dm-single-thumb.active { border-color: #B85C75; }
.dm-single-thumb:hover  { border-color: #B85C75; }

/* ── Info del producto ── */
.dm-single-info {
  padding: 2.5rem 2.5rem 2.5rem 2rem;
  display: flex; flex-direction: column; justify-content: flex-start; gap: 0;
  border-left: 0.5px solid #e8e4de;
  overflow-y: auto;
}

.dm-single-title {
  font-size: 36px; font-weight: 900; line-height: 1.05;
  color: #1a1a18; margin-bottom: 18px;
}

.dm-single-price-wrap {
  display: flex; align-items: baseline; gap: 12px; margin-bottom: 20px;
}
.dm-single-price-old {
  font-size: 16px; color: #bbb; text-decoration: line-through;
}
.dm-single-price {
  font-size: 32px; font-weight: 900; color: #1a1a18;
}
.dm-single-price ins  { text-decoration: none; color: #B85C75; }
.dm-single-price del  { color: #bbb; font-size: 18px; font-weight: 400; margin-right: 8px; }

.dm-single-short-desc {
  font-size: 13px; color: #777; line-height: 1.7;
  margin-bottom: 24px; max-width: 380px;
}
.dm-single-short-desc p { margin: 0 0 8px; }

/* ── Formulario WooCommerce nativo — re-estilizado ── */
.dm-single-form { margin-bottom: 20px; }

/* Cantidad */
.dm-single-form .quantity { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.dm-single-form .qty {
  width: 56px; height: 44px; border: 0.5px solid #d0ccc6;
  text-align: center; font-family: 'Outfit', sans-serif; font-size: 14px; font-weight: 600;
  outline: none; background: #fff; color: #1a1a18;
}
.dm-single-form .qty:focus { border-color: #B85C75; }

/* Botón add to cart */
.dm-single-form button[type="submit"],
.dm-single-form .single_add_to_cart_button {
  background: #B85C75 !important; color: #fff !important;
  border: none !important; border-radius: 0 !important;
  font-family: 'Outfit', sans-serif !important; font-size: 12px !important;
  font-weight: 700 !important; letter-spacing: 0.12em;
  padding: 14px 32px !important; text-transform: uppercase;
  cursor: pointer !important; transition: background 0.2s !important;
  width: 100% !important; max-width: 300px;
}
.dm-single-form button[type="submit"]:hover,
.dm-single-form .single_add_to_cart_button:hover {
  background: #1a1a18 !important;
}

/* Variaciones (variable products): select de atributos */
.dm-single-form .variations { width: 100%; border: none; border-collapse: collapse; margin-bottom: 14px; }
.dm-single-form .variations td,
.dm-single-form .variations th { padding: 0 0 10px; text-align: left; }
.dm-single-form .variations label {
  font-size: 10px; color: #aaa; letter-spacing: 0.1em; text-transform: uppercase;
  font-weight: 700; font-family: 'Outfit', sans-serif; display: block; margin-bottom: 6px;
}
.dm-single-form .variations select {
  border: 0.5px solid #d0ccc6; background: #fff;
  font-family: 'Outfit', sans-serif; font-size: 13px; font-weight: 500; color: #1a1a18;
  padding: 9px 32px 9px 12px; outline: none; cursor: pointer;
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center;
  min-width: 160px;
}
.dm-single-form .variations select:focus { border-color: #B85C75; }
.dm-single-form .reset_variations { font-size: 10px; color: #B85C75; letter-spacing: 0.08em; }

/* Precio de variaciones */
.dm-single-form .woocommerce-variation-price { margin-bottom: 14px; }
.dm-single-form .woocommerce-variation-price .price {
  font-size: 28px; font-weight: 900; color: #1a1a18; font-family: 'Outfit', sans-serif;
}
.dm-single-form .woocommerce-variation-price .price ins  { text-decoration: none; color: #B85C75; }
.dm-single-form .woocommerce-variation-price .price del  { color: #bbb; font-size: 17px; font-weight: 400; }

/* Fila wishlist */
.dm-single-actions-extra { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }

/* Envío */
.dm-single-info .featured-shipping { font-size: 11px; color: #aaa; letter-spacing: 0.04em; }

/* ── Tabs ── */
.dm-single-tabs {
  background: #fff; border-top: 0.5px solid #e8e4de;
  padding: 0 2.5rem 3rem;
}
.dm-tabs-nav {
  display: flex; gap: 0; border-bottom: 0.5px solid #e8e4de; margin-bottom: 2rem;
}
.dm-tab-btn {
  font-family: 'Outfit', sans-serif; font-size: 11px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase; color: #aaa;
  background: transparent; border: none; border-bottom: 2px solid transparent;
  padding: 16px 20px; cursor: pointer; transition: all 0.2s;
  margin-bottom: -1px;
}
.dm-tab-btn:hover { color: #B85C75; }
.dm-tab-btn.active { color: #1a1a18; border-bottom-color: #B85C75; }
.dm-tab-panel { display: none; font-size: 14px; color: #555; line-height: 1.8; max-width: 620px; }
.dm-tab-panel.active { display: block; }
.dm-tab-panel h2 { display: none; } /* WC genera encabezados redundantes */
.dm-tab-panel p  { margin-bottom: 12px; }

/* Reseñas dentro del tab */
.dm-tab-panel #reviews #comments ol.commentlist li { border-bottom: 0.5px solid #e8e4de; padding-bottom: 16px; margin-bottom: 16px; }
.dm-tab-panel .comment-form-rating .stars a { color: #B85C75; }
.dm-tab-panel .form-submit input { background: #B85C75 !important; color: #fff !important; border-radius: 0 !important; font-family: 'Outfit', sans-serif !important; font-weight: 700 !important; letter-spacing: 0.08em; text-transform: uppercase; font-size: 11px !important; padding: 11px 24px !important; cursor: pointer; border: none !important; }
.dm-tab-panel .form-submit input:hover { background: #5F2C3E !important; }

/* ── Relacionados ── */
.dm-related-section {
  background: #faf9f7; padding: 2.5rem 2.5rem 3rem;
  border-top: 0.5px solid #e8e4de;
}
.dm-related-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}

/* ── Ocultar handheld footer bar de Storefront (single product) ── */
.storefront-handheld-footer-bar,
.site-header-cart,
#dm-single-wrapper ~ .storefront-handheld-footer-bar {
  display: none !important;
}

/* ── Single mobile ── */
@media (max-width: 1023px) {
  .dm-single-breadcrumb { padding: 10px 14px; font-size: 10px; }
  .dm-single-inner      { grid-template-columns: 1fr; }
  .dm-single-gallery    { padding: 14px 14px 0; }
  /* Imagen más compacta en mobile para que se vea el precio sin scrollear */
  .dm-single-main-img   { aspect-ratio: 4/3; max-height: 55vw; }
  .dm-single-info       { padding: 20px 16px 32px; border-left: none; border-top: 0.5px solid #e8e4de; }
  .dm-single-title      { font-size: 22px; margin-bottom: 12px; }
  .dm-single-price      { font-size: 24px; }
  .dm-single-price-wrap { margin-bottom: 14px; }
  .dm-single-short-desc { font-size: 13px; max-width: 100%; margin-bottom: 16px; }
  .dm-single-thumbs     { gap: 6px; }
  .dm-single-thumb      { width: 52px; height: 52px; }
  .dm-single-form       { margin-bottom: 14px; }
  .dm-single-form button[type="submit"],
  .dm-single-form .single_add_to_cart_button { max-width: 100%; }
  .dm-single-actions-extra { margin-bottom: 10px; }
  .dm-single-tabs       { padding: 0 14px 2rem; }
  .dm-tab-btn           { padding: 14px 12px; font-size: 10px; }
  .dm-related-section   { padding: 20px 12px 2rem; }
  .dm-related-grid      { grid-template-columns: 1fr 1fr; gap: 10px; }
  .dm-quick-add         { opacity: 1; }
}

/* ─────────────────────────────────────────
   CART  (woocommerce/cart/cart.php)
───────────────────────────────────────── */
.dm-cart-page { background: #faf9f7; min-height: 60vh; width: 100%; }

.dm-cart-header {
  padding: 2rem 2.5rem 1.5rem; background: #fff;
  border-bottom: 0.5px solid #e8e4de;
}

/* Items — estructura de filas */
.dm-cart-form { padding: 0 2.5rem 2rem; }

.dm-cart-items { background: #fff; border: 0.5px solid #e8e4de; margin-top: 2rem; }

.dm-cart-items-head {
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 36px;
  padding: 12px 20px; border-bottom: 0.5px solid #e8e4de;
  font-size: 9px; font-weight: 700; letter-spacing: 0.18em;
  text-transform: uppercase; color: #aaa;
}

.dm-cart-row {
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 36px;
  align-items: center; padding: 16px 20px;
  border-bottom: 0.5px solid #f0ece6; transition: background 0.15s;
}
.dm-cart-row:last-of-type { border-bottom: none; }
.dm-cart-row:hover { background: #faf9f7; }

/* Producto (imagen + nombre) */
.dm-cart-product { display: flex; align-items: center; gap: 14px; }
.dm-cart-img-link { flex-shrink: 0; }
.dm-cart-img {
  width: 70px; height: 90px; object-fit: cover; display: block;
  border: 0.5px solid #e8e4de;
}
.dm-cart-product-name {
  font-size: 13px; font-weight: 600; color: #1a1a1a;
  text-decoration: none; display: block; margin-bottom: 4px; line-height: 1.3;
}
.dm-cart-product-name:hover { color: #B85C75; }
.dm-cart-sku { font-size: 10px; color: #bbb; letter-spacing: 0.06em; }
.woocommerce-cart-form__cart-item .variation { font-size: 11px; color: #888; margin-top: 2px; }
.woocommerce-cart-form__cart-item .variation dt,
.woocommerce-cart-form__cart-item .variation dd { display: inline; }
.woocommerce-cart-form__cart-item .variation dt::after { content: ': '; }
.woocommerce-cart-form__cart-item .variation dd::after { content: ' · '; }

/* Celdas genéricas */
.dm-cart-cell { font-size: 13px; font-weight: 600; color: #1a1a1a; }
.dm-cart-price { color: #888; font-weight: 400; }
.dm-cart-subtotal { color: #B85C75; font-weight: 800; }

/* Quantity input en el carrito */
.dm-cart-qty .quantity { display: flex; align-items: center; gap: 0; }
.dm-cart-qty .qty {
  width: 52px; height: 38px; border: 0.5px solid #d0ccc6;
  text-align: center; font-family: 'Outfit', sans-serif; font-size: 13px;
  font-weight: 600; outline: none; background: #fff; color: #1a1a1a;
}
.dm-cart-qty .qty:focus { border-color: #B85C75; }

/* Eliminar */
.dm-cart-remove-btn {
  width: 26px; height: 26px; border: 0.5px solid #e0dbd5; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; color: #aaa; text-decoration: none; transition: all 0.2s;
  line-height: 1;
}
.dm-cart-remove-btn:hover { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }

/* Acciones (cupón + actualizar) */
.dm-cart-actions {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 20px; border-top: 0.5px solid #e8e4de;
  flex-wrap: wrap; gap: 10px;
}
.dm-cart-coupon { display: flex; gap: 0; }
.dm-coupon-input {
  border: 0.5px solid #d0ccc6; padding: 10px 14px;
  font-family: 'Outfit', sans-serif; font-size: 12px; outline: none;
  background: #fff; color: #1a1a1a; width: 200px;
}
.dm-coupon-input:focus { border-color: #B85C75; }
.dm-coupon-btn {
  background: #1a1a18; color: #fff; border: none; padding: 10px 18px;
  font-family: 'Outfit', sans-serif; font-size: 11px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; transition: background 0.2s;
}
.dm-coupon-btn:hover { background: #B85C75; }
.dm-update-cart {
  background: transparent; color: #888; border: 0.5px solid #d0ccc6;
  padding: 10px 20px; font-family: 'Outfit', sans-serif; font-size: 11px;
  font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  cursor: pointer; transition: all 0.2s;
}
.dm-update-cart:hover { border-color: #1a1a1a; color: #1a1a1a; }

/* Totales (WC renderiza .cart_totals adentro de .dm-cart-collaterals) */
.dm-cart-totals-wrap { padding: 0 2.5rem 3rem; }
.dm-cart-collaterals { display: flex; justify-content: flex-end; }

.cart_totals {
  width: 100%; max-width: 420px;
  background: #fff; border: 0.5px solid #e8e4de;
  padding: 24px;
}
.cart_totals h2 {
  font-size: 14px; font-weight: 800; letter-spacing: 0.08em;
  text-transform: uppercase; color: #1a1a1a; margin-bottom: 18px;
  border-bottom: 0.5px solid #e8e4de; padding-bottom: 12px;
}
.cart_totals table { width: 100%; border-collapse: collapse; margin-bottom: 18px; }
.cart_totals table th,
.cart_totals table td { padding: 10px 0; border-bottom: 0.5px solid #f0ece6; vertical-align: top; }
.cart_totals table th { font-size: 11px; color: #aaa; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; width: 40%; }
.cart_totals table td { font-size: 13px; color: #1a1a1a; font-weight: 600; text-align: right; }
.cart_totals .order-total td { font-size: 20px; font-weight: 900; color: #B85C75; }
.cart_totals .order-total th { color: #1a1a1a; }
.cart_totals table tr:last-child th,
.cart_totals table tr:last-child td { border-bottom: none; }

/* Métodos de envío */
.cart_totals .woocommerce-shipping-destination { font-size: 11px; color: #888; margin-bottom: 8px; }
.cart_totals .shipping-calculator-button { font-size: 11px; color: #B85C75; text-decoration: none; }

/* Botón checkout */
.wc-proceed-to-checkout { margin-top: 4px; }
.wc-proceed-to-checkout .checkout-button {
  display: block; width: 100%; text-align: center;
  background: #B85C75 !important; color: #fff !important; border: none !important;
  padding: 16px !important; font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important; font-weight: 800 !important; letter-spacing: 0.15em;
  text-transform: uppercase; cursor: pointer; transition: background 0.2s !important;
  text-decoration: none; border-radius: 0 !important;
}
.wc-proceed-to-checkout .checkout-button:hover { background: #1a1a18 !important; }

/* Cart mobile */
@media (max-width: 1023px) {
  .dm-cart-form        { padding: 0 14px 1.5rem; }
  .dm-cart-totals-wrap { padding: 0 14px 2rem; }
  .dm-cart-items-head  { display: none; }
  .dm-cart-row         { grid-template-columns: 2fr 1fr; grid-template-rows: auto auto auto; gap: 8px 0; padding: 14px; }
  .dm-cart-product     { grid-column: 1 / -1; }
  .dm-cart-price       { font-size: 11px; color: #888; align-self: center; }
  .dm-cart-subtotal    { font-size: 15px; font-weight: 900; }
  .dm-cart-remove      { position: absolute; top: 14px; right: 14px; }
  .dm-cart-row         { position: relative; }
  .dm-cart-actions     { flex-direction: column; align-items: stretch; padding: 12px 14px; }
  .dm-coupon-input     { width: 100%; flex: 1; }
  .dm-cart-collaterals { justify-content: stretch; }
  .cart_totals         { max-width: 100%; width: 100%; }
}

/* ─────────────────────────────────────────
   CHECKOUT  (woocommerce/checkout/form-checkout.php)
───────────────────────────────────────── */
.dm-checkout-page { background: #faf9f7; width: 100%; }

/* WooCommerce desktop checkout still ships legacy float/48% width rules for
   #customer_details, #order_review_heading and #order_review. Reset them so
   the custom grid controls the layout instead of nested half-width columns. */
.woocommerce-checkout form.checkout,
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  clear: none !important;
}

/* Grid principal: datos | resumen */
.dm-checkout-grid {
  display: grid; grid-template-columns: 1fr 420px;
  gap: 0; align-items: start; padding: 2rem 2.5rem 3rem;
}

/* Secciones */
.dm-checkout-section {
  background: #fff; border: 0.5px solid #e8e4de;
  padding: 24px; margin-bottom: 16px;
}
.dm-checkout-section-title {
  font-size: 13px; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; color: #1a1a1a; margin-bottom: 20px;
  padding-bottom: 12px; border-bottom: 0.5px solid #e8e4de;
}

/* Columna derecha */
.dm-checkout-right { padding-left: 24px; }
.dm-order-review-wrap { position: sticky; top: 20px; }
.dm-checkout-left,
.dm-checkout-right { min-width: 0; }

/* WC form fields re-estilizados — alto specificity con body class */
.woocommerce-checkout .dm-checkout-form .form-row,
.dm-checkout-form .form-row { margin-bottom: 14px; }

.woocommerce-checkout .dm-checkout-form .form-row label,
.dm-checkout-form .form-row label {
  display: block; font-size: 10px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: #888;
  margin-bottom: 6px;
}
.woocommerce-checkout .dm-checkout-form .form-row label .required,
.dm-checkout-form .form-row label .required { color: #B85C75; }

.woocommerce-checkout .dm-checkout-form .form-row input[type="text"],
.woocommerce-checkout .dm-checkout-form .form-row input[type="email"],
.woocommerce-checkout .dm-checkout-form .form-row input[type="tel"],
.woocommerce-checkout .dm-checkout-form .form-row input[type="number"],
.woocommerce-checkout .dm-checkout-form .form-row input[type="password"],
.woocommerce-checkout .dm-checkout-form .form-row select,
.woocommerce-checkout .dm-checkout-form .form-row textarea,
.dm-checkout-form .form-row input[type="text"],
.dm-checkout-form .form-row input[type="email"],
.dm-checkout-form .form-row input[type="tel"],
.dm-checkout-form .form-row input[type="number"],
.dm-checkout-form .form-row input[type="password"],
.dm-checkout-form .form-row select,
.dm-checkout-form .form-row textarea {
  width: 100% !important; border: 0.5px solid #d0ccc6 !important;
  padding: 11px 14px !important;
  font-family: 'Outfit', sans-serif !important; font-size: 13px !important;
  color: #1a1a1a !important; background: #fff !important;
  outline: none !important; transition: border-color 0.2s;
  border-radius: 0 !important; appearance: none; -webkit-appearance: none;
  box-shadow: none !important;
}
.woocommerce-checkout .dm-checkout-form .form-row input:focus,
.woocommerce-checkout .dm-checkout-form .form-row select:focus,
.woocommerce-checkout .dm-checkout-form .form-row textarea:focus,
.dm-checkout-form .form-row input:focus,
.dm-checkout-form .form-row select:focus,
.dm-checkout-form .form-row textarea:focus { border-color: #B85C75 !important; }
.dm-checkout-form .form-row textarea { height: 90px; resize: vertical; }

/* Select flecha */
.woocommerce-checkout .dm-checkout-form .form-row select,
.dm-checkout-form .form-row select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 12px center !important;
  padding-right: 32px !important;
}

/* Títulos de sección WC (h3 generados por WC) */
.woocommerce-checkout .dm-checkout-form h3,
.woocommerce-checkout #customer_details h3,
.dm-checkout-form h3 {
  font-size: 13px; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; color: #1a1a1a; margin-bottom: 20px;
  padding-bottom: 12px; border-bottom: 0.5px solid #e8e4de;
}

/* Grids inline (nombre/apellido, etc.) */
.woocommerce-checkout .dm-checkout-form .col2-set,
.dm-checkout-form .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dm-checkout-form .col2-set .col-1,
.dm-checkout-form .col2-set .col-2 { min-width: 0; }

/* Validation states */
.woocommerce-checkout .dm-checkout-form .form-row.woocommerce-validated input.input-text { border-color: #4caf50 !important; }
.woocommerce-checkout .dm-checkout-form .form-row.woocommerce-invalid input.input-text { border-color: #c0392b !important; }

/* Métodos de pago */
#payment { background: #fff; border: 0.5px solid #e8e4de; padding: 24px; }
#payment .wc_payment_methods { list-style: none; margin-bottom: 16px; }
#payment .wc_payment_methods li { padding: 12px 0; border-bottom: 0.5px solid #f0ece6; }
#payment .wc_payment_methods li:last-child { border-bottom: none; }
#payment .wc_payment_methods label {
  font-size: 13px; font-weight: 600; color: #1a1a1a; cursor: pointer;
  display: flex; align-items: center; gap: 10px;
}
#payment .wc_payment_methods input[type="radio"] { accent-color: #B85C75; }
#payment .payment_box { background: #faf9f7; padding: 12px 14px; margin-top: 10px; font-size: 12px; color: #888; }

/* Botón de confirmación */
#payment #place_order {
  display: block; width: 100%; text-align: center;
  background: #B85C75 !important; color: #fff !important; border: none !important;
  padding: 18px !important; font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important; font-weight: 800 !important; letter-spacing: 0.15em;
  text-transform: uppercase; cursor: pointer; transition: background 0.2s !important;
  border-radius: 0 !important; margin-top: 20px;
}
#payment #place_order:hover { background: #1a1a18 !important; }

/* Resumen del pedido (WC #order_review) */
#order_review table { width: 100%; border-collapse: collapse; margin-bottom: 14px; }
#order_review table th,
#order_review table td { padding: 10px 0; border-bottom: 0.5px solid #f0ece6; font-size: 12px; vertical-align: middle; }
#order_review table th { color: #aaa; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700; }
#order_review .product-name { font-weight: 600; color: #1a1a1a; }
#order_review .product-total { font-weight: 700; color: #1a1a1a; text-align: right; }
#order_review .order-total td { font-size: 18px; font-weight: 900; color: #B85C75; text-align: right; }
#order_review .order-total th { color: #1a1a1a; font-size: 11px; }

/* Privacidad */
.woocommerce-privacy-policy-text { font-size: 11px; color: #aaa; margin-top: 14px; line-height: 1.6; }
.woocommerce-privacy-policy-text a { color: #B85C75; text-decoration: underline; }

/* Checkout mobile */
@media (max-width: 1023px) {
  .dm-checkout-grid  { grid-template-columns: 1fr; padding: 14px 14px 2rem; gap: 0; }
  .dm-checkout-right { padding-left: 0; }
  .dm-order-review-wrap { position: static; }
  .dm-checkout-form .col2-set { grid-template-columns: 1fr; }
  .dm-checkout-section { padding: 16px; }
  #payment { padding: 16px; }
}

/* ─────────────────────────────────────────
   STOREFRONT / WC OVERRIDES (high specificity)
   Storefront aplica estilos fuertes a input.input-text y select.
   Necesitamos beats esos con el body class .woocommerce-checkout
───────────────────────────────────────── */
.woocommerce-checkout input.input-text,
.woocommerce-checkout select,
.woocommerce-checkout textarea {
  border: 0.5px solid #d0ccc6 !important;
  border-radius: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  color: #1a1a1a !important;
  background: #fff !important;
  box-shadow: none !important;
  outline: none !important;
}
.woocommerce-checkout input.input-text:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus {
  border-color: #B85C75 !important;
  box-shadow: none !important;
}

/* Storefront override para carrito */
.woocommerce-cart .dm-cart-qty .qty,
.woocommerce-cart input.input-text {
  border: 0.5px solid #d0ccc6 !important;
  border-radius: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  box-shadow: none !important;
}

/* Storefront override: quita fondo y borde azul de WC notices */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-info {
  border-top-color: #B85C75 !important;
  background: #fff !important;
  color: #1a1a1a !important;
}
.woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-error {
  border-top-color: #c0392b !important;
}

/* Quitar el fondo gris que Storefront pone al woocommerce-checkout */
.woocommerce-checkout #customer_details {
  background: transparent;
}

/* Aseguramos que el padding del sidebar no aplaste la nav */
.sidebar { overflow: hidden; }
.nav-item { white-space: nowrap; overflow: hidden; }
