:root {
  --header: #253237;
  --promo: #ff0000;
  --accent: #4fb68d;
  --accent-dark: #3a9a78;
  --ink: #333333;
  --muted: #777777;
  --line: #e6e6e6;
  --paper: #ffffff;
  --soft: #f5f5f5;
  --foot: #f3f3f3;
  --ok: #e7f6ea;
  --warn: #fff6e8;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Open Sans", "Segoe UI", system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.5;
}
img { max-width: 100%; height: auto; }
a { color: var(--accent-dark); }
h1, h2 { line-height: 1.2; }
h1 { font-size: clamp(1.7rem, 3vw, 2.2rem); margin: 0 0 .4em; }
.wrap { width: min(1280px, calc(100% - 32px)); margin: 0 auto; }
.narrow { width: min(480px, calc(100% - 32px)); }
.sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 8px; top: 8px; background: #fff; padding: 8px; z-index: 5; }

.top { position: relative; z-index: 40; background: var(--header); color: #fff; }
.top-row { display: flex; align-items: center; gap: 18px; min-height: 80px; padding: 8px 0; }
.brand { display: flex; flex: 0 0 auto; }
.brand img { height: 54px; width: auto; }
.nav { display: flex; align-items: center; gap: 2px; flex: 1; min-width: 0; }
.nav a {
  text-decoration: none; color: #fff; font-weight: 600; padding: 8px 10px; white-space: nowrap; font-size: .95rem;
}
.nav a:hover, .nav a.on { color: var(--accent); }
.nav-toggle {
  display: none; background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.35);
  border-radius: 4px; padding: 8px 12px; font: inherit; cursor: pointer;
  align-items: center; justify-content: center; gap: 6px;
}
.nav-toggle-ico { display: none; flex: none; }
.nav-toggle-ico-close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle-ico-menu { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle-ico-close { display: block; }
.nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 45;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(0, 0, 0, .45);
  cursor: pointer;
}
body.nav-open { overflow: hidden; }
body.nav-open .top { z-index: 48; }
body.nav-open .nav-overlay { display: block; }
.nav-toggle-label { line-height: 1; }
.search { display: flex; align-items: center; position: relative; }
header .search { justify-content: flex-end; width: 40px; flex: 0 0 auto; overflow: hidden; transition: width .2s ease; }
header .search.open { width: 340px; overflow: visible; }
.search input, .form input[type="text"], .form input[type="email"], .form input[type="password"], .form input[type="number"], .buy input, .qty input {
  font: inherit; border: 1px solid #d9d9d9; border-radius: 4px; padding: 10px 12px; background: #fff; width: 100%; color: var(--ink);
}
header .search input { width: 0; min-width: 0; flex: 1 1 auto; border-width: 0; border-radius: 20px 0 0 20px; padding: 8px 0; opacity: 0; }
header .search.open input { width: auto; border-width: 1px; border-right: 0; padding: 8px 14px; opacity: 1; }
.search button, .qty button {
  font: inherit; font-weight: 700; background: var(--accent); color: #fff; border: 0; border-radius: 0 20px 20px 0; padding: 0 12px; cursor: pointer;
}
header .search button { flex: 0 0 40px; width: 40px; height: 40px; padding: 0; border-radius: 50%; display: grid; place-items: center; }
header .search.open button { border-radius: 0 20px 20px 0; }
.search-suggest { position: absolute; z-index: 30; top: calc(100% + 8px); right: 0; width: 420px; max-height: 300px; overflow: auto; background: #fff; border: 1px solid #ebebeb; padding: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.search-suggest[hidden] { display: none; }
.search-suggest a { display: flex; align-items: center; margin: 0 0 10px; color: var(--ink); text-decoration: none; font-size: 13px; line-height: 1.35; }
.search-suggest a:last-child { margin-bottom: 0; }
.search-suggest img { width: 80px; height: 80px; object-fit: contain; flex: 0 0 80px; background: #fafafa; }
.search-suggest span { padding: 0 16px; }
.search-suggest a:hover, .search-suggest a.on { background: #f6f6f6; }
.search-suggest .empty { margin: 0; padding: 6px 4px; color: #777; font-size: 13px; }
.qty button { border-radius: 0 4px 4px 0; }
header .account { display: flex; align-items: center; gap: 14px; }
header .lang-switch { display: flex; gap: 6px; align-items: center; font-size: .8rem; font-weight: 700; }
header .lang-switch b { color: #fff; }
header .account a, header .account .link { color: #fff; font-weight: 600; text-decoration: none; }
.link { color: var(--accent-dark); font-weight: 600; text-decoration: none; }
header .account form { margin: 0; }
.link { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }
.link:hover, header .account a:hover { color: var(--accent); }
.cart-link { display: inline-flex; align-items: center; gap: 6px; position: relative; color: #fff; text-decoration: none; }
.cart-link .cart-ico { flex: none; display: block; }
.cart-count {
  display: inline-grid; place-items: center; min-width: 1.35em; height: 1.35em; padding: 0 .3em;
  background: var(--accent); color: #fff; border-radius: 99px; font-size: .75rem; font-weight: 700; line-height: 1;
}
.account-link-ico { display: none; }
.account-link-cap { display: none; }
.promo {
  margin: 0; background: var(--promo); color: #fff; text-align: center;
  font-size: .82rem; font-weight: 700; letter-spacing: .01em; padding: 10px 16px; line-height: 1.4;
}
.promo span { font-weight: 500; }

.hero-slider { position: relative; overflow: hidden; background: #f7f4ef; }
.is-carousel { --hs-ratio: 16 / 5; --hs-ratio-mobile: 1080 / 800; }
.hs-track { display: flex; align-items: flex-start; transition: transform .6s ease; will-change: transform; }
.hs-slide { flex: 0 0 100%; display: block; }
.hs-slide img { width: 100%; height: auto; display: block; }
.hs-slide picture { display: block; width: 100%; }
.hs-slide picture img { width: 100%; height: auto; display: block; }
/* En carrusel todas las imágenes toman la misma proporción (sin saltos de altura) */
.is-carousel .hs-slide img,
.is-carousel .hs-slide picture img { aspect-ratio: var(--hs-ratio); object-fit: cover; object-position: center; }
.hs-nav { display: none; }
.hs-dots { display: none; }
@media (prefers-reduced-motion: reduce) { .hs-track { transition: none; } }
.home { padding-bottom: 36px; }
.home-cat-title {
  margin: 28px 0 8px;
  font-size: clamp(1.45rem, 3.2vw, 1.75rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--ink);
}
.home-cat-lead { margin: 0 0 4px; color: var(--muted); font-size: 1rem; line-height: 1.5; max-width: 36em; }
.mosaic { display: grid; grid-template-columns: 1.05fr .95fr; gap: 16px; margin-top: 18px; }
.mosaic.no-tall, .mosaic.no-side { grid-template-columns: 1fr; }
.mosaic-side { display: grid; gap: 16px; }
.mosaic a, .mosaic .banner-tall { display: block; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 10px rgba(0, 0, 0, .06); }
.mosaic img { width: 100%; height: auto; display: block; vertical-align: top; }
.banner-tall { display: block; }
.banner-tall img { height: 100%; object-fit: cover; object-position: center; }
.perks {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; list-style: none;
  margin: 0; padding: 0; border: 0;
}
.home-perks {
  margin: 22px 0; padding: 14px 8px; border: 1px solid var(--line); border-radius: 6px;
}
.home-perks .perks span { color: var(--muted); }
.perks li { display: flex; gap: 10px; align-items: center; padding: 6px 10px; }
.perks img { width: 42px; height: 42px; flex: 0 0 auto; }
.perks strong { display: block; font-size: .92rem; }
.perks span { color: var(--muted); font-size: .8rem; }
.section { margin: 28px 0 8px; font-size: 1.55rem; }
.lead { margin-top: 0; color: var(--muted); }
.kicker { text-transform: uppercase; letter-spacing: .06em; font-size: .75rem; font-weight: 700; color: var(--accent-dark); margin: 0; }
.note { background: var(--soft); border-radius: 6px; padding: 12px 14px; color: var(--muted); }
.cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 16px 0 8px; }
.cat-card {
  display: flex; align-items: stretch; justify-content: space-between; gap: 10px;
  min-height: 168px; padding: 12px 0 12px 18px; background: var(--soft);
  color: var(--ink); text-decoration: none; overflow: hidden; border-radius: 6px;
}
.cat-card-body {
  flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; justify-content: center;
  padding: 4px 8px 4px 0;
}
.cat-card h3 { margin: 0 0 10px; font-size: 1.15rem; }
.cat-card-cover {
  flex: 0 1 50%; max-width: 252px; min-width: 108px;
  display: flex; align-items: center; justify-content: center;
  padding: 6px 12px 6px 4px; line-height: 0;
}
.cat-card-cover img {
  width: 100%; height: auto; max-height: 156px;
  object-fit: contain; object-position: center;
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, .12));
}
.more { display: inline-flex; align-items: center; gap: 6px; color: #444; font-weight: 600; font-size: .92rem; text-decoration: none; }
.dot {
  width: 18px; height: 18px; border-radius: 50%; background: var(--accent); color: #fff;
  display: inline-grid; place-items: center; font-size: 14px; line-height: 1;
}
.btn {
  display: inline-block; background: var(--accent); color: #fff; text-decoration: none; font-weight: 700;
  border: 0; border-radius: 4px; padding: 12px 18px; cursor: pointer; font: inherit;
}
.btn:hover { background: var(--accent-dark); }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; margin: 16px 0 28px; }
.card { background: #fff; border: 1px solid var(--line); overflow: hidden; display: flex; flex-direction: column; }
.cover { display: block; background: #fff; text-decoration: none; }
.cover img { width: 100%; height: 240px; object-fit: contain; display: block; }
.cover-lg { border: 1px solid var(--line); }
.cover-lg img { height: 420px; }
.card-body { padding: 14px 16px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.card-body h2 { font-size: 1.05rem; margin: 0; }
.card-body h2 a { color: var(--ink); text-decoration: none; }
.card-body h2 a:hover { color: var(--accent-dark); }
.price { margin: 0; font-weight: 700; }
.price small, .muted { font-weight: 500; color: var(--muted); font-size: .85rem; }
.price-lg { font-size: 1.4rem; }
.page { padding: 28px 0 48px; }
.product-grid { display: grid; grid-template-columns: minmax(220px, 320px) 1fr; gap: 22px; align-items: start; }
.product-banner { display: block; width: 100%; height: auto; margin: 0 0 22px; border: 0; border-bottom: 10px solid #f1f1f1; }
.category-banner { display: block; width: 100%; height: auto; margin: 0 0 22px; border: 0; border-bottom: 10px solid #f1f1f1; }
.product-page.has-banner { padding-top: 0; }
.category-page.has-cat-banner { padding-top: 0; }
@media (max-width: 767px) {
  .product-banner { display: none; }
  .product-page.has-banner { padding-top: 28px; }
  .category-banner { display: none; }
  .category-page.has-cat-banner { padding-top: 28px; }
}
.product-page .cover-lg { background: transparent; border: 0; min-width: 0; }
.product-page .cover-lg img { width: 100%; max-width: 100%; height: auto; max-height: 460px; object-fit: contain; margin: 0 auto; filter: drop-shadow(0 8px 16px rgba(0,0,0,.12)); }
@media (min-width: 901px) {
  .product-page > .wrap { width: min(1360px, calc(100% - 40px)); }
  .product-page .product-grid {
    grid-template-columns: minmax(360px, 480px) minmax(0, 1fr);
    gap: 28px 36px;
    align-items: stretch;
  }
  .product-page .cover-lg {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    min-height: 100%;
  }
  .product-page .cover-lg img {
    width: auto;
    max-width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
  }
}
.sheet { background: #f6f1df; border-radius: 10px; padding: 22px 26px 18px; }
.product-page .sheet-copy { margin: 0; padding: 0; background: transparent; border-radius: 0; }
.sheet h1 { font-size: clamp(1.35rem, 2vw, 1.7rem); }
.sheet p { margin: 0 0 12px; color: #555; }
.specs { list-style: none; margin: 8px 0 12px; padding: 0; color: #555; }
.specs strong { color: #444; }
.langs { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.langs img { width: 28px; height: auto; }
.buyrow { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 18px; margin-top: 8px; }
.price-xl { margin: 0; color: #e10600; font-size: 2rem; font-weight: 700; line-height: 1; }
.copy-prices p { margin: 0; color: #666; font-size: .92rem; }
.copy-prices span { display: inline-block; min-width: 9.6em; }
.copy-prices b { color: #444; font-weight: 600; }
.variants { display: grid; gap: 8px; }
.variants select {
  font: inherit; color: var(--ink); background: #f3f3f3; border: 1px solid #ddd; border-radius: 3px;
  padding: 8px 28px 8px 10px; min-width: 150px;
}
.personalizar { margin-left: auto; }
.personalizar summary {
  list-style: none; cursor: pointer; background: #00a3d9; color: #fff; font-weight: 800;
  letter-spacing: .04em; text-transform: uppercase; border-radius: 4px; padding: 14px 22px;
}
.personalizar summary::-webkit-details-marker { display: none; }
.personalizar summary:hover { background: #0089b8; }
.personalizar-panel {
  margin-top: 14px; display: grid; gap: 8px; width: min(420px, 100%);
}
.personalizar-panel .note { margin: 0 0 4px; }
.spread-title { margin: 36px 0 16px; text-align: center; font-size: clamp(1.3rem, 2.4vw, 1.8rem); }
/* Muestras del cuento (estilo bxSlider de lolapirindola.es) */
.spread { position: relative; max-width: 100%; margin: 0 auto 0; padding: 0 32px 12px; text-align: center; }
.spread-shell { position: relative; display: inline-block; max-width: 100%; vertical-align: top; }
.spread-stage { min-width: 0; line-height: 0; }
.spread-stage img {
  width: 100%;
  max-width: min(100%, 1200px);
  height: auto;
  display: block;
  margin: 0 auto;
  background: transparent;
  transition: opacity .2s ease;
}
.spread-stage img.is-fading { opacity: 0; }
@media (max-width: 900px) {
  .spread[data-spread-mobile] {
    padding-left: 8px;
    padding-right: 8px;
  }
  .spread[data-spread-mobile] .spread-shell { width: 100%; max-width: 100%; }
  .spread[data-spread-mobile] .spread-stage {
    overflow: hidden;
    width: 100%;
    max-width: 100%;
  }
  .spread[data-spread-mobile] .spread-stage img {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: min(58vw, 420px);
    object-fit: contain;
  }
  .spread[data-spread-mobile] .spread-nav--prev { left: 2px; }
  .spread[data-spread-mobile] .spread-nav--next { right: 2px; }
  .spread[data-spread-mobile] .spread-nav {
    text-shadow: 0 0 6px #fff, 0 0 10px #fff;
  }
}
.spread-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #c0c0c0;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transform: translateY(-50%);
}
.spread-nav:hover { color: #333; }
.spread-nav--prev { left: -32px; }
.spread-nav--next { right: -32px; }
.spread-nav i { display: block; pointer-events: none; }
.spread-thumbs {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  justify-content: flex-start;
  overflow-x: auto;
  margin: 16px 0 28px;
  padding: 2px 4px 8px;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}
.spread-thumbs button {
  flex: 0 0 auto;
  width: 92px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 2px;
  background: #fff;
  cursor: pointer;
  scroll-snap-align: center;
}
.spread-thumbs button.on { border-color: #5f9ad1; }
.spread-thumbs button:hover { border-color: #9fd4ef; }
.spread-thumbs button.on:hover { border-color: #5f9ad1; }
.spread-thumbs img {
  width: 100%;
  height: 52px;
  object-fit: cover;
  object-position: center;
  display: block;
  vertical-align: top;
}
@media (max-width: 900px) {
  .spread-thumbs {
    margin-left: -4px;
    margin-right: -4px;
    padding-bottom: 10px;
  }
  .spread-thumbs button { width: 76px; }
  .spread-thumbs img { height: 42px; }
}
@media (max-width: 600px) {
  .spread { padding: 0 6px 8px; }
  .spread-nav { font-size: 20px; }
  .spread-thumbs button { width: 68px; }
  .spread-thumbs img { height: 38px; }
}
.howto { margin: 0 0 28px; padding-left: 1.2em; color: #444; }
.howto li { margin: 0 0 8px; }
.buy, .form { display: grid; gap: 8px; margin-top: 12px; }
.buy label, .form label { font-weight: 700; }
.check { font-weight: 500; display: flex; gap: 8px; align-items: flex-start; }
.buy input[type="number"], .qty input { width: 5.5rem; }
.error { color: #c40016; font-weight: 700; margin: 0; }
.flash { border-radius: 6px; padding: 10px 14px; margin: 0 0 12px; font-weight: 700; }
.flash-ok { background: var(--ok); }
.flash-warn { background: var(--warn); }
.flash-error { background: #fde8ea; }
.basket { width: 100%; border-collapse: collapse; background: #fff; }
.basket th, .basket td { text-align: left; padding: 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.basket .num { text-align: right; font-weight: 800; white-space: nowrap; }
.qty { display: flex; }
.qty input { border-radius: 4px 0 0 4px; }
.inline { display: block; margin-top: 4px; }
.foot { background: var(--foot); padding: 36px 0 12px; color: #666; }
.foot-grid { display: grid; grid-template-columns: 1.15fr .9fr 1fr .9fr; gap: 22px; }
.logo-foot { width: 210px; height: auto; }
.foot h2 {
  font-size: 1.05rem; margin: 0 0 12px; color: #222; display: inline-block;
  border-bottom: 2px solid var(--accent); padding-bottom: 6px;
}
.foot p { margin: 8px 0; }
.foot ul { list-style: none; margin: 0; padding: 0; }
.foot li { margin: 0 0 8px; }
.foot a { color: #666; text-decoration: none; }
.foot a:hover { color: var(--accent-dark); }
.pay { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pay img { height: 28px; width: auto; background: #fff; padding: 2px 4px; }
.copy { text-align: center; color: #888; font-size: .85rem; margin-top: 18px; }
.search-page { width: 100%; max-width: 520px; margin-bottom: 18px; }
.search-page input { border-radius: 20px 0 0 20px; border-right: 0; padding: 8px 14px; }
.search-page .search-suggest { left: 0; width: 100%; }


/* ───────────── Tienda: carrito, pedido, cuenta (componentes heredados de Nigmaboo, con los colores de Lola) ───────────── */
.box { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 20px 22px 22px; margin: 0 0 22px; min-width: 0; }
.page-title { font-size: clamp(1.6rem, 3vw, 2.1rem); margin: 0 0 14px; }
.center { text-align: center; }
.field { display: block; margin-bottom: 14px; }
.label { display: block; font-weight: 700; margin-bottom: 6px; }
.input, .page input[type=text], .page input[type=email], .page input[type=password], .page input[type=tel], .page textarea, .page select { width: 100%; font: inherit; padding: 10px 12px; border: 1px solid #d5d5d5; border-radius: 4px; background: #fff; color: var(--ink); }
.page textarea { resize: vertical; min-height: 90px; }
.page input:focus, .page textarea:focus, .page select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px #cdeee0; }
.invalid { border-color: #c40016 !important; }
.help { display: block; font-size: .85rem; color: var(--muted); margin-top: 4px; }
.optional { font-weight: 400; color: var(--muted); }
.error { display: block; color: #c40016; font-weight: 700; font-size: .9rem; margin-top: 4px; }
.btn-big { font-size: 1.1rem; padding: 14px 24px; }
.btn-small { font-size: .9rem; padding: 8px 14px; }
.btn-ghost { background: #fff; color: var(--ink); border: 1px solid #ccc; }
.btn-ghost:hover { background: var(--soft); }
.btn-light { background: #e9e9e9; color: #222; }
.btn-light:hover { background: #d6d6d6; color: #111; }
.account-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 16px; }
.account-actions form { margin: 0; }
.page.account .wrap-account { width: min(1440px, calc(100% - 32px)); }
.icon-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; align-items: center; }
.btn-icon-text { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 10px; border: 1px solid #ccc; background: #fff; color: var(--ink); text-decoration: none; cursor: pointer; font-size: .88rem; font-weight: 600; line-height: 1.2; white-space: nowrap; transition: background .15s, border-color .15s, color .15s; }
.btn-icon-text:hover { background: var(--soft); border-color: #aaa; color: var(--accent); }
.btn-icon-text:focus-visible { outline: none; box-shadow: 0 0 0 3px #cdeee0; border-color: var(--accent); }
.btn-icon-text svg { flex: none; }
.orders-table .col-kids { max-width: 18%; width: 18%; font-size: .92rem; vertical-align: middle; }
.orders-table .col-kids .kids-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; line-height: 1.35; max-height: calc(1.35em * 3); word-break: break-word; cursor: default; }
.orders-table .col-print-status { max-width: 13%; font-size: .92rem; line-height: 1.35; vertical-align: middle; }
.orders-table .print-status-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; line-height: 1.35; max-height: calc(1.35em * 3); word-break: break-word; }
.orders-table .col-tracking { width: 4.5rem; min-width: 4.5rem; text-align: center; vertical-align: middle; white-space: nowrap; }
.orders-table th.col-tracking { font-size: .85rem; font-weight: 600; }
.track-ico { display: inline-block; font-size: 1.15rem; line-height: 1; text-decoration: none; opacity: .92; }
.track-ico:hover { opacity: 1; }
.track-ico-glyph { display: inline-block; }
.orders-table .order-aside-mobile { display: none; }
.order-mobile-only { display: none; }
.orders-table .order-actions { width: 220px; min-width: 220px; white-space: normal; text-align: right; vertical-align: middle; }
.orders-table .order-actions-h { text-align: right; width: 220px; min-width: 220px; white-space: nowrap; }
.btn-block { display: block; width: 100%; text-align: center; }
.btn-dark { background: var(--header); } .btn-dark:hover { background: #111a1d; }
.btn[disabled] { opacity: .7; cursor: wait; }
.nav a.is-current:not(.btn) { color: var(--accent); }
.badge { position: absolute; top: -8px; left: 14px; min-width: 1.35em; height: 1.35em; padding: 0 .3em; border-radius: 999px; background: var(--accent); color: #fff; font-size: .75rem; font-weight: 700; display: inline-grid; place-items: center; border: 2px solid #fff; }
.flashes { margin-top: 18px; }
.flash { border: 1px solid var(--line); border-radius: 12px; padding: 10px 16px; margin: 0 0 10px; font-weight: 600; background: #fff; }
.flash-ok { background: #e6f6dc; border-color: #2f9a5c; }
.flash-error { background: #fde4e2; border-color: var(--accent); }
.flash-warn { background: #fff4d6; border-color: #e5a000; }
.notice { background: #fff4d6; border: 2px solid #e5a000; border-radius: 12px; padding: 10px 14px; }
.page { padding: 40px 0 80px; background: linear-gradient(#eaf6f0, var(--paper) 420px); min-height: 60vh; }
.narrow { max-width: 640px; }
input.input, textarea.input, select { width: 100%; font: inherit; font-size: 1.05rem; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
select { width: auto; padding: 6px 10px; }
input.input:focus, textarea.input:focus, select:focus { outline: none; border-color: var(--accent-dark); box-shadow: 0 0 0 4px #bfe6d5; }
.field { margin-bottom: 14px; }
.check { display: flex; gap: 10px; align-items: flex-start; margin: 12px 0; cursor: pointer; }
.check input { width: 1.25em; height: 1.25em; margin-top: .2em; accent-color: var(--accent); flex: none; }
.check.invalid { color: var(--accent); }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.span-2 { grid-column: span 2; }
.row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.inline { display: inline; }
.link { background: none; border: 0; padding: 0; font: inherit; color: var(--accent); text-decoration: underline; cursor: pointer; font-weight: 600; }
.link.danger { color: var(--muted); }
.tag { display: inline-block; font-size: .78rem; font-weight: 700; padding: .1em .55em; border-radius: 6px; background: #eee; vertical-align: middle; }
.tag.ok { background: #e6f6dc; }
.choice-price { display: block; font-weight: 700; color: var(--accent); margin-top: 2px; }
.buy-row { display: flex; justify-content: center; align-items: center; gap: 22px; margin: 0 0 18px; }
.qty { font-weight: 700; display: inline-flex; gap: 8px; align-items: center; }
.price-tag { font-weight: 700; font-size: 1.8rem; color: var(--accent); }
.action-buttons { display: flex; justify-content: center; gap: 18px; flex-wrap: wrap; }
.hero-price { display: inline-block; background: #f6f1df; border: 1px solid var(--line); border-radius: 12px; padding: 6px 14px 2px; font-weight: 600; margin: 14px 0 0; }
.book-price { font-weight: 700; font-size: 1.6rem; margin: 6px 0 12px; }
.book-price small, .hero-price small { font-size: .85rem; font-weight: 400; }
/* carrito / checkout */
.shop-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 30px; align-items: start; }
.summary { position: sticky; top: 100px; }
.summary h2 { margin: 0 0 10px; font-size: 1.6rem; }
.cart-line { display: grid; grid-template-columns: 150px 1fr auto; gap: 18px; align-items: start; margin-bottom: 20px; }
.cart-cover { border: 1px solid var(--line); border-radius: 8px; }
.cart-info h2 { margin: 0 0 6px; font-size: 1.35rem; line-height: 1.1; }
.perso-summary { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; margin: 0 0 10px; font-size: .98rem; }
.perso-summary dt { color: var(--muted); }
.perso-summary dd { margin: 0; font-weight: 600; word-break: break-word; }
.kid-name { font-weight: 700; font-weight: normal !important; letter-spacing: .05em; color: var(--header); }
.cart-actions { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; font-size: .95rem; }
.cart-actions select { font-size: .95rem; }
.cart-price { font-weight: 700; font-size: 1.4rem; text-align: right; white-space: nowrap; }
.cart-price small { display: block; font-size: .8rem; color: var(--muted); }
.totals { width: 100%; border-collapse: collapse; margin: 6px 0 14px; }
.totals th { text-align: left; font-weight: 400; padding: 5px 0; }
.totals td { text-align: right; padding: 5px 0; white-space: nowrap; font-weight: 600; }
.totals .discount td, .totals .discount th { color: #2f9a5c; }
.totals .grand th, .totals .grand td { font-weight: 700; font-size: 1.5rem; border-top: 2px solid var(--ink); padding-top: 10px; }
.totals .vat th { font-size: .85rem; color: var(--muted); }
.coupon-form, .coupon-applied { margin: 0 0 16px; padding: 12px 0; border-top: 2px dashed #ddd; border-bottom: 2px dashed #ddd; }
.coupon-form .row { flex-wrap: nowrap; }
.coupon-form .input { text-transform: uppercase; }
.empty-state { padding: 36px; }
.mini-lines { list-style: none; margin: 0 0 10px; padding: 0; }
.mini-lines li { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 8px 0; border-bottom: 1px solid #eee; font-size: .95rem; line-height: 1.25; }
.mini-lines img { border: 2px solid var(--ink); border-radius: 5px; }
.mini-lines-body { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.mini-lines-head { display: block; line-height: 1.2; }
.mini-lines-meta { display: block; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.3; }
.mini-lines-meta .lp-mini-meta { display: inline; }
.mini-lines-meta .lp-mini-meta-chars { display: inline-flex; align-items: center; gap: 3px; font-weight: 600; vertical-align: middle; }
.mini-lines-meta .lp-mini-meta-chars .lp-char-icon { flex: none; display: block; color: var(--muted); opacity: .9; }
.mini-lines-meta .lp-mini-bind-short { display: none; }
.mini-lines-names {
  display: -webkit-box;
  margin: 0;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  font-size: .78rem;
  line-height: 1.2;
  word-break: break-word;
}
.mini-lines-price { white-space: nowrap; align-self: start; text-align: right; }
@media (max-width: 420px) {
  .mini-lines-meta .lp-mini-bind-full { display: none; }
  .mini-lines-meta .lp-mini-bind-short { display: inline; }
}
.pay-options { display: grid; gap: 10px; margin-bottom: 10px; }
.pay-option { display: flex; gap: 12px; align-items: flex-start; border: 3px solid #ddd; border-radius: 12px; padding: 12px; cursor: pointer; }
.pay-option:has(input:checked) { border-color: var(--accent); background: #fff7f6; }
.pay-option input { margin-top: .35em; accent-color: var(--accent); }
.pay-option small { display: block; color: var(--muted); }
.pay-option .pay-info { margin-top: 6px; font-size: .85em; }
.bankwire-box { border-left: 6px solid #4169e1; }
.bankwire { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; margin: 12px 0; padding: 14px 16px; background: #fff6d6; border-radius: 10px; }
.bankwire dt { color: var(--muted); }
.bankwire dd { margin: 0; overflow-wrap: anywhere; }
.bankwire .iban { font-size: 1.1em; letter-spacing: .03em; }
.saved-addresses { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: .95rem; }
.checkout-saved-addr-select { margin-bottom: 4px; }
.chip { border: 2px solid var(--ink); border-radius: 999px; padding: 2px 12px; text-decoration: none; color: var(--ink); background: #eaf6f0; }
.thanks { text-align: center; }
.thanks-badge { width: 84px; height: 84px; margin: 0 auto 10px; border-radius: 50%; background: #2f9a5c; color: #fff; font-size: 3rem; display: grid; place-items: center; border: 1px solid var(--line); box-shadow: 5px 5px 0 var(--ink); }
.thanks .lead { margin: 0 auto 30px; }
.order-head { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.order-head span.muted { display: block; font-size: .85rem; }
.order-number { font-weight: 700; font-weight: normal; font-size: 1.3rem; letter-spacing: .03em; }
.order-view-back { margin: 0 0 8px; }
.order-view-head { margin-bottom: 18px; }
.order-view-title-row { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 16px; margin-bottom: 16px; }
.order-view-ref .tag { margin-left: 8px; vertical-align: middle; }
.order-view-state { flex: none; }
.order-meta-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px 20px; margin: 0; padding: 14px 0 0; border-top: 1px solid var(--line); }
.order-meta-grid > div { min-width: 0; }
.order-meta-grid dt { margin: 0 0 2px; font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.order-meta-grid dd { margin: 0; font-weight: 700; font-size: 1rem; line-height: 1.35; }
.order-meta-total { font-size: 1.15rem; color: var(--accent); }
.order-view-actions { justify-content: flex-start; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.order-alert { margin-bottom: 18px; }
.order-section-title { margin: 0 0 14px; font-size: 1.15rem; font-weight: 700; }
.order-lines .order-section-title { margin-bottom: 10px; }
.order-mini-lines { margin-bottom: 0; }
.order-mini-lines li:last-child { border-bottom: none; padding-bottom: 0; }
.cart-line-title { margin: 0 0 6px; font-size: 1.2rem; line-height: 1.2; font-weight: 700; }
.order-summary.summary h2 { font-size: 1.25rem; }
.order-summary .summary-block { padding: 16px 0; border-top: 1px solid #eee; }
.order-summary .summary-block:first-child { padding-top: 0; border-top: 0; }
.order-summary .summary-block:last-child { padding-bottom: 0; }
.order-summary .summary-block h3 { margin: 0 0 8px; font-size: 1rem; font-weight: 700; }
.order-view-main.shop-grid { margin-bottom: 0; }
.order-history .order-section-title { margin-bottom: 10px; }
.status { display: inline-block; padding: .15em .7em; border-radius: 999px; font-weight: 700; font-size: .9rem; background: #eee; border: 2px solid var(--ink); }
/* Estados de pedido (color configurable en Admin › Estados de pedido; texto negro/blanco según contraste) */
.ostate { display: inline-block; padding: .2em .75em; border-radius: 999px; font-weight: 700; font-size: .85rem; line-height: 1.3; white-space: nowrap; }
.order-history h2 { font-size: 1.1rem; margin: 0 0 10px; }
.state-timeline { list-style: none; margin: 0; padding: 0; }
.state-timeline li { display: flex; gap: 12px; align-items: center; padding: 6px 0; border-bottom: 1px dashed var(--line); }
.state-timeline li:last-child { border-bottom: 0; }
.state-timeline .date { color: var(--muted); font-size: .9rem; min-width: 130px; }
.progress { list-style: none; display: flex; padding: 0; margin: 0 0 30px; counter-reset: st; }
.progress li { flex: 1; text-align: center; position: relative; font-weight: 600; font-size: .9rem; color: var(--muted); padding-top: 34px; }
.progress li::before { counter-increment: st; content: counter(st); position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--line); background: #fff; display: grid; place-items: center; z-index: 1; font-size: .85rem; }
.progress li::after { content: ''; position: absolute; top: 13px; left: -50%; width: 100%; height: 4px; background: #ddd; }
.progress li:first-child::after { display: none; }
.progress li.done::before { background: #2f9a5c; color: #fff; content: '✓'; }
.progress li.current::before { background: var(--accent); color: #fff; }
.progress li.done, .progress li.current { color: var(--ink); }
.progress li.done::after, .progress li.current::after { background: #2f9a5c; }
.address { line-height: 1.4; }
.cta-account { text-align: center;  }
.test-gateway { text-align: center;  }
.test-buttons { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.auth-form { padding: 28px; }
.tabs { display: flex; gap: 2px; margin: 0 0 24px; border-bottom: 1px solid #e4e4e4; flex-wrap: wrap; }
.tab { padding: 10px 14px; text-decoration: none; color: #111; font-weight: 600; font-size: 1rem; border: 0; border-bottom: 2px solid transparent; border-radius: 0; margin-bottom: -1px; background: transparent; }
.tab:hover, .tab.is-current { color: #111; }
.tab.is-current { border-bottom-color: #111; }
.tab-out { margin-left: auto; color: #111; }
.account-sections { display: none; list-style: none; margin: 0 0 20px; padding: 0; }
.account-section-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 88px;
  padding: 16px 14px;
  border: 1px solid #ddd;
  border-radius: 2px;
  background: #fff;
  text-decoration: none;
  color: #777;
  font-weight: 600;
  font-size: .78rem;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: .04em;
  text-align: center;
  transition: border-color .15s, background .15s;
}
.account-section-btn svg { flex: none; color: #222; opacity: .92; }
.account-section-btn:hover { border-color: #aaa; background: var(--soft); color: #444; }
.account-back-mobile { display: none; margin: 0 0 14px; }
.table-wrap { overflow-x: auto; padding: 8px 10px; }
.orders-table { width: 100%; border-collapse: collapse; }
.orders-table th, .orders-table td { text-align: left; padding: 10px 8px; border-bottom: 1px solid #eee; }
.orders-table .amount { text-align: right; white-space: nowrap; }
.address-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.address-card { margin: 0; }
.address-card.is-default {  }
.my-perso-intro { margin: 0 0 16px; max-width: 52rem; }
.my-perso-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.my-perso-card { margin: 0; display: grid; grid-template-columns: 120px minmax(0, 1fr) minmax(10.5rem, 12.5rem) minmax(9.5rem, auto); gap: 16px 18px; align-items: start; padding: 18px 20px; }
.my-perso-cover { line-height: 0; }
.my-perso-cover img { width: 120px; height: 160px; object-fit: cover; border-radius: 8px; background: #f3f3ef; display: block; }
.my-perso-noimg { display: grid; place-items: center; width: 120px; height: 160px; border-radius: 8px; background: #f3f3ef; font-size: 2.4rem; }
.my-perso-title { margin: 0 0 6px; font-size: 1.15rem; line-height: 1.3; }
.my-perso-meta { list-style: none; margin: 8px 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: .88rem; color: var(--muted); }
.my-perso-status { display: inline-block; padding: 2px 8px; border-radius: 99px; font-size: .78rem; font-weight: 700; color: #fff; background: var(--st, #888); }
.my-perso-copies { align-self: center; padding: 2px 0; }
.my-perso-cart-form { display: contents; }
.my-perso-copies-title { margin: 0 0 8px; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.my-perso-qty-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 8px; margin: 0 0 8px; }
.my-perso-qty-row:last-child { margin-bottom: 0; }
.my-perso-qty-row.is-off { opacity: .45; }
.my-perso-qty-label { font-size: .82rem; font-weight: 600; color: var(--ink); flex: 1 1 5.5rem; min-width: 0; }
.my-perso-copies .qty-stepper { flex: 0 0 auto; }
.my-perso-copies .qty-stepper input[type="text"] { width: 40px; min-width: 40px; flex: 0 0 40px; height: 32px; font-size: .9rem; }
.my-perso-copies .qty-stepper .step { width: 30px; height: 32px; font-size: 1rem; }
.my-perso-actions { display: flex; justify-content: flex-end; align-self: center; }
.my-perso-actions .btn { white-space: nowrap; margin: 0; }
.my-perso-actions .btn[disabled] { opacity: .55; cursor: not-allowed; }
.add-card { display: grid; place-items: center; text-decoration: none; font-weight: 700; font-size: 1.3rem; color: var(--muted); border-style: dashed; min-height: 160px; }
.verify-notice { margin-bottom: 20px; }
.prose h2 { font-size: 1.4rem; margin: 22px 0 6px; }
.legal-links a { color: #f6f1df; }
.site-footer .muted { opacity: .75; font-size: .85rem; }
@media (max-width: 900px) {
  .shop-grid { grid-template-columns: 1fr; }
  .summary { position: static; }
}
@media (max-width: 600px) {
  .cart-line { grid-template-columns: 90px 1fr; }
  .cart-price { grid-column: 2; text-align: left; }
  .grid-2 { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .order-view-title-row { flex-direction: column; align-items: stretch; }
  .order-view-state { align-self: flex-start; }
  .order-view-actions .btn-icon-text { flex: 1 1 auto; justify-content: center; }
  .order-view-head .order-meta-grid { grid-template-columns: 1fr 1fr; align-items: end; }
  .order-view-head .order-meta-grid > div:nth-child(2) { text-align: right; }
  .order-view-head .order-meta-grid > div:nth-child(2) dt { display: none; }
  .order-view-head .order-meta-total { font-size: 1.75rem; font-weight: 700; }
  .order-view-head .order-meta-grid > div:nth-child(n+3) { grid-column: 1 / -1; }
  .progress li { font-size: .72rem; }
  .buy-row { gap: 12px; }
  .tab { font-size: .95rem; padding: 8px 10px 4px; }
  .account-forms { display: block; }
  .perso-summary { grid-template-columns: 1fr; }
  .perso-summary dt { font-size: .8rem; margin-top: 4px; }
  .my-perso-card {
    grid-template-columns: minmax(76px, 38%) minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    gap: 10px 12px;
    align-items: start;
    padding: 14px 16px;
  }
  .my-perso-cover { grid-column: 1; grid-row: 1; align-self: start; }
  .my-perso-body { grid-column: 2; grid-row: 1; min-width: 0; }
  .my-perso-title { font-size: 1.02rem; }
  .my-perso-meta { font-size: .82rem; gap: 4px 8px; margin: 6px 0; }
  .my-perso-cover img, .my-perso-noimg { width: 100%; max-width: none; height: auto; aspect-ratio: 3 / 4; }
  .my-perso-noimg { font-size: 1.75rem; }
  .my-perso-copies {
    grid-column: 1 / -1;
    grid-row: 2;
    align-self: stretch;
    width: 100%;
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid #eee;
  }
  .my-perso-actions {
    grid-column: 1 / -1;
    grid-row: 3;
    justify-content: stretch;
    align-self: start;
    width: 100%;
  }
  .my-perso-actions .btn { width: 100%; white-space: normal; }
  .orders-table thead { display: none; }
  .orders-table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto auto auto;
    gap: 6px 14px;
    padding: 14px 0;
    border-bottom: 1px solid #eee;
    align-items: start;
  }
  .orders-table td { border: 0; padding: 0; max-width: none; width: auto; min-width: 0; }
  .orders-table .order-desktop-cell { display: none !important; }
  .orders-table .order-aside-mobile { display: block !important; grid-column: 2; grid-row: 1 / span 3; align-self: start; width: auto; }
  .order-aside-stack { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; text-align: right; }
  .order-aside-date { font-size: .85rem; color: var(--muted); white-space: nowrap; }
  .order-aside-stack .ostate { font-size: .78rem; }
  .order-aside-total { font-weight: 700; font-size: 1.05rem; white-space: nowrap; }
  .orders-table td:nth-child(1) { grid-column: 1; grid-row: 1; width: 100%; }
  .orders-table td:nth-child(1) strong { white-space: nowrap; font-size: 1rem; }
  .orders-table td.col-kids { grid-column: 1; grid-row: 2; width: 100%; max-width: 100%; box-sizing: border-box; }
  .orders-table td.col-kids .kids-text { display: block; width: 100%; max-width: 100%; box-sizing: border-box; font-size: .78rem; line-height: 1.3; -webkit-line-clamp: 4; max-height: calc(1.3em * 4); }
  .orders-table td.order-actions {
    grid-column: 1 / -1;
    grid-row: 4;
    margin-top: 8px;
    width: 100%;
    min-width: 0;
    text-align: left;
  }
  .orders-table td.order-actions .icon-actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    justify-content: stretch;
    width: 100%;
  }
  .orders-table td.order-actions .btn-icon-text {
    flex: 1 1 0;
    min-width: 0;
    justify-content: center;
    padding: 8px 6px;
    font-size: .78rem;
  }
  .orders-table td.order-actions .btn-icon-text span { overflow: hidden; text-overflow: ellipsis; }
  .orders-table td.order-actions .btn-icon-text svg { width: 16px; height: 16px; }
  .orders-table .order-mobile-only { display: inline-flex !important; }
  .orders-table .order-actions-h { display: none; }
  .tab-out { margin-left: 0; }
  .account-tabs-desktop { display: none; }
  .account-sections { display: grid; gap: 10px; }
  .page.account.account-has-section .account-sections { display: none; }
  .page.account.account-implicit-default .account-sections { display: grid; }
  .page.account.account-implicit-default .account-panel-main { display: none; }
  .page.account.account-implicit-default .account-back-mobile { display: none; }
  .account-back-mobile { display: block; }
}

/* v2.1 · desglose de IVA */
.vat-breakdown { width: 100%; border-collapse: collapse; font-size: .85rem; color: var(--muted); margin: -6px 0 14px; }
.vat-breakdown th, .vat-breakdown td { padding: 3px 0; text-align: right; font-weight: 400; }
.vat-breakdown th:first-child, .vat-breakdown td:first-child { text-align: left; }
.vat-breakdown thead th { border-bottom: 1px solid var(--line, #ddd); font-weight: 600; }
.checkout-form .bill-fields { margin-top: 8px; }
/* Sin :has() (navegadores antiguos) los campos quedan siempre visibles */
.checkout-form:has(#need-invoice:not(:checked)) .bill-fields { display: none; }
.invoice-links { list-style: none; padding: 0; margin: 4px 0 14px; }
.invoice-links li { padding: 3px 0; }
@media (max-width: 900px) {
  .nav-toggle {
    display: inline-grid;
    grid-column: 1;
    grid-row: 1;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 0;
    place-items: center;
  }
  .nav-toggle-ico-menu { display: block; }
  .nav-toggle-ico-close { display: none; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-ico-menu { display: none; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-ico-close { display: block; }
  .nav-toggle-label { display: none; }
  .top-row {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    grid-template-rows: auto;
    align-items: center;
    gap: 0 10px;
    flex-wrap: nowrap;
    min-height: 56px;
    padding: 6px 0;
  }
  .brand {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    max-width: 100%;
  }
  .brand img { height: 40px; max-width: min(200px, 100%); }
  header .search { display: none !important; }
  header .account {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 2px;
    margin: 0;
    min-width: 0;
    overflow: visible;
  }
  header .account .lang-switch,
  header .account .account-link-text { display: none; }
  header .account .account-link-ico {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    width: 44px;
    height: auto;
    min-height: 44px;
    padding: 4px 0 2px;
    color: #fff;
    text-decoration: none;
    flex: none;
  }
  header .account .account-link-ico:hover { color: var(--accent); }
  header .account .account-link-ico svg { display: block; width: 24px; height: 24px; }
  header .account .account-link-cap {
    display: block;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .88);
  }
  header .account .account-link-ico:hover .account-link-cap { color: var(--accent); }
  .cart-link {
    display: block;
    width: 54px;
    height: 54px;
    padding: 0;
    gap: 0;
  }
  .cart-link .cart-ico {
    position: absolute;
    left: 10px;
    top: 10px;
    width: 35px;
    height: 40px;
    color: #fff;
    z-index: 1;
  }
  .cart-link .cart-count {
    position: absolute;
    bottom: 3px;
    left: 30px;
    z-index: 2;
    width: 20px;
    height: 20px;
    min-width: 20px;
    padding: 0;
    font-size: 12px;
    line-height: 20px;
    border-radius: 50%;
    background: #4fb68d;
  }
  .nav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    position: fixed;
    z-index: 46;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(320px, 88vw);
    max-width: 100%;
    margin: 0;
    padding: 0 0 24px;
    background: var(--header);
    background-color: var(--header);
    min-height: 100dvh;
    box-shadow: 4px 0 24px rgba(0, 0, 0, .25);
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateX(-105%);
    transition: transform .22s ease;
    visibility: hidden;
    pointer-events: none;
  }
  body.nav-open .nav {
    transform: translateX(0);
    visibility: visible;
    pointer-events: auto;
  }
  .nav-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex: none;
    position: sticky;
    top: 0;
    z-index: 2;
    margin: 0;
    padding: 12px 6px 12px 16px;
    background: var(--header);
    border-bottom: 1px solid rgba(255, 255, 255, .12);
  }
  .nav-drawer-title {
    margin: 0;
    font-size: .92rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #fff;
  }
  .nav-drawer-close {
    display: grid;
    place-items: center;
    flex: none;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
  }
  .nav-drawer-close:hover { color: var(--accent); }
  .nav-drawer-foot {
    flex: none;
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, .14);
  }
  .nav > a {
    padding: 12px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    white-space: normal;
  }
  .nav > a.on { background: rgba(79, 182, 141, .18); color: var(--accent); }
  .nav-drawer-account {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    white-space: normal;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
  }
  .nav-drawer-account::before {
    content: '';
    flex: none;
    width: 22px;
    height: 22px;
    background: currentColor;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 12a4.5 4.5 0 1 0-4.5-4.5A4.5 4.5 0 0 0 12 12Zm0 2.2c-3.02 0-9 1.52-9 4.53V21h18v-2.27c0-3.01-5.98-4.53-9-4.53Z'/%3E%3C/svg%3E") center / contain no-repeat;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 12a4.5 4.5 0 1 0-4.5-4.5A4.5 4.5 0 0 0 12 12Zm0 2.2c-3.02 0-9 1.52-9 4.53V21h18v-2.27c0-3.01-5.98-4.53-9-4.53Z'/%3E%3C/svg%3E") center / contain no-repeat;
    opacity: .9;
  }
  .nav-drawer-account.on { background: rgba(79, 182, 141, .18); color: var(--accent); }
  .nav-drop { border-bottom: 1px solid rgba(255, 255, 255, .08); }
  .nav-drop-head {
    display: flex;
    align-items: stretch;
    min-height: 48px;
  }
  .nav-drop-head > a {
    flex: 1;
    display: flex;
    align-items: center;
    padding: 12px 8px 12px 18px;
    white-space: normal;
  }
  .nav-drop-head > a.on { background: rgba(79, 182, 141, .18); color: var(--accent); }
  .nav-drop-toggle {
    flex: none;
    width: 48px;
    margin: 0;
    padding: 0;
    border: 0;
    border-left: 1px solid rgba(255, 255, 255, .1);
    background: transparent;
    color: rgba(255, 255, 255, .85);
    cursor: pointer;
    display: grid;
    place-items: center;
  }
  .nav-drop-toggle svg { transition: transform .2s ease; }
  .nav-drop.is-open .nav-drop-toggle svg { transform: rotate(180deg); }
  .nav-drop .nav-sub {
    display: none;
    position: static;
    box-shadow: none;
    border-radius: 0;
    background: rgba(0, 0, 0, .22);
    padding: 4px 0 8px;
    min-width: 0;
  }
  .nav-drop.is-open .nav-sub { display: block; }
  .nav-drop .nav-sub a {
    color: rgba(255, 255, 255, .92);
    padding: 11px 18px 11px 28px;
    font-weight: 600;
    font-size: .92rem;
  }
  .nav-drop .nav-sub a:hover { background: rgba(255, 255, 255, .06); color: var(--accent); }
  .is-carousel { --hs-ratio: var(--hs-ratio-mobile); }
  .is-carousel .hs-slide img,
  .is-carousel .hs-slide picture img { object-fit: cover; background: #f7f4ef; }
  .home-cat-title { margin: 22px 0 6px; font-size: 1.35rem; }
  .home-cat-lead { font-size: .92rem; }
  .mosaic { margin-top: 14px; gap: 12px; }
  .mosaic-side { gap: 12px; }
  .home-perks { margin: 16px 0; padding: 10px 6px; }
  .cat-card {
    flex-direction: row;
    align-items: stretch;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 0 12px 14px;
    min-height: 176px;
  }
  .cat-card-body {
    flex: 1 1 0;
    min-width: 0;
    padding: 6px 6px 6px 0;
  }
  .cat-card h3 {
    font-size: 1.05rem;
    margin-bottom: 6px;
    line-height: 1.2;
  }
  .cat-card .muted {
    font-size: .82rem;
    margin-bottom: 6px;
  }
  .cat-card .more {
    font-size: .85rem;
  }
  .cat-card-cover {
    flex: 0 1 52%;
    max-width: 280px;
    min-width: 120px;
    padding: 8px 12px 8px 0;
  }
  .cat-card-cover img {
    max-height: 168px;
  }
  .mosaic, .product-grid, .foot-grid { grid-template-columns: 1fr; }
  .perks { grid-template-columns: 1fr 1fr; }
  .cat-grid { grid-template-columns: 1fr; }
  .banner-tall img { height: auto; }
  .cover-lg img { height: 280px; }
  .shop-grid, .grid-2, .order-head { grid-template-columns: 1fr; }
  .summary { position: static; }
  .cart-line { grid-template-columns: 90px 1fr; }
  .cart-price { grid-column: 2; text-align: left; }
}
@media (max-width: 560px) {
  .perks { grid-template-columns: 1fr; }
  .cat-card {
    padding: 10px 0 10px 12px;
    min-height: 164px;
    gap: 8px;
  }
  .cat-card h3 { font-size: .98rem; }
  .cat-card-cover {
    flex-basis: 48%;
    max-width: 240px;
    min-width: 108px;
  }
  .cat-card-cover img {
    max-height: 152px;
  }
}

/* ───────────── Menú desplegable, barra de pruebas, pie, WhatsApp, ficha ───────────── */
.nav-drop { position: relative; }
.nav-drop-head { display: contents; }
.nav-sub { display: none; position: absolute; top: 100%; left: 0; z-index: 30; background: #fff; min-width: 220px; box-shadow: 0 8px 24px rgba(0,0,0,.18); border-radius: 0 0 6px 6px; padding: 6px 0; }
.nav-sub a { display: block; color: var(--ink); padding: 8px 16px; font-weight: 600; }
.nav-sub a:hover { color: var(--accent-dark); background: var(--soft); }
.nav-drop-toggle { display: none; }
.nav-drop-head > a::after { content: ' ▾'; font-size: .75em; opacity: .85; }
@media (min-width: 901px) {
  .nav-drop:hover .nav-sub, .nav-drop:focus-within .nav-sub { display: block; }
  .nav-drawer-head,
  .nav-drawer-foot { display: none; }
}
@media (max-width: 900px) {
  .nav-drop-head { display: flex; }
  .nav-drop-head > a::after { content: none; }
  .nav-drop-toggle { display: grid; }
  .nav-drop:hover .nav-sub, .nav-drop:focus-within .nav-sub { display: none; }
  .nav-drop.is-open .nav-sub { display: block; }
}
.testbar { margin: 0; background: #fff4d6; color: #7a5a00; text-align: center; margin: 3px; font-size: .8rem; font-weight: 700; padding: 6px 12px; }
.flashes { margin-top: 16px; }
.foot-grid { grid-template-columns: 1.1fr 1fr 1fr 1fr 1fr; }
.foot .social { display: flex; gap: 8px; } .foot .social img { width: 32px; height: 32px; }
.langs-foot { display: flex; gap: 6px; }
.whatsapp {
  text-align: center;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,.25));
}
.whatsapp--right_center,
.whatsapp--left_center {
  transform: translateY(50%);
}
.whatsapp > a { display: inline-block; }
.whatsapp img { width: 50px; height: 50px; display: block; }
.whatsapp-label {
  background: #1da110;
  color: #fff;
  padding: 2px 8px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 600;
  margin: 0;
  line-height: 1.35;
}
.subcats { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 14px; }
.subcats a { border: 1px solid var(--line); border-radius: 99px; padding: 4px 12px; text-decoration: none; color: var(--ink); font-size: .9rem; }
.subcats a:hover { border-color: var(--accent); color: var(--accent-dark); }
.subcats-panel { margin: 0 0 8px; }
.subcats-panel summary {
  list-style: none; cursor: pointer; font-weight: 600; font-size: .95rem;
  padding: 10px 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--soft);
}
.subcats-panel summary::-webkit-details-marker { display: none; }
.subcats-panel summary::after { content: ' ▾'; font-size: .85em; color: var(--muted); }
.subcats-panel[open] summary::after { content: ' ▴'; }
.subcats-panel .subcats { margin: 10px 0 0; }
.filter-group-label { margin: 14px 0 6px; font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.filter-group-label:first-of-type { margin-top: 4px; }
.subcats-themes { margin-bottom: 4px; }
.filter-active-bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin: 0 0 10px; padding: 0 2px;
}
.filter-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: 99px; background: var(--accent); color: #fff;
  font-size: .88rem; font-weight: 600; text-decoration: none;
}
.filter-chip:hover { background: var(--accent-dark); color: #fff; }
.filter-chip-x { font-size: 1.1em; line-height: 1; opacity: .9; }
.filter-clear-all { font-size: .88rem; font-weight: 600; color: var(--accent-dark); text-decoration: underline; }
.subcats a.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.subcats a.on:hover { color: #fff; background: var(--accent-dark); border-color: var(--accent-dark); }
.category-filters-title { display: none; margin: 0 0 12px; font-size: 1rem; font-weight: 700; line-height: 1.3; }
.category-filters-foot { display: none; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--line); font-size: .88rem; }
.category-filters-foot a { font-weight: 600; color: var(--accent-dark); }
.category-layout { display: block; }
.category-main { min-width: 0; }
.category-page .category-wrap { display: flex; flex-direction: column; }
.category-page .category-h1 {
  order: 45;
  margin: 28px 0 10px;
  font-size: 1.35rem;
  line-height: 1.3;
  font-weight: 800;
  max-width: 54rem;
}
.category-page .category-layout { order: 10; }
.category-page .cat-desc { order: 50; margin-top: 8px; }
.category-main.is-loading { opacity: .55; pointer-events: none; }
.card-cat { margin: 0; font-size: .88rem; color: var(--muted); font-weight: 500; display: none; }
@media (min-width: 768px) {
  .category-filters-title { display: block; }
  .category-layout.has-filters {
    display: grid;
    grid-template-columns: 272px minmax(0, 1fr);
    gap: 28px 36px;
    align-items: start;
    margin-bottom: 8px;
  }
  .category-filters { position: sticky; top: 16px; }
  .category-filters-foot { display: block; }
  .filter-active-bar-mobile { display: none; }
  .category-page .category-filters .subcats-panel,
  .category-page .category-filters .subcats-panel:not([open]) {
    display: block;
  }
  .category-page .category-filters .category-filters-body,
  .category-page .category-filters .subcats-panel:not([open]) .category-filters-body {
    display: block !important;
  }
  .category-page .category-filters .filter-group-label,
  .category-page .category-filters .subcats-panel:not([open]) .filter-group-label {
    display: block !important;
  }
  .category-page .category-filters .subcats,
  .category-page .category-filters .subcats-panel:not([open]) .subcats {
    display: flex !important;
  }
  .category-page .subcats-panel {
    margin: 0;
    padding: 14px 12px 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
  }
  .category-filters .subcats-themes {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 4px;
    margin-bottom: 8px;
  }
  .category-filters .subcats-themes a {
    border-radius: 6px;
    padding: 8px 12px;
    font-size: .92rem;
  }
  .category-filters .subcats-chars {
    gap: 6px;
  }
  .category-filters .subcats-chars a {
    border-radius: 6px;
    padding: 6px 10px;
    font-size: .88rem;
  }
  .category-page .category-filters .subcats-panel summary { display: none; }
  .category-page .category-h1 {
    font-size: clamp(1.35rem, 2.1vw, 1.9rem);
    line-height: 1.28;
  }
  .category-page .grid {
    grid-template-columns: repeat(auto-fill, minmax(248px, 1fr));
    gap: 20px;
    margin: 0 0 36px;
  }
  .category-page .card { border-radius: 4px; }
  .category-page .cover {
    overflow: hidden;
    line-height: 0;
    display: block;
  }
  .category-page .cover img {
    height: 240px;
    object-fit: contain;
    padding: 8px;
    box-sizing: border-box;
    transition: transform .28s ease, filter .28s ease;
  }
  .category-page .cover:hover img {
    transform: scale(1.05);
    filter: drop-shadow(0 12px 22px rgba(0, 0, 0, .14));
  }
  .category-page .card-body {
    text-align: center;
    align-items: center;
    gap: 5px;
    padding: 10px 14px 16px;
  }
  .category-page .card-body .kicker,
  .category-page .card-body .more { display: none; }
  .category-page .card-cat {
    display: block;
    margin: 0;
    font-size: .88rem;
    order: 0;
  }
  .category-page .card-body h2 {
    font-size: 1.02rem;
    line-height: 1.32;
    margin: 0;
  }
  .category-page .card-body h2 a { text-decoration: none; }
  .category-page .card-body h2 a:hover { color: var(--accent-dark); }
  .category-page .card-body .price {
    margin: 4px 0 0;
    font-size: .95rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .category-page .cover img { transition: none; }
  .category-page .cover:hover img { transform: none; filter: none; }
}
@media (min-width: 901px) {
  .category-page > .wrap { width: min(1360px, calc(100% - 40px)); }
  .category-layout.has-filters { grid-template-columns: 280px minmax(0, 1fr); }
  .category-page .category-main .grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .category-page.page { padding-top: 12px; }
  .filter-active-bar { margin-bottom: 12px; }
  .subcats-panel summary { font-size: .86rem; line-height: 1.3; }
  .category-page .grid {
    grid-template-columns: 1fr;
    gap: 0;
    margin: 0 0 20px;
  }
  .category-page .card {
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
  }
  .category-page .card:last-child { border-bottom: 0; }
  .category-page .cover { background: transparent; }
  .category-page .cover img {
    width: 100%;
    height: auto;
    max-height: min(78vw, 340px);
    margin: 0 auto;
    padding: 12px 8px;
    box-sizing: border-box;
  }
  .category-page .card-body {
    align-items: center;
    text-align: center;
    padding: 4px 8px 22px;
    gap: 4px;
  }
  .category-page .card-body .kicker,
  .category-page .card-body .more { display: none; }
  .category-page .card-body .price {
    margin: 4px 0 0;
    font-size: .86rem;
    font-weight: 600;
    color: var(--muted);
  }
  .category-page .card-body .price small { font-weight: 500; font-size: .92em; }
  .category-page .card-body h2 { font-size: 1.12rem; font-weight: 700; }
  .category-page .card-body h2 a { text-decoration: none; }
  .category-page .card-cat { display: block; font-size: .9rem; }
}
.pager { display: flex; gap: 6px; justify-content: center; margin: 10px 0 24px; }
.pager a, .pager b { padding: 6px 12px; border: 1px solid var(--line); border-radius: 4px; text-decoration: none; color: var(--ink); }
.pager b { background: var(--accent); color: #fff; border-color: var(--accent); }
.cat-desc, .product-long, .cms-content { margin: 24px 0; color: #444; }
.cat-desc img, .product-long img, .cms-content img { max-width: 100%; height: auto; }
.page.product-page { background: #fff; }
/* Ficha en móvil: sin barras promocionales para ver portada + personalizar al entrar */
@media (max-width: 900px) {
  body.pg-product.product-page .promo,
  body.pg-product.product-page .testbar {
    display: none;
  }
  body.pg-product.product-page .page.product-page {
    padding-top: 8px;
    padding-bottom: 36px;
  }
  body.pg-product.product-page .product-page:not(.has-banner) {
    padding-top: 8px;
  }
  body.pg-product.product-page .product-page > .wrap {
    width: min(100%, calc(100% - 24px));
  }
  /* Portada tipo producción: ancho casi completo, cuadrado ~360px en móvil */
  body.pg-product.product-page .cover-lg {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    text-align: center;
  }
  body.pg-product.product-page .cover-lg img {
    display: block;
    width: auto;
    max-width: min(100%, 280px);
    height: auto;
    max-height: min(72vw, 280px);
    margin-left: auto;
    margin-right: auto;
    object-fit: contain;
  }
  body.pg-product.product-page .price-xl {
    font-size: 1.75rem;
  }
  /* Orden móvil: portada → compra → banderas → título y textos */
  body.pg-product.product-page .product-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  body.pg-product.product-page .sheet {
    display: flex;
    flex-direction: column;
    background: transparent;
    border-radius: 0;
    padding: 8px 0 0;
  }
  body.pg-product.product-page .sheet-copy {
    order: 4;
    background: #f6f1df;
    border-radius: 10px;
    padding: 18px 16px 16px;
    margin-top: 18px;
  }
  body.pg-product.product-page .sheet .product-actions {
    order: 1;
    margin-top: 0;
    padding: 0 2px;
  }
  body.pg-product.product-page .sheet .product-mobile-cta {
    order: 2;
    display: block;
    margin: 12px 2px 0;
    padding: 0 2px;
  }
  body.pg-product.product-page .sheet .langs {
    order: 3;
    margin-top: 10px;
    padding: 0 2px;
    justify-content: center;
  }
  body.pg-product.product-page .sheet .langs strong {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }
  body.pg-product.product-page .sheet h1 {
    order: unset;
    margin-top: 0;
  }
  body.pg-product.product-page .sheet .short {
    order: unset;
  }
  body.pg-product.product-page .sheet .product-tags {
    order: unset;
    margin-top: 12px;
  }
  body.pg-product.product-page .buyrow.is-personalizar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    margin-top: 0;
  }
  body.pg-product.product-page .buyrow.is-personalizar .price-block,
  body.pg-product.product-page .buyrow.is-personalizar .variants,
  body.pg-product.product-page .buyrow.is-personalizar .add {
    width: 100%;
    text-align: center;
  }
  body.pg-product.product-page .buyrow.is-personalizar .copy-prices {
    margin-top: 6px;
  }
  body.pg-product.product-page .buyrow.is-personalizar .variants {
    display: grid;
    gap: 8px;
  }
}
.product-mobile-cta {
  display: none;
}
#container-personalizador .title_stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
#container-personalizador .title_stepper #btn-cancelar-personalizacion {
  flex-shrink: 0;
  order: 2;
  margin: 0 0 0 8px;
  padding: 4px;
  color: #555;
  line-height: 1;
  text-decoration: none;
}
#container-personalizador .title_stepper #btn-cancelar-personalizacion .material-icons {
  float: none !important;
  font-size: 28px;
}
#container-personalizador .lp-perso-meta-row {
  display: block;
  margin-bottom: 16px;
  overflow: hidden;
}
#container-personalizador .lp-restablecer-wrap {
  float: right;
}
#container-personalizador a.lp-restablecer-textos {
  color: #3a9a78;
  font-weight: 600;
  font-size: 0.88rem;
  text-decoration: none;
}
#container-personalizador a.lp-restablecer-textos:hover,
#container-personalizador a.lp-restablecer-textos:focus {
  color: #2d7a5e;
  text-decoration: underline;
}
#container-personalizador #seleccionar-idioma-mod-textos textarea.lp-dedicatoria-autosize {
  resize: none;
  overflow-y: hidden;
  min-height: 120px;
  transition: height 0.12s ease-out;
}
@media (min-width: 901px) {
  #container-personalizador .title_stepper .lp-title-stepper-main {
    flex: 1 1 auto;
    min-width: 0;
  }
  #container-personalizador .title_stepper .lp-perso-step-counter {
    flex-shrink: 0;
    font-size: 0.88rem;
    font-weight: 600;
    color: #666;
    margin-right: 4px;
    white-space: nowrap;
  }
  #container-personalizador .title_stepper #btn-cancelar-personalizacion {
    margin-left: 4px;
  }
  #container-personalizador .bs-stepper-pane.personalizador > .title_stepper {
    margin-bottom: 18px;
  }
  #container-personalizador .bs-stepper-pane.personalizador .row.lp-perso-char-layout {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    margin-left: -15px;
    margin-right: -15px;
  }
  #container-personalizador .lp-perso-char-layout > .lp-perso-char-photo-col {
    flex: 0 0 32%;
    width: 32% !important;
    max-width: 32%;
    float: none;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  #container-personalizador .lp-perso-char-layout > .lp-perso-char-form-col {
    flex: 1 1 0;
    width: 68% !important;
    max-width: 68%;
    float: none;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: 4px;
  }
  #container-personalizador .lp-perso-photo-block {
    width: 100%;
    max-width: 240px;
    margin: 0 auto;
  }
  #container-personalizador .lp-perso-photo-block .foto-personaje {
    max-width: 100%;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  #container-personalizador .lp-perso-photo-help {
    margin: 10px 0 0;
    font-size: 0.88rem;
    line-height: 1.35;
  }
  #container-personalizador a.lp-perso-help-link {
    color: #3a9a78;
    font-weight: 600;
    text-decoration: none;
  }
  #container-personalizador a.lp-perso-help-link:hover,
  #container-personalizador a.lp-perso-help-link:focus {
    color: #2d7a5e;
    text-decoration: underline;
  }
  #container-personalizador .lp-char-field-label {
    display: block;
    margin: 0 0 8px;
    font-size: 1rem;
  }
  #container-personalizador .lp-perso-char-form-col .form-group.row.lp-sex-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    margin-left: -15px;
    margin-right: -15px;
  }
  #container-personalizador .lp-perso-char-form-col .lp-sex-row > .col-xs-10 {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
  }
  #container-personalizador .lp-perso-char-form-col .lp-sex-row > .lp-perso-sex-help {
    flex: 0 0 44px;
    width: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 0;
    align-self: stretch;
  }
  #container-personalizador .lp-perso-char-form-col .lp-sex-row > .lp-perso-sex-help .material-icons {
    font-size: 28px;
    line-height: 1;
  }
  #container-personalizador .lp-perso-char-nav {
    width: 100%;
    max-width: none;
    margin-top: 12px;
    display: flex !important;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 12px;
    align-items: stretch;
  }
  #container-personalizador .lp-perso-char-nav > .btn,
  #container-personalizador .lp-perso-char-nav > .lp-perso-char-nav-spacer {
    flex: 1 1 0;
    min-width: 0;
    width: auto !important;
    margin: 0 !important;
  }
  #container-personalizador .lp-perso-char-nav > .lp-perso-char-nav-spacer {
    display: block;
  }
  #container-personalizador .lp-perso-char-form-col .mensaje_footer.lp-perso-char-help {
    clear: none;
    float: none;
    width: 100%;
    margin: 16px 0 0;
    padding: 14px 12px;
    font-size: 0.88rem;
    line-height: 1.45;
    box-sizing: border-box;
    background-color: #f1f1f1a3;
  }
  #container-personalizador #seleccionar-idioma-mod-textos > .title_stepper {
    margin-bottom: 18px;
  }
  #container-personalizador .lp-perso-paso2-layout {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    margin-left: -15px;
    margin-right: -15px;
  }
  #container-personalizador .lp-perso-paso2-layout > .lp-perso-paso2-config-col {
    flex: 0 0 35%;
    width: 35% !important;
    max-width: 35%;
    float: none;
    padding-top: 0;
  }
  #container-personalizador .lp-perso-paso2-layout:not(.lp-paso2-no-preview) > .lp-perso-paso2-config-col {
    flex: 0 0 32%;
    width: 32% !important;
    max-width: 32%;
  }
  #container-personalizador .lp-perso-paso2-layout > .lp-perso-paso2-preview-col {
    flex: 0 0 22%;
    width: 22% !important;
    max-width: 22%;
    float: none;
    text-align: left;
    padding-top: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  #container-personalizador .lp-perso-paso2-preview-col .lp-paso2-preview-col-label {
    margin-bottom: 6px;
  }
  #container-personalizador .lp-paso2-preview-img-frame {
    display: flex;
    align-items: stretch;
    justify-content: center;
    width: 100%;
    min-height: 120px;
    overflow: hidden;
    box-sizing: border-box;
  }
  #container-personalizador .lp-perso-paso2-layout.lp-paso2-no-preview > .lp-perso-paso2-preview-col {
    display: none !important;
  }
  #container-personalizador .lp-perso-paso2-layout > .lp-perso-paso2-main-col {
    flex: 1 1 0;
    width: 65% !important;
    max-width: 65%;
    float: none;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: 0;
  }
  #container-personalizador .lp-perso-paso2-layout:not(.lp-paso2-no-preview) > .lp-perso-paso2-main-col {
    width: 46% !important;
    max-width: 46%;
  }
  #container-personalizador .lp-paso2-dedicatoria-preview {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    max-height: none;
    object-fit: contain;
    object-position: bottom center;
    margin: 0;
    border-radius: 4px;
  }
  #container-personalizador .lp-paso2-preview-hint {
    margin: 10px 0 0;
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--muted, #666);
    text-align: left;
  }
  #container-personalizador .lp-paso2-preview-link-wrap {
    margin: 0 0 8px;
  }
  .swal2-popup.lp-swal-ayuda .lp-swal-ded-hint {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.45;
    text-align: left;
    color: #444;
  }
  #container-personalizador .lp-paso2-field-label {
    display: block;
    margin: 0 0 6px;
    font-size: 0.92rem;
    font-weight: 600;
    color: #333;
  }
  #container-personalizador .lp-paso2-config-fields .form-group + .lp-paso2-field-label {
    margin-top: 14px;
  }
  #container-personalizador .lp-paso2-config-fields .form-group:last-child {
    margin-bottom: 0;
  }
  #container-personalizador .lp-paso2-dedicatoria-block {
    margin-bottom: 8px;
    width: 100%;
    box-sizing: border-box;
  }
  #container-personalizador .lp-paso2-dedicatoria-block textarea.observaciones-personalizador.lp-dedicatoria-autosize {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  #container-personalizador .lp-paso2-dedicatoria-block .lp-perso-meta-row {
    padding-left: 0;
    padding-right: 0;
  }
  #container-personalizador .lp-paso2-dedicatoria-block .lp-dedicatoria-hint {
    margin: 0 0 10px;
    font-size: 0.82rem;
    line-height: 1.4;
    color: var(--muted, #666);
  }
  #container-personalizador #seleccionar-idioma-mod-textos textarea.lp-dedicatoria-autosize {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
  }
  #container-personalizador .lp-paso2-nav {
    width: 100%;
    margin-top: 12px;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 8px;
  }
  #container-personalizador .lp-paso2-nav .btn {
    flex: 1 1 0;
    width: auto !important;
    min-width: 0;
    margin-left: 0 !important;
  }
  #container-personalizador .lp-sheet-edit-layout {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    margin-left: -15px;
    margin-right: -15px;
    --lp-sheet-edit-text-offset: 3.25rem;
  }
  #container-personalizador .lp-sheet-edit-layout > .lp-sheet-edit-photo-col,
  #container-personalizador .lp-sheet-edit-layout > .lp-sheet-edit-text-col {
    flex: 0 0 50%;
    width: 50% !important;
    max-width: 50%;
    float: none;
    min-width: 0;
  }
  #container-personalizador .lp-sheet-edit-text-offset {
    display: block;
    height: var(--lp-sheet-edit-text-offset);
    margin: 0 0 10px;
    box-sizing: border-box;
    pointer-events: none;
  }
  #container-personalizador .lp-sheet-edit-text-col .form-group {
    width: 100%;
    margin-bottom: 0;
  }
  #container-personalizador .lp-sheet-edit-text-col textarea.lp-sheet-text-desktop {
    display: block;
    width: 100% !important;
    max-width: 100%;
    margin: 0;
    box-sizing: border-box;
    min-height: 220px;
  }
  #container-personalizador .lp-sheet-edit-nav {
    width: 100%;
    margin-top: 12px;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 8px;
  }
  #container-personalizador .lp-sheet-edit-nav .btn {
    flex: 1 1 0;
    width: auto !important;
    min-width: 0;
    margin-left: 0 !important;
  }
  #container-personalizador [id$="_form"] > .title_stepper.lp-sheet-title-stepper {
    margin-bottom: 16px;
  }
  #container-personalizador #step-resumen_form > .container {
    width: 100%;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
  }
  #container-personalizador #step-resumen_form .boxResumen {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    margin-left: -8px;
    margin-right: -8px;
    margin-bottom: 28px;
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-card-wrap {
    float: none;
    flex: 0 0 192px;
    width: 192px !important;
    max-width: 192px;
    padding-left: 8px;
    padding-right: 8px;
    box-sizing: content-box;
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-char-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    height: 100%;
    padding: 10px 8px 12px;
    box-sizing: border-box;
    cursor: pointer;
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-photo {
    width: 100%;
    max-width: 176px;
    margin: 0 auto 10px;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 4px;
    background: #f5f5f5;
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-photo img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover;
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-name {
    margin: 0 0 6px;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
    word-break: break-word;
    width: 100%;
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-char-box .lp-resumen-char-sex {
    display: block;
    margin: 0 0 12px;
    font-size: 0.88rem;
    line-height: 1.3;
    color: var(--muted, #666);
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-char-box .lp-resumen-edit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 176px;
    min-height: 36px;
    margin: 0;
    background: #00a2b9 !important;
    color: #fff !important;
    border: none !important;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1.2 !important;
    padding: 0 12px !important;
    border-radius: 5px !important;
    box-sizing: border-box;
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-char-box .lp-resumen-edit-btn:hover,
  #container-personalizador #step-resumen_form .lp-resumen-desktop-char-box .lp-resumen-edit-btn:focus {
    background: #008fa3 !important;
    color: #fff !important;
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-footer {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  #container-personalizador #step-resumen_form .lp-resumen-obs-hint {
    margin-top: 6px;
    margin-bottom: 18px;
    padding: 0;
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--muted, #666);
    background: none !important;
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-footer textarea.observaciones-personalizador {
    display: block;
    width: 100% !important;
    max-width: 100%;
    margin: 0 0 16px !important;
    box-sizing: border-box;
    min-height: 88px;
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-nav {
    width: 100%;
    max-width: 100%;
    margin-top: 0;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 8px;
    padding-left: 0;
    padding-right: 0;
  }
  #container-personalizador #step-resumen_form .lp-resumen-desktop-nav .btn {
    flex: 1 1 0;
    width: auto !important;
    min-width: 0;
    margin-left: 0 !important;
  }
}
#container-personalizador .lp-sheet-dedic-locked {
  opacity: 1;
  cursor: default;
  background-color: #e8e8e8 !important;
  color: #333;
}
#container-personalizador .lp-sheet-dedic-lock-panel {
  margin: 0 0 10px;
}
#container-personalizador .lp-sheet-title-stepper {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  height: auto;
  min-height: 42px;
}
#container-personalizador .lp-sheet-title-stepper .lp-sheet-page-label {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 700;
  line-height: 1.35;
}
#container-personalizador .lp-sheet-title-stepper .lp-perso-step-counter {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 0.88rem;
  font-weight: 600;
  color: #666;
  margin: 0;
  float: none;
}
#container-personalizador .lp-sheet-dedic-lock-row {
  display: flex;
  align-items: flex-start;
  width: 100%;
  box-sizing: border-box;
  gap: 0;
  margin: 0 0 10px;
}
#container-personalizador .lp-sheet-dedic-lock-row .lp-sheet-dedic-hint {
  flex: 0 0 90%;
  width: 90%;
  max-width: 90%;
  margin: 0;
  padding-right: 8px;
  box-sizing: border-box;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--muted, #666);
  opacity: 1;
}
#container-personalizador .lp-sheet-dedic-lock-row .lp-sheet-dedic-unlock-btn {
  flex: 0 0 10%;
  width: 10%;
  max-width: 10%;
  min-width: 44px;
  margin: 0;
  padding: 8px 4px;
  border: 1px solid #c8c8c8;
  border-radius: 6px;
  background: #fff;
  color: #555;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  font-weight: normal;
  cursor: pointer;
}
#container-personalizador .lp-sheet-dedic-lock-row .lp-sheet-dedic-unlock-btn:hover,
#container-personalizador .lp-sheet-dedic-lock-row .lp-sheet-dedic-unlock-btn:focus {
  border-color: #999;
  background: #f7f7f7;
}
#container-personalizador .lp-sheet-dedic-lock-row .lp-sheet-dedic-unlock-btn.lp-sheet-dedic-is-unlocked,
#container-personalizador .lp-sheet-dedic-lock-row .lp-sheet-dedic-unlock-btn:disabled {
  cursor: default;
  opacity: 0.85;
  border-color: #d0d0d0;
  background: #f3f3f3;
  color: #4a9a78;
}
#container-personalizador .lp-sheet-dedic-lock-row .lp-sheet-dedic-unlock-btn.lp-sheet-dedic-is-unlocked:hover,
#container-personalizador .lp-sheet-dedic-lock-row .lp-sheet-dedic-unlock-btn:disabled:hover {
  border-color: #d0d0d0;
  background: #f3f3f3;
}
#container-personalizador .lp-sheet-dedic-lock-row .lp-sheet-dedic-unlock-btn .material-icons {
  font-size: 22px;
  margin: 0;
  float: none;
}
#container-personalizador .lp-sheet-dedic-unlock-wrap {
  margin: 0 0 4px;
}
.swal2-popup.lp-swal-borrador {
  width: min(34rem, calc(100vw - 32px)) !important;
  max-width: 100%;
  box-sizing: border-box;
}
.swal2-popup.lp-swal-ayuda .swal2-image {
  max-width: 72px;
  max-height: 72px;
  margin: 8px auto 20px;
  object-fit: contain;
}
.swal2-popup.lp-swal-ayuda .swal2-html-container {
  margin-top: 4px;
  padding-top: 0;
}
.swal2-popup.lp-swal-cancel-perso {
  width: min(32rem, calc(100vw - 32px)) !important;
  max-width: 100%;
  box-sizing: border-box;
}
.swal2-popup.lp-swal-cancel-perso .swal2-actions {
  flex-wrap: nowrap;
  gap: 10px;
  width: 100%;
  margin-top: 12px;
  padding: 0 8px 4px;
  box-sizing: border-box;
}
.swal2-popup.lp-swal-cancel-perso .swal2-actions button {
  flex: 1 1 0;
  min-width: 0;
  margin: 0 !important;
  white-space: normal;
  line-height: 1.25;
  text-transform: none;
  font-size: 0.95rem;
}
.swal2-popup.lp-swal-borrador .swal2-actions {
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin-top: 12px;
  padding: 0 6px 4px;
  box-sizing: border-box;
}
.swal2-popup.lp-swal-borrador .swal2-actions button {
  flex: 1 1 7.5rem;
  min-width: 0;
  max-width: 100%;
  margin: 0 !important;
  white-space: normal;
  line-height: 1.25;
  text-transform: none;
  font-size: 0.95rem;
  padding: 0.55rem 0.65rem;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.swal2-popup.lp-swal-borrador .swal2-confirm.btn-info {
  background: #00a2b9 !important;
  color: #fff !important;
  border: 1px solid #008fa3 !important;
}
.swal2-popup.lp-swal-borrador .swal2-confirm.btn-info:hover,
.swal2-popup.lp-swal-borrador .swal2-confirm.btn-info:focus {
  background: #008fa3 !important;
  border-color: #007a8c !important;
  color: #fff !important;
}
.swal2-popup.lp-swal-borrador .swal2-deny.btn-light {
  background: #f3f3f3 !important;
  color: #333 !important;
  border: 1px solid #ddd !important;
}
.swal2-popup.lp-swal-borrador .swal2-deny.btn-light:hover,
.swal2-popup.lp-swal-borrador .swal2-deny.btn-light:focus {
  background: #e5e5e5 !important;
  border-color: #ccc !important;
  color: #222 !important;
}
.swal2-popup.lp-swal-borrador .swal2-cancel.lp-swal-borrador-cancel,
.swal2-popup.lp-swal-borrador .lp-swal-borrador-cancel {
  background: #ececec !important;
  color: #444 !important;
  border: 1px solid #c8c8c8 !important;
}
.swal2-popup.lp-swal-borrador .swal2-cancel.lp-swal-borrador-cancel:hover,
.swal2-popup.lp-swal-borrador .swal2-cancel.lp-swal-borrador-cancel:focus,
.swal2-popup.lp-swal-borrador .lp-swal-borrador-cancel:hover,
.swal2-popup.lp-swal-borrador .lp-swal-borrador-cancel:focus {
  background: #dcdcdc !important;
  border-color: #b0b0b0 !important;
  color: #333 !important;
}
@media (max-width: 900px) {
  .swal2-popup.lp-swal-borrador .swal2-actions button {
    flex: 0 0 auto !important;
    width: 100% !important;
    font-size: 1rem;
    padding: 0.7rem 1rem;
  }
}
@media (max-width: 900px) {
  .swal2-popup.lp-swal-modificar-textos {
    width: min(20rem, calc(100vw - 20px)) !important;
    max-height: calc(100dvh - 16px) !important;
    overflow-y: auto !important;
    padding: 10px 12px 12px !important;
    box-sizing: border-box;
  }
  .swal2-popup.lp-swal-modificar-textos .swal2-title {
    font-size: 1.05rem !important;
    line-height: 1.3 !important;
    font-weight: 700;
    padding: 0 2px 4px !important;
  }
  .swal2-popup.lp-swal-modificar-textos .swal2-html-container,
  .swal2-popup.lp-swal-modificar-textos #swal2-content {
    font-size: 0.92rem !important;
    line-height: 1.48 !important;
    text-align: left;
    margin: 0.35em 0 0 !important;
    padding: 0 2px;
  }
  .swal2-popup.lp-swal-modificar-textos .swal2-footer {
    font-size: 0.76rem !important;
    line-height: 1.35;
    margin-top: 6px !important;
    padding-top: 6px !important;
  }
  .swal2-popup.lp-swal-modificar-textos .swal2-image {
    max-width: 64px !important;
    max-height: 64px !important;
    margin: 4px auto 2px !important;
    object-fit: contain;
  }
  .swal2-popup.lp-swal-modificar-textos .swal2-actions {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 8px !important;
    width: 100% !important;
    margin-top: 10px !important;
    padding: 0 4px 2px !important;
  }
  .swal2-popup.lp-swal-modificar-textos .swal2-actions button {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0.48rem 0.4rem !important;
    font-size: 0.82rem !important;
    line-height: 1.25 !important;
    text-transform: none;
  }
}
@media (max-width: 900px) {
  body.pg-product.personalizador-open #row-producto,
  body.pg-product.personalizador-open .product-mobile-cta,
  body.pg-product.personalizador-open .whatsapp {
    display: none !important;
  }
  body.pg-product.personalizador-open .page.product-page {
    padding-top: 4px;
    padding-bottom: 28px;
  }
  #container-personalizador {
    margin-top: 0;
  }
  #container-personalizador .container {
    padding-left: 10px;
    padding-right: 10px;
  }
  #container-personalizador .row {
    margin-left: -10px;
    margin-right: -10px;
  }
  #container-personalizador [class*="col-"] {
    float: none;
    width: 100% !important;
    padding-left: 10px;
    padding-right: 10px;
  }
  #container-personalizador .form-group.row.lp-sex-row > .col-xs-10,
  #container-personalizador .form-group.row.lp-sex-row > .col-xs-8,
  #container-personalizador .form-group.row.lp-sex-row > .col-xs-2 {
    width: auto !important;
    padding-left: 0;
    padding-right: 0;
  }
  #container-personalizador .lp-char-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    margin: 0 0 10px;
    padding: 0 10px;
    box-sizing: border-box;
  }
  #container-personalizador .lp-char-label-row .labelpersonaje {
    flex: 1;
    min-width: 0;
    margin: 0;
    padding-top: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 4px 10px;
  }
  #container-personalizador .lp-char-label-row .labelpersonaje span {
    float: none !important;
  }
  #container-personalizador .lp-char-label-row .labelpersonaje span:first-child {
    font-weight: 700;
  }
  #container-personalizador .lp-char-label-row .labelpersonaje span + span {
    font-size: .88rem;
    font-weight: 600;
    color: var(--muted);
    white-space: nowrap;
  }
  #container-personalizador .lp-char-label-row > .material-icons {
    flex-shrink: 0;
    margin: 0 !important;
    float: none !important;
    color: #4fb68d;
    cursor: pointer;
  }
  #container-personalizador .form-group.row.lp-sex-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;
    margin-left: 0;
    margin-right: 0;
  }
  #container-personalizador .form-group.row.lp-sex-row > .col-xs-10,
  #container-personalizador .form-group.row.lp-sex-row > .col-xs-8 {
    flex: 1 1 auto;
    min-width: 0;
  }
  #container-personalizador .form-group.row.lp-sex-row > .col-xs-2 {
    flex: 0 0 auto;
  }
  #container-personalizador .form-group.row.lp-sex-row .material-icons {
    margin: 0 !important;
    float: none !important;
    color: #4fb68d;
    cursor: pointer;
  }
  #container-personalizador .labelpersonaje {
    display: block;
    margin: 0 0 10px;
    padding-top: 4px;
  }
  #container-personalizador .labelpersonaje span {
    float: none !important;
    display: block;
  }
  #container-personalizador .labelpersonaje span + span {
    margin-top: 4px;
    font-size: .88rem;
    color: var(--muted);
  }
  #container-personalizador .title_stepper {
    height: auto;
    min-height: 42px;
    line-height: 1.35;
    font-size: .95rem;
    padding-right: 12px;
  }
  #container-personalizador #seleccionar-idioma-mod-textos textarea.observaciones-personalizador-movil,
  #container-personalizador #seleccionar-idioma-mod-textos textarea.observaciones-personalizador {
    display: block;
    width: 100% !important;
    max-width: 100%;
    margin: 10px 0 0;
    box-sizing: border-box;
  }
  #container-personalizador .lp-sheet-dedic-hint {
    display: block;
    font-size: 12px;
    opacity: 0.85;
    margin: 0 0 8px;
    line-height: 1.4;
  }
  #container-personalizador .lp-dedicatoria-hint {
    display: block;
    font-size: 12px;
    opacity: 0.85;
    margin: 0 0 8px;
    line-height: 1.4;
  }
  #container-personalizador textarea.lp-sheet-text-autosize {
    resize: none;
    overflow-y: hidden;
    min-height: 120px !important;
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
    transition: height 0.12s ease-out;
  }
  #container-personalizador .foto-personaje,
  #container-personalizador .profile-pic.upload-button {
    max-width: min(240px, 78vw);
    width: 100%;
    height: auto;
  }
  #container-personalizador .btn-group.d-flex {
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 8px;
    width: 100%;
  }
  #container-personalizador .btn-group.d-flex.lp-perso-nav-row .btn,
  #container-personalizador .btn-group.d-flex .btn {
    flex: 1 1 0;
    width: auto !important;
    min-width: 0;
    margin-left: 0 !important;
  }
  #container-personalizador .mensaje_footer {
    width: 100%;
    margin-left: 0;
    font-size: .82rem;
    line-height: 1.45;
    padding: 14px 12px;
  }
  #container-personalizador .bs-stepper-pane.fade:not(.active) {
    display: none !important;
    visibility: hidden !important;
  }
  #container-personalizador #step-resumen_form .lp-resumen-obs-hint {
    margin-top: 4px;
    margin-bottom: 10px;
    padding: 0 2px;
    background: none !important;
    font-size: .82rem;
    line-height: 1.45;
    color: var(--muted, #666);
  }
  #container-personalizador #step-resumen_form textarea.observaciones-personalizador {
    display: block;
    width: 100% !important;
    max-width: 100%;
    margin: 0 0 12px;
    box-sizing: border-box;
  }
  #container-personalizador #step-resumen_form textarea.lp-observaciones-autosize {
    resize: none;
    overflow-y: hidden;
    min-height: 88px !important;
    transition: height 0.12s ease-out;
  }
  #container-personalizador #step-resumen_form .boxResumen {
    display: block;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
  #container-personalizador #step-resumen_form .boxResumen .lp-resumen-card-wrap {
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
    float: none;
  }
  #container-personalizador #step-resumen_form .lp-resumen-char-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
  }
  #container-personalizador #step-resumen_form .lp-resumen-char-photo {
    flex: 0 0 76px;
    width: 76px;
    max-width: 30%;
  }
  #container-personalizador #step-resumen_form .lp-resumen-char-photo img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 76px;
    max-width: 76px;
    object-fit: contain;
  }
  #container-personalizador #step-resumen_form .lp-resumen-char-meta {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
  }
  #container-personalizador #step-resumen_form .lp-resumen-char-text {
    flex: 1 1 auto;
    min-width: 0;
  }
  #container-personalizador #step-resumen_form .lp-resumen-char-text h4 {
    margin: 0 0 2px;
    font-size: 1rem;
    line-height: 1.25;
    word-break: break-word;
  }
  #container-personalizador #step-resumen_form .lp-resumen-char-sex {
    display: block;
    font-size: 0.85rem;
    line-height: 1.3;
    color: var(--muted, #666);
  }
  #container-personalizador #step-resumen_form .lp-resumen-edit-btn {
    display: inline-block;
    margin-bottom: 0;
    flex-shrink: 0;
    background: #00a2b9 !important;
    color: #fff !important;
    border: none !important;
    box-shadow: none !important;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1.25 !important;
    height: auto !important;
    min-height: 0;
    padding: 8px 12px !important;
    border-radius: 5px !important;
  }
  #container-personalizador #step-resumen_form .lp-resumen-edit-btn:hover,
  #container-personalizador #step-resumen_form .lp-resumen-edit-btn:focus {
    background: #008fa3 !important;
    color: #fff !important;
  }
}
@media (max-width: 900px) {
  html.lp-has-personalizador body.pg-product.product-page #btn-iniciar-personalizacion {
    display: none !important;
  }
  body.pg-product.product-page .product-mobile-cta {
    display: block;
  }
  body.pg-product.product-page .product-mobile-cta .btn {
    width: 100%;
  }
}
.product-page .short p { margin: 0 0 10px; }
.product-page .add .btn, .btn-personalizar { background: #00a2b9; text-transform: uppercase; letter-spacing: .04em; font-weight: 800; padding: 14px 26px; }
.buyrow.is-personalizar {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);
  align-items: center; justify-items: center;
}
.buyrow.is-personalizar .price-block,
.buyrow.is-personalizar .variants,
.buyrow.is-personalizar .add { width: 100%; text-align: center; }
.buyrow.is-personalizar .variants select { width: 100%; min-width: 0; }
.buyrow.is-personalizar .copy-prices { margin-top: 8px; }
.buyrow.is-personalizar .copy-prices p { font-size: .75rem; line-height: 1.35; }
.buyrow.is-personalizar .copy-prices span { min-width: 0; display: inline; }
.product-page .buyrow.is-personalizar .btn-personalizar,
.product-page .buyrow.is-personalizar .btn-personalizar-desktop {
  width: 100% !important; min-width: 0; padding: 0 12px; white-space: nowrap;
}
@media (max-width: 700px) {
  .buyrow.is-personalizar { grid-template-columns: 1fr; }
}
.sheet .product-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; color: inherit; }
.product-tag {
  display: inline-block; border: 1px solid #c4b48a; background: #fff; color: #6d5b34;
  border-radius: 99px; padding: 4px 12px; font-size: .78rem; font-weight: 700; letter-spacing: .02em;
}
.product-page .add .btn:hover { background: #008fa3; }
.qty-box input { width: 4.5rem; font: inherit; border: 1px solid #d9d9d9; border-radius: 4px; padding: 9px 10px; }
.product-customization { margin: 14px 0; }
.product-customization .custom-fields { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 10px; }
.product-customization .product-customization-item label { display: block; font-weight: 700; margin-bottom: 4px; }
.product-customization textarea { width: 100%; font: inherit; border: 1px solid #d9d9d9; border-radius: 4px; padding: 8px 10px; min-height: 44px; }
.product-customization .js-file-name { display: none; }
.kicker { margin-top: 12px; }
.flash-error { border-color: #c40016; }
@media (max-width: 1100px) { .foot-grid { grid-template-columns: 1fr 1fr 1fr; } }
@media (max-width: 900px) {
  .nav-sub { position: static; display: block; box-shadow: none; background: transparent; padding: 0 0 0 12px; }
  .nav-sub a { color: #cfd8da; padding: 6px 4px; }
  .foot-grid { grid-template-columns: 1fr 1fr; }
}
[hidden] { display: none !important; }
.order-msg { border-left: 4px solid var(--line); padding: 4px 12px; margin: 0 0 12px; }
.order-msg.shop { border-color: #2e7d32; background: #f3faf3; }
.order-msg.mine { border-color: #f0a030; background: #fff8ec; }
.order-msg p { margin: 2px 0; }

/* Pago con Redsys en ventana modal (iframe sobre la tienda) */
.tpv-modal{position:fixed;inset:0;z-index:1000;background:rgba(29,29,27,.6);display:grid;place-items:center;padding:1rem}
.tpv-box{background:#fff;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.35);width:min(760px,100%);height:min(860px,calc(100vh - 2rem));display:flex;flex-direction:column;overflow:hidden}
.tpv-head{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;border-bottom:1px solid #eee}
.tpv-close{font-size:1.3rem;text-decoration:none;color:#1d1d1b;line-height:1;padding:.2rem .5rem}
.tpv-box iframe{flex:1;width:100%;border:0;background:#fff}
.tpv-foot{margin:0;padding:.5rem 1rem;font-size:.85rem;text-align:center;border-top:1px solid #eee}
@media (max-width:600px){.tpv-modal{padding:0}.tpv-box{border-radius:0;height:100vh}}
/* copias de cuentos (carrito) */
.cart-thumb { position: relative; display: block; line-height: 0; }
.copy-band { position: absolute; left: 0; right: 18%; bottom: 10%; background: #e30613; color: #fff; font-weight: 800; font-size: .95rem; letter-spacing: .06em; line-height: 1.6; padding: 0 10px; border-radius: 0 3px 3px 0; box-shadow: 0 1px 3px rgba(0,0,0,.25); pointer-events: none; }
.cart-line.is-copy { margin-top: -8px; border-left: 4px solid #e30613; }
.qty-fixed { color: var(--muted); }
.btn-copies { background: #ff4d4f; } .btn-copies:hover { background: #e03537; }
.qty-stepper { display: inline-flex; align-items: center; gap: 0; }
.qty-stepper .qty-label { margin-right: 8px; }
.qty-stepper .step { width: 34px; height: 34px; font: inherit; font-size: 1.15rem; line-height: 1; border: 1px solid #ccc; background: #fff; color: var(--ink); cursor: pointer; padding: 0; }
.qty-stepper .step:first-of-type { border-radius: 4px 0 0 4px; } .qty-stepper .step:last-of-type { border-radius: 0 4px 4px 0; }
.qty-stepper .step:hover:not([disabled]) { background: var(--soft); }
.qty-stepper .step[disabled] { opacity: .4; cursor: default; }
.qty-stepper input[type="text"] { width: 46px; min-width: 46px; flex: 0 0 46px; height: 34px; margin: 0; padding: 0; border: 1px solid #ccc; border-radius: 0; text-align: center; font-weight: 700; }
.lp-modal { border: 0; border-radius: 6px; padding: 26px 26px 16px; width: min(440px, calc(100% - 32px)); text-align: center; box-shadow: 0 10px 40px rgba(0,0,0,.3); color: var(--ink); }
.lp-modal::backdrop { background: rgba(0,0,0,.45); }
.lp-modal h2 { font-size: 1.6rem; font-weight: 400; margin: 6px 0 6px; }
.lp-modal p { margin: 0 0 14px; color: #555; }
.lp-modal-x { position: absolute; top: 8px; right: 12px; border: 0; background: none; font-size: 1.8rem; line-height: 1; color: #bbb; cursor: pointer; }
.lp-modal-x:hover { color: var(--ink); }
.lp-modal-img { display: block; margin: 0 auto; width: 110px; height: auto; }
.lp-modal-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin: 4px 0 16px; }
.lp-modal-actions form { margin: 0; }
.btn-copy-opt { background: #5bc0de; font-size: 1.05rem; } .btn-copy-opt:hover { background: #3fa9c9; }
.lp-modal-foot { border-top: 1px solid var(--line); padding-top: 12px; margin: 0 !important; font-size: .95rem; }
.lp-modal-swap-binding .btn-swap-binding-confirm {
  background: #00a2b9 !important;
  color: #fff !important;
  border: none;
}
.lp-modal-swap-binding .btn-swap-binding-confirm:hover {
  background: #008fa3 !important;
  color: #fff !important;
}
.lp-modal-aviso-copias .btn-aviso-copias-close {
  min-width: 140px;
  background: #6f7774 !important;
  color: #fff !important;
  border: none;
}
.lp-modal-aviso-copias .btn-aviso-copias-close:hover {
  background: #5a615e !important;
  color: #fff !important;
}
.cart-thumb.mini { display: inline-block; flex: none; } .cart-thumb.mini .copy-band { font-size: .6rem; padding: 0 4px; right: 8%; }
.flash-list { margin: 6px 0 0; padding-left: 1.2em; font-weight: 400; }

/* Carrito: compacto en móvil (max-width 900px); desktop se ajusta en @media (min-width: 901px) */
body.pg-carrito .lp-cart-desktop-only { display: none !important; }
body.pg-carrito .cart-lines .cart-line-title { margin: 0 0 6px; font-size: 1.35rem; line-height: 1.1; color: inherit; }
body.pg-carrito .cart-lines .cart-line-center--copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
}
body.pg-carrito .cart-lines .cart-line-copy-label {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.2;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
body.pg-carrito .cart-lines .cart-line-copy-label-binding {
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.15;
}
body.pg-carrito .cart-lines .cart-line-names-flag { display: none; }
body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-qty-inline {
  flex: 0 0 auto;
  margin: 0;
}
body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-tools {
  display: none;
}
body.pg-carrito .cart-line-snippet { display: none; margin: 0 0 8px; font-size: .92rem; line-height: 1.35; }
body.pg-carrito .cart-lines .cart-line-price-row {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 6px;
}
body.pg-carrito .cart-lines .cart-line-remove { margin: 0; }
body.pg-carrito .cart-lines .cart-line-remove-btn {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.2;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body.pg-carrito .cart-lines .cart-line-remove-btn:hover { color: var(--accent); }
body.pg-carrito .cart-lines .cart-line-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: center;
  font-size: .95rem;
}
body.pg-carrito .cart-lines .cart-line-tool-modify { text-decoration: none; text-align: center; }
body.pg-carrito .cart-lines .cart-line-tools .cart-line-tool-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box;
  line-height: 1.2 !important;
  margin: 0;
  padding: 0 8px !important;
  font-size: .78rem;
  font-weight: 700;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
body.pg-carrito .cart-lines a.cart-line-tool-btn { -webkit-appearance: none; appearance: none; color: #fff; }
body.pg-carrito .cart-lines .cart-line-tool-modify {
  background: #00a2b9 !important;
  color: #fff !important;
}
body.pg-carrito .cart-lines .cart-line-tool-modify:hover { background: #008fa3 !important; color: #fff !important; }
body.pg-carrito .cart-line-variant .lp-variant-chars {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-weight: 600;
  vertical-align: middle;
}
body.pg-carrito .cart-line-variant .lp-char-icon { flex: none; display: block; color: var(--muted); opacity: .9; }
body.pg-carrito .cart-line-variant .lp-variant-binding { font-weight: 700; color: var(--ink); }
body.pg-carrito .cart-line-variant .cart-line-swap-binding {
  margin-left: 4px;
  font-size: .82rem;
  font-weight: 600;
  vertical-align: baseline;
  white-space: nowrap;
}
body.pg-carrito .page.shop { background: #fff; }
@media (max-width: 900px) {
  body.pg-carrito .page.shop { background: #fff; }
  body.pg-carrito .cart-lines .cart-line,
  body.pg-carrito .shop-grid .summary.box {
    background: #f0f3f1;
    border-color: #e0e4e2;
  }
}
.lp-modal-cart-detail { text-align: left; max-width: min(480px, calc(100% - 24px)); width: 100%; padding: 18px 16px 14px; }
.lp-modal-cart-detail .lp-cart-detail-title { margin: 0 32px 10px 0; font-size: 1.15rem; line-height: 1.2; text-align: center; }
.lp-modal-cart-detail .lp-cart-detail-meta {
  display: grid;
  grid-template-columns: 36px minmax(0, 0.82fr) minmax(0, 1.28fr) auto;
  align-items: center;
  gap: 8px 8px;
  background: #eceff0;
  border-radius: 6px;
  padding: 10px 12px;
  margin: 0 0 12px;
}
.lp-modal-cart-detail .lp-cart-detail-meta-flag {
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-modal-cart-detail .lp-cart-detail-flag { flex: none; border-radius: 2px; display: block; }
.lp-modal-cart-detail .lp-cart-detail-meta-fuente,
.lp-modal-cart-detail .lp-cart-detail-meta-binding {
  font-size: .82rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  min-width: 0;
}
.lp-modal-cart-detail .lp-cart-detail-meta-fuente {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lp-modal-cart-detail .lp-cart-detail-meta-binding .lp-cart-detail-binding-label {
  display: block;
  white-space: nowrap;
}
.lp-modal-cart-detail .lp-cart-detail-meta-binding--swap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  line-height: 1.15;
}
.lp-modal-cart-detail .lp-cart-detail-meta-binding .cart-line-swap-binding,
.lp-modal-cart-detail .lp-cart-detail-swap-binding {
  margin: 0;
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.1;
  white-space: nowrap;
}
.lp-modal-cart-detail .lp-cart-detail-meta-chars {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: .82rem;
  font-weight: 700;
  justify-self: end;
  flex: none;
  white-space: nowrap;
  min-width: 2.1rem;
  padding-left: 2px;
}
.lp-modal-cart-detail .lp-cart-detail-meta-chars .lp-char-icon { flex: none; display: block; color: var(--muted); opacity: .9; }
.lp-cart-detail-texts-info {
  margin: 12px 0 0;
  padding: 0;
  font-size: .82rem;
  line-height: 1.45;
  color: var(--muted);
}
.lp-cart-detail-dedic,
.lp-cart-detail-obs {
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 6px;
  background: #f3f6f4;
  border: 1px solid #e8ecea;
}
.lp-cart-detail-obs { border-top: 0; padding-top: 12px; }
.lp-cart-detail-dedic { margin: 0 0 4px; }
.lp-cart-detail-dedic .lp-cart-detail-sheet-title { margin-top: 0; }
.lp-modal-cart-detail .lp-modal-actions--cart-detail {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 8px;
  margin: 4px 0 0;
  padding: 0;
}
.lp-modal-cart-detail .lp-modal-actions--cart-detail .btn {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  padding: 11px 10px;
  font-size: .72rem;
  line-height: 1.2;
  letter-spacing: .02em;
  text-align: center;
  text-decoration: none;
}
.lp-modal-cart-detail .lp-modal-actions--cart-detail .btn-cart-detail-modify {
  flex: 1.55 1 0;
  white-space: nowrap;
  font-size: .68rem;
  letter-spacing: .01em;
  padding-left: 6px;
  padding-right: 6px;
  background: #00a2b9 !important;
  color: #fff !important;
  border: none;
}
.lp-modal-cart-detail .lp-modal-actions--cart-detail .btn-cart-detail-close {
  flex: 0.85 1 0;
  background: #6f7774 !important;
  color: #fff !important;
  border: none;
}
.lp-modal-cart-detail .btn-cart-detail-close:hover {
  background: #5a615e !important;
  color: #fff !important;
}
.lp-modal-cart-detail .btn-cart-detail-modify:hover { background: #008fa3 !important; color: #fff !important; }
.lp-cart-detail-tabs { display: flex; gap: 0; margin: 0 0 10px; border: 1px solid #d8deda; border-radius: 6px; overflow: hidden; }
.lp-cart-detail-tab {
  flex: 1 1 0; margin: 0; padding: 10px 8px; border: 0; background: #fff; font: inherit; font-size: .82rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .03em; color: var(--muted); cursor: pointer;
}
.lp-cart-detail-tab + .lp-cart-detail-tab { border-left: 1px solid #d8deda; }
.lp-cart-detail-tab.is-active { background: #f0f4f2; color: var(--ink); }
.lp-cart-detail-panels { max-height: min(52vh, 420px); overflow: auto; margin: 0 0 12px; -webkit-overflow-scrolling: touch; }
.lp-cart-detail-panel { display: none; }
.lp-cart-detail-panel.is-active { display: block; }
.lp-cart-detail-char-list { list-style: none; margin: 0; padding: 0; }
.lp-cart-detail-char { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid #e8ecea; }
.lp-cart-detail-char:last-child { border-bottom: 0; }
.lp-cart-detail-char-photo { flex: none; width: 72px; height: 72px; border-radius: 4px; overflow: hidden; background: #e4e8e6; }
.lp-cart-detail-char-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lp-cart-detail-char-noimg { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #e8ecea 0%, #d5dbd8 100%); }
.lp-cart-detail-char-body { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.lp-cart-detail-char-name { font-size: 1.05rem; line-height: 1.15; }
.lp-cart-detail-char-sex { font-size: .78rem; font-weight: 600; letter-spacing: .04em; color: var(--muted); }
.lp-cart-detail-obs-label { font-size: .78rem; font-weight: 700; color: var(--muted); margin-bottom: 6px; }
.lp-cart-detail-obs-text { font-size: .88rem; line-height: 1.45; white-space: pre-wrap; }
.lp-cart-detail-sheet { margin: 0 0 14px; padding-bottom: 14px; border-bottom: 1px dashed #dde3e0; }
.lp-cart-detail-sheet:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
.lp-cart-detail-sheet-title { margin: 0 0 6px; font-size: .88rem; font-weight: 700; color: var(--muted); }
.lp-cart-detail-sheet-text { font-size: .9rem; line-height: 1.45; white-space: pre-wrap; }
.lp-modal-cart-detail .lp-modal-actions { margin-top: 4px; }
@media (min-width: 901px) {
  body.pg-carrito .lp-cart-mobile-only { display: none !important; }
  body.pg-carrito .cart-lines .cart-line-tools a.cart-line-tool-modify.lp-cart-mobile-only {
    display: none !important;
  }
  body.pg-carrito .cart-lines .cart-line-center > h2.cart-line-title:not(.lp-cart-desktop-only) {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    min-width: 0;
    vertical-align: top;
  }
  body.pg-carrito .cart-lines .cart-line-title-text {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  body.pg-carrito .cart-lines .cart-line-title-flag.lp-cart-desktop-only {
    display: block !important;
    flex: none;
    width: 22px;
    height: 22px;
    border-radius: 2px;
  }
  body.pg-carrito h2.cart-line-title.lp-cart-desktop-only {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    min-width: 0;
    margin-top: 14px;
  }
  body.pg-carrito form.cart-line-qty-inline.lp-cart-desktop-only {
    display: inline-flex !important;
  }
  body.pg-carrito p.cart-line-modify-row.lp-cart-desktop-only {
    display: block !important;
    margin: auto 0 0;
    padding: 0;
  }
  body.pg-carrito p.cart-line-modify-row.lp-cart-desktop-only .cart-line-tool-modify {
    display: inline-flex !important;
    width: max-content;
    max-width: 100%;
    min-width: 0;
    padding-left: 10px !important;
    padding-right: 10px !important;
    white-space: nowrap;
    font-size: .72rem;
    letter-spacing: .02em;
  }
  body.pg-carrito .cart-lines .cart-line,
  body.pg-carrito .shop-grid .summary.box {
    background: #f0f3f1;
    border-color: #e0e4e2;
  }
  body.pg-carrito .cart-line-snippet {
    display: block;
    margin: 0 0 4px;
    font-size: .82rem;
  }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-variant {
    color: var(--muted);
    font-size: .78rem;
  }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-variant.lp-cart-desktop-only {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.35;
    margin-bottom: 6px;
  }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-variant.lp-cart-desktop-only .lp-variant-binding-line {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 8px;
    line-height: 1.3;
  }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-variant.lp-cart-desktop-only .lp-variant-binding {
    font-size: .95rem;
    font-weight: 500;
    color: var(--ink);
  }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-variant.lp-cart-desktop-only .cart-line-swap-binding {
    font-size: .82rem;
    font-weight: 600;
  }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-variant.lp-cart-desktop-only .lp-variant-chars-line {
    display: block;
    width: 100%;
  }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-variant.lp-cart-desktop-only .lp-variant-chars {
    display: inline;
    font-size: .92rem;
    font-weight: 500;
    color: var(--ink);
  }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-variant.lp-cart-desktop-only .lp-variant-chars-word,
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-variant.lp-cart-desktop-only .lp-variant-n {
    font-weight: 500;
  }
  body.pg-carrito .cart-lines .perso-summary--full {
    display: none !important;
  }
  body.pg-carrito .cart-lines .cart-line {
    container-type: normal;
    grid-template-columns: 132px minmax(0, 1fr) minmax(9.5rem, 11.5rem);
    grid-template-rows: auto auto;
    gap: 12px 16px;
    padding: 14px 16px;
    margin-bottom: 14px;
    align-items: start;
  }
  body.pg-carrito .cart-lines .cart-thumb {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 132px;
    max-width: 132px;
    min-width: 132px;
    align-self: start;
  }
  body.pg-carrito .cart-lines .cart-cover {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border: none;
    border-radius: 5px;
  }
  body.pg-carrito .cart-lines .cart-line-center {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
  }
  body.pg-carrito .cart-lines .cart-line:not(.is-copy) .cart-line-center {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 132px;
  }
  body.pg-carrito .cart-lines .cart-line-center--copy {
    display: block;
    text-align: left;
  }
  body.pg-carrito .cart-lines .cart-line-aside {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    grid-column: 3;
    grid-row: 1 / span 2;
    gap: 8px;
    align-self: stretch;
    min-width: 0;
  }
  body.pg-carrito .cart-lines .cart-line-price-row {
    grid-column: auto;
    grid-row: auto;
    width: 100%;
  }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-names {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-names.lp-cart-desktop-only {
    display: block !important;
  }
  body.pg-carrito .cart-lines .cart-line-title {
    font-size: 1.15rem;
    margin: 0 0 4px;
  }
  body.pg-carrito .cart-lines .cart-line-names-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
    line-height: 1.3;
    max-height: calc(1.3em * 2);
  }
  body.pg-carrito .cart-lines .cart-price {
    font-size: 1.1rem;
  }
  body.pg-carrito .cart-lines .cart-line-tools {
    grid-column: auto;
    grid-row: auto;
    flex-direction: column;
    align-items: stretch;
    align-self: stretch;
    width: 100%;
    max-width: none;
    margin-top: 0;
    padding-top: 0;
    border-top: none;
    gap: 6px;
    flex-wrap: nowrap;
  }
  body.pg-carrito .cart-lines .cart-line-tools .cart-line-tool-btn {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    max-width: none;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    white-space: nowrap;
    font-size: .7rem;
    letter-spacing: .02em;
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
  body.pg-carrito .cart-lines .cart-line-tools .cart-line-tool-btn .lp-cart-desktop-only {
    display: inline !important;
  }
  body.pg-carrito .cart-lines .cart-line-tools .btn-copies.cart-line-tool-btn,
  body.pg-carrito .cart-lines .cart-line-tools .cart-line-tool-details {
    width: 100%;
    max-width: 8.5rem;
    align-self: flex-end;
  }
  body.pg-carrito .cart-lines .cart-line-tool-details {
    display: inline-flex !important;
    background: #1d1d1b !important;
    color: #fff !important;
  }
  body.pg-carrito .cart-lines .qty-fixed.cart-line-qty-note {
    display: none;
  }
  body.pg-carrito .cart-lines .cart-line-qty,
  body.pg-carrito .cart-lines .cart-line-qty-inline {
    margin-left: 0;
    justify-content: flex-end;
    width: 100%;
  }
  body.pg-carrito .cart-lines .cart-line-qty .qty-label,
  body.pg-carrito .cart-lines .cart-line-qty-inline .qty-label {
    display: none;
  }
  body.pg-carrito .cart-lines .cart-line.is-copy {
    margin-left: 48px;
    width: calc(100% - 48px);
    grid-template-rows: auto;
  }
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-tools {
    display: none;
  }
}
@media (max-width: 900px) {
  body.pg-carrito .cart-lines .cart-line {
    container-type: inline-size;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    gap: 10px 12px;
    padding: 12px 14px;
    align-items: start;
    margin-bottom: 12px;
  }
  body.pg-carrito .cart-lines .cart-thumb {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    width: calc((100cqw - 12px) / 3);
    max-width: 118px;
    min-width: 88px;
    line-height: normal;
  }
  body.pg-carrito .cart-lines .cart-cover {
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
  }
  body.pg-carrito .cart-lines .cart-line-center { grid-column: 2; grid-row: 1; min-width: 0; }
  body.pg-carrito .cart-lines .cart-line-aside { display: contents; }
  body.pg-carrito .cart-lines .cart-line-price-row {
    grid-column: 3;
    grid-row: 1;
    align-items: flex-end;
  }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-names {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-bottom: 0;
    width: 100%;
    max-width: 100%;
  }
  body.pg-carrito .cart-lines .cart-line-names-flag {
    display: block;
    flex: none;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    border-radius: 2px;
  }
  body.pg-carrito .cart-lines .cart-line-names-text {
    flex: 1 1 auto;
    min-width: 0;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
    line-height: 1.25;
  }
  body.pg-carrito .cart-line-snippet { display: block; margin: 0 0 4px; font-size: .82rem; }
  body.pg-carrito .cart-lines .cart-line-snippet.cart-line-variant { color: var(--muted); font-size: .78rem; }
  body.pg-carrito .cart-lines .cart-line-title { font-size: 1.05rem; margin: 0 0 4px; }
  body.pg-carrito .cart-lines .perso-summary--full { display: none !important; }
  body.pg-carrito .cart-lines .cart-price {
    font-size: 1rem;
    font-weight: 700;
    text-align: right;
    line-height: 1.2;
    white-space: nowrap;
  }
  body.pg-carrito .cart-lines .cart-price small { font-size: .72rem; font-weight: 400; }
  body.pg-carrito .cart-lines .cart-line-tools {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6px;
    width: 100%;
    margin-top: 2px;
    padding-top: 10px;
    border-top: 1px solid #e4e8e6;
  }
  body.pg-carrito .cart-lines .cart-line-tools .cart-line-tool-btn {
    flex: 1 1 0;
    min-width: 0;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    white-space: nowrap;
  }
  body.pg-carrito .cart-lines .cart-line-tool-details {
    background: #1d1d1b !important;
    color: #fff !important;
    border: none !important;
  }
  body.pg-carrito .cart-lines .cart-line-tool-details:hover { background: #333 !important; }
  body.pg-carrito .cart-lines .qty-fixed.cart-line-qty-note { display: none; }
  body.pg-carrito .cart-lines .cart-line-qty {
    flex: 0 0 auto;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 0;
    margin-left: auto;
    max-width: none;
  }
  body.pg-carrito .cart-lines .cart-line-qty .qty-label { display: none; }
  body.pg-carrito .cart-lines .cart-line-qty .step,
  body.pg-carrito .cart-lines .cart-line-qty input[type="text"] { height: 34px; }
  body.pg-carrito .cart-lines .cart-line-qty input[type="text"] {
    width: 40px;
    min-width: 40px;
    flex: 0 0 40px;
    font-size: .92rem;
  }
  body.pg-carrito .cart-lines .cart-line-qty .step { width: 34px; font-size: 1.05rem; }
  body.pg-carrito .cart-lines .cart-line.is-copy {
    margin-top: -4px;
    margin-left: 24px;
    margin-bottom: 10px;
    width: calc(100% - 24px);
    box-sizing: border-box;
    border-left-width: 3px;
    grid-template-rows: auto;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  body.pg-carrito .cart-lines .cart-line:not(.is-copy):has(+ .cart-line.is-copy) {
    margin-bottom: 6px;
  }
  body.pg-carrito .cart-lines .cart-line-center--copy {
    align-items: flex-start;
    justify-content: flex-start;
    text-align: left;
    gap: 6px;
    padding-top: 2px;
  }
  body.pg-carrito .cart-lines .cart-line-copy-head {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    margin-top: 4px;
  }
  body.pg-carrito .cart-lines .cart-line-copy-title-row {
    display: block;
    width: 100%;
  }
  body.pg-carrito .cart-lines .cart-line-copy-label-main {
    font-size: .98rem;
    font-weight: 700;
    line-height: 1.15;
  }
  body.pg-carrito .cart-lines .cart-line-copy-label-binding {
    display: block;
    font-size: .74rem;
    font-weight: 600;
    line-height: 1.15;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-snippet.cart-line-variant.lp-cart-mobile-only {
    margin: 0 0 2px;
    text-align: left;
  }
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-snippet.cart-line-names.lp-cart-mobile-only {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 0 0 4px;
    width: 100%;
    max-width: 100%;
    text-align: left;
  }
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-snippet.cart-line-names.lp-cart-mobile-only .cart-line-names-flag {
    display: block;
    flex: none;
    width: 18px;
    height: 18px;
    margin-top: 1px;
    border-radius: 2px;
  }
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-snippet.cart-line-names.lp-cart-mobile-only .cart-line-names-text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: .72rem;
    line-height: 1.2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
    text-align: left;
  }
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-price-row--copy {
    align-items: flex-end;
    gap: 8px;
  }
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-price-row--copy .cart-line-qty-inline {
    margin: 0;
    justify-content: flex-end;
    flex: 0 0 auto;
  }
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-qty-inline { margin-top: 0; }
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-qty-inline .step,
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-qty-inline input[type="text"] { height: 32px; }
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-qty-inline input[type="text"] {
    width: 36px;
    min-width: 36px;
    flex: 0 0 36px;
    font-size: .88rem;
  }
  body.pg-carrito .cart-lines .cart-line.is-copy .cart-line-qty-inline .step { width: 32px; font-size: 1rem; }
  body.pg-carrito .cart-lines .copy-band { font-size: .72rem; padding: 0 6px; }
}

[aria-invalid="true"] { scroll-margin-top: 140px; scroll-margin-bottom: 40px; }
