/* ==========================================================
   Blancomar Nautica — Bitacora V2 Design System
   Extracted from prototype, production-ready
   ========================================================== */

/* ========== TOKENS ========== */
:root{
  --navy:#1f3d87;
  --navy-ink:#14266b;
  --navy-dark:#0d1940;
  --navy-soft:#4170be;
  --ink:#0e1530;
  --ink-2:#1a2338;
  --muted:#6b7280;
  --muted-2:#9ca3af;
  --line:#e5e7eb;
  --line-2:#f1f3f6;
  --bg:#f7f9fc;
  --bg-2:#eef2f8;
  --paper:#f4efe7;
  --paper-2:#ebe3d3;
  --gold:#b8935a;
  --green:#1a7f4a;
  --red:#c0392b;
  --whatsapp:#25D366;
  --r-sm:6px; --r-md:8px; --r-lg:12px;
  --shadow-1:0 1px 3px rgba(15,23,42,.04),0 1px 2px rgba(15,23,42,.03);
  --shadow-2:0 6px 16px rgba(15,23,42,.08),0 2px 6px rgba(15,23,42,.04);

  /* density (comfortable by default) */
  --pad-section:96px;
  --pad-card:20px;
  --gap-grid:24px;
}

/* ========== DENSITY VARIANTS ========== */
[data-density="compact"]{ --pad-section:56px; --pad-card:14px; --gap-grid:16px; }
[data-density="spacious"]{ --pad-section:140px; --pad-card:28px; --gap-grid:32px; }

/* ========== DARK THEME ========== */
[data-theme="dark"]{
  --ink:#f2f4f8;
  --ink-2:#e8ebf2;
  --muted:#9aa3b2;
  --muted-2:#6b7280;
  --line:#242a3d;
  --line-2:#1a1f2f;
  --bg:#0b0f1e;
  --bg-2:#111628;
  --paper:#15192a;
  --paper-2:#1a1e30;
  --navy:#6a8dd8;
  --navy-ink:#8ba8e4;
  --navy-soft:#8aa7e0;
}

/* ========== BASE RESET ========== */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
  font-size:16px;
}
[data-theme="dark"] body{ background:#080b16; }
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;background:none;border:none;color:inherit}
input,select,textarea{font-family:inherit}

/* ========== UTILITIES ========== */
.container{ max-width:1280px; margin:0 auto; padding:0 32px }
@media (max-width:560px){ .container{ padding:0 20px } }

.mono{ font-family:'JetBrains Mono',ui-monospace,monospace; letter-spacing:.02em }
.eyebrow{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted);
}
.hairline{ height:1px; background:var(--line); }

.placeholder{
  background:
    repeating-linear-gradient(135deg, rgba(14,21,48,.04) 0 1px, transparent 1px 10px),
    var(--bg-2);
  display:grid; place-items:center;
  color:var(--muted-2);
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10px; letter-spacing:.12em; text-transform:uppercase;
}
.placeholder-logo{
  width:80%; max-width:200px; height:auto;
  opacity:.35; filter:grayscale(1);
  object-fit:contain;
}
[data-theme="dark"] .placeholder{
  background:
    repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 1px, transparent 1px 10px),
    var(--bg-2);
}

/* Imagery treatment modes */
[data-imagery="contextual"] .product-image .placeholder{
  background:
    radial-gradient(ellipse at 30% 20%, rgba(31,61,135,.12), transparent 60%),
    repeating-linear-gradient(180deg, rgba(14,21,48,.03) 0 1px, transparent 1px 3px),
    linear-gradient(180deg, #cfd9ee, #e7eef8);
}
[data-imagery="lifestyle"] .product-image .placeholder{
  background:
    radial-gradient(ellipse at 60% 40%, rgba(184,147,90,.3), transparent 65%),
    radial-gradient(ellipse at 20% 80%, rgba(31,61,135,.35), transparent 55%),
    linear-gradient(180deg, #b4c3df 0%, #6f85b4 100%);
  color:rgba(255,255,255,.75);
}

/* WhatsApp float */
.wa-float{
  position:fixed; right:20px; bottom:20px; z-index:55;
  width:56px; height:56px; border-radius:50%;
  background:var(--whatsapp); color:#fff; display:grid; place-items:center;
  box-shadow:0 8px 24px rgba(37,211,102,.35);
  transition:transform .2s;
}
.wa-float:hover{ transform:scale(1.06) }

/* ========== BITACORA — BASE ========== */
.bit{ font-family:'Inter',sans-serif; color:var(--ink); }
.bit .bit-display{ font-family:'Fraunces',Georgia,serif; font-variation-settings:"SOFT" 30, "WONK" 0, "opsz" 144; font-weight:400; }
.bit .bit-mono{ font-family:'JetBrains Mono',ui-monospace,monospace; }

/* ---- Header ---- */
.bit-header{
  border-bottom:1px solid var(--line); background:var(--bg);
  position:sticky; top:0; z-index:40;
}
.bit-header-top{
  background:var(--navy-dark); color:#fff;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.06em;
}
.bit-header-top .container{
  display:flex; justify-content:space-between; align-items:center; padding:8px 32px;
}
.bit-header-top a{ opacity:.8; display:inline-flex; align-items:center; gap:6px; }
.bit-header-top a + a{ margin-left:22px }
.bit-header-top a:hover{ opacity:1 }

.bit-header-main{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  padding:18px 32px;
}
.bit-logo{
  font-family:'Fraunces',serif; font-weight:500; font-size:22px;
  letter-spacing:-.01em; color:var(--ink); display:inline-flex; align-items:center; gap:10px;
  text-decoration:none;
}
.bit-logo-img{ height:36px; width:auto; display:block; }
.bit-logo em{ font-style:italic; font-weight:400; color:var(--navy); }
.bit-logo sup{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.08em;
  color:var(--muted); font-weight:400; text-transform:uppercase;
  margin-left:4px; transform:translateY(-2px);
}
.bit-nav{ display:flex; justify-content:center; gap:2px; }
.bit-nav a{
  padding:8px 18px; font-size:13px; color:var(--muted);
  border-radius:999px; transition:.2s;
}
.bit-nav a:hover{ color:var(--ink) }
.bit-nav a.on{ color:var(--ink); background:var(--bg-2); }
.bit-head-right{ display:flex; justify-content:flex-end; align-items:center; gap:14px; font-size:12px; }
.bit-search-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px; border:1px solid var(--line); border-radius:999px;
  color:var(--muted); font-size:12px;
}
.bit-search-btn kbd{
  font-family:'JetBrains Mono',monospace; font-size:10px;
  border:1px solid var(--line-2); border-radius:4px; padding:1px 5px;
  color:var(--muted-2);
}
.bit-search-btn{ cursor:pointer; transition:color .15s, border-color .15s; }
.bit-search-btn:hover{ color:var(--ink); border-color:var(--ink-2); }

/* ---- Overlay del buscador ---- */
.bit-search-overlay{
  display:none;
  position:fixed; inset:0; z-index:100;
  background:rgba(14,21,48,.55);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  align-items:flex-start; justify-content:center;
  padding:14vh 20px 20px;
  opacity:0; transition:opacity .2s ease;
}
.bit-search-overlay.open{ display:flex; opacity:1; }
.bit-search-modal{
  background:var(--bg); border-radius:14px;
  width:100%; max-width:640px;
  box-shadow:0 24px 60px rgba(14,21,48,.25), 0 4px 12px rgba(14,21,48,.1);
  overflow:hidden;
  transform:translateY(-8px); transition:transform .25s ease;
}
.bit-search-overlay.open .bit-search-modal{ transform:translateY(0); }
.bit-search-form{
  display:flex; align-items:center; gap:12px;
  padding:14px 18px; border-bottom:1px solid var(--line);
}
.bit-search-ico{ flex-shrink:0; color:var(--muted-2); }
.bit-search-input{
  flex:1; min-width:0; border:none; outline:none; background:transparent;
  font-family:'Fraunces',serif; font-size:22px; font-weight:340; color:var(--ink);
  padding:6px 0; letter-spacing:-.005em;
}
.bit-search-input::placeholder{ color:var(--muted-2); font-style:italic; }
.bit-search-close{
  background:transparent; border:none; cursor:pointer;
  width:32px; height:32px; border-radius:8px;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:24px; line-height:1; color:var(--muted);
  transition:background .15s, color .15s;
}
.bit-search-close:hover{ background:var(--bg-2); color:var(--ink); }
.bit-search-hint{
  display:flex; justify-content:space-between; gap:14px;
  padding:10px 18px; background:var(--paper);
  font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.06em;
  color:var(--muted); text-transform:uppercase; flex-wrap:wrap;
}
.bit-search-hint kbd{
  font-family:inherit; font-size:10px;
  background:var(--bg); border:1px solid var(--line-2); border-radius:4px;
  padding:2px 6px; color:var(--ink-2); margin:0 2px;
}
@media (max-width:560px){
  .bit-search-overlay{ padding:8vh 14px 14px; }
  .bit-search-modal{ border-radius:12px; }
  .bit-search-input{ font-size:18px; }
  .bit-search-form{ padding:12px 14px; gap:10px; }
  .bit-search-hint{ padding:9px 14px; font-size:9.5px; }
}

/* ---- Mobile menu button ---- */
.bit-mobile-menu-btn{
  display:none;
  align-items:center; justify-content:center;
  width:40px; height:40px;
  border:1px solid var(--line); border-radius:8px;
  background:transparent; color:var(--ink);
  cursor:pointer;
  position:relative;
  z-index:60;
}
.bit-mobile-menu-btn span{
  display:block; width:18px; height:2px;
  background:currentColor; border-radius:1px;
  position:relative;
  transition:background .2s;
}
.bit-mobile-menu-btn span::before,
.bit-mobile-menu-btn span::after{
  content:""; display:block; width:18px; height:2px;
  background:currentColor; border-radius:1px;
  position:absolute; left:0;
  transition:transform .25s ease, top .25s ease;
}
.bit-mobile-menu-btn span::before{ top:-6px; }
.bit-mobile-menu-btn span::after{ top:6px; }

/* ---- Mobile overlay ---- */
.bit-mobile-overlay{
  display:none;
  position:fixed; inset:0; z-index:49;
  background:rgba(14,21,48,.45);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0;
  transition:opacity .25s ease;
}
.bit-mobile-overlay.open{
  display:block;
  opacity:1;
}

/* ---- Hero ---- */
.bit-hero{
  padding:64px 0 80px;
  border-bottom:1px solid var(--line);
  position:relative; background:var(--bg);
  overflow:hidden;
}
.bit-hero .container{ position:relative; }
.bit-hero-grid{
  display:grid; grid-template-columns: 7fr 5fr; gap:48px; align-items:end;
}
.bit-hero-slug{
  display:grid; grid-template-columns: 110px 1fr; gap:20px;
  margin-bottom:40px; align-items:start;
}
.bit-hero-slug .n{
  font-family:'JetBrains Mono',monospace; font-size:11px;
  letter-spacing:.18em; color:var(--muted); text-transform:uppercase;
  padding-top:8px; border-top:1px solid var(--ink);
}
.bit-hero-slug .t{
  font-family:'JetBrains Mono',monospace; font-size:11px;
  letter-spacing:.06em; color:var(--muted); line-height:1.5;
  max-width:360px;
}
.bit-hero h1{
  font-family:'Fraunces',Georgia,serif;
  font-variation-settings:"SOFT" 40, "opsz" 144;
  font-weight:330;
  font-size:clamp(3rem, 7vw, 7.5rem);
  line-height:.92;
  letter-spacing:-.035em;
  color:var(--ink);
}
.bit-hero h1 .sep{ display:block; }
.bit-hero h1 em{ font-style:italic; font-weight:400; color:var(--navy); }
.bit-hero h1 .ornament{
  display:inline-block; width:48px; height:1px; background:var(--ink);
  vertical-align:middle; margin:0 18px 14px 2px;
}
.bit-hero-side{
  padding-bottom:8px;
  border-left:1px solid var(--line);
  padding-left:36px;
}
.bit-hero-side p{
  font-size:15px; line-height:1.65; color:var(--ink-2); margin-bottom:22px;
  max-width:340px;
}
.bit-hero-side .cta-row{ display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }

.bit-btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:13px 22px; border-radius:999px;
  font-size:13px; letter-spacing:.02em; font-weight:500;
  background:var(--ink); color:var(--bg);
  border:1px solid var(--ink);
  transition:.2s;
}
.bit-btn:hover{ background:transparent; color:var(--ink); }
.bit-btn.ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.bit-btn.ghost:hover{ border-color:var(--ink); }
.bit-btn.wa{ background:var(--whatsapp); border-color:var(--whatsapp); color:#fff; }
.bit-btn.wa:hover{ background:#1ea955; border-color:#1ea955; color:#fff; }

/* ---- Faro — interactive lighthouse hero piece ---- */
.bit-faro{
  position:relative;
  aspect-ratio: 1/1;
  width:100%;
  max-width:340px;
  margin:0 auto;
  border:1px solid var(--line);
  background:
    linear-gradient(180deg, #0b1228 0%, #13214a 55%, #1d3b7a 75%, #2a5aa8 100%);
  overflow:hidden;
  border-radius:2px;
  cursor:pointer;
  user-select:none;
}
.bit-faro .stars{
  position:absolute; inset:0;
  background:
    radial-gradient(1px 1px at 14% 18%, #fff, transparent 60%),
    radial-gradient(1px 1px at 42% 10%, #e8ecff, transparent 60%),
    radial-gradient(1px 1px at 72% 22%, #fff, transparent 60%),
    radial-gradient(1px 1px at 88% 14%, #d9e3ff, transparent 60%),
    radial-gradient(1px 1px at 28% 32%, #fff, transparent 60%),
    radial-gradient(1px 1px at 58% 38%, #fff, transparent 60%),
    radial-gradient(1px 1px at 92% 40%, #fff, transparent 60%);
  opacity:.8;
  animation: bit-twinkle 3s ease-in-out infinite alternate;
}

.bit-faro .beam{
  position:absolute;
  left:50%; top:28%;
  width:200%; height:200%;
  transform-origin: 0% 0%;
  animation: bit-beam 6s linear infinite;
  pointer-events:none;
  mix-blend-mode:screen;
}
.bit-faro .beam::before, .bit-faro .beam::after{
  content:""; position:absolute;
  left:0; top:0;
  width:100%; height:80px;
  background:linear-gradient(90deg,
    rgba(255,240,200,.55) 0%,
    rgba(255,240,200,.25) 30%,
    rgba(255,240,200,.08) 60%,
    transparent 100%);
  transform-origin: 0 50%;
  filter: blur(4px);
}
.bit-faro .beam::before{ transform: translateY(-40px) rotate(-14deg); }
.bit-faro .beam::after{ transform: translateY(-40px) rotate(14deg); opacity:.7; }

.bit-faro .tower{
  position:absolute;
  left:50%; bottom:34%;
  transform:translateX(-50%);
  width:42px; height:120px;
  z-index:3;
}
.bit-faro .tower .body{
  position:absolute; left:50%; bottom:0;
  transform:translateX(-50%);
  width:100%; height:90px;
  background:
    repeating-linear-gradient(0deg, #f4efe7 0 8px, #c0392b 8px 16px);
  border-radius:3px 3px 0 0;
  box-shadow:inset -6px 0 0 rgba(0,0,0,.18), inset 4px 0 0 rgba(255,255,255,.06);
}
.bit-faro .tower .cap{
  position:absolute; left:50%; bottom:90px;
  transform:translateX(-50%);
  width:46px; height:10px;
  background:#0e1530;
  border-radius:2px;
}
.bit-faro .tower .lamp{
  position:absolute; left:50%; bottom:100px;
  transform:translateX(-50%);
  width:28px; height:18px;
  background:linear-gradient(180deg, #ffe9a8, #f7b538);
  border-radius:3px;
  box-shadow:0 0 18px rgba(255,220,140,.8), 0 0 38px rgba(255,200,100,.45);
  animation: bit-lamp 2.5s ease-in-out infinite alternate;
}
.bit-faro .tower .dome{
  position:absolute; left:50%; bottom:118px;
  transform:translateX(-50%);
  width:18px; height:12px;
  background:#0e1530;
  border-radius:9px 9px 0 0;
}
.bit-faro .tower .dome::after{
  content:""; position:absolute;
  left:50%; top:-6px; transform:translateX(-50%);
  width:2px; height:8px; background:#0e1530;
}

.bit-faro .sea{
  position:absolute; left:0; right:0; bottom:0;
  height:34%;
  background:linear-gradient(180deg, #13265a 0%, #0a1740 100%);
  overflow:hidden;
}
.bit-faro .wave{
  position:absolute; left:-50%; right:-50%;
  height:20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,.18) 0 30%, transparent 31%) 0 0/60px 20px repeat-x;
  opacity:.55;
}
.bit-faro .wave.w1{ bottom:72%; animation: bit-wave 7s linear infinite; }
.bit-faro .wave.w2{ bottom:52%; animation: bit-wave 9s linear infinite reverse; opacity:.4; transform:scale(1.4); }
.bit-faro .wave.w3{ bottom:28%; animation: bit-wave 11s linear infinite; opacity:.7; transform:scale(1.7); }
.bit-faro .wave.w4{ bottom:10%;  animation: bit-wave 14s linear infinite reverse; opacity:.5; transform:scale(2.2); }

.bit-faro .rock{
  position:absolute; left:50%; bottom:28%;
  transform:translateX(-50%);
  width:90px; height:18px;
  background:radial-gradient(ellipse at 50% 0%, #0e1530 0 60%, transparent 62%);
  z-index:2;
}

.bit-faro .coord{
  position:absolute; left:12px; top:12px; z-index:4;
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.18em;
  color:rgba(255,255,255,.55); text-transform:uppercase;
  line-height:1.6;
}
.bit-faro .coord b{ color:rgba(255,255,255,.9); font-weight:500; }
.bit-faro .caption{
  position:absolute; right:12px; bottom:12px; z-index:4;
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.16em;
  color:rgba(255,255,255,.65); text-transform:uppercase;
  text-align:right; line-height:1.6;
}
.bit-faro .caption em{ color:#ffe9a8; font-style:normal; }
.bit-faro .toggle{
  position:absolute; left:50%; bottom:12px; transform:translateX(-50%); z-index:4;
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 10px; border-radius:999px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.14em;
  color:#fff; text-transform:uppercase;
  backdrop-filter: blur(6px);
  cursor:pointer;
}
.bit-faro.night .beam{ animation-duration:4s }
.bit-faro.calm .wave{ animation-duration: 14s !important; }
.bit-faro.calm .wave.w3, .bit-faro.calm .wave.w4{ opacity:.25 }
.bit-faro.storm .wave{ animation-duration: 3s !important; }
.bit-faro.storm .wave{ opacity:.85 }

/* Layout slot inside hero side */
.bit-hero-side .bit-faro-slot{ margin-bottom:24px; }

/* Hero background ornament */
.bit-hero-coord{
  position:absolute; right:32px; top:60px;
  font-family:'JetBrains Mono',monospace; font-size:10px;
  letter-spacing:.18em; color:var(--muted); text-align:right;
  line-height:1.9;
}
.bit-hero-coord span{ color:var(--muted-2) }

/* ---- Stats strip ---- */
.bit-stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--bg);
}
.bit-stat{
  padding:26px 28px;
  border-right:1px solid var(--line);
  display:flex; flex-direction:column; gap:6px;
}
.bit-stat:last-child{ border-right:none }
.bit-stat .num{
  font-family:'Fraunces',Georgia,serif; font-weight:300;
  font-size:42px; letter-spacing:-.02em; line-height:1;
  color:var(--ink);
}
.bit-stat .num em{ font-style:italic; color:var(--navy); }
.bit-stat .lbl{
  font-family:'JetBrains Mono',monospace; font-size:10px;
  letter-spacing:.18em; text-transform:uppercase; color:var(--muted);
}

/* ---- Section header ---- */
.bit-section{ padding:var(--pad-section) 0; }
.bit-sec-head{
  display:grid; grid-template-columns: 110px 1fr auto; gap:20px;
  align-items:end; margin-bottom:48px;
  padding-bottom:18px; border-bottom:1px solid var(--line);
}
.bit-sec-head .n{
  font-family:'JetBrains Mono',monospace; font-size:11px;
  letter-spacing:.18em; color:var(--muted); text-transform:uppercase;
}
.bit-sec-head h2{
  font-family:'Fraunces',Georgia,serif; font-weight:340;
  font-size:clamp(2rem, 3.6vw, 3.6rem); line-height:1; letter-spacing:-.025em;
  color:var(--ink);
}
.bit-sec-head h2 em{ font-style:italic; color:var(--navy); font-weight:360; }
.bit-sec-head .aside{
  font-family:'JetBrains Mono',monospace; font-size:11px;
  letter-spacing:.12em; color:var(--muted); text-align:right;
  max-width:260px; line-height:1.7;
}
.bit-sec-head .aside a{ border-bottom:1px solid currentColor; padding-bottom:1px; }
.bit-sec-head .aside a:hover{ color:var(--ink) }

/* ---- Trust — editorial ledger ---- */
.bit-trust{
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.bit-trust-item{
  padding:32px 28px; border-right:1px solid var(--line);
  display:flex; flex-direction:column; gap:10px;
}
.bit-trust-item:last-child{ border-right:none }
.bit-trust-item .n{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em;
  color:var(--muted-2); text-transform:uppercase;
}
.bit-trust-item h4{
  font-family:'Fraunces',Georgia,serif; font-weight:400;
  font-size:22px; line-height:1.15; letter-spacing:-.01em; color:var(--ink);
}
.bit-trust-item p{
  font-size:13px; color:var(--muted); line-height:1.6;
}

/* ---- Brand marks — official distributor ---- */
.bit-brands{
  padding:48px 0; background:var(--paper); border-top:1px solid var(--paper-2);
  border-bottom:1px solid var(--paper-2);
}
[data-theme="dark"] .bit-brands{ background:var(--paper); border-color:var(--line); }
.bit-brands .container{
  display:grid; grid-template-columns: 1fr 2.2fr; gap:48px; align-items:center;
}
.bit-brands-intro .eyebrow{ margin-bottom:10px; display:block; }
.bit-brands-intro h3{
  font-family:'Fraunces',serif; font-weight:360; font-style:italic;
  font-size:28px; line-height:1.15; letter-spacing:-.01em; color:var(--ink);
}
.bit-brand-row{
  display:grid; grid-template-columns:repeat(3,1fr); gap:32px;
}
.bit-brand{
  padding:20px 0; border-top:1px solid rgba(14,21,48,.15);
}
[data-theme="dark"] .bit-brand{ border-color:rgba(255,255,255,.12) }
.bit-brand .n{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em;
  color:var(--muted); text-transform:uppercase; margin-bottom:10px;
}
.bit-brand .name{
  font-family:'Fraunces',serif; font-size:32px; font-weight:400; letter-spacing:-.02em;
  color:var(--ink); margin-bottom:4px;
}
.bit-brand .role{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted);
}
.bit-brand .count{
  font-size:12px; color:var(--muted); margin-top:12px;
}

/* ---- Categories editorial index ---- */
.bit-cats{
  display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
}
.bit-cat{
  padding:28px 24px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  display:grid; grid-template-columns: 40px 1fr auto; gap:14px; align-items:baseline;
  color:var(--ink); transition:.15s;
}
.bit-cat:nth-child(3n){ border-right:none }
.bit-cat:hover{ background:var(--bg-2) }
.bit-cat .n{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.12em;
  color:var(--muted-2);
}
.bit-cat .name{
  font-family:'Fraunces',serif; font-size:20px; font-weight:400; letter-spacing:-.01em;
}
.bit-cat .name em{ font-style:italic; color:var(--muted) }
.bit-cat .cnt{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted);
}
.bit-cat:hover .cnt{ color:var(--navy) }

/* ---- Featured editorial grid ---- */
.bit-featured{
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap-grid);
}
.bit-prod{
  display:flex; flex-direction:column; gap:10px; color:var(--ink);
  -webkit-user-drag: none;
}
/* Permitir seleccionar/copiar texto dentro de la card aunque sea un <a> */
.bit-prod .marca-code,
.bit-prod .meta .stock,
.bit-prod .name,
.bit-prod .foot .price,
.bit-prod .foot .price.consult {
  user-select: text;
  -webkit-user-select: text;
  cursor: text;
}
.bit-prod .img{
  aspect-ratio:1; border:1px solid var(--line); border-radius:2px;
  position:relative; overflow:hidden;
}
.bit-prod .img .placeholder{ width:100%; height:100%; }
.bit-prod .img .tag{
  position:absolute; top:12px; left:12px;
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink); padding:4px 8px;
  background:#fff; border:1px solid var(--ink);
}
[data-theme="dark"] .bit-prod .img .tag{ background:var(--bg-2); border-color:var(--line); color:var(--ink); }
.bit-prod .img .tag.dest{ background:var(--ink); color:var(--bg); }
.bit-prod .meta{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--muted);
  letter-spacing:.12em; text-transform:uppercase;
}
.bit-prod .meta .marca-code{ display:flex; gap:10px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bit-prod .meta .stock{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--green); white-space:nowrap; flex-shrink:0; }
.bit-prod .meta .stock.out{ color:var(--red); }
.bit-prod .name{
  font-family:'Fraunces',serif; font-weight:400; font-size:17px; line-height:1.25;
  letter-spacing:-.01em; margin-top:2px;
}
.bit-prod .foot{
  display:flex; justify-content:flex-end; align-items:baseline;
  padding-top:8px; border-top:1px solid var(--line);
  margin-top:6px;
}
.bit-prod .foot .price{ font-family:'Fraunces',serif; font-size:16px; font-weight:400; letter-spacing:-.01em; }
.bit-prod .foot .price.consult{ color:var(--muted); font-size:13px; font-style:italic; font-weight:300; }

/* ---- List view ---- */
.bit-cat-grid.list-view{ grid-template-columns:1fr !important; gap:0; }
.bit-cat-grid.list-view .bit-prod{
  display:grid; grid-template-columns:80px 1fr auto; grid-template-rows:auto auto auto;
  gap:0 16px; align-items:center;
  padding:16px 0; border-bottom:1px solid var(--line);
}
.bit-cat-grid.list-view .bit-prod .img{
  grid-column:1; grid-row:1 / -1;
  width:80px; height:80px; aspect-ratio:auto; border-radius:2px;
}
.bit-cat-grid.list-view .bit-prod .meta{
  grid-column:2; grid-row:1; font-size:9px; align-self:end;
}
.bit-cat-grid.list-view .bit-prod .name{
  grid-column:2; grid-row:2; font-size:15px; margin-top:2px; align-self:start;
}
.bit-cat-grid.list-view .bit-prod .foot{
  grid-column:3; grid-row:1 / -1;
  border-top:none; margin-top:0; padding-top:0;
  flex-direction:column; align-items:flex-end; gap:4px;
  min-width:90px;
}
@media (max-width:480px){
  .bit-cat-grid.list-view .bit-prod{
    grid-template-columns:64px 1fr; grid-template-rows:auto auto auto;
    gap:0 12px;
  }
  .bit-cat-grid.list-view .bit-prod .img{ width:64px; height:64px; }
  .bit-cat-grid.list-view .bit-prod .foot{
    grid-column:2; grid-row:3; align-items:flex-start; min-width:0;
    flex-direction:row; gap:10px; margin-top:4px;
  }
}

/* ---- Editorial essay — local story ---- */
.bit-essay{
  padding:var(--pad-section) 0; background:var(--paper);
  border-top:1px solid var(--paper-2); border-bottom:1px solid var(--paper-2);
}
[data-theme="dark"] .bit-essay{ background:var(--paper); }
.bit-essay .container{
  display:grid; grid-template-columns: 5fr 7fr; gap:64px; align-items:start;
}
.bit-essay-cap{ position:sticky; top:120px; }
.bit-essay-cap .eyebrow{ display:block; margin-bottom:16px; }
.bit-essay-cap h2{
  font-family:'Fraunces',serif; font-weight:340; font-size:48px; line-height:1;
  letter-spacing:-.025em; color:var(--ink); margin-bottom:20px;
}
.bit-essay-cap h2 em{ font-style:italic; color:var(--navy) }
.bit-essay-cap p{ font-size:14px; color:var(--muted); line-height:1.7; max-width:320px; }
.bit-essay-body{
  columns:2; column-gap:40px; font-family:'Fraunces',serif; font-weight:380;
  font-size:17px; line-height:1.55; color:var(--ink-2);
}
.bit-essay-body p{ margin-bottom:1em; break-inside:avoid-column; }
.bit-essay-body p:first-child::first-letter{
  font-family:'Fraunces',serif; font-weight:400; font-size:4.2em;
  line-height:.9; float:left; padding:4px 10px 0 0; color:var(--navy);
}
.bit-essay-body .pull{
  font-family:'Fraunces',serif; font-style:italic; font-weight:320;
  font-size:22px; line-height:1.35; color:var(--ink); border-left:2px solid var(--navy);
  padding:6px 0 6px 16px; margin:16px 0;
}
.bit-essay.compact{ padding:calc(var(--pad-section) * .7) 0; }
.bit-essay.compact .bit-essay-cap h2{ font-size:40px }
.bit-essay.compact .bit-essay-body{ columns:1; max-width:640px; font-size:17px; }

/* ---- Map + visit ---- */
.bit-visit{
  display:grid; grid-template-columns: 1.2fr 1fr; border-top:1px solid var(--line);
}
.bit-visit-map{
  aspect-ratio: 16/10;
  background:
    radial-gradient(ellipse at 60% 60%, rgba(31,61,135,.06), transparent 50%),
    repeating-linear-gradient(0deg, var(--line-2) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(90deg, var(--line-2) 0 1px, transparent 1px 40px),
    var(--bg);
  position:relative; border-right:1px solid var(--line);
}
.bit-visit-map::before{
  content:""; position:absolute; left:52%; top:58%;
  width:14px; height:14px; border-radius:50%; background:var(--navy);
  box-shadow:0 0 0 6px rgba(31,61,135,.15), 0 0 0 14px rgba(31,61,135,.05);
  transform:translate(-50%,-50%);
}
.bit-visit-map::after{
  content:"C/ Santiago 109 \2014 Santa Cruz de Tenerife \00b7 28.4636 N / 16.2518 W";
  position:absolute; bottom:18px; left:20px;
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.1em;
  color:var(--muted); text-transform:uppercase;
}
.bit-visit-info{ padding:48px 40px; display:flex; flex-direction:column; gap:18px; }
.bit-visit-info h3{
  font-family:'Fraunces',serif; font-weight:360; font-size:32px; letter-spacing:-.02em;
  line-height:1.05; color:var(--ink); max-width:380px;
}
.bit-visit-info h3 em{ font-style:italic; color:var(--navy) }
.bit-visit-block{
  display:grid; grid-template-columns:140px 1fr; gap:20px;
  padding:16px 0; border-top:1px solid var(--line);
}
.bit-visit-block:first-of-type{ margin-top:10px }
.bit-visit-block .k{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted);
}
.bit-visit-block .v{
  font-size:14px; color:var(--ink); line-height:1.7;
}
.bit-visit-block .v strong{ font-weight:500 }
.bit-visit-block .v a{ border-bottom:1px solid currentColor; }

/* ---- Footer ---- */
.bit-foot{
  background:var(--ink); color:var(--bg); padding:80px 0 32px;
}
.bit-foot-main{ display:grid; grid-template-columns: 2.2fr 1fr 1fr 1.2fr; gap:48px; }
.bit-foot-brand .bit-logo-img{ height:44px; filter:brightness(0) invert(1); opacity:.92; }
.bit-foot-brand .bit-logo{ color:var(--bg) }
.bit-foot-brand .bit-logo em{ color:#a7bdeb }
.bit-foot-brand .bit-logo sup{ color:rgba(255,255,255,.6) }
.bit-foot-brand p{ max-width:320px; color:rgba(255,255,255,.65); margin-top:16px; font-size:14px; line-height:1.65 }
.bit-foot h5{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:16px;
}
.bit-foot ul{ list-style:none; display:flex; flex-direction:column; gap:8px; }
.bit-foot ul a{ color:rgba(255,255,255,.85); font-size:14px; }
.bit-foot ul a:hover{ color:#fff; border-bottom:1px solid currentColor }
.bit-foot-bottom{
  margin-top:48px; padding-top:20px; border-top:1px solid rgba(255,255,255,.1);
  display:flex; justify-content:space-between; align-items:center;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em; color:rgba(255,255,255,.55);
}
.bit-foot-bottom a{ color:rgba(255,255,255,.85); margin-left:20px }

/* ---- Catalogo page ---- */
.bit-cat-head{
  padding:56px 0 36px; border-bottom:1px solid var(--line);
}
.bit-cat-head .crumb{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted); margin-bottom:18px;
}
.bit-cat-head .crumb a{ color:var(--muted) } .bit-cat-head .crumb a:hover{ color:var(--ink) }
.bit-cat-head h1{
  font-family:'Fraunces',serif; font-weight:340; font-size:64px; line-height:1;
  letter-spacing:-.03em; color:var(--ink); margin-bottom:16px;
}
.bit-cat-head h1 em{ font-style:italic; color:var(--navy) }
.bit-cat-head .lead{
  display:grid; grid-template-columns: 1fr auto; gap:32px; align-items:end;
}
.bit-cat-head .lead p{ max-width:520px; color:var(--muted); font-size:15px; line-height:1.65 }
.bit-cat-head .lead .count{
  font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.14em;
  color:var(--muted); text-transform:uppercase;
}
.bit-cat-head .lead .count b{ color:var(--ink); font-weight:500; font-size:28px; display:block; letter-spacing:-.02em; margin-top:4px; font-family:'Fraunces',serif }

.bit-filter-toggle{
  display:none; align-items:center; gap:8px;
  padding:10px 18px; margin-bottom:20px;
  border:1px solid var(--line); border-radius:999px;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted); background:var(--bg);
  cursor:pointer; transition:color .2s, border-color .2s;
}
.bit-filter-toggle:hover{ color:var(--ink); border-color:var(--ink) }
.bit-filter-toggle.active{ color:var(--ink); border-color:var(--navy) }
.bit-filter-toggle svg{ transition:transform .25s }
.bit-filter-toggle.active svg{ transform:rotate(180deg) }

.bit-cat-layout{
  display:grid; grid-template-columns: 260px 1fr; gap:48px;
  padding:36px 0 80px;
}
.bit-cat-side{
  position:sticky; top:130px; align-self:start; font-size:13px;
  max-height:calc(100vh - 150px); overflow-y:auto;
  padding-right:10px; /* aire para que el scrollbar no tape el texto */
  scrollbar-width:thin; scrollbar-color:var(--line) transparent;
}
.bit-cat-side::-webkit-scrollbar{ width:6px; }
.bit-cat-side::-webkit-scrollbar-thumb{ background:var(--line); border-radius:3px; }
.bit-cat-side::-webkit-scrollbar-thumb:hover{ background:var(--muted-2); }
.bit-cat-side::-webkit-scrollbar-track{ background:transparent; }
.bit-filter-group{ margin-bottom:28px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.bit-filter-group:last-child{ border-bottom:none }
.bit-filter-group h5{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em;
  color:var(--muted); text-transform:uppercase; margin-bottom:12px;
  display:flex; justify-content:space-between;
}
.bit-filter-group h5 span{ color:var(--muted-2) }
.bit-filter-opt{
  display:flex; justify-content:space-between; align-items:center;
  padding:5px 0; color:var(--ink-2); cursor:pointer;
  font-size:13px;
}
.bit-filter-opt:hover{ color:var(--ink); }
.bit-filter-opt .n{ display:flex; align-items:center; gap:8px; }
.bit-filter-opt input{ accent-color:var(--navy) }
.bit-filter-opt.on{ color:var(--ink); font-weight:500 }
.bit-filter-opt .cnt{ color:var(--muted-2); font-family:'JetBrains Mono',monospace; font-size:11px; }

/* Subgrupos dentro de "Marcas" (oficiales / principales / resto) */
.bit-filter-subhead{
  font-family:'JetBrains Mono',monospace; font-size:9.5px; letter-spacing:.16em;
  color:var(--muted-2); text-transform:uppercase;
  margin:14px 0 6px; padding-top:8px;
}
.bit-filter-subhead:first-child{ margin-top:0; padding-top:0; }
.bit-filter-collapse{
  display:flex; justify-content:space-between; align-items:center;
  width:100%; background:transparent; border:none; cursor:pointer;
  padding:10px 0 8px; margin-top:8px;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em;
  color:var(--muted); text-transform:uppercase;
  border-top:1px dashed var(--line);
}
.bit-filter-collapse:hover{ color:var(--ink); }
.bit-filter-collapse .ico{
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; border-radius:50%; border:1px solid var(--line);
  font-size:14px; line-height:1; color:var(--muted);
}
.bit-filter-collapse.open .ico{ background:var(--navy); color:#fff; border-color:var(--navy); }
.bit-filter-rest{ max-height:240px; overflow-y:auto; padding-right:4px; }
.bit-filter-rest::-webkit-scrollbar{ width:4px; }
.bit-filter-rest::-webkit-scrollbar-thumb{ background:var(--line); border-radius:2px; }

.bit-cat-toolbar{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding-bottom:16px; border-bottom:1px solid var(--line); margin-bottom:24px;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted);
}
.bit-cat-toolbar-r{ display:flex; gap:18px; align-items:center; }
.bit-cat-toolbar-r select{
  border:none; background:transparent; font:inherit; color:var(--ink); cursor:pointer;
  letter-spacing:.1em;
}
.bit-cat-toolbar-view{ display:flex; gap:1px; border:1px solid var(--line); border-radius:4px; }
.bit-cat-toolbar-view button{
  padding:5px 9px; color:var(--muted); font-size:11px;
}
.bit-cat-toolbar-view button.on{ background:var(--ink); color:var(--bg) }

.bit-cat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap-grid); }

.bit-pager{
  margin-top:56px; padding-top:24px; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; align-items:center;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted);
}
.bit-pager .nums{ display:flex; gap:2px }
.bit-pager .nums button{
  min-width:34px; height:34px; font-size:11px; letter-spacing:.04em; color:var(--muted);
  border-radius:999px;
}
.bit-pager .nums button.on{ background:var(--ink); color:var(--bg) }

/* ---- Product page ---- */
.bit-prd-head{
  padding:28px 0 12px; font-family:'JetBrains Mono',monospace; font-size:11px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
  border-bottom:1px solid var(--line);
}
.bit-prd-head .container{ display:flex; justify-content:space-between; align-items:center; }
.bit-prd-head .crumb a{ color:var(--muted) }
.bit-prd-head .crumb a:hover{ color:var(--ink) }
.bit-prd-head .sep{ margin:0 8px; color:var(--muted-2) }
.bit-prd-head .utils{ display:flex; gap:18px }
.bit-prd-head .utils a{ display:inline-flex; gap:5px; align-items:center; }
.bit-prd-head .utils a:hover{ color:var(--ink) }

.bit-prd-top{ padding:48px 0 72px; }
.bit-prd-grid{
  display:grid; grid-template-columns: 1fr 1fr; gap:80px; align-items:start;
}
.bit-prd-gallery{ position:sticky; top:130px; display:flex; flex-direction:column; gap:14px; }
.bit-prd-main-img{
  aspect-ratio:1; border:1px solid var(--line); background:var(--bg); border-radius:2px;
  position:relative; overflow:hidden;
}
.bit-prd-main-img .placeholder{ width:100%; height:100% }
.bit-prd-main-img .serial{
  position:absolute; top:16px; left:16px;
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted);
}
.bit-prd-thumbs{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.bit-prd-thumbs .th{
  aspect-ratio:1; border:1px solid var(--line); border-radius:2px;
  overflow:hidden; cursor:pointer;
}
.bit-prd-thumbs .th.on{ border-color:var(--ink) }
.bit-prd-thumbs .th .placeholder{ width:100%; height:100% }

.bit-prd-info .brand{
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted); margin-bottom:14px;
  display:flex; align-items:center; gap:12px;
}
.bit-prd-info .brand b{ color:var(--ink); font-weight:600; letter-spacing:.2em }
.bit-prd-info .brand .official{
  font-size:9px; padding:3px 7px; border:1px solid var(--navy); color:var(--navy); border-radius:999px;
  letter-spacing:.14em;
}
.bit-prd-info h1{
  font-family:'Fraunces',serif; font-weight:330; font-size:48px;
  line-height:1.05; letter-spacing:-.025em; color:var(--ink); margin-bottom:18px;
}
.bit-prd-info h1 em{ font-style:italic; color:var(--navy) }
.bit-prd-info .sub{
  font-size:15px; color:var(--muted); line-height:1.65; max-width:440px; margin-bottom:22px;
}
.bit-prd-refs{
  display:grid; grid-template-columns:repeat(3,1fr);
  border:1px solid var(--line); border-radius:2px;
  margin-bottom:32px;
}
.bit-prd-refs > div{
  padding:14px 16px; border-right:1px solid var(--line);
}
.bit-prd-refs > div:last-child{ border-right:none }
.bit-prd-refs .k{
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted); margin-bottom:6px;
}
.bit-prd-refs .v{
  font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--ink); font-weight:500;
}
.bit-prd-price{
  display:flex; align-items:flex-end; justify-content:space-between;
  padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  margin-bottom:20px;
}
.bit-prd-price .lbl{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted); margin-bottom:8px;
}
.bit-prd-price .val{
  font-family:'Fraunces',serif; font-weight:340; font-size:40px; letter-spacing:-.02em;
  line-height:1; color:var(--ink); font-style:italic;
}
.bit-prd-price .val.num{ font-style:normal; font-weight:380; font-size:44px; }
.bit-prd-price .note{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.1em;
  color:var(--muted); margin-top:6px; max-width:220px; line-height:1.5;
}
.bit-prd-stock{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--green);
}
.bit-prd-stock::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--green);
  box-shadow:0 0 0 4px rgba(26,127,74,.12);
}
.bit-prd-actions{ display:flex; gap:10px; margin-bottom:32px; flex-wrap:wrap; }
.bit-prd-actions .bit-btn{ flex:1; min-width:200px; justify-content:center; padding:16px 22px; }

.bit-prd-tabs{
  margin-top:20px; border-top:1px solid var(--line);
}
.bit-prd-tabs-nav{
  display:flex; gap:0;
  border-bottom:1px solid var(--line);
}
.bit-prd-tabs-nav button{
  padding:14px 20px 14px 0; margin-right:28px;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted); position:relative;
}
.bit-prd-tabs-nav button.on{ color:var(--ink) }
.bit-prd-tabs-nav button.on::after{
  content:""; position:absolute; left:0; right:28px; bottom:-1px; height:1px; background:var(--ink);
}
.bit-prd-tabs-body{ padding:28px 0 0; }
.bit-prd-tabs-body .desc{
  font-family:'Fraunces',serif; font-weight:380; font-size:17px; line-height:1.65; color:var(--ink-2);
  max-width:560px;
}
.bit-prd-tabs-body .desc p + p{ margin-top:1em }
.bit-pdf-wrap{ border:1px solid var(--line-2); background:#fff; overflow:hidden; border-radius:2px; }
.bit-pdf-toolbar{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:10px 14px; background:#f4efe6; border-bottom:1px solid var(--line-2);
  font-family:'JetBrains Mono',monospace; font-size:11px; color:#666; flex-wrap:wrap;
}
.bit-pdf-toolbar .bit-pdf-name{ text-transform:uppercase; letter-spacing:.08em; }
.bit-pdf-toolbar a{ color:var(--blue,#1a3a5c); text-decoration:none; font-weight:500; }
.bit-pdf-toolbar a:hover{ text-decoration:underline; }
.bit-pdf-frame{ width:100%; height:720px; border:0; display:block; background:#fff; }
.bit-pdf-fallback{ padding:40px 24px; text-align:center; color:#666; font-family:'Inter',sans-serif; font-size:14px; }
.bit-pdf-fallback p{ margin:8px 0; }
.bit-pdf-fallback .bit-btn{ margin:4px; }
@media (max-width:640px){ .bit-pdf-frame{ height:520px; } }
.bit-prd-specs{
  display:grid; grid-template-columns:1fr 1fr; gap:0 40px;
}
.bit-prd-specs .spec{
  display:grid; grid-template-columns: 1fr auto; gap:16px;
  padding:12px 0; border-bottom:1px solid var(--line-2);
  font-size:14px;
}
.bit-prd-specs .spec .k{ color:var(--muted) }
.bit-prd-specs .spec .v{ color:var(--ink); font-weight:500; font-family:'JetBrains Mono',monospace; font-size:13px; }

.bit-prd-promise{
  margin-top:48px; padding-top:32px; border-top:1px solid var(--line);
  display:grid; grid-template-columns:repeat(3,1fr); gap:32px;
}
.bit-prd-promise .item .n{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em;
  color:var(--muted-2); text-transform:uppercase; margin-bottom:8px;
}
.bit-prd-promise .item h4{
  font-family:'Fraunces',serif; font-weight:400; font-size:18px; line-height:1.25;
  color:var(--ink); margin-bottom:6px;
}
.bit-prd-promise .item p{ font-size:13px; color:var(--muted); line-height:1.6 }

/* ---- Related products ---- */
.bit-related{ padding:var(--pad-section) 0; border-top:1px solid var(--line); background:var(--paper); }
[data-theme="dark"] .bit-related{ background:var(--paper) }
.bit-related-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap-grid); }

/* ---- Copy slot marker ---- */
.bit .copy-slot{
  color:var(--navy); opacity:.55; font-style:italic;
  font-family:'Fraunces',serif; font-weight:400;
}

/* ---- Testimonials v1 ---- */
.bit-testis{ padding:calc(var(--pad-section) * .7) 0; background:var(--bg); border-top:1px solid var(--line); }
.bit-sec-head.compact{ grid-template-columns: 110px 1fr auto; gap:20px; margin-bottom:32px; }
.bit-testis-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); }
.bit-testi{
  padding:28px 28px 24px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  display:flex; flex-direction:column; gap:14px;
}
.bit-testi:last-child{ border-right:none }
.bit-testi-n{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em;
  color:var(--muted-2); text-transform:uppercase;
}
.bit-testi blockquote{
  font-family:'Fraunces',serif; font-weight:340; font-style:italic;
  font-size:20px; line-height:1.3; color:var(--ink); letter-spacing:-.005em;
  flex:1;
}
.bit-testi figcaption{ font-size:12px; color:var(--muted); }
.bit-testi .nm{ color:var(--ink); font-weight:500; font-family:'Fraunces',serif; font-size:14px; font-style:italic; }
.bit-testi .rl{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; margin-top:2px; }

/* ---- Google Reviews ---- */
.bit-sec-head.compact .aside{ display:flex; align-items:center; gap:8px; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em; color:var(--muted); }
.bit-sec-head.compact .aside .g-logo{ flex:none }
.bit-sec-head.compact .aside a{ color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line); padding-bottom:1px; }
.bit-sec-head.compact .aside a:hover{ border-bottom-color:var(--ink); }
.g-review .g-head{ display:grid; grid-template-columns:36px 1fr auto; align-items:center; gap:12px; }
.g-review .g-av{ width:36px; height:36px; border-radius:50%; background:var(--paper-2,#eceae2); color:var(--ink); display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-size:14px; font-style:italic; font-weight:500; letter-spacing:.02em; }
.g-review .g-meta .nm{ display:block; font-family:'Fraunces',serif; font-size:15px; font-style:italic; font-weight:500; color:var(--ink); }
.g-review .g-meta .rl{ display:flex; align-items:center; gap:8px; margin-top:2px; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.g-review .g-stars{ color:#e8a500; letter-spacing:1px; font-size:12px; }
.g-review .g-stars span{ opacity:.25 }
.g-review .g-stars span.on{ opacity:1 }
.g-review .g-dot{ color:var(--muted-2); }

/* v1 card override when it's a google review */
.bit-testi.g-review{ gap:16px }
.bit-testi.g-review blockquote{ font-size:17px; line-height:1.45; }

/* ==== Bitacora V2 ==== */
.bit-v2 .bit2-hero{ padding:48px 0 56px; border-bottom:1px solid var(--line); background:var(--bg); }
.bit-v2 .bit2-hero-top{
  display:flex; justify-content:center; align-items:center;
  padding-bottom:20px; border-bottom:1px solid var(--line); margin-bottom:36px;
  font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted);
}
.bit-v2 .bit2-hero-grid{
  display:grid; grid-template-columns:1.6fr 1fr; gap:48px; align-items:end;
}
.bit-v2 .bit2-hero-main h1{
  font-family:'Fraunces',serif; font-variation-settings:"SOFT" 40, "opsz" 144;
  font-weight:330; font-size:clamp(2.8rem, 6.2vw, 6.8rem); line-height:.95;
  letter-spacing:-.035em; color:var(--ink);
}
.bit-v2 .bit2-hero-main h1 em{ font-style:italic; color:var(--navy); font-weight:380; }
.bit-v2 .bit2-hero-main h1 .l1, .bit-v2 .bit2-hero-main h1 .l2, .bit-v2 .bit2-hero-main h1 .l3{ display:block; }
.bit-v2 .bit2-hero-main h1 .l2{ padding-left:1.8em; color:var(--muted); font-style:italic; font-size:.78em; }
.bit-v2 .bit2-hero-side{ padding-bottom:4px; border-left:1px solid var(--line); padding-left:28px; max-width:360px; }
.bit-v2 .bit2-hero-side-t{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em; color:var(--muted); text-transform:uppercase; margin-bottom:14px; }
.bit-v2 .bit2-hero-side p{ font-size:14.5px; line-height:1.6; color:var(--ink-2); margin-bottom:20px; }
.bit-v2 .bit2-cta-row{ display:flex; gap:10px; flex-wrap:wrap; }
.bit-v2 .bit2-hero-stats{
  grid-column:1 / -1; margin-top:40px; padding-top:18px; border-top:1px solid var(--line);
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
}
.bit-v2 .bit2-hero-stats > div{
  display:flex; justify-content:center; align-items:baseline; gap:10px; padding:0 0 2px;
}
.bit-v2 .bit2-hero-stats em{
  font-family:'Fraunces',serif; font-weight:320; font-style:normal;
  font-size:30px; letter-spacing:-.025em; color:var(--ink); line-height:1;
}
.bit-v2 .bit2-hero-stats span{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted);
}

.bit-v2 .bit2-brands{ background:var(--paper); border-top:1px solid var(--paper-2); border-bottom:1px solid var(--paper-2); padding:36px 0; }
.bit-v2 .bit2-brands-row{ display:grid; grid-template-columns:1fr; gap:24px; align-items:start; max-width:720px; }
.bit-v2 .bit2-brands-intro p{ font-family:'Fraunces',serif; font-style:italic; font-size:18px; line-height:1.35; color:var(--ink); margin-top:8px; }
.bit-v2 .bit2-brand{ border-left:1px solid rgba(14,21,48,.15); padding-left:18px; }
.bit-v2 .bit2-brand .n{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em; color:var(--muted); margin-bottom:4px; }
.bit-v2 .bit2-brand .name{ font-family:'Fraunces',serif; font-size:28px; font-weight:400; letter-spacing:-.02em; color:var(--ink); }
.bit-v2 .bit2-brand .role{ font-family:'JetBrains Mono',monospace; font-size:10.5px; color:var(--muted); letter-spacing:.08em; margin-top:4px; }
.bit-v2 .bit2-brand .ct{ font-size:12px; color:var(--muted); margin-top:8px; }

.bit-v2 .bit2-featured{ padding:var(--pad-section) 0; }

.bit-v2 .bit2-split{
  display:grid; grid-template-columns:1fr 1.4fr;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.bit-v2 .bit2-split-l{
  padding:48px; border-right:1px solid var(--line); background:var(--paper);
  display:flex; flex-direction:column; justify-content:center; gap:14px;
}
.bit-v2 .bit2-split-l h2{
  font-family:'Fraunces',serif; font-weight:340; font-size:44px; line-height:1;
  letter-spacing:-.025em; color:var(--ink);
}
.bit-v2 .bit2-split-l h2 em{ font-style:italic; color:var(--navy) }
.bit-v2 .bit2-split-l p{ font-size:14px; color:var(--muted); line-height:1.6; max-width:360px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.bit-v2 .bit2-split-l p strong{ font-family:'Fraunces',serif; font-style:normal; font-weight:500; color:var(--ink); }
.bit-v2 .bit2-split-l .bit-btn.ghost{ margin-top:16px; }
.bit-v2 .bit2-split-r{ display:flex; flex-direction:column; }
.bit-v2 .bit2-testi{
  padding:28px 48px; border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:50px 1fr; gap:20px; align-items:baseline;
}
.bit-v2 .bit2-testi:last-child{ border-bottom:none }
.bit-v2 .bit2-testi .n{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em; color:var(--muted-2); text-transform:uppercase; }
.bit-v2 .bit2-testi blockquote{ font-family:'Fraunces',serif; font-style:italic; font-weight:340; font-size:22px; line-height:1.3; color:var(--ink); letter-spacing:-.005em; }
.bit-v2 .bit2-testi figcaption{
  grid-column:2; margin-top:10px;
  font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.1em;
  color:var(--muted); text-transform:uppercase;
  display:flex; gap:8px; flex-wrap:wrap;
}
.bit-v2 .bit2-testi figcaption .nm{ color:var(--ink); font-weight:600; letter-spacing:.08em; }
.bit-v2 .bit2-testi figcaption .dot{ color:var(--muted-2) }

/* v2 row override for Google reviews */
.bit-v2 .bit2-testi.g-review{ grid-template-columns:1fr; display:flex; flex-direction:column; gap:14px; padding:28px 48px; }
.bit-v2 .bit2-testi.g-review blockquote{ font-size:19px; }

.bit-v2 .bit2-essay{ padding:calc(var(--pad-section) * .7) 0; background:var(--paper); border-bottom:1px solid var(--paper-2); }
.bit-v2 .bit2-essay-grid{ display:grid; grid-template-columns:1fr 1.6fr; gap:48px; align-items:start; }
.bit-v2 .bit2-essay-cap h2{ font-family:'Fraunces',serif; font-weight:340; font-size:42px; line-height:1; letter-spacing:-.025em; color:var(--ink); margin-top:14px; }
.bit-v2 .bit2-essay-cap h2 em{ font-style:italic; color:var(--navy) }
.bit-v2 .bit2-essay-body{ font-family:'Fraunces',serif; font-size:17px; line-height:1.55; color:var(--ink-2); font-weight:380; columns:2; column-gap:36px; }
.bit-v2 .bit2-essay-body p{ margin-bottom:1em; break-inside:avoid-column; }
.bit-v2 .bit2-essay-body p:first-child::first-letter{
  font-family:'Fraunces',serif; font-weight:400; font-size:4em; line-height:.9; float:left;
  padding:4px 10px 0 0; color:var(--navy);
}
.bit-v2 .bit2-essay-body .pull{
  font-style:italic; font-weight:330; font-size:20px; color:var(--ink);
  border-left:2px solid var(--navy); padding:4px 0 4px 16px;
  columns:1; break-inside:avoid-column; column-span:all;
}

/* ========== KEYFRAME ANIMATIONS ========== */
@keyframes bit-twinkle { from{ opacity:.4 } to{ opacity:.95 } }
@keyframes bit-beam { from{ transform: rotate(0deg) } to{ transform: rotate(360deg) } }
@keyframes bit-lamp {
  from{ box-shadow:0 0 12px rgba(255,220,140,.55), 0 0 26px rgba(255,200,100,.3) }
  to  { box-shadow:0 0 22px rgba(255,220,140,.95), 0 0 50px rgba(255,200,100,.6) }
}
@keyframes bit-wave { from{ background-position-x:0 } to{ background-position-x:120px } }

/* ========== RESPONSIVE ========== */
@media (max-width:960px){
  .bit-header{ top:auto; position:relative; }
  .bit-header-top .container{ padding:6px 16px; }
  .bit-header-top .container > div:last-child{ display:none }
  .bit-header-main{ padding:12px 16px; grid-template-columns:1fr auto; }
  .bit-head-right{ justify-content:flex-end; gap:8px }
  .bit-hero{ padding:40px 0 56px }
  .bit-hero-grid{ grid-template-columns:1fr; gap:32px; }
  .bit-hero-side{ border-left:none; padding-left:0; border-top:1px solid var(--line); padding-top:28px; }
  .bit-hero-coord{ display:none }
  .bit-hero-slug{ grid-template-columns: 80px 1fr; gap:14px; margin-bottom:24px; }
  .bit-faro{ max-width:260px; }
  .bit-stats{ grid-template-columns:repeat(2,1fr) }
  .bit-stat{ border-bottom:1px solid var(--line); padding:22px }
  .bit-stat:nth-child(2n){ border-right:none }
  .bit-sec-head{ grid-template-columns: 70px 1fr; gap:14px; margin-bottom:28px; }
  .bit-sec-head .aside{ display:none }
  .bit-trust{ grid-template-columns:1fr 1fr; }
  .bit-trust-item{ border-bottom:1px solid var(--line); padding:22px }
  .bit-trust-item:nth-child(2n){ border-right:none }
  .bit-brands .container{ grid-template-columns:1fr; gap:24px }
  .bit-brand-row{ grid-template-columns:1fr; gap:0 }
  .bit-brand{ padding:16px 0 }
  .bit-cats{ grid-template-columns:1fr 1fr; }
  .bit-cat{ padding:20px 14px }
  .bit-cat:nth-child(3n){ border-right:1px solid var(--line) }
  .bit-cat:nth-child(2n){ border-right:none }
  .bit-featured{ grid-template-columns:repeat(2,1fr); gap:16px; }
  .bit-essay .container{ grid-template-columns:1fr; gap:24px }
  .bit-essay-cap{ position:relative; top:auto }
  .bit-essay-cap h2{ font-size:36px }
  .bit-essay-body{ columns:1; font-size:16px }
  .bit-visit{ grid-template-columns:1fr }
  .bit-visit-map{ aspect-ratio:1; border-right:none; border-bottom:1px solid var(--line) }
  .bit-visit-info{ padding:32px 20px }
  .bit-foot{ padding:56px 0 24px }
  .bit-foot-main{ grid-template-columns:1fr 1fr; gap:28px }
  .bit-foot-bottom{ flex-direction:column; gap:10px; align-items:flex-start }
  .bit-cat-head{ padding:40px 0 28px }
  .bit-cat-head h1{ font-size:40px }
  .bit-cat-head .lead{ grid-template-columns:1fr; gap:16px }
  .bit-cat-layout{ grid-template-columns:1fr; gap:0; padding:24px 0 56px }
  .bit-cat-side{ position:relative; top:auto; display:none; padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid var(--line); max-height:none; overflow:visible; padding-right:0; }
  .bit-cat-side.open{ display:block }
  .bit-filter-toggle{ display:flex }
  .bit-cat-grid{ grid-template-columns:repeat(2,1fr); gap:16px }
  .bit-cat-toolbar{ flex-wrap:wrap; gap:10px; font-size:10px }
  .bit-prd-head .container{ flex-wrap:wrap; gap:6px }
  .bit-prd-head .utils{ display:none }
  .bit-prd-top{ padding:28px 0 48px }
  .bit-prd-grid{ grid-template-columns:1fr; gap:32px }
  .bit-prd-gallery{ position:relative; top:auto }
  .bit-prd-info h1{ font-size:32px }
  .bit-prd-actions{ flex-direction:column }
  .bit-prd-actions .bit-btn{ min-width:0 }
  .bit-prd-specs{ grid-template-columns:1fr }
  .bit-prd-promise{ grid-template-columns:1fr; gap:16px }
  .bit-related-grid{ grid-template-columns:repeat(2,1fr); gap:16px }
  .bit-testis-grid{ grid-template-columns:1fr }
  .bit-testi{ border-right:none }
  .bit-v2 .bit2-hero-grid{ grid-template-columns:1fr; gap:24px; }
  .bit-v2 .bit2-hero-side{ border-left:none; padding-left:0; padding-top:20px; border-top:1px solid var(--line) }
  .bit-v2 .bit2-hero-main h1 .l2{ padding-left:1em }
  .bit-v2 .bit2-hero-stats{ grid-template-columns:repeat(2,1fr); gap:12px; }
  .bit-v2 .bit2-brands-row{ grid-template-columns:1fr; gap:16px; }
  .bit-v2 .bit2-brand{ border-left:none; border-top:1px solid rgba(14,21,48,.15); padding:14px 0 0 0; }
  .bit-v2 .bit2-split{ grid-template-columns:1fr }
  .bit-v2 .bit2-split-l{ border-right:none; border-bottom:1px solid var(--line); padding:32px 20px }
  .bit-v2 .bit2-split-l h2{ font-size:32px }
  .bit-v2 .bit2-testi{ padding:22px 20px; grid-template-columns:40px 1fr }
  .bit-v2 .bit2-testi blockquote{ font-size:18px }
  .bit-v2 .bit2-essay-grid{ grid-template-columns:1fr; gap:20px }
  .bit-v2 .bit2-essay-cap h2{ font-size:32px }
  .bit-v2 .bit2-essay-body{ columns:1; font-size:16px }

  /* Mobile nav full-screen overlay */
  .bit-nav{
    display:none;
    position:fixed; inset:0; z-index:50;
    background:var(--bg);
    flex-direction:column;
    align-items:center; justify-content:center;
    gap:8px;
    padding:80px 32px 40px;
    overflow-y:auto;
  }
  .bit-nav.open{
    display:flex;
  }
  .bit-nav a{
    font-size:18px;
    padding:14px 28px;
    width:100%;
    max-width:320px;
    text-align:center;
    border-radius:12px;
  }
  .bit-nav a.on{
    background:var(--bg-2);
  }
  .bit-mobile-menu-btn{
    display:flex;
  }
}

/* ---- Catalog search & no-results ---- */
.bit-cat-search{
  margin-bottom:24px;
}
.bit-cat-search input{
  width:100%; padding:12px 18px;
  border:1px solid var(--line); border-radius:999px;
  font-family:'JetBrains Mono',monospace; font-size:13px;
  letter-spacing:.04em; color:var(--ink); background:var(--bg);
  outline:none;
}
.bit-cat-search input:focus{ border-color:var(--navy); }
.bit-cat-search input::placeholder{ color:var(--muted-2); }
.bit-no-results{
  text-align:center; padding:80px 20px; color:var(--muted);
  font-family:'Fraunces',serif; font-size:18px; font-style:italic;
}
.bit-no-results a{ color:var(--navy); border-bottom:1px solid currentColor; }

/* ---- Product card image ---- */
.bit-prod .img img{
  width:100%; height:100%; object-fit:contain;
}

@media (max-width:480px){
  .bit-stats{ grid-template-columns:1fr }
  .bit-stat{ border-right:none }
  .bit-trust{ grid-template-columns:1fr }
  .bit-trust-item{ border-right:none }
  .bit-cats{ grid-template-columns:1fr }
  .bit-cat{ border-right:none !important }
  .bit-featured{ grid-template-columns:1fr }
  .bit-cat-grid{ grid-template-columns:1fr }
  .bit-related-grid{ grid-template-columns:1fr }
  .bit-foot-main{ grid-template-columns:1fr; gap:24px }
  .bit-prd-refs{ grid-template-columns:1fr }
  .bit-prd-refs > div{ border-right:none; border-bottom:1px solid var(--line) }
  .bit-prd-refs > div:last-child{ border-bottom:none }
  .bit-v2 .bit2-testi{ grid-template-columns:1fr; gap:10px }
  .bit-v2 .bit2-testi figcaption{ grid-column:1 }
}

/* ========== Mejoras responsive para móvil (≤560px) ========== */
@media (max-width:560px){
  /* Header top: email más corto y compacto */
  .bit-header-top{ font-size:10px; }
  .bit-header-top .container{ padding:6px 16px; gap:8px; flex-wrap:wrap; }
  .bit-header-top a + a{ margin-left:14px; }

  /* Logo más pequeño en móvil para no comerse el ancho */
  .bit-logo{ font-size:18px; gap:8px; }
  .bit-logo-img{ height:30px; }
  .bit-logo sup{ display:none; }

  /* Hero V2 — escala el titular y los paddings */
  .bit-v2 .bit2-hero{ padding:32px 0 40px; }
  .bit-v2 .bit2-hero-top{ padding-bottom:14px; margin-bottom:22px; font-size:9px; letter-spacing:.14em; }
  .bit-v2 .bit2-hero-top .coord{ line-height:1.4; }
  .bit-v2 .bit2-hero-grid{ gap:20px; }
  .bit-v2 .bit2-hero-main h1{ font-size:clamp(2.4rem, 12vw, 3.4rem); line-height:1; letter-spacing:-.03em; }
  .bit-v2 .bit2-hero-main h1 .l2{ padding-left:1em; font-size:.82em; }
  .bit-v2 .bit2-hero-side p{ font-size:14px; margin-bottom:16px; }
  .bit-v2 .bit2-cta-row{ gap:8px; }
  .bit-v2 .bit2-cta-row .bit-btn{ flex:1 1 auto; text-align:center; padding:10px 14px; font-size:12px; }

  /* Stats: 3 columnas compactas en lugar de apilarse */
  .bit-v2 .bit2-hero-stats{ grid-template-columns:repeat(3,1fr); margin-top:24px; padding-top:14px; gap:6px; }
  .bit-v2 .bit2-hero-stats > div{ flex-direction:column; align-items:center; gap:2px; padding:0; }
  .bit-v2 .bit2-hero-stats em{ font-size:22px; }
  .bit-v2 .bit2-hero-stats span{ font-size:9px; letter-spacing:.14em; }

  /* Sección de marcas más respirable */
  .bit-v2 .bit2-brands{ padding:24px 0; }
  .bit-v2 .bit2-brands-intro p{ font-size:16px; line-height:1.4; }

  /* Featured (productos destacados) */
  .bit-v2 .bit2-featured{ padding:36px 0; }

  /* Sección reseñas — h2 más pequeño y padding compacto */
  .bit-v2 .bit2-split-l{ padding:28px 16px; }
  .bit-v2 .bit2-split-l h2{ font-size:26px; }
  .bit-v2 .bit2-testi{ padding:20px 16px; }
  .bit-v2 .bit2-testi.g-review{ padding:20px 16px; }
  .bit-v2 .bit2-testi blockquote{ font-size:16px; line-height:1.4; }
  .bit-v2 .bit2-testi.g-review blockquote{ font-size:16px; }

  /* Essay (si existe en alguna página) */
  .bit-v2 .bit2-essay{ padding:32px 0; }
  .bit-v2 .bit2-essay-cap h2{ font-size:26px; }
  .bit-v2 .bit2-essay-body{ font-size:15px; line-height:1.55; }
  .bit-v2 .bit2-essay-body .pull{ font-size:16px; }

  /* Catálogo — toolbar más compacta y multi-línea */
  .bit-cat-head{ padding:32px 0 22px; }
  .bit-cat-head h1{ font-size:32px; }
  .bit-cat-toolbar{ flex-direction:column; align-items:flex-start; gap:8px; padding-bottom:12px; }
  .bit-cat-toolbar-r{ flex-wrap:wrap; gap:10px 14px; }
  .bit-cat-layout{ padding:18px 0 40px; gap:0; }

  /* Tarjetas de producto: altura mínima del precio para no chocar con el badge */
  .bit-prod .foot{ flex-wrap:wrap; gap:6px; }
  .bit-prod .meta{ flex-wrap:wrap; gap:4px 10px; }

  /* Filtros móviles: subgrupos un poco más compactos */
  .bit-filter-subhead{ margin:10px 0 4px; }
  .bit-filter-collapse{ padding:8px 0; }
}

/* Móviles muy estrechos (≤380px) */
@media (max-width:380px){
  .container{ padding:0 16px; }
  .bit-header-top a span,
  .bit-header-top a:nth-child(2){ font-size:9px; }
  .bit-v2 .bit2-hero-main h1{ font-size:clamp(2.1rem, 11vw, 2.8rem); }
  .bit-v2 .bit2-hero-stats em{ font-size:20px; }
  .bit-v2 .bit2-split-l h2,
  .bit-v2 .bit2-essay-cap h2{ font-size:24px; }
}

/* ===== Páginas legales — misma línea visual Bitácora ===== */
.legal-wrap{ background:var(--bg); color:var(--ink); }
.legal-head{ padding:64px 0 36px; border-bottom:1px solid var(--line); background:var(--bg); }
.legal-head .crumb{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:18px; }
.legal-head .crumb a{ color:var(--muted) } .legal-head .crumb a:hover{ color:var(--ink) }
.legal-head h1{ font-family:'Fraunces',Georgia,serif; font-weight:340; font-size:clamp(2.4rem, 5.2vw, 4.6rem); line-height:1; letter-spacing:-.03em; color:var(--ink); margin-bottom:16px; }
.legal-head h1 em{ font-style:italic; font-weight:360; color:var(--navy); }
.legal-head .lead{ color:var(--muted); font-size:15px; max-width:580px; line-height:1.65; }
.legal-head .meta{ margin-top:18px; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.16em; color:var(--muted-2); text-transform:uppercase; }

.legal-body{ padding:56px 0 var(--pad-section); }
.legal-grid{ display:grid; grid-template-columns: 220px 1fr; gap:56px; align-items:start; }
.legal-toc{ position:sticky; top:140px; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.04em; }
.legal-toc .k{ font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
.legal-toc ol{ list-style:none; counter-reset:toc; display:flex; flex-direction:column; gap:8px; padding:0; margin:0; }
.legal-toc ol li{ counter-increment:toc; }
.legal-toc ol li a{ color:var(--muted); display:flex; gap:10px; line-height:1.4; text-decoration:none; }
.legal-toc ol li a::before{ content:counter(toc, decimal-leading-zero); color:var(--muted-2); flex:none; }
.legal-toc ol li a:hover{ color:var(--ink); }

.legal-article{ max-width:720px; }
.legal-article h2{
  font-family:'Fraunces',serif; font-weight:360; font-size:28px; letter-spacing:-.015em;
  color:var(--ink); margin:48px 0 14px; scroll-margin-top:140px;
  padding-top:24px; border-top:1px solid var(--line);
}
.legal-article h2:first-child{ border-top:none; padding-top:0; margin-top:0 }
.legal-article h2 em{ font-style:italic; color:var(--navy) }
.legal-article h2 .n{
  display:inline-block; font-family:'JetBrains Mono',monospace; font-size:11px;
  letter-spacing:.18em; color:var(--muted); text-transform:uppercase; margin-right:12px;
  vertical-align:middle; font-weight:500;
}
.legal-article h3{ font-family:'Fraunces',serif; font-weight:400; font-size:18px; color:var(--ink); margin:24px 0 8px; }
.legal-article p{ font-size:15px; line-height:1.7; color:var(--ink-2); margin-bottom:14px; }
.legal-article ul, .legal-article ol{ margin:0 0 18px 22px; padding:0; }
.legal-article li{ font-size:15px; line-height:1.7; color:var(--ink-2); margin-bottom:6px; }
.legal-article a{ color:var(--navy); border-bottom:1px solid rgba(31,61,135,.25); padding-bottom:1px; text-decoration:none; }
.legal-article a:hover{ border-bottom-color:var(--navy); }
.legal-article strong{ font-weight:600; color:var(--ink); }
.legal-article .callout{
  background:var(--paper); border:1px solid var(--paper-2); border-radius:2px;
  padding:20px 22px; margin:18px 0; font-size:14px; color:var(--ink-2); line-height:1.75;
}
.legal-article .callout .k{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:6px; font-weight:500; }
.legal-article .callout strong{ font-family:'Fraunces',serif; font-weight:500; font-size:16px; letter-spacing:-.01em; }

.legal-article table{ width:100%; border-collapse:collapse; margin:16px 0 22px; font-size:13.5px; }
.legal-article th, .legal-article td{ padding:12px 14px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.55; }
.legal-article th{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted); font-weight:500;
  border-bottom:1px solid var(--ink);
}
.legal-article td{ color:var(--ink-2); }
.legal-article td code{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--ink); background:var(--bg-2); padding:2px 6px; border-radius:3px; }

@media (max-width:960px){
  .legal-head{ padding:40px 0 24px }
  .legal-body{ padding:28px 0 56px }
  .legal-grid{ grid-template-columns:1fr; gap:24px }
  .legal-toc{ position:relative; top:auto; padding-bottom:20px; border-bottom:1px solid var(--line) }
}

/* ===== Banner de cookies ===== */
.bit-cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:9999;
  background:#fff; border-top:1px solid var(--line);
  box-shadow:0 -4px 24px rgba(0,0,0,.06);
  font-family:'Inter',sans-serif;
}
.bit-cookie-inner{
  max-width:1200px; margin:0 auto; padding:14px 24px;
  display:flex; flex-wrap:wrap; align-items:center; gap:20px;
  justify-content:space-between;
}
.bit-cookie-text{
  flex:1 1 320px; margin:0;
  font-size:13px; line-height:1.55; color:var(--ink-2);
}
.bit-cookie-text strong{ font-weight:600; color:var(--ink); }
.bit-cookie-text a{
  color:var(--navy); border-bottom:1px solid rgba(31,61,135,.25);
  text-decoration:none; padding-bottom:1px;
}
.bit-cookie-text a:hover{ border-bottom-color:var(--navy); }
.bit-cookie-actions{ display:flex; gap:10px; flex-shrink:0; }
.bit-cookie-btn{
  padding:9px 20px; font-family:'Inter',sans-serif;
  font-size:13px; font-weight:500; letter-spacing:.01em;
  border-radius:999px; cursor:pointer;
  border:1.5px solid; background:transparent;
  transition:background .15s, color .15s, border-color .15s, transform .1s;
}
.bit-cookie-btn.reject{ color:var(--ink); border-color:rgba(26,26,46,.3); }
.bit-cookie-btn.reject:hover{ border-color:var(--ink); background:rgba(26,26,46,.04); }
.bit-cookie-btn.accept{ background:var(--navy); color:#fff; border-color:var(--navy); }
.bit-cookie-btn.accept:hover{ background:#172e6b; border-color:#172e6b; transform:translateY(-1px); }
@media (max-width:700px){
  .bit-cookie-inner{ padding:12px 16px; gap:12px; }
  .bit-cookie-text{ font-size:12px; flex:1 1 100%; }
  .bit-cookie-actions{ width:100%; }
  .bit-cookie-btn{ flex:1; text-align:center; padding:10px 12px; }
}

/* Caja en cookies.html para cambiar preferencia */
.bit-cookie-prefs{
  display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:12px;
}
.bit-cookie-prefs .status{
  font-family:'JetBrains Mono',monospace; font-size:11px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}

/* ================================================
   Home · Productos destacados en listado en móvil
   ================================================ */
@media (max-width:640px){
  .bit-featured{ gap:0; grid-template-columns:1fr; }
  .bit-featured .bit-prod{
    display:grid;
    grid-template-columns:100px 1fr auto;
    grid-template-rows:auto auto auto;
    gap:0 14px;
    align-items:center;
    padding:14px 0;
    border-bottom:1px solid var(--line);
  }
  .bit-featured .bit-prod .img{
    grid-column:1; grid-row:1 / -1;
    width:100px; height:100px; aspect-ratio:auto; border-radius:2px;
  }
  .bit-featured .bit-prod .meta{
    grid-column:2; grid-row:1;
    font-size:9px; align-self:end;
  }
  .bit-featured .bit-prod .name{
    grid-column:2; grid-row:2;
    font-size:15px; line-height:1.25; margin-top:2px; align-self:start;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }
  .bit-featured .bit-prod .foot{
    grid-column:3; grid-row:1 / -1;
    border-top:none; margin-top:0; padding-top:0;
    flex-direction:column; align-items:flex-end; gap:4px;
    min-width:84px;
  }
  .bit-featured .bit-prod .img .tag{
    top:4px; left:4px; font-size:9px; padding:2px 6px;
  }
}

/* ================================================
   Hero coord: siempre dos líneas centradas
   ================================================ */
.bit-v2 .bit2-hero-top .coord{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  line-height:1.45;
}
.bit-v2 .bit2-hero-top .coord .coord-geo,
.bit-v2 .bit2-hero-top .coord .coord-addr{ display:block; }
.bit-v2 .bit2-hero-top .coord .coord-addr{ color:var(--muted-2); }

/* ================================================
   Botón menú móvil: icono holgado dentro del cuadro
   ================================================ */
.bit-mobile-menu-btn{ width:44px; height:44px; }
.bit-mobile-menu-btn span,
.bit-mobile-menu-btn span::before,
.bit-mobile-menu-btn span::after{ width:20px; }
.bit-mobile-menu-btn span::before{ top:-7px; }
.bit-mobile-menu-btn span::after{ top:7px; }

/* ==========================================================
   Responsive audit patches — 2026-04-24
   ========================================================== */

/* Variables compactas en móvil */
@media (max-width:640px){
  :root{ --pad-section:48px; --gap-grid:14px; --pad-card:14px; }
}
@media (max-width:380px){
  :root{ --pad-section:36px; }
}

/* Header sticky también en móvil (antes se volvía relative) */
@media (max-width:960px){
  .bit-header{ position:sticky; top:0; z-index:40; background:var(--bg); }
}

/* Header top bar más respirable y tappable */
@media (max-width:560px){
  .bit-header-top{ font-size:11px; }
  .bit-header-top .container{ padding:8px 16px; }
  .bit-header-top a{ padding:4px 0; display:inline-block; min-height:28px; line-height:1.4; }
  .bit-header-top a + a{ margin-left:10px; }
}
@media (max-width:380px){
  .bit-header-top a:nth-child(2){ display:none; }
}

/* Search button compacto icon-only en móvil (font-size:0 oculta el texto, svg mantiene tamaño) */
@media (max-width:560px){
  .bit-search-btn{
    padding:0; width:44px; height:44px; justify-content:center;
    gap:0; font-size:0;
  }
  .bit-search-btn svg{ width:18px; height:18px; }
}

/* Hero h1 no desborda en 320 */
@media (max-width:560px){
  .bit-v2 .bit2-hero-main h1{
    font-size:clamp(2.05rem, 10.5vw, 3rem);
    overflow-wrap:break-word; hyphens:auto;
  }
  .bit-v2 .bit2-hero-main h1 .l2{ padding-left:.6em; }
  .bit-v2 .bit2-hero-top{ letter-spacing:.1em; }
}

/* Hero landscape ultra-bajo */
@media (max-width:900px) and (orientation:landscape) and (max-height:500px){
  .bit-v2 .bit2-hero{ padding:20px 0 28px; }
  .bit-v2 .bit2-hero-stats{ margin-top:20px; padding-top:10px; }
}

/* Essay dropcap más sobrio en móvil */
@media (max-width:480px){
  .bit-v2 .bit2-essay-body p:first-child::first-letter,
  .bit-essay-body p:first-child::first-letter{
    font-size:3em; padding:2px 8px 0 0;
  }
}

/* Featured cards meta legible */
@media (max-width:640px){
  .bit-featured .bit-prod .meta{ font-size:10px; letter-spacing:.08em; }
  .bit-featured .bit-prod .name{ font-size:15.5px; }
}

/* Reseñas home más compactas en móvil */
@media (max-width:480px){
  .g-review .g-head{ grid-template-columns:36px 1fr; gap:10px; }
  .g-review .g-head > svg.g-logo{ display:none; }
  .g-review .g-meta .rl{ flex-wrap:wrap; row-gap:2px; font-size:9.5px; }
  .bit-testi blockquote{ font-size:17px; }
}

/* Catálogo · filtros táctiles */
@media (max-width:960px){
  .bit-filter-opt{ padding:12px 0; min-height:44px; }
  .bit-filter-opt input[type="radio"],
  .bit-filter-opt input[type="checkbox"]{ width:18px; height:18px; margin:0; }
  .bit-filter-collapse{ min-height:44px; padding:12px 0; }
}

/* Catálogo · toolbar */
@media (max-width:640px){
  .bit-cat-toolbar-r select{
    padding:10px 6px; min-height:40px; font-size:12px;
    background:var(--bg); border:1px solid var(--line); border-radius:4px;
  }
  .bit-cat-toolbar-view button{ min-width:44px; min-height:40px; padding:0 10px; }
}

/* Catálogo · search sin zoom iOS */
@media (max-width:640px){
  .bit-cat-search input{ font-size:16px; padding:14px 18px; min-height:48px; }
}

/* Paginación táctil */
@media (max-width:640px){
  .bit-pager{ flex-direction:column; gap:12px; align-items:stretch; }
  .bit-pager .nums{ justify-content:center; flex-wrap:wrap; gap:4px; }
  .bit-pager .nums button{ min-width:40px; height:40px; font-size:12px; }
  .bit-pager .info{ text-align:center; }
}

/* Ficha producto · tabs con scroll-x */
@media (max-width:640px){
  .bit-prd-tabs-nav{
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    flex-wrap:nowrap; scrollbar-width:none;
  }
  .bit-prd-tabs-nav::-webkit-scrollbar{ display:none; }
  .bit-prd-tabs-nav button{
    white-space:nowrap; padding:12px 0; margin-right:20px;
    min-height:44px; font-size:11px;
  }
}

/* Ficha producto · specs tipo mayor en pantallas estrechas */
@media (max-width:480px){
  .bit-prd-specs .spec{ font-size:14px; padding:10px 0; }
  .bit-prd-specs .spec .v{ font-size:13.5px; }
}

/* Visit block en móvil */
@media (max-width:640px){
  .bit-visit-block{ grid-template-columns:90px 1fr; gap:12px; padding:14px 0; }
  .bit-visit-info{ padding:28px 20px; }
}
@media (max-width:380px){
  .bit-visit-block{ grid-template-columns:1fr; gap:4px; }
  .bit-visit-block .k{ margin-bottom:2px; }
}

/* Visit map: limpiar pseudo-elementos (ya hay iframe real) */
@media (max-width:960px){
  .bit-visit-map{ aspect-ratio:auto; min-height:320px; }
  .bit-visit-map::before, .bit-visit-map::after{ display:none; }
}

/* Mapa de contacto altura móvil */
@media (max-width:640px){
  .bit-contact-map iframe{ height:300px; min-height:240px; }
}
@media (max-width:380px){
  .bit-contact-map iframe{ height:240px; }
}

/* Formulario contacto · touch + no-zoom */
@media (max-width:600px){
  .bit-form-control{ padding:14px 2px; font-size:16px; min-height:44px; }
  textarea.bit-form-control{ min-height:140px; }
  .bit-form-submit-dual{ flex-direction:column; gap:10px; }
  .bit-form-submit-dual .bit-btn{
    width:100%; justify-content:center; padding:14px 18px; min-height:48px;
  }
}

/* Footer táctil */
@media (max-width:640px){
  .bit-foot{ padding:40px 0 24px; }
  .bit-foot ul{ gap:2px; }
  .bit-foot ul a{ display:inline-block; padding:8px 0; min-height:40px; line-height:1.4; }
  .bit-foot h5{ padding-top:6px; }
  .bit-foot-bottom{
    flex-direction:column; gap:10px; align-items:flex-start;
    font-size:10.5px; text-align:left;
  }
  .bit-foot-bottom a{
    margin-left:0; margin-right:14px;
    display:inline-block; padding:6px 0; min-height:36px;
  }
}

/* WhatsApp float no pisa el cookie banner */
@media (max-width:640px){
  .wa-float{
    width:52px; height:52px; right:14px;
    bottom:calc(14px + env(safe-area-inset-bottom,0));
  }
  body.bit-cookie-shown .wa-float{
    bottom:calc(140px + env(safe-area-inset-bottom,0));
  }
}

/* Contraste del botón Rechazar del cookie banner */
.bit-cookie-btn.reject{ border-color:rgba(26,26,46,.5); }

/* Scroll lock robusto del menú móvil (iOS no respeta overflow:hidden en body) */
html.bit-menu-open, html.bit-menu-open body{
  overflow:hidden; height:100%; touch-action:none;
}

/* Safe-areas iOS */
.bit-cookie-banner{ padding-bottom:env(safe-area-inset-bottom,0); }
