/* ============================================================
   SUPRA CASES — Tableta, celular, celular acostado
   Extraido de supra-cases-v3.html lineas 822-976
   ============================================================ */

/* ============ RESPONSIVE ============
   Tres cortes: escritorio angosto (1120), tableta (940) y celular (760/560).
   Varias vistas traen rejillas en el atributo style, así que las de tableta
   y celular necesitan !important para poder desarmarlas.
   ====================================== */
@media(max-width:1260px){
  .logo img{height:24px}
  .nav a,.nav button{padding:0 6px;font-size:11px}
}
@media(max-width:1180px){
  .grid{grid-template-columns:repeat(3,1fr)}
  .mega-in{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
  /* Pisa el grid-column:-2/-1 de 02-header.css: aqui ya no hay pista de 260px
     reservada, la tarjeta baja a una fila propia de ancho completo. */
  .mega-side{grid-column:1/-1}
  /* Entre 940 y 1180 el texto y las fotos del hero no caben a su ancho. */
  .slide-txt{max-width:56%}
  .slide-fotos{width:38%}
  /* Mi cuenta: con el menu lateral, la columna de datos no cabe al lado. */
  .cuenta-rejilla{grid-template-columns:1fr}
  .cuenta-lateral{position:static;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
  .nav a,.nav button{padding:0 6px;font-size:11.5px}
}

/* ---------- TABLETA ---------- */
@media(max-width:940px){
  :root{--h-header:60px}
  .nav,.solo-esc{display:none}
  /* El mega menu se sustituye por el menu movil. Con visibility:hidden sus
     columnas se siguen maquetando y sobresalen del ancho de la pantalla,
     lo que crea scroll horizontal invisible. */
  .mega{display:none}
  /* Anadido en el porte: el prototipo mostraba este boton desde JS. */
  #btnMenu{display:grid}
  .hdr-in{gap:10px}
  .logo img{height:23px}

  .marco{height:clamp(300px,64vw,400px)}
  .slide-cpo{justify-content:flex-end;padding-bottom:64px}
  .slide-txt{max-width:100%}
  .slide-fotos{display:none}
  .slide .slide-tit{font-size:clamp(26px,5.4vw,38px)}
  .slide p{margin-bottom:18px;max-width:38ch}
  .velo{background:linear-gradient(180deg,rgba(14,14,14,.35) 0%,rgba(14,14,14,.92) 78%)}
  .flecha{display:none}
  .slide-sello{right:16px;top:16px;padding:6px 14px;font-size:11.5px}
  .finder-zona{background:linear-gradient(180deg,var(--negro) 0 30px,var(--humo) 30px 100%)}

  .tira-in{grid-template-columns:repeat(2,1fr)}
  .cats,.cats-4{grid-template-columns:repeat(2,1fr)}
  .dos-col{grid-template-columns:1fr!important;gap:24px!important}
  .layout{grid-template-columns:1fr!important;gap:0}
  .layout>aside{position:static!important;top:auto!important;margin-top:20px}

  .filtros-btn{display:flex}
  .filtros{position:static;display:none;border:1px solid var(--linea);
    border-radius:var(--r-g);padding:16px;margin-bottom:20px}
  .filtros.abierta{display:block}

  .pdp{grid-template-columns:1fr;gap:24px}
  .pdp-info{grid-template-columns:1fr;gap:24px}
  .pdp-lateral{position:static}
  .doc-rejilla,.nos-cuerpo{grid-template-columns:1fr;gap:24px}
  .doc-indice,.nos-cuerpo .nos-linea{position:static}
  .pdp-gal{position:static;max-width:min(100%,420px);margin:0 auto}

  /* minmax(0,1fr) y no 1fr: la pista 1fr no baja del min-content de sus
     hijos, y la tira de familias (flex sin salto) y la fila de buscar con
     sus dos botones la ensanchaban mas que la pantalla. */
  .rapido-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .rapido-grid>*{min-width:0}
  .fam-lista{position:static;display:flex;overflow-x:auto;max-height:none;
    scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .fam{border-bottom:none;border-right:1px solid var(--humo-2);flex:none;
    min-width:186px;scroll-snap-align:start}
  .fam-c{margin-left:8px}

  .pie-in{grid-template-columns:1fr 1fr}
  .mtabbar{display:block}
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .wa{bottom:calc(78px + env(safe-area-inset-bottom));width:48px;height:48px}
  .barra-fija{bottom:calc(64px + env(safe-area-inset-bottom))}
  .sec{padding:40px 0}
}

/* ---------- CELULAR ---------- */
@media(max-width:760px){
  .grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .cats,.cats-4{grid-template-columns:1fr}
  .tira-in{grid-template-columns:1fr}
  .sec-cab{flex-direction:column;align-items:flex-start;gap:8px}
  .sec{padding:34px 0}

  /* Sin zoom automático de iOS: todo campo de texto a 16px o más */
  input,select,textarea{font-size:16px}
  .buscar-modelo input,.cant input,select.sel,.woocommerce-ordering select{font-size:16px}

  /* Áreas táctiles cómodas */
  .cant{height:44px}
  .cant button{width:44px;font-size:20px}
  .cant input{width:52px}
  .cant-g{height:48px}
  .btn-sm{height:42px;padding:0 16px}
  .icobtn{width:44px;height:44px}

  .prod-cpo{padding:11px 11px 13px;gap:3px}
  .prod-nom{font-size:14.5px}
  .prod-precio b{font-size:18px}
  .prod-desc,.prod-may{display:none}

  .mod-item{grid-template-columns:68px 1fr;gap:12px;padding:12px}
  .mod-item .ph{width:68px}
  .mod-i-acc{grid-column:1/-1;justify-content:space-between;flex-wrap:wrap;gap:10px}
  .mod-i-p{text-align:left}
  .mod-i-acc .btn{flex:1;min-width:120px}

  .pdp-acc{flex-direction:column;align-items:stretch}
  .pdp-acc .btn{width:100%}
  .pdp-acc .quantity{width:100%}
  /* En columna, flex:1 le da base cero al boton y lo aplasta. */
  .pdp-acc .single_add_to_cart_button{flex:none}
  .pdp-acc .cant input{flex:1;width:auto}
  .pdp-precio b{font-size:32px}
  .pdp-precio .price{font-size:32px}
  .tabs{gap:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab a{white-space:nowrap;padding:12px 13px}
  .ficha td:first-child{width:44%}

  .busq-capa.abierto{display:flex}
  .busq-caja{margin:0;height:100dvh;border-radius:0;max-width:none;
    display:flex;flex-direction:column;width:100%}
  .busq-res{max-height:none;flex:1}
  .busq-top input{height:56px}
  .busq-pie{display:none}

  /* El filtro va solo en su renglon y los dos botones debajo, a medias.
     Solo en /rapido/: la ficha de producto usa .buscar-modelo sin botones.
     26px = icono (17px) + gap (9px) de 04-shop.css. */
  .rapido-grid .buscar-modelo{flex-wrap:wrap;padding-bottom:12px;row-gap:0}
  .rapido-grid .buscar-modelo input{min-width:0;flex-basis:calc(100% - 26px)}
  .rapido-grid .buscar-modelo .btn{flex:1 1 0;min-width:0}
  .tabla-r .td-p{display:none}
  .tabla-r td:first-child{font-size:14px;line-height:1.3;padding-right:6px}
  .tabla-r thead th{padding:9px 10px}
  .tabla-r td{padding:6px 10px}
  .tabla-r .td-c{width:auto}
  .barra-fija{gap:10px}
  .barra-fija>div:last-child{width:100%}
  .barra-fija .btn{flex:1}

  .barra-res{flex-direction:column;align-items:stretch;gap:10px}
  .barra-res select.sel,.woocommerce-ordering select{width:100%;height:44px}
  .escalones .esc{font-size:14px;padding:10px 12px}
  .esc-p{font-size:16px}

  .hero-nav{bottom:12px}
  .punto{width:22px}.punto.act{width:38px}
  .rapido-cab,.mod-hero{padding:24px 0 26px}
  .pasos{gap:6px}
  .paso{font-size:12.5px;padding:4px 11px}

  .pie-in{grid-template-columns:1fr;gap:26px}
  .cajon-cpo,.cajon-pie{padding-left:16px;padding-right:16px}
  .nos-cifras{grid-template-columns:repeat(2,1fr);margin-top:-24px}
  .nos-c b{font-size:25px}
  .nos-h{grid-template-columns:1fr;gap:4px}
  .dos-campos{grid-template-columns:1fr}
  .hist-i{gap:10px}
  .hist-acc{margin-left:0;width:100%}
  .hist-acc .btn{flex:1}
}

@media(max-width:400px){
  .wrap{padding:0 14px}
  .grid{gap:8px}
  .mtab{font-size:9.5px}
  .logo img{height:20px}
  .cant button{width:40px}
}

/* Celular acostado: el hero no debe comerse la pantalla */
@media(max-height:520px) and (orientation:landscape){
  .marco{height:78vh}
  .busq-caja{height:100dvh}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}
@keyframes sube{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.entra{animation:sube .55s cubic-bezier(.2,.7,.3,1) both}

/* ============ PUENTE CON WOOCOMMERCE ============
   Las reglas de 06-woo.css que hay que deshacer en pantallas chicas.
   Van aqui, con el resto de las medias queries, y no en 06-woo.css, para no
   partir el corte de tableta y celular en dos archivos. */
@media(max-width:940px){
  .layout-pedido,.layout-checkout{grid-template-columns:1fr;gap:0}
  .supra-aside{position:static;margin-top:20px}
  .woocommerce-account .woocommerce{grid-template-columns:1fr;gap:20px}
  .cuenta-rejilla{grid-template-columns:1fr}
  .cuenta-lateral{position:static}
  .woocommerce-account .woocommerce-MyAccount-navigation{position:static}
  .woocommerce-MyAccount-navigation ul{grid-auto-flow:column;grid-auto-columns:max-content;
    overflow-x:auto;gap:4px;scrollbar-width:none;padding-bottom:4px}
  .woocommerce-MyAccount-navigation ul::-webkit-scrollbar{display:none}
  .woocommerce-MyAccount-navigation li a{white-space:nowrap;border:1.5px solid var(--linea)}
  .supra-dos-campos{grid-template-columns:1fr}
}

@media(max-width:760px){
  #customer_login{grid-template-columns:1fr}
  .form-row-first,.form-row-last{width:100%;float:none}
  /* La tabla del pedido pierde la columna de precio unitario, igual que
     .tabla-r en el pedido rapido: el importe de la linea ya lo dice todo. */
  .supra-grupo .tabla-r .td-p{display:none}
  .supra-grupo .tabla-r td{padding:8px 6px}
  .supra-grupo .tabla-r .td-c{width:104px}
  .cant{height:34px}
  .cant button{width:30px}
  .cant input{width:40px}
  .woocommerce-order-overview{grid-template-columns:1fr}
  .supra-acciones{flex-direction:column;align-items:stretch}
  .supra-acciones .btn,.supra-acciones .button[name=update_cart]{width:100%}
}
