/* =========================================================
   SunMall — capa responsive y de accesibilidad
   Se carga de forma estática en el <head>, antes del runtime .dc,
   por eso no hay parpadeo. Como el marcado usa estilos en línea,
   TODA regla que deba ganarles necesita !important.
   ========================================================= */

:root{
  --sm-naranja:#ffad12;
  --sm-naranja-osc:#e87800;
  --sm-tinta:#1f242b;
  --sm-crema:#fff7ec;
  --sm-crema-2:#fff0dc;
  --sm-texto:#4a4f57;
  --sm-texto-sua:#6a6f77;
}

html{ -webkit-text-size-adjust:100%; }

/* La cabecera es fija: sin esto, al saltar a un ancla el título
   de la sección queda escondido detrás de ella. */
section[id], main[id], footer[id]{ scroll-margin-top:92px; }
/* OJO: no poner overflow-x aquí. support.js inyecta html,body{height:100%},
   y un overflow en el body lo convierte en contenedor de scroll de la
   altura de la ventana: window.scrollY se queda en 0 y las anclas dejan
   de funcionar. El <div> contenedor del diseño ya recorta en horizontal. */
img,video,iframe{ max-width:100%; }

/* Foco visible: el diseño original no tenía ninguno */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible{
  outline:3px solid var(--sm-naranja) !important;
  outline-offset:3px !important;
  border-radius:6px;
}

/* Salto al contenido para lectores de pantalla / teclado */
.sm-skip{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--sm-tinta); color:#fff; padding:12px 20px;
  border-radius:0 0 12px 0; font-weight:600; text-decoration:none;
}
.sm-skip:focus{ left:0; }

.sm-sr{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* Quien prefiere menos movimiento, no ve las animaciones decorativas */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important; animation-iteration-count:1!important;
    transition-duration:.001ms!important; scroll-behavior:auto!important;
  }
}

/* =========================================================
   TABLET  ( <= 980px )
   ========================================================= */
@media (max-width: 980px){
  .sm-nav{ display:none!important; }
  .sm-burger{ display:block!important; }

  .sm-hero-grid{ grid-template-columns:1fr!important; gap:28px!important; }
  .sm-about-grid{ grid-template-columns:1fr!important; gap:32px!important; }
  .sm-contact-grid{ grid-template-columns:1fr!important; gap:26px!important; }
  .sm-cats-grid{ grid-template-columns:repeat(2,1fr)!important; }
  .sm-promos-grid{ grid-template-columns:repeat(2,1fr)!important; }
  .sm-footer-grid{ grid-template-columns:1fr 1fr!important; gap:28px!important; }
  .sm-faq-grid{ grid-template-columns:1fr!important; }
}

/* =========================================================
   MÓVIL  ( <= 720px )
   ========================================================= */
@media (max-width: 720px){

  /* Barra superior: la dirección completa no cabe, se apila */
  .sm-topbar-inner{
    flex-direction:column!important; align-items:flex-start!important;
    gap:6px!important; padding:8px 18px!important;
  }
  .sm-topbar-inner span{ font-size:12px!important; line-height:1.35!important; }

  .sm-header-inner{ padding:12px 18px!important; gap:12px!important; }
  .sm-logo img{ height:42px!important; }

  /* Hero: el H1 de 104px se comía la pantalla */
  .sm-hero-inner{ padding:24px 18px 44px!important; }
  .sm-hero-photo{ aspect-ratio:4/3!important; }
  .sm-badge-65{
    position:static!important; margin-top:14px!important;
    display:inline-flex!important; left:auto!important; bottom:auto!important;
  }
  .sm-hero-ctas a{ width:100%!important; text-align:center!important; }

  .sm-cats-grid{ grid-template-columns:1fr!important; gap:16px!important; }
  .sm-promos-grid{ grid-template-columns:1fr!important; }

  /* Galería: el mosaico de 3 columnas con spans no funciona en móvil */
  .sm-gallery-grid{
    grid-template-columns:1fr!important;
    grid-auto-rows:200px!important;
    gap:12px!important;
  }
  .sm-gallery-grid > *{ grid-column:auto!important; }

  .sm-stores-grid{
    grid-template-columns:repeat(2,1fr)!important;
    gap:12px!important;
  }
  .sm-stores-grid > div{ min-height:132px!important; padding:14px 10px 10px!important; }

  /* Filtros del directorio: scroll horizontal en vez de romper la caja */
  .sm-tabs{
    flex-wrap:nowrap!important;
    justify-content:flex-start!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:6px!important;
    margin-left:-18px!important; margin-right:-18px!important;
    padding-left:18px!important; padding-right:18px!important;
  }
  .sm-tabs::-webkit-scrollbar{ display:none; }
  .sm-tabs > li,
  .sm-tabs li > button{ flex:0 0 auto!important; }

  .sm-contact-card{ padding:30px 22px!important; }
  .sm-footer-grid{ grid-template-columns:1fr!important; gap:26px!important; }

  .sm-sec{ padding-left:18px!important; padding-right:18px!important; }

  /* Deja hueco para la barra fija de acciones */
  body{ padding-bottom:66px; }
}

/* =========================================================
   BARRA FIJA DE CONTACTO (solo móvil)
   Los dos actos que de verdad convierten en una plaza:
   llamar y trazar la ruta.
   ========================================================= */
.sm-barra-movil{ display:none; }

@media (max-width: 720px){
  .sm-barra-movil{
    display:grid!important;
    grid-template-columns:1fr 1fr;
    position:fixed; left:0; right:0; bottom:0; z-index:80;
    background:var(--sm-tinta);
    border-top:1px solid rgba(255,173,18,.3);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .sm-barra-movil a{
    display:flex; align-items:center; justify-content:center; gap:8px;
    min-height:56px; text-decoration:none;
    font-family:'Poppins',sans-serif; font-weight:600; font-size:15px;
    color:#f3ead9;
  }
  .sm-barra-movil a + a{
    background:linear-gradient(135deg,var(--sm-naranja),var(--sm-naranja-osc));
    color:#fff;
  }
}

/* =========================================================
   ÁREA TÁCTIL
   Los enlaces sueltos (no los que van dentro de una frase)
   necesitan al menos ~44px de alto para tocarse sin fallar.
   ========================================================= */
.sm-enlace-cta{
  display:inline-block;
  padding:10px 2px;
  min-height:44px;
  line-height:24px;
}

@media (max-width: 720px){
  /* El teléfono de la barra superior es un objetivo real, no texto */
  .sm-topbar-inner a{ min-height:40px; align-items:center; }

  /* La etiqueta de categoría en mayúsculas se queda corta a 11px */
  .sm-stores-grid span[style*="text-transform"]{ font-size:12px!important; }
}

/* Área táctil mínima de 44px en los enlaces del menú desplegable */
.sm-menu-movil a{ min-height:46px; display:flex; align-items:center; }

/* =========================================================
   FAQ  (bloque nuevo, pensado para búsquedas y para que los
   motores generativos puedan citar respuestas cortas)
   ========================================================= */
.sm-faq details{
  background:#fff; border:1px solid rgba(255,173,18,.28);
  border-radius:16px; padding:0; margin:0 0 12px;
  box-shadow:0 10px 26px -22px rgba(31,36,43,.5);
}
.sm-faq summary{
  cursor:pointer; list-style:none; padding:18px 22px;
  font-family:'Baloo 2',cursive; font-weight:600; font-size:17.5px;
  color:var(--sm-tinta); display:flex; align-items:center; justify-content:space-between; gap:14px;
}
.sm-faq summary::-webkit-details-marker{ display:none; }
.sm-faq summary::after{
  content:'+'; color:var(--sm-naranja-osc); font-size:24px; line-height:1; flex:0 0 auto;
}
.sm-faq details[open] summary::after{ content:'−'; }
.sm-faq details > div{
  padding:0 22px 20px; color:var(--sm-texto); font-size:15.5px; line-height:1.65;
}

/* =========================================================
   FORMULARIO (landing de renta de locales)
   ========================================================= */
.sm-form{ display:grid; gap:14px; }
.sm-form label{
  font-weight:600; font-size:13px; letter-spacing:.6px;
  color:var(--sm-tinta); display:block; margin-bottom:6px;
}
.sm-form input, .sm-form select, .sm-form textarea{
  width:100%; font-family:'Poppins',sans-serif; font-size:16px; /* 16px evita el zoom de iOS */
  padding:13px 15px; border-radius:12px; border:1.5px solid rgba(31,36,43,.18);
  background:#fff; color:var(--sm-tinta);
}
.sm-form textarea{ min-height:110px; resize:vertical; }
.sm-form .sm-fila{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:720px){ .sm-form .sm-fila{ grid-template-columns:1fr; } }
.sm-form button{
  min-height:54px; border:0; border-radius:999px; cursor:pointer;
  font-family:'Poppins',sans-serif; font-weight:700; font-size:16.5px; color:#fff;
  background:linear-gradient(135deg,var(--sm-naranja),var(--sm-naranja-osc));
  box-shadow:0 14px 30px -12px rgba(232,120,0,.75);
}
.sm-form button:hover{ filter:brightness(1.06); }

/* =========================================================
   IMPRESIÓN
   ========================================================= */
@media print{
  .sm-barra-movil, .sm-burger, header, video, iframe{ display:none!important; }
  body{ background:#fff!important; }
}
