:root{
  --ink:#0e0f11;
  --bg:#0b0b0c;
  --card:#ffffff;
  --muted:#6b7280;
  --brand:#ffd21f;
  --brand-ink:#111111;
  --line:#e5e7eb;
  --scrim:rgba(0,0,0,.38);

  /* Logo */
  --logo-h-mobile: 120px;       /* tu ajuste */
  --logo-h-desktop: 180px;      /* tu ajuste */
  --logo-zoom: 2.2;
  --logo-shift-x: 0px;
  --logo-shift-y: 0px;

  /* Header */
  --header-pad-y: .5rem;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; color:var(--ink); background:#f7f8fa;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;
  line-height:1.4;
  overflow-x:hidden; /* evita ver el “borde” si algo se desborda */
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
.container{width:min(1120px, 100% - 2rem); margin-inline:auto}

.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}

/* Topbar */
.topbar{background:#111; color:#eee; font-size:.875rem}
.topbar .topbar-msg{margin:0; padding:.5rem 0}
.topbar .link{color:#fff; text-decoration:underline}

/* Header */
.site-header{background:var(--bg); color:#fff; position:sticky; top:0; z-index:40}
.header-grid{
  display:flex; align-items:center; justify-content:space-between;
  padding:var(--header-pad-y) 0; gap:1rem;
  flex-wrap:wrap;          /* ← permite pasar a 2 filas en pantallas angostas */
  min-width:0;
}
.brand{display:flex; align-items:center; gap:.75rem}

/* Logo (contenedor recorta el “aire” del PNG al hacer zoom) */
.brand-logo{display:inline-flex; align-items:center; height:var(--logo-h-mobile); width:auto; overflow:hidden; line-height:0; flex:0 0 auto}
.brand-logo img{
  height:calc(100% * var(--logo-zoom)); width:auto; object-fit:cover;
  transform:translate(var(--logo-shift-x), var(--logo-shift-y));
}
@media (min-width:768px){ .brand-logo{ height:var(--logo-h-desktop); } }

.brand-text{font-weight:800; letter-spacing:.3px; color:var(--brand)}

.primary-actions{display:flex; gap:.5rem; align-items:center; margin-left:auto}
.btn{border:1px solid transparent; border-radius:.5rem; padding:.6rem .9rem; background:#1b1b1d; color:#fff; cursor:pointer; white-space:nowrap}
.btn:hover{background:#222}
.btn-cta{background:var(--brand); color:var(--brand-ink); font-weight:700; border-color:#d9b500}
.btn-cta:hover{filter:brightness(.95)}
.link-btn{background:transparent; border-color:#333}
.icon-btn{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; padding:0; border-radius:.5rem; border-color:#333; font-size:1.1rem}
.btn-cat{background:#19191a; border-color:#333}
.btn.is-disabled { opacity:.5; pointer-events:none; }

/* En móviles: mantenemos solo acciones esenciales para evitar desbordes */
@media (max-width:640px){
  .brand-text{display:none}
  .header-grid{gap:.5rem}
  .btn{padding:.5rem .7rem}
  .btn-cat{font-size:.9rem}
}

/* Side categories */
.side-nav{position:fixed; inset:64px auto 0 0; width:320px; display:flex; transform:translateX(-105%); transition:transform .24s ease; z-index:45; will-change:transform}
.side-nav[aria-hidden="false"]{transform:translateX(0)}
.side-nav > div{width:320px; background:#111; color:#fff; border-right:1px solid #222; overflow:auto}
.side-nav__lvl1 a, .side-nav__lvl2 a, .side-nav__lvl3 a{
  display:flex; align-items:center; justify-content:space-between; padding:.85rem 1rem; border-bottom:1px solid #1e1e1e; color:#eaeaea
}
.side-nav__lvl1 a:hover, .side-nav__lvl2 a:hover, .side-nav__lvl3 a:hover{background:#171717}
.side-nav__lvl2, .side-nav__lvl3{background:#0f0f10}
.scrim{position:fixed; inset:0; background:var(--scrim); z-index:44; border:0}

/* Search overlay */
.search-overlay{position:fixed; inset:0; z-index:60; display:grid; grid-template-rows:auto 1fr; backdrop-filter:blur(2px)}
.search-overlay[hidden]{display:none}
.search-backdrop{position:absolute; inset:0; background:radial-gradient(ellipse at top, rgba(0,0,0,.35), rgba(0,0,0,.65))}
.search-panel{position:relative; z-index:1; padding-top:min(8vh,3rem)}
.search-header{display:flex; align-items:center; justify-content:space-between; color:#fff}
.search-input-wrap{margin-top:1rem}
.search-input-wrap input{
  width:100%; padding:1rem 1.25rem; font-size:1.05rem; border:2px solid var(--brand);
  border-radius:.85rem; outline:none
}
.search-hint{color:#ddd; margin:.5rem 0 1rem}
.search-results{display:grid; grid-template-columns:repeat(4, 1fr); gap:1rem}
.s-card{background:var(--card); border:1px solid var(--line); border-radius:.9rem; overflow:hidden}
.s-card .s-img{aspect-ratio:1/1; background:#f2f3f5}
.s-card .s-body{padding:.75rem}
.s-title{font-weight:600}

/* Hero */
.hero{background:linear-gradient(180deg,#111, #171717); color:#fff; padding:1.25rem 0}
.hero h1{font-size:clamp(1.6rem, 2.5vw, 2.4rem); margin:0 0 .25rem}
.hero p{margin:.25rem 0 1rem}

/* Grids */
.section-title{margin:1.8rem 0 .8rem}
.grid-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem}
.card{background:var(--card); border:1px solid var(--line); border-radius:1rem; overflow:hidden; transition:transform .12s ease, box-shadow .12s ease}
.card:hover{transform:translateY(-2px); box-shadow:0 8px 18px rgba(0,0,0,.08)}
.card .card-body{padding:1rem}
.grid-products{display:grid; grid-template-columns:repeat(5,1fr); gap:1rem}

/* Footer */
.site-footer{margin-top:2.5rem; background:#0d0d0e; color:#f1f1f1}
.footer-grid{display:grid; gap:1rem; grid-template-columns:2fr 1fr 1fr; padding:1.25rem 0}
.copy{text-align:center; padding:.85rem 0; border-top:1px solid #1b1b1b; color:#c9c9c9}

/* Subpages */
.sub-header{background:#111; color:#fff}
.sub-header__row{display:flex; align-items:center; gap:1rem; padding:1rem 0}
.brand-mini{color:var(--brand); font-weight:700}
.grid-cats{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin:1.25rem 0}
.grid-cats .card.tall{min-height:140px}
.contact-grid{display:grid; grid-template-columns:2fr 1fr; gap:1.25rem; margin:1.25rem 0}
.form label{display:block; font-weight:600; margin:.5rem 0 .35rem}
.form input,.form textarea{width:100%; border:1px solid var(--line); border-radius:.65rem; padding:.75rem; background:#fff}
.form button{margin-top:.5rem}
.pay-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:1.25rem 0}
.muted{color:var(--muted)}

/* Producto detalle */
.product-detail{display:grid; grid-template-columns:2fr 3fr; gap:1.5rem; margin:1.25rem 0}
.p-media{border:1px solid var(--line); border-radius:.9rem; overflow:hidden; background:#fff}
.p-thumbs{display:flex; gap:.5rem; margin-top:.5rem}
.thumb{border:1px solid var(--line); background:#fff; border-radius:.5rem; padding:0}
.thumb.is-active{outline:2px solid var(--brand)}
.p-info h2{margin:.25rem 0}
.p-price{font-size:1.5rem; font-weight:800; color:#111}
.p-cta{display:flex; gap:.5rem; margin:1rem 0}
.p-specs{padding-left:1rem}

/* Utilidades */
.list{list-style:none; margin:0; padding:0}
.link{color:#2563eb}

/* Responsive */
@media (max-width:1100px){
  .grid-products{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:920px){
  .grid-cards{grid-template-columns:repeat(2,1fr)}
  .grid-products{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .contact-grid{grid-template-columns:1fr}
  .pay-cards{grid-template-columns:1fr}
  .product-detail{grid-template-columns:1fr}
  .search-results{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .grid-products{grid-template-columns:repeat(2,1fr)}
  .grid-cats{grid-template-columns:repeat(2,1fr)}
  .search-results{grid-template-columns:1fr}
}

/* --- Layout base: footer pegado al fondo y sin franjas --- */
html, body { height: 100%; }

body{
  margin: 0;
  /* usar la altura dinámica para que móviles y zoom no dejen huecos */
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

/* el contenido ocupa el alto disponible; el footer baja solo */
main{ flex: 1 0 auto; }

/* por si en algún sitio habían márgenes que empujaban el footer */
.site-footer{ margin-top: auto; }

