/*
Theme Name: Genio Tienda
Theme URI: https://tiendaonline.elgenioequivocado.com/
Author: El Genio Equivocado
Description: Tema propio y ligero de la tienda online de El Genio Equivocado (sustituye a Flatsome). Sin editor visual: la portada y los listados salen solos de WooCommerce. Código en el repo paneldecontrol (tiendaonline/genio-tienda/), se despliega con el webhook de genio.
Version: 0.1.0
Requires at least: 6.0
Requires PHP: 7.4
WC requires at least: 8.0
Text Domain: genio-tienda
*/

/* ── Colores y tipos (los de la tienda de siempre) ───────────────────── */
:root {
  --coral: #EE7859;
  --amarillo: #F8D169;
  --aguamarina: #97CEC8;
  --lila: #B5B3DA;
  --rosa: #F6BECF;
  --tinta: #2E2A25;
  --tinta-2: #5C554B;
  --papel: #FFFFFF;
  --hueso: #E9E4D6;
  --crema: #FDF7E6;
  --borde: 2px solid var(--tinta);
  --sombra: 4px 4px 0 var(--tinta);
  --disp: 'Bricolage Grotesque', system-ui, sans-serif;
  --texto: 'Plus Jakarta Sans', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--texto); font-size: 16px; line-height: 1.55; color: var(--tinta); background: var(--amarillo); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--tinta); text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 2px solid var(--tinta); outline-offset: 2px; }
.screen-reader-text, .sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.screen-reader-text:focus { position: static !important; width: auto; height: auto; clip: auto; }

.wrap { max-width: 1200px; margin: 0 auto; padding-left: 24px; padding-right: 24px; width: 100%; }
.disp { font-family: var(--disp); font-weight: 700; letter-spacing: -0.02em; }
h1, h2, h3 { font-family: var(--disp); font-weight: 700; letter-spacing: -0.02em; line-height: 1.05; }

/* ── Botones ──────────────────────────────────────────────────────────── */
.btn, .button, button.button, input.button, a.button, .wc-block-components-button, #respond input#submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px;
  border-radius: 999px; border: var(--borde); background: var(--tinta); color: var(--papel) !important;
  font: inherit; font-weight: 700; font-size: 14px; line-height: 1.2; cursor: pointer; white-space: nowrap; text-decoration: none;
}
.btn:hover, .button:hover { background: #4A443C; text-decoration: none; }
.btn.cl { background: var(--papel); color: var(--tinta) !important; }
.btn.cl:hover { background: var(--rosa); }
.button.alt, .single_add_to_cart_button, .checkout-button { background: var(--tinta); min-height: 50px; font-size: 16px; }
.button.disabled, .button:disabled { opacity: .5; cursor: not-allowed; }

/* ── Franja superior y cabecera ───────────────────────────────────────── */
.franja { background: var(--rosa); border-bottom: var(--borde); }
.franja .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; padding-top: 9px; padding-bottom: 9px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.franja .redes { display: flex; gap: 16px; }

.cabecera { background: var(--coral); border-bottom: var(--borde); }
.cabecera .fila { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; padding-top: 18px; padding-bottom: 18px; }
.cabecera .logo img { width: 118px; height: auto; }
.cabecera .acciones { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.cabecera .acciones .btn { min-height: 46px; }
.buscador { flex: 1 1 280px; min-width: 0; max-width: 460px; display: flex; }
.buscador input[type=search] { flex: 1; min-width: 0; height: 46px; padding: 0 16px; border: var(--borde); border-right: 0; border-radius: 999px 0 0 999px; font: inherit; font-size: 15px; background: var(--papel); }
.buscador button { width: 52px; height: 46px; border: var(--borde); border-radius: 0 999px 999px 0; background: var(--tinta); color: var(--papel); cursor: pointer; display: flex; align-items: center; justify-content: center; }

.nav-wrap { padding-bottom: 18px; }
.nv { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 4px; background: var(--papel); border: var(--borde); border-radius: 30px; padding: 6px 10px; box-shadow: var(--sombra); }
.nv ul { list-style: none; margin: 0; padding: 0; display: contents; }
.nv li { position: relative; }
.pill, .nv > ul > li > a { display: inline-block; padding: 9px 12px; border-radius: 999px; font-weight: 700; font-size: 13.5px; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; transition: background .15s, transform .15s; }
.pill:hover, .nv > ul > li > a:hover, .nv .actual > a, .nv .current-menu-item > a { background: var(--aguamarina); text-decoration: none; }
.pill:hover { transform: translateY(-2px); }
.nv .der { margin-left: auto; }
.desplegable > summary { list-style: none; cursor: pointer; }
.desplegable > summary::-webkit-details-marker { display: none; }
.desplegable[open] > summary { background: var(--aguamarina); }
.desplegable .sub { position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; width: min(560px, 86vw); max-height: 60vh; overflow: auto; padding: 10px; background: var(--papel); border: var(--borde); border-radius: 12px; box-shadow: var(--sombra); columns: 2 200px; column-gap: 8px; }
.desplegable .sub a { display: block; padding: 7px 10px; border-radius: 8px; font-weight: 600; font-size: 14px; break-inside: avoid; }
.desplegable .sub a:hover { background: var(--rosa); text-decoration: none; }
.desplegable { position: relative; display: inline-block; }

/* ── Secciones de portada ─────────────────────────────────────────────── */
.seccion { padding-top: 64px; padding-bottom: 64px; }
.banda { border-top: var(--borde); border-bottom: var(--borde); }
.banda.aguamarina { background: var(--aguamarina); }
.banda.blanca { background: var(--papel); }
.banda.lila { background: var(--lila); }
.secth { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin-bottom: 26px; }
.secth h2 { margin: 0; font-size: 38px; }
.secth a { font-weight: 700; }

.destacado { display: flex; flex-wrap: wrap; gap: 40px; align-items: center; padding-top: 56px; padding-bottom: 40px; }
.destacado .fotos { flex: 1 1 460px; min-width: 0; position: relative; }
.destacado .foto { aspect-ratio: 4/3; background: var(--hueso) center/cover no-repeat; border: var(--borde); border-radius: 18px; box-shadow: 6px 6px 0 var(--tinta); }
.destacado .foto.cuadrada { aspect-ratio: 1/1; }
.destacado .disco { position: absolute; right: -14px; bottom: -24px; width: 38%; aspect-ratio: 1/1; background: var(--papel) center/cover no-repeat; border: var(--borde); border-radius: 10px; box-shadow: 5px 5px 0 var(--tinta); transform: rotate(4deg); }
.destacado .info { flex: 1 1 380px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.destacado h1 { margin: 0; font-size: clamp(40px, 5vw, 60px); line-height: 1; }
.destacado h1 span { font-weight: 500; display: block; }
.destacado .extracto { font-size: 18px; max-width: 470px; }
.destacado .extracto p { margin: 0; }
.destacado .compra { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.destacado .precio { font-family: var(--disp); font-weight: 700; font-size: 34px; }
.etiqueta { align-self: flex-start; display: inline-block; background: var(--aguamarina); border: var(--borde); border-radius: 999px; padding: 4px 12px; font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }

.dos { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px; padding-bottom: 64px; }
.horizontal { display: flex; background: var(--papel); border: var(--borde); border-radius: 14px; overflow: hidden; box-shadow: var(--sombra); transition: transform .15s, box-shadow .15s; }
.horizontal:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--tinta); text-decoration: none; }
.horizontal .im { flex: 0 0 44%; min-height: 200px; background: var(--hueso) center/cover no-repeat; border-right: var(--borde); }
.horizontal .tx { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 16px 18px; }
.horizontal .tx .disp { font-size: 28px; line-height: 1.05; }

.formatos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.formato { display: flex; flex-direction: column; justify-content: space-between; gap: 20px; min-height: 150px; padding: 20px; border: var(--borde); border-radius: 14px; box-shadow: var(--sombra); transition: transform .15s; }
.formato:hover { transform: translate(-2px, -2px); text-decoration: none; }
.formato .disp { font-size: 30px; }
.formato span:last-child { font-weight: 600; }

.grupos { columns: 4 180px; column-gap: 24px; }
.grupos a { display: block; padding: 5px 0; font-weight: 600; font-size: 15px; break-inside: avoid; }
.grupos a span { color: var(--tinta-2); font-weight: 500; font-size: 13px; }

/* ── Tarjeta de producto (portada, categorías, relacionados) ──────────── */
.rejilla, ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 24px; list-style: none; margin: 0; padding: 0; }
ul.products::before, ul.products::after { display: none !important; }
.tarjeta { display: flex; flex-direction: column; background: var(--papel); border: var(--borde); border-radius: 14px; overflow: hidden; box-shadow: var(--sombra); transition: transform .15s, box-shadow .15s; margin: 0 !important; width: auto !important; float: none !important; }
.tarjeta:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--tinta); }
.crema .tarjeta { background: var(--crema); }
.tarjeta .portada { position: relative; display: block; aspect-ratio: 1/1; background: var(--hueso); border-bottom: var(--borde); overflow: hidden; }
.tarjeta .portada img { width: 100%; height: 100%; object-fit: cover; margin: 0 !important; }
.tarjeta .marca { position: absolute; top: 10px; left: 10px; background: var(--rosa); border: var(--borde); font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px; text-transform: uppercase; letter-spacing: .04em; }
.tarjeta .marca.agotado { background: var(--papel); }
.tarjeta .marca.oferta { background: var(--aguamarina); }
.tarjeta .cuerpo { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px 14px; flex: 1; }
.tarjeta .grupo { font-size: 13px; font-weight: 600; color: var(--tinta-2); text-transform: uppercase; letter-spacing: .05em; }
.tarjeta .titulo { font-weight: 700; font-size: 16px; line-height: 1.3; margin: 0; }
.tarjeta .formato-t { font-size: 13px; }
.tarjeta .pie { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 8px; }
.tarjeta .precio { font-weight: 700; font-size: 17px; font-variant-numeric: tabular-nums; }
.tarjeta .precio del { font-weight: 500; font-size: 13px; color: var(--tinta-2); margin-right: 4px; }
.tarjeta .precio ins { text-decoration: none; }
.tarjeta .button { min-height: 40px; padding: 0 14px; font-size: 13px; }
.tarjeta .added_to_cart { display: none; }
.tarjeta .button.loading { opacity: .6; }
.tarjeta .button.added::after { content: ' ✓'; }

/* ── Páginas de WooCommerce ───────────────────────────────────────────── */
.contenido { padding-top: 32px; padding-bottom: 72px; }
.woocommerce-breadcrumb { font-size: 14px; font-weight: 600; margin-bottom: 18px; }
.woocommerce-products-header__title, .page-title, .entry-title { margin: 0 0 10px; font-size: clamp(40px, 5vw, 60px); }
.term-description { font-size: 17px; max-width: 640px; margin-bottom: 8px; }
.barra-listado { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 18px 0 24px; }
.chip { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: var(--borde); background: var(--papel); font-weight: 700; font-size: 14px; }
.chip:hover { background: var(--rosa); text-decoration: none; }
.chip.on { background: var(--tinta); color: var(--papel); }
.woocommerce-result-count { margin: 0 0 0 auto; font-size: 14px; font-weight: 600; }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select, select.orderby { min-height: 44px; padding: 0 14px; border: var(--borde); border-radius: 999px; font: inherit; font-weight: 600; background: var(--papel); }
.woocommerce-pagination { margin-top: 36px; }
.woocommerce-pagination ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; border: 0 !important; }
.woocommerce-pagination li { border: 0 !important; }
.woocommerce-pagination a, .woocommerce-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: 999px; border: var(--borde); background: var(--papel); font-weight: 700; }
.woocommerce-pagination .current { background: var(--tinta); color: var(--papel); }
.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-notice { list-style: none; background: var(--papel); border: var(--borde); border-radius: 12px; padding: 14px 18px; margin: 0 0 20px; font-weight: 600; box-shadow: var(--sombra); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.woocommerce-error { background: #FDECEC; }
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before { display: none; }

/* Ficha de producto */
.single-product div.product { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.single-product div.product .woocommerce-product-gallery { flex: 1 1 440px; min-width: 0; width: auto !important; float: none !important; margin: 0; opacity: 1 !important; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image img, .woocommerce-product-gallery__image--placeholder img { border: var(--borde); border-radius: 18px; box-shadow: 6px 6px 0 var(--tinta); background: var(--papel); width: 100%; }
.flex-control-thumbs { list-style: none; display: flex; gap: 12px; margin: 16px 0 0; padding: 0; }
.flex-control-thumbs li { width: 84px; }
.flex-control-thumbs img { border: var(--borde); border-radius: 10px; cursor: pointer; opacity: .7; }
.flex-control-thumbs img.flex-active, .flex-control-thumbs img:hover { opacity: 1; }
.woocommerce-product-gallery__trigger { display: none; }
.single-product div.product .summary { flex: 1 1 420px; min-width: 0; width: auto !important; float: none !important; display: flex; flex-direction: column; gap: 16px; margin: 0; }
.summary .grupo-enlace { align-self: flex-start; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; border-bottom: var(--borde); }
.summary .product_title { margin: 0; font-size: clamp(36px, 4.4vw, 54px); line-height: 1; }
.summary .price { font-family: var(--disp); font-weight: 700; font-size: 40px; margin: 0; }
.summary .price del { font-size: 22px; font-weight: 500; opacity: .7; }
.summary .price ins { text-decoration: none; }
.summary .woocommerce-product-details__short-description { font-size: 17px; }
.summary .woocommerce-product-details__short-description p { margin: 0 0 8px; }
.summary form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; background: var(--papel); border: var(--borde); border-radius: 18px; box-shadow: 5px 5px 0 var(--tinta); padding: 18px; margin: 0; }
.summary form.cart .single_add_to_cart_button { flex: 1 1 200px; }
.summary form.variations_form { display: block; }
.summary table.variations { width: 100%; border-collapse: collapse; margin-bottom: 12px; }
.summary table.variations th, .summary table.variations td { padding: 6px 0; text-align: left; vertical-align: middle; }
.summary table.variations select { min-height: 44px; padding: 0 14px; border: var(--borde); border-radius: 999px; font: inherit; background: var(--papel); width: 100%; }
.summary .single_variation_wrap .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.quantity { display: inline-flex; }
.quantity input.qty { width: 76px; min-height: 48px; border: var(--borde); border-radius: 999px; text-align: center; font: inherit; font-weight: 700; font-size: 16px; background: var(--papel); }
.stock { font-weight: 700; margin: 0; }
.stock.out-of-stock { color: #B42318; }
.product_meta { display: flex; flex-direction: column; font-size: 15px; }
.product_meta > span { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid #E2DCCF; }
.product_meta > span:last-child { border-bottom: 0; }
.product_meta .sku { font-family: ui-monospace, monospace; font-weight: 700; }
.sobre-disco { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: 40px; margin-top: 24px; }
.sobre-disco .txt { flex: 2 1 520px; min-width: 0; }
.sobre-disco .txt h2 { margin: 0 0 18px; font-size: 34px; }
.sobre-disco .txt p { margin: 0 0 16px; font-size: 17px; line-height: 1.7; }
.sobre-disco .lado { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.panel { background: var(--papel); border: var(--borde); border-radius: 18px; box-shadow: 5px 5px 0 var(--tinta); padding: 20px; }
.panel h2 { margin: 0 0 10px; font-size: 24px; }
.panel iframe { width: 100%; border: 0; border-radius: 10px; }
.related, .upsells { flex: 1 1 100%; margin-top: 24px; }
.related > h2, .upsells > h2 { font-size: 34px; margin: 0 0 22px; }
.onsale { position: absolute; z-index: 2; top: 14px; left: 14px; background: var(--aguamarina); border: var(--borde); border-radius: 999px; padding: 3px 12px; font-weight: 700; font-size: 13px; text-transform: uppercase; }
.single-product div.product { position: relative; }

/* Carrito, pago, cuenta: formularios con el mismo lenguaje */
.woocommerce table.shop_table, table.shop_table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--papel); border: var(--borde); border-radius: 14px; overflow: hidden; box-shadow: var(--sombra); }
table.shop_table th, table.shop_table td { padding: 12px 14px; border-bottom: 1px solid #E2DCCF; text-align: left; vertical-align: middle; }
table.shop_table tr:last-child td { border-bottom: 0; }
table.shop_table img { width: 64px; border-radius: 8px; border: 1px solid #E2DCCF; }
.woocommerce form .form-row { margin: 0 0 14px; }
.woocommerce form .form-row label { display: block; font-weight: 700; font-size: 14px; margin-bottom: 4px; }
.woocommerce form .input-text, .woocommerce form select, .woocommerce-input-wrapper input, .woocommerce-input-wrapper select, .woocommerce-input-wrapper textarea, .select2-container .select2-selection--single {
  width: 100%; min-height: 46px; padding: 8px 14px; border: var(--borde) !important; border-radius: 12px !important; font: inherit; background: var(--papel);
}
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 28px; padding-left: 0; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 44px; }
.cart-collaterals, .woocommerce-checkout-review-order, #order_review { background: var(--papel); border: var(--borde); border-radius: 18px; box-shadow: 5px 5px 0 var(--tinta); padding: 20px; }
.cart-collaterals .shop_table { box-shadow: none; border: 0; }
#payment { background: var(--crema); border-radius: 12px; padding: 14px; }
#payment ul.payment_methods { list-style: none; padding: 0; margin: 0 0 14px; }
#payment ul.payment_methods li { padding: 8px 0; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-wrap: wrap; gap: 8px; }
.woocommerce-MyAccount-navigation a { display: inline-flex; min-height: 44px; align-items: center; padding: 0 16px; border: var(--borde); border-radius: 999px; background: var(--papel); font-weight: 700; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--tinta); color: var(--papel); }
.col2-set { display: flex; flex-wrap: wrap; gap: 24px; }
.col2-set > div { flex: 1 1 340px; min-width: 0; float: none !important; width: auto !important; }

/* Páginas normales (privacidad, cookies…) */
.pagina { background: var(--papel); border: var(--borde); border-radius: 18px; box-shadow: var(--sombra); padding: clamp(20px, 4vw, 44px); }
.pagina .entry-content { font-size: 17px; line-height: 1.7; max-width: 760px; }

/* ── Pie ──────────────────────────────────────────────────────────────── */
.boletin { background: var(--rosa); border-top: var(--borde); }
.boletin .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; padding-top: 48px; padding-bottom: 48px; }
.pie-web { background: var(--tinta); color: var(--papel); }
.pie-web a { color: var(--papel); }
.pie-web .cols { display: flex; flex-wrap: wrap; gap: 36px; padding-top: 52px; padding-bottom: 28px; }
.pie-web .col { flex: 1 1 160px; min-width: 0; display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.pie-web .col.ancha { flex: 2 1 260px; }
.pie-web .col .tit { font-weight: 700; color: var(--amarillo); text-transform: uppercase; letter-spacing: .06em; font-size: 13px; }
.pie-web .col .claro { color: #E8E2D6; line-height: 1.6; }
.pie-web .legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding-top: 16px; padding-bottom: 22px; border-top: 1px solid #57514A; font-size: 13px; color: #E8E2D6; }
.pie-web ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }

/* ── Móvil ────────────────────────────────────────────────────────────── */
@media (max-width: 720px) {
  .cabecera .acciones { margin-left: 0; width: 100%; }
  .cabecera .acciones .btn { flex: 1; }
  .buscador { max-width: none; flex-basis: 100%; }
  .nv { border-radius: 18px; }
  .nv .der { margin-left: 0; }
  .secth h2 { font-size: 30px; }
  .horizontal { flex-direction: column; }
  .horizontal .im { border-right: 0; border-bottom: var(--borde); min-height: 220px; }
  .destacado .disco { right: 6px; }
  .rejilla, ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .tarjeta .pie { flex-direction: column; align-items: stretch; }
  .woocommerce-result-count { margin-left: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ── Ganar a los estilos de serie de WooCommerce (woocommerce-general) ── */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce a.button.disabled, .woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled] {
  background: var(--tinta) !important; color: var(--papel) !important; border: var(--borde) !important; border-radius: 999px !important;
  padding: 0 18px !important; min-height: 44px; font-weight: 700 !important; line-height: 1.2 !important; display: inline-flex !important; align-items: center; justify-content: center;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: #4A443C !important; }
.woocommerce .tarjeta a.button { min-height: 40px; padding: 0 14px !important; font-size: 13px !important; }
.woocommerce div.product .summary p.price, .woocommerce div.product .summary span.price, .woocommerce ul.products li.product .price, .tarjeta .precio, .tarjeta .precio .amount { color: var(--tinta) !important; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { float: none; margin: 0 0 18px; }
.woocommerce .woocommerce-ordering { display: inline-block; }
.woocommerce .woocommerce-ordering select { width: auto; }
.woocommerce-products-header + .barra-listado, .barra-listado + .woocommerce-notices-wrapper + .woocommerce-result-count { margin-top: 0; }
.woocommerce-result-count { display: inline-block; margin-right: 16px !important; }
.product_meta > span { display: block; }
.product_meta a { font-weight: 700; }
.woocommerce div.product form.cart div.quantity { margin: 0; float: none; }
.woocommerce div.product form.cart .button { float: none; }
.woocommerce .quantity .qty { width: 76px; }
.woocommerce div.product .summary p.price, .woocommerce div.product .summary span.price { font-family: var(--disp); font-weight: 700; font-size: 40px; }

/* Tarjetas de grupo (página Tienda) */
.tarjeta-grupo .portada { display: flex; align-items: center; justify-content: center; }
.tarjeta-grupo .sin-foto { font-family: var(--disp); font-weight: 700; font-size: 96px; color: var(--tinta); opacity: .25; }
.tarjeta-grupo .titulo { font-size: 18px; }
.tarjeta mark.count, .woocommerce ul.products li.product-category mark { background: none; color: var(--tinta-2); font-weight: 500; }

/* ── Modo team (solo equipo con sesión) ─────────────────────────────── */
.barra-team { position: fixed; left: 16px; bottom: 16px; z-index: 90; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; max-width: calc(100% - 32px); background: var(--tinta); color: var(--papel); border-radius: 16px; padding: 10px 16px; box-shadow: 0 6px 24px rgba(0,0,0,.25); font-size: 14px; }
.barra-team .disp { font-size: 16px; color: var(--amarillo); }
.barra-team .interruptor { display: flex; align-items: center; gap: 8px; font-weight: 700; cursor: pointer; min-height: 36px; }
.barra-team .interruptor input { width: 20px; height: 20px; accent-color: var(--amarillo); }
.barra-team .ayuda { color: #E8E2D6; font-size: 13px; }
.admin-bar .barra-team { bottom: 16px; }
.btn-foto { display: none; position: absolute; top: 10px; right: 10px; z-index: 3; min-height: 38px; padding: 0 12px; border-radius: 999px; border: var(--borde); background: var(--amarillo); color: var(--tinta); font: inherit; font-weight: 700; font-size: 13px; cursor: pointer; box-shadow: 2px 2px 0 var(--tinta); }
body.modo-team .btn-foto { display: inline-flex; align-items: center; gap: 6px; }
body.modo-team .tarjeta-grupo { outline: 3px dashed var(--coral); outline-offset: 3px; }
.tarjeta-grupo { position: relative; }
.genio-modal { position: fixed; inset: 0; z-index: 100; background: rgba(46,42,37,.55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.genio-modal[hidden] { display: none; }
.genio-modal .caja { background: var(--papel); border: var(--borde); border-radius: 18px; box-shadow: 6px 6px 0 var(--tinta); width: min(760px, 100%); max-height: calc(100vh - 32px); overflow: auto; }
.genio-modal .cab { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: var(--borde); }
.genio-modal .cab h2 { margin: 0; flex: 1; font-size: 24px; }
.genio-modal .cuerpo-m { display: flex; flex-wrap: wrap; gap: 20px; padding: 18px; }
.genio-modal .pie-m { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding: 14px 18px; border-top: var(--borde); }
.genio-modal .marco { position: relative; width: 340px; max-width: 100%; aspect-ratio: 1/1; overflow: hidden; border: var(--borde); border-radius: 14px; background: var(--hueso); touch-action: none; cursor: grab; flex: none; }
.genio-modal .marco.arrastrando { cursor: grabbing; }
.genio-modal .marco img { position: absolute; left: 0; top: 0; max-width: none; user-select: none; -webkit-user-drag: none; pointer-events: none; }
.genio-modal .marco .vacio { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; padding: 20px; font-weight: 600; }
.genio-modal .fuente { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.genio-modal input[type=text] { width: 100%; min-height: 44px; padding: 0 14px; border: var(--borde); border-radius: 12px; font: inherit; }
.genio-modal input[type=range] { width: 340px; max-width: 100%; accent-color: var(--tinta); }
.genio-modal small { color: var(--tinta-2); }
.genio-modal .error { color: #B42318; font-weight: 700; }

/* La foto llena siempre el cuadro (WooCommerce le pone height:auto y margen debajo, y dejaba franjas) */
.tarjeta .portada img,
.woocommerce ul.products li.product .portada img,
.woocommerce ul.products li.product-category .portada img {
  position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none;
  object-fit: cover; margin: 0 !important; box-shadow: none !important;
}

/* ── Escaparate de la portada (novedad + «También nuevo») ─────────────── */
.escaparate { background: var(--crema); border-bottom: var(--borde); padding: 56px 0 40px; overflow: hidden; }
.escaparate-in { display: flex; flex-wrap: wrap; align-items: center; gap: 48px 64px; }
.escaparate-disco { position: relative; display: block; flex: 0 1 440px; width: min(440px, 100%); aspect-ratio: 1/1; margin-right: 16%; }
.escaparate-disco:not(.con-vinilo):not(.con-cd) { margin-right: 0; }
.escaparate-disco .funda { position: absolute; inset: 0; z-index: 2; background: var(--hueso) center/cover no-repeat; border: var(--borde); border-radius: 6px; box-shadow: 8px 8px 0 var(--tinta); }
.escaparate-disco .galleta { position: absolute; z-index: 1; top: 4%; left: 4%; width: 92%; height: 92%; border-radius: 50%; transform: translateX(30%); transition: transform .6s cubic-bezier(.2,.8,.2,1); display: flex; align-items: center; justify-content: center;
  background: repeating-radial-gradient(circle at 50% 50%, #1c1a18 0 1.5px, #2b2825 1.5px 3px); box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.escaparate-disco .galleta span { width: 34%; height: 34%; border-radius: 50%; background: var(--rosa) center/cover no-repeat; box-shadow: 0 0 0 4px #1c1a18; position: relative; }
.escaparate-disco .galleta span::after { content: ''; position: absolute; top: 50%; left: 50%; width: 9%; height: 9%; margin: -4.5% 0 0 -4.5%; border-radius: 50%; background: var(--crema); }
.escaparate-disco.con-cd .galleta { background: conic-gradient(from 30deg, #e9eef2, #c9d2da, #f6f8fa, #b9c4ce, #e9eef2, #d5dde4, #f6f8fa, #c3ccd5, #e9eef2); border: 1px solid #9aa5af; }
.escaparate-disco.con-cd .galleta span { width: 30%; height: 30%; box-shadow: 0 0 0 10px rgba(255,255,255,.6); }
.escaparate-disco:hover .galleta, .escaparate-disco:focus-visible .galleta { transform: translateX(42%) rotate(40deg); }
.escaparate-txt { flex: 1 1 380px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.chapas { display: flex; flex-wrap: wrap; gap: 8px; }
.chapa { display: inline-block; background: var(--coral); border: var(--borde); border-radius: 999px; padding: 4px 14px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.chapa.clara { background: var(--papel); letter-spacing: .02em; text-transform: none; }
.escaparate-txt h1 { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.escaparate-txt h1 .g { font-size: clamp(44px, 6vw, 76px); line-height: .95; letter-spacing: -0.03em; }
.escaparate-txt h1 .t { font-size: clamp(26px, 3vw, 36px); font-weight: 500; line-height: 1.1; letter-spacing: -0.01em; }
.escaparate-txt .extracto { margin: 0; font-size: 18px; line-height: 1.6; max-width: 540px; color: var(--tinta); }
.escaparate-txt .compra { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; margin-top: 4px; }
.precio-g { display: inline-flex; flex-direction: column; margin-right: 10px; font-family: var(--disp); font-weight: 700; font-size: 40px; line-height: 1; }
.precio-g small { font-family: var(--texto); font-size: 12px; font-weight: 600; color: var(--tinta-2); margin-top: 4px; letter-spacing: .02em; }
.btn.grande { min-height: 52px; padding: 0 24px; font-size: 15px; }
.tambien { display: flex; flex-wrap: wrap; align-items: stretch; gap: 14px; margin-top: 48px; padding-top: 24px; border-top: 2px dashed rgba(46,42,37,.35); }
.tambien-tit { flex: 1 1 100%; font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-2); }
.mini-disco { flex: 1 1 280px; min-width: 0; display: flex; align-items: center; gap: 14px; background: var(--papel); border: var(--borde); border-radius: 14px; padding: 10px; box-shadow: var(--sombra); transition: transform .15s, box-shadow .15s; }
.mini-disco:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--tinta); text-decoration: none; }
.mini-portada { flex: none; width: 76px; height: 76px; border-radius: 8px; border: 2px solid var(--tinta); background: var(--hueso) center/cover no-repeat; }
.mini-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mini-txt b { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-2); }
.mini-txt span { font-weight: 700; font-size: 16px; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.mini-txt .mini-precio { font-weight: 600; font-size: 14px; }
.woocommerce-price-suffix { font-size: .62em; font-weight: 600; color: var(--tinta-2); }
@media (max-width: 720px) {
  .escaparate { padding-top: 32px; }
  .escaparate-disco { width: 72%; margin-right: 22%; }
  .escaparate-disco .galleta { transform: translateX(26%); }
  .precio-g { font-size: 34px; }
}
@media (prefers-reduced-motion: reduce) { .escaparate-disco .galleta { transition: none; } }

/* ══ Cabecera v2: cinta, giradiscos y separadores de cubeta ══════════════ */
.cinta { background: var(--rosa); border-bottom: var(--borde); overflow: hidden; white-space: nowrap; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.cinta-pista { display: inline-flex; animation: cinta 38s linear infinite; }
.cinta:hover .cinta-pista { animation-play-state: paused; }
.cinta-grupo { display: inline-flex; align-items: center; gap: 22px; padding: 9px 11px; }
.cinta-grupo i { font-style: normal; color: var(--coral); }
.cinta a { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
@keyframes cinta { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.cabecera { background: var(--coral); border-bottom: var(--borde); position: relative; }
.cabecera .fila { padding-top: 20px; padding-bottom: 14px; }
.marca-tienda { display: flex; align-items: center; gap: 4px; text-decoration: none !important; }
.marca-tienda .logo-img { width: 118px; height: auto; position: relative; z-index: 1; }
.giradiscos { width: 64px; height: 64px; border-radius: 50%; flex: none; margin-right: -26px; display: flex; align-items: center; justify-content: center;
  background: repeating-radial-gradient(circle, #1c1a18 0 1.5px, #2f2b28 1.5px 3px); box-shadow: 0 4px 0 rgba(46,42,37,.35); animation: gira 5s linear infinite; }
.giradiscos span { width: 22px; height: 22px; border-radius: 50%; background: radial-gradient(circle, var(--tinta) 0 2px, var(--amarillo) 2.5px 100%); box-shadow: inset 6px 0 0 var(--rosa); }
.marca-tienda:hover .giradiscos { animation-duration: .8s; }
@keyframes gira { to { transform: rotate(360deg); } }

.buscador input[type=search] { transition: box-shadow .2s; }
.buscador input[type=search]:focus { box-shadow: 4px 4px 0 var(--tinta); outline: none; }
.icono-btn { width: 50px; height: 50px; border-radius: 50%; border: var(--borde); background: var(--papel); display: inline-flex; align-items: center; justify-content: center; box-shadow: 3px 3px 0 var(--tinta); transition: transform .15s, box-shadow .15s; }
.icono-btn:hover { transform: translate(-2px, -2px) rotate(-6deg); box-shadow: 5px 5px 0 var(--tinta); }
.carrito-btn { position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 50px; padding: 0 22px 0 18px; border-radius: 999px; border: var(--borde); background: var(--amarillo); color: var(--tinta); font-weight: 800; box-shadow: 3px 3px 0 var(--tinta); transition: transform .15s, box-shadow .15s; }
.carrito-btn:hover { transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--tinta); text-decoration: none; }
.carrito-btn .genio-carrito { position: absolute; top: -10px; right: -10px; min-width: 26px; height: 26px; padding: 0 6px; border-radius: 999px; background: var(--tinta); color: var(--papel); font-size: 13px; display: inline-flex; align-items: center; justify-content: center; border: 2px solid var(--papel); }
.carrito-btn.salta { animation: salta .7s cubic-bezier(.3,1.6,.5,1); }
@keyframes salta { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-12px) rotate(-6deg); } 60% { transform: translateY(0) rotate(4deg); } 100% { transform: translateY(0) rotate(0); } }

/* Separadores de cubeta: pestañas que asoman del borde de abajo de la cabecera */
.separadores { margin-bottom: -2px; }
.separadores-in { display: flex; align-items: flex-end; gap: 6px; padding-top: 6px; }
.sep { position: relative; display: inline-flex; align-items: center; gap: 6px; min-height: 52px; padding: 0 22px; border: var(--borde); border-bottom: 0; border-radius: 16px 16px 0 0;
  font-family: var(--disp); font-weight: 700; font-size: 19px; letter-spacing: -0.01em; color: var(--tinta); background: var(--papel); cursor: pointer; list-style: none;
  transform: translateY(10px); transform-origin: 50% 100%; transition: transform .25s cubic-bezier(.3,1.5,.5,1), background .2s; text-decoration: none !important; }
.sep::-webkit-details-marker { display: none; }
.sep:hover, .desplegable[open] > .sep { transform: translateY(0) rotate(-2deg); }
.sep-nov { background: var(--amarillo); }
.sep-vin { background: var(--aguamarina); }
.sep-cd { background: var(--lila); }
.sep-cas { background: var(--rosa); }
.sep-mer { background: var(--papel); }
.sep-gru { background: var(--tinta); color: var(--papel); }
.sep.on { transform: translateY(2px); background: var(--amarillo); color: var(--tinta); z-index: 2; }
.sep.on::after { content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 4px; background: var(--amarillo); }
.desplegable { position: relative; }
.desplegable .sub { top: calc(100% + 10px); }
.desplegable .sub .todos { font-weight: 800; background: var(--amarillo); margin-bottom: 4px; }
.cabecera .nav-wrap, .cabecera .nv { display: none; }

/* ══ Disco que sale de la funda (tarjetas de vinilo y CD) ═════════════════ */
.tarjeta .portada .galleta { position: absolute; z-index: 1; top: 7%; left: 7%; width: 86%; height: 86%; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: repeating-radial-gradient(circle, #1c1a18 0 1.5px, #2b2825 1.5px 3px); transition: transform .55s cubic-bezier(.2,.8,.2,1); }
.tarjeta .portada .galleta span { width: 34%; height: 34%; border-radius: 50%; background: var(--rosa) center/cover no-repeat; box-shadow: 0 0 0 3px #1c1a18; }
.tarjeta.con-cd .portada .galleta { background: conic-gradient(from 30deg, #e9eef2, #c9d2da, #f6f8fa, #b9c4ce, #e9eef2, #d5dde4, #f6f8fa, #c3ccd5, #e9eef2); }
.tarjeta.con-cd .portada .galleta span { width: 28%; height: 28%; box-shadow: 0 0 0 8px rgba(255,255,255,.6); }
.tarjeta .portada img { z-index: 2; transition: transform .55s cubic-bezier(.2,.8,.2,1), box-shadow .3s; }
.tarjeta.con-vinilo:hover .portada img, .tarjeta.con-cd:hover .portada img { transform: translateX(-20%) scale(.8) rotate(-4deg); box-shadow: 4px 4px 0 var(--tinta) !important; }
.tarjeta.con-vinilo:hover .portada .galleta, .tarjeta.con-cd:hover .portada .galleta { transform: translateX(26%) rotate(200deg) scale(.88); }
.tarjeta .portada .marca { z-index: 3; }
.tarjeta:not(.con-vinilo):not(.con-cd):hover .portada img { transform: scale(1.05); }

@media (max-width: 720px) {
  .separadores-in { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 0; scrollbar-width: none; }
  .separadores-in::-webkit-scrollbar { display: none; }
  .sep { min-height: 46px; padding: 0 16px; font-size: 16px; flex: none; }
  .desplegable .sub { position: fixed; left: 12px; right: 12px; top: auto; width: auto; }
  .carrito-btn span:not(.genio-carrito) { display: none; }
  .giradiscos { width: 52px; height: 52px; }
}
@media (prefers-reduced-motion: reduce) {
  .cinta-pista, .giradiscos { animation: none !important; }
  .cinta { overflow-x: auto; }
}
.mini-txt .mini-precio { display: block; -webkit-line-clamp: unset; white-space: nowrap; font-weight: 600; font-size: 14px; }
.mini-txt .mini-precio * { display: inline; }
.sep-nov { background: var(--papel); }
.sep-nov::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--coral); border: 2px solid var(--tinta); animation: late 1.6s ease-in-out infinite; }
.sep-mer { background: var(--crema); }
@keyframes late { 50% { transform: scale(1.35); } }
@media (prefers-reduced-motion: reduce) { .sep-nov::before { animation: none; } }

/* Portadas de discos: siempre enteras (nunca recortadas). Las fotos de grupo sí llenan el cuadro. */
.tarjeta:not(.tarjeta-grupo) .portada,
.tarjeta:not(.tarjeta-grupo) .portada img { background: var(--papel); }
.tarjeta:not(.tarjeta-grupo) .portada img,
.woocommerce ul.products li.product:not(.product-category) .portada img { object-fit: contain !important; }
.escaparate-disco .funda { background-color: var(--papel); background-size: contain; }
.mini-portada { background-color: var(--papel); background-size: contain; }
.woocommerce-product-gallery__image img { object-fit: contain; }

/* Separadores v2: la base no se mueve nunca (antes subía la pestaña entera y dejaba ver el fondo) */
.separadores { margin-bottom: -2px; position: relative; z-index: 2; }
.separadores-in { align-items: flex-end; min-height: 66px; }
.sep { transform: none !important; height: 50px; min-height: 0; transition: height .25s cubic-bezier(.3,1.5,.5,1), background .2s;
  box-shadow: inset 0 -2px 0 var(--tinta); }
.sep:hover, .desplegable[open] > .sep { height: 60px; }
.sep:hover > *, .sep:hover::before { animation: none; }
.sep .txt-sep { display: inline-block; transition: transform .25s cubic-bezier(.3,1.6,.5,1); }
.sep:hover .txt-sep { transform: translateY(-3px) rotate(-3deg); }
.sep.on { height: 60px; box-shadow: none; }
.sep.on::after { bottom: -2px; height: 4px; }
.desplegable { display: flex; align-items: flex-end; }
@media (max-width: 720px) {
  .separadores-in { min-height: 58px; }
  .sep { height: 44px; }
  .sep:hover, .sep.on, .desplegable[open] > .sep { height: 52px; }
}

/* ══ Olas en vez de líneas rectas entre franjas ══════════════════════════ */
.banda { border: 0 !important; position: relative; margin-top: 46px; margin-bottom: 46px; }
.banda.aguamarina { --ola: var(--aguamarina); }
.banda.blanca { --ola: var(--papel); }
.banda.lila { --ola: var(--lila); }
.banda::before, .banda::after { content: ''; position: absolute; left: 0; right: 0; height: 44px; background: var(--ola);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 44'%3E%3Cpath d='M0 22 C 50 0 50 0 100 22 S 150 44 200 22 V44 H0 Z'/%3E%3C/svg%3E") 0 0 / 200px 44px repeat-x;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 44'%3E%3Cpath d='M0 22 C 50 0 50 0 100 22 S 150 44 200 22 V44 H0 Z'/%3E%3C/svg%3E") 0 0 / 200px 44px repeat-x;
  animation: ola 14s linear infinite; pointer-events: none; }
.banda::before { top: -43px; }
.banda::after { bottom: -43px; transform: scaleY(-1); animation-direction: reverse; animation-duration: 18s; }
@keyframes ola { to { -webkit-mask-position: 200px 0; mask-position: 200px 0; } }
.escaparate { border-bottom: 0; }

/* ══ Estantería de formatos: objetos animados ════════════════════════════ */
.estanteria { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 28px; }
.objeto { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 10px 18px; border-radius: 22px; text-align: center; text-decoration: none !important; transition: background .2s; }
.objeto:hover { background: rgba(255,255,255,.28); }
.objeto .ilus { position: relative; width: 180px; height: 170px; display: block; }
.objeto .nombre { font-family: var(--disp); font-weight: 700; font-size: 30px; letter-spacing: -0.02em; line-height: 1; }
.objeto .cuenta { display: inline-block; background: var(--papel); border: var(--borde); border-radius: 999px; padding: 3px 12px; font-weight: 700; font-size: 13px; transition: transform .2s; }
.objeto:hover .cuenta { transform: translateY(-2px) rotate(-3deg); }

/* Vinilo: funda + disco que sale y gira */
.funda-m { position: absolute; left: 10px; top: 15px; width: 130px; height: 130px; z-index: 2; border: var(--borde); border-radius: 4px; box-shadow: 5px 5px 0 var(--tinta);
  background: radial-gradient(circle at 30% 35%, var(--coral) 0 18%, transparent 19%), radial-gradient(circle at 70% 70%, var(--rosa) 0 22%, transparent 23%), var(--amarillo); transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.disco-m { position: absolute; left: 22px; top: 23px; width: 114px; height: 114px; z-index: 1; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: repeating-radial-gradient(circle, #1c1a18 0 1.5px, #2f2b28 1.5px 3px); transform: translateX(22px); transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.disco-m span { width: 36%; height: 36%; border-radius: 50%; background: radial-gradient(circle, var(--tinta) 0 3px, var(--coral) 3.5px); animation: gira 3.5s linear infinite; }
.disco-m { animation: none; }
.obj-vinilo .disco-m::after { content: ''; position: absolute; inset: 0; border-radius: 50%; background: linear-gradient(120deg, transparent 40%, rgba(255,255,255,.18) 50%, transparent 60%); }
.obj-vinilo:hover .disco-m { transform: translateX(52px) rotate(180deg); }
.obj-vinilo:hover .funda-m { transform: translateX(-8px) rotate(-5deg); }

/* CD: caja + disco plateado con brillo que cambia de color */
.caja-cd { position: absolute; left: 14px; top: 22px; width: 118px; height: 118px; z-index: 2; border: var(--borde); border-radius: 6px; background: linear-gradient(135deg, rgba(255,255,255,.85), rgba(255,255,255,.35)); box-shadow: 5px 5px 0 var(--tinta); backdrop-filter: blur(1px); transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.caja-cd::before { content: ''; position: absolute; left: 10px; top: 0; bottom: 0; border-left: 2px solid var(--tinta); }
.cd-m { position: absolute; left: 36px; top: 30px; width: 104px; height: 104px; z-index: 1; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 2px solid #8d98a2;
  background: conic-gradient(from 0deg, #e9eef2, #f9c9d6, #cfe9f5, #f7f1c2, #d8d0f2, #e9eef2, #c9f0e3, #f6d3c0, #e9eef2); animation: gira 6s linear infinite, irisa 4s linear infinite; transform-origin: center; transition: left .6s cubic-bezier(.2,.8,.2,1); }
.cd-m span { width: 26%; height: 26%; border-radius: 50%; background: var(--aguamarina); border: 2px solid #8d98a2; box-shadow: 0 0 0 7px rgba(255,255,255,.6); }
@keyframes irisa { to { filter: hue-rotate(360deg); } }
.obj-cd:hover .cd-m { left: 70px; animation-duration: 1.2s, 2s; }
.obj-cd:hover .caja-cd { transform: rotate(-6deg); }

/* Cassette: bobinas que giran */
.cinta-m { position: absolute; left: 6px; top: 34px; width: 168px; height: 106px; border: var(--borde); border-radius: 12px; background: var(--rosa); box-shadow: 5px 5px 0 var(--tinta); transition: transform .4s cubic-bezier(.3,1.5,.5,1); }
.cinta-m .etiqueta-m { position: absolute; left: 12px; right: 12px; top: 10px; height: 18px; border-radius: 4px; background: var(--papel); border: 2px solid var(--tinta); }
.cinta-m .ventana { position: absolute; left: 30px; right: 30px; top: 38px; height: 40px; border-radius: 20px; background: #3a342f; border: 2px solid var(--tinta); display: flex; align-items: center; justify-content: space-between; padding: 0 8px; }
.bobina { width: 30px; height: 30px; border-radius: 50%; background: conic-gradient(var(--papel) 0 20deg, transparent 20deg 120deg, var(--papel) 120deg 140deg, transparent 140deg 240deg, var(--papel) 240deg 260deg, transparent 260deg), #6b625a; border: 3px solid var(--papel); animation: gira 3s linear infinite; }
.obj-cas:hover .bobina { animation-duration: .5s; }
.obj-cas:hover .cinta-m { transform: rotate(-4deg) translateY(-4px); }

/* Merchandising: camiseta que se balancea en su percha */
.percha { position: absolute; left: 30px; top: 10px; width: 120px; height: 120px; transform-origin: 60px 10px; animation: columpio 3.2s ease-in-out infinite; }
.percha svg { display: block; overflow: visible; }
@keyframes columpio { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
.obj-mer:hover .percha { animation-duration: .9s; }

@media (prefers-reduced-motion: reduce) {
  .banda::before, .banda::after, .disco-m span, .cd-m, .bobina, .percha { animation: none !important; }
}
.escaparate + .banda { margin-top: 0; }
.escaparate { padding-bottom: 72px; }
.cd-m { left: 50px; }

/* Escaparate doble: los dos últimos lanzamientos, uno al lado del otro */
.escaparate-item { display: contents; }
.escaparate.doble .escaparate-in { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 56px; align-items: start; }
.escaparate.doble .escaparate-item { display: flex; flex-direction: column; gap: 26px; }
.escaparate.doble .escaparate-disco { flex: none; width: min(340px, 74%); margin-right: 0; }
.escaparate.doble .escaparate-txt { flex: none; gap: 14px; }
.escaparate.doble .tit-esc .g { font-size: clamp(36px, 4vw, 56px); }
.escaparate.doble .tit-esc .t { font-size: clamp(22px, 2.2vw, 28px); }
.escaparate.doble .extracto { font-size: 16px; }
.escaparate.doble .precio-g { font-size: 34px; }
.tit-esc { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.tit-esc .g { font-size: clamp(44px, 6vw, 76px); line-height: .95; letter-spacing: -0.03em; }
.tit-esc .t { font-size: clamp(26px, 3vw, 36px); font-weight: 500; line-height: 1.1; letter-spacing: -0.01em; }
/* Al entrar, las dos fundas llegan deslizándose y el vinilo asoma después */
.escaparate-item .escaparate-disco { animation: entra .8s cubic-bezier(.2,.8,.2,1) both; }
.escaparate-item:nth-child(2) .escaparate-disco { animation-delay: .15s; }
.escaparate-item .galleta { animation: asoma 1s .5s cubic-bezier(.2,.8,.2,1) both; }
@keyframes entra { from { opacity: 0; transform: translateY(24px) rotate(-3deg); } }
@keyframes asoma { from { transform: translateX(0) rotate(-90deg); } }
@media (max-width: 900px) { .escaparate.doble .escaparate-in { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .escaparate-item .escaparate-disco, .escaparate-item .galleta { animation: none; } }

/* ══ Pie amarillo (la ola de la franja de encima cae sobre él) ═══════════ */
.pie-web { background: var(--amarillo); color: var(--tinta); }
.pie-web a { color: var(--tinta); font-weight: 600; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; text-decoration-thickness: 2px; transition: text-decoration-color .2s; }
.pie-web a:hover { text-decoration-color: var(--tinta); }
.pie-web .col .tit { color: var(--tinta); font-weight: 800; }
.pie-web .col .claro { color: var(--tinta-2); }
.pie-web .legal { color: var(--tinta-2); border-top: 2px dashed rgba(46,42,37,.35); }
.pie-marca { display: flex; align-items: center; gap: 12px; }
.pie-marca .disp { font-size: 30px; line-height: 1; }
.pie-marca .giradiscos { width: 54px; height: 54px; margin: 0; }
.pie-web .pie-sello { display: inline-flex; align-self: flex-start; align-items: center; gap: 6px; background: var(--papel); border: var(--borde); border-radius: 999px; padding: 6px 14px; box-shadow: 3px 3px 0 var(--tinta); text-decoration: none !important; transition: transform .15s; }
.pie-web .pie-sello:hover { transform: translate(-2px, -2px) rotate(-2deg); }
.barra-team .ayuda { font-size: 12px; }

/* Escaparate: la animación de entrada no se queda «enganchada» (con fill both peleaba con el hover y daba tirones) */
.escaparate-item .escaparate-disco { animation-fill-mode: backwards; }
.escaparate-item .galleta { animation-fill-mode: backwards; }
.escaparate-disco .galleta, .escaparate-disco .funda, .tarjeta .portada img, .tarjeta .portada .galleta, .giradiscos, .disco-m, .cd-m { will-change: transform; backface-visibility: hidden; }
.escaparate-disco .galleta { transition: transform .7s cubic-bezier(.22,.8,.3,1); }

/* ══ Spotify: ▶ en las tarjetas, reproductor flotante y disco que gira mientras suena ══ */
.tarjeta { position: relative; }
.btn-play { position: absolute; z-index: 4; top: 10px; right: 10px; width: 46px; height: 46px; border-radius: 50%; border: var(--borde); background: #1ED760; color: var(--tinta); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 2px 2px 0 var(--tinta); transition: transform .2s cubic-bezier(.3,1.6,.5,1); }
.btn-play:hover { transform: scale(1.12); }
.btn-play svg { margin-left: 3px; }
.tarjeta.sonando .btn-play { background: var(--papel); }
.tarjeta.sonando .btn-play svg { display: none; }
.tarjeta.sonando .btn-play::before { content: ''; width: 14px; height: 14px; border-left: 4px solid var(--tinta); border-right: 4px solid var(--tinta); box-sizing: border-box; }
.tarjeta.sonando .portada img { transform: translateX(-20%) scale(.8) rotate(-4deg); box-shadow: 4px 4px 0 var(--tinta) !important; }
.tarjeta.sonando .portada .galleta { transform: translateX(26%) scale(.88); }
.tarjeta.sonando .portada .galleta span, .escaparate-item.sonando .galleta span { animation: gira 1.8s linear infinite; }
.escaparate-item.sonando .galleta { transform: translateX(42%); }
.btn-sp-team { display: none; position: absolute; z-index: 4; top: 64px; right: 10px; min-height: 34px; padding: 0 10px; border-radius: 999px; border: var(--borde); background: var(--amarillo); font: inherit; font-weight: 700; font-size: 12px; cursor: pointer; box-shadow: 2px 2px 0 var(--tinta); }
body.modo-team .btn-sp-team { display: inline-flex; align-items: center; }
.tarjeta:not([data-genio-sp-uri]) .btn-sp-team { top: 10px; }
.btn-spotify-team { min-height: 38px; padding: 0 14px; border-radius: 999px; border: var(--borde); background: var(--amarillo); font: inherit; font-weight: 700; font-size: 13px; cursor: pointer; }
.escuchalo { flex: 1 1 100%; margin-top: 24px; }
.escuchalo-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.escuchalo-cab h2 { margin: 0; font-size: 34px; }
.escuchalo iframe { width: 100%; border: 0; border-radius: 12px; display: block; }
.vacio-sp { margin: 0; color: var(--tinta-2); }
.reproductor { position: fixed; right: 16px; bottom: 16px; z-index: 95; width: min(380px, calc(100% - 32px)); background: var(--papel); border: var(--borde); border-radius: 18px; box-shadow: 6px 6px 0 var(--tinta); padding: 10px; animation: sube .4s cubic-bezier(.3,1.4,.5,1); }
.reproductor[hidden] { display: none; }
@keyframes sube { from { transform: translateY(30px); opacity: 0; } }
.rep-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.rep-disco { width: 30px; height: 30px; border-radius: 50%; flex: none; background: radial-gradient(circle, var(--coral) 0 5px, transparent 5.5px), repeating-radial-gradient(circle, #1c1a18 0 1.5px, #2f2b28 1.5px 3px); }
.reproductor.suena .rep-disco { animation: gira 1.8s linear infinite; }
.rep-tit { flex: 1; min-width: 0; font-weight: 800; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rep-cerrar { width: 34px; height: 34px; border-radius: 50%; border: var(--borde); background: var(--papel); cursor: pointer; font-weight: 800; }
.reproductor iframe { display: block; border-radius: 12px; }
@media (max-width: 720px) { .reproductor { right: 8px; left: 8px; width: auto; bottom: 8px; } }
@media (prefers-reduced-motion: reduce) { .tarjeta.sonando .galleta span, .reproductor.suena .rep-disco { animation: none; } }

/* ══ Escúchalo (como Indienauta): reproductor compacto + lista en dos columnas ══ */
.escuchalo { flex: 1 1 100%; margin-top: 32px; }
.escuchalo-cab { border-bottom: var(--borde); padding-bottom: 10px; margin-bottom: 18px; }
.escuchalo-cab h2 { font-size: 15px; font-family: var(--texto); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.sp-ficha-rep iframe, .sp-ficha-rep > iframe { width: 100%; height: 152px; border: 0; border-radius: 14px; display: block; }
.sp-ficha-rep { border-radius: 14px; overflow: hidden; box-shadow: 5px 5px 0 var(--tinta); border: var(--borde); background: #282828; min-height: 152px; }
.sp-lista { list-style: none; margin: 22px 0 0; padding: 0; columns: 2 300px; column-gap: 40px; }
.sp-lista li { break-inside: avoid; border-bottom: 1px solid rgba(46,42,37,.2); }
.sp-cancion { width: 100%; display: flex; align-items: flex-start; gap: 14px; padding: 12px 4px; background: none; border: 0; font: inherit; color: var(--tinta); text-align: left; cursor: pointer; border-radius: 8px; transition: background .15s; }
.sp-cancion:hover { background: rgba(255,255,255,.45); }
.sp-cancion .n { font-weight: 800; font-size: 13px; color: var(--tinta-2); width: 22px; padding-top: 3px; font-variant-numeric: tabular-nums; }
.sp-cancion .tt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sp-cancion .tt b { font-family: var(--disp); font-size: 17px; font-weight: 700; color: #B4381E; line-height: 1.25; }
.sp-cancion .tt small { font-size: 13px; color: var(--tinta-2); }
.sp-cancion .d { font-weight: 700; font-size: 13px; color: var(--tinta-2); padding-top: 3px; font-variant-numeric: tabular-nums; }
.sp-cancion.activa .n { color: transparent; position: relative; }
.sp-cancion.activa .n::after { content: ''; position: absolute; left: 0; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: repeating-radial-gradient(circle, #1c1a18 0 1px, #3a3531 1px 2px); box-shadow: inset 0 0 0 4px transparent; }
.sp-ficha.suena .sp-cancion.activa .n::after { animation: gira 1.4s linear infinite; }
.sp-cancion.activa .tt b { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* ══ Ficha de producto v2 ═══════════════════════════════════════════════ */
.single-product div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px 64px; align-items: start; }
.single-product div.product > .ficha-disco, .single-product div.product > .summary { grid-column: auto; }
.single-product div.product > *:not(.ficha-disco):not(.summary):not(.onsale) { grid-column: 1 / -1; }
.ficha-disco { position: relative; margin-right: 18%; }
.ficha-disco .woocommerce-product-gallery { position: relative; z-index: 2; margin: 0 !important; width: 100% !important; float: none !important; }
.ficha-disco .woocommerce-product-gallery__image img { border-radius: 6px; box-shadow: 8px 8px 0 var(--tinta); }
.ficha-disco > .galleta { position: absolute; z-index: 1; top: 4%; left: 4%; width: 92%; aspect-ratio: 1/1; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: repeating-radial-gradient(circle, #1c1a18 0 1.5px, #2b2825 1.5px 3px); box-shadow: 0 6px 18px rgba(0,0,0,.25);
  transform: translateX(26%); transition: transform .8s cubic-bezier(.22,.8,.3,1); will-change: transform; }
.ficha-disco > .galleta span { width: 34%; height: 34%; border-radius: 50%; background: var(--rosa) center/cover no-repeat; box-shadow: 0 0 0 4px #1c1a18; }
.ficha-disco.con-cd > .galleta { background: conic-gradient(from 30deg, #e9eef2, #c9d2da, #f6f8fa, #b9c4ce, #e9eef2, #d5dde4, #f6f8fa, #c3ccd5, #e9eef2); border: 1px solid #9aa5af; }
.ficha-disco.con-cd > .galleta span { width: 28%; height: 28%; box-shadow: 0 0 0 10px rgba(255,255,255,.6); }
.ficha-disco:hover > .galleta { transform: translateX(40%) rotate(60deg); }
body.sp-ficha-suena .ficha-disco > .galleta { transform: translateX(40%); }
body.sp-ficha-suena .ficha-disco > .galleta span { animation: gira 1.8s linear infinite; }
.ficha-disco:not(.con-vinilo):not(.con-cd) { margin-right: 0; }
.single-product .summary { gap: 18px !important; padding-top: 6px; }
.single-product .summary .tit-esc { margin: 0; }
.single-product .summary .tit-esc .g { font-size: clamp(44px, 5.4vw, 72px); color: var(--tinta); text-decoration: none; }
.single-product .summary .tit-esc .g:hover { color: #B4381E; }
.single-product .summary .tit-esc .t { font-size: clamp(24px, 2.6vw, 34px); }
.single-product .summary p.price { font-size: 44px !important; line-height: 1; }
.single-product .summary .woocommerce-price-suffix { display: block; font-family: var(--texto); font-size: 12px; margin-top: 6px; }
.single-product .summary form.cart { background: none; border: 0; box-shadow: none; padding: 0; gap: 12px; }
.single-product .summary form.cart .single_add_to_cart_button { flex: 0 1 auto; min-height: 56px !important; padding: 0 30px !important; font-size: 17px !important; background: var(--coral) !important; color: var(--tinta) !important; box-shadow: 4px 4px 0 var(--tinta); transition: transform .15s, box-shadow .15s; }
.single-product .summary form.cart .single_add_to_cart_button:hover { transform: translate(-2px,-2px); box-shadow: 6px 6px 0 var(--tinta); background: #F28A6E !important; }
.single-product .summary .quantity input.qty { min-height: 56px; }
.ir-escuchar { align-self: flex-start; }
.datos-disco { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 0; }
.datos-disco > div { background: var(--papel); border: var(--borde); border-radius: 12px; padding: 8px 14px; min-width: 0; }
.datos-disco dt { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-2); }
.datos-disco dd { margin: 2px 0 0; font-weight: 700; }
.datos-disco dd.sku { font-family: ui-monospace, monospace; }
.cab-seccion { font-family: var(--texto) !important; font-size: 15px !important; font-weight: 800 !important; letter-spacing: .14em !important; text-transform: uppercase; border-bottom: var(--borde); padding-bottom: 10px; margin: 0 0 18px !important; }
.sobre-disco { display: block; margin-top: 40px; }
.sobre-disco .txt { max-width: 760px; columns: 1; }
.sobre-disco .txt p { font-size: 18px; line-height: 1.75; margin: 0 0 18px; }
.sobre-disco .txt > p:first-child::first-letter { font-family: var(--disp); font-weight: 700; float: left; font-size: 74px; line-height: .85; padding: 6px 10px 0 0; color: #B4381E; }
.mas-grupo { margin-top: 48px; }
.mas-grupo .secth h2 { font-size: 34px; }
.single-product .related > h2, .single-product .upsells > h2 { font-size: 34px; }
@media (max-width: 860px) {
  .single-product div.product { grid-template-columns: 1fr; }
  .ficha-disco { margin-right: 16%; }
}
@media (prefers-reduced-motion: reduce) { body.sp-ficha-suena .ficha-disco > .galleta span { animation: none; } }

/* ══ Carrito ══════════════════════════════════════════════════════════════ */
.woocommerce-cart .entry-content > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 28px 36px; align-items: start; }
.woocommerce-cart .entry-content > .woocommerce > * { grid-column: 1; }
.woocommerce-cart .cart-collaterals { display: contents; }
.woocommerce-cart .cart_totals { grid-column: 2; grid-row: 1 / span 6; position: sticky; top: 20px; width: auto !important; float: none !important; background: var(--papel); border: var(--borde); border-radius: 18px; box-shadow: 6px 6px 0 var(--tinta); padding: 20px; }
.woocommerce-cart .cart_totals h2 { font-size: 24px; margin: 0 0 12px; }
.woocommerce-cart .cart_totals table.shop_table { border: 0; box-shadow: none; border-radius: 0; }
.woocommerce-cart .cart_totals th { width: 30%; font-size: 14px; }
.woocommerce-cart .cart_totals .order-total td, .woocommerce-cart .cart_totals .order-total th { font-family: var(--disp); font-size: 22px; font-weight: 700; }
.woocommerce-cart .cart_totals .order-total small { display: block; font-family: var(--texto); font-size: 12px; font-weight: 500; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 14px 0 0; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 58px !important; font-size: 18px !important; background: var(--coral) !important; color: var(--tinta) !important; box-shadow: 4px 4px 0 var(--tinta); }
.woocommerce-cart .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-cart .woocommerce-shipping-methods li { margin: 0 0 8px; font-size: 14px; line-height: 1.4; }
.woocommerce-cart .cross-sells { width: auto !important; float: none !important; }
.woocommerce-cart .cross-sells > h2 { font-size: 26px; margin: 10px 0 16px; }
.woocommerce-cart-form table.shop_table { margin: 0; }
.woocommerce-cart-form .product-thumbnail img { width: 84px !important; height: 84px; object-fit: contain; background: var(--papel); border: 2px solid var(--tinta) !important; border-radius: 8px !important; }
.woocommerce-cart-form .product-name a { font-weight: 700; font-size: 16px; }
.woocommerce-cart-form a.remove { display: inline-flex !important; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50% !important; border: 2px solid var(--tinta); color: var(--tinta) !important; font-size: 20px !important; background: var(--papel); }
.woocommerce-cart-form a.remove:hover { background: var(--coral) !important; }
.woocommerce-cart-form td.actions { padding: 14px !important; }
.woocommerce-cart-form .coupon { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; float: left; }
.woocommerce-cart-form .coupon label { display: none; }
.woocommerce-cart-form .coupon input.input-text { width: 200px !important; min-height: 44px; border: var(--borde) !important; border-radius: 999px !important; padding: 0 16px !important; }
.woocommerce-cart-form button[name="update_cart"] { float: right; background: var(--papel) !important; color: var(--tinta) !important; }
.woocommerce-cart-form button[name="update_cart"]:disabled { opacity: .45; }
.woocommerce-cart-form .quantity input.qty { min-height: 44px; width: 70px; }
/* Ofertas de Smart Offers (tarjetas que monta tienda.js) */
.ofertas h2 { margin: 6px 0 14px; font-size: 26px; }
.ofertas h2 span { display: block; font-family: var(--texto); font-size: 14px; font-weight: 600; color: var(--tinta-2); letter-spacing: 0; }
.ofertas-rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.oferta { display: flex; gap: 14px; background: var(--papel); border: var(--borde); border-radius: 16px; padding: 12px; box-shadow: 4px 4px 0 var(--tinta); }
.oferta-portada { flex: none; width: 96px; height: 96px; border: 2px solid var(--tinta); border-radius: 8px; overflow: hidden; background: var(--hueso); }
.oferta-portada img { width: 100%; height: 100%; object-fit: cover; }
.oferta-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.oferta-txt .chapa { background: var(--aguamarina); text-transform: none; letter-spacing: 0; font-size: 14px; }
.oferta-txt p { margin: 0; font-size: 14px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.oferta-bc { width: 100%; }
.oferta-bc iframe { width: 100% !important; height: 42px !important; border: 0; display: block; }
.oferta-botones { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.oferta-botones .btn { min-height: 40px; padding: 0 16px; font-size: 14px; background: var(--coral); color: var(--tinta) !important; }
.oferta-botones .no { font-size: 13px; font-weight: 600; color: var(--tinta-2); text-decoration: underline; }
@media (max-width: 900px) {
  .woocommerce-cart .entry-content > .woocommerce { grid-template-columns: 1fr; }
  .woocommerce-cart .cart_totals { grid-column: 1; grid-row: auto; position: static; }
  .woocommerce-cart-form .coupon, .woocommerce-cart-form button[name="update_cart"] { float: none; }
}

/* ══ Finalizar compra ═════════════════════════════════════════════════════ */
.woocommerce form .form-row input[type=checkbox], .woocommerce form .form-row input[type=radio],
.woocommerce-input-wrapper input[type=checkbox], .woocommerce-input-wrapper input[type=radio] {
  width: 20px !important; height: 20px !important; min-height: 0 !important; padding: 0 !important; border-radius: 4px !important; vertical-align: middle; margin: 0 8px 0 0; accent-color: var(--tinta); display: inline-block; }
.woocommerce form .form-row label.checkbox, .woocommerce form .form-row label.woocommerce-form__label-for-checkbox { display: inline-flex !important; align-items: center; gap: 4px; font-weight: 600 !important; cursor: pointer; }
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 0 40px; align-items: start; }
.woocommerce-checkout form.checkout > * { grid-column: 1; }
.woocommerce-checkout #customer_details { grid-row: 1 / span 4; }
.woocommerce-checkout #customer_details.col2-set { display: flex; flex-direction: column; gap: 10px; }
.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 12px; font-size: 26px; }
.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: 20px; }
.woocommerce-checkout #order_review table.shop_table { box-shadow: none; }
.woocommerce-checkout #payment { background: var(--crema); border: 2px solid var(--tinta); border-radius: 14px; margin-top: 14px; }
.woocommerce-checkout #payment div.payment_box { background: var(--papel); border-radius: 10px; font-size: 14px; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #place_order { width: 100%; min-height: 58px !important; font-size: 18px !important; background: var(--coral) !important; color: var(--tinta) !important; box-shadow: 4px 4px 0 var(--tinta); }
.woocommerce-checkout h3 { font-size: 22px; margin: 18px 0 12px; }
.woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-form-login-toggle .woocommerce-info { justify-content: flex-start; gap: 8px; box-shadow: none; padding: 10px 16px; }
@media (max-width: 900px) {
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
  .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
}

/* «Sobre el disco» justificado, a dos columnas en pantallas anchas; botones de IA del modo team */
.sobre-disco .txt { max-width: none; columns: 2 380px; column-gap: 56px; text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.sobre-disco .txt p { break-inside: auto; orphans: 3; widows: 3; }
.sobre-disco .txt ol, .sobre-disco .txt ul { text-align: left; font-size: 17px; line-height: 1.7; padding-left: 22px; break-inside: avoid; }
.sobre-disco .txt > p:first-child::first-letter { font-size: 86px; line-height: .78; padding: 8px 12px 0 0; }
.cab-seccion { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.ia-team { display: none; gap: 8px; }
body.modo-team .ia-team { display: inline-flex; }
.btn-ia-team { min-height: 36px; padding: 0 14px; border-radius: 999px; border: var(--borde); background: var(--amarillo); font: inherit; font-size: 13px; font-weight: 700; letter-spacing: 0; text-transform: none; cursor: pointer; box-shadow: 2px 2px 0 var(--tinta); }
.btn-ia-team.clara { background: var(--papel); }
.tarjeta .woocommerce-price-suffix { display: block; font-size: 11px; font-weight: 600; line-height: 1.2; }

/* Ficha en dos columnas en pantallas grandes: portada fija a la izquierda; compra, texto y canciones a la derecha */
@media (min-width: 1100px) {
  .single-product div.product { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: 64px; row-gap: 0; }
  .single-product div.product > .ficha-disco { grid-column: 1; grid-row: 1 / span 3; position: sticky; top: 24px; align-self: start; }
  .single-product div.product > .summary { grid-column: 2; grid-row: 1; }
  .single-product div.product > .sobre-disco { grid-column: 2 !important; grid-row: 2; margin-top: 40px; }
  .single-product div.product > .escuchalo { grid-column: 2 !important; grid-row: 3; margin-top: 40px; }
  .single-product div.product > .sobre-disco .txt { columns: 1; }
  .single-product div.product > .escuchalo .sp-lista { columns: 2 260px; column-gap: 28px; }
  .single-product div.product > .upsells, .single-product div.product > .mas-grupo, .single-product div.product > .related { margin-top: 56px; }
}
body { overflow-x: clip; }

/* Fotos de merchandising con IA (modo team) */
.panel-ia-merch { display: none; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; background: var(--papel); border: 2px dashed var(--coral); border-radius: 16px; padding: 14px 18px; margin: 0 0 20px; font-size: 14px; }
body.modo-team .panel-ia-merch { display: flex; }
.panel-ia-merch .btn { background: var(--coral); color: var(--tinta) !important; }
.merch-team { display: none; position: absolute; z-index: 5; left: 10px; top: 52px; gap: 6px; }
body.modo-team .merch-team { display: inline-flex; }
.merch-team button { width: 40px; height: 40px; border-radius: 50%; border: var(--borde); background: var(--amarillo); cursor: pointer; font-size: 16px; box-shadow: 2px 2px 0 var(--tinta); }
.tarjeta:not([data-genio-merch-ia]) .merch-team button[data-a="deshacer"] { display: none; }
.tarjeta.ia-trabajando .portada::after { content: attr(data-x); position: absolute; inset: 0; z-index: 6; background: rgba(246,190,207,.75) repeating-linear-gradient(-45deg, rgba(255,255,255,.35) 0 12px, transparent 12px 24px); background-size: 34px 34px; animation: rayas 1s linear infinite; }
.tarjeta.ia-trabajando::after { content: attr(data-ia-estado); position: absolute; z-index: 7; left: 50%; top: 40%; transform: translate(-50%, -50%); background: var(--tinta); color: var(--papel); font-weight: 700; font-size: 13px; padding: 6px 12px; border-radius: 999px; white-space: nowrap; }
.tarjeta.ia-error { outline: 3px solid #B42318; outline-offset: 2px; }
@keyframes rayas { to { background-position: 34px 0; } }
@media (min-width: 1100px) {
  .single-product div.product > .ficha-disco { grid-row: 1 / span 4; }
  .single-product div.product > .upsells { grid-column: 2 !important; grid-row: 4; margin-top: 40px; }
  .single-product div.product > .upsells > h2 { font-family: var(--texto); font-size: 15px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; border-bottom: var(--borde); padding-bottom: 10px; margin: 0 0 18px; }
  .single-product div.product > .upsells ul.products { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
  .single-product div.product > .mas-grupo { grid-row: 5; }
}
.single-product .contenido > .mas-grupo, .single-product .contenido > .related, .single-product .mas-grupo, .single-product section.related { margin-top: 64px; }
/* Portada fija: mismo aire arriba que al llegar al final, contando la barra de WordPress si hay sesión */
@media (min-width: 1100px) {
  .single-product div.product > .ficha-disco { top: calc(var(--wp-admin--admin-bar--height, 0px) + 32px); }
}
/* «Más de [grupo]» también en la columna derecha */
@media (min-width: 1100px) {
  .single-product div.product > .ficha-disco { grid-row: 1 / span 5; }
  .single-product div.product > .mas-grupo { grid-column: 2 !important; grid-row: 5; margin-top: 40px; }
  .single-product div.product > .mas-grupo .secth { border-bottom: var(--borde); padding-bottom: 10px; margin-bottom: 18px; }
  .single-product div.product > .mas-grupo .secth h2 { font-family: var(--texto); font-size: 15px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
  .single-product div.product > .mas-grupo .rejilla { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
}
/* Ofertas de Smart Offers: ocultas desde el principio (tienda.js las convierte en tarjetas) */
.genio-js .woocommerce-cart .so-offer-content { display: none !important; }
/* Totales del carrito: aire alrededor del aviso de PayPal («Paga en 3 plazos…») y entre botones */
.cart_totals .ppcp-messages { margin: 18px 0 16px; padding-top: 14px; border-top: 1px dashed rgba(46,42,37,.3); line-height: 1.5; }
.cart_totals .wc-proceed-to-checkout { display: flex; flex-direction: column; gap: 12px; }
.cart_totals .wc-proceed-to-checkout .checkout-button { margin: 0 !important; }
.cart_totals #ppc-button-ppcp-gateway-v6 { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.woocommerce-checkout .ppcp-messages { margin: 14px 0; }
/* Sin la línea suelta bajo «Total» (el borde de la última fila se quitaba en td pero no en th) */
table.shop_table tr:last-child th, table.shop_table tr:last-child td, .cart_totals tr.order-total th, .cart_totals tr.order-total td { border-bottom: 0 !important; }
.cart_totals .ppcp-messages { margin: 10px 0 14px; }

/* ══ «También nuevo» v2: más grande y con el vinilo saliendo por arriba de la funda ══ */
.tambien { gap: 22px; margin-top: 56px; padding-top: 28px; }
.tambien-tit { flex: 1 1 100%; display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--disp); font-size: 30px; font-weight: 700; letter-spacing: -0.02em; text-transform: none; color: var(--tinta); }
.tambien-tit .giradiscos { width: 40px; height: 40px; margin: 0; }
.tambien-tit .giradiscos span { width: 14px; height: 14px; }
.mini-disco { position: relative; flex: 1 1 320px; gap: 18px; padding: 16px 18px 16px 16px; border-radius: 18px; align-items: flex-end; min-height: 170px; overflow: visible;
  animation: entraMini .7s cubic-bezier(.2,.8,.2,1) backwards; transition: transform .3s cubic-bezier(.3,1.5,.5,1), box-shadow .3s; }
.mini-disco:nth-of-type(1) { animation-delay: .25s; } .mini-disco:nth-of-type(2) { animation-delay: .4s; } .mini-disco:nth-of-type(3) { animation-delay: .55s; }
.mini-disco:hover { transform: translate(-3px, -6px) rotate(-1deg); box-shadow: 8px 10px 0 var(--tinta); }
@keyframes entraMini { from { opacity: 0; transform: translateY(26px) rotate(1.5deg); } }
.mini-funda { position: relative; flex: none; width: 132px; height: 132px; margin-top: -40px; }
.mini-funda .mini-portada { position: absolute; inset: 0; z-index: 2; width: auto; height: auto; border-radius: 6px; border: var(--borde); background-color: var(--papel); background-size: cover; box-shadow: 4px 4px 0 var(--tinta); transition: transform .4s cubic-bezier(.3,1.4,.5,1); }
.mini-funda .galleta { position: absolute; z-index: 1; left: 6%; top: 6%; width: 88%; height: 88%; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: repeating-radial-gradient(circle, #1c1a18 0 1.2px, #2b2825 1.2px 2.4px); transition: transform .55s cubic-bezier(.2,.8,.2,1); will-change: transform; }
.mini-funda .galleta span { width: 34%; height: 34%; border-radius: 50%; background: var(--rosa) center/cover no-repeat; box-shadow: 0 0 0 2px #1c1a18; }
.mini-disco.con-cd .mini-funda .galleta { background: conic-gradient(from 30deg, #e9eef2, #c9d2da, #f6f8fa, #b9c4ce, #e9eef2, #d5dde4, #f6f8fa, #c3ccd5, #e9eef2); }
.mini-disco:hover .mini-funda .galleta { transform: translateY(-42%) rotate(160deg); }
.mini-disco:hover .mini-funda .mini-portada { transform: rotate(-3deg); }
.mini-txt { gap: 4px; padding-bottom: 2px; }
.mini-txt b { font-size: 12px; }
.mini-txt .mini-titulo { font-family: var(--disp); font-weight: 700; font-size: 22px; line-height: 1.1; letter-spacing: -0.01em; -webkit-line-clamp: 2; }
.mini-pie { display: flex !important; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 6px; -webkit-line-clamp: unset !important; overflow: visible !important; }
.mini-pie .mini-precio { font-weight: 800; font-size: 17px; }
.mini-ver { font-size: 13px; font-weight: 700; color: #B4381E; opacity: 0; transform: translateX(-6px); transition: opacity .25s, transform .25s; }
.mini-disco:hover .mini-ver { opacity: 1; transform: none; }
.pegatina { position: absolute; top: -14px; right: 14px; background: var(--coral); border: var(--borde); border-radius: 999px; padding: 3px 12px; font-weight: 800; font-size: 13px; transform: rotate(6deg); box-shadow: 2px 2px 0 var(--tinta); }
.mini-disco:hover .pegatina { animation: menea .5s ease-in-out; }
@keyframes menea { 25% { transform: rotate(-6deg) scale(1.08); } 60% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(6deg); } }
@media (max-width: 720px) { .mini-funda { width: 104px; height: 104px; } .mini-txt .mini-titulo { font-size: 19px; } }
@media (prefers-reduced-motion: reduce) { .mini-disco { animation: none; } .mini-disco:hover .pegatina { animation: none; } }

/* Frase gancho (IA) */
.escaparate-txt .extracto.es-gancho .gancho-txt { font-family: var(--disp); font-weight: 500; font-size: 21px; line-height: 1.35; letter-spacing: -0.01em; }
.escaparate-txt .extracto.es-gancho .gancho-txt::before { content: '“'; color: var(--coral); font-weight: 700; margin-right: 2px; }
.escaparate-txt .extracto.es-gancho .gancho-txt::after { content: '”'; color: var(--coral); font-weight: 700; margin-left: 2px; }
.gancho { margin: 0; font-family: var(--disp); font-size: 20px; line-height: 1.4; color: var(--tinta); }
.gancho .gancho-txt.vacio { color: var(--tinta-2); font-family: var(--texto); font-size: 14px; }
.mini-gancho { display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-weight: 500 !important; font-size: 14px !important; font-style: italic; color: var(--tinta-2); line-height: 1.35 !important; }
.gancho-team { display: none; gap: 6px; margin-left: 8px; vertical-align: middle; }
body.modo-team .gancho-team { display: inline-flex; }
.gancho-team button { width: 32px; height: 32px; border-radius: 50%; border: 2px solid var(--tinta); background: var(--amarillo); cursor: pointer; font-size: 14px; line-height: 1; }
.pensando .gancho-txt { opacity: .4; }
.pensando .gancho-team button { animation: gira 1s linear infinite; }
/* «También nuevo»: título y frase completos, sin cortar con «…» */
.mini-txt .mini-titulo, .mini-txt .mini-gancho, .mini-txt span { -webkit-line-clamp: unset !important; display: block !important; overflow: visible !important; text-overflow: clip !important; }
.mini-txt .mini-pie { display: flex !important; }
.mini-txt .mini-pie .mini-precio, .mini-txt .mini-pie .mini-ver { display: inline !important; }
.mini-disco { align-items: center; }
.mini-txt .mini-pie .mini-precio, .mini-txt .mini-pie .mini-precio * { display: inline !important; white-space: nowrap; }
