/* =========================================================
   Tienda Heráldica .com v7 — hoja de estilo
   Sistema de diseño heredado de la .com.mx: pergamino, borgoña y oro,
   tipografía Noto Serif.
   ========================================================= */

:root{
  --ink:#1c1a17; --ink-soft:#4a453e;
  --paper:#fbf7ef; --paper-2:#f4ecdd; --line:#e3d8c3; --header-gray:#e8e8e8;
  --burgundy:#6e1423; --burgundy-d:#4f0d18;
  --gold:#b08d35; --gold-d:#8a6d24;
  --ok:#2f7d32;
  --font-title:'Noto Serif',Georgia,'Times New Roman',serif;
  --font-body:'Noto Serif',Georgia,serif;
  --wrap:1140px; --radius:6px;
  --shadow:0 6px 24px rgba(28,26,23,.09); --shadow-sm:0 2px 8px rgba(28,26,23,.07);
}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font-body);font-size:19px;line-height:1.6;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-title);line-height:1.18;font-weight:700;color:var(--ink)}
h1{font-size:clamp(1.9rem,4vw,2.7rem);margin:0 0 .4em}
h2{font-size:clamp(1.4rem,3vw,2rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em}
a{color:var(--burgundy);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}
main.contenido{min-height:60vh;padding:40px 0}

.contenedor{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px}
.visualmente-oculto{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip-link:focus{position:fixed;top:8px;left:8px;width:auto;height:auto;clip:auto;background:var(--ink);color:#fff;padding:10px 16px;z-index:1000;border-radius:4px}

/* ---------- Botones ---------- */
.btn{display:inline-block;font-family:var(--font-body);font-size:1rem;font-weight:600;letter-spacing:.02em;padding:.7em 1.5em;border-radius:var(--radius);border:2px solid transparent;cursor:pointer;text-align:center;transition:transform .06s ease,background .15s ease,color .15s ease;text-decoration:none}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn--oro{background:var(--gold);color:#fff;border-color:var(--gold)}
.btn--oro:hover{background:var(--gold-d);border-color:var(--gold-d);color:#fff}
.btn--linea{background:transparent;color:var(--burgundy);border-color:var(--burgundy)}
.btn--linea:hover{background:var(--burgundy);color:#fff}
.btn--sm{padding:.5em 1em;font-size:.9rem}
.btn--block{display:block;width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}

/* ---------- Cabecera ---------- */
.site-header{background:var(--paper);border-bottom:1px solid var(--line)}
.topbar{background:var(--burgundy);color:#f3e7d8;font-size:.82rem}
.topbar__inner{display:flex;justify-content:flex-end;gap:24px;padding:7px 20px}
.topbar__link{color:#f3e7d8}
.topbar__link:hover{color:#fff;text-decoration:underline}
.header__main{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:16px 20px}
.brand{display:flex;flex-direction:column;gap:2px}
.brand:hover{text-decoration:none}
.brand__logo{height:38px;width:auto;display:block}
.brand__tagline{font-size:.78rem;color:var(--ink-soft);letter-spacing:.04em}
.header-search{display:flex;max-width:420px;width:100%;margin:0 auto}
.header-search input{flex:1;border:1px solid var(--line);border-right:0;border-radius:var(--radius) 0 0 var(--radius);padding:.55em .9em;font-family:var(--font-body);font-size:1rem;background:#fff;min-width:0}
.header-search button{background:var(--burgundy);color:#fff;border:0;border-radius:0 var(--radius) var(--radius) 0;padding:0 16px;cursor:pointer;display:flex;align-items:center}
.header-search button:hover{background:var(--burgundy-d)}
.header__actions{display:flex;align-items:center;gap:12px}
.cart-link{position:relative;color:var(--ink);display:inline-flex;align-items:center}
.cart-link:hover{color:var(--burgundy)}
.cart-count{position:absolute;top:-8px;right:-10px;min-width:18px;height:18px;line-height:18px;padding:0 5px;border-radius:9px;background:var(--gold);color:#fff;font-size:.72rem;text-align:center;font-weight:700}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:44px;height:40px;flex-direction:column;gap:5px;justify-content:center}
.nav-toggle span{display:block;height:2px;background:var(--ink);border-radius:2px}
.nav-primary{background:var(--burgundy);border-top:3px solid var(--gold);box-shadow:var(--shadow-sm)}
.nav-primary ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.nav-primary a{display:block;padding:13px 18px;color:#f3e7d8;font-weight:600;letter-spacing:.02em;font-size:1.02rem;border-bottom:3px solid transparent}
.nav-primary a:hover{text-decoration:none;color:#fff}
.nav-primary a[aria-current="page"]{border-bottom-color:var(--gold);color:#fff}

/* ---------- Pie ---------- */
.site-footer{background:var(--ink);color:#d8d0c4;margin-top:56px}
.site-footer a{color:#e7d6bd}
.site-footer a:hover{color:#fff}
.site-footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:32px;padding:48px 20px}
.site-footer__logo{height:32px;width:auto;display:block;margin-bottom:12px}
.site-footer__about{font-size:.9rem;color:#b7aca0}
.site-footer h3{color:#fff;font-size:1rem;margin:0 0 .7em}
.site-footer__col ul{list-style:none;margin:0;padding:0}
.site-footer__col li{margin:.35em 0;font-size:.92rem}
.site-footer__bottom{border-top:1px solid rgba(255,255,255,.12)}
.site-footer__bottom p{margin:0;padding:16px 20px;font-size:.8rem;color:#9b9186}

/* ---------- Migas y utilidades de página ---------- */
.miga{font-size:.85rem;color:var(--ink-soft);margin-bottom:24px}
.miga a{color:var(--ink-soft)}
.miga a:hover{color:var(--burgundy)}
.miga span[aria-hidden]{margin:0 6px;color:#bbb}

/* ---------- Home / hero con imagen de portada ---------- */
.hero{background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);border-bottom:1px solid var(--line);margin-top:-40px}
.hero--bg{
  background:
    linear-gradient(90deg,rgba(232,232,232,.97) 0%,rgba(232,232,232,.86) 36%,rgba(232,232,232,.40) 60%,rgba(232,232,232,.04) 100%),
    var(--header-gray) url('../img/hero-portada.webp') no-repeat right center;
  background-size:auto,cover;border-bottom:1px solid var(--line)
}
.hero__inner{padding:64px 20px}
.hero--bg .hero__text{max-width:620px}
.hero--bg .hero__text h1{color:var(--burgundy)}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.8rem;color:var(--gold-d);font-weight:700;margin-bottom:.6em}
.lead{font-size:1.2rem;color:var(--ink-soft)}
.lema{color:var(--gold-d);font-style:italic;font-size:1.2rem}
.hero__search{display:flex;gap:10px;margin:1.4em 0 1em;flex-wrap:wrap;max-width:560px}
.hero__search input{flex:1;min-width:220px;border:1px solid var(--line);border-radius:var(--radius);padding:.8em 1em;font-family:var(--font-body);font-size:1.05rem;background:#fff}
.hero__search button{white-space:nowrap;background:var(--burgundy);color:#fff;border:0;border-radius:var(--radius);padding:0 1.4em;font-weight:600;cursor:pointer}
.hero__search button:hover{background:var(--burgundy-d)}
.hero__hint{font-size:.95rem;color:var(--ink-soft)}
@media(max-width:700px){
  .hero--bg{background:linear-gradient(180deg,rgba(232,232,232,.93) 0%,rgba(232,232,232,.72) 100%),var(--header-gray) url('../img/hero-portada-mobile.webp') no-repeat center center;background-size:auto,cover}
  .hero__inner{padding:44px 20px}
}

/* ---------- Cabecera de página con foto (page-header) ---------- */
.page-header{background:var(--header-gray);border-bottom:1px solid var(--line);padding:36px 0;margin:-40px 0 28px}
.page-header--slim{padding:16px 0}
.page-header h1{color:var(--burgundy);margin:0}
.page-header__lead{font-size:1.12rem;color:var(--ink);max-width:720px;margin:.4em 0 0}
.page-header--photo{
  background:
    linear-gradient(90deg,var(--header-gray) 0%,var(--header-gray) 46%,rgba(232,232,232,.72) 68%,rgba(232,232,232,.30) 100%),
    var(--header-gray) url('../img/hero-portada.webp') no-repeat right center;
  background-size:auto,cover
}
.page-header .miga{margin-bottom:12px}
@media(max-width:700px){
  .page-header--photo{background:linear-gradient(180deg,var(--header-gray) 0%,rgba(232,232,232,.62) 100%),var(--header-gray) url('../img/hero-portada-mobile.webp') no-repeat center center;background-size:auto,cover}
}

/* ---------- Ficha de escudo ---------- */
.escudo__cab h1{font-size:clamp(1.7rem,3vw,2.2rem);margin:0 0 .2em}
.escudo__lead{color:var(--ink-soft);margin:0 0 8px;font-size:1.05rem}
.escudo__cuerpo{display:flex;gap:40px;align-items:flex-start;margin-top:24px;flex-wrap:wrap}
.escudo__img{flex:0 0 250px;margin:0;text-align:center}
.escudo__img img{width:250px;height:250px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:8px;box-shadow:var(--shadow-sm)}
.escudo__img figcaption{font-size:.8rem;color:var(--ink-soft);margin-top:8px;font-style:italic}
.escudo__texto{flex:1 1 380px;min-width:280px}
.prosa h2{font-size:1.3rem;color:var(--burgundy);margin:1.2em 0 .3em;border-bottom:1px solid var(--line);padding-bottom:4px}
.prosa h2:first-child{margin-top:0}
.prosa p{margin:.4em 0 1em}
.escudo__lema{font-style:italic}
.escudo__acciones{margin-top:24px}
.escudo__otra{margin-top:56px;padding-top:32px;border-top:1px solid var(--line);text-align:center}
.escudo__otra h2{color:var(--burgundy)}

/* Buscadores en página */
.buscador{display:flex;gap:8px;max-width:520px;margin:16px auto 0;flex-wrap:wrap}
.buscador input{flex:1 1 240px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);font:inherit;background:#fff}
.buscador--grande{max-width:600px}

/* ---------- Landing e índice de apellidos ---------- */
.ap-hero{text-align:center;padding-top:8px}
.ap-hero__lead{color:var(--ink-soft);font-size:1.1rem;max-width:680px;margin:0 auto 24px}
.ap-indice{margin-top:48px}
.ap-indice h2,.ap-letra h1{color:var(--ink)}
.ap-indice h2{position:relative;text-align:center;margin-bottom:1em}
.ap-indice h2::after{content:"";display:block;width:60px;height:3px;background:var(--gold);margin:.4em auto 0}
.az{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 8px}
.az__l{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);text-decoration:none;font-weight:700}
.az__l:hover{border-color:var(--gold);color:var(--gold-d);text-decoration:none}
.az__l--on{background:var(--burgundy);color:#fff;border-color:var(--burgundy)}
.ap-letras{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.ap-letras a{display:flex;align-items:baseline;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-decoration:none;color:var(--ink)}
.ap-letras a:hover{border-color:var(--gold);text-decoration:none}
.ap-letras__l{font-family:var(--font-title);font-size:1.3rem;font-weight:700;color:var(--burgundy)}
.ap-letras__n{font-size:.8rem;color:var(--ink-soft)}
.ap-letra__meta{color:var(--ink-soft);font-size:.9rem;margin:.2em 0 1em}
.ap-lista{list-style:none;padding:0;margin:20px 0;columns:4;column-gap:24px}
.ap-lista li{break-inside:avoid;margin:0 0 6px;font-size:.92rem}
.ap-lista li a{color:var(--ink)}
.ap-lista li a:hover{color:var(--burgundy)}
.ap-lista--con a{font-weight:700;color:var(--burgundy)}
.pager{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:20px 0;font-size:.9rem}
.pager a,.pager__on{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 8px;border:1px solid var(--line);border-radius:4px;text-decoration:none;color:var(--ink);background:#fff}
.pager a:hover{border-color:var(--gold);color:var(--gold-d)}
.pager__on{background:var(--burgundy);color:#fff;border-color:var(--burgundy);font-weight:700}
.pager__b{font-weight:700}
.pager__gap{padding:0 4px;color:#aaa}

/* ---------- Tienda: categorías ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-top:28px}
.cat-card{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm)}
.cat-card:hover{border-color:var(--gold);text-decoration:none}
.cat-card__ph{flex:0 0 64px;height:64px;display:flex;align-items:center;justify-content:center;background:var(--paper-2);color:var(--burgundy);font-family:var(--font-title);font-size:1.8rem;font-weight:900;border:2px solid var(--gold);border-radius:var(--radius)}
.cat-card__nombre{display:block;font-family:var(--font-title);font-size:1.2rem;font-weight:700}
.cat-card__meta{display:block;font-size:.85rem;color:var(--ink-soft)}

/* ---------- Categoría: productos ---------- */
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin-top:24px}
.prod-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:20px 16px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm)}
.prod-card:hover{border-color:var(--gold);text-decoration:none}
.prod-card__ph{width:120px;height:120px;object-fit:contain}
.prod-card__nombre{font-family:var(--font-title);font-weight:700}
.prod-card__precio{color:var(--ink-soft);font-size:.9rem}

/* ---------- Ficha de producto / configurador ---------- */
.prod__cuerpo{display:flex;gap:40px;align-items:flex-start;margin-top:20px;flex-wrap:wrap}
.prod__media{flex:1 1 320px;margin:0;text-align:center}
.prod__ph{display:block;width:100%;max-width:440px;height:auto;margin:0 auto;border:6px solid #fff;border-radius:var(--radius);box-shadow:var(--shadow)}
.prod__media figcaption{font-size:.8rem;color:var(--ink-soft);margin-top:8px;font-style:italic}
.prod__info{flex:1 1 380px;min-width:300px}
.prod__desc{color:var(--ink-soft)}
.cfg-grp{border:0;padding:0;margin:0 0 20px}
.cfg-grp legend{font-family:var(--font-title);font-weight:700;font-size:.95rem;margin-bottom:8px;color:var(--ink)}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill{position:relative;cursor:pointer}
.pill input{position:absolute;opacity:0}
.pill span{display:inline-block;padding:8px 14px;border:1px solid var(--line);border-radius:20px;background:#fff;font-size:.92rem}
.pill input:checked+span{background:var(--burgundy);color:#fff;border-color:var(--burgundy)}
.pill input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.pills--wide .pill span{border-radius:var(--radius)}
.campo{margin-bottom:10px}
.campo label{display:block;font-size:.85rem;margin-bottom:3px;color:var(--ink-soft)}
.campo input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:4px;font:inherit;background:#fff}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}
.qty__b{width:38px;height:40px;border:0;background:var(--paper-2);font-size:1.2rem;cursor:pointer;color:var(--ink)}
.qty__b:hover{background:#ece1cd}
.qty__i{width:52px;height:40px;border:0;text-align:center;font:inherit}
.precio-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--line);margin-top:8px}
.precio-row__n{font-family:var(--font-title);font-size:1.6rem;color:var(--burgundy)}
.par-nota{background:var(--paper-2);border-left:3px solid var(--gold);padding:8px 12px;font-size:.88rem;margin:0 0 16px}
.par-nota__ayuda{color:var(--ink-soft)}
.prod__acciones{display:grid;gap:10px;margin-top:8px}
.cart-added{background:#eef7ee;border:1px solid #cfe5cf;padding:10px 12px;border-radius:var(--radius);font-size:.9rem;margin-top:12px}

/* ---------- Carrito ---------- */
.cart-vacio{color:var(--ink-soft);padding:20px 0}
.cart-lineas{list-style:none;padding:0;margin:16px 0}
.cart-linea{display:grid;grid-template-columns:1fr auto auto auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.cart-linea__nombre{display:block;font-family:var(--font-title);font-weight:700}
.cart-linea__var{display:block;font-size:.85rem;color:var(--ink-soft)}
.cart-linea__campos{display:block;font-size:.85rem;color:var(--ink);font-style:italic}
.cart-linea__par{display:inline-block;margin-top:3px;font-size:.75rem;color:#fff;background:var(--gold);padding:1px 7px;border-radius:10px}
.cart-linea__qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.cart-linea__cant{min-width:32px;text-align:center;font-weight:700}
.cart-linea__sub{font-weight:700;min-width:70px;text-align:right}
.cart-linea__x{border:0;background:none;font-size:1.4rem;color:var(--burgundy);cursor:pointer;line-height:1}
.cart-tot{max-width:340px;margin-left:auto;margin-top:20px}
.cart-tot__l{display:flex;justify-content:space-between;margin:6px 0}
.cart-tot__tach{text-decoration:line-through;color:#999}
.cart-tot__ahorro{color:var(--ok)}
.cart-tot__sub{font-family:var(--font-title);font-size:1.3rem;font-weight:700;border-top:1px solid var(--line);padding-top:10px}
.cart-tot__nota{font-size:.8rem;color:var(--ink-soft)}
.cart-seguir{margin-top:24px}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .header__main{grid-template-columns:auto auto;grid-template-areas:"brand actions" "search search";row-gap:12px}
  .brand{grid-area:brand}.header__actions{grid-area:actions}.header-search{grid-area:search;max-width:none}
  .site-footer__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .nav-toggle{display:flex}
  .nav-primary ul{display:none;flex-direction:column;padding:6px 0}
  .nav-primary.is-open ul{display:flex}
  .nav-primary a{padding:11px 20px;border-bottom:1px solid rgba(255,255,255,.08)}
  .nav-primary a[aria-current="page"]{border-bottom-color:var(--gold)}
}
@media(max-width:820px){.ap-lista{columns:3}}
@media(max-width:640px){
  .escudo__cuerpo{gap:24px}.escudo__img{flex-basis:100%}.escudo__img img{width:220px;height:220px}
  .prod__cuerpo{gap:24px}
}
@media(max-width:560px){
  .ap-lista{columns:2}
  .site-footer__grid{grid-template-columns:1fr}
  .cart-linea{grid-template-columns:1fr auto;grid-auto-rows:auto}.cart-linea__sub{grid-column:2}
  .topbar__inner{gap:14px;font-size:.75rem}
}

/* ============================================================
 * Paso 5 — Checkout, pedido y avisos
 * ============================================================ */

.checkout { padding-block: 2rem 3rem; }
.checkout-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
}
@media (min-width: 900px) {
  .checkout-grid { grid-template-columns: 1.4fr 1fr; }
  .checkout-col--resumen { position: sticky; top: 1.5rem; }
}

.campo { margin-bottom: 1rem; display: flex; flex-direction: column; }
.campo label { font-weight: 600; margin-bottom: .3rem; color: #4a2530; }
.campo input, .campo select {
  font: inherit;
  padding: .6rem .7rem;
  border: 1px solid #c9b79a;
  border-radius: 6px;
  background: #fffdf8;
  color: inherit;
}
.campo input:focus, .campo select:focus {
  outline: 2px solid #b08d35;
  outline-offset: 1px;
  border-color: #b08d35;
}
.campo__ayuda { color: #6b5b46; font-size: .85em; margin-top: .3rem; }
.campo--2 { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.campo--2 > span { display: flex; flex-direction: column; }

/* Métodos de pago */
.pay-metodos { display: flex; flex-direction: column; gap: .6rem; }
.pay-metodo {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas: "radio titulo" "radio desc";
  gap: 0 .6rem;
  padding: .8rem 1rem;
  border: 1px solid #c9b79a;
  border-radius: 8px;
  cursor: pointer;
  background: #fffdf8;
}
.pay-metodo input { grid-area: radio; align-self: center; }
.pay-metodo__t { grid-area: titulo; font-weight: 600; }
.pay-metodo__d { grid-area: desc; font-size: .85em; color: #6b5b46; }
.pay-metodo:has(input:checked) { border-color: #6e1423; box-shadow: 0 0 0 1px #6e1423; }

/* Resumen */
.checkout-resumen {
  background: #f6efe0;
  border: 1px solid #d9c9a8;
  border-radius: 10px;
  padding: 1.2rem 1.3rem;
}
.checkout-resumen h2 { margin-top: 0; font-size: 1.2rem; }
.checkout-lineas, .cart-lineas, .pedido-lineas { list-style: none; margin: 0; padding: 0; }
.checkout-linea {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: .2rem .7rem;
  align-items: baseline;
  padding: .6rem 0;
  border-bottom: 1px solid #e2d4b8;
}
.checkout-linea__info { display: flex; flex-direction: column; }
.checkout-linea__n { font-weight: 600; }
.checkout-linea__v { font-size: .85em; color: #6b5b46; }
.checkout-linea__par { font-size: .78em; color: #7a5b1e; }
.checkout-linea__q { color: #6b5b46; }
.checkout-linea__s { font-weight: 600; white-space: nowrap; }

.checkout-tot { margin-top: 1rem; }
.checkout-tot__l, .cart-tot__l, .pedido-tot__l {
  display: flex; justify-content: space-between; gap: 1rem; padding: .25rem 0;
}
.checkout-tot__ahorro, .cart-tot__ahorro { color: #6e1423; }
.checkout-tot__total, .pedido-tot__total {
  border-top: 2px solid #b08d35;
  margin-top: .4rem; padding-top: .6rem;
  font-size: 1.25rem; font-weight: 700;
}
.checkout-tot__total em, .checkout-tot__l em { font-style: normal; color: #6b5b46; font-size: .8rem; }
.checkout-nota, .checkout-seguir { font-size: .85em; color: #6b5b46; margin-top: .8rem; }
.btn--block { display: block; width: 100%; text-align: center; margin-top: 1rem; }
.btn[disabled] { opacity: .55; cursor: not-allowed; }

/* Avisos */
.aviso { border-radius: 8px; padding: 1rem 1.2rem; margin: 1rem 0; border: 1px solid; }
.aviso p { margin: .3rem 0; }
.aviso--error { background: #fbe9e9; border-color: #c0392b; color: #7a1f16; }
.aviso--info  { background: #eef4fb; border-color: #4a72a8; color: #274160; }
.aviso--ok    { background: #eaf6ec; border-color: #3c8a4e; color: #235233; }
.aviso--warn  { background: #fdf5e4; border-color: #b08d35; color: #6b5117; }
.aviso ul { margin: .4rem 0 0; padding-left: 1.2rem; }

/* Página de pedido / transferencia */
.pedido { padding-block: 2rem 3rem; }
.pedido-resumen, .pedido-envio, .pedido-transfer { margin-top: 1.6rem; }
.pedido-linea {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: .2rem .8rem;
  align-items: baseline;
  padding: .6rem 0;
  border-bottom: 1px solid #e2d4b8;
}
.pedido-linea__info { display: flex; flex-direction: column; }
.pedido-linea__t { font-weight: 600; }
.pedido-linea__c { font-size: .85em; color: #6b5b46; }
.pedido-linea__par { font-size: .78em; color: #7a5b1e; }
.pedido-linea__q { color: #6b5b46; white-space: nowrap; }
.pedido-linea__s { font-weight: 600; white-space: nowrap; }
.pedido-tot { margin-top: 1rem; max-width: 22rem; margin-left: auto; }

.pedido-transfer {
  background: #f6efe0; border: 1px solid #d9c9a8; border-radius: 10px; padding: 1.2rem 1.3rem;
}
.pedido-transfer h2 { margin-top: 0; }
.pedido-transfer__datos { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1rem; margin: 0; }
.pedido-transfer__datos dt { font-weight: 600; color: #4a2530; }
.pedido-transfer__datos dd { margin: 0; }
.pedido-transfer__iban { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: .04em; }
.pedido-transfer__ayuda { font-size: .9em; color: #6b5b46; margin-top: 1rem; }

/* ============================================================
 * Paso 5 — /promo (escudo digital simple, multi-escudo)
 * ============================================================ */
.promo { padding-block: 2rem 3rem; }
.promo-row { margin-bottom: .6rem; }
.promo-row__l { font-weight: 600; margin-bottom: .3rem; color: #4a2530; display: block; }
.promo-row__in { display: flex; gap: .5rem; align-items: center; }
.promo-row__in input { flex: 1; }
.promo-row__x {
  border: 1px solid #c9b79a; background: #fffdf8; color: #6e1423;
  width: 2.2rem; height: 2.2rem; border-radius: 6px; cursor: pointer;
  font-size: 1.2rem; line-height: 1; flex: 0 0 auto;
}
.promo-row__x:hover { background: #f6efe0; }
[data-promo-add] { margin-top: .4rem; }
[data-promo-add][disabled] { opacity: .5; cursor: not-allowed; }
.promo-resumen__l { display: flex; justify-content: space-between; padding: .3rem 0; color: #4a453e; }

/* ==========================================================================
   Buscador de apellidos y página «escudo no encontrado» (Paso 7)
   ========================================================================== */

.buscador { position: relative; display: flex; flex-wrap: wrap; gap: .6rem; }
.buscador--grande input { font-size: 1.15rem; padding: .85em 1em; }
.buscador__ayuda { color: var(--ink-soft); font-size: .9rem; margin: .6rem 0 2rem; }

/* Lista de sugerencias del autocompletado */
.sugerencias {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 30;
    margin: .25rem 0 0;
    padding: .25rem 0;
    list-style: none;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 8px 24px rgba(36, 32, 29, .12);
    max-height: 20rem;
    overflow-y: auto;
}
.sugerencias li a {
    display: block;
    padding: .55rem .9rem;
    text-decoration: none;
    color: var(--ink);
}
.sugerencias li a:hover,
.sugerencias li.activa a {
    background: var(--parchment-d, #f0e7d8);
    color: var(--burgundy);
}

/* Avisos y bloques de la página de «no encontrado» */
.aviso-busqueda {
    background: #fdf4de;
    border-left: 4px solid var(--gold);
    padding: .9rem 1.1rem;
    border-radius: var(--radius);
    margin-bottom: 1.5rem;
}
.aviso-error {
    background: #fbeceb;
    border-left: 4px solid #a3231b;
    color: #a3231b;
    padding: .9rem 1.1rem;
    border-radius: var(--radius);
    margin-bottom: 1rem;
}

.tarjeta-hallazgo,
.tarjeta-formulario,
.tarjeta-exito,
.bloque-ayuda,
.buscar-otra {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1.4rem 1.5rem;
    margin-bottom: 2rem;
}
.tarjeta-hallazgo { border-left: 4px solid var(--gold); }
.tarjeta-exito { border-left: 4px solid #1c6b3f; }

.lista-hallazgo { list-style: none; padding: 0; margin: .8rem 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.lista-hallazgo li a {
    display: inline-block;
    padding: .45em 1em;
    border: 2px solid var(--burgundy);
    border-radius: var(--radius);
    font-weight: 600;
    text-decoration: none;
}
.lista-hallazgo li a:hover { background: var(--burgundy); color: #fff; }
.etiqueta-pendiente { font-size: .82rem; color: var(--ink-soft); font-style: italic; }
.nota { font-size: .92rem; color: var(--ink-soft); }

/* Formulario de solicitud */
.form-solicitud .campo--acepta label {
    display: flex;
    gap: .55rem;
    align-items: flex-start;
    font-weight: 400;
    font-size: .95rem;
}
.form-solicitud .campo--acepta input { width: auto; margin-top: .2rem; }
@media (max-width: 640px) { .campo--2 { grid-template-columns: 1fr; } }

/* Preguntas frecuentes */
.faq details {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    margin-bottom: .6rem;
    padding: .2rem .4rem;
}
.faq summary {
    cursor: pointer;
    padding: .85rem .9rem;
    font-weight: 600;
    color: var(--burgundy);
    font-family: var(--font-head, inherit);
}
.faq summary::marker { color: var(--gold); }
.faq__cuerpo { padding: 0 .9rem 1rem; }
.faq__cuerpo ul { margin: .5rem 0 .5rem 1.2rem; }

/* Llamada final */
.cta-final {
    background: var(--burgundy);
    color: #fff;
    padding: 3rem 0;
    text-align: center;
    margin-top: 1rem;
}
.cta-final h2 { color: #fff; margin-top: 0; }
.cta-final__lead { font-size: 1.1rem; color: #f2e3cc; }
.cta-final__contacto { margin-top: 1.5rem; color: #f2e3cc; }
.cta-final__contacto a { color: #fff; text-decoration: underline; }
.cta-final__nota { font-size: .88rem; color: #d9c6a8; margin-bottom: 0; }

.figura-contenido img { width: 100%; height: auto; border-radius: var(--radius); }
