:root {
    --bg-base: #0a0a16;
    --bg-card: #12112a;
    --bg-card2: #1a1835;
    --pink: #ED93B1;
    --pink-dim: #c0688a;
    --pink-glow: rgba(237,147,177,0.15);
    --lila: #AFA9EC;
    --lila-glow: rgba(175,169,236,0.12);
    --white: #ffffff;
    --text-muted: rgba(255,255,255,0.45);
    --text-mid: rgba(255,255,255,0.7);
    --border: rgba(175,169,236,0.18);
    --border-pink: rgba(237,147,177,0.25);
    --font-display: 'Shippori Mincho', serif;
    --font-body: 'DM Sans', sans-serif;
  }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  body { background: var(--bg-base); color: var(--white); font-family: var(--font-body); font-weight: 300; overflow-x: hidden; }
  body::before { content: ''; position: fixed; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E"); pointer-events: none; z-index: 0; opacity: 0.5; }
  .blob { position: fixed; border-radius: 50%; filter: blur(80px); pointer-events: none; z-index: 0; animation: drift 12s ease-in-out infinite alternate; }
  .blob-1 { width: 500px; height: 500px; background: rgba(237,147,177,0.07); top: -100px; right: -100px; }
  .blob-2 { width: 400px; height: 400px; background: rgba(175,169,236,0.06); bottom: 200px; left: -150px; animation-delay: -4s; }
  @keyframes drift { from { transform: translate(0,0) scale(1); } to { transform: translate(30px,20px) scale(1.05); } }
  @keyframes fadeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }

  /* NAV */
  .proxysama-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 0 48px; height: 64px; background: rgba(10,10,22,0.82); backdrop-filter: blur(20px); border-bottom: 0.5px solid var(--border); }
  .nav-logo { font-family: var(--font-display); font-size: 20px; font-weight: 800; letter-spacing: 0.05em; background: linear-gradient(135deg, var(--pink) 0%, var(--lila) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; text-decoration: none; cursor: pointer; }
  .nav-links { display: flex; gap: 32px; list-style: none; }
  .nav-links a { font-size: 13px; font-weight: 400; color: var(--text-mid); text-decoration: none; letter-spacing: 0.06em; text-transform: uppercase; transition: color 0.2s; }
  .nav-links a:hover { color: var(--pink); }
  .nav-right { display: flex; align-items: center; gap: 16px; }
  .nav-cart { width: 36px; height: 36px; border: 0.5px solid var(--border-pink); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--pink); cursor: pointer; transition: background 0.2s; position: relative; text-decoration: none; }
  .nav-cart:hover { background: var(--pink-glow); }
  .nav-cart svg { width: 16px; height: 16px; }
  .nav-cart-badge { position: absolute; top: -5px; right: -5px; min-width: 16px; height: 16px; padding: 0 3px; background: var(--pink); color: var(--bg-base); font-family: var(--font-body); font-size: 10px; font-weight: 700; line-height: 1; border-radius: 8px; pointer-events: none; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; }
  /* Botón lupa en el nav */
  .nav-search-btn { width: 36px; height: 36px; border: 0.5px solid var(--border); border-radius: 50%; display: flex; align-items: center; justify-content: center; background: transparent; cursor: pointer; color: var(--text-mid); transition: color 0.2s, border-color 0.2s, background 0.2s; padding: 0; }
  .nav-search-btn:hover { color: var(--pink); border-color: var(--border-pink); background: var(--pink-glow); }
  .nav-search-btn svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; }

  /* ── NAV USUARIO ──────────────────────────────────────────────────────────── */
  .nav-user { position: relative; }
  .nav-user-btn { width: 36px; height: 36px; border: 0.5px solid var(--border); border-radius: 50%; display: flex; align-items: center; justify-content: center; background: transparent; cursor: pointer; color: var(--text-mid); transition: color 0.2s, border-color 0.2s, background 0.2s; padding: 0; }
  .nav-user-btn:hover,
  .nav-user-btn.is-active { color: var(--lila); border-color: rgba(175,169,236,0.4); background: rgba(175,169,236,0.08); }
  .nav-user-btn--loggedin { color: var(--lila); border-color: rgba(175,169,236,0.4); background: rgba(175,169,236,0.08); }
  .nav-user-btn svg { width: 16px; height: 16px; }
  .nav-user-dropdown { position: absolute; top: calc(100% + 10px); right: 0; min-width: 172px; background: #16142a; border: 0.5px solid var(--border); border-radius: 12px; padding: 6px; display: flex; flex-direction: column; gap: 2px; opacity: 0; pointer-events: none; transform: translateY(-6px); transition: opacity 0.18s, transform 0.18s; z-index: 200; }
  .nav-user-dropdown.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
  .nav-user-greeting { font-size: 12px; color: var(--lila); padding: 6px 10px 4px; font-weight: 600; letter-spacing: 0.03em; white-space: nowrap; }
  .nav-user-sep { height: 0.5px; background: var(--border); margin: 4px 2px; }
  .nav-user-item { font-size: 13px; color: var(--text-mid); text-decoration: none; padding: 8px 10px; border-radius: 8px; transition: background 0.15s, color 0.15s; display: block; white-space: nowrap; }
  .nav-user-item:hover { background: rgba(255,255,255,0.05); color: var(--white); }
  .nav-user-item--register { color: var(--pink); }
  .nav-user-item--register:hover { background: var(--pink-glow); color: var(--pink); }
  .nav-user-item--logout { color: #555370; }
  .nav-user-item--logout:hover { background: rgba(255,255,255,0.04); color: var(--text-mid); }

  /* ── NAV HAMBURGER + MOBILE MENU ─────────────────────────────────────────── */
  .nav-hamburger { display: none; width: 36px; height: 36px; background: transparent; border: 0.5px solid var(--border); border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; color: var(--text-mid); padding: 0; flex-shrink: 0; transition: color 0.2s, border-color 0.2s, background 0.2s; }
  .nav-hamburger:hover, .nav-hamburger.is-open { color: var(--pink); border-color: var(--border-pink); background: var(--pink-glow); }
  .nav-hamburger svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; }

  .nav-mobile-menu { position: fixed; top: 64px; left: 0; right: 0; background: rgba(10,10,22,0.97); backdrop-filter: blur(20px); border-bottom: 0.5px solid var(--border); z-index: 99; overflow: hidden; max-height: 0; transition: max-height 0.3s cubic-bezier(0.4,0,0.2,1); }
  .nav-mobile-menu.is-open { max-height: 480px; }
  .nav-mobile-menu ul { list-style: none; padding: 4px 0 8px; margin: 0; }
  .nav-mobile-menu li a { display: block; padding: 14px 24px; font-size: 13px; font-weight: 400; color: var(--text-mid); text-decoration: none; letter-spacing: 0.08em; text-transform: uppercase; border-bottom: 0.5px solid rgba(175,169,236,0.06); transition: color 0.15s, background 0.15s; }
  .nav-mobile-menu li:last-child a { border-bottom: none; }
  .nav-mobile-menu li a:hover { color: var(--pink); background: rgba(237,147,177,0.04); }
  .nav-mobile-menu .nav-link-preventas { color: var(--pink); }

  @media (max-width: 1080px) {
    .nav-links { display: none; }
    .nav-hamburger { display: flex; }
  }

  /* Overlay de búsqueda */
  .ps-search-overlay { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 24px; opacity: 0; pointer-events: none; transition: opacity 0.22s ease; }
  .ps-search-overlay.is-open { opacity: 1; pointer-events: all; }
  .ps-search-overlay-bg { position: absolute; inset: 0; background: rgba(10,10,22,0.88); backdrop-filter: blur(12px); }
  .ps-search-box { position: relative; z-index: 1; width: 100%; max-width: 600px; transform: translateY(16px); transition: transform 0.22s ease; }
  .ps-search-overlay.is-open .ps-search-box { transform: translateY(0); }
  .ps-search-label { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 12px; }
  .ps-search-form { display: flex; align-items: center; gap: 0; background: var(--bg-card); border: 0.5px solid var(--border); border-radius: 6px; overflow: hidden; transition: border-color 0.2s; }
  .ps-search-form:focus-within { border-color: var(--lila); }
  .ps-search-input { flex: 1; background: transparent; border: none; outline: none; color: var(--white); font-family: var(--font-body); font-size: 18px; font-weight: 300; padding: 18px 20px; caret-color: var(--pink); }
  .ps-search-input::placeholder { color: var(--text-muted); }
  .ps-search-submit { background: transparent; border: none; border-left: 0.5px solid var(--border); padding: 0 20px; height: 58px; cursor: pointer; color: var(--text-muted); display: flex; align-items: center; justify-content: center; transition: color 0.2s, background 0.2s; }
  .ps-search-submit:hover { color: var(--pink); background: var(--pink-glow); }
  .ps-search-submit svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; }
  .ps-search-hint { font-size: 11px; color: var(--text-muted); margin-top: 12px; letter-spacing: 0.04em; }
  .ps-search-hint kbd { background: var(--bg-card); border: 0.5px solid var(--border); border-radius: 3px; padding: 1px 6px; font-family: var(--font-body); font-size: 10px; color: var(--text-mid); }

  /* TICKER */
  .ticker-wrap { position: relative; z-index: 1; overflow: hidden; padding: 11px 0; border-bottom: 0.5px solid var(--border); background: rgba(237,147,177,0.04); margin-top: 64px; }
  .ticker-track { display: flex; animation: ticker 28s linear infinite; width: max-content; }
  .ticker-item { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); padding: 0 32px; white-space: nowrap; }
  .ticker-item span { color: var(--pink); margin-right: 8px; }
  @keyframes ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }

  /* HERO */
  .hero { position: relative; z-index: 1; min-height: 100vh; display: flex; align-items: center; padding: 0 48px; overflow: hidden; }
  .hero-content { position: relative; z-index: 3; max-width: 500px; animation: fadeUp 0.9s cubic-bezier(0.16,1,0.3,1) both; }
  .hero-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--pink); margin-bottom: 24px; }
  .hero-eyebrow::before { content: ''; display: block; width: 24px; height: 0.5px; background: var(--pink); }
  .hero-title { font-family: var(--font-display); font-size: clamp(52px, 7vw, 82px); font-weight: 800; line-height: 1.0; letter-spacing: -0.02em; margin-bottom: 24px; }
  .hero-sub { font-size: 16px; line-height: 1.65; color: var(--text-mid); max-width: 400px; margin-bottom: 40px; }
  .hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
  .btn-primary { display: inline-flex; align-items: center; gap: 8px; background: var(--pink); color: #1a0a1e; font-family: var(--font-body); font-size: 13px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; padding: 14px 28px; border-radius: 3px; text-decoration: none; cursor: pointer; border: none; transition: transform 0.15s, box-shadow 0.15s; }
  .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(237,147,177,0.35); }
  .btn-secondary { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: var(--lila); font-family: var(--font-body); font-size: 13px; font-weight: 400; letter-spacing: 0.06em; text-transform: uppercase; padding: 13px 28px; border-radius: 3px; border: 0.5px solid var(--border); text-decoration: none; cursor: pointer; transition: border-color 0.2s, background 0.2s; }
  .btn-secondary:hover { border-color: var(--lila); background: var(--lila-glow); }

  /* Falling petals */
  .petal { position: absolute; border-radius: 50% 0 50% 0; animation: petalFall linear infinite; pointer-events: none; z-index: 1; }
  @keyframes petalFall { 0% { transform: translateY(-20px) rotate(0deg) translateX(0); opacity: 0; } 10% { opacity: 1; } 50% { transform: translateY(45vh) rotate(180deg) translateX(30px); } 90% { opacity: 0.5; } 100% { transform: translateY(100vh) rotate(360deg) translateX(-10px); opacity: 0; } }

  /* STATS */
  .stats-strip { position: relative; z-index: 1; border-top: 0.5px solid var(--border); border-bottom: 0.5px solid var(--border); display: flex; }
  .stat-item { flex: 1; padding: 28px 32px; border-right: 0.5px solid var(--border); }
  .stat-item:last-child { border-right: none; }
  .stat-number { font-family: var(--font-display); font-size: 32px; font-weight: 800; color: var(--pink); display: block; margin-bottom: 4px; }
  .stat-label { font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); }


  /* SECTIONS */
  section { position: relative; z-index: 1; padding: 96px 48px; }
  .section-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 48px; }
  .section-label { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--pink); margin-bottom: 10px; }
  .section-title { font-family: var(--font-display); font-size: clamp(28px,4vw,42px); font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; background: linear-gradient(135deg, var(--white) 0%, var(--lila) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; padding-bottom: 0.1em; }
  .see-all { font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lila); text-decoration: none; border-bottom: 0.5px solid var(--border); padding-bottom: 3px; transition: color 0.2s, border-color 0.2s; white-space: nowrap; margin-bottom: 6px; }
  .see-all:hover { color: var(--white); border-color: var(--white); }

  /* CATEGORIES */
  /* Desktop ancho (>1100px): 6 en una fila; desktop chico/tablet: 3×2; mobile: 2×3 */
  .categories-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
  .cat-card { border: 0.5px solid var(--border); border-radius: 4px; padding: 32px 24px; background: var(--bg-card); cursor: pointer; text-decoration: none; display: flex; flex-direction: column; gap: 12px; transition: border-color 0.2s, background 0.2s, transform 0.2s; }
  .cat-card:hover { border-color: var(--pink); background: rgba(26,24,53,0.9); transform: translateY(-4px); }
  .cat-icon { font-size: 28px; line-height: 1; }
  .cat-name { font-family: var(--font-display); font-size: 18px; font-weight: 600; color: var(--white); }
  .cat-count { font-size: 12px; color: var(--text-muted); letter-spacing: 0.06em; }
  .cat-arrow { margin-top: auto; font-size: 18px; color: var(--pink); opacity: 0; transform: translateX(-6px); transition: opacity 0.2s, transform 0.2s; }
  .cat-card:hover .cat-arrow { opacity: 1; transform: translateX(0); }
  /* Tarjeta Preventas — igual que las demás pero con nombre en gradiente */
  .cat-card--preventas { border-color: var(--border-pink); }
  .cat-card--preventas .cat-name { background: linear-gradient(90deg, var(--pink) 0%, var(--lila) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

  /* Pills de subcategorías en páginas de archivo */
  .proxysama-subcats { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; padding-bottom: 24px; border-bottom: 0.5px solid var(--border); }
  .proxysama-subcats__label { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); margin-right: 4px; }
  .proxysama-subcats__pill { font-size: 12px; color: var(--text-mid); text-decoration: none; border: 0.5px solid var(--border); padding: 5px 14px; border-radius: 20px; letter-spacing: 0.04em; transition: border-color 0.2s, color 0.2s, background 0.2s; }
  .proxysama-subcats__pill:hover { border-color: var(--lila); color: var(--lila); }
  .proxysama-subcats__pill--active { border-color: var(--pink); color: var(--pink); background: var(--pink-dim); }
  .proxysama-subcats__pill--all { border-color: var(--border); }

  /* Sub-fase 6a — Maid banner en páginas de categoría y tienda */
  /* El banner cae como primer hijo de .wp-block-woocommerce-product-collection
     (así dispara woocommerce_before_shop_loop en WC Blocks). height:0 +
     overflow:visible en el contenedor permite que la imagen se extienda
     hacia arriba sin ocupar espacio en el flujo.
     !important necesario: TT4/WP global styles tiene img { height: auto }
     que sobreescribe valores sin !important.
     z-index omitido para no tapar controles de ordenamiento ni título. */
  .ps-cat-banner {
    position: relative;
    height: 0;
    overflow: visible;
    pointer-events: none;
  }
  .ps-cat-banner__maid {
    /* position: fixed → acompaña el scroll, siempre visible en el borde derecho.
       right: 0 = borde del viewport (fixed no necesita el calc de alignwide).
       --ps-maid-fixed-top: calculado por JS como main.getBoundingClientRect().top
       (= altura del nav ≈ 96px). height llena el resto del viewport desde ahí. */
    position: fixed;
    right: 0;
    top: var(--ps-maid-fixed-top, 96px);
    height: calc(100vh - var(--ps-maid-fixed-top, 96px)) !important;
    max-height: none !important;
    width: auto !important;
    display: block;
    pointer-events: none;
  }
  /* Evitar que el bloque de productos recorte la imagen hacia arriba */
  .wp-block-woocommerce-product-collection:has(.ps-cat-banner) {
    overflow: visible !important;
  }
  @media (max-width: 900px) {
    .ps-cat-banner { display: none; }
  }


  .products-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
  .product-card { border: 0.5px solid var(--border); border-radius: 4px; overflow: hidden; background: var(--bg-card); cursor: pointer; transition: border-color 0.2s, transform 0.2s; display: flex; flex-direction: column; }
  .product-card:hover { border-color: var(--pink-dim); transform: translateY(-4px); }
  .product-img { width: 100%; aspect-ratio: 3/4; background: var(--bg-card2); display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
  .product-img::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, rgba(237,147,177,0.07) 0%, transparent 65%); }
  .product-img-icon { font-size: 52px; opacity: 0.3; position: relative; z-index: 1; }
  .product-badge { position: absolute; top: 12px; left: 12px; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; padding: 4px 10px; border-radius: 2px; font-weight: 500; }
  .badge-new { background: var(--pink); color: #1a0a1e; }
  .badge-stock { background: rgba(175,169,236,0.15); color: var(--lila); border: 0.5px solid rgba(175,169,236,0.3); }
  .product-info { padding: 16px; display: flex; flex-direction: column; flex: 1; align-items: center; text-align: center; }
  .product-maker { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lila); margin-bottom: 6px; min-height: 1.5em; }
  /* Altura fija = exactamente 2 líneas → todos los títulos ocupan el mismo espacio */
  .product-name { font-size: 13px; font-weight: 400; color: var(--text-mid); line-height: 1.45; margin-bottom: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; height: calc(1.45em * 2); }
  /* margin-top: auto empuja el bloque precio+botón siempre al fondo */
  .product-prices { display: flex; align-items: baseline; justify-content: center; gap: 8px; margin-top: auto; padding-top: 14px; }
  .price-ars { font-family: var(--font-display); font-size: 17px; font-weight: 600; color: var(--white); }
  .price-usd { font-size: 11px; color: var(--text-muted); }
  .product-add { margin-top: 12px; width: 100%; background: transparent; border: 0.5px solid var(--border-pink); color: var(--pink); font-family: var(--font-body); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; padding: 9px; border-radius: 2px; cursor: pointer; transition: background 0.2s, color 0.2s; }
  .product-add:hover { background: var(--pink); color: #1a0a1e; }

  /* SKELETON — Destacados homepage */
  @keyframes skeletonShimmer {
    0%   { background-position: -400px 0; }
    100% { background-position:  400px 0; }
  }
  .product-skeleton { pointer-events: none; }
  .skeleton-img { width: 100%; height: 100%; position: absolute; inset: 0; border-radius: 0; }
  .skeleton-img,
  .skeleton-line {
    background: linear-gradient(90deg, var(--bg-card2) 25%, rgba(175,169,236,0.07) 50%, var(--bg-card2) 75%);
    background-size: 800px 100%;
    animation: skeletonShimmer 1.6s infinite linear;
  }
  .skeleton-line { border-radius: 2px; margin-bottom: 8px; }
  .skeleton-maker  { height: 10px; width: 45%; margin-bottom: 10px; }
  .skeleton-name   { height: 13px; width: 90%; }
  .skeleton-name-short { height: 13px; width: 60%; margin-bottom: 14px; }
  .skeleton-price  { height: 17px; width: 40%; margin-top: auto; margin-bottom: 12px; }
  .skeleton-btn    { height: 32px; width: 100%; margin-bottom: 0; }

  /* HOW IT WORKS */
  .how-section { background: var(--bg-card); border-top: 0.5px solid var(--border); border-bottom: 0.5px solid var(--border); }
  .how-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--border); border: 0.5px solid var(--border); border-radius: 4px; overflow: hidden; margin-top: 48px; }
  .how-step { background: var(--bg-card); padding: 40px 32px; display: flex; flex-direction: column; gap: 14px; }
  .how-num { font-family: var(--font-display); font-size: 48px; font-weight: 800; color: var(--border); line-height: 1; }
  .how-title { font-size: 15px; font-weight: 500; color: var(--white); }
  .how-desc { font-size: 13px; line-height: 1.6; color: var(--text-muted); }

  /* FOOTER */
  footer { position: relative; z-index: 1; padding: 64px 48px 40px; border-top: 0.5px solid var(--border); overflow: hidden; }
  #footer-petals { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
  .footer-petal { position: absolute; top: -12px; border-radius: 50% 0 50% 0; animation: footerPetalFall linear infinite; pointer-events: none; }
  @keyframes footerPetalFall {
    0%   { transform: translateY(0)     translateX(0)                    rotate(0deg);   opacity: 0; }
    8%   { opacity: 1; }
    60%  { transform: translateY(160px) translateX(calc(var(--drift)))   rotate(200deg); opacity: 0.45; }
    100% { transform: translateY(260px) translateX(calc(var(--drift) * 1.3)) rotate(360deg); opacity: 0; }
  }
  .footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 48px; }
  .footer-brand .nav-logo { display: inline-block; margin-bottom: 16px; font-size: 22px; background: linear-gradient(135deg, var(--pink) 0%, var(--lila) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
  .footer-brand p { font-size: 13px; line-height: 1.65; color: var(--text-muted); max-width: 260px; }
  .footer-col h4 { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 20px; }
  .footer-col ul { list-style: none; }
  .footer-col li { margin-bottom: 12px; }
  .footer-col a { font-size: 13px; color: var(--text-mid); text-decoration: none; transition: color 0.2s; }
  .footer-col a:hover { color: var(--pink); }
  .footer-bottom { display: flex; align-items: center; justify-content: space-between; border-top: 0.5px solid var(--border); padding-top: 32px; font-size: 12px; color: var(--text-muted); }
  .social-links { display: flex; gap: 12px; }
  .social-link { width: 32px; height: 32px; border: 0.5px solid var(--border); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; text-decoration: none; color: var(--text-mid); transition: border-color 0.2s, color 0.2s, background 0.2s; }
  .social-link:hover { border-color: var(--pink); color: var(--pink); background: var(--pink-glow); }
  /* ─── RESPONSIVE DESKTOP CHICO + TABLET ────────────────────────────────── */
  @media (max-width: 1400px) and (min-width: 769px) {
    .categories-grid { grid-template-columns: repeat(3, 1fr); }
  }

  /* ─── RESPONSIVE MOBILE ──────────────────────────────────────────────────── */
  @media (max-width: 768px) {

    /* NAV */
    .proxysama-nav { padding: 0 20px; height: 56px; }
    .nav-right { gap: 10px; }
    .nav-mobile-menu { top: 56px; }

    /* TICKER */
    .ticker-wrap { margin-top: 56px; }

    /* HERO */
    .hero { padding: 80px 24px 48px; min-height: auto; align-items: flex-start; padding-top: 100px; }
    .hero-content { max-width: 100%; }
    .hero-title { font-size: clamp(38px, 10vw, 52px); }
    .hero-sub { font-size: 14px; }
    /* Ocultar la maid en mobile para que no tape el texto */
    .hero-maid { display: none !important; }
    /* Ocultar el árbol sakura en mobile */
    .hero > svg { display: none; }

    /* STATS */
    .stats-strip { flex-wrap: wrap; }
    .stat-item { flex: 1 1 50%; border-right: none; border-bottom: 0.5px solid var(--border); padding: 20px 24px; }
    .stat-item:nth-child(odd) { border-right: 0.5px solid var(--border); }
    .stat-number { font-size: 26px; }

    /* SECTIONS */
    section { padding: 56px 24px; }
    .section-header { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 32px; }
    .see-all { align-self: flex-start; }

    /* CATEGORIES */
    .categories-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .cat-card { padding: 24px 18px; }    .cat-name { font-size: 16px; }

    /* PRODUCTS */
    .products-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .product-info { padding: 12px; }
    .product-name { font-size: 12px; height: calc(1.45em * 2); }
    .price-ars { font-size: 15px; }

    /* HOW IT WORKS */
    .how-grid { grid-template-columns: 1fr 1fr; }
    .how-step { padding: 28px 20px; }
    .how-num { font-size: 36px; }

    /* FOOTER */
    footer { padding: 48px 24px 32px; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
    .footer-bottom { flex-direction: column; align-items: flex-start; gap: 16px; }
  }

  @media (max-width: 420px) {
    /* Pantallas muy chicas — un solo producto por fila */
    .products-grid { grid-template-columns: 1fr 1fr; }
    .categories-grid { grid-template-columns: 1fr 1fr; }
    .how-grid { grid-template-columns: 1fr; }
    .footer-top { grid-template-columns: 1fr; }
    .hero-title { font-size: 36px; }
    .hero-actions { flex-direction: column; }
    .btn-primary, .btn-secondary { width: 100%; justify-content: center; }
  }

  /* ─── WOOCOMMERCE — Estilo consistente con el tema ──────────────────────── */

  /* Ocultar el header nativo del tema padre (Twenty Twenty-Four FSE) en páginas WooCommerce.
     El FSE renderiza <header class="wp-block-template-part"> — apuntamos al tag header. */
  .proxysama-woo-page header.wp-block-template-part,
  .proxysama-woo-page .wp-block-template-part[class*="header"],
  .proxysama-woo-page .site-header {
    display: none !important;
    visibility: hidden !important;
    max-height: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Compensar el nav fijo custom */
  .proxysama-woo-page .wp-site-blocks {
    padding-top: 64px !important;
    background: var(--bg-base) !important;
  }

  /* Fondo general */
  .proxysama-woo-page,
  body.woocommerce,
  body.woocommerce-page {
    background: var(--bg-base) !important;
    color: var(--white);
  }

  /* ── Breadcrumb ──────────────────────────────────────────────────────────── */
  .woocommerce .woocommerce-breadcrumb,
  .woocommerce-page .woocommerce-breadcrumb {
    color: var(--text-muted);
    font-size: 12px;
    letter-spacing: 0.06em;
    background: transparent;
    padding: 16px 0 8px;
    margin-bottom: 0;
  }
  .woocommerce .woocommerce-breadcrumb a {
    color: var(--lila);
    text-decoration: none;
    transition: color 0.2s;
  }
  .woocommerce .woocommerce-breadcrumb a:hover {
    color: var(--pink);
  }

  /* ── Título del producto ─────────────────────────────────────────────────── */
  .woocommerce div.product h1.product_title {
    color: var(--white) !important;
    font-family: var(--font-display);
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin-bottom: 16px;
  }

  /* ── Precio ──────────────────────────────────────────────────────────────── */
  .woocommerce div.product p.price,
  .woocommerce div.product span.price {
    color: var(--pink) !important;
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
  }
  .woocommerce div.product p.price ins,
  .woocommerce div.product span.price ins {
    text-decoration: none;
    color: var(--pink) !important;
  }
  .woocommerce div.product p.price del {
    color: var(--text-muted) !important;
    font-size: 18px;
  }

  /* ── Stock ───────────────────────────────────────────────────────────────── */
  .woocommerce div.product .stock {
    color: var(--lila);
    font-size: 13px;
    letter-spacing: 0.04em;
  }

  /* ── Descripción corta ───────────────────────────────────────────────────── */
  .woocommerce div.product .woocommerce-product-details__short-description {
    color: var(--text-mid);
    font-size: 14px;
    line-height: 1.6;
    border-bottom: 0.5px solid var(--border);
    padding-bottom: 16px;
    margin-bottom: 16px;
  }

  /* ── Botón Agregar al carrito ────────────────────────────────────────────── */
  .woocommerce div.product form.cart .single_add_to_cart_button,
  .woocommerce #respond input#submit,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button {
    background: var(--pink) !important;
    color: #1a0a1e !important;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: none !important;
    border-radius: 3px !important;
    padding: 14px 28px !important;
    transition: transform 0.15s, box-shadow 0.15s !important;
    box-shadow: none !important;
  }
  .woocommerce div.product form.cart .single_add_to_cart_button:hover,
  .woocommerce a.button:hover,
  .woocommerce button.button:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(237,147,177,0.35) !important;
    background: var(--pink) !important;
    color: #1a0a1e !important;
  }

  /* ── Selector de variaciones ─────────────────────────────────────────────── */
  /* WooCommerce renderiza <table class="variations"> con <th class="label"> y
     <td class="value">. El CSS nativo de WC los pone en vertical-align:top y
     el select tiene min-width:75% + display:inline-block, lo que hace que el
     <th> siempre quede desalineado. La solución más robusta: adoptar el layout
     vertical (label arriba, select abajo) pero con nuestros estilos. */
  .woocommerce div.product form.cart table.variations,
  .woocommerce div.product form.cart table.variations tbody {
    display: block !important;
    width: 100% !important;
    margin-bottom: 20px !important;
  }
  .woocommerce div.product form.cart table.variations tr {
    display: block !important;
    padding: 0 !important;
    border: none !important;
    margin-bottom: 12px !important;
  }
  .woocommerce div.product form.cart table.variations th.label {
    display: block !important;
    padding: 0 0 6px 0 !important;
    border: none !important;
    line-height: 1 !important;
    vertical-align: unset !important;
  }
  .woocommerce div.product form.cart table.variations th.label label {
    font-family: var(--font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--text-muted) !important;
    white-space: nowrap !important;
    line-height: 1 !important;
  }
  .woocommerce div.product form.cart table.variations td.value {
    display: block !important;
    padding: 0 !important;
    border: none !important;
    vertical-align: unset !important;
  }
  /* Select estilizado igual que el resto del tema */
  .woocommerce div.product form.cart table.variations td.value select {
    width: 100% !important;
    background-color: var(--bg-card2) !important;
    color: var(--white) !important;
    border: 0.5px solid var(--border) !important;
    border-radius: 3px !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 300 !important;
    padding: 10px 36px 10px 14px !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23AFA9EC' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    cursor: pointer !important;
    transition: border-color 0.2s !important;
    outline: none !important;
  }
  .woocommerce div.product form.cart table.variations td.value select:focus {
    border-color: var(--lila) !important;
  }
  .woocommerce div.product form.cart table.variations td.value select option {
    background-color: var(--bg-card2) !important;
    color: var(--white) !important;
  }
  /* "Limpiar" link de reset de variación */
  .woocommerce div.product form.cart .reset_variations {
    display: inline-block !important;
    font-size: 11px !important;
    color: var(--text-muted) !important;
    text-decoration: none !important;
    letter-spacing: 0.06em !important;
    margin-top: 6px !important;
    transition: color 0.2s !important;
  }
  .woocommerce div.product form.cart .reset_variations:hover {
    color: var(--pink) !important;
  }
  /* Descripción de la variación seleccionada */
  .woocommerce div.product .woocommerce-variation-description p {
    font-size: 13px !important;
    color: var(--text-mid) !important;
    line-height: 1.6 !important;
    margin-bottom: 12px !important;
  }
  /* Precio de la variación (reemplaza al precio base) */
  .woocommerce div.product .woocommerce-variation-price .price {
    font-family: var(--font-display) !important;
    font-size: 28px !important;
    font-weight: 600 !important;
    color: var(--white) !important;
  }

  /* ── Input de cantidad (producto simple y variable) ───────────────────────── */
  .woocommerce div.product form.cart .quantity {
    display: inline-flex !important;
    align-items: center !important;
  }
  .woocommerce div.product form.cart .quantity input.qty {
    width: 56px !important;
    height: 48px !important;
    background: var(--bg-card2) !important;
    border: 0.5px solid var(--border) !important;
    border-radius: 3px !important;
    color: var(--white) !important;
    font-family: var(--font-body) !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    text-align: center !important;
    outline: none !important;
    -moz-appearance: textfield !important;
    transition: border-color 0.2s !important;
  }
  .woocommerce div.product form.cart .quantity input.qty:focus {
    border-color: var(--lila) !important;
  }
  /* Ocultar las flechitas nativas del input number */
  .woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button,
  .woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
  }

  /* ── Funda protectora ────────────────────────────────────────────────────── */
  .psca-proteccion {
    margin: 16px 0;
    padding: 14px 16px;
    border: 0.5px solid var(--border);
    border-radius: 4px;
    background: var(--bg-card);
  }
  .psca-proteccion__label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
  }
  .psca-proteccion__check {
    margin-top: 3px;
    width: 16px;
    height: 16px;
    cursor: pointer;
    flex-shrink: 0;
    accent-color: var(--pink);
  }
  .psca-proteccion__titulo {
    display: block;
    margin-bottom: 2px;
    color: var(--white);
    font-size: 14px;
    font-weight: 500;
  }
  .psca-proteccion__desc {
    font-size: 13px;
    color: var(--text-muted);
  }
  .psca-proteccion__precio {
    color: var(--pink);
    margin-left: 4px;
  }

  /* ── Meta del producto (Juego, Set, Rareza, SKU, Categoría) ─────────────── */
  .woocommerce div.product .product_meta {
    border-top: 0.5px solid var(--border);
    padding-top: 16px;
    margin-top: 16px;
  }
  .woocommerce div.product .product_meta > span {
    display: block;
    font-size: 12px;
    color: var(--text-muted);
    letter-spacing: 0.04em;
    margin-bottom: 6px;
  }
  .woocommerce div.product .product_meta a {
    color: var(--lila) !important;
    text-decoration: none;
    transition: color 0.2s;
  }
  .woocommerce div.product .product_meta a:hover {
    color: var(--pink) !important;
  }
  .woocommerce div.product .product_meta .sku {
    color: var(--text-mid);
  }

  /* ── Tags (Sankuri, Fan-made, etc.) ─────────────────────────────────────── */
  .woocommerce div.product .tagged_as a {
    background: rgba(175,169,236,0.12);
    border: 0.5px solid rgba(175,169,236,0.3);
    color: var(--lila) !important;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    letter-spacing: 0.06em;
    text-decoration: none;
    margin-right: 4px;
    display: inline-block;
    transition: background 0.2s;
  }
  .woocommerce div.product .tagged_as a:hover {
    background: rgba(175,169,236,0.25);
  }

  /* ── Tabs (Descripción / Valoraciones) ──────────────────────────────────── */
  .woocommerce div.product .woocommerce-tabs {
    margin-top: 48px;
    border-top: 0.5px solid var(--border);
  }
  .woocommerce div.product .woocommerce-tabs ul.tabs {
    background: transparent;
    border-bottom: 0.5px solid var(--border);
    padding: 0;
    margin-bottom: 0;
  }
  .woocommerce div.product .woocommerce-tabs ul.tabs::before {
    border-bottom: none;
  }
  .woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    margin: 0 24px 0 0;
    padding: 0;
  }
  .woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    background: transparent !important;
    border-bottom-color: var(--pink) !important;
  }
  .woocommerce div.product .woocommerce-tabs ul.tabs li a {
    color: var(--text-muted) !important;
    font-family: var(--font-body);
    font-size: 13px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 400;
    padding: 16px 0;
  }
  .woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
  .woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--white) !important;
    background: transparent !important;
  }
  .woocommerce div.product .woocommerce-Tabs-panel {
    background: transparent;
    padding: 32px 0;
    border: none;
    color: var(--text-mid);
  }
  /* Ocultar el h2 redundante "Descripción" dentro del panel */
  .woocommerce div.product .woocommerce-Tabs-panel h2 {
    display: none;
  }
  .woocommerce div.product .woocommerce-Tabs-panel p,
  .woocommerce div.product .woocommerce-Tabs-panel li {
    color: var(--text-mid);
    font-size: 14px;
    line-height: 1.7;
  }

  /* ── Productos relacionados ──────────────────────────────────────────────── */
  .woocommerce .related.products > h2,
  .woocommerce section.related > h2 {
    color: var(--white) !important;
    font-family: var(--font-display);
    font-size: clamp(20px, 3vw, 28px);
    font-weight: 600;
    letter-spacing: -0.01em;
    margin-bottom: 32px;
    padding-top: 48px;
    border-top: 0.5px solid var(--border);
  }
  .woocommerce ul.products {
    margin: 0 !important;
  }
  .woocommerce ul.products li.product {
    background: var(--bg-card);
    border: 0.5px solid var(--border);
    border-radius: 4px;
    overflow: hidden;
    transition: border-color 0.2s, transform 0.2s;
    text-align: left;
  }
  .woocommerce ul.products li.product:hover {
    border-color: var(--pink-dim);
    transform: translateY(-4px);
  }
  .woocommerce ul.products li.product a {
    text-decoration: none;
  }
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    color: var(--text-mid) !important;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
    padding: 12px 16px 4px;
  }
  .woocommerce ul.products li.product .price {
    color: var(--pink) !important;
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    padding: 0 16px 8px;
    display: block;
  }
  /* ── Imagen de producto en grilla: contenedor 2:3, figura completa ── */
  .woocommerce ul.products li.product a.woocommerce-loop-product__link {
    display: block;
  }
  .woocommerce ul.products li.product a.woocommerce-loop-product__link img {
    display: block;
    width: 100%;
    aspect-ratio: 2 / 3;
    object-fit: cover;
    object-position: center top;
  }
  .woocommerce ul.products li.product .button {
    display: block;
    margin: 0 16px 16px;
    text-align: center;
  }

  /* ── Galería — imagen principal: no estirar si es más chica que el contenedor ── */
  .woocommerce div.product div.images .woocommerce-product-gallery__image img,
  .woocommerce div.product div.images .wp-post-image {
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    margin: 0 auto !important;
  }

  /* ── Galería — thumbnails ────────────────────────────────────────────────── */
  .woocommerce div.product div.images .flex-control-thumbs li img {
    border: 0.5px solid var(--border);
    border-radius: 2px;
    opacity: 0.6;
    transition: opacity 0.2s, border-color 0.2s;
  }
  .woocommerce div.product div.images .flex-control-thumbs li img:hover,
  .woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
    opacity: 1;
    border-color: var(--pink);
  }

  /* ── Footer — ocultar "Diseñado con WordPress" ───────────────────────────── */
  .wp-site-blocks footer a[href*="wordpress.org"],
  footer .wp-block-paragraph:has(a[href*="wordpress.org"]) {
    display: none !important;
  }

  /* ── Footer del tema padre — estilo consistente ──────────────────────────── */
  .proxysama-woo-page footer,
  .proxysama-woo-page .wp-block-template-part footer {
    background: var(--bg-base) !important;
    border-top: 0.5px solid var(--border);
    color: var(--text-muted) !important;
  }
  .proxysama-woo-page footer a {
    color: var(--lila) !important;
    text-decoration: none;
    transition: color 0.2s;
  }
  .proxysama-woo-page footer a:hover {
    color: var(--pink) !important;
  }

  /* ── Notices ─────────────────────────────────────────────────────────────── */
  .woocommerce-message,
  .woocommerce-error,
  .woocommerce-info {
    background: var(--bg-card) !important;
    border-top-color: var(--pink) !important;
    color: var(--text-mid) !important;
  }
  .woocommerce-message a,
  .woocommerce-info a {
    color: var(--lila) !important;
  }

  /* ── Responsive WooCommerce ──────────────────────────────────────────────── */
  @media (max-width: 768px) {
    .proxysama-woo-page .wp-site-blocks {
      padding-top: 56px !important;
    }
    .woocommerce div.product h1.product_title {
      font-size: 20px !important;
    }
    .woocommerce div.product p.price {
      font-size: 22px;
    }
  }

  /* ── Producto single — colapsar columnas en pantallas angostas ───────────
     WordPress colapsa wp-block-columns a ≤599px. Por encima de ese umbral el
     layout queda en dos columnas (imagen flex-basis:512px fijo + summary con
     el resto), y el summary necesita ~370px mínimo para el bloque de precios.
     Cálculo: (512 + 24gap + 370) / ratio_container ≈ 1097px de viewport.
     Colapsamos a 1100px para cubrir teléfonos, tablets y pantallas angostas.
     Laptops estándar (≥1280px) siempre tienen las dos columnas con espacio. */
  @media (max-width: 1100px) {
    .single-product .wp-block-columns.alignwide.is-layout-flex {
      flex-wrap: wrap !important;
      gap: 16px !important;
    }
    .single-product .wp-block-columns.alignwide.is-layout-flex > .wp-block-column {
      flex-basis: 100% !important;
      width: 100% !important;
      min-width: 0 !important;
    }
  }

  /* ─── BLOQUES FSE DEL TEMA PADRE — correcciones de color ────────────────── */

  /* Título del producto (bloque FSE wp-block-post-title) */
  .wp-block-post-title {
    color: var(--white) !important;
    font-family: var(--font-display) !important;
    font-size: clamp(22px, 3vw, 36px) !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.01em !important;
  }

  /* Título del producto individual — degradado pink→lila + línea decorativa.
     Solo apunta al h1, no a los h3 de grillas ni productos relacionados. */
  .woocommerce div.product h1.wp-block-post-title,
  .single-product .wp-block-post-title:is(h1) {
    background: linear-gradient(135deg, var(--white) 0%, var(--lila) 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    font-size: clamp(24px, 3.5vw, 40px) !important;
    padding-bottom: 20px !important;
    border-bottom: 0.5px solid var(--border) !important;
    margin-bottom: 16px !important;
  }
  .woocommerce div.product h1.wp-block-post-title::before,
  .single-product .wp-block-post-title:is(h1)::before {
    content: '';
    display: block;
    width: 24px;
    height: 0.5px;
    background: var(--lila);
    margin-bottom: 16px;
  }

  /* Links de categoría / etiqueta en meta del producto */
  .wp-block-post-terms a,
  .wp-block-term-description a,
  .woocommerce div.product .product_meta a[rel="tag"],
  .woocommerce div.product .product_meta a[href*="product-category"],
  .woocommerce div.product .product_meta a[href*="product-tag"] {
    color: var(--lila) !important;
    text-decoration: none;
    transition: color 0.2s;
  }

  /* Descripción de categoría */
  .woocommerce-term-description,
  .wp-block-term-description p,
  .term-description p {
    font-size: 14px !important;
    line-height: 1.65 !important;
    color: var(--text-mid) !important;
    font-family: var(--font-body) !important;
    font-weight: 300 !important;
    letter-spacing: 0.02em !important;
    margin-top: 12px !important;
    margin-bottom: 0 !important;
    padding-bottom: 24px !important;
    border-bottom: 0.5px solid var(--border) !important;
    max-width: 800px !important;
  }
  .woocommerce-term-description p:last-child,
  .wp-block-term-description p:last-child {
    margin-bottom: 0 !important;
  }
  .wp-block-post-terms a:hover {
    color: var(--pink) !important;
  }

  /* Headings FSE genéricos (wp-block-heading) — afecta "Productos relacionados",
     "Acerca de", "Privacidad", "Social" en el footer */
  .wp-block-heading {
    color: var(--white) !important;
  }

  /* Links de navegación en productos relacionados (wp-block-navigation) */
  .wp-block-post-template a,
  .wp-block-product-collection a,
  .woocommerce [data-wp-on--click] {
    color: var(--text-mid) !important;
    text-decoration: none;
    transition: color 0.2s;
  }
  .wp-block-post-template a:hover,
  .wp-block-product-collection a:hover {
    color: var(--pink) !important;
  }

  /* Títulos de productos en el bloque product-collection (productos relacionados) */
  .wp-block-woocommerce-product-template .wp-block-post-title,
  .wc-block-product-template .wp-block-post-title,
  .woocommerce .products .woocommerce-loop-product__title,
  .wp-block-post-template .wp-block-post-title a {
    color: var(--text-mid) !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
  }

  /* ─── FOOTER FSE — correcciones ──────────────────────────────────────────── */

  /* Reducir padding excesivo del footer */
  .proxysama-woo-page .wp-block-template-part[class*="footer"],
  .proxysama-woo-page footer.wp-block-template-part,
  .wp-site-blocks > footer {
    padding-top: 40px !important;
    padding-bottom: 24px !important;
  }

  /* También aplica al wrapper interno de columnas del footer */
  .proxysama-woo-page footer .wp-block-group,
  .proxysama-woo-page footer .wp-block-columns {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  /* Headings del footer (Acerca de, Privacidad, Social) */
  .proxysama-woo-page footer .wp-block-heading,
  .wp-site-blocks footer .wp-block-heading {
    color: var(--text-muted) !important;
    font-size: 11px !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    font-weight: 400 !important;
    margin-bottom: 16px !important;
  }

  /* Links de navegación del footer */
  .proxysama-woo-page footer .wp-block-navigation__container a,
  .proxysama-woo-page footer .wp-block-navigation a,
  .wp-site-blocks footer .wp-block-navigation a {
    color: var(--text-mid) !important;
    font-size: 13px !important;
    text-decoration: none !important;
    transition: color 0.2s !important;
  }
  .proxysama-woo-page footer .wp-block-navigation a:hover,
  .wp-site-blocks footer .wp-block-navigation a:hover {
    color: var(--pink) !important;
  }

  /* Texto de párrafo en el footer (copyright, etc.) */
  .proxysama-woo-page footer p,
  .wp-site-blocks footer p {
    color: var(--text-muted) !important;
    font-size: 12px !important;
  }



  /* ─── FIXES RONDA 3 ──────────────────────────────────────────────────────── */

  /* ── Breadcrumb — más visible y grande ──────────────────────────────────── */
  .wc-block-breadcrumbs,
  .wc-block-breadcrumbs .woocommerce-breadcrumb {
    font-size: 13px !important;
    padding: 20px 0 12px !important;
    color: var(--text-mid) !important;
  }
  .wc-block-breadcrumbs a,
  .woocommerce-breadcrumb a {
    color: var(--lila) !important;
    font-weight: 400;
  }
  .wc-block-breadcrumbs a:hover,
  .woocommerce-breadcrumb a:hover {
    color: var(--pink) !important;
  }
  /* Separadores del breadcrumb */
  .woocommerce-breadcrumb {
    color: var(--text-mid) !important;
  }

  /* ── SKU — alinear en la misma línea ────────────────────────────────────── */
  .woocommerce div.product .product_meta .sku_wrapper {
    display: flex !important;
    align-items: baseline !important;
    gap: 6px !important;
  }
  .woocommerce div.product .product_meta .sku_wrapper .sku {
    color: var(--text-mid) !important;
  }

  /* ── Botón "Agregar al carrito" en productos relacionados (bloque WC) ───── */
  /* Bloque wc-block-components-product-button */
  .wc-block-components-product-button .wc-block-components-product-button__button,
  .wp-block-button.wc-block-components-product-button .wp-block-button__link,
  .wc-block-components-product-button a.wp-block-button__link,
  .wc-block-components-product-button button.wp-block-button__link {
    background: transparent !important;
    border: 0.5px solid var(--border-pink) !important;
    color: var(--pink) !important;
    font-family: var(--font-body) !important;
    font-size: 11px !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 9px 16px !important;
    border-radius: 2px !important;
    transition: background 0.2s, color 0.2s !important;
    box-shadow: none !important;
    width: calc(100% - 32px) !important;
    margin: 0 16px 16px !important;
    text-align: center !important;
    display: block !important;
    box-sizing: border-box !important;
  }
  .wc-block-components-product-button .wc-block-components-product-button__button:hover,
  .wp-block-button.wc-block-components-product-button .wp-block-button__link:hover,
  .wc-block-components-product-button a.wp-block-button__link:hover {
    background: var(--pink) !important;
    color: #1a0a1e !important;
    border-color: var(--pink) !important;
  }

  /* ── Alineación de botones en productos relacionados ────────────────────── */
  /* Usar grid para que el botón siempre quede abajo independiente del título */
  .woocommerce ul.products li.product,
  .wp-block-post-template li.product {
    display: flex !important;
    flex-direction: column !important;
  }
  .wc-block-components-product-button,
  .woocommerce ul.products li.product .button {
    margin-top: auto !important;
  }
  /* El contenedor del título no empuja el botón */
  .wp-block-woocommerce-product-template .wp-block-post-title,
  .wc-block-product-template .wp-block-post-title {
    flex-grow: 1;
  }

  /* ── Fix: estado "in cart" — ocultar el link "Ver carrito" que WC Blocks inyecta ─ */
  /* WC Blocks Interactivity API: el span[data-wp-bind--hidden] wrappea el link        */
  /* "Ver carrito". Al agregar al carrito, WC Blocks quita el atributo `hidden` del    */
  /* span via JS, lo que aumenta la altura del wrapper y desalinea los cards.           */
  /* La clase real del link es wc_forward (guion bajo), no wc-forward (guion).         */
  .wc-block-components-product-button span[data-wp-bind--hidden],
  .wc-block-components-product-button a.added_to_cart,
  .wc-block-components-product-button a.wc_forward {
    display: none !important;
  }

  /* ── Logo "Proxy-sama" en el footer — más grande y visible ─────────────── */
  .wp-block-site-title {
    font-size: 20px !important;
  }
  .wp-block-site-title a {
    font-family: var(--font-display) !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    letter-spacing: 0.05em !important;
    background: linear-gradient(135deg, var(--pink) 0%, var(--lila) 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    text-decoration: none !important;
  }

  /* ── Footer — reducir padding excesivo del wrapper interno ─────────────── */
  .wp-block-template-part footer .wp-block-group.has-global-padding,
  footer.wp-block-template-part .wp-block-group.has-global-padding,
  .wp-site-blocks footer .wp-block-group[style*="padding-top:var(--wp--preset--spacing--50)"] {
    padding-top: 40px !important;
    padding-bottom: 32px !important;
  }

  /* ── Responsive fixes ───────────────────────────────────────────────────── */
  @media (max-width: 768px) {
    .wc-block-components-product-button .wc-block-components-product-button__button,
    .wp-block-button.wc-block-components-product-button .wp-block-button__link {
      font-size: 10px !important;
      padding: 8px 12px !important;
    }
  }

  /* ─── FIXES RONDA 4 ──────────────────────────────────────────────────────── */

  /* ── SKU — está en un div.wp-block-post-terms, no en .sku_wrapper ───────── */
  /* El SKU usa wp-block-post-terms con prefijo y span.sku en la misma línea */
  div.wp-block-post-terms:has(span.sku),
  .woocommerce div.product .wp-block-post-terms:has(.sku) {
    display: flex !important;
    align-items: center !important;
    align-self: center !important;
    gap: 6px !important;
    flex-wrap: nowrap !important;
    height: fit-content !important;
    width: fit-content !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    line-height: 1.5 !important;
  }
  div.wp-block-post-terms span.sku {
    color: var(--text-mid) !important;
  }
  div.wp-block-post-terms .wp-block-post-terms__prefix {
    color: var(--text-muted) !important;
    white-space: nowrap;
    flex-shrink: 0;
  }
  /* Fallback sin :has — inline-flex sobre el contenedor que ya tiene ambos spans */
  .woocommerce div.product .product_meta .sku_wrapper,
  .woocommerce div.product .wp-block-post-terms.sku-taxonomy {
    display: flex !important;
    gap: 6px !important;
    align-items: baseline !important;
  }

  /* ── Botones alineados en productos relacionados ─────────────────────────── */
  /* El <li> del product-template necesita ser flex column con altura total */
  ul.wc-block-product-template li.wc-block-product,
  .wp-block-woocommerce-product-template li.wc-block-product {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
  }
  /* La imagen ocupa su espacio natural */
  ul.wc-block-product-template li.wc-block-product .wc-block-components-product-image {
    flex-shrink: 0;
  }
  /* El precio tampoco crece */
  ul.wc-block-product-template li.wc-block-product .wc-block-components-product-price,
  ul.wc-block-product-template li.wc-block-product .wp-block-woocommerce-product-price {
    flex-shrink: 0;
  }
  /* El título crece para llenar el espacio disponible y empujar el botón al fondo */
  /* display:block (no flex) para que text-align:center funcione sobre el texto.
     flex-grow:1 sigue funcionando — el h3 es flex item del li, no necesita ser flex container. */
  ul.wc-block-product-template li.wc-block-product h3.wp-block-post-title {
    flex-grow: 1 !important;
    display: block !important;
    text-align: center !important;
  }
  /* El botón queda siempre al fondo */
  ul.wc-block-product-template li.wc-block-product .wp-block-button.wc-block-components-product-button {
    margin-top: auto !important;
    flex-shrink: 0;
  }
  /* El grid externo también necesita items de igual altura */
  ul.wc-block-product-template.is-flex-container {
    align-items: stretch !important;
  }

  /* ─── FIXES RONDA 5 ──────────────────────────────────────────────────────── */

  /* ── SKU y Categoría — BLOQUE ÚNICO DEFINITIVO (reemplaza rondas 5-9) ────── */

  /* ── Botones alineados en productos relacionados — fix correcto ──────────── */
  /* El <ul> usa is-flex-container con flex-wrap. Necesita align-items: stretch
     para que los <li> tengan igual altura dentro de cada fila. */
  ul.is-flex-container.wc-block-product-template {
    align-items: stretch !important;
  }
  /* Cada <li> debe ser flex column para que el botón pueda ir al fondo */
  ul.is-flex-container.wc-block-product-template > li.wc-block-product {
    display: flex !important;
    flex-direction: column !important;
  }
  /* La imagen y el precio no crecen */
  ul.is-flex-container.wc-block-product-template > li .wc-block-components-product-image,
  ul.is-flex-container.wc-block-product-template > li .wp-block-woocommerce-product-price {
    flex-shrink: 0;
  }
  /* El título crece para absorber el espacio y empujar el botón */
  ul.is-flex-container.wc-block-product-template > li h3.wp-block-post-title {
    flex-grow: 1 !important;
    margin-bottom: 0 !important;
  }
  /* El botón siempre al fondo */
  ul.is-flex-container.wc-block-product-template > li .wp-block-button.wc-block-components-product-button {
    margin-top: auto !important;
    flex-shrink: 0;
    padding-bottom: 12px;
  }

  /* ── Footer — alinear heading con su lista de links ─────────────────────── */
  /* El heading está directo en el grupo padre, el nav está en un div wrapper
     extra (wp-block-group). Ese wrapper tiene padding/gap que lo desplaza.
     Los normalizamos para que heading y links estén alineados a la izquierda. */
  .wp-site-blocks footer .wp-block-group.is-content-justification-stretch > .wp-block-heading,
  .proxysama-woo-page footer .wp-block-group.is-content-justification-stretch > .wp-block-heading {
    padding-left: 0 !important;
    margin-left: 0 !important;
  }
  /* El div wrapper interno que contiene el nav no debe agregar padding/gap extra */
  .wp-site-blocks footer .wp-block-group.is-content-justification-stretch > .wp-block-group {
    padding: 0 !important;
    margin: 0 !important;
    gap: 0 !important;
  }
  /* Los items del nav tampoco tienen padding lateral */
  .wp-site-blocks footer .wp-block-navigation__container {
    padding: 0 !important;
    margin: 0 !important;
  }
  .wp-site-blocks footer .wp-block-navigation-item__content {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* ─── FIXES RONDA 6 — basados en HTML real ───────────────────────────────── */

  /* ── SKU y Categoría — fix definitivo ───────────────────────────────────── */


  /* ── Botones alineados — fix definitivo con CSS grid en el li ────────────── */
  /* El <li> tiene 4 hijos directos: div.image, h3, div.price, div.button.
     Usamos grid con subgrid-rows para que todos los li de una fila compartan
     las mismas alturas de fila. Fallback con flex para browsers sin subgrid. */
  ul.is-flex-container.wc-block-product-template {
    align-items: stretch !important;
  }
  ul.is-flex-container.wc-block-product-template > li.wc-block-product {
    display: grid !important;
    grid-template-rows: auto 1fr auto auto !important;
    /* imagen | título (crece) | precio | botón */
  }
  /* Imagen — primera fila, tamaño natural */
  ul.is-flex-container.wc-block-product-template > li.wc-block-product > .wc-block-components-product-image {
    grid-row: 1;
  }
  /* Título — segunda fila, ocupa todo el espacio sobrante */
  ul.is-flex-container.wc-block-product-template > li.wc-block-product > h3.wp-block-post-title {
    grid-row: 2;
    align-self: start;
    margin-bottom: 0 !important;
  }
  /* Precio — tercera fila */
  ul.is-flex-container.wc-block-product-template > li.wc-block-product > .wp-block-woocommerce-product-price {
    grid-row: 3;
    margin-bottom: 0 !important;
  }
  /* Botón — cuarta fila, siempre al mismo nivel entre cards */
  ul.is-flex-container.wc-block-product-template > li.wc-block-product > .wp-block-button.wc-block-components-product-button {
    grid-row: 4;
    align-self: end;
    margin-top: 8px !important;
    width: 100% !important;
    justify-self: stretch !important;
    text-align: center !important;
  }
  /* Botón "Encargar →" (preventa) — misma fila que el botón normal */
  ul.is-flex-container.wc-block-product-template > li.wc-block-product > a.proxysama-btn-encargar-loop {
    grid-row: 4;
    align-self: end;
    margin: 8px 16px 16px !important;
  }

  /* ── Footer — alinear links con sus headings ─────────────────────────────── */
  /* El grupo que contiene h2 + nav-wrapper tiene flex-direction:column align:stretch.
     El nav-wrapper interno tiene gap y align:flex-start que lo desplaza.
     Removemos cualquier padding/margen extra del nav-wrapper. */
  .wp-site-blocks footer .wp-block-group.is-vertical.is-content-justification-stretch {
    gap: 12px !important;
  }
  /* El div wrapper interno del nav (el que tiene ea0cb840) */
  .wp-site-blocks footer .wp-block-group.is-vertical:not(.is-content-justification-stretch) {
    padding: 0 !important;
    margin: 0 !important;
  }
  /* El nav y su ul no deben tener padding lateral */
  .wp-site-blocks footer .wp-block-navigation.is-vertical {
    padding: 0 !important;
  }
  .wp-site-blocks footer .wp-block-navigation__container.is-vertical {
    padding: 0 !important;
  }
  /* El anchor de cada item sin padding lateral */
  .wp-site-blocks footer li.wp-block-navigation-item a.wp-block-navigation-item__content {
    padding-inline-start: 0 !important;
    padding-inline-end: 0 !important;
  }

  /* ─── ARCHIVE / SHOP — paginación FSE (wp-block-query-pagination) ───────── */
  /* Las páginas de shop/categoría usan bloques Gutenberg, no woocommerce-pagination */

  .wp-block-query-pagination {
    padding: 48px 0 32px !important;
    justify-content: center !important;
    gap: 4px !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }

  /* Números de página */
  .wp-block-query-pagination-numbers {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
  }
  .wp-block-query-pagination-numbers .page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px !important;
    height: 36px !important;
    padding: 0 8px !important;
    border: 0.5px solid transparent !important;
    border-radius: 3px !important;
    background: transparent !important;
    color: var(--text-muted) !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    text-decoration: none !important;
    transition: color 0.2s, border-color 0.2s, background 0.2s !important;
  }
  .wp-block-query-pagination-numbers a.page-numbers:hover {
    color: var(--pink) !important;
    border-color: var(--border-pink) !important;
    background: var(--pink-glow) !important;
  }
  /* Página activa */
  .wp-block-query-pagination-numbers .page-numbers.current {
    color: var(--white) !important;
    border-color: var(--lila) !important;
    background: transparent !important;
  }
  /* Dots "…" */
  .wp-block-query-pagination-numbers .page-numbers.dots {
    border: none !important;
    background: transparent !important;
    color: var(--text-muted) !important;
    min-width: 20px !important;
  }

  /* Botones "Anterior" / "Siguiente" */
  .wp-block-query-pagination-previous,
  .wp-block-query-pagination-next {
    display: inline-flex !important;
    align-items: center !important;
    height: 36px !important;
    padding: 0 14px !important;
    border: 0.5px solid transparent !important;
    border-radius: 3px !important;
    background: transparent !important;
    color: var(--lila) !important;
    font-family: var(--font-body) !important;
    font-size: 12px !important;
    letter-spacing: 0.06em !important;
    text-decoration: none !important;
    transition: color 0.2s, border-color 0.2s, background 0.2s !important;
  }
  .wp-block-query-pagination-previous:hover,
  .wp-block-query-pagination-next:hover {
    color: var(--pink) !important;
    border-color: var(--border-pink) !important;
    background: var(--pink-glow) !important;
  }


  /* Computed confirmado: padre es flex row, align-items:center, height:40.5px.
     SKU tiene height:40.5px (estira al padre), CAT tiene height:18px.
     La causa: el SKU tiene display:flex que lo estira al 100% del padre.
     Solución: width fit-content en el SKU para que no se estire. */
  .wp-block-woocommerce-product-meta .wp-block-group {
    align-items: center !important;
    gap: 16px !important;
    line-height: 1 !important;
  }
  .wc-block-components-product-sku {
    display: flex !important;
    align-items: center !important;
    align-self: center !important;
    width: fit-content !important;
    height: fit-content !important;
    gap: 4px !important;
    font-size: 12px !important;
    color: var(--text-muted) !important;
    white-space: nowrap;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    line-height: 1.5 !important;
  }
  .taxonomy-product_cat.wp-block-post-terms {
    display: flex !important;
    align-items: center !important;
    align-self: center !important;
    width: fit-content !important;
    height: fit-content !important;
    gap: 4px !important;
    font-size: 12px !important;
    color: var(--text-muted) !important;
    white-space: nowrap;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    line-height: 1.5 !important;
  }
  .wc-block-components-product-sku .wp-block-post-terms__prefix,
  .taxonomy-product_cat .wp-block-post-terms__prefix {
    color: var(--text-muted) !important;
    font-size: 12px !important;
    white-space: nowrap;
    flex-shrink: 0;
    margin-bottom: 0 !important;
    display: inline !important;
  }
  .wc-block-components-product-sku span.sku {
    color: var(--text-mid) !important;
    font-size: 12px !important;
    margin-bottom: 0 !important;
    display: inline !important;
  }
  .taxonomy-product_cat a {
    color: var(--lila) !important;
    font-size: 12px !important;
    text-decoration: none;
    transition: color 0.2s;
  }
  .taxonomy-product_cat a:hover {
    color: var(--pink) !important;
  }

  /* ── Botones productos relacionados — grid con minmax para fila del título ─ */
  /* El li ya es grid (confirmado: grid-template-rows: 250px 15px 27px 56px).
     El problema: fila 2 (h3) es fija y no crece cuando el título tiene 2 líneas.
     Cambiamos a minmax(0, 1fr) para que absorba el espacio extra. */
  ul.is-flex-container.wc-block-product-template > li.wc-block-product {
    grid-template-rows: auto minmax(2.5em, 1fr) auto auto !important;
  }
  /* El h3 no debe tener margin que rompa el grid */
  ul.is-flex-container.wc-block-product-template > li.wc-block-product > h3.wp-block-post-title {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    /* El margin-bottom: 0.75rem inline lo anulamos también */
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
    padding-bottom: 0.75rem;  /* compensar visualmente el margin que quitamos */
  }

  /* ─── ARCHIVE / SHOP — columnas en grilla de productos ─────────────────── */
  /* El bloque FSE usa wc-block-product-template__responsive columns-3 (grid CSS).
     WC inyecta grid-template-columns con minmax basado en 33.33% (3 cols).
     Desktop → 4 cols, tablet (≤900px) → 3 cols, mobile (≤620px) → 2 cols.
     En cada breakpoint: primero reseteamos el display del anterior, luego
     ocultamos el huérfano del nuevo conteo de columnas. */

  /* Desktop → 4 columnas */
  .wc-block-product-template__responsive.columns-3 {
    grid-template-columns: repeat(4, 1fr) !important;
  }
  .wc-block-product-template__responsive.columns-3 > li:last-child:nth-child(4n+1) {
    display: none !important;
  }

  /* Tablet (≤900px) → 3 columnas */
  @media (max-width: 900px) {
    .wc-block-product-template__responsive.columns-3 {
      grid-template-columns: repeat(3, 1fr) !important;
    }
    /* Resetear oculto de 4 cols antes de aplicar regla de 3 cols */
    .wc-block-product-template__responsive.columns-3 > li:last-child {
      display: list-item !important;
    }
    .wc-block-product-template__responsive.columns-3 > li:last-child:nth-child(3n+1) {
      display: none !important;
    }
  }

  /* Mobile (≤620px) → 2 columnas, sin ocultar huérfanos */
  @media (max-width: 620px) {
    .wc-block-product-template__responsive.columns-3 {
      grid-template-columns: repeat(2, 1fr) !important;
    }
    /* Resetear oculto de 3 cols — misma especificidad que la regla que oculta */
    .wc-block-product-template__responsive.columns-3 > li:last-child:nth-child(3n+1) {
      display: list-item !important;
    }
  }

  /* ─── ARCHIVE / SHOP — fixes finales ─────────────────────────────────────── */

  /* Ocultar el nav FSE (wp-block-navigation) que aparece dentro del header
     aunque el header tenga display:none, a veces el nav queda flotando. */
  .proxysama-woo-page header.wp-block-template-part .wp-block-navigation,
  .proxysama-woo-page header.wp-block-template-part .wp-block-navigation * {
    display: none !important;
  }

  /* ── Título de página de shop/categoría (wp-block-query-title) ─────────── */

  /* Wrapper visual: padding + borde inferior como separador */
  .wp-block-query-title {
    font-family: var(--font-display) !important;
    font-size: clamp(32px, 5vw, 56px) !important;
    font-weight: 800 !important;
    letter-spacing: -0.02em !important;
    line-height: 1.05 !important;
    /* Degradado pink → lila, igual al logo */
    background: linear-gradient(135deg, var(--pink) 0%, var(--lila) 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    padding-bottom: 24px !important;
    margin-bottom: 8px !important;
    /* Línea decorativa debajo */
    border-bottom: 0.5px solid var(--border) !important;
  }

  /* Eyebrow decorativo: línea + "Catálogo" antes del título */
  .wp-block-query-title::before {
    content: '';
    display: block;
    width: 32px;
    height: 0.5px;
    background: var(--pink);
    margin-bottom: 20px;
  }

  /* ── Dropdown "Orden predeterminado" ────────────────────────────────────── */
  /* El bloque FSE es .wc-block-catalog-sorting; el select tiene clase .orderby */
  .woocommerce-ordering,
  .wc-block-catalog-sorting {
    margin: 0 !important;
    /* Stacking context: el dropdown es flujo normal y la maid fixed lo tapa.
       position:relative + z-index:1 lo eleva sobre la maid (misma solución
       que isolation:isolate en los li, pero usando z-index explícito porque
       el select nativo necesita estar "encima" para el popup del OS también). */
    position: relative;
    z-index: 1;
  }
  .woocommerce-ordering select,
  .woocommerce form.woocommerce-ordering select,
  .wc-block-catalog-sorting select,
  .wc-block-catalog-sorting .orderby {
    background-color: var(--bg-card) !important;
    color: var(--text-mid) !important;
    border: 0.5px solid var(--border) !important;
    border-radius: 3px !important;
    font-family: var(--font-body) !important;
    font-size: 12px !important;
    letter-spacing: 0.06em !important;
    padding: 8px 32px 8px 12px !important;
    cursor: pointer;
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23AFA9EC' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 10px center !important;
    min-width: 180px;
    transition: border-color 0.2s !important;
  }
  .woocommerce-ordering select:focus,
  .woocommerce form.woocommerce-ordering select:focus,
  .wc-block-catalog-sorting select:focus,
  .wc-block-catalog-sorting .orderby:focus {
    outline: none !important;
    border-color: var(--lila) !important;
  }
  .woocommerce-ordering select option,
  .wc-block-catalog-sorting select option {
    background: var(--bg-card2) !important;
    color: var(--white) !important;
  }

  /* ── "Mostrando X–Y de Z resultados" ───────────────────────────────────── */
  /* El bloque FSE es .wc-block-product-results-count */
  .woocommerce-result-count,
  .wc-block-product-results-count,
  .wc-block-product-results-count .woocommerce-result-count {
    color: var(--text-muted) !important;
    font-size: 12px !important;
    letter-spacing: 0.04em !important;
    margin: 0 !important;
  }


/* ── Cuenta regresiva de preventa ─────────────────────────────────────────── */
  .pspv-countdown {
    margin: 0 0 20px;
    padding: 16px 20px;
    background: rgba(26,24,53,0.7);
    border: 0.5px solid rgba(237,147,177,0.25);
    border-radius: 6px;
  }
  .pspv-countdown__label {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--pink);
    margin-bottom: 12px;
    display: block;
  }
  .pspv-countdown__units {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .pspv-countdown__unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 48px;
  }
  .pspv-countdown__num {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 800;
    color: var(--white);
    line-height: 1;
  }
  .pspv-countdown__sub {
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-top: 4px;
  }
  .pspv-countdown__sep {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 800;
    color: rgba(237,147,177,0.4);
    margin-bottom: 14px;
  }
  .pspv-countdown--closed .pspv-countdown__label {
    color: var(--text-muted);
    margin-bottom: 0;
  }

/* ── Seña calculada ───────────────────────────────────────────────────────── */
  .pspv-sena {
    margin-bottom: 16px;
    font-size: 14px;
    color: var(--white);
    line-height: 1.5;
  }
  .pspv-sena__sub {
    color: var(--text-mid);
    font-size: 13px;
  }
  .pspv-sena__metodos {
    display: block;
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 4px;
    letter-spacing: 0.01em;
  }

/* ── Nota de seña ─────────────────────────────────────────────────────────── */
  .pspv-sena-nota {
    font-size: 13px;
    color: var(--text-mid);
    background: rgba(175,169,236,0.07);
    border: 0.5px solid rgba(175,169,236,0.2);
    border-radius: 5px;
    padding: 12px 16px;
    margin-bottom: 20px;
    line-height: 1.6;
  }
  .pspv-sena-nota strong { color: var(--white); }

/* ── Formulario de encargo ────────────────────────────────────────────────── */
  .pspv-form-wrap {
    background: rgba(15,14,32,0.8);
    border: 0.5px solid rgba(237,147,177,0.2);
    border-radius: 8px;
    padding: 24px;
    margin-bottom: 24px;
  }
  .pspv-form-title {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--pink);
    margin-bottom: 20px;
  }
  .pspv-form-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 20px;
  }
  .pspv-field label {
    display: block;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 6px;
  }
  .pspv-field input,
  .pspv-field textarea {
    width: 100%;
    background: var(--bg-card2);
    border: 0.5px solid rgba(175,169,236,0.2);
    border-radius: 4px;
    color: var(--white);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 300;
    padding: 10px 12px;
    outline: none;
    transition: border-color 0.2s;
    resize: vertical;
  }
  .pspv-field input:focus,
  .pspv-field textarea:focus { border-color: var(--lila); }
  .pspv-field input::placeholder,
  .pspv-field textarea::placeholder { color: rgba(255,255,255,0.25); }
  .pspv-field--full { grid-column: 1 / -1; }

  .pspv-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
  }
  .pspv-ig-link {
    font-size: 12px;
    color: var(--lila);
    text-decoration: none;
    opacity: 0.8;
    transition: opacity 0.2s;
  }
  .pspv-ig-link:hover { opacity: 1; }

  .pspv-btn-encargar {
    background: var(--pink);
    color: #1a0a1e;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 12px 28px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s, opacity 0.15s;
  }
  .pspv-btn-encargar:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(237,147,177,0.3);
  }
  .pspv-btn-encargar:disabled { opacity: 0.5; cursor: not-allowed; }

  .pspv-form-msg {
    margin-top: 14px;
    font-size: 13px;
    padding: 10px 14px;
    border-radius: 4px;
  }
  .pspv-form-msg--error {
    background: rgba(248,113,113,0.1);
    border: 0.5px solid rgba(248,113,113,0.3);
    color: #f87171;
  }

  .pspv-success {
    text-align: center;
    padding: 8px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
  .pspv-success__icon { font-size: 36px; }
  .pspv-success__title {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 800;
    color: var(--white);
  }
  .pspv-success__text {
    font-size: 13px;
    color: var(--text-mid);
    line-height: 1.6;
    max-width: 320px;
  }
  .pspv-success__text strong { color: var(--white); }

  @media (max-width: 600px) {
    .pspv-form-fields { grid-template-columns: 1fr; }
    .pspv-countdown__num { font-size: 24px; }
    .pspv-countdown__unit { min-width: 36px; }
  }

  /* ─── PRODUCTOS RELACIONADOS — heading y sección ─────────────────────────── */

  /* Sobreescribir variables CSS del tema padre en el contexto del bloque:
     - --wp--preset--font-family--heading: Cardo → nuestra fuente display
     - --wp--preset--font-size--x-large: clamp grande → tamaño controlado
     Esto hace que h2 { font-family/font-size: var(...) } resuelva a nuestros valores. */
  .wp-block-woocommerce-product-collection {
    --wp--preset--font-family--heading: var(--font-display);
    --wp--preset--font-size--x-large: clamp(18px, 3vw, 24px);
    margin-top: 40px !important;
    margin-bottom: 0 !important;
  }

  /* Heading "Productos relacionados" — selector exacto confirmado via DOM.
     Doble clase para aumentar especificidad y ganarle al inline style de WC. */
  .wp-block-woocommerce-product-collection.wp-block-woocommerce-product-collection > h2.wp-block-heading {
    font-family: var(--font-display) !important;
    font-size: clamp(18px, 3vw, 24px) !important;
    font-weight: 600 !important;
    font-style: normal !important;
    letter-spacing: -0.01em !important;
    line-height: 1.2 !important;
    color: var(--white) !important;
    margin-top: 0 !important;
    margin-bottom: 24px !important;
    padding-top: 40px !important;
    border-top: 0.5px solid var(--border) !important;
  }

  /* Subrayado rosa — replicar el estilo de la tab activa (border-bottom 2px pink) */
  .wp-block-woocommerce-product-collection.wp-block-woocommerce-product-collection > h2.wp-block-heading {
    display: inline-block !important;
  }
  .wp-block-woocommerce-product-collection > h2.wp-block-heading::after {
    content: '';
    display: block;
    width: 100%;
    height: 2px;
    background: var(--pink);
    margin-top: 10px;
  }

  /* Cards de relacionados — fondo y borde consistentes con el tema.
     El ul necesita align-items:stretch para que todos los li de una fila
     tengan la misma altura. El li usa flex column para que el botón
     (con margin-top:auto) quede siempre pegado al fondo. */
  .wp-block-woocommerce-product-collection ul.wc-block-product-template {
    align-items: stretch !important;
  }
  .wp-block-woocommerce-product-collection ul.wc-block-product-template li.wc-block-product {
    background: var(--bg-card) !important;
    border: 0.5px solid var(--border) !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    transition: border-color 0.2s, transform 0.2s !important;
    display: flex !important;
    flex-direction: column !important;
    /* Stacking context para la card completa: sin esto, el título/precio/botón
       son flujo normal y pintan ANTES que la maid fixed (positioned element),
       quedando tapados. Con isolation:isolate, el li entero pinta como unidad
       después de la maid (DOM order). El hover ya creaba el stacking context
       via transform; esto lo establece también en reposo. */
    isolation: isolate;
  }
  .wp-block-woocommerce-product-collection ul.wc-block-product-template li.wc-block-product:hover {
    border-color: var(--pink-dim) !important;
    transform: translateY(-3px) !important;
  }
  /* El título crece para absorber el espacio sobrante y empujar precio+botón al fondo */
  .wp-block-woocommerce-product-collection ul.wc-block-product-template li.wc-block-product .wp-block-post-title {
    flex-grow: 1 !important;
    text-align: center !important;
  }
  /* Precio no crece */
  .wp-block-woocommerce-product-collection ul.wc-block-product-template li.wc-block-product .wc-block-components-product-price,
  .wp-block-woocommerce-product-collection ul.wc-block-product-template li.wc-block-product .wp-block-woocommerce-product-price {
    flex-shrink: 0 !important;
  }
  /* Botón normal — siempre al fondo, centrado en la card */
  .wp-block-woocommerce-product-collection ul.wc-block-product-template li.wc-block-product .wp-block-button.wc-block-components-product-button {
    margin-top: auto !important;
    width: 100% !important;
    text-align: center !important;
  }
  /* Botón "Encargar →" de preventa — también al fondo */
  .wp-block-woocommerce-product-collection ul.wc-block-product-template li.wc-block-product a.proxysama-btn-encargar-loop {
    margin-top: auto !important;
  }

  /* Título en cards de relacionados — padding lateral y centrado.
     Selectores de alta especificidad para ganarle al CSS de WC Blocks.
     El min-height se aplica dinámicamente via proxy-sama-front.js. */
  .wp-block-woocommerce-product-collection ul.wc-block-product-template li.wc-block-product h3.wp-block-post-title,
  .wp-block-woocommerce-product-collection ul.wc-block-product-template li.wc-block-product h3.wp-block-post-title.has-text-align-center {
    text-align: center !important;
    align-self: stretch !important;
    width: 100% !important;
  }
  .wp-block-woocommerce-product-collection ul.wc-block-product-template li.wc-block-product h3.wp-block-post-title a,
  .wp-block-woocommerce-product-collection ul.wc-block-product-template li.wc-block-product h3.wp-block-post-title.has-text-align-center a {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
  }

  /* ── Responsive: productos relacionados — 4 cols → 2 cols en tablet/mobile ── */
  /* WooCommerce inyecta --wc-blocks--product-template--columns:4 inline en el ul.
     En pantallas chicas ese valor no se sobreescribe, colapsando a 1 col.
     Usamos el mismo breakpoint que "Destacados" en homepage (768px → 2 cols). */
  @media (max-width: 768px) {
    .wp-block-woocommerce-product-collection ul.wc-block-product-template {
      --wc-blocks--product-template--columns: 2 !important;
      grid-template-columns: repeat(2, 1fr) !important;
    }
  }

  /* Precio en cards de relacionados — blanco, igual que la homepage */
  .wp-block-woocommerce-product-collection .wc-block-components-product-price {
    color: var(--white) !important;
    font-family: var(--font-display) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    margin-bottom: 14px !important;
  }

  /* ── Botón "Encargar →" en loop de preventas ─────────────────────────────── */
  /* Necesita mayor especificidad que .woocommerce a.button { background: pink !important }
     que aplica a todos los a.button dentro de WooCommerce. Usamos el selector de página. */
  .proxysama-woo-page a.button.proxysama-btn-encargar-loop,
  .woocommerce a.button.proxysama-btn-encargar-loop {
    display: block !important;
    background: transparent !important;
    border: 0.5px solid var(--border-pink) !important;
    color: var(--pink) !important;
    font-family: var(--font-body) !important;
    font-size: 11px !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
    padding: 9px 16px !important;
    border-radius: 2px !important;
    width: calc(100% - 32px) !important;
    margin: 0 16px 16px !important;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s !important;
    box-sizing: border-box !important;
    transform: none !important;
    box-shadow: none !important;
  }
  .proxysama-woo-page a.button.proxysama-btn-encargar-loop:hover,
  .woocommerce a.button.proxysama-btn-encargar-loop:hover {
    background: var(--pink) !important;
    color: #1a0a1e !important;
    border-color: var(--pink) !important;
    box-shadow: 0 8px 24px rgba(237,147,177,0.3) !important;
    transform: translateY(-2px) !important;
  }

  /* ── Link "Preventas" en el nav — color rosa especial ───────────────────── */
  .nav-link-preventas {
    color: var(--pink) !important;
  }

  /* Tags: uso interno — se ocultan en la página de producto */
  .taxonomy-product_tag.wp-block-post-terms,
  .wc-block-product-details__product-tags,
  .product_meta .tagged_as {
    display: none !important;
  }

  /* ═══════════════════════════════════════════════════════════════════════════
     CARRITO (cart) — Bloque FSE WooCommerce
     ═══════════════════════════════════════════════════════════════════════════ */

  /* ── Título de página "Carrito" ─────────────────────────────────────────── */
  .woocommerce-cart .wp-block-post-title {
    background: linear-gradient(135deg, var(--white) 0%, var(--lila) 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
  }

  .wp-block-woocommerce-cart {
    color: var(--white) !important;
    font-family: var(--font-body) !important;
  }

  /* ── Carrito vacío ──────────────────────────────────────────────────────── */
  .wp-block-woocommerce-empty-cart-block {
    padding: 32px 0 48px;
  }

  /* Ocultar ícono llorón nativo de WooCommerce (reemplazado por la maid) */
  .wc-block-cart__empty-cart__title.with-empty-cart-icon::before,
  .wc-block-cart__empty-cart__title.with-empty-cart-icon:before {
    display: none !important;
  }

  /* Ilustración maid carrito vacío */
  .proxysama-empty-cart-illustration {
    display: flex;
    justify-content: center;
    margin-bottom: 24px;
  }
  .proxysama-empty-cart-illustration img {
    width: 100%;
    max-width: 320px;
    height: auto;
    display: block;
  }

  .wc-block-cart__empty-cart__title {
    font-family: var(--font-body) !important;
    font-size: clamp(16px, 2vw, 20px) !important;
    font-weight: 400 !important;
    color: var(--text-mid) !important;
    -webkit-text-fill-color: var(--text-mid) !important;
    letter-spacing: 0 !important;
  }
  .wp-block-woocommerce-empty-cart-block .wp-block-separator {
    border-color: var(--border) !important;
    opacity: 0.5 !important;
  }
  .wp-block-woocommerce-empty-cart-block h2:not(.wc-block-cart__empty-cart__title) {
    font-family: var(--font-display) !important;
    font-size: clamp(16px, 2vw, 20px) !important;
    font-weight: 600 !important;
    color: var(--white) !important;
    -webkit-text-fill-color: var(--white) !important;
    letter-spacing: -0.01em !important;
    margin-bottom: 20px !important;
    text-decoration: underline !important;
    text-decoration-color: var(--pink) !important;
    text-underline-offset: 6px !important;
    text-decoration-thickness: 1px !important;
  }

  /* Underline rosa en el título de página del carrito */
  .woocommerce-cart .wp-block-post-title,
  .woocommerce-cart .wp-block-post-title * {
    text-decoration: underline !important;
    text-decoration-color: var(--pink) !important;
    text-underline-offset: 8px !important;
    text-decoration-thickness: 1px !important;
  }

  /* ── Grid de novedades: cards con flex-column para anclar botón abajo ───── */
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
    background: var(--bg-card) !important;
    border: 0.5px solid var(--border) !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    transition: border-color 0.2s, transform 0.2s !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product:hover {
    border-color: var(--pink-dim) !important;
    transform: translateY(-3px) !important;
  }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-link {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
    font-family: var(--font-body) !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: var(--text-mid) !important;
    line-height: 1.4 !important;
    padding: 10px 12px 4px !important;
    flex: 1 !important;
  }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price {
    color: var(--white) !important;
    font-family: var(--font-display) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    padding: 0 12px 6px !important;
  }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price .woocommerce-Price-amount {
    color: var(--white) !important;
  }

  /* Contenedor del botón al fondo */
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart {
    display: block !important;
    margin: 0 !important;
    padding: 0 12px 12px !important;
    box-sizing: border-box !important;
    width: 100% !important;
  }

  /* Botón base — estilo outline (igual al "Encargar →" de otras páginas) */
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    background: transparent !important;
    border: 0.5px solid var(--border-pink) !important;
    color: var(--pink) !important;
    font-family: var(--font-body) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
    border-radius: 2px !important;
    padding: 9px 16px !important;
    white-space: nowrap !important;
    word-break: normal !important;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s !important;
    transform: none !important;
    box-shadow: none !important;
  }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link:hover {
    background: var(--pink) !important;
    color: #1a0a1e !important;
    border-color: var(--pink) !important;
    box-shadow: 0 8px 24px rgba(237,147,177,0.3) !important;
    transform: translateY(-2px) !important;
  }

  /* ── Carrito con productos (filled) ─────────────────────────────────────── */
  .wc-block-cart-items__header span {
    font-family: var(--font-body) !important;
    font-size: 11px !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: var(--text-muted) !important;
  }
  .wc-block-cart-item__product-name,
  .wc-block-cart-item__product-name a,
  .wc-block-cart-item__wrap .wc-block-cart-item__product-name,
  .wc-block-cart-item__wrap .wc-block-cart-item__product-name a,
  .wc-block-cart__main .wc-block-cart-item__product-name a,
  .wp-block-woocommerce-cart .wc-block-cart-item__product-name a,
  .wc-block-cart-item__wrap a,
  .wc-block-cart-items .wc-block-cart-item__wrap a {
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    color: #ffffff !important;
    text-decoration: none !important;
    -webkit-text-fill-color: #ffffff !important;
  }
  .wc-block-cart-item__product-name a:hover,
  .wp-block-woocommerce-cart .wc-block-cart-item__product-name a:hover,
  .wc-block-cart-item__wrap a:hover {
    color: var(--pink) !important;
    -webkit-text-fill-color: var(--pink) !important;
  }
  .wc-block-cart-item__image img {
    border-radius: 3px !important;
    border: 0.5px solid var(--border) !important;
  }
  .wc-block-cart-item__total .wc-block-components-product-price {
    color: var(--pink) !important;
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
  }
  .wc-block-components-quantity-selector {
    background: var(--bg-card) !important;
    border: 0.5px solid var(--border) !important;
    border-radius: 3px !important;
  }
  .wc-block-components-quantity-selector input {
    background: transparent !important;
    color: var(--white) !important;
    font-family: var(--font-display) !important;
    font-size: 14px !important;
  }
  .wc-block-components-quantity-selector__button {
    background: transparent !important;
    color: var(--text-mid) !important;
    border: none !important;
  }
  .wc-block-components-quantity-selector__button:hover { color: var(--pink) !important; }
  .wc-block-cart-item__remove-link {
    color: var(--text-muted) !important;
    font-size: 12px !important;
    transition: color 0.2s !important;
  }
  .wc-block-cart-item__remove-link:hover { color: var(--pink) !important; }

  /* ── Resumen del pedido (sidebar) ───────────────────────────────────────── */
  .wp-block-woocommerce-cart-order-summary-block {
    background: var(--bg-card) !important;
    border: 0.5px solid var(--border) !important;
    border-radius: 6px !important;
    padding: 24px !important;
  }
  .wp-block-woocommerce-cart-order-summary-heading-block h2 {
    font-family: var(--font-display) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--white) !important;
    letter-spacing: -0.01em !important;
    padding-bottom: 12px !important;
    border-bottom: 0.5px solid var(--border) !important;
  }
  .wc-block-components-totals-item {
    color: var(--text-mid) !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    border-color: var(--border) !important;
  }
  .wc-block-components-totals-item__label { color: var(--text-mid) !important; }
  .wc-block-components-totals-item__value {
    color: var(--white) !important;
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
  }
  .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-family: var(--font-display) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--white) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
  }
  .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-family: var(--font-display) !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    color: var(--pink) !important;
  }
  .wc-block-components-totals-coupon__input input {
    background: var(--bg-base) !important;
    border: 0.5px solid var(--border) !important;
    border-radius: 3px !important;
    color: var(--white) !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
  }
  .wc-block-components-totals-coupon__input input:focus {
    border-color: var(--pink) !important;
    outline: none !important;
  }

  /* ── Botón "Finalizar compra" ────────────────────────────────────────────── */
  .wc-block-cart__submit-button {
    background: var(--pink) !important;
    color: #1a0a1e !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    border: none !important;
    border-radius: 3px !important;
    padding: 16px 28px !important;
    margin-top: 16px !important;
    transition: transform 0.15s, box-shadow 0.15s !important;
  }
  .wc-block-cart__submit-button:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(237,147,177,0.3) !important;
  }

  /* ── Notices ─────────────────────────────────────────────────────────────── */
  .wc-block-components-notice-banner {
    background: var(--bg-card) !important;
    border-left-color: var(--pink) !important;
    color: var(--text-mid) !important;
    font-family: var(--font-body) !important;
  }

  /* ── Imágenes de producto en grilla — cuadrado uniforme ──────────────────── */
  /* WooCommerce Blocks agrega --aspect-ratio-auto que usa la proporción natural
     de la imagen. Lo sobreescribimos para forzar cuadrado en todos los casos. */
  .wc-block-components-product-image,
  .wc-block-components-product-image--aspect-ratio-auto {
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
  }
  .wc-block-components-product-image a,
  .wc-block-components-product-image--aspect-ratio-auto a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
  }
  .wc-block-components-product-image img,
  .wc-block-components-product-image--aspect-ratio-auto img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
  }
  /* ═══════════════════════════════════════════════════════════════════════════
     ÁREA DE USUARIO — Mi Cuenta (Sub-fase 7b)
     ═══════════════════════════════════════════════════════════════════════════ */

  /* ── Título de página (h1) — mismo estilo que título de producto individual ── */
  /* Inyectado desde page.php antes de the_content(). Mismo alineado que .woocommerce
     (max-width + margin-right + padding horizontal), para que quede por encima del grid. */
  .woocommerce-account h1.wp-block-post-title {
    background: linear-gradient(135deg, var(--white) 0%, var(--lila) 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    display: block !important;
    font-size: clamp(24px, 3.5vw, 40px) !important;
    max-width: 1000px !important;
    margin-left: auto !important;
    margin-right: 300px !important;
    padding: 0 48px 16px !important;
    border-bottom: 0.5px solid var(--border) !important;
    margin-bottom: 16px !important;
  }
  /* Línea decorativa lila encima del título — igual que producto individual */
  .woocommerce-account h1.wp-block-post-title::before {
    content: '';
    display: block;
    width: 24px;
    height: 0.5px;
    background: var(--lila);
    margin-bottom: 16px;
  }

  /* ── Wrapper de página ──────────────────────────────────────────────────── */
  .woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 48px;
    align-items: start;
    max-width: 1000px;
    margin-left: auto;
    margin-right: 300px; /* deja espacio a la maid fija (280px + 20px de respiro) */
    padding: 8px 48px 0;
  }

  /* ── Nav lateral ────────────────────────────────────────────────────────── */
  /* grid-column explícito: WooCommerce con block theme invierte el orden visual */
  .woocommerce-MyAccount-navigation {
    grid-column: 1;
    grid-row: 1;
    float: none !important;
    width: auto !important;
    position: sticky;
    top: 84px;
  }

  .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  /* WooCommerce agrega margin-bottom a los <li> — lo pisamos */
  .woocommerce-MyAccount-navigation li {
    margin: 0 !important;
    padding: 0 !important;
  }

  .woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 8px 14px;
    color: var(--text-mid) !important;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 400;
    text-decoration: none !important;
    border-radius: 4px;
    letter-spacing: 0.03em;
    transition: color 0.15s, background 0.15s;
  }

  .woocommerce-MyAccount-navigation li a:hover {
    color: var(--white) !important;
    background: var(--bg-card);
  }

  .woocommerce-MyAccount-navigation li.is-active a,
  .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--active a {
    color: var(--pink) !important;
    background: rgba(237, 147, 177, 0.08);
  }

  /* ── Contenido ──────────────────────────────────────────────────────────── */
  /* WooCommerce inyecta float:right; width:68% — pisarlos para que el grid funcione */
  .woocommerce-account .woocommerce-MyAccount-content {
    grid-column: 2;
    grid-row: 1;
    float: none !important;
    width: auto !important;
    color: var(--white);
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.7;
    position: relative;
    z-index: 2;
  }

  /* ── Dashboard — saludo temático ───────────────────────────────────────── */
  .ps-dashboard-greeting {
    margin-bottom: 40px;
  }

  .ps-dashboard-greeting__kanji {
    display: block;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: none;
    color: var(--pink);
    margin-bottom: 10px;
  }

  .ps-dashboard-greeting__nombre {
    font-family: var(--font-display);
    font-size: clamp(28px, 3.5vw, 40px);
    font-weight: 800;
    line-height: 1.1;
    background: linear-gradient(135deg, var(--white) 0%, var(--lila) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 10px;
  }

  /* ── Dashboard — título de sección ─────────────────────────────────────── */
  .ps-dashboard-section-title {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 0.5px solid var(--border);
  }

  /* ── Dashboard — cupón de bienvenida ────────────────────────────────────── */
  .ps-dashboard-cupon {
    display: flex;
    align-items: center;
    gap: 14px;
    background: rgba(237, 147, 177, 0.05);
    border: 0.5px solid rgba(237, 147, 177, 0.22);
    border-left: 3px solid var(--pink);
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 28px;
  }

  .ps-dashboard-cupon__icon {
    flex-shrink: 0;
    color: var(--pink);
    display: flex;
    align-items: center;
  }

  .ps-dashboard-cupon__body {
    flex: 1;
    min-width: 0;
  }

  .ps-dashboard-cupon__titulo {
    font-size: 13px;
    font-weight: 600;
    color: var(--white);
    -webkit-text-fill-color: var(--white);
    margin: 0 0 3px;
  }

  .ps-dashboard-cupon__desc {
    font-size: 12px;
    color: var(--text-mid);
    -webkit-text-fill-color: var(--text-mid);
    margin: 0;
  }

  .ps-dashboard-cupon__code-wrap {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 6px;
  }

  .ps-dashboard-cupon__code {
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--pink);
    -webkit-text-fill-color: var(--pink);
    background: rgba(237, 147, 177, 0.1);
    border: 0.5px dashed rgba(237, 147, 177, 0.4);
    padding: 5px 10px;
    border-radius: 5px;
  }

  .ps-dashboard-cupon__copy {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 6px;
    border: 0.5px solid var(--border);
    background: var(--bg-card);
    color: var(--text-mid);
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
    -webkit-text-fill-color: unset;
  }

  .ps-dashboard-cupon__copy:hover {
    border-color: var(--lila);
    color: var(--lila);
  }

  .ps-dashboard-cupon__copy--ok {
    border-color: #48c78e !important;
    color: #48c78e !important;
  }

  /* ── Dashboard — último pedido ──────────────────────────────────────────── */
  .ps-dashboard-order {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--bg-card);
    border: 0.5px solid var(--border);
    border-radius: 10px;
    padding: 14px 14px 14px 16px;
    text-decoration: none;
    margin-bottom: 28px;
    transition: border-color 0.2s, background 0.2s;
  }

  .ps-dashboard-order:hover {
    border-color: rgba(175, 169, 236, 0.4);
    background: var(--bg-card2);
  }

  .ps-dashboard-order__thumb {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 7px;
    overflow: hidden;
    background: var(--bg-card2);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .ps-dashboard-order__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .ps-dashboard-order__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
  }

  .ps-dashboard-order__num {
    font-size: 13px;
    font-weight: 600;
    color: var(--white);
    -webkit-text-fill-color: var(--white);
  }

  .ps-dashboard-order__meta {
    font-size: 12px;
    color: var(--text-muted);
    -webkit-text-fill-color: var(--text-muted);
  }

  .ps-dashboard-order__right {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
  }

  .ps-dashboard-order__status {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    -webkit-text-fill-color: unset; /* no heredar gradient */
  }

  .ps-dashboard-order__total {
    font-size: 13px;
    font-weight: 700;
    color: var(--white);
    -webkit-text-fill-color: var(--white);
  }

  .ps-dashboard-order__arrow {
    flex-shrink: 0;
    color: var(--text-muted);
    margin-left: 2px;
  }

  /* ── Dashboard — grid de accesos rápidos ────────────────────────────────── */
  .ps-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }

  .ps-dashboard-card {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--bg-card);
    border: 0.5px solid var(--border);
    border-radius: 10px;
    padding: 12px 10px 12px 14px;
    text-decoration: none;
    transition: border-color 0.2s, background 0.2s;
  }

  .ps-dashboard-card:hover {
    border-color: rgba(175, 169, 236, 0.35);
    background: var(--bg-card2);
  }

  .ps-dashboard-card__icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: rgba(175, 169, 236, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lila);
  }

  .ps-dashboard-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .ps-dashboard-card__label {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-mid);
    -webkit-text-fill-color: var(--text-mid);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .ps-dashboard-card__count {
    font-size: 11px;
    color: var(--text-muted);
    -webkit-text-fill-color: var(--text-muted);
  }

  .ps-dashboard-card__count--active {
    color: var(--pink);
    -webkit-text-fill-color: var(--pink);
    font-weight: 600;
  }

  .ps-dashboard-card__arrow {
    flex-shrink: 0;
    color: var(--text-muted);
    opacity: 0.45;
    transition: opacity 0.2s;
  }

  .ps-dashboard-card:hover .ps-dashboard-card__arrow {
    opacity: 0.8;
  }

  /* Responsive — 2 columnas en pantallas angostas */
  @media (max-width: 620px) {
    .ps-dashboard-grid {
      grid-template-columns: repeat(2, 1fr);
    }
    .ps-dashboard-cupon {
      flex-wrap: wrap;
    }
    .ps-dashboard-cupon__code-wrap {
      flex-basis: 100%;
    }
    .ps-dashboard-order__right {
      display: none;
    }
  }

  /* ── Endpoints custom — pantalla placeholder (aún no implementados) ─────── */
  .ps-account-empty {
    position: relative;
    padding: 16px 0 48px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .ps-account-empty__kanji {
    position: absolute;
    top: -8px;
    left: -4px;
    font-family: var(--font-display);
    font-size: clamp(56px, 8vw, 88px);
    font-weight: 800;
    color: rgba(237, 147, 177, 0.07);
    line-height: 1;
    user-select: none;
    pointer-events: none;
    z-index: 0;
  }

  /* Título, descripción y badge por encima del kanji decorativo */
  .ps-account-empty__titulo,
  .ps-account-empty__desc,
  .ps-account-empty__badge {
    position: relative;
    z-index: 1;
  }

  .ps-account-empty__desc {
    font-size: 14px;
    color: var(--text-mid) !important;
    margin: 0 !important;
    max-width: 360px;
    line-height: 1.6;
  }

  .ps-account-empty__badge {
    display: inline-flex;
    align-items: center;
    font-size: 10px;
    font-family: var(--font-body);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--lila);
    border: 0.5px solid rgba(175, 169, 236, 0.22);
    padding: 5px 12px;
    border-radius: 20px;
    margin-top: 6px;
  }

  /* ── Nav mobile — select nativo (oculto en desktop) ────────────────────── */
  .ps-account-nav-select {
    display: none; /* visible solo en mobile via breakpoint */
  }

  /* ═══════════════════════════════════════════════════════════════════════════
     SUB-FASE 7d — Mis Encargos
     ═══════════════════════════════════════════════════════════════════════════ */

  .ps-encargos-empty {
    position: relative;
    padding: 20px 0 56px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .ps-encargos-empty__kanji {
    position: absolute;
    top: -4px;
    left: -4px;
    font-family: var(--font-display);
    font-size: clamp(56px, 8vw, 88px);
    font-weight: 800;
    color: rgba(237, 147, 177, 0.06);
    line-height: 1;
    user-select: none;
    pointer-events: none;
    z-index: 0;
  }

  .ps-encargos-empty__msg,
  .ps-encargos-empty__sub,
  .ps-encargos-empty__cta { position: relative; z-index: 1; }

  .ps-encargos-empty__msg { font-size: 16px; font-weight: 500; color: var(--white); margin: 0; }

  .ps-encargos-empty__sub {
    font-size: 13px;
    color: var(--text-mid);
    margin: 0;
    max-width: 340px;
    line-height: 1.6;
  }

  .ps-encargos-empty__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pink);
    text-decoration: none;
    border: 0.5px solid var(--border-pink);
    padding: 8px 16px;
    border-radius: 20px;
    margin-top: 4px;
    transition: background 0.18s, color 0.18s;
  }

  .ps-encargos-empty__cta:hover { background: var(--pink-glow); color: var(--white); }

  .ps-encargos { display: flex; flex-direction: column; gap: 16px; }

  .ps-encargo-card {
    display: grid;
    grid-template-columns: 88px 1fr auto;
    gap: 0;
    background: var(--bg-card);
    border: 0.5px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    transition: border-color 0.18s;
  }

  .ps-encargo-card:hover { border-color: rgba(175, 169, 236, 0.32); }
  .ps-encargo-card--pendiente  { border-left: 3px solid rgba(251, 191, 36, 0.6); }
  .ps-encargo-card--confirmado { border-left: 3px solid rgba(72, 199, 142, 0.65); }
  .ps-encargo-card--cancelado  { border-left: 3px solid rgba(237, 147, 177, 0.35); opacity: 0.65; }

  .ps-encargo-card__img {
    display: block;
    width: 88px;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--bg-card2);
    align-self: center;
    margin: 12px 0 12px 12px;
    border-radius: 6px;
  }

  .ps-encargo-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.25s;
  }

  .ps-encargo-card:hover .ps-encargo-card__img img { transform: scale(1.04); }

  .ps-encargo-card__img-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    color: rgba(237, 147, 177, 0.3);
  }

  .ps-encargo-card__body {
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
  }

  .ps-encargo-card__top { display: flex; align-items: center; gap: 10px; }

  .ps-encargo-card__num {
    font-family: 'Courier New', Courier, monospace;
    font-size: 11px;
    color: var(--lila);
    letter-spacing: 0.1em;
  }

  .ps-encargo-card__estado {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 20px;
  }

  .ps-encargo-card__estado--pendiente {
    background: rgba(251, 191, 36, 0.12);
    color: rgb(251, 191, 36);
    border: 0.5px solid rgba(251, 191, 36, 0.3);
  }

  .ps-encargo-card__estado--confirmado {
    background: rgba(72, 199, 142, 0.12);
    color: rgb(72, 199, 142);
    border: 0.5px solid rgba(72, 199, 142, 0.3);
  }

  .ps-encargo-card__estado--cancelado {
    background: rgba(237, 147, 177, 0.1);
    color: var(--pink);
    border: 0.5px solid var(--border-pink);
  }

  .ps-encargo-card__nombre {
    font-size: 14px;
    font-weight: 500;
    color: var(--white) !important;
    text-decoration: none !important;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    -webkit-text-fill-color: var(--white) !important;
  }

  .ps-encargo-card__nombre:hover {
    color: var(--lila) !important;
    -webkit-text-fill-color: var(--lila) !important;
  }

  .ps-encargo-card__meta { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 4px; }
  .ps-encargo-card__meta-item { display: flex; flex-direction: column; gap: 1px; }

  .ps-encargo-card__meta-label {
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
  }

  .ps-encargo-card__meta-value { font-size: 13px; color: var(--text-mid); }

  .ps-encargo-card__meta-value--sena {
    font-size: 15px;
    font-weight: 600;
    color: var(--pink) !important;
    -webkit-text-fill-color: var(--pink) !important;
  }

  .ps-encargo-card__comentario {
    font-size: 12px;
    color: var(--text-muted) !important;
    font-style: italic;
    margin: 0 !important;
    border-left: 2px solid var(--border);
    padding-left: 10px;
    line-height: 1.5;
  }

  .ps-encargo-card__actions {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 14px 14px 14px 0;
  }

  .ps-encargo-card__wa {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 10px 12px;
    background: rgba(37, 211, 102, 0.1);
    border: 0.5px solid rgba(37, 211, 102, 0.25);
    border-radius: 8px;
    color: rgb(37, 211, 102) !important;
    -webkit-text-fill-color: rgb(37, 211, 102) !important;
    text-decoration: none !important;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: center;
    white-space: nowrap;
    transition: background 0.18s, border-color 0.18s;
  }

  .ps-encargo-card__wa:hover {
    background: rgba(37, 211, 102, 0.18);
    border-color: rgba(37, 211, 102, 0.45);
  }

  .ps-encargo-card__wa svg { width: 22px; height: 22px; flex-shrink: 0; }

  /* ── Columna maid (fixed, lado derecho del viewport) ───────────────────── */
  .ps-account-maid-col {
    position: fixed;
    right: 0;
    top: 64px;
    bottom: 0;
    width: 280px;
    overflow: hidden;
    pointer-events: none;
    z-index: 1;
  }

  .ps-account-maid-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: top center;
    mask-image: linear-gradient(to bottom, black 55%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, black 55%, transparent 100%);
    animation: maidFadeIn 0.9s cubic-bezier(0.16,1,0.3,1) both;
    animation-delay: 0.15s;
  }

  /* Placeholder cuando no existe la imagen todavía */
  .ps-account-maid-placeholder {
    width: 100%;
    height: 100%;
    border-left: 1px dashed rgba(175,169,236,0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: rgba(175,169,236,0.35);
    font-size: 11px;
    font-family: var(--font-body);
    letter-spacing: 0.04em;
    line-height: 1.6;
    padding: 16px;
  }

  @keyframes maidFadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  .woocommerce-MyAccount-content p {
    color: var(--text-mid);
    margin-bottom: 12px;
  }

  .woocommerce-MyAccount-content a {
    color: var(--lila) !important;
    text-decoration: none;
    transition: color 0.15s;
  }

  .woocommerce-MyAccount-content a:hover {
    color: var(--pink) !important;
  }

  /* ── Formulario de login (no logueado) ──────────────────────────────────── */
  /* WooCommerce usa un layout de dos columnas (Login | Registro) con float.
     En nuestra página de una columna centramos el form y corregimos colores. */
  /* Estado no logueado: el .woocommerce tiene 3 hijos directos (notices, h2, form)
     que caen en filas de grid con 48px de gap. Cambiamos a block para evitarlo. */
  .woocommerce-account:not(.logged-in) .woocommerce {
    display: block;
    max-width: 520px;
    padding: 0 0 48px;
  }

  /* Ocultar el wrapper de notices vacío que agrega espacio.
     Se muestra de nuevo cuando tiene contenido real (error de login, etc.) */
  .woocommerce-account:not(.logged-in) .woocommerce-notices-wrapper {
    display: none;
  }
  .woocommerce-account:not(.logged-in) .woocommerce-notices-wrapper:has(> *) {
    display: block;
    margin-bottom: 24px;
  }

  /* Error de login — estilo temático */
  .woocommerce-account:not(.logged-in) .woocommerce-error {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
  }
  .woocommerce-account:not(.logged-in) .woocommerce-error li {
    background: rgba(237, 147, 177, 0.08) !important;
    border: 0.5px solid rgba(237, 147, 177, 0.35) !important;
    border-left: 3px solid var(--pink) !important;
    border-radius: 6px !important;
    color: var(--text-mid) !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    padding: 12px 16px !important;
    margin: 0 !important;
  }
  /* Quitar íconos que WooCommerce agrega via ::before al ul y al li
     (usa la WooCommerce icon font con position:absolute — queda encima del texto) */
  .woocommerce-account:not(.logged-in) .woocommerce-error::before,
  .woocommerce-account:not(.logged-in) .woocommerce-error::after,
  .woocommerce-account:not(.logged-in) .woocommerce-error li::before,
  .woocommerce-account:not(.logged-in) .woocommerce-error li::after {
    display: none !important;
    content: none !important;
  }
  /* Por si WC inyecta un SVG inline dentro del li */
  .woocommerce-account:not(.logged-in) .woocommerce-error li > svg {
    display: none !important;
  }

  .woocommerce-account .u-columns {
    display: block;
  }

  /* Títulos de sección (h2) dentro del formulario */
  .woocommerce-account h2,
  .woocommerce-account .woocommerce-column__title {
    color: var(--white) !important;
    font-family: var(--font-display) !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    margin-bottom: 20px !important;
  }

  /* Labels de los inputs */
  .woocommerce-account .woocommerce-form__label,
  .woocommerce-account label {
    color: var(--text-mid) !important;
    font-family: var(--font-body) !important;
    font-size: 12px !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    margin-bottom: 6px !important;
    display: block !important;
  }

  /* Asterisco de campo requerido — inline para no forzar salto de línea */
  .woocommerce-account label .required,
  .woocommerce-account label abbr.required {
    display: inline !important;
    color: var(--pink) !important;
    text-decoration: none !important;
    margin-left: 2px !important;
  }

  /* Inputs y selects */
  .woocommerce-account .woocommerce-Input,
  .woocommerce-account input[type="text"],
  .woocommerce-account input[type="email"],
  .woocommerce-account input[type="password"],
  .woocommerce-account input[type="tel"],
  .woocommerce-account select {
    background: var(--bg-card) !important;
    border: 0.5px solid var(--border) !important;
    border-radius: 4px !important;
    color: var(--white) !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    padding: 10px 14px !important;
    width: 100% !important;
    transition: border-color 0.15s !important;
  }

  /* Select: flecha nativa se ve mal sobre fondo oscuro — la reemplazamos */
  .woocommerce-account select {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23AFA9EC' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    padding-right: 36px !important;
  }

  /* Placeholder de los selects ("Seleccioná un país...", "Elegí una opción...") */
  .woocommerce-account select option[value=""] {
    color: var(--text-mid) !important;
  }

  /* ── Select2 (País/Región y Provincia — WooCommerce los reemplaza con Select2) ── */
  /* Contenedor visible */
  .woocommerce-account .select2-container--default .select2-selection--single {
    background: var(--bg-card) !important;
    border: 0.5px solid var(--border) !important;
    border-radius: 4px !important;
    height: auto !important;
    padding: 10px 36px 10px 14px !important;
  }

  .woocommerce-account .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--white) !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    padding: 0 !important;
  }

  /* Placeholder */
  .woocommerce-account .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--text-mid) !important;
  }

  /* Flecha — ocultamos la nativa y usamos la misma SVG lila */
  .woocommerce-account .select2-container--default .select2-selection--single .select2-selection__arrow {
    display: none !important;
  }

  .woocommerce-account .select2-container--default .select2-selection--single {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23AFA9EC' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
  }

  /* Focus */
  .woocommerce-account .select2-container--default.select2-container--focus .select2-selection--single,
  .woocommerce-account .select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--lila) !important;
    outline: none !important;
  }

  .woocommerce-account input[type="text"]:focus,
  .woocommerce-account input[type="email"]:focus,
  .woocommerce-account input[type="password"]:focus,
  .woocommerce-account input[type="tel"]:focus,
  .woocommerce-account select:focus {
    border-color: var(--lila) !important;
    outline: none !important;
  }

  /* Botón principal */
  .woocommerce-account .woocommerce-Button,
  .woocommerce-account .button {
    background: var(--pink) !important;
    color: #1a0a1e !important;
    font-family: var(--font-body) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 12px 24px !important;
    cursor: pointer !important;
    transition: transform 0.15s, box-shadow 0.15s !important;
  }

  .woocommerce-account .woocommerce-Button:hover,
  .woocommerce-account .button:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(237,147,177,0.3) !important;
  }

  /* Link "¿Olvidaste la contraseña?" */
  .woocommerce-account .woocommerce-LostPassword a {
    color: var(--lila) !important;
    font-size: 13px !important;
  }

  /* Checkbox "Recordarme" */
  .woocommerce-account .woocommerce-form__label-for-checkbox {
    color: var(--text-mid) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 13px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
  }

  /* ── Sección Direcciones ────────────────────────────────────────────────── */
  /* WooCommerce pone h3 y link "Agregar" en un flex row con space-between,
     lo que empuja el link a la derecha. Apilamos verticalmente. */
  .woocommerce-Address-title {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 6px !important;
    margin-bottom: 16px !important;
  }

  .woocommerce-Address-title h3 {
    margin: 0 !important;
  }

  /* ── Mobile / tablet angosto (< 1100px) ────────────────────────────────── */
  @media (max-width: 1100px) {
    /* Grid pasa a una sola columna, sin margen derecho para la maid */
    .woocommerce-account .woocommerce {
      grid-template-columns: 1fr;
      margin-right: auto;
      gap: 24px;
      padding: 88px 20px 48px;
    }

    /* Columna maid: oculta en mobile */
    .ps-account-maid-col {
      display: none;
    }

    /* Select: visible en mobile con estilos completos */
    .ps-account-nav-select {
      display: block;
      order: -1;
      width: 100%;
      background: var(--bg-card);
      color: var(--white);
      border: 0.5px solid rgba(175, 169, 236, 0.35);
      border-radius: 6px;
      padding: 10px 14px;
      font-family: var(--font-body);
      font-size: 13px;
      font-weight: 400;
      cursor: pointer;
      appearance: none;
      -webkit-appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23AFA9EC' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 14px center;
      padding-right: 36px;
    }

    .ps-account-nav-select option {
      background: #1a1830;
      color: var(--white);
    }

    /* Nav: oculto en mobile */
    .woocommerce-MyAccount-navigation {
      display: none;
    }

    /* Contenido: siempre fila 2 en mobile */
    .woocommerce-account .woocommerce-MyAccount-content {
      grid-column: 1;
      grid-row: 2;
    }

    /* Campos lado a lado (Nombre / Apellidos, etc.)
       WooCommerce usa float + 47% — los apilamos en mobile */
    .woocommerce-account .form-row-first,
    .woocommerce-account .form-row-last,
    .woocommerce-account .woocommerce-form-row--first,
    .woocommerce-account .woocommerce-form-row--last {
      float: none !important;
      width: 100% !important;
    }

    /* Encargo cards en mobile */
    .ps-encargo-card {
      grid-template-columns: 72px 1fr;
      grid-template-rows: auto auto;
    }

    .ps-encargo-card__img {
      width: 72px;
      grid-row: 1;
      margin: 10px 0 10px 10px;
    }

    .ps-encargo-card__body { grid-row: 1; padding: 12px; }

    .ps-encargo-card__actions {
      grid-column: 1 / -1;
      grid-row: 2;
      flex-direction: row;
      padding: 0 12px 12px;
    }

    .ps-encargo-card__wa {
      flex-direction: row;
      gap: 8px;
      white-space: normal;
      width: 100%;
      justify-content: center;
    }

    .ps-encargo-card__wa svg { width: 18px; height: 18px; }
  }

  /* Formulario de contraseña perdida — el único campo tiene clase form-row-first
     por defecto de WC (asume layout de dos columnas), pero acá va solo: full width */
  .woocommerce-ResetPassword .form-row-first,
  .woocommerce-ResetPassword .form-row-last,
  .woocommerce-ResetPassword .woocommerce-form-row--first,
  .woocommerce-ResetPassword .woocommerce-form-row--last {
    float: none !important;
    width: 100% !important;
  }

  /* ── Tabs Ingresar / Crear cuenta (Sub-fase 7c registro) ───────────────── */
  /* WooCommerce renderiza login y registro en dos columnas (.u-column1 y .u-column2).
     Los tabs ocultan una columna a la vez y permiten cambiar con JS.
     El atributo [data-ps-tab] se pone en #customer_login por el JS del footer. */

  .ps-account-tabs {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--border);
    margin-bottom: 28px;
  }

  .ps-account-tab {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--text-mid);
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.04em;
    padding: 10px 20px 10px 0;
    margin-bottom: -1px;     /* solapamos el border-bottom del wrapper */
    text-transform: uppercase;
    transition: color 0.15s, border-color 0.15s;
  }

  .ps-account-tab:hover {
    color: var(--white);
  }

  .ps-account-tab.ps-account-tab--active {
    color: var(--pink);
    border-bottom-color: var(--pink);
  }

  /* Columnas WC: por defecto solo mostramos login */
  .woocommerce-account:not(.logged-in) #customer_login .u-column2 {
    display: none !important;
  }

  /* Cuando el tab de registro está activo */
  .woocommerce-account:not(.logged-in) #customer_login[data-ps-tab="register"] .u-column2 {
    display: block !important;
  }

  .woocommerce-account:not(.logged-in) #customer_login[data-ps-tab="register"] .u-column1 {
    display: none !important;
  }

  /* Fix: WooCommerce aplica float:left/right + width:47% a las columnas del layout
     de dos columnas (Login | Registro). Con un solo tab visible a la vez, la columna
     flotada ocupa solo la mitad del contenedor y deja el resto en blanco.
     Reseteamos para que la columna activa ocupe el 100% del ancho disponible. */
  .woocommerce-account:not(.logged-in) #customer_login .u-column1,
  .woocommerce-account:not(.logged-in) #customer_login .u-column2 {
    float: none !important;
    width: 100% !important;
    padding: 0 !important;
  }

  /* h2 dentro de cada columna — ya cubierto por .woocommerce-account h2, pero
     ocultamos el que WC pone dentro del formulario ya que el tab lo reemplaza */
  .woocommerce-account:not(.logged-in) #customer_login .u-column1 h2,
  .woocommerce-account:not(.logged-in) #customer_login .u-column2 h2 {
    display: none !important;
  }

  /* ── Formulario de registro — estilos adicionales ───────────────────────── */

  /* Privacy policy text — WooCommerce puede inyectar una nota de privacidad */
  .woocommerce-account .woocommerce-privacy-policy-text {
    color: var(--text-muted) !important;
    font-size: 12px !important;
    line-height: 1.6 !important;
    margin-bottom: 16px !important;
  }

  .woocommerce-account .woocommerce-privacy-policy-text a {
    color: var(--lila) !important;
  }

  /* Password strength meter (indicator bar que WC muestra al tipear la contraseña) */
  .woocommerce-account .woocommerce-password-strength {
    font-size: 11px !important;
    font-family: var(--font-body) !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    padding: 4px 10px !important;
    border-radius: 4px !important;
    margin-top: 6px !important;
    display: inline-block !important;
  }

  /* Colores por nivel de seguridad */
  .woocommerce-account .woocommerce-password-strength.short     { background: rgba(237,147,177,0.15) !important; color: var(--pink) !important; }
  .woocommerce-account .woocommerce-password-strength.bad       { background: rgba(237,147,177,0.15) !important; color: var(--pink) !important; }
  .woocommerce-account .woocommerce-password-strength.good      { background: rgba(175,169,236,0.15) !important; color: var(--lila) !important; }
  .woocommerce-account .woocommerce-password-strength.strong    { background: rgba(147,237,147,0.12) !important; color: #7de0a0 !important; }
  .woocommerce-account .woocommerce-password-hint {
    font-size: 11px !important;
    color: var(--text-muted) !important;
    font-family: var(--font-body) !important;
    margin-top: 4px !important;
    display: block !important;
  }

  /* Checkbox de spam: WooCommerce lo genera como honeypot (display:none por defecto).
     Nos aseguramos de que no rompa el layout si queda visible */
  .woocommerce-account .woocommerce-form__input-checkbox {
    width: auto !important;
    margin-right: 8px;
  }

  /* Aviso de éxito de registro — igual al estilo de error pero en lila */
  .woocommerce-account .woocommerce-message {
    background: rgba(175, 169, 236, 0.08) !important;
    border: 0.5px solid rgba(175, 169, 236, 0.3) !important;
    border-left: 3px solid var(--lila) !important;
    border-radius: 6px !important;
    color: var(--text-mid) !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    padding: 12px 16px !important;
    list-style: none !important;
    margin: 0 0 20px !important;
  }

  .woocommerce-account .woocommerce-message::before,
  .woocommerce-account .woocommerce-message::after {
    display: none !important;
    content: none !important;
  }

/* ═══════════════════════════════════════════════════════════════════════════
   SELECT2 DROPDOWN GLOBAL — el panel se inyecta en <body>, fuera de
   .woocommerce-account, así que no puede tener ese selector padre.
   ═══════════════════════════════════════════════════════════════════════════ */
.select2-dropdown {
  background: var(--bg-card) !important;
  border: 0.5px solid var(--border) !important;
  border-radius: 4px !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
  background: var(--bg-base) !important;
  border: 0.5px solid var(--border) !important;
  border-radius: 4px !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  padding: 8px 10px !important;
}

.select2-container--default .select2-results__option {
  color: var(--text-mid) !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  padding: 8px 14px !important;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
  background: rgba(175, 169, 236, 0.15) !important;
  color: var(--white) !important;
}

.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] {
  background: rgba(237, 147, 177, 0.1) !important;
  color: var(--pink) !important;
}

/* ── Adult Content Gate ──────────────────────────────────────────────────────
   Placeholder para imágenes +18 (renders PHP clásicos y destacados JS)
   Overlay JS para WC Blocks
   Modal de confirmación de edad
   ─────────────────────────────────────────────────────────────────────────── */

/* Placeholder PHP-rendered y destacados */
.adult-img-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  background: linear-gradient(135deg, #1a1830 0%, #0f0e22 100%);
  border: 1px solid rgba(175, 169, 236, 0.2);
  border-radius: 8px;
  cursor: pointer;
  text-align: center;
  padding: 12px;
  box-sizing: border-box;
  transition: border-color 0.2s, background 0.2s;
  /* Standalone (destacados homepage, loops clásicos fuera de figure) */
  position: relative;
  aspect-ratio: 3 / 4;
}
/* Dentro de figure.wc-block-components-product-image (grid de categorías,
   productos relacionados) o dentro de .product-img (homepage) →
   posicionamiento estático para que la figure tome el alto del placeholder.
   aspect-ratio 1/1 coincide con las imágenes cuadradas de los cards WC. */
.wc-block-components-product-image > .adult-img-placeholder,
.product-img > .adult-img-placeholder {
  position: relative;
  inset: unset;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  border-radius: 0;
  border: none;
}
.adult-img-placeholder:hover,
.adult-img-placeholder:focus {
  border-color: rgba(175, 169, 236, 0.55);
  background: linear-gradient(135deg, #1f1d40 0%, #141230 100%);
  outline: none;
}
.adult-img-placeholder__icon  { font-size: 1.2rem; line-height: 1; }
.adult-img-placeholder__label {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  color: #AFA9EC;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.adult-img-placeholder__cta {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.68rem;
  color: rgba(237, 147, 177, 0.8);
  margin-top: 2px;
}
/* En cards de grid (dentro de figure 1:1): ícono más grande, label visible, CTA oculto */
.wc-block-components-product-image > .adult-img-placeholder .adult-img-placeholder__icon {
  font-size: 2.5rem;
}
.wc-block-components-product-image > .adult-img-placeholder .adult-img-placeholder__cta {
  display: none;
}

/* Overlay JS para tarjetas de WC Blocks */
.adult-block-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: linear-gradient(135deg, rgba(10, 10, 22, 0.93) 0%, rgba(15, 14, 34, 0.96) 100%);
  border-radius: 8px;
  cursor: pointer;
  z-index: 10;
  text-align: center;
  padding: 16px;
  box-sizing: border-box;
  transition: background 0.2s;
}
.adult-block-overlay:hover,
.adult-block-overlay:focus {
  background: linear-gradient(135deg, rgba(25, 24, 50, 0.96) 0%, rgba(20, 18, 48, 0.98) 100%);
  outline: none;
}
.adult-block-overlay__icon  { font-size: 2rem; line-height: 1; }
.adult-block-overlay__label {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  color: #AFA9EC;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.adult-block-overlay__cta {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.68rem;
  color: rgba(237, 147, 177, 0.8);
}

/* Overlay en thumbnail del carrito: solo ícono, sin label/cta (espacio reducido) */
.adult-block-overlay--cart {
  border-radius: 4px;
}
.adult-block-overlay--cart .adult-block-overlay__label,
.adult-block-overlay--cart .adult-block-overlay__cta {
  display: none;
}
.adult-block-overlay--cart .adult-block-overlay__icon {
  font-size: 1.4rem;
}

/* Modal overlay */
.adult-gate-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(5, 4, 15, 0.85);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  z-index: 99999;
  padding: 20px;
  box-sizing: border-box;
}
/* hidden attribute + display:flex necesita override explícito */
.adult-gate-overlay[hidden] { display: none !important; }

.adult-gate-modal {
  background: linear-gradient(160deg, #141228 0%, #0d0c1e 100%);
  border: 1px solid rgba(175, 169, 236, 0.22);
  border-radius: 16px;
  padding: 40px 32px;
  max-width: 420px;
  width: 100%;
  text-align: center;
  box-shadow:
    0 24px 64px rgba(0, 0, 0, 0.6),
    0 0 0 1px rgba(237, 147, 177, 0.07);
}
.adult-gate-modal__icon {
  font-size: 3rem;
  line-height: 1;
  margin-bottom: 16px;
}
.adult-gate-modal__heading {
  font-family: 'Shippori Mincho', serif;
  font-size: 1.5rem;
  font-weight: 600;
  margin: 0 0 12px;
  background: linear-gradient(135deg, #ffffff 0%, #AFA9EC 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.adult-gate-modal__body {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.62);
  line-height: 1.65;
  margin: 0 0 28px;
}
.adult-gate-modal__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.adult-gate-modal__btn {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  padding: 13px 24px;
  border-radius: 50px;
  border: none;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.1s;
  letter-spacing: 0.02em;
}
.adult-gate-modal__btn:active { transform: scale(0.97); }
.adult-gate-modal__btn--yes {
  background: linear-gradient(135deg, #ED93B1 0%, #AFA9EC 100%);
  color: #0a0a16;
  font-weight: 600;
}
.adult-gate-modal__btn--yes:hover { opacity: 0.88; }
.adult-gate-modal__btn--no {
  background: transparent;
  color: rgba(255, 255, 255, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.14);
}
.adult-gate-modal__btn--no:hover {
  color: rgba(255, 255, 255, 0.68);
  border-color: rgba(255, 255, 255, 0.28);
}

@media (max-width: 480px) {
  .adult-gate-modal {
    padding: 32px 20px;
    border-radius: 12px;
  }
  .adult-gate-modal__heading { font-size: 1.25rem; }
  .adult-gate-modal__body    { font-size: 0.85rem; }
}

/* Wrapper del placeholder de galería en single product
   (reemplaza el bloque woocommerce/product-image-gallery completo) */
.proxysama-gallery-placeholder {
  width: 100%;
  display: block;
}
.proxysama-gallery-placeholder .adult-img-placeholder--single {
  width: 100%;
  border-radius: 12px;
}

/* Placeholder para galería de producto individual (+18):
   usa adult-img-placeholder--single, hereda el estilo base */
.adult-img-placeholder--single {
  min-height: 420px;
}
.adult-img-placeholder--single .adult-img-placeholder__icon  { font-size: 3.5rem; }
.adult-img-placeholder--single .adult-img-placeholder__label { font-size: 0.85rem; }
.adult-img-placeholder--single .adult-img-placeholder__cta   { font-size: 0.8rem; margin-top: 4px; }

@media (max-width: 768px) {
  .adult-img-placeholder--single { min-height: 260px; }
}

/* ── Toast de error WC Blocks ──────────────────────────────────────────────── */
/* Aparece en la parte inferior de la pantalla cuando WC Blocks genera un error */
/* de stock al agregar al carrito. Oculta el notice original de la parte superior. */
.proxysama-wc-toast {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%) translateY(0);
  z-index: 99998;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: var(--bg-card2);
  border: 1px solid rgba(237, 147, 177, 0.35);
  border-left: 3px solid var(--pink);
  color: var(--white);
  padding: 14px 20px;
  border-radius: 4px;
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.5;
  max-width: 520px;
  width: calc(100% - 48px);
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(237, 147, 177, 0.08);
  animation: toastSlideUp 0.3s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.proxysama-wc-toast.proxysama-wc-toast--out {
  animation: toastSlideDown 0.35s ease forwards;
}
.proxysama-wc-toast__icon {
  font-size: 15px;
  flex-shrink: 0;
  margin-top: 1px;
  color: var(--pink);
}
.proxysama-wc-toast--success {
  border-color: rgba(72, 199, 142, 0.35);
  border-left-color: #48c78e;
}
.proxysama-wc-toast--success .proxysama-wc-toast__icon {
  color: #48c78e;
}
@keyframes toastSlideUp {
  from { opacity: 0; transform: translateX(-50%) translateY(20px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
@keyframes toastSlideDown {
  from { opacity: 1; transform: translateX(-50%) translateY(0); }
  to   { opacity: 0; transform: translateX(-50%) translateY(16px); }
}
@media (max-width: 600px) {
  .proxysama-wc-toast {
    bottom: 16px;
    font-size: 12px;
    padding: 12px 16px;
  }
}


/* ── ÁREA DE USUARIO — Página /ingresar/ (Sub-fase 7a) ─────────────────────
   Layout dos columnas: formulario a la izquierda, ilustración a la derecha.
   El body tiene .woocommerce-account agregado por hook 25f, por lo que
   todos los estilos de Mi Cuenta (campos, tabs, errores) aplican aquí sin
   necesidad de duplicar ninguna regla. Solo se agrega el layout wrapper. */

.ps-ingresar-main {
  min-height: calc(100vh - 80px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 20px 80px;
}

.ps-ingresar-card {
  width: 100%;
  max-width: 1080px;
  background: var(--bg-card);
  border: 1px solid rgba(175, 169, 236, 0.15);
  border-radius: 16px;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 6fr);
  box-shadow:
    0 24px 60px rgba(237, 147, 177, 0.07),
    0 1px 0 rgba(255, 255, 255, 0.02) inset;
}

.ps-ingresar-formcol {
  padding: 44px;
}

/* Columna derecha — sin márgenes para que la imagen toque los bordes del card */
.ps-ingresar-illust {
  position: relative;
  border-radius: 0 16px 16px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 12px;
  min-height: 520px;
  overflow: hidden;
  align-self: stretch;
}

/* Fondo y borde punteado solo cuando NO hay imagen (placeholder activo) */
.ps-ingresar-illust:not(:has(.ps-ingresar-illust-img)) {
  margin: 18px;
  border-radius: 12px;
  background: #1a1835;
  border: 1.5px dashed rgba(175, 169, 236, 0.3);
}

.ps-ingresar-illust::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 50% at 50% 35%, rgba(237, 147, 177, 0.06), transparent 70%),
    radial-gradient(60% 50% at 50% 85%, rgba(175, 169, 236, 0.06), transparent 70%);
  pointer-events: none;
}

.ps-ingresar-illust-tag {
  position: relative;
  color: var(--lila);
  font-family: var(--font-display, 'Shippori Mincho', serif);
  font-size: 16px;
  letter-spacing: 0.04em;
  padding: 8px 18px;
  border: 1px solid rgba(175, 169, 236, 0.25);
  border-radius: 99px;
  background: rgba(10, 10, 22, 0.4);
}

.ps-ingresar-illust-sub {
  position: relative;
  color: var(--text-muted);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Cuando el SVG esté listo, se muestra llenando el aside de borde a borde */
.ps-ingresar-illust-img {
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
  height: auto;
}

/* Anular el grid sidebar de Mi Cuenta: en /ingresar/ no hay nav lateral */
body.page-ingresar .woocommerce-account .woocommerce,
body.page-ingresar .woocommerce {
  display: block !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* El notices wrapper en /ingresar/ va arriba del form, sin padding extra */
body.page-ingresar .woocommerce-notices-wrapper {
  margin-bottom: 0;
}

/* Responsive — ocultar ilustración en mobile */
@media (max-width: 880px) {
  .ps-ingresar-card {
    grid-template-columns: 1fr;
  }

  .ps-ingresar-illust {
    display: none;
  }
}

@media (max-width: 540px) {
  .ps-ingresar-formcol {
    padding: 28px 22px;
  }
}

/* Entre 880px y 1080px el formulario wrappea y la columna crece en altura,
   pero la imagen dimensionada por ancho no alcanza a llenarlo.
   Solución: dimensionar por altura en ese rango. */
@media (max-width: 1080px) and (min-width: 881px) {
  .ps-ingresar-illust {
    height: 100%;
  }
  .ps-ingresar-illust-img {
    width: auto;
    height: 100%;
    min-width: 100%;
    left: 50%;
    transform: translateX(-50%);
  }
}


/* ── /ingresar/ — Ajustes visuales (ronda 2) ───────────────────────────────
   Títulos/subtítulos inyectados, botones Google/Apple, layout del form,
   separación respecto al nav. */

/* Más respiro entre nav y card */
.ps-ingresar-main {
  padding-top: 80px;
}

/* Título + subtítulo sobre cada formulario (inyectados por hook 30g) */
.ps-ingresar-form-head {
  margin-bottom: 26px;
}

.ps-ingresar-title {
  font-family: var(--font-display, 'Shippori Mincho', serif);
  font-weight: 600;
  font-size: 30px;
  line-height: 1.15;
  margin: 0 0 8px;
  background: linear-gradient(92deg, var(--pink) 0%, var(--lila) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.ps-ingresar-subtitle {
  margin: 0;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.55;
}

/* Layout del form de login en /ingresar/:
   WC pone el checkbox y el botón submit en el mismo <p class="form-row">.
   Separamos en columna para que el botón quede debajo, full width. */
.ps-ingresar-formcol form.woocommerce-form-login p.form-row:not(.form-row-wide) {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 6px;
  margin-bottom: 0;
}

.ps-ingresar-formcol .woocommerce-form-login__submit {
  width: 100% !important;
  order: 2;
}

.ps-ingresar-formcol .woocommerce-form-login .woocommerce-form__label-for-checkbox {
  order: 1;
}

/* Link "Olvidaste la contraseña" — alineado a la derecha */
.ps-ingresar-formcol .woocommerce-LostPassword {
  text-align: right;
  margin: 4px 0 20px;
}

.ps-ingresar-formcol .woocommerce-LostPassword a {
  color: var(--lila);
  font-size: 13.5px;
  font-weight: 500;
}

.ps-ingresar-formcol .woocommerce-LostPassword a:hover {
  text-decoration: underline;
}

/* Divider "o continuá con" */
.ps-ingresar-sep {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text-muted);
  font-size: 11px;
  margin: 22px 0 14px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}

.ps-ingresar-sep::before,
.ps-ingresar-sep::after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(175, 169, 236, 0.15);
}

/* Botón Google (Sub-fase 7a-OAuth) */
.ps-ingresar-alt {
  display: block; /* un solo botón — sin grid */
  margin-bottom: 20px;
}

.ps-ingresar-alt-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 11px 12px;
  border-radius: 8px;
  background: var(--bg-card2, #1a1835);
  border: 1px solid rgba(175, 169, 236, 0.18);
  color: var(--white);
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.18s, border-color 0.18s;
}

.ps-ingresar-alt-btn:hover {
  background: rgba(175, 169, 236, 0.12);
  border-color: rgba(175, 169, 236, 0.35);
}

.ps-ingresar-alt-btn:active {
  background: rgba(175, 169, 236, 0.2);
}

.ps-ingresar-alt-btn.ps-loading {
  opacity: 0.65;
  cursor: wait;
}

/* Mensaje de error de login social */
.ps-social-error {
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 6px;
  background: rgba(237, 147, 177, 0.08);
  border-left: 3px solid var(--pink);
  color: var(--text-mid);
  font-size: 13px;
  line-height: 1.5;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SUB-FASE 7e — Mis Pedidos
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Estado vacío ───────────────────────────────────────────────────────── */
.ps-orders-empty {
  position: relative;
  padding: 20px 0 56px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
.ps-orders-empty__kanji {
  position: absolute;
  top: -8px;
  left: -4px;
  font-family: var(--font-display);
  font-size: clamp(56px, 8vw, 88px);
  font-weight: 800;
  color: rgba(237, 147, 177, 0.07);
  line-height: 1;
  user-select: none;
  pointer-events: none;
  z-index: 0;
}
.ps-orders-empty__msg {
  position: relative;
  z-index: 1;
  font-size: 16px;
  font-weight: 500;
  color: var(--white);
  margin: 0;
}
.ps-orders-empty__sub {
  position: relative;
  z-index: 1;
  font-size: 14px;
  color: var(--text-mid) !important;
  max-width: 360px;
  line-height: 1.6;
  margin: 0 !important;
}
.ps-orders-empty__cta {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  padding: 10px 20px;
  border-radius: 8px;
  border: 0.5px solid var(--border-pink);
  background: transparent;
  color: var(--pink) !important;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none !important;
  transition: background 0.2s, color 0.2s;
}
.ps-orders-empty__cta:hover { background: var(--pink-glow); color: var(--white) !important; }

/* ── Lista de pedidos ────────────────────────────────────────────────────── */
.ps-orders { display: flex; flex-direction: column; gap: 12px; }

.ps-order-card {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  align-items: center;
  gap: 0;
  background: var(--bg-card);
  border: 0.5px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s;
}
.ps-order-card:hover { border-color: rgba(175, 169, 236, 0.32); }

/* Borde izquierdo según estado */
.ps-order-card--pending     { border-left: 3px solid rgba(251, 191, 36, 0.7); }
.ps-order-card--processing  { border-left: 3px solid rgba(175, 169, 236, 0.75); }
.ps-order-card--on-hold     { border-left: 3px solid rgba(255, 255, 255, 0.2); }
.ps-order-card--completed   { border-left: 3px solid rgba(72, 199, 142, 0.65); }
.ps-order-card--cancelled   { border-left: 3px solid rgba(237, 147, 177, 0.35); opacity: 0.7; }
.ps-order-card--refunded    { border-left: 3px solid rgba(255, 255, 255, 0.2); opacity: 0.7; }
.ps-order-card--failed      { border-left: 3px solid rgba(237, 147, 177, 0.5); opacity: 0.7; }

/* Thumbnail del primer producto */
.ps-order-card__img {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--bg-card2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ps-order-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ps-order-card__img-placeholder {
  font-size: 28px;
  opacity: 0.35;
}

/* Cuerpo */
.ps-order-card__body {
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.ps-order-card__header {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.ps-order-card__num {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  letter-spacing: 0.04em;
  font-family: 'DM Mono', monospace, var(--font-body);
}
.ps-order-card__status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  padding: 3px 9px;
  border-radius: 20px;
}
.ps-order-card__status::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}
.ps-order-card__status--pending    { color: #fbbf24; background: rgba(251,191,36,0.1); }
.ps-order-card__status--processing { color: var(--lila); background: rgba(175,169,236,0.1); }
.ps-order-card__status--on-hold    { color: var(--text-mid); background: rgba(255,255,255,0.06); }
.ps-order-card__status--completed  { color: #48c78e; background: rgba(72,199,142,0.1); }
.ps-order-card__status--cancelled  { color: var(--pink); background: rgba(237,147,177,0.08); }
.ps-order-card__status--refunded   { color: var(--text-mid); background: rgba(255,255,255,0.06); }
.ps-order-card__status--failed     { color: var(--pink); background: rgba(237,147,177,0.08); }

.ps-order-card__nombre {
  font-size: 14px;
  font-weight: 500;
  color: var(--white);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none !important;
  -webkit-text-fill-color: var(--white) !important;
}
.ps-order-card__mas {
  font-size: 12px;
  color: var(--text-muted);
}
.ps-order-card__fecha {
  font-size: 12px;
  color: var(--text-muted);
}

/* Acción derecha */
.ps-order-card__action {
  padding: 0 20px 0 12px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex-shrink: 0;
}
.ps-order-card__total {
  font-size: 15px;
  font-weight: 600;
  color: var(--white);
  white-space: nowrap;
  -webkit-text-fill-color: var(--white) !important;
}
.ps-order-card__ver {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 500;
  color: var(--lila) !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: color 0.15s;
}
.ps-order-card__ver:hover { color: var(--pink) !important; }

/* ── Paginación ─────────────────────────────────────────────────────────── */
.ps-orders-pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 24px;
}
.ps-orders-pagination a,
.ps-orders-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 400;
  text-decoration: none !important;
  transition: background 0.15s, color 0.15s;
}
.ps-orders-pagination a {
  border: 0.5px solid var(--border);
  color: var(--text-mid) !important;
}
.ps-orders-pagination a:hover {
  background: var(--bg-card);
  color: var(--white) !important;
  border-color: rgba(175,169,236,0.3);
}
.ps-orders-pagination .current {
  background: var(--pink-glow);
  border: 0.5px solid var(--border-pink);
  color: var(--pink) !important;
  font-weight: 600;
}
.ps-orders-pagination .dots {
  color: var(--text-muted);
  border: none;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SUB-FASE 7e — Detalle de pedido
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Volver link ────────────────────────────────────────────────────────── */
.ps-order-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--text-muted) !important;
  text-decoration: none !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 24px;
  transition: color 0.15s;
}
.ps-order-back:hover { color: var(--lila) !important; }

/* ── Cabecera del pedido ────────────────────────────────────────────────── */
.ps-order-header {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 0.5px solid var(--border);
}
.ps-order-header__num {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--white);
}
.ps-order-header__fecha {
  font-size: 13px;
  color: var(--text-muted);
}

/* ── Secciones del detalle ──────────────────────────────────────────────── */
.ps-order-section {
  margin-bottom: 28px;
}
.ps-order-section__title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 12px;
}

/* ── Tabla de productos ─────────────────────────────────────────────────── */
.ps-order-items { display: flex; flex-direction: column; gap: 10px; }

.ps-order-item {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  align-items: center;
  gap: 0;
  background: var(--bg-card);
  border: 0.5px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
.ps-order-item__img {
  width: 56px;
  height: 56px;
  background: var(--bg-card2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ps-order-item__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ps-order-item__info {
  padding: 10px 14px;
  min-width: 0;
}
.ps-order-item__nombre {
  font-size: 13px;
  font-weight: 500;
  color: var(--white);
  text-decoration: none !important;
  -webkit-text-fill-color: var(--white) !important;
  display: block;
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ps-order-item__nombre:hover { -webkit-text-fill-color: var(--lila) !important; }
.ps-order-item__qty {
  font-size: 12px;
  color: var(--text-muted);
}
.ps-order-item__price {
  padding: 0 16px 0 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--white);
  -webkit-text-fill-color: var(--white) !important;
  white-space: nowrap;
}

/* ── Totales ────────────────────────────────────────────────────────────── */
.ps-order-totals {
  background: var(--bg-card);
  border: 0.5px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
.ps-order-totals-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 16px;
  border-bottom: 0.5px solid var(--border);
  font-size: 13px;
}
.ps-order-totals-row:last-child { border-bottom: none; }
.ps-order-totals-row__label { color: var(--text-mid); }
.ps-order-totals-row__value {
  font-weight: 500;
  color: var(--white);
  -webkit-text-fill-color: var(--white) !important;
}
.ps-order-totals-row--total .ps-order-totals-row__label {
  font-weight: 600;
  color: var(--white);
}
.ps-order-totals-row--total .ps-order-totals-row__value {
  font-size: 16px;
  font-weight: 700;
  background: linear-gradient(135deg, var(--white) 0%, var(--lila) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent !important;
  background-clip: text;
}

/* ── Info de pago y dirección ───────────────────────────────────────────── */
.ps-order-meta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.ps-order-meta-box {
  background: var(--bg-card);
  border: 0.5px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
}
.ps-order-meta-box__label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 6px;
}
.ps-order-meta-box__value {
  font-size: 13px;
  color: var(--text-mid);
  line-height: 1.6;
}

/* ── Tracking de envío ──────────────────────────────────────────────────── */
.ps-order-tracking {
  background: color-mix(in srgb, var(--pink) 8%, var(--bg-card));
  border: 1px solid color-mix(in srgb, var(--pink) 25%, var(--border));
  border-left: 3px solid var(--pink);
  border-radius: 10px;
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ps-order-tracking__label {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pink);
  opacity: 0.8;
}
.ps-order-tracking__num {
  font-size: 20px;
  font-weight: 700;
  color: var(--white);
  letter-spacing: 1.5px;
  word-break: break-all;
}
.ps-order-tracking__btn {
  display: inline-block;
  margin-top: 10px;
  padding: 9px 20px;
  background: var(--pink);
  color: #0a0a16 !important;
  -webkit-text-fill-color: #0a0a16 !important;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none !important;
  align-self: flex-start;
  transition: background 0.18s;
}
.ps-order-tracking__btn:hover {
  background: var(--lila);
  color: #0a0a16 !important;
  -webkit-text-fill-color: #0a0a16 !important;
}


@media (max-width: 900px) {
  /* Cards de pedidos en mobile */
  .ps-order-card {
    grid-template-columns: 68px 1fr;
    grid-template-rows: auto auto;
  }
  .ps-order-card__img {
    width: 68px;
    height: 68px;
    grid-row: 1;
  }
  .ps-order-card__body { grid-row: 1; padding: 10px 12px; }
  .ps-order-card__action {
    grid-column: 1 / -1;
    grid-row: 2;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px 10px;
    border-top: 0.5px solid var(--border);
  }

  /* Grid de meta en detalle → una columna */
  .ps-order-meta-grid {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SUB-FASE 7f — Mi Perfil & Mis Direcciones
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Secciones de formulario ────────────────────────────────────────────── */
.ps-profile__section {
  margin-bottom: 32px;
  padding-bottom: 28px;
  border-bottom: 0.5px solid var(--border);
}
.ps-profile__section:last-of-type { border-bottom: none; }

.ps-profile__section--security { margin-top: 4px; }

.ps-profile__section-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 20px !important;
}
.ps-profile__section-hint {
  font-size: 13px;
  color: var(--text-muted);
  margin: -12px 0 20px !important;
}

/* ── Grid de campos 2 columnas ──────────────────────────────────────────── */
.ps-profile__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}

/* ── Campo individual ────────────────────────────────────────────────────── */
.ps-profile__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}
.ps-profile__field--wide {
  grid-column: 1 / -1;
}
.ps-profile__field label {
  font-size: 12px !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
  color: var(--text-mid) !important;
  font-family: var(--font-body) !important;
  margin-bottom: 0 !important;
}
.ps-profile__field input {
  margin: 0 !important;
}
.ps-profile__hint {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 4px;
}

/* ── Submit ─────────────────────────────────────────────────────────────── */
.ps-profile__submit {
  padding-top: 8px;
}
.ps-profile__submit .button,
.ps-profile__submit .woocommerce-Button {
  min-width: 160px;
}

/* ── Aviso de éxito: scroll suave + fade in ─────────────────────────────── */
.woocommerce-account .woocommerce-message {
  animation: ps-notice-in 0.3s ease both;
}
@keyframes ps-notice-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Mis Direcciones — lista de cards ───────────────────────────────────── */
.ps-addresses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.ps-address-card {
  background: var(--bg-card);
  border: 0.5px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.ps-address-card__header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 20px 14px;
  border-bottom: 0.5px solid var(--border);
}
.ps-address-card__kanji {
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--pink);
  opacity: 0.5;
  flex-shrink: 0;
  line-height: 1;
  margin-top: 2px;
}
.ps-address-card__title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--white);
  margin: 0 0 4px !important;
}
.ps-address-card__desc {
  font-size: 12px;
  color: var(--text-muted);
  margin: 0 !important;
  line-height: 1.5;
}

.ps-address-card__body {
  padding: 16px 20px;
  flex: 1;
}
.ps-address-card__address {
  font-style: normal;
  font-size: 13px;
  color: var(--text-mid);
  line-height: 1.8;
}
.ps-address-card__address p { margin: 0 !important; }
.ps-address-card__empty {
  font-size: 13px;
  color: var(--text-muted);
  margin: 0 !important;
}

.ps-address-card__footer {
  padding: 12px 20px;
  border-top: 0.5px solid var(--border);
}
.ps-address-card__edit {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--lila) !important;
  text-decoration: none !important;
  transition: color 0.15s;
}
.ps-address-card__edit:hover { color: var(--white) !important; }

/* ── Formulario de edición de dirección — campos WC ─────────────────────── */
.ps-address-form .ps-order-back { margin-bottom: 20px; }

/* WC genera .form-row dentro de .ps-address-form__fields — ya están
   estilizados globalmente por la sección de woocommerce-account en 7c.
   Solo ajustamos el layout del grid de campos: */
.ps-address-form__fields .form-row-first,
.ps-address-form__fields .form-row-last {
  float: none !important;
  width: 100% !important;
  display: inline-grid;
  width: calc(50% - 8px) !important;
}
.ps-address-form__fields .form-row-first { margin-right: 16px !important; }
.ps-address-form__fields .form-row-wide  { width: 100% !important; }
.ps-address-form__fields::after { content: ''; display: table; clear: both; }

/* ── Responsive ≤768px ──────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .ps-profile__grid { grid-template-columns: 1fr; }

  .ps-addresses { grid-template-columns: 1fr; }

  .ps-address-form__fields .form-row-first,
  .ps-address-form__fields .form-row-last {
    width: 100% !important;
    margin-right: 0 !important;
    display: block;
  }
}

/* ── Botón de copia entre direcciones (Sub-fase 7f) ─────────────────────── */
.ps-address-copy {
  margin-bottom: 20px;
}
.ps-address-copy__btn {
  background: transparent;
  border: 0.5px solid var(--border);
  border-radius: 4px;
  color: var(--lila) !important;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 8px 16px;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.ps-address-copy__btn:hover {
  border-color: var(--lila);
  background: rgba(175, 169, 236, 0.08);
}
.ps-address-copy__btn--done {
  border-color: #7de0a0 !important;
  color: #7de0a0 !important;
}



/* ═══════════════════════════════════════════════════════════════════════════
   MÉTODOS DE PAGO — Bloque informativo en página de producto (Fase 3b)
   Hook 36 — woocommerce_single_product_summary priority 25
   ═══════════════════════════════════════════════════════════════════════════ */

.ps-payment-info {
  margin-top: 16px;
  background: var(--bg-card);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 10px;
  overflow: hidden;
}

/* ── Filas de cada método ── */
.ps-payment-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
}
.ps-payment-row + .ps-payment-row {
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

/* Ícono SVG */
.ps-payment-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--text-mid);
}
.ps-payment-row--transfer .ps-payment-icon { color: #7bce9e; }
.ps-payment-row--np       .ps-payment-icon { color: #4ec9b5; } /* teal USDT */
.ps-payment-row--mp       .ps-payment-icon { color: #00b1ea; }
.ps-payment-row--gc       .ps-payment-icon { color: #afa9ec; } /* lila del tema */

/* Subtítulo "(3 cuotas)" dentro del nombre de GOcuotas */
.ps-gc-subtitle,
.ps-np-subtitle {
  font-style: normal;
  font-size: 11px;
  opacity: 0.65;
  margin-left: 3px;
}
.ps-gc-subtitle { color: var(--lila); }
.ps-np-subtitle { color: #4ec9b5; }

/* Nombre del método */
.ps-payment-name {
  font-family: var(--font-body);
  font-size: 12.5px;
  color: var(--text-mid);
  flex: 1;
  white-space: nowrap;
}

/* Monto */
.ps-payment-amount {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--white);
  letter-spacing: -0.01em;
  text-align: right;
  min-width: 56px;
}
.ps-payment-amount .woocommerce-Price-currencySymbol { font-weight: 400; }

/* Badges */
.ps-payment-badge {
  font-family: var(--font-body);
  font-size: 10.5px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 20px;
  letter-spacing: 0.01em;
  white-space: nowrap;
  flex-shrink: 0;
}
.ps-payment-badge--best {
  background: rgba(123, 206, 158, 0.13);
  color: #7bce9e;
  border: 1px solid rgba(123, 206, 158, 0.25);
}
.ps-payment-badge--neutral {
  background: rgba(78, 201, 181, 0.10);
  color: #4ec9b5;
  border: 1px solid rgba(78, 201, 181, 0.22);
}
.ps-payment-badge--fee {
  background: rgba(237, 147, 177, 0.10);
  color: var(--pink);
  border: 1px solid rgba(237, 147, 177, 0.22);
}

/* ── Acordeón "¿Por qué?" ── */
.ps-payment-why {
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.ps-payment-why summary {
  font-family: var(--font-body);
  font-size: 11.5px;
  color: var(--text-mid);
  padding: 8px 14px;
  cursor: pointer;
  user-select: none;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color 0.15s;
}
.ps-payment-why summary::-webkit-details-marker { display: none; }
.ps-payment-why summary::before {
  content: '\25B8'; /* ▸ */
  font-size: 10px;
  color: var(--lila);
  transition: transform 0.2s;
  display: inline-block;
}
.ps-payment-why[open] summary::before { transform: rotate(90deg); }
.ps-payment-why summary:hover { color: var(--white); }

.ps-payment-why-content {
  padding: 0 14px 12px;
}
.ps-payment-why-content p {
  font-family: var(--font-body);
  font-size: 12px;
  line-height: 1.65;
  color: var(--text-mid);
  margin: 0 0 6px;
}
.ps-payment-why-content p:last-child { margin-bottom: 0; }
.ps-payment-why-content strong { color: var(--white); font-weight: 600; }

@media (max-width: 480px) {
  .ps-payment-name { font-size: 11.5px; }
  .ps-payment-badge { display: none; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   CHECKOUT — Fase 3 (WooCommerce Blocks)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Layout general ─────────────────────────────────────────────────────── */
.woocommerce-checkout,
.wp-block-woocommerce-checkout {
  background: var(--bg) !important;
  color: var(--white) !important;
}

/* ── Headings de sección (Información de contacto / Facturación / Pago) ── */
.wc-block-components-checkout-step__title {
  font-family: var(--font-display) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  color: var(--white) !important;
  border-bottom: 1px solid var(--border);
  padding-bottom: 10px;
  margin-bottom: 20px !important;
}

/* Número de paso */
.wc-block-components-checkout-step__heading-number {
  background: var(--pink) !important;
  color: var(--bg) !important;
  border-color: var(--pink) !important;
  font-family: var(--font-body) !important;
}

/* ── Inputs y labels ────────────────────────────────────────────────────── */
.wc-block-components-text-input label,
.wc-block-components-checkbox__label,
.wc-block-checkout .wc-block-components-combobox label {
  color: var(--text-mid) !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-checkout .wc-block-components-combobox input {
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  padding: 10px 14px !important;
  transition: border-color 0.15s;
}

.wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-combobox input:focus {
  border-color: var(--lila) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(175, 169, 236, 0.15) !important;
}

/* ── Dirección de facturación — card de resumen ─────────────────────────── */
.wc-block-components-address-card {
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  color: var(--text-mid) !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  padding: 14px 16px !important;
}

.wc-block-components-address-card__edit {
  color: var(--lila) !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  text-decoration: none !important;
  letter-spacing: 0.04em;
}
.wc-block-components-address-card__edit:hover {
  color: var(--white) !important;
}

/* ── Opciones de envío y métodos de pago — card unificado ───────────────── */
/* PRINCIPIO: no tocar el layout interno de WC Blocks (display, align-items,  */
/* padding, position del radio). Solo agregar propiedades visuales encima.    */
/* WC ya centra el radio correctamente — cualquier override de flex/position  */
/* rompe ese centrado. Clase de seleccionado: __option-checked.               */

/* Limpia contenedores wrapper */
.wc-block-checkout__payment-method {
  background: transparent !important;
  border: none !important;
}
.wc-block-components-shipping-rates-control__package {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
}
.wc-block-components-shipping-rates-control fieldset.wc-block-components-radio-control {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ── Card — solo propiedades visuales, WC maneja el posicionamiento ──── */
.wc-block-checkout .wc-block-components-radio-control__option {
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  background: var(--bg-card) !important;
  margin-bottom: 8px !important;
  transition: border-color 0.15s, background 0.15s;
  cursor: pointer;
}
.wc-block-checkout .wc-block-components-radio-control__option:last-child {
  margin-bottom: 0 !important;
}

/* Hover */
.wc-block-checkout .wc-block-components-radio-control__option:hover {
  border-color: var(--lila) !important;
}

/* Seleccionado — clase real de WC Blocks */
.wc-block-checkout .wc-block-components-radio-control__option-checked {
  border-color: var(--pink) !important;
  background: rgba(237, 147, 177, 0.06) !important;
}

/* Radio input — solo accent-color, WC posiciona el radio */
.wc-block-checkout .wc-block-components-radio-control__input {
  accent-color: var(--pink) !important;
}

/* Nombre del método */
.wc-block-checkout .wc-block-components-radio-control__label {
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
}

/* Precio (solo en opciones de envío) */
.wc-block-checkout .wc-block-components-radio-control__secondary-label {
  color: var(--white) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
}

/* label-group: habilitar wrap para que el badge de tiempo vaya a segunda línea */
.wc-block-checkout .wc-block-components-radio-control__label-group {
  flex-wrap: wrap !important;
}

/* Ícono de envío inyectado por Hook 52 */
.ps-shipping-icon {
  font-size: 17px;
  line-height: 1;
  margin-right: 4px;
}

/* Tiempo estimado inyectado por Hook 52 — segunda línea full-width */
.ps-shipping-time {
  flex-basis: 100%;
  font-size: 11px;
  color: var(--text-muted);
  letter-spacing: 0.02em;
  margin-top: 2px;
}

/* Contenido expandido del método de pago seleccionado (widget MP, etc.) */
.wc-block-components-radio-control-accordion-content {
  padding: 0 16px 12px !important;
}

/* ── Aviso de comisión MP (Hook 36-js) ──────────────────────────────────── */
/* Aparece dinámicamente cuando se selecciona Mercado Pago en el checkout.    */
/* El fee real se calcula server-side (Hook 35); este aviso es visual.        */
#ps-checkout-fee-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 14px;
  padding: 12px 16px;
  background: rgba(0, 177, 234, 0.06);   /* azul MP muy atenuado */
  border: 1px solid rgba(0, 177, 234, 0.2);
  border-left: 3px solid #00b1ea;
  border-radius: 6px;
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.55;
  color: var(--text-mid);
}
.ps-cfe-icon {
  font-size: 16px;
  line-height: 1.4;
  flex-shrink: 0;
}
.ps-cfe-body {
  flex: 1;
}
.ps-cfe-text strong { color: var(--white); }
.ps-cfe-text .woocommerce-Price-amount { color: var(--white); }

.ps-cfe-why-btn {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--lila);
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
  display: block;   /* siempre en nueva línea, independiente del largo del texto */
  margin-top: 5px;
}
.ps-cfe-why-btn:hover { color: var(--pink); }

.ps-cfe-why-text {
  margin: 8px 0 0;
  font-size: 12px;
  color: var(--text-mid);
  line-height: 1.6;
}
.ps-cfe-why-text strong { color: var(--white); }

/* ── Línea de fee server-side en el resumen del pedido ──────────────────── */
/* Cuando chosen_payment_method=MP está en sesión PHP, WC renderiza el fee   */
/* como .wc-block-components-totals-fees. Le damos estilo coherente.          */
.wc-block-components-totals-fees .wc-block-components-totals-item__label {
  color: #00b1ea !important;
  font-size: 13px !important;
}
.wc-block-components-totals-fees .wc-block-components-totals-item__value {
  color: #00b1ea !important;
}



/* ── Nota del pedido ────────────────────────────────────────────────────── */
.wc-block-checkout__add-note .wc-block-components-checkbox__label {
  color: var(--text-mid) !important;
  font-size: 13px !important;
  text-transform: none;
  letter-spacing: 0;
}
.wc-block-checkout__add-note textarea {
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  padding: 10px 14px !important;
}

/* ── Política de privacidad / términos ──────────────────────────────────── */
.wc-block-checkout__terms {
  color: var(--text-muted) !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
}
.wc-block-checkout__terms a {
  color: var(--lila) !important;
}

/* ── Botón Realizar el pedido ───────────────────────────────────────────── */
.wc-block-components-checkout-place-order-button,
.wc-block-components-checkout-place-order-button.contained {
  background: var(--pink) !important;
  border: none !important;
  border-radius: 8px !important;
  color: var(--bg) !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 14px 24px !important;
  width: 100% !important;
  transition: background 0.15s, transform 0.1s;
}
.wc-block-components-checkout-place-order-button:hover {
  background: #f0a8c3 !important;
  transform: translateY(-1px);
}

/* ── Sidebar — Resumen del pedido ───────────────────────────────────────── */
.wp-block-woocommerce-checkout-order-summary-block {
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
  overflow: hidden;
}

.wc-block-components-order-summary__button-text,
.wc-block-components-order-summary .wc-block-components-panel__button {
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
}

.wc-block-components-order-summary-item__name {
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
}

.wc-block-components-order-summary-item__description,
.wc-block-components-order-summary-item__full-price {
  color: var(--text-mid) !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
}

.wc-block-components-totals-item {
  color: var(--text-mid) !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  border-color: var(--border) !important;
}

.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value {
  color: var(--text-mid) !important;
}

/* Total final */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--white) !important;
  font-family: var(--font-display) !important;
  font-size: 18px !important;
  font-weight: 500 !important;
}

/* Cupones */
.wc-block-components-totals-coupon__input-wrapper input {
  background: var(--bg-card2) !important;
  border-color: var(--border) !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  border-radius: 6px !important;
}
.wc-block-components-totals-coupon__button {
  color: var(--lila) !important;
  font-family: var(--font-body) !important;
}

/* "Add coupons" → ya manejado por hook 22c pero por si acaso */
.wc-block-components-panel__button {
  color: var(--text-mid) !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
}

/* ── Link "Volver al carrito" ───────────────────────────────────────────── */
.wc-block-checkout__return-to-cart-link {
  color: var(--lila) !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  text-decoration: none !important;
}
.wc-block-checkout__return-to-cart-link:hover {
  color: var(--white) !important;
}

/* ── Responsive ≤768px ──────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .wc-block-components-checkout-step__title {
    font-size: 16px !important;
  }
}

/* ── Checkout — fixes específicos ───────────────────────────────────────── */

/* Floating label: WC Blocks posiciona el label dentro del input.
   Con nuestro padding-top: 10px el label flotante queda encimado al valor.
   Aumentar padding-top del input para darle espacio al label flotado. */
.wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-combobox input {
  padding-top: 22px !important;
  padding-bottom: 6px !important;
}

/* Label en estado "flotado" (input tiene valor o está en foco) */
.wc-block-components-text-input label {
  font-size: 10px !important;
  top: 6px !important;
  color: var(--text-muted) !important;
}

/* ── Address card — texto legible ───────────────────────────────────────── */
.wc-block-components-address-card {
  color: var(--text-mid) !important;
}
.wc-block-components-address-card address,
.wc-block-components-address-card p,
.wc-block-components-address-card span {
  color: rgba(255, 255, 255, 0.75) !important;
}

/* ── Badge de cantidad en resumen del pedido ────────────────────────────── */
.wc-block-components-order-summary-item__quantity {
  background: var(--lila) !important;
  color: var(--bg) !important;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  border: none !important;
}

/* ── Precio duplicado — ocultar el precio unitario chico ────────────────── */
/* Se muestra __total-price (a la derecha, grande) → ocultar __individual-prices */
.wc-block-components-order-summary-item__individual-prices {
  display: none !important;
}

/* ── Checkout — selects nativos (País / Provincia) y link "+ Add" ────────── */

/* Contenedor del select */
.wc-blocks-components-select {
  position: relative;
}

/* Select nativo — forzar apariencia dark */
.wc-blocks-components-select__select {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-color: var(--bg-card) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23AFA9EC' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  padding: 22px 36px 6px 14px !important;
  width: 100% !important;
  cursor: pointer;
  transition: border-color 0.15s;
}
.wc-blocks-components-select__select:focus {
  border-color: var(--lila) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(175, 169, 236, 0.15) !important;
}

/* Opciones del select (solo aplica en Firefox) */
.wc-blocks-components-select__select option {
  background: var(--bg-card2);
  color: var(--white);
}

/* Label flotante sobre el select */
.wc-blocks-components-select label {
  position: absolute;
  top: 6px;
  left: 14px;
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  color: var(--text-muted) !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  pointer-events: none;
  z-index: 1;
}

/* ── Link "+ Add apartamento, habitación, unidad, etc." ─────────────────── */
.wc-block-components-address-form__address_2-toggle {
  color: var(--lila) !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 500;
  letter-spacing: 0.03em;
  cursor: pointer;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  text-decoration: none;
  display: inline-block;
  margin: 4px 0 12px !important;
}
.wc-block-components-address-form__address_2-toggle:hover {
  color: var(--white) !important;
}

/* ── Mercado Pago — Checkout Pro (dentro del bloque de pago) ────────────── */

/* Contenedor principal */
.mp-checkout-container,
.mp-checkout-pro-container,
.mp-checkout-pro-content {
  background: transparent !important;
}

/* Banner "Modo Test" — naranja → estilo temático */
.mp-test-mode-card {
  background: rgba(175, 169, 236, 0.08) !important;
  border: 1px solid rgba(175, 169, 236, 0.3) !important;
  border-radius: 8px !important;
  padding: 12px 16px !important;
  margin-bottom: 16px !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
}

.mp-test-mode-badge {
  background: var(--lila) !important;
  color: var(--bg) !important;
  border-radius: 50% !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.mp-test-mode-title {
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  margin: 0 0 4px !important;
}

.mp-test-mode-description {
  color: var(--text-mid) !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  margin: 0 !important;
}

.mp-test-mode-link {
  color: var(--lila) !important;
}
.mp-test-mode-link:hover {
  color: var(--white) !important;
}

/* Título "Descubre la practicidad..." */
.mp-checkout-pro-benefits-title {
  color: var(--white) !important;
  font-family: var(--font-display) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  margin: 12px 0 !important;
}

/* Beneficios (iconos + texto) */
.mp-checkout-pro-benefits {
  display: flex !important;
  gap: 16px !important;
  margin-bottom: 16px !important;
}

.mp-checkout-pro-benefit {
  flex: 1;
}

.mp-checkout-pro-benefit p,
.mp-checkout-pro-benefit span {
  color: var(--text-mid) !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
}

/* Íconos SVG de MP — forzar color neutro si son inline */
.mp-checkout-pro-benefit img,
.mp-checkout-pro-benefit svg {
  opacity: 0.7;
  filter: grayscale(20%);
}

/* Fila de medios de pago aceptados */
.mp-checkout-pro-payment-methods {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  align-items: center !important;
  margin-top: 8px !important;
}

.mp-checkout-pro-payment-method-icon {
  height: 22px !important;
  width: auto !important;
  border-radius: 3px !important;
  opacity: 0.85;
}

/* ── Mercado Pago — fix especificidad (MP pisa con selectores propios) ──── */

/* Título y descripción del banner test-mode */
.mp-checkout-container .mp-test-mode-card .mp-test-mode-title,
.mp-checkout-pro-container .mp-test-mode-title {
  color: var(--white) !important;
}

.mp-checkout-container .mp-test-mode-card .mp-test-mode-description,
.mp-checkout-container .mp-test-mode-card .mp-test-mode-description p,
.mp-checkout-pro-container .mp-test-mode-description {
  color: rgba(255, 255, 255, 0.65) !important;
}

/* Íconos de beneficios (wallet.svg, shield.svg son SVGs negros) */
.mp-checkout-pro-benefit img {
  filter: invert(1) opacity(0.7) !important;
}

/* Texto bold dentro de los beneficios (ej: "Paga con tus tarjetas guardadas") */
.mp-checkout-pro-benefit p strong,
.mp-checkout-pro-benefit p b {
  color: var(--white) !important;
}

/* ============================================================
   ORDER RECEIVED / CONFIRMACIÓN DE PEDIDO — Fase 3b
   Selectores confirmados via diagnóstico de DOM:
   - .wc-block-order-confirmation-status  → bloque H1 + "Gracias..."
   - .wc-block-order-confirmation-summary → lista Order #, Fecha, Total, etc.
   - .wc-block-order-confirmation-totals  → tabla Producto / Total
   ============================================================ */

/* H1 "Pedido recibido" — gradiente igual al título de páginas de producto */
.wc-block-order-confirmation-status h1 {
  background: linear-gradient(135deg, var(--white) 0%, var(--lila) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-family: 'Shippori Mincho', serif;
  font-weight: 600;
  letter-spacing: 0.01em;
}

/* Subtítulo — texto temático inyectado via Hook 33b en functions.php */
.wc-block-order-confirmation-status p {
  color: rgba(255, 255, 255, 0.75);
  font-size: 1rem;
  margin-top: 0.5rem;
}

/* Bloque de estado — separador visual inferior */
.wc-block-order-confirmation-status {
  border-bottom: 1px solid rgba(175, 169, 236, 0.2);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}

/* Lista de resumen: Order #, Fecha, Total, Email, Payment */
.wc-block-order-confirmation-summary-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
}

.wc-block-order-confirmation-summary-list-item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.wc-block-order-confirmation-summary-list-item__key {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ps-lila);
}

.wc-block-order-confirmation-summary-list-item__value {
  color: var(--white);
  font-size: 0.95rem;
}

/* Tabla de detalles del pedido */
.wc-block-order-confirmation-totals__table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 0.75rem;
}

.wc-block-order-confirmation-totals__table thead th {
  color: var(--ps-lila);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(175, 169, 236, 0.25);
  padding: 0.5rem 1rem;
  text-align: left;
}

.wc-block-order-confirmation-totals__table thead th:last-child {
  text-align: right;
}

.wc-block-order-confirmation-totals__table tbody td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  color: var(--white);
  vertical-align: top;
}

.wc-block-order-confirmation-totals__table tfoot th,
.wc-block-order-confirmation-totals__table tfoot td {
  padding: 0.75rem 1rem;
  color: var(--white);
  font-weight: 600;
  border-top: 1px solid rgba(175, 169, 236, 0.25);
}

.wc-block-order-confirmation-totals__table tfoot td {
  text-align: right;
}

/* Nombre del producto — el link venía oscuro */
.wc-block-order-confirmation-totals__product a {
  color: var(--ps-rosa) !important;
  text-decoration: none;
}

.wc-block-order-confirmation-totals__product a:hover {
  text-decoration: underline;
  opacity: 0.85;
}

/* Cantidad × N */
.wc-block-order-confirmation-totals__product .product-quantity {
  color: rgba(255, 255, 255, 0.5);
  font-weight: 400;
}

/* Total a la derecha */
.wc-block-order-confirmation-totals__total {
  text-align: right;
}

/* Nota del pedido */
.wc-block-order-confirmation-order-note {
  margin-top: 1rem;
  padding: 0.75rem 1rem;
  border-left: 3px solid var(--ps-lila);
  background: rgba(175, 169, 236, 0.06);
  border-radius: 0 6px 6px 0;
}

.wc-block-order-confirmation-order-note__label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ps-lila);
  margin: 0 0 0.25rem 0;
}

.wc-block-order-confirmation-order-note p:last-child {
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
}

/* Dirección de facturación */
.wc-block-order-confirmation-billing-address address,
.wc-block-order-confirmation-billing-address p {
  color: rgba(255, 255, 255, 0.8);
  font-style: normal;
  line-height: 1.7;
}

/* Heading "Detalles del pedido" / "Dirección de facturación" */
.wc-block-order-confirmation-totals-wrapper > .wp-block-heading,
.wc-block-order-confirmation-billing-wrapper > .wp-block-heading {
  color: var(--white) !important;
  font-size: 1.1rem !important;
  font-weight: 600;
  margin-bottom: 0.75rem;
}

/* Mobile: lista de resumen en columna */
@media (max-width: 600px) {
  .wc-block-order-confirmation-summary-list {
    flex-direction: column;
    gap: 0.75rem;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   page.php — Template genérico (checkout clásico, order-pay, mi cuenta, etc.)
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Layout central para el contenido de páginas genéricas */
.ps-page-content {
  max-width: 860px;
  margin: 60px auto 80px;
  padding: 0 24px;
}

/* Mi Cuenta: el grid interno (.woocommerce) maneja su propio max-width y padding.
   Quitamos la restricción de 860px para que quede tan ancho como necesita. */
body.woocommerce-account .ps-page-content {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

/* Responsive del h1 de Mi Cuenta — colapsa igual que el grid a ≤1100px */
@media (max-width: 1100px) {
  .woocommerce-account h1.wp-block-post-title {
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* Privacy policy notice en checkout clásico y order-pay */
.woocommerce-checkout .woocommerce-privacy-policy-text,
.woocommerce-order-pay .woocommerce-privacy-policy-text {
  color: var(--text-muted) !important;
  font-size: 12px !important;
  line-height: 1.6 !important;
  margin-top: 16px !important;
}

.woocommerce-checkout .woocommerce-privacy-policy-text a,
.woocommerce-order-pay .woocommerce-privacy-policy-text a {
  color: var(--lila) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* ── Checkout clásico / order-pay: inputs y labels ─────────────────────────── */
.woocommerce-checkout .form-row label,
.woocommerce-order-pay .form-row label {
  color: var(--text-muted);
  font-size: 13px;
  font-family: var(--font-body);
}

.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea,
.woocommerce-order-pay .form-row input,
.woocommerce-order-pay .form-row select {
  background: var(--card-bg) !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
  color: var(--white) !important;
  border-radius: 8px !important;
  padding: 10px 14px !important;
  font-family: var(--font-body) !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.woocommerce-checkout .form-row input:focus,
.woocommerce-order-pay .form-row input:focus {
  outline: none !important;
  border-color: var(--lila) !important;
}

/* ── Tabla de resumen del pedido (order-pay) ────────────────────────────────── */
.woocommerce-order-pay .woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 24px;
  font-family: var(--font-body);
  font-size: 14px;
}

.woocommerce-order-pay .woocommerce-checkout-review-order-table th,
.woocommerce-order-pay .woocommerce-checkout-review-order-table td {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  color: var(--white);
  text-align: left;
}

.woocommerce-order-pay .woocommerce-checkout-review-order-table tfoot tr:last-child td,
.woocommerce-order-pay .woocommerce-checkout-review-order-table tfoot tr:last-child th {
  font-weight: 700;
  font-size: 16px;
  color: var(--pink);
  border-bottom: none;
}

/* ── Métodos de pago en checkout clásico ────────────────────────────────────── */
.woocommerce-order-pay .wc_payment_methods,
.woocommerce-checkout .wc_payment_methods {
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
}

.woocommerce-order-pay .wc_payment_method,
.woocommerce-checkout .wc_payment_method {
  background: var(--card-bg);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 10px;
}

.woocommerce-order-pay .wc_payment_method label,
.woocommerce-checkout .wc_payment_method label {
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  cursor: pointer;
}

.woocommerce-order-pay .payment_box,
.woocommerce-checkout .payment_box {
  background: rgba(255,255,255,0.04) !important;
  border-radius: 8px;
  padding: 12px 14px;
  margin-top: 10px;
  color: var(--text-muted) !important;
  font-size: 13px !important;
}

/* Botón "Pagar por el pedido" */
#place_order {
  background: var(--pink) !important;
  color: var(--white) !important;
  border: none !important;
  border-radius: 50px !important;
  padding: 14px 36px !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em !important;
  cursor: pointer !important;
  width: 100% !important;
  margin-top: 8px !important;
  transition: opacity 0.2s !important;
}

#place_order:hover { opacity: 0.85 !important; }


/* ══════════════════════════════════════════════════════════════════════════════
   Sub-fase 3d — Comprobante de transferencia bancaria
   Bloque en view-order.php (Mi Cuenta → detalle de pedido).
   Solo visible para pedidos BACS en estado on-hold.
   ══════════════════════════════════════════════════════════════════════════════ */

/* Contenedor principal */
.ps-comprobante {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ── Datos de la cuenta (CVU / Alias) ───────────────────────────────────────── */
.ps-comprobante__datos {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ps-comprobante__dato-row {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 14px;
}

.ps-comprobante__dato-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-muted);
  width: 44px;
  flex-shrink: 0;
}

.ps-comprobante__dato-value {
  font-family: 'Courier New', Courier, monospace;
  font-size: 14px;
  font-weight: 700;
  color: var(--white);
  letter-spacing: 0.04em;
  flex: 1;
  word-break: break-all;
}

.ps-comprobante__copy-btn {
  background: none;
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--lila);
  font-size: 14px;
  padding: 4px 8px;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.ps-comprobante__copy-btn:hover {
  background: rgba(175, 169, 236, 0.12);
  border-color: var(--lila);
}

.ps-comprobante__copy-btn--done {
  color: #6de89a;
  border-color: #6de89a;
}

/* ── Texto de instrucción ───────────────────────────────────────────────────── */
.ps-comprobante__hint {
  margin: 0;
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.65;
}

/* ── Formulario de subida ───────────────────────────────────────────────────── */
#ps-comprobante-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Input file oculto — la label actúa como la zona de drop/click */
.ps-comprobante__input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.ps-comprobante__file-label {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255, 255, 255, 0.025);
  border: 1.5px dashed var(--border);
  border-radius: 10px;
  padding: 14px 18px;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}

.ps-comprobante__file-label:hover {
  border-color: var(--lila);
  background: rgba(175, 169, 236, 0.06);
}

.ps-comprobante__file-icon {
  font-size: 22px;
  flex-shrink: 0;
  line-height: 1;
}

.ps-comprobante__file-name {
  font-size: 14px;
  color: var(--text-mid);
  font-weight: 500;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ps-comprobante__file-hint {
  font-size: 11px;
  color: var(--text-muted);
  flex-shrink: 0;
  white-space: nowrap;
}

/* Botón enviar */
.ps-comprobante__btn {
  align-self: flex-start;
  background: var(--pink);
  color: var(--bg);
  border: none;
  border-radius: 50px;
  padding: 11px 28px;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: opacity 0.2s;
  -webkit-text-fill-color: var(--bg);
}

.ps-comprobante__btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.ps-comprobante__btn:not(:disabled):hover {
  opacity: 0.85;
}

/* Mensaje de error */
.ps-comprobante__error {
  margin: 0;
  font-size: 13px;
  color: #f07070;
  min-height: 0;
}

/* ── Estado: comprobante ya enviado ─────────────────────────────────────────── */
.ps-comprobante__sent {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: rgba(109, 232, 154, 0.07);
  border: 1px solid rgba(109, 232, 154, 0.25);
  border-radius: 10px;
  padding: 16px 18px;
}

.ps-comprobante__sent-check {
  font-size: 18px;
  color: #6de89a;
  font-weight: 700;
  flex-shrink: 0;
  line-height: 1.4;
}

.ps-comprobante__sent-title {
  margin: 0 0 4px;
  font-size: 15px;
  font-weight: 600;
  color: #6de89a;
}

.ps-comprobante__sent-sub {
  margin: 0;
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.6;
}

/* ── Mobile ─────────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .ps-comprobante__file-hint { display: none; }
  .ps-comprobante__file-label { padding: 12px 14px; }
  .ps-comprobante__dato-value { font-size: 12px; }
  .ps-comprobante__btn { width: 100%; text-align: center; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   LISTA DE DESEOS — Sub-fase 7g
   ─────────────────────────────────────────────────────────────────────────
   .ps-wishlist-btn          — botón ♡ en grillas y producto individual
   .ps-wishlist-grid         — grid de cards en Mi Cuenta
   .ps-wishlist-card         — card individual
   .ps-wishlist-empty        — estado vacío
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Botón ♡ — posicionado sobre la imagen en grillas ──────────────────── */

.wc-block-components-product-image { position: relative; }

/* Legacy grid (woocommerce/product-new, etc.) */
.wc-block-grid__product-image { position: relative; }

.ps-wishlist-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 4;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10, 10, 22, .72);
  backdrop-filter: blur(6px);
  border: 1px solid var(--border);
  border-radius: 50%;
  cursor: pointer;
  padding: 0;
  color: var(--text-mid);
  transition: background .18s, border-color .18s, color .18s, transform .18s;
  line-height: 1;
  flex-shrink: 0;
}

.ps-wishlist-btn:hover {
  background: rgba(10, 10, 22, .92);
  border-color: var(--pink);
  color: var(--pink);
  transform: scale(1.1);
}

/* Estado activo (en wishlist) */
.ps-wishlist-btn.is-active {
  background: rgba(237, 147, 177, .18);
  border-color: var(--pink);
  color: var(--pink);
}

.ps-wishlist-btn.is-active:hover {
  background: rgba(237, 147, 177, .28);
}

/* Spinner mientras carga */
.ps-wishlist-btn.is-loading {
  pointer-events: none;
  opacity: .6;
}

/* SVGs: outline siempre visible, filled solo cuando is-active */
.ps-wl-icon { width: 16px; height: 16px; display: block; flex-shrink: 0; }
.ps-wl-icon--fill { display: none; }
.ps-wishlist-btn.is-active .ps-wl-icon--out { display: none; }
.ps-wishlist-btn.is-active .ps-wl-icon--fill { display: block; }

/* Botón en galería de producto individual — esquina superior izquierda
   (top-right está ocupado por el trigger de zoom de WooCommerce) */
.ps-wishlist-btn--single {
  top: 12px;
  right: auto;
  left: 12px;
  width: 40px;
  height: 40px;
  z-index: 10;
}

/* Contenedor de la galería necesita position:relative para anclar el botón.
   woocommerce-product-gallery = galería clásica WC (single product).
   wc-block-components-product-gallery = variante Blocks (por si acaso).
   proxysama-gallery-placeholder = lo que inyecta el age gate cuando reemplaza
   la galería en productos adultos no confirmados — también necesita position:relative. */
.woocommerce-product-gallery,
.wc-block-components-product-gallery,
.proxysama-gallery-placeholder {
  position: relative;
}

/* ── Mi Cuenta: grid de wishlist ─────────────────────────────────────────── */

.ps-wishlist-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 20px;
  margin-top: 16px;
}

.ps-wishlist-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .2s, border-color .2s;
}

.ps-wishlist-card:hover {
  transform: translateY(-3px);
  border-color: rgba(175, 169, 236, .45);
}

.ps-wishlist-card__img {
  aspect-ratio: 1 / 1;
  background: var(--bg-card2);
  overflow: hidden;
  position: relative;
}

.ps-wishlist-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ps-wishlist-card__img-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  color: var(--text-muted);
}

.ps-wishlist-card__body {
  padding: 14px 14px 12px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 6px;
}

.ps-wishlist-card__name {
  font-size: 13px;
  font-weight: 500;
  color: var(--white);
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ps-wishlist-card__price {
  font-size: 13px;
  font-weight: 600;
  color: var(--white);
}

.ps-wishlist-card__price .woocommerce-Price-amount {
  color: var(--white);
}

.ps-wishlist-card__actions {
  display: flex;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
}

/* Botón "Agregar al carrito" / "Ver producto" */
.ps-wishlist-card__cart-btn {
  flex: 1;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .03em;
  text-align: center;
  border-radius: 6px;
  cursor: pointer;
  text-decoration: none;
  transition: background .18s, border-color .18s, color .18s;
  background: var(--pink);
  border: 1px solid var(--pink);
  color: #0a0a16;
  /* El tema aplica -webkit-text-fill-color:transparent globalmente — override explícito */
  -webkit-text-fill-color: #0a0a16;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ps-wishlist-card__cart-btn:hover {
  background: #f0a8c5;
  border-color: #f0a8c5;
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
  text-decoration: none;
}

.ps-wishlist-card__cart-btn--outline {
  background: transparent;
  border-color: var(--lila);
  color: var(--lila);
  -webkit-text-fill-color: var(--lila);
}

.ps-wishlist-card__cart-btn--outline:hover {
  background: rgba(175, 169, 236, .15);
  color: var(--lila);
  -webkit-text-fill-color: var(--lila);
}

/* Botón ♡ inline en card de wishlist.
   Necesita override de position para no comportarse como el botón absoluto
   de los grids. .ps-wishlist-card__remove tiene siempre position:static. */
.ps-wishlist-card__remove.ps-wishlist-btn {
  position: static !important;
  transform: none !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 6px !important;
  background: transparent !important;
  border: 1px solid var(--border) !important;
  color: var(--pink) !important;
}

.ps-wishlist-card__remove.ps-wishlist-btn:hover {
  background: rgba(232, 112, 112, .12) !important;
  border-color: #e87070 !important;
  color: #e87070 !important;
  transform: none !important;
}

/* Adult placeholder dentro de card de wishlist */
.ps-wishlist-card__img .adult-img-placeholder {
  position: absolute;
  inset: 0;
  border-radius: 0;
}

/* Botón "Quitar" (✕) */
.ps-wishlist-card__remove {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text-muted);
  cursor: pointer;
  padding: 0;
  transition: color .18s, border-color .18s;
  font-size: 14px;
  line-height: 1;
}

.ps-wishlist-card__remove:hover {
  color: #e87070;
  border-color: #e87070;
}

/* ── Estado vacío ─────────────────────────────────────────────────────────── */

.ps-wishlist-empty {
  text-align: center;
  padding: 56px 24px;
}

.ps-wishlist-empty__kanji {
  font-family: var(--font-display);
  font-size: 4rem;
  color: var(--pink);
  opacity: .18;
  line-height: 1;
  margin-bottom: 16px;
  user-select: none;
}

.ps-wishlist-empty__msg {
  font-size: 15px;
  font-weight: 600;
  color: var(--white);
  margin-bottom: 8px;
}

.ps-wishlist-empty__sub {
  font-size: 13px;
  color: var(--text-mid);
  margin-bottom: 24px;
  max-width: 320px;
  margin-left: auto;
  margin-right: auto;
}

.ps-wishlist-empty__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  background: var(--pink);
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  border-radius: 99px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  text-decoration: none;
  transition: background .18s;
}

.ps-wishlist-empty__cta:hover { background: #f0a8c5; text-decoration: none; color: #0a0a16; -webkit-text-fill-color: #0a0a16; }

/* ── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 600px) {
  .ps-wishlist-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .ps-wishlist-card__body { padding: 10px 10px 8px; }
  .ps-wishlist-card__actions { gap: 6px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Sub-fase 7h — Alertas de Restock
   .ps-restock-*  → formulario en página de producto (outofstock)
   .ps-alerts-*   → lista en Mi Cuenta /alertas-restock/
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Formulario en página de producto ──────────────────────────────────── */

.ps-restock-wrap {
  margin-top: 20px;
  margin-bottom: 4px;
}

.ps-restock-inner {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 18px 20px;
  background: var(--bg-card);
  border: 1px solid var(--border-pink);
  border-radius: 12px;
}

/* Ícono + label en la misma línea */
.ps-restock-header {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ps-restock-icon {
  display: flex;
  align-items: center;
  color: var(--pink);
  flex-shrink: 0;
  line-height: 0;
}

.ps-restock-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--white);
  margin: 0;
}

.ps-restock-fields {
  display: flex;
  gap: 8px;
  align-items: stretch;
}

.ps-restock-email {
  flex: 1;
  min-width: 0;
  padding: 9px 14px;
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--border);
  border-radius: 99px;
  color: var(--white);
  font-size: 13px;
  font-family: var(--font-body);
  outline: none;
  transition: border-color .18s;
}

.ps-restock-email:focus {
  border-color: rgba(237,147,177,0.5);
}

.ps-restock-email::placeholder {
  color: var(--text-muted);
}

.ps-restock-btn {
  flex-shrink: 0;
  padding: 9px 20px;
  background: var(--pink);
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
  border: none;
  border-radius: 99px;
  font-size: 13px;
  font-weight: 700;
  font-family: var(--font-body);
  cursor: pointer;
  transition: background .18s, opacity .18s;
  white-space: nowrap;
}

.ps-restock-btn:hover:not(:disabled) { background: #f0a8c5; }
.ps-restock-btn:disabled             { opacity: .6; cursor: default; }

.ps-restock-msg {
  font-size: 12.5px;
  margin: 0;
  min-height: 0;
  transition: opacity .2s;
}

.ps-restock-msg--ok    { color: #7ecf7e; }
.ps-restock-msg--error { color: #e07070; }

/* Estado confirmado (ya suscripto) */

.ps-restock-subscribed-detail {
  font-size: 12px;
  color: var(--text-muted);
  margin: 0;
  line-height: 1.6;
}

.ps-restock-subscribed-detail strong {
  color: var(--text-mid);
  font-weight: 600;
}

.ps-restock-subscribed-detail a {
  color: var(--lila);
  text-decoration: none;
  white-space: nowrap;
}

.ps-restock-subscribed-detail a:hover { text-decoration: underline; }

@media (max-width: 480px) {
  .ps-restock-fields { flex-direction: column; }
  .ps-restock-btn    { width: 100%; text-align: center; }
}

/* ── Lista en Mi Cuenta (/alertas-restock/) ─────────────────────────────── */

.ps-alerts-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ps-alerts-card {
  display: grid;
  grid-template-columns: 72px 1fr auto;
  gap: 14px;
  align-items: center;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  transition: border-color .18s;
}

.ps-alerts-card:hover { border-color: rgba(175,169,236,0.3); }

.ps-alerts-card__img {
  width: 72px;
  height: 72px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--bg-card2);
}

.ps-alerts-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ps-alerts-card__img a { display: block; width: 100%; height: 100%; }

.ps-alerts-card__img-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
}

.ps-alerts-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.ps-alerts-card__name {
  font-size: 14px;
  font-weight: 600;
  color: var(--white);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ps-alerts-card__name a {
  color: var(--white);
  text-decoration: none;
}

.ps-alerts-card__name a:hover { color: var(--pink); }

.ps-alerts-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.ps-alerts-card__date {
  font-size: 12px;
  color: var(--text-muted);
}

.ps-alerts-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 2px 10px;
  border-radius: 99px;
  text-transform: uppercase;
}

.ps-alerts-badge--active {
  background: rgba(255,196,80,0.12);
  color: #f0c040;
  border: 1px solid rgba(255,196,80,0.25);
}

.ps-alerts-badge--notified {
  background: rgba(80,200,80,0.1);
  color: #7ecf7e;
  border: 1px solid rgba(80,200,80,0.25);
  text-transform: none;
  font-weight: 400;
  letter-spacing: 0;
}

.ps-alerts-card__action { flex-shrink: 0; }

.ps-alerts-cancel-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 99px;
  color: var(--text-muted);
  font-size: 12px;
  font-family: var(--font-body);
  cursor: pointer;
  transition: border-color .18s, color .18s, background .18s;
  white-space: nowrap;
}

.ps-alerts-cancel-btn:hover:not(:disabled) {
  border-color: rgba(224,112,112,0.5);
  color: #e07070;
  background: rgba(224,112,112,0.06);
}

.ps-alerts-cancel-btn:disabled { opacity: .5; cursor: default; }

/* Empty state */
.ps-alerts-empty {
  text-align: center;
  padding: 40px 20px 24px;
}

.ps-alerts-empty__kanji {
  font-family: var(--font-display);
  font-size: 56px;
  color: rgba(175,169,236,0.18);
  margin-bottom: 16px;
  line-height: 1;
}

.ps-alerts-empty__msg {
  font-size: 16px;
  font-weight: 600;
  color: var(--white);
  margin-bottom: 8px;
}

.ps-alerts-empty__sub {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 24px;
  max-width: 340px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.6;
}

.ps-alerts-empty__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  background: var(--pink);
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  border-radius: 99px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  text-decoration: none;
  transition: background .18s;
}

.ps-alerts-empty__cta:hover { background: #f0a8c5; text-decoration: none; color: #0a0a16; -webkit-text-fill-color: #0a0a16; }

@media (max-width: 600px) {
  .ps-alerts-card {
    grid-template-columns: 60px 1fr;
    grid-template-rows: auto auto;
  }
  .ps-alerts-card__action {
    grid-column: 2;
    grid-row: 2;
  }
  .ps-alerts-card__img { width: 60px; height: 60px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Sub-fase 7i — Mi Colección de Cartas
   .ps-coleccion-*  → layout general, stats, filtros, empty state
   .ps-col-card__*  → tarjetas individuales
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Empty state ──────────────────────────────────────────────────────────── */

.ps-coleccion-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 48px 24px;
  text-align: center;
}

.ps-coleccion-empty__kanji {
  font-family: 'Shippori Mincho', serif;
  font-size: clamp(48px, 10vw, 80px);
  font-weight: 700;
  line-height: 1;
  background: linear-gradient(135deg, var(--pink) 0%, var(--lilac) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 20px;
  opacity: .35;
  user-select: none;
}

.ps-coleccion-empty__msg {
  font-size: 18px;
  font-weight: 600;
  color: var(--white);
  margin: 0 0 10px;
}

.ps-coleccion-empty__sub {
  font-size: 14px;
  color: rgba(255,255,255,.55);
  max-width: 400px;
  line-height: 1.7;
  margin: 0 0 24px;
}

.ps-coleccion-empty__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  background: var(--pink);
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  border-radius: 99px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  text-decoration: none;
  transition: background .18s;
}

.ps-coleccion-empty__cta:hover {
  background: #f0a8c5;
  text-decoration: none;
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
}

/* ── Stats bar ────────────────────────────────────────────────────────────── */

.ps-coleccion-stats {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  font-size: 13px;
  color: rgba(255,255,255,.55);
}

.ps-coleccion-stats__count {
  font-weight: 700;
  color: var(--white);
}

.ps-coleccion-stats__sep { opacity: .4; }

/* ── Filtros ──────────────────────────────────────────────────────────────── */

.ps-coleccion-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}

.ps-coleccion-filter {
  padding: 6px 14px;
  border-radius: 99px;
  border: 1px solid var(--border);
  background: transparent;
  color: rgba(255,255,255,.65);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all .18s;
  letter-spacing: .03em;
}

.ps-coleccion-filter:hover {
  border-color: var(--pink);
  color: var(--pink);
}

.ps-coleccion-filter.active {
  background: var(--pink);
  border-color: var(--pink);
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
}

/* ── Grid de cartas ───────────────────────────────────────────────────────── */

.ps-coleccion-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.ps-coleccion-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color .18s, transform .18s;
  text-decoration: none;
  color: inherit;
  display: block;
}

a.ps-coleccion-card:hover {
  border-color: var(--pink);
  transform: translateY(-3px);
  text-decoration: none;
  color: inherit;
}

.ps-coleccion-card.ps-col-hidden {
  display: none;
}

/* ── Imagen ───────────────────────────────────────────────────────────────── */

/* Técnica padding-top para ratio fijo 5:7 (TCG estándar 2.5"×3.5").
   Más robusta que aspect-ratio: TT4 tiene img { height: auto !important }
   que puede pisar height:100% en contenedores con aspect-ratio.
   Con padding-top el alto del wrapper viene del CSS, no del contenido. */
.ps-col-card__img-wrap {
  position: relative;
  width: 100%;
  padding-top: 140%; /* 7/5 = 1.4 → 140% del ancho */
  overflow: hidden;
  background: var(--bg-card);
}

/* !important necesarios: mismo patrón que otras imágenes del tema
   (ver comentario línea ~163: TT4 aplica img { height: auto !important }) */
.ps-col-card__img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform .25s;
}

a.ps-coleccion-card:hover .ps-col-card__img {
  transform: scale(1.04);
}

/* Badge cantidad (×N) — esquina superior derecha */
.ps-col-card__qty {
  position: absolute;
  top: 7px;
  right: 7px;
  background: var(--pink);
  color: #0a0a16;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  padding: 3px 7px;
  border-radius: 99px;
  pointer-events: none;
}

/* Badge sistema de juego — en el body, junto a la rareza */
.ps-col-card__juego {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .05em;
  padding: 2px 7px;
  border-radius: 4px;
  text-transform: uppercase;
}

/* Weiß Schwarz — azul índigo sutil */
.ps-col-juego-ws {
  background: rgba(100,110,220,.15);
  color: #8fa0ee;
  border: 1px solid rgba(100,110,220,.25);
}

/* Sankuri — ámbar */
.ps-col-juego-sankuri {
  background: rgba(200,120,0,.15);
  color: #e8a030;
  border: 1px solid rgba(200,120,0,.25);
}

/* ── Body ─────────────────────────────────────────────────────────────────── */

.ps-col-card__body {
  padding: 10px 10px 12px;
}

.ps-col-card__name {
  font-size: 12px;
  font-weight: 600;
  color: var(--white);
  margin: 0 0 7px;
  line-height: 1.4;
  /* Truncar a 2 líneas */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ps-col-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 6px;
}

/* ── Rareza badge — colores según tier ──────────────────────────────────── */

.ps-col-card__rareza {
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
  padding: 2px 8px;
  border-radius: 4px;
  text-transform: uppercase;
}

/* Tier C — gris */
.ps-col-tier-c {
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.5);
  border: 1px solid rgba(255,255,255,.12);
}

/* Tier B — azul */
.ps-col-tier-b {
  background: rgba(79,142,247,.15);
  color: #7eb5f5;
  border: 1px solid rgba(79,142,247,.25);
}

/* Tier A — lila */
.ps-col-tier-a {
  background: rgba(175,169,236,.15);
  color: var(--lilac);
  border: 1px solid rgba(175,169,236,.3);
}

/* Tier S — dorado */
.ps-col-tier-s {
  background: rgba(232,184,75,.12);
  color: #e8c050;
  border: 1px solid rgba(232,184,75,.3);
}

/* ── Meta: juego · set ────────────────────────────────────────────────────── */

.ps-col-card__meta {
  font-size: 11px;
  color: rgba(255,255,255,.38);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ps-col-card__sep { margin: 0 3px; opacity: .5; }

/* ── Responsive ───────────────────────────────────────────────────────────── */

@media (max-width: 900px) {
  .ps-coleccion-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }
}

@media (max-width: 600px) {
  .ps-coleccion-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .ps-col-card__body { padding: 8px 8px 10px; }
  .ps-col-card__name { font-size: 11px; }
}

/* ── Sub-fase 7j — Mis Cupones ───────────────────────────────────────────────
   .ps-cupones-*  → list, cards, type badge, estado badge, copy button, empty
   ──────────────────────────────────────────────────────────────────────────── */

.ps-cupones-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* ── Card base ─────────────────────────────────────────────────────────────── */
.ps-cupones-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-left: 4px solid var(--pink);
  border-radius: 12px;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color .2s;
}

.ps-cupones-card--expired,
.ps-cupones-card--agotado {
  border-left-color: rgba(255,255,255,.15);
  opacity: .6;
}

.ps-cupones-card:not(.ps-cupones-card--expired):not(.ps-cupones-card--agotado):hover {
  border-color: rgba(237,147,177,.35);
}

/* ── Header ────────────────────────────────────────────────────────────────── */
.ps-cupones-card__header {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.ps-cupones-card__code-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}

.ps-cupones-card__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* ── Código monospace ──────────────────────────────────────────────────────── */
.ps-cupones-code {
  font-family: 'Courier New', Courier, monospace;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  letter-spacing: .06em;
  background: rgba(255,255,255,.05);
  border: 1px dashed rgba(255,255,255,.18);
  border-radius: 6px;
  padding: 4px 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 220px;
}

/* ── Badge tipo descuento ──────────────────────────────────────────────────── */
.ps-cupones-badge--type {
  font-size: 13px;
  font-weight: 800;
  border-radius: 6px;
  padding: 3px 9px;
  white-space: nowrap;
  flex-shrink: 0;
  line-height: 1.4;
}

.ps-cupones-badge--percent {
  background: rgba(237,147,177,.18);
  color: var(--pink);
}

.ps-cupones-badge--fixed_cart,
.ps-cupones-badge--fixed_product {
  background: rgba(175,169,236,.18);
  color: var(--lilac);
}

/* ── Badge estado ──────────────────────────────────────────────────────────── */
.ps-cupones-badge--estado {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em;
  border-radius: 20px;
  padding: 3px 10px;
  white-space: nowrap;
  line-height: 1.4;
}

.ps-cupones-badge--estado-active {
  background: rgba(72,199,142,.15);
  color: #48c78e;
}

.ps-cupones-badge--estado-expired,
.ps-cupones-badge--estado-agotado {
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.35);
}

/* ── Botón copiar ──────────────────────────────────────────────────────────── */
.ps-cupones-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  font-family: var(--font-body);
  color: var(--pink);
  -webkit-text-fill-color: var(--pink);
  background: rgba(237,147,177,.10);
  border: 1px solid rgba(237,147,177,.25);
  border-radius: 20px;
  padding: 4px 12px;
  cursor: pointer;
  transition: background .2s, border-color .2s, color .2s, -webkit-text-fill-color .2s;
}

.ps-cupones-copy-btn:hover {
  background: rgba(237,147,177,.2);
  border-color: rgba(237,147,177,.45);
}

.ps-cupones-copy-btn.is-copied {
  background: rgba(72,199,142,.14);
  border-color: rgba(72,199,142,.3);
  color: #48c78e;
  -webkit-text-fill-color: #48c78e;
}

/* ── Body ──────────────────────────────────────────────────────────────────── */
.ps-cupones-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ps-cupones-card__desc {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,.85);
  margin: 0;
}

.ps-cupones-card__note {
  font-size: 12px;
  color: var(--text-mid);
  margin: 0;
  font-style: italic;
}

.ps-cupones-card__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin-top: 2px;
}

.ps-cupones-meta-item {
  font-size: 12px;
  color: var(--text-mid);
  position: relative;
}

/* Separador visual entre ítems de meta */
.ps-cupones-meta-item + .ps-cupones-meta-item::before {
  content: '·';
  margin-right: 12px;
  opacity: .35;
  position: absolute;
  left: -14px;
}

.ps-cupones-meta-item--expiry {
  color: rgba(255,193,100,.75);
}

/* ── Empty state ───────────────────────────────────────────────────────────── */
.ps-cupones-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 48px 24px 40px;
  gap: 12px;
}

.ps-cupones-empty__kanji {
  font-family: var(--font-display);
  font-size: 52px;
  color: rgba(237,147,177,.12);
  line-height: 1;
}

.ps-cupones-empty__msg {
  font-size: 15px;
  font-weight: 600;
  color: rgba(255,255,255,.65);
  margin: 0;
}

.ps-cupones-empty__sub {
  font-size: 13px;
  color: var(--text-mid);
  margin: 0;
  max-width: 320px;
  line-height: 1.65;
}

.ps-cupones-empty__cta {
  display: inline-block;
  margin-top: 4px;
  padding: 10px 24px;
  background: var(--pink);
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: background .2s;
}

.ps-cupones-empty__cta:hover {
  background: #f0a8c5;
  text-decoration: none;
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
}

/* ── Responsive ────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .ps-cupones-card {
    padding: 14px 16px;
    gap: 8px;
  }
  .ps-cupones-code {
    font-size: 13px;
    max-width: 150px;
  }
  .ps-cupones-card__header {
    flex-wrap: wrap;
    gap: 8px;
  }
}

/* ══════════════════════════════════════════════════════════════════════════════
   Sub-fase 7c — Pedidos a demanda — Página /pedidos/
   ══════════════════════════════════════════════════════════════════════════════ */

/* Activo en el nav cuando estamos en /pedidos/ */
.nav-links .nav-link-active,
.nav-mobile-menu .nav-link-active {
  color: var(--lila) !important;
  -webkit-text-fill-color: var(--lila) !important;
}

/* Utilidad global para ocultar elementos — más específica que resets del tema */
.ps-hidden { display: none !important; }

/* Wrapper de página */
.ps-pedidos-page {
  min-height: calc(100vh - 64px);
  padding: 80px 20px 60px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
.ps-pedidos-container {
  width: 100%;
  max-width: 600px;
}

/* Header decorativo */
.ps-pedidos-header {
  text-align: center;
  margin-bottom: 32px;
}
.ps-pedidos-kanji {
  font-family: var(--font-display);
  font-size: 56px;
  opacity: 0.1;
  line-height: 1;
  margin-bottom: 4px;
  color: var(--white);
}
.ps-pedidos-eyebrow {
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pink);
  margin-bottom: 10px;
}
.ps-pedidos-title {
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 700;
  background: linear-gradient(135deg, var(--white) 0%, var(--lila) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 12px;
  line-height: 1.2;
}
.ps-pedidos-subtitle {
  font-size: 14px;
  color: var(--text-mid);
  line-height: 1.7;
  max-width: 480px;
  margin: 0 auto;
}

/* Card principal */
.ps-pedidos-card {
  background: var(--bg-card);
  border: 0.5px solid var(--border);
  border-radius: 16px;
  padding: 36px 40px;
}

/* Campos del formulario */
.ps-pedidos-field {
  margin-bottom: 24px;
}
.ps-pedidos-field label {
  display: block;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-mid);
  -webkit-text-fill-color: var(--text-mid);
  margin-bottom: 8px;
}
.ps-pedidos-req {
  color: var(--pink);
  -webkit-text-fill-color: var(--pink);
  margin-left: 2px;
}
.ps-pedidos-optional {
  color: var(--text-muted);
  -webkit-text-fill-color: var(--text-muted);
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  font-size: 11px;
}
.ps-pedidos-field-hint {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 6px;
  line-height: 1.5;
}

/* Textarea */
.ps-pedidos-textarea {
  width: 100%;
  min-height: 140px;
  background: var(--bg-base);
  border: 0.5px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
  color: var(--white);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 300;
  line-height: 1.6;
  resize: vertical;
  transition: border-color 0.2s;
  -webkit-text-fill-color: var(--white);
}
.ps-pedidos-textarea:focus {
  outline: none;
  border-color: rgba(175,169,236,0.5);
}
.ps-pedidos-textarea::placeholder {
  color: var(--text-muted);
  -webkit-text-fill-color: var(--text-muted);
}

/* Dropzone de foto */
.ps-pedidos-dropzone {
  border: 1.5px dashed var(--border);
  border-radius: 10px;
  padding: 28px 20px;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  position: relative;
  overflow: hidden;
  min-height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ps-pedidos-dropzone:hover,
.ps-pedidos-dropzone.is-over {
  border-color: rgba(175,169,236,0.45);
  background: rgba(175,169,236,0.04);
}
.ps-pedidos-dz-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  pointer-events: none;
}
.ps-pedidos-dz-icon {
  color: var(--text-muted);
  display: block;
}
.ps-pedidos-dz-text {
  font-size: 13px;
  color: var(--text-mid);
  -webkit-text-fill-color: var(--text-mid);
  margin: 0;
}
.ps-pedidos-dz-hint {
  font-size: 11px;
  color: var(--text-muted);
  -webkit-text-fill-color: var(--text-muted);
}

/* Preview de foto */
.ps-pedidos-dz-preview {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ps-pedidos-dz-preview img {
  max-width: 100%;
  max-height: 220px;
  border-radius: 8px;
  object-fit: contain;
  display: block;
}
.ps-pedidos-foto-quitar {
  position: absolute;
  top: 6px;
  right: 6px;
  background: rgba(10,10,22,0.85);
  border: 0.5px solid var(--border);
  border-radius: 50%;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--text-mid);
  -webkit-text-fill-color: var(--text-mid);
  font-size: 12px;
  transition: color 0.2s, border-color 0.2s;
  padding: 0;
  font-family: var(--font-body);
  z-index: 10;
  pointer-events: auto;
}
.ps-pedidos-foto-quitar:hover {
  color: var(--pink);
  -webkit-text-fill-color: var(--pink);
  border-color: var(--border-pink);
}

/* Hint de teléfono / WhatsApp */
.ps-pedidos-phone-hint {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 20px;
}
.ps-pedidos-phone-hint--ok {
  background: rgba(37,211,102,0.07);
  border: 0.5px solid rgba(37,211,102,0.25);
  color: var(--text-mid);
  -webkit-text-fill-color: var(--text-mid);
}
.ps-pedidos-phone-hint--empty {
  background: rgba(175,169,236,0.06);
  border: 0.5px solid rgba(175,169,236,0.2);
  color: var(--text-mid);
  -webkit-text-fill-color: var(--text-mid);
}
.ps-pedidos-phone-hint__icon {
  flex-shrink: 0;
  margin-top: 2px;
  opacity: 0.6;
}
.ps-pedidos-phone-hint--ok .ps-pedidos-phone-hint__icon { color: #25D366; }
.ps-pedidos-phone-hint--empty .ps-pedidos-phone-hint__icon { color: var(--lila); }
.ps-pedidos-phone-hint strong {
  color: var(--white);
  -webkit-text-fill-color: var(--white);
  font-weight: 600;
}
.ps-pedidos-phone-hint__link {
  color: var(--lila);
  -webkit-text-fill-color: var(--lila);
  text-decoration: none;
  font-weight: 500;
  white-space: nowrap;
  margin-left: 4px;
}
.ps-pedidos-phone-hint__link:hover { text-decoration: underline; }

/* Mensaje de error */
.ps-pedidos-error {
  line-height: 1.5;
}

/* Botón submit */
.ps-pedidos-submit {
  width: 100%;
  padding: 14px 24px;
  background: var(--pink);
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: opacity 0.2s;
}
.ps-pedidos-submit:hover:not(:disabled) { opacity: 0.88; }
.ps-pedidos-submit:disabled { opacity: 0.5; cursor: not-allowed; }

/* Estado de éxito */
.ps-pedidos-success {
  text-align: center;
  padding: 12px 0;
  animation: fadeUp 0.4s ease both;
}
.ps-pedidos-success-kanji {
  font-family: var(--font-display);
  font-size: 52px;
  opacity: 0.12;
  line-height: 1;
  margin-bottom: 16px;
  color: var(--pink);
}
.ps-pedidos-success-title {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 700;
  color: var(--white);
  -webkit-text-fill-color: var(--white);
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
  margin-bottom: 10px;
}
.ps-pedidos-success-msg {
  font-size: 14px;
  color: var(--text-mid);
  -webkit-text-fill-color: var(--text-mid);
  line-height: 1.7;
  margin-bottom: 24px;
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}
.ps-pedidos-success-num-wrap {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  background: var(--bg-base);
  border: 0.5px solid var(--border-pink);
  border-radius: 10px;
  padding: 10px 24px;
  margin-bottom: 28px;
}
.ps-pedidos-success-num-label {
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  -webkit-text-fill-color: var(--text-muted);
}
.ps-pedidos-success-num {
  font-size: 28px;
  font-weight: 700;
  color: var(--pink);
  -webkit-text-fill-color: var(--pink);
  letter-spacing: -0.02em;
}
.ps-pedidos-success-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
.ps-pedidos-btn-ver {
  display: inline-block;
  padding: 11px 22px;
  background: var(--pink);
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
  border-radius: 8px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  transition: opacity 0.2s;
}
.ps-pedidos-btn-ver:hover { opacity: 0.88; }
.ps-pedidos-btn-nueva {
  display: inline-block;
  padding: 11px 22px;
  background: transparent;
  border: 0.5px solid var(--border);
  color: var(--text-mid);
  -webkit-text-fill-color: var(--text-mid);
  border-radius: 8px;
  font-size: 13px;
  font-family: var(--font-body);
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
.ps-pedidos-btn-nueva:hover {
  border-color: rgba(175,169,236,0.4);
  color: var(--lila);
  -webkit-text-fill-color: var(--lila);
}

/* Responsive */
@media (max-width: 600px) {
  .ps-pedidos-card { padding: 24px 20px; }
  .ps-pedidos-title { font-size: 24px; }
}

/* Maid sobre el footer — footer tiene z-index mayor en esta página */
body.page-pedidos footer {
  position: relative;
  z-index: 10;
}

/* Espacio para la maid fija (desktop) */
@media (min-width: 900px) {
  .ps-pedidos-page {
    /* sin padding-right: el formulario queda centrado y la maid flota encima */
  }
}

/* En /pedidos/ la maid se oculta antes que el breakpoint global (1092px vs 900px)
   porque a ese ancho ya solapa el texto del header del formulario. */
@media (max-width: 1092px) {
  body.page-pedidos .ps-cat-banner { display: none; }
}

/* ══════════════════════════════════════════════════════════════════════════════
   Sub-fase 7c — Pedidos a demanda — Mi Cuenta / Mis solicitudes
   ══════════════════════════════════════════════════════════════════════════════ */

/* Toolbar (count + botón nueva) */
.ps-solicitudes-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 10px;
}
.ps-solicitudes-count {
  font-size: 13px;
  color: var(--text-muted);
  -webkit-text-fill-color: var(--text-muted);
}
.ps-solicitudes-nueva {
  font-size: 12px;
  font-weight: 600;
  color: var(--pink);
  -webkit-text-fill-color: var(--pink);
  text-decoration: none;
  padding: 6px 14px;
  border: 0.5px solid var(--border-pink);
  border-radius: 20px;
  transition: background 0.2s;
}
.ps-solicitudes-nueva:hover { background: var(--pink-glow); }

/* Cards */
.ps-solicitudes { display: flex; flex-direction: column; gap: 14px; }

.ps-solicitud-card {
  background: var(--bg-card);
  border: 0.5px solid var(--border);
  border-radius: 12px;
  padding: 20px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  transition: border-color 0.2s;
}
.ps-solicitud-card:hover { border-color: rgba(175,169,236,0.28); }

/* Foto thumbnail */
.ps-solicitud-card__img {
  width: 80px;
  height: 80px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
  background: var(--bg-base);
  display: block;
}
.ps-solicitud-card__img-placeholder {
  width: 80px;
  height: 80px;
  border-radius: 8px;
  background: var(--bg-base);
  border: 0.5px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
  -webkit-text-fill-color: initial;
}

/* Cuerpo */
.ps-solicitud-card__body { flex: 1; min-width: 0; }

.ps-solicitud-card__header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.ps-solicitud-card__num,
.ps-solicitud-card__fecha {
  font-size: 12px;
  color: var(--text-muted);
  -webkit-text-fill-color: var(--text-muted);
}
.ps-solicitud-card__num::after {
  content: '·';
  margin-left: 8px;
  opacity: 0.4;
}

/* Badges de estado */
.ps-solicitud-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  -webkit-text-fill-color: initial;
}
.ps-solicitud-badge--pendiente  { background: rgba(255,201,60,0.15);  color: #ffc93c; }
.ps-solicitud-badge--en_proceso { background: var(--lila-glow);       color: var(--lila); }
.ps-solicitud-badge--cotizado   { background: rgba(72,199,142,0.15);  color: #48c78e; }
.ps-solicitud-badge--cancelado  { background: rgba(255,255,255,0.05); color: var(--text-muted); }

/* Descripción (clamp a 3 líneas) */
.ps-solicitud-card__desc {
  font-size: 14px;
  color: var(--text-mid);
  -webkit-text-fill-color: var(--text-mid);
  line-height: 1.6;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

/* Notas del admin (cotización) */
.ps-solicitud-card__notas {
  margin-top: 12px;
  padding: 10px 14px;
  background: var(--bg-base);
  border-left: 2px solid var(--lila);
  border-radius: 4px;
  font-size: 13px;
  color: var(--text-mid);
  -webkit-text-fill-color: var(--text-mid);
  line-height: 1.6;
}
.ps-solicitud-card__notas-label {
  display: block;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lila);
  -webkit-text-fill-color: var(--lila);
  margin-bottom: 4px;
}

/* Empty state */
.ps-solicitudes-empty {
  text-align: center;
  padding: 48px 20px;
}
.ps-solicitudes-empty__kanji {
  font-family: var(--font-display);
  font-size: 64px;
  opacity: 0.1;
  line-height: 1;
  margin-bottom: 16px;
  color: var(--white);
}
.ps-solicitudes-empty__msg {
  font-size: 16px;
  color: var(--white);
  -webkit-text-fill-color: var(--white);
  margin-bottom: 8px;
}
.ps-solicitudes-empty__sub {
  font-size: 13px;
  color: var(--text-muted);
  -webkit-text-fill-color: var(--text-muted);
  line-height: 1.6;
  margin-bottom: 24px;
}
.ps-solicitudes-empty__cta {
  display: inline-block;
  padding: 11px 24px;
  background: var(--pink);
  color: #0a0a16;
  -webkit-text-fill-color: #0a0a16;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  border-radius: 8px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  transition: opacity 0.2s;
}
.ps-solicitudes-empty__cta:hover { opacity: 0.88; }

/* Responsive */
@media (max-width: 600px) {
  .ps-solicitud-card {
    flex-direction: column;
  }
  .ps-solicitud-card__img,
  .ps-solicitud-card__img-placeholder {
    width: 100%;
    height: 160px;
  }
}

/* ── Cloudflare Turnstile ─────────────────────────────────────────────────────
   El widget renderiza un iframe de ancho fijo dentro del div.
   flex + justify-content lo centra horizontalmente en cualquier contenedor.
   ──────────────────────────────────────────────────────────────────────────── */
.cf-turnstile {
  display: flex;
  justify-content: center;
  margin: 16px 0 4px;
}

/* ── Recuperar contraseña ─────────────────────────────────────────────────────
   Override del layout grid de Mi Cuenta para la página de recuperar contraseña.
   Se aplica via body class .ps-lost-password (agregada en functions.php).

   Problema 1 (deslogueado): .woocommerce-MyAccount-content tiene grid-column:2
   heredado, lo que lo desplaza a la derecha aunque el padre sea display:block.
   Problema 2 (logueado): el grid aplica normalmente pero la columna de contenido
   queda aplastada por conflictos de width con los estilos de WooCommerce.

   Fix: forzar display:block en el contenedor y centrar con max-width + margin auto.
   El nav lateral se apila arriba (si el usuario está logueado); la forma queda
   centrada en ambos estados.
   ──────────────────────────────────────────────────────────────────────────── */
.ps-lost-password .woocommerce {
  display: block !important;
  max-width: 560px;
  margin-left: auto !important;
  margin-right: auto !important;
}
.ps-lost-password .woocommerce-MyAccount-navigation {
  float: none !important;
  width: 100% !important;
  position: static !important;
  grid-column: unset !important;
  grid-row: unset !important;
  margin-bottom: 24px;
}
.ps-lost-password .woocommerce-MyAccount-content {
  float: none !important;
  width: 100% !important;
  grid-column: unset !important;
  grid-row: unset !important;
}
