/* ============================================================
   Abal Confecciones — Hoja de estilos principal
   Sin dependencias externas. Fuentes de sistema.
   ============================================================ */

:root {
  /* Paleta inspirada en el logo: azul corporativo + verde, contraste optimizado */
  --navy: #123C8C;        /* azul de marca (hero, header, footer) */
  --navy-dark: #0C2A63;   /* azul profundo (degradados) */
  --orange: #159048;      /* verde de marca (botones, acentos) */
  --orange-dark: #0F7A3C; /* verde oscuro (hover, texto sobre blanco) */
  --steel: #566172;       /* gris texto secundario */
  --slate: #C2CEE2;       /* azul grisáceo claro (texto sobre azul) */
  --offwhite: #F3F6FA;
  --lightgray: #E7EDF4;
  --white: #FFFFFF;
  --ink: #1A2433;
  --shadow: 0 6px 24px rgba(18, 60, 140, 0.10);
  --shadow-lg: 0 14px 40px rgba(18, 60, 140, 0.16);
  --radius: 10px;
  --wrap: 1160px;
  --font: Arial, "Helvetica Neue", Helvetica, sans-serif;
}

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

html { scroll-behavior: smooth; }

body {
  font-family: var(--font);
  color: var(--ink);
  background: var(--white);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: var(--orange-dark); text-decoration: none; }
a:hover { text-decoration: underline; }

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }

h1, h2, h3 { line-height: 1.2; color: var(--navy); font-weight: 800; }
h2.seccion-titulo { font-size: clamp(1.7rem, 3.5vw, 2.4rem); margin-bottom: 10px; }
.seccion-intro { color: var(--steel); max-width: 720px; margin-bottom: 40px; font-size: 1.05rem; }
.eyebrow {
  display: inline-block; color: var(--orange-dark); font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase; font-size: 0.8rem; margin-bottom: 12px;
}

/* ---------- Botones ---------- */
.btn {
  display: inline-block; padding: 13px 28px; border-radius: var(--radius);
  font-weight: 700; font-size: 0.98rem; cursor: pointer; border: 2px solid transparent;
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}
.btn:hover { text-decoration: none; transform: translateY(-2px); }
.btn-primary { background: var(--orange); color: var(--white); }
.btn-primary:hover { background: var(--orange-dark); box-shadow: var(--shadow); }
.btn-outline { background: transparent; color: var(--navy); border-color: var(--navy); }
.btn-outline:hover { background: var(--navy); color: var(--white); }
.btn-light { background: var(--white); color: var(--navy); }
.btn-light:hover { background: var(--lightgray); }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50; background: var(--white);
  border-bottom: 1px solid var(--lightgray); box-shadow: 0 2px 10px rgba(22,50,79,.05);
}
.nav { display: flex; align-items: center; justify-content: space-between; height: 74px; }
.nav-logo img { height: 52px; width: auto; }
.nav-links { display: flex; gap: 6px; align-items: center; list-style: none; }
.nav-links a {
  color: var(--navy); font-weight: 600; padding: 10px 14px; border-radius: 8px;
  font-size: 0.98rem;
}
.nav-links a:hover { background: var(--offwhite); text-decoration: none; }
.nav-links a.activo { color: var(--orange-dark); }
.nav-links .btn { color: var(--white); padding: 10px 20px; }
.nav-links .btn:hover { color: var(--white); }
.nav-toggle {
  display: none; background: none; border: none; cursor: pointer; padding: 8px;
}
.nav-toggle span { display: block; width: 26px; height: 3px; background: var(--navy); border-radius: 3px; margin: 5px 0; transition: .3s; }

/* ---------- Hero ---------- */
.hero {
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-dark) 100%);
  color: var(--white); position: relative; overflow: hidden;
}
.hero::after {
  content: ""; position: absolute; right: -80px; top: -80px; width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(242,100,48,.18) 0%, transparent 70%);
}
.hero-inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; padding: 84px 0; position: relative; z-index: 2; }
.hero h1 { color: var(--white); font-size: clamp(2.1rem, 4.6vw, 3.4rem); margin-bottom: 20px; }
.hero h1 .destaca { color: var(--orange); }
.hero p { color: var(--slate); font-size: 1.15rem; margin-bottom: 32px; max-width: 540px; }
.hero-cta { display: flex; gap: 14px; flex-wrap: wrap; }
.hero-card {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px; padding: 34px; backdrop-filter: blur(4px);
}
.hero-card h3 { color: var(--white); margin-bottom: 18px; font-size: 1.15rem; }
.hero-list { list-style: none; }
.hero-list li { color: var(--slate); padding: 9px 0 9px 30px; position: relative; border-bottom: 1px solid rgba(255,255,255,.08); }
.hero-list li:last-child { border-bottom: none; }
.hero-list li::before { content: "✓"; position: absolute; left: 0; color: var(--orange); font-weight: 800; }

/* ---------- Franja de sectores ---------- */
.strip { background: var(--orange); color: var(--white); }
.strip-inner { display: flex; flex-wrap: wrap; justify-content: space-around; gap: 16px; padding: 22px 0; text-align: center; }
.strip-inner span { font-weight: 700; letter-spacing: .5px; }

/* ---------- Secciones ---------- */
section.pad { padding: 76px 0; }
.bg-soft { background: var(--offwhite); }

/* ---------- Grid de tarjetas ---------- */
.grid { display: grid; gap: 24px; }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }

.card {
  background: var(--white); border: 1px solid var(--lightgray); border-radius: var(--radius);
  padding: 30px; transition: transform .18s ease, box-shadow .18s ease;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.card .ico {
  width: 52px; height: 52px; border-radius: 12px; background: var(--offwhite);
  display: flex; align-items: center; justify-content: center; margin-bottom: 18px;
  border: 1px solid var(--lightgray);
}
.card .paso {
  width: 46px; height: 46px; border-radius: 50%; background: var(--orange);
  color: var(--white); font-weight: 800; font-size: 1.25rem; margin-bottom: 18px;
  display: flex; align-items: center; justify-content: center;
}
.card .ico svg { width: 28px; height: 28px; }
.card h3 { font-size: 1.2rem; margin-bottom: 10px; }
.card p { color: var(--steel); font-size: 0.98rem; }

/* ---------- Producto ---------- */
.prod {
  background: var(--white); border: 1px solid var(--lightgray); border-radius: var(--radius);
  overflow: hidden; transition: transform .18s ease, box-shadow .18s ease;
}
.prod:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.prod-top {
  height: 150px; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-dark) 100%);
}
.prod-top svg { width: 62px; height: 62px; }
.prod-body { padding: 20px 22px 24px; }
.prod-body h3 { font-size: 1.1rem; margin-bottom: 6px; }
.prod-body p { color: var(--steel); font-size: 0.92rem; }

/* ---------- Datos / estadísticas ---------- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.stat { text-align: center; }
.stat .num { font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 800; color: var(--orange); }
.stat .lbl { color: var(--steel); font-weight: 600; font-size: 0.95rem; }

/* ---------- CTA final ---------- */
.cta {
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-dark) 100%);
  color: var(--white); text-align: center; border-radius: 18px; padding: 56px 32px;
}
.cta h2 { color: var(--white); font-size: clamp(1.6rem, 3.5vw, 2.3rem); margin-bottom: 14px; }
.cta p { color: var(--slate); max-width: 560px; margin: 0 auto 28px; }

/* ---------- Empresa / contenido ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.split p { color: var(--steel); margin-bottom: 16px; }
.valor-list { list-style: none; }
.valor-list li { padding: 14px 0 14px 40px; position: relative; border-bottom: 1px solid var(--lightgray); }
.valor-list li:last-child { border-bottom: none; }
.valor-list li strong { color: var(--navy); display: block; }
.valor-list li::before {
  content: ""; position: absolute; left: 0; top: 18px; width: 22px; height: 22px;
  background: var(--orange); border-radius: 6px;
}
.panel {
  background: var(--offwhite); border: 1px solid var(--lightgray);
  border-radius: 16px; padding: 34px;
}
.panel h3 { margin-bottom: 18px; }
.dato-row { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px dashed var(--lightgray); }
.dato-row:last-child { border-bottom: none; }
.dato-row span:first-child { color: var(--steel); font-weight: 600; }
.dato-row span:last-child { color: var(--navy); font-weight: 700; text-align: right; }

/* ---------- Contacto ---------- */
.contacto-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.info-item { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 26px; }
.info-item .ico {
  flex: 0 0 46px; width: 46px; height: 46px; border-radius: 10px; background: var(--navy);
  display: flex; align-items: center; justify-content: center;
}
.info-item .ico svg { width: 22px; height: 22px; }
.info-item h4 { color: var(--navy); font-size: 1.02rem; margin-bottom: 3px; }
.info-item p { color: var(--steel); font-size: 0.98rem; }
form label { display: block; font-weight: 600; color: var(--navy); margin-bottom: 6px; font-size: 0.95rem; }
form .campo { margin-bottom: 18px; }
form input, form textarea, form select {
  width: 100%; padding: 12px 14px; border: 1px solid var(--slate); border-radius: 8px;
  font-family: var(--font); font-size: 1rem; color: var(--ink); background: var(--white);
}
form input:focus, form textarea:focus, form select:focus { outline: 2px solid var(--orange); border-color: var(--orange); }
form textarea { min-height: 130px; resize: vertical; }
.form-nota { font-size: 0.85rem; color: var(--steel); margin-top: 10px; }
.mapa-box {
  border: 1px solid var(--lightgray); border-radius: 16px; overflow: hidden;
  background: var(--offwhite); padding: 34px; text-align: center;
}
.mapa-box svg { width: 60px; height: 60px; margin: 0 auto 16px; }

/* ---------- Page header (páginas internas) ---------- */
.page-head {
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-dark) 100%);
  color: var(--white); padding: 66px 0; text-align: center;
}
.page-head h1 { color: var(--white); font-size: clamp(2rem, 4.5vw, 3rem); margin-bottom: 10px; }
.page-head p { color: var(--slate); max-width: 640px; margin: 0 auto; }
.crumbs { color: var(--slate); font-size: 0.9rem; margin-bottom: 18px; }
.crumbs a { color: var(--orange); }

/* ---------- Footer ---------- */
.site-footer { background: var(--navy-dark); color: var(--slate); padding: 56px 0 24px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; margin-bottom: 40px; }
.footer-grid img { height: 44px; margin-bottom: 16px; }
.footer-grid p { font-size: 0.95rem; }
.footer-grid h4 { color: var(--white); margin-bottom: 16px; font-size: 1.05rem; }
.footer-grid ul { list-style: none; }
.footer-grid ul li { margin-bottom: 10px; }
.footer-grid ul a { color: var(--slate); font-size: 0.95rem; }
.footer-grid ul a:hover { color: var(--white); }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.1); padding-top: 22px; text-align: center;
  font-size: 0.85rem; color: var(--steel);
}

/* ============================================================
   Catálogo / Marketplace + Carrito de cotización
   ============================================================ */

/* Botón de carrito en el header */
.cart-btn {
  position: relative; background: var(--offwhite); border: 1px solid var(--lightgray);
  border-radius: 10px; width: 46px; height: 46px; cursor: pointer; margin-left: 12px;
  display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
  order: 2; /* carrito al extremo derecho del menú */
}
/* Orden del header: logo | menú | carrito (| botón móvil) */
.site-header .nav-links { order: 1; margin-left: auto; }
.site-header .nav-toggle { order: 3; }
.cart-btn:hover { background: var(--lightgray); }
.cart-btn svg { width: 22px; height: 22px; stroke: var(--navy); }
.cart-btn .badge {
  position: absolute; top: -7px; right: -7px; min-width: 20px; height: 20px; padding: 0 5px;
  background: var(--orange); color: #fff; border-radius: 10px; font-size: 0.72rem; font-weight: 800;
  display: flex; align-items: center; justify-content: center; border: 2px solid #fff;
}
.cart-btn .badge:empty, .cart-btn .badge[data-n="0"] { display: none; }

/* Barra de filtros */
.cat-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 30px; }
.cat-filtros { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-f {
  border: 1px solid var(--lightgray); background: #fff; color: var(--navy); font-weight: 600;
  padding: 9px 16px; border-radius: 30px; cursor: pointer; font-size: 0.92rem; font-family: var(--font);
  transition: all .15s ease;
}
.chip-f:hover { border-color: var(--navy); }
.chip-f.activo { background: var(--navy); color: #fff; border-color: var(--navy); }
.cat-buscar {
  margin-left: auto; border: 1px solid var(--slate); border-radius: 30px; padding: 10px 16px;
  font-family: var(--font); font-size: 0.95rem; min-width: 220px;
}
.cat-buscar:focus { outline: 2px solid var(--orange); border-color: var(--orange); }
.cat-count { color: var(--steel); font-size: 0.9rem; margin-bottom: 18px; }

/* Grilla de productos */
.cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.pcard {
  background: #fff; border: 1px solid var(--lightgray); border-radius: 12px; overflow: hidden;
  cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; display: flex; flex-direction: column;
}
.pcard:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
/* Marco fijo 3:4 para todas las prendas: misma altura de tarjeta que las camisas */
.pcard-img { background: #fff; aspect-ratio: 3 / 4; position: relative; overflow: hidden; }
.pcard-img img { position: absolute; inset: 12px; width: calc(100% - 24px); height: calc(100% - 24px); object-fit: contain; }
.pcard-body { padding: 14px 16px 18px; border-top: 1px solid var(--lightgray); }
.pcard .badge-cat {
  display: inline-block; font-size: 0.7rem; font-weight: 700; letter-spacing: .5px; text-transform: uppercase;
  color: var(--orange-dark); background: #E9F5EE; border-radius: 6px; padding: 2px 8px; margin-bottom: 8px;
}
.pcard h3 { font-size: 1.02rem; margin-bottom: 2px; line-height: 1.25; }
.pcard .sub { color: var(--steel); font-size: 0.85rem; margin-bottom: 10px; }
.swatches { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.sw {
  width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(0,0,0,.18); flex: 0 0 auto;
}
.swatches .mas { font-size: 0.78rem; color: var(--steel); }

/* Modal de producto */
.modal-ov {
  position: fixed; inset: 0; background: rgba(12,42,99,.55); z-index: 100; display: none;
  align-items: center; justify-content: center; padding: 20px;
}
.modal-ov.abierto { display: flex; }
.modal {
  background: #fff; border-radius: 16px; max-width: 880px; width: 100%; max-height: 92vh; overflow: auto;
  display: grid; grid-template-columns: 1fr 1fr; position: relative;
}
.modal-close {
  position: absolute; top: 12px; right: 12px; z-index: 2; width: 38px; height: 38px; border-radius: 50%;
  border: none; background: var(--offwhite); cursor: pointer; font-size: 1.3rem; color: var(--navy); line-height: 1;
}
.modal-close:hover { background: var(--lightgray); }
.modal-img { background: var(--offwhite); display: flex; align-items: center; justify-content: center; padding: 26px; }
.modal-img img { max-height: 460px; width: auto; object-fit: contain; }
.modal-info { padding: 30px 28px; }
.modal-info .badge-cat { display: inline-block; font-size:0.7rem; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:var(--orange-dark); background:#E9F5EE; border-radius:6px; padding:2px 8px; margin-bottom:10px; }
.modal-info h2 { font-size: 1.5rem; margin-bottom: 2px; }
.modal-info .sub { color: var(--steel); margin-bottom: 14px; }
.modal-info .desc { color: var(--ink); font-size: 0.95rem; margin-bottom: 16px; }
.modal-info .tela { color: var(--steel); font-size: 0.9rem; margin-bottom: 20px; }
.campo-sel { margin-bottom: 18px; }
.campo-sel > label { display: block; font-weight: 700; color: var(--navy); font-size: 0.9rem; margin-bottom: 8px; }
.opt-colores { display: flex; gap: 10px; flex-wrap: wrap; }
.opt-color {
  display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--lightgray); border-radius: 30px;
  padding: 5px 12px 5px 6px; cursor: pointer; font-size: 0.85rem; color: var(--navy); background: #fff;
}
.opt-color .sw { width: 16px; height: 16px; }
.opt-color.sel { border-color: var(--navy); background: var(--offwhite); font-weight: 600; }
.opt-tallas { display: flex; gap: 8px; flex-wrap: wrap; }
.opt-talla {
  min-width: 42px; text-align: center; border: 1px solid var(--lightgray); border-radius: 8px; padding: 8px 10px;
  cursor: pointer; font-weight: 600; color: var(--navy); background: #fff; font-size: 0.9rem;
}
.opt-talla.sel { background: var(--navy); color: #fff; border-color: var(--navy); }
.cant-row { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.cant-row input { width: 90px; padding: 10px; border: 1px solid var(--slate); border-radius: 8px; font-size: 1rem; font-family: var(--font); }
.modal-nota { font-size: 0.82rem; color: var(--steel); margin-top: 12px; }
.aviso-sel { color: var(--orange-dark); font-size: 0.85rem; font-weight: 600; margin-top: 10px; min-height: 1em; }

/* Drawer del carrito */
.drawer-ov { position: fixed; inset: 0; background: rgba(12,42,99,.5); z-index: 110; display: none; }
.drawer-ov.abierto { display: block; }
.drawer {
  position: fixed; top: 0; right: 0; height: 100%; width: 400px; max-width: 92vw; background: #fff; z-index: 120;
  transform: translateX(100%); transition: transform .28s ease; display: flex; flex-direction: column; box-shadow: var(--shadow-lg);
}
.drawer.abierto { transform: translateX(0); }
.drawer-head { padding: 20px 22px; border-bottom: 1px solid var(--lightgray); display: flex; align-items: center; justify-content: space-between; }
.drawer-head h3 { font-size: 1.15rem; }
.drawer-head button { background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--navy); line-height: 1; }
.drawer-body { flex: 1; overflow: auto; padding: 16px 22px; }
.drawer-vacio { color: var(--steel); text-align: center; padding: 40px 0; }
.citem { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--lightgray); align-items: flex-start; }
.citem img { width: 54px; height: 68px; object-fit: contain; background: var(--offwhite); border-radius: 8px; flex: 0 0 auto; }
.citem .ci-info { flex: 1; font-size: 0.88rem; min-width: 0; }
.citem .ci-info b { color: var(--navy); display: block; font-size: 0.95rem; }
.citem .ci-meta { color: var(--steel); }
.citem .ci-del {
  flex: 0 0 auto; width: 34px; height: 34px; border-radius: 8px; border: 1px solid var(--lightgray);
  background: #fff; color: var(--steel); cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: all .15s ease;
}
.citem .ci-del svg { width: 17px; height: 17px; }
.citem .ci-del:hover { background: #FDEDEC; border-color: #E6A6A1; color: #C0392B; }
.drawer-foot { border-top: 1px solid var(--lightgray); padding: 18px 22px; }
.drawer-foot .tot { display: flex; justify-content: space-between; font-weight: 700; color: var(--navy); margin-bottom: 14px; }
.drawer-foot .campo { margin-bottom: 10px; }
.drawer-foot input, .drawer-foot textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--slate); border-radius: 8px; font-family: var(--font); font-size: 0.92rem; }
.drawer-foot .mini { font-size: 0.78rem; color: var(--steel); margin: 8px 0 0; }
.drawer-foot .foot-acciones { display: flex; gap: 10px; align-items: stretch; }
.drawer-foot .foot-acciones .btn-primary { flex: 1; }
.drawer-foot .btn-vaciar-ico {
  flex: 0 0 auto; width: 50px; border-radius: var(--radius); border: 1.5px solid #E6A6A1; background: #FDEDEC;
  color: #C0392B; cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: all .15s ease;
}
.drawer-foot .btn-vaciar-ico svg { width: 20px; height: 20px; }
.drawer-foot .btn-vaciar-ico:hover { background: #C0392B; border-color: #C0392B; color: #fff; }
.drawer-foot .mini { margin-top: 10px; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .nav-toggle { display: block; }
  .nav-links {
    position: absolute; top: 74px; left: 0; right: 0; background: var(--white);
    flex-direction: column; align-items: stretch; gap: 0; padding: 10px 16px 20px;
    border-bottom: 1px solid var(--lightgray); box-shadow: var(--shadow);
    transform: translateY(-140%); transition: transform .3s ease; z-index: 40;
  }
  .nav-links.abierto { transform: translateY(0); }
  .nav-links a { padding: 14px 10px; border-bottom: 1px solid var(--lightgray); }
  .nav-links .btn { text-align: center; margin-top: 10px; }
  .hero-inner, .split, .contacto-grid { grid-template-columns: 1fr; }
  .hero-inner { padding: 56px 0; gap: 34px; }
  .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .stats { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .footer-grid { grid-template-columns: 1fr; gap: 30px; }
  .cat-grid { grid-template-columns: repeat(3, 1fr); }
  .modal { grid-template-columns: 1fr; }
  .modal-img { max-height: 320px; }
  .cart-btn { margin-left: auto; margin-right: 10px; } /* móvil: carrito a la derecha, junto al menú */
}
@media (max-width: 560px) {
  .grid-3, .grid-4, .grid-2 { grid-template-columns: 1fr; }
  section.pad { padding: 54px 0; }
  .hero-cta .btn, .cta .btn { width: 100%; text-align: center; }
  .cat-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .cat-buscar { margin-left: 0; width: 100%; min-width: 0; }
  .pcard-body { padding: 12px; }
}

/* Plan B de envío: copiar cotización/mensaje si no se abre el correo */
.plan-b { margin-top: 12px; padding: 12px; background: var(--offwhite); border: 1px dashed var(--slate); border-radius: var(--radius); font-size: 0.88rem; }
.plan-b p { margin: 0 0 8px; color: var(--ink); }
.plan-b .btn { width: 100%; }
.plan-b-ok { display: block; margin-top: 6px; color: var(--orange-dark); font-weight: 700; font-size: 0.85rem; }
.plan-b[hidden] { display: none; }

/* ---------- Catálogo por líneas y tipos (2026-11-08) ---------- */
.cat-filtros { flex-direction: column; align-items: flex-start; gap: 10px; }
.fila-f { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.lbl-f { font-size: 0.75rem; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--steel); min-width: 48px; }
.chip-linea.activo { background: var(--orange); border-color: var(--orange); }
.cat-secciones { display: flex; flex-direction: column; gap: 44px; }
.cat-seccion-tit { font-size: 1.35rem; color: var(--navy); margin-bottom: 16px; padding-bottom: 8px; border-bottom: 2px solid var(--lightgray); display: flex; align-items: baseline; gap: 10px; }
.cat-seccion-tit span { font-size: 0.85rem; color: var(--steel); font-weight: 600; }
.cat-vacio { color: var(--steel); }
.pcard-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; }
.pcard .pcard-tags .badge-cat { margin-bottom: 0; }
.tag-linea { font-size: 0.68rem; font-weight: 700; color: var(--navy); background: var(--offwhite); border: 1px solid var(--lightgray); border-radius: 6px; padding: 1px 7px; }
.pcard:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }
/* Colores: la foto cambia solo al pinchar */
.sw-btn { background: none; border: 2px solid transparent; border-radius: 50%; padding: 2px; cursor: pointer; line-height: 0; }
.sw-btn .sw { display: block; width: 20px; height: 20px; }
.sw-btn:hover { border-color: var(--slate); }
.sw-btn.sel { border-color: var(--navy); }
.sw-btn:focus-visible { outline: 2px solid var(--orange); outline-offset: 1px; }
.pcard-nota { font-size: 0.75rem; color: var(--steel); margin-top: 6px; min-height: 1.2em; line-height: 1.3; }
.pm-nota { font-size: 0.8rem; color: var(--steel); margin: 6px 0 0; min-height: 1em; }
/* Especiales a pedido */
.esp-panel { background: var(--offwhite); border: 1px dashed var(--slate); border-radius: 12px; padding: 24px; }
.esp-panel > p { color: var(--steel); margin-bottom: 14px; max-width: 70ch; }
.esp-lista { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-bottom: 18px; }
.esp-lista li { background: #fff; border: 1px solid var(--lightgray); border-radius: 10px; padding: 14px; }
.esp-lista b { display: block; color: var(--navy); margin-bottom: 4px; }
.esp-lista span { font-size: 0.88rem; color: var(--steel); }
