/* ============================================================
   ONBRAND361° — shop.css
   Catálogo, ficha de producto, configurador y presupuesto.
   ============================================================ */

/* --------- Barra de filtros --------- */
.shopbar{
  position:sticky;top:var(--header-h);z-index:40;
  background:color-mix(in srgb,var(--bg) 92%,transparent);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--rule);
  padding-block:1rem;
}
.shopbar__in{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;}
.shopbar__group{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;}
.fbtn{
  font-size:var(--t-xs);font-weight:500;color:var(--ink-2);
  padding:.58rem .95rem;border:1px solid var(--rule);border-radius:var(--r-pill);
  white-space:nowrap;transition:all var(--d-1) var(--e-out);
}
.fbtn:hover{border-color:var(--ink-3);color:var(--ink);}
.fbtn[aria-pressed='true']{background:var(--navy);border-color:var(--navy);color:#fff;}
.is-dark .fbtn[aria-pressed='true']{background:var(--orange);border-color:var(--orange);}
.shopbar__search{position:relative;flex:1 1 220px;min-width:180px;}
.shopbar__search .input{padding-left:2.5rem;}
.shopbar__search svg{
  position:absolute;left:.9rem;top:50%;transform:translateY(-50%);
  width:16px;height:16px;color:var(--ink-3);pointer-events:none;
}
.shopbar__meta{font-size:var(--t-xs);color:var(--ink-3);margin-left:auto;white-space:nowrap;}

/* Contador de presupuesto en la cabecera de tienda */
.cesta-link{display:inline-flex;align-items:center;gap:.55rem;}
.cesta-n{
  min-width:22px;height:22px;padding-inline:.35rem;
  display:inline-grid;place-items:center;border-radius:var(--r-pill);
  background:var(--orange);color:#fff;font-size:var(--t-micro);font-weight:700;
  font-variant-numeric:tabular-nums;
}
.cesta-n[data-vacia='1']{background:var(--rule);color:var(--ink-3);}

/* --------- Rejilla de producto --------- */
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:var(--gut);}
.prod{display:flex;flex-direction:column;border:1px solid var(--rule);background:var(--bg);transition:border-color var(--d-2),transform var(--d-2) var(--e-out);min-width:0;}
.prod:hover{border-color:color-mix(in srgb,var(--ink) 24%,transparent);transform:translateY(-3px);}
.prod__fig{position:relative;display:block;background:var(--navy-deep);overflow:hidden;aspect-ratio:4/3;}
.prod__fig img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--e-out);}
.prod:hover .prod__fig img{transform:scale(1.045);}
.prod__div{
  position:absolute;left:.7rem;top:.7rem;
  font-size:var(--t-micro);font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  padding:.35em .7em;background:rgba(255,255,255,.1);color:#fff;border-radius:var(--r-sm);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.prod__body{padding:1.15rem 1.25rem 0;flex:1;}
.prod__cat{font-family:var(--f-mono);font-size:var(--t-micro);letter-spacing:.1em;color:var(--accent-ink);text-transform:uppercase;}
.prod__t{font-size:1.05rem;letter-spacing:-.02em;margin:.55rem 0 .5rem;line-height:1.2;}
.prod__t a:hover{color:var(--accent-ink);}
.prod__d{font-size:var(--t-xs);color:var(--ink-2);line-height:1.6;}
.prod__foot{
  display:flex;align-items:center;justify-content:space-between;gap:.8rem;
  padding:1.15rem 1.25rem;margin-top:1rem;border-top:1px solid var(--rule);
}
.prod__p{font-family:var(--f-display);font-weight:700;font-size:1.18rem;letter-spacing:-.03em;white-space:nowrap;}
.prod__p small{font-family:var(--f-body);font-size:.6rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:block;}

.cat-vacio{padding:clamp(3rem,8vw,6rem) 0;text-align:center;color:var(--ink-2);}

/* --------- Ficha de producto --------- */
.pdp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,4rem);align-items:start;}
@media(max-width:940px){.pdp{grid-template-columns:1fr;}}
.pdp__media{position:sticky;top:calc(var(--header-h) + 2rem);}
@media(max-width:940px){.pdp__media{position:static;}}
.pdp__media img{width:100%;border:1px solid var(--rule);background:var(--navy-deep);}
.pdp__t{font-size:clamp(1.8rem,3.6vw,2.9rem);letter-spacing:-.035em;line-height:1.02;margin:.8rem 0 1rem;}
.pdp__res{color:var(--ink-2);font-size:var(--t-body);line-height:1.65;max-width:52ch;}

/* Muestras de color */
.swatch{width:14px;height:14px;border-radius:3px;border:1px solid rgba(0,0,0,.22);display:inline-block;flex:none;}
.is-dark .swatch{border-color:rgba(255,255,255,.3);}

/* Reparto de tallas */
.tallas{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem;margin-top:.7rem;}
@media(max-width:560px){.tallas{grid-template-columns:repeat(3,1fr);}}
.talla{display:flex;flex-direction:column;gap:.35rem;}
.talla span{font-family:var(--f-mono);font-size:var(--t-micro);color:var(--ink-3);text-align:center;letter-spacing:.06em;}
.talla .input{text-align:center;padding:.6rem .3rem;}

/* Caja de precio */
.pricebox{
  border:1px solid var(--rule);border-top:2px solid var(--orange);
  padding:clamp(1.2rem,2.4vw,1.7rem);margin-top:2rem;background:var(--bg-alt);
}
.pricebox__row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.pricebox__big{font-family:var(--f-display);font-weight:700;font-size:clamp(2rem,4.4vw,2.9rem);letter-spacing:-.04em;line-height:1;}
.pricebox__ud{font-size:var(--t-xs);color:var(--ink-2);}
.pricebox__dto{
  display:inline-block;margin-top:.7rem;font-size:var(--t-xs);
  color:var(--ink-3);
}
.pricebox__dto[data-on='1']{color:var(--accent-ink);font-weight:600;}
.pricebox__legal{font-size:var(--t-xs);color:var(--ink-3);margin-top:1rem;line-height:1.55;}
.pricebox__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem;}

/* --------- Líneas del presupuesto --------- */
.line{
  display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:1.4rem;
  padding:1.4rem 0;border-bottom:1px solid var(--rule);align-items:start;
}
@media(max-width:720px){
  .line{grid-template-columns:72px minmax(0,1fr);}
  .line__num{grid-column:1/-1;text-align:left;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
}
.line__img{width:100%;border:1px solid var(--rule);background:var(--navy-deep);}
.line__cat{font-family:var(--f-mono);font-size:var(--t-micro);letter-spacing:.09em;color:var(--accent-ink);text-transform:uppercase;}
.line__t{font-size:1.08rem;letter-spacing:-.02em;margin:.4rem 0 .7rem;}
.line__specs{display:flex;flex-wrap:wrap;gap:.35rem 1.2rem;font-size:var(--t-xs);color:var(--ink-2);}
.line__specs b{font-weight:600;color:var(--ink-3);font-size:var(--t-micro);letter-spacing:.06em;text-transform:uppercase;}
.line__num{text-align:right;white-space:nowrap;}
.line__uds{font-size:var(--t-xs);color:var(--ink-3);}
.line__total{font-family:var(--f-display);font-weight:700;font-size:1.3rem;letter-spacing:-.03em;margin-top:.3rem;}
.line__del{font-size:var(--t-xs);color:var(--ink-3);text-decoration:underline;margin-top:.6rem;}
.line__del:hover{color:#D93025;}

.totales{border-top:2px solid var(--ink);padding-top:1.4rem;margin-top:1.4rem;}
.totales dl{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;font-size:var(--t-sm);color:var(--ink-2);}
.totales dl:last-of-type{
  border-top:1px solid var(--rule);margin-top:.6rem;padding-top:1rem;
  font-family:var(--f-display);font-weight:700;font-size:clamp(1.3rem,2.4vw,1.7rem);
  letter-spacing:-.03em;color:var(--ink);
}
.totales dt,.totales dd{margin:0;}

/* --------- Área de cliente (maqueta) --------- */
.dash{display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(1.5rem,3vw,2.6rem);align-items:start;}
@media(max-width:900px){.dash{grid-template-columns:1fr;}}
.dash__nav{display:flex;flex-direction:column;gap:.15rem;position:sticky;top:calc(var(--header-h) + 1.5rem);}
@media(max-width:900px){.dash__nav{position:static;flex-direction:row;flex-wrap:wrap;}}
.dash__nav a{
  display:flex;align-items:center;gap:.7rem;padding:.75rem .9rem;
  font-size:var(--t-sm);color:var(--ink-2);border-left:2px solid transparent;
  transition:all var(--d-1);
}
.dash__nav a:hover{color:var(--ink);background:var(--bg-alt);}
.dash__nav a[aria-current]{border-left-color:var(--orange);color:var(--ink);font-weight:600;background:var(--bg-alt);}
.dash__nav svg{width:17px;height:17px;flex:none;color:var(--ink-3);}
.dash__nav a[aria-current] svg{color:var(--orange);}
@media(max-width:900px){
  .dash__nav a{border-left:0;border-bottom:2px solid transparent;}
  .dash__nav a[aria-current]{border-left:0;border-bottom-color:var(--orange);}
}

.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);}
.kpi > div{background:var(--bg);padding:1.3rem 1.4rem;}
.kpi b{display:block;font-family:var(--f-display);font-weight:700;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.035em;line-height:1;}
.kpi span{display:block;margin-top:.5rem;font-size:var(--t-xs);color:var(--ink-3);}

/* --------- Pantallas de acceso --------- */
.auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;border:1px solid var(--rule);}
@media(max-width:900px){.auth{grid-template-columns:1fr;}}
.auth__form{padding:clamp(1.6rem,4vw,3rem);background:var(--bg);}
.auth__side{padding:clamp(1.6rem,4vw,3rem);background:var(--navy);color:#fff;position:relative;overflow:hidden;}
.auth__side::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 80% 70% at 70% 40%,#000 10%,transparent 70%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 70% 40%,#000 10%,transparent 70%);
}
.auth__side > *{position:relative;z-index:1;}
.auth__side h3{color:#fff;font-size:var(--t-lg);letter-spacing:-.03em;}
.auth__side .split__list li{border-color:rgba(255,255,255,.15);color:#B9C4D6;}
.auth__tabs{display:flex;gap:.35rem;margin-bottom:2rem;border-bottom:1px solid var(--rule);}
.auth__tab{
  padding:.85rem 1.1rem;font-size:var(--t-sm);font-weight:600;color:var(--ink-3);
  border-bottom:2px solid transparent;margin-bottom:-1px;transition:all var(--d-1);
}
.auth__tab:hover{color:var(--ink);}
.auth__tab[aria-selected='true']{color:var(--ink);border-bottom-color:var(--orange);}

/* --------- Mapa de pantallas de la fase Odoo --------- */
.screen{
  border:1px solid var(--rule);background:var(--bg);
  display:flex;flex-direction:column;overflow:hidden;
}
.screen__bar{
  display:flex;align-items:center;gap:.45rem;
  padding:.7rem .9rem;border-bottom:1px solid var(--rule);background:var(--bg-alt);
}
.screen__bar i{width:9px;height:9px;border-radius:50%;background:var(--rule);flex:none;}
.screen__bar i:first-child{background:var(--orange);}
.screen__bar span{font-family:var(--f-mono);font-size:var(--t-micro);color:var(--ink-3);margin-left:.4rem;}
.screen__body{padding:clamp(1.2rem,2.4vw,1.8rem);flex:1;}
.screen__n{font-family:var(--f-mono);font-size:var(--t-micro);letter-spacing:.1em;color:var(--accent-ink);}
.screen__t{font-size:var(--t-md);letter-spacing:-.02em;margin:.6rem 0 .6rem;}
.screen__d{font-size:var(--t-sm);color:var(--ink-2);line-height:1.65;}
.screen__odoo{
  margin-top:1.2rem;padding-top:1rem;border-top:1px dashed var(--rule);
  font-family:var(--f-mono);font-size:var(--t-micro);color:var(--ink-3);line-height:1.7;
}
.screen__odoo b{color:var(--accent-ink);font-weight:400;}
.screen__wire{
  display:flex;flex-direction:column;gap:.4rem;margin-top:1.1rem;
  padding:.9rem;border:1px dashed var(--rule);background:var(--bg-alt);
}
.screen__wire i{display:block;height:8px;background:var(--rule);border-radius:2px;}
.screen__wire i.w-t{height:14px;width:52%;background:var(--ink-3);opacity:.5;}
.screen__wire i.w-a{background:var(--orange);width:34%;height:11px;}
.screen__wire .w-row{display:flex;gap:.4rem;}
.screen__wire .w-row i{flex:1;}

/* ---------------------------------------------------------
   Doble precio: base imponible e IVA incluido
   --------------------------------------------------------- */
.prod__p{line-height:1.15;}
.prod__p em{
  display:block;font-style:normal;font-family:var(--f-body);
  font-size:var(--t-micro);font-weight:500;letter-spacing:0;
  color:var(--ink-3);margin-top:.3rem;white-space:nowrap;
}
.pricebox__alt{
  font-size:var(--t-xs);color:var(--ink-2);margin-top:.35rem;
}
.pricebox__etq{
  display:block;font-family:var(--f-body);font-size:.6rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.3rem;
}

/* Interruptor empresa / particular */
.modo{display:inline-flex;gap:.25rem;padding:.25rem;border:1px solid var(--rule);border-radius:var(--r-pill);}
.modo button{
  font-size:var(--t-micro);font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  padding:.55rem .85rem;border-radius:var(--r-pill);color:var(--ink-3);white-space:nowrap;
  transition:background var(--d-1),color var(--d-1);
}
.modo button[aria-pressed='true']{background:var(--navy);color:#fff;}
.is-dark .modo button[aria-pressed='true']{background:var(--orange);color:var(--navy);}
.modo__nota{font-size:var(--t-micro);color:var(--ink-3);margin-top:.5rem;}

/* Tallas: número variable de columnas según la prenda */
.tallas{grid-template-columns:repeat(auto-fit,minmax(58px,1fr));}

/* ---------------------------------------------------------
   Referencia abierta: "lo que no está en el catálogo"
   --------------------------------------------------------- */
.prod--pide{border-style:dashed;border-color:var(--orange);}
.prod--pide .prod__fig{background:var(--navy);}
.prod--pide .prod__cat{color:var(--accent-ink);}
.prod--pide .prod__foot{border-top-color:var(--orange);}

.pide{border:1px dashed var(--orange);padding:clamp(1.3rem,2.6vw,2rem);background:color-mix(in srgb,var(--orange) 5%,transparent);}
.pide__t{font-family:var(--f-display);font-weight:700;font-size:var(--t-lg);letter-spacing:-.03em;line-height:1.08;color:var(--ink);}
.pide__d{margin-top:1rem;color:var(--ink-2);font-size:var(--t-sm);line-height:1.7;max-width:56ch;}
.pide__lista{margin-top:1.2rem;display:flex;flex-direction:column;}
.pide__lista li{
  padding:.7rem 0;border-top:1px solid var(--rule);font-size:var(--t-sm);color:var(--ink-2);
  display:flex;gap:.8rem;align-items:flex-start;
}
.pide__lista li::before{content:'';width:6px;height:6px;background:var(--orange);flex:none;margin-top:.6em;}
.pide__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem;}
.pide__pie{margin-top:1.2rem;font-size:var(--t-xs);color:var(--ink-3);line-height:1.6;}
