 :root {
   --rosa: #ffb899;
   --blanco: #fefefe;
   --blanco_gris: #f0f0f0;
   --gris: #919496;
   --naranja: #ff620e;
   --bg: #0f0f10;
   --card: #151518;
   --text: #f5f6f7;
   --muted: #a9adb3;
   --brand: #ff620e;
   --brand-2: #ffb899;
   --faq-text: var(--text, #f5f6f7);
   --faq-muted: var(--muted, #a9adb3);
   --faq-card: var(--card, #151518);
   --faq-border: rgba(255, 255, 255, .08);
   --faq-accent: var(--brand, #ff620e);

 }

 body {

   background-color: var(--blanco_gris);
   margin: 0;
   font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
 }


 /* Slider  */
 .slider-ml {
   display: flex;
   overflow-x: auto;
   scroll-snap-type: x mandatory;
   scroll-snap-stop: always;
   -webkit-overflow-scrolling: touch;
   gap: 0;
   /* sin separación entre slides */
   margin: 0;
   padding: 0;
   background: transparent;
 }

 .slider-ml::-webkit-scrollbar {
   display: none;
 }

 .slide {
   flex: 0 0 100%;
   scroll-snap-align: start;
   position: relative;
   max-width: 100%;
   overflow: hidden;
 }

 .slide img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   /* llena sin deformar */
 }

 /* SOLO móvil: altura compacta */
 @media (max-width: 768px) {
   .slider-ml {
     height: 200px;
   }

   .slide {
     height: 100%;
   }
 }

 /*///////////////////////////// */
 /* ===== Desktop / Laptop ===== */
 @media (min-width: 769px) {

   /* Slider grande */
   .slider-ml {
     height: 420px;
     /* alto tipo ML */
     overflow: hidden;
     /* no barra en desktop */
     position: relative;

   }

   .slide {
     position: relative;
     height: 100%;
   }

   .slide img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     position: relative;
     z-index: 0;
   }

   /* Dots centrados sobre el banner (como ML) */
   .slider-dots {
     z-index: 2;
   }

   /* Tarjetas "encimadas" al slider */
   .productos-ml {
     position: relative;
     z-index: 3;
     max-width: 1200px;
     margin: -100px auto 0;
     padding: 0 24px 24px;
     background: #f5f5f5;
   }

   /* Tarjetas un poco más anchas en desktop */
   .productos-wrapper {
     padding-bottom: 12px;
   }

   .producto {
     min-width: 260px;
   }
 }

 /* Articulos */
 .productos-ml {
   padding: 20px;
   background: transparent;
   position: relative;

 }

 .productos-wrapper {
   display: flex;
   gap: 16px;
   overflow-x: auto;
   /* scroll, pero oculto */
   scroll-snap-type: x mandatory;
   padding: 8px 0 10px;
   -webkit-overflow-scrolling: touch;
 }

 /* Ocultar scrollbar en todos los navegadores */
 .productos-wrapper::-webkit-scrollbar {
   display: none;
 }

 .productos-wrapper {
   scrollbar-width: none;
   -ms-overflow-style: none;
 }

 .producto {
   background: white;
   border-radius: 8px;
   padding: 10px;
   scroll-snap-align: start;
   box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
   text-align: center;
 }

 /* --- Responsivo vista --- */
 @media (max-width: 768px) {
   .producto {
     flex: 0 0 200px;
   }
 }

 @media (min-width: 769px) and (max-width: 1023px) {

   /* tablet chica: 4 por vista */
   .producto {
     flex: 0 0 calc((100% - 3*16px) / 4);
   }
 }

 @media (min-width: 1024px) {

   /* laptop/PC*/
   .producto {
     flex: 0 0 calc((100% - 4*16px) / 5);
   }
 }

 /* --- FIX: centrar flechas dentro del círculo --- */
 .prod-nav {
   /* caja */
   width: 40px;
   height: 40px;
   border: 0;
   border-radius: 999px;
   background: #fff;
   box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
   color: var(--naranja);
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   z-index: 5;
   cursor: pointer;

   /* oculto en móvil por defecto */
   display: none;

   /* quitar efectos del baseline del texto */
   padding: 0;
   line-height: 0;
   /* importante */
   text-align: center;
   /* por si acaso */
   /* NO definas font-size grande aquí; va abajo */
 }

 /* Mostrar en >=769px y centrar con grid */
 @media (min-width: 769px) {
   .prod-nav {
     display: grid;
     /* más preciso que flex para centrar un solo hijo */
     place-items: center;
     line-height: 0;
     font-size: 0;
     /* tamaño real de la flecha */
   }
 }

 /* Opcional: si usas <span>, <i> o <svg> dentro del botón, mejora el centrado */
 .prod-nav>span,
 .prod-nav>i,
 .prod-nav>svg {
   display: block;
   line-height: 1;
 }

 /* Si usas SVG, dale caja exacta */
 .prod-nav>svg {
   width: 22px;
   height: 22px;
 }

 /* Ajustes finos por tipografía (si la ves 1px desfasada) */
 .prod-prev {
   left: 8px;
 }

 .prod-next {
   right: 8px;
 }

 .prod-nav .nudgeY {
   transform: translateY(0.5px);
 }

 /* usar solo si lo notas necesario */


 .prod-prev::before,
 .prod-next::before {
   display: block;
   font-size: 40px;
   /* tamaño de la flecha */
   line-height: 1;
   color: var(--naranja);
   transform: translateY(-2.5px);
   /* súbela; prueba -1px o -2px según veas */
   content: '';
 }

 .prod-prev::before {
   content: '‹';
 }

 .prod-next::before {
   content: '›';
 }


 .producto img {
   width: 100%;
   height: 150px;
   object-fit: contain;
 }

 .producto h3 {
   font-size: 16px;
   margin: 10px 0 5px;
   color: #333;
 }

 .producto .precio {
   font-weight: bold;
   color: #00a650;
   margin-bottom: 8px;
 }

 .producto button {
   background: linear-gradient(180deg, var(--naranja) 0%, #ff5a00 100%);
   color: white;
   border: none;
   padding: 8px 12px;
   border-radius: 10px;
   margin: 15px;
   cursor: pointer;
   font-size: 14px;
   display: inline-block;
   font-weight: 700;
   transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
   box-shadow: 0 4px 12px rgba(255, 98, 14, .3);
 }

 .producto button:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 18px rgba(255, 98, 14, .45);
   filter: brightness(1.05);
 }

 .producto button:active {
   transform: translateY(0);
 }



 /* /////////////////////// */
 /* ===== Reglas del lugar (sección hero) ===== */
 .reglas-hero {
   position: relative;
   isolation: isolate;
   padding: 56px 16px 72px;
   margin: -28px auto 0;
   background:
     radial-gradient(1200px 400px at 50% -150px, rgba(255, 98, 14, .18), transparent 0%),
     linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(240, 240, 240, 1) 100%);
 }

 .reglas-wrap {
   max-width: 1200px;
   margin: 0 auto;
 }

 .reglas-head {
   text-align: center;
   margin-bottom: 28px;
 }

 .reglas-badge {
   display: inline-block;
   font-size: 12px;
   letter-spacing: .08em;
   text-transform: uppercase;
   padding: 6px 12px;
   border-radius: 999px;
   background: rgba(255, 98, 14, .12);
   color: var(--naranja);
   font-weight: 700;
   margin-bottom: 8px;
 }

 .reglas-title {
   font-size: clamp(22px, 3.4vw, 36px);
   line-height: 1.1;
   margin: 0;
   color: #222;
 }

 .reglas-sub {
   font-size: clamp(14px, 2.2vw, 16px);
   color: #555;
   margin-top: 8px;
 }

 /* Grid responsivo */
 .reglas-grid {
   list-style: none;
   padding: 0;
   margin: 28px 0 0;
   display: grid;
   grid-template-columns: 1fr;
   gap: 16px;
 }

 @media (min-width: 600px) {
   .reglas-grid {
     grid-template-columns: repeat(2, minmax(0, 1fr));
   }
 }

 @media (min-width: 1024px) {
   .reglas-grid {
     grid-template-columns: repeat(3, minmax(0, 1fr));
   }
 }

 /* Tarjeta estilo */
 .regla-card {
   position: relative;
   padding: 18px 16px 16px 16px;
   border-radius: 16px;
   background: rgba(255, 255, 255, .75);
   box-shadow:
     0 10px 30px rgba(0, 0, 0, .08),
     inset 0 0 0 1px rgba(255, 255, 255, .35);
   backdrop-filter: blur(8px);
   -webkit-backdrop-filter: blur(8px);
   overflow: hidden;
 }

 /* Borde-gradiente*/
 .regla-card::before {
   content: "";
   position: absolute;
   inset: 0;
   border-radius: 16px;
   padding: 1px;
   background: linear-gradient(135deg, rgba(255, 98, 14, .6), rgba(255, 184, 153, .6), rgba(255, 255, 255, .2));
   -webkit-mask:
     linear-gradient(#000 0 0) content-box,
     linear-gradient(#000 0 0);
   -webkit-mask-composite: xor;
   mask-composite: exclude;
   opacity: .75;
   pointer-events: none;
 }

 /* Brillo suave al hover */
 @media (hover:hover) {
   .regla-card:hover {
     transform: translateY(-2px);
     box-shadow:
       0 14px 34px rgba(0, 0, 0, .10),
       inset 0 0 0 1px rgba(255, 255, 255, .45);
     transition: transform .25s ease, box-shadow .25s ease;
   }
 }

 /* Cabecera de cada regla */
 .regla-top {
   display: flex;
   align-items: center;
   gap: 10px;
   margin-bottom: 8px;
 }

 .regla-icon {
   width: 38px;
   height: 38px;
   display: grid;
   place-items: center;
   border-radius: 12px;
   background: rgba(255, 98, 14, .12);
 }

 .regla-title {
   margin: 0;
   font-size: 16px;
   color: #222;
   font-weight: 800;
 }

 /* Texto */
 .regla-desc {
   margin: 0;
   color: #444;
   font-size: 14px;
 }

 /* Nota final */
 .reglas-note {
   margin-top: 20px;
   font-size: 13px;
   color: #555;
   text-align: center;
 }

 /* Preferencias de movimiento  */
 @media (prefers-reduced-motion: reduce) {

   .regla-card,
   .regla-card:hover {
     transition: none;
     transform: none;
   }
 }

 /* ===== Override para ESCRITORIO ===== */
 @media (min-width: 1024px) {

   /* Fondo limpio y ancho completo */
   .reglas-hero {
     padding: 48px 0 56px;
     margin: -px 0 0;
     background:
       radial-gradient(1200px 400px at 50% -150px, rgba(255, 98, 14, .18), transparent 0%),
       linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(240, 240, 240, 1) 100%);
   }

   .reglas-wrap {
     max-width: none;
     /* ancho completo */
     padding: 0 32px;
     /* respiración en bordes */
   }

   /* Grid en 2 columnas amplias  */
   .reglas-grid {
     grid-template-columns: repeat(2, minmax(0, 1fr));
     gap: 20px 32px;
     margin-top: 24px;
   }

   /* Tarjeta minimal: sin blur, sin sombra, solo borde */
   .regla-card {
     background: #fff;
     backdrop-filter: none;
     -webkit-backdrop-filter: none;
     box-shadow: none;
     border-radius: 14px;
     padding: 16px 18px;
     border: 1px solid rgba(0, 0, 0, .06);
   }

   .regla-card::before {
     display: none;
   }

   /* quita el borde gradiente del móvil */

   /* Cabecera comprimida */
   .regla-top {
     gap: 12px;
     margin-bottom: 6px;
   }

   .regla-icon {
     font-size: 40px;
     width: 53px;
     height: 53px;
     border-radius: 10px;
     background: rgba(255, 98, 14, .10);
   }

   .regla-title {
     font-size: 25px;
     color: #1f1f1f;
   }

   /* Texto */
   .regla-desc {
     font-size: 20px;
     color: #4a4a4a;
   }

   /* Título centrado  */
   .reglas-title {
     font-size: 45px;
   }

   .reglas-sub {
     color: #666;
     font-size: 24px;
   }

   /* Nota final alineada al centro con menos ruido visual */
   .reglas-note {
     color: #666;
     font-size: 20px;
   }

   .reglas-badge {
     display: inline-block;
     font-size: 30px;
     letter-spacing: .08em;
     text-transform: uppercase;
     padding: 6px 12px;
     border-radius: 999px;
     background: rgba(255, 98, 14, .12);
     color: var(--naranja);
     font-weight: 700;
     margin-bottom: 8px;
   }
 }

 @media (min-width: 1440px) {
   .reglas-grid {
     grid-template-columns: repeat(3, minmax(0, 1fr));
   }
 }

 /* ===== Modal Agregar al carrito ===== */
 :root {
   --overlay: rgba(0, 0, 0, .55);
   --modal-bg: #fff;
   --modal-text: #222;
   --modal-muted: #666;
 }

 /* === layout a 2 columnas dentro del modal === */
 .modal-body {
   padding: 16px;
 }

 .modal-cols {
   display: grid;
   grid-template-columns: 1.2fr .8fr;
   gap: 16px;
 }

 .modal-col {
   min-width: 0;
 }

 /* Descripción */
 .modal-desc {
   border-left: 1px solid rgba(0, 0, 0, .06);
   padding-left: 16px;
 }

 .modal-desc-title {
   margin: 4px 0 10px;
   font-size: 14px;
   font-weight: 800;
   color: #333;
 }

 .modal-desc-text {
   max-height: 160px;
   overflow: auto;
   line-height: 1.55;
   color: #444;
   font-size: 14px;
 }

 /* Responsive: en móvil se apilan */
 @media (max-width: 640px) {
   .modal-cols {
     grid-template-columns: 1fr;
   }

   .modal-desc {
     border-left: 0;
     padding-left: 0;
     border-top: 1px solid rgba(0, 0, 0, .06);
     padding-top: 12px;
   }
 }

 .modal {
   position: fixed;
   inset: 0;
   display: none;
   /* oculto por defecto */
   place-items: center;
   background: var(--overlay);
   z-index: 9999;
   padding: 16px;
 }

 .modal.is-open {
   display: grid;
 }

 .modal-dialog {
   max-width: 520px;
   width: 100%;
   box-sizing: border-box;
   background: var(--modal-bg);
   color: var(--modal-text);
   border-radius: 16px;
   box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
   overflow: hidden;
   border: 1px solid rgba(0, 0, 0, .06);
 }

 .modal-header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: 14px 16px;
   border-bottom: 1px solid rgba(0, 0, 0, .06);
   background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
 }

 .modal-title {
   margin: 0;
   font-size: 18px;
   font-weight: 800;
   color: #1f1f1f;
 }

 .modal-close {
   background: transparent;
   border: 0;
   font-size: 22px;
   line-height: 1;
   cursor: pointer;
   color: var(--gris);
 }

 .modal-body {
   display: grid;
   gap: 14px;
   padding: 16px;
 }

 .modal-product {
   display: grid;
   grid-template-columns: 110px 1fr;
   gap: 14px;
   align-items: start;
 }

 .modal-product img {
   width: 100%;
   height: 100px;
   object-fit: cover;
   border-radius: 10px;
   border: 1px solid rgba(0, 0, 0, .06);
 }

 .modal-name {
   margin: 6px 0 2px;
   font-weight: 700;
   color: #222;
 }

 .modal-meta {
   margin: 0;
   color: var(--modal-muted);
   font-size: 13px;
 }

 .qty-row {
   display: flex;
   align-items: center;
   gap: 10px;
   margin-top: 4px;
 }

 .qty-btn {
   width: 38px;
   height: 38px;
   border-radius: 10px;
   border: 1px solid rgba(0, 0, 0, .12);
   background: #fff;
   cursor: pointer;
   font-size: 18px;
   font-weight: 800;
   color: #222;
   transition: transform .12s ease, filter .12s ease;
 }

 .qty-btn:hover {
   filter: brightness(1.03);
 }

 .qty-btn:active {
   transform: translateY(1px);
 }

 .qty-value {
   min-width: 44px;
   text-align: center;
   font-weight: 800;
   font-size: 16px;
   color: #111;
   padding: 8px 10px;
   border-radius: 8px;
   border: 1px dashed rgba(0, 0, 0, .12);
   background: #fff;
 }

 .modal-footer {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 10px;
   padding: 0 16px 16px;
 }

 .btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   padding: 12px 14px;
   border-radius: 12px;
   cursor: pointer;
   font-weight: 700;
   border: 0;
   transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
 }

 .btn:active {
   transform: translateY(1px);
 }

 .btn-cancel {
   background: #f1f3f5;
   color: #333;
   border: 1px solid rgba(0, 0, 0, .08);
 }

 .btn-primary {
   background: linear-gradient(180deg, var(--naranja) 0%, #ff5a00 100%);
   color: #fff;
   box-shadow: 0 8px 18px rgba(255, 98, 14, .35);
 }

 .btn-primary:hover {
   filter: brightness(1.05);
 }


 @media (prefers-color-scheme: dark) {
   .modal-dialog {
     background: #fff;
     color: #f5f6f7;
     border-color: rgba(255, 255, 255, .06);
   }

   .modal-header {
     background: linear-gradient(180deg, #ffb899 0%);
     border-color: #ff620e;
   }

   .modal-close {
     color: #1f1f1f;
   }

   .modal-product img {
     border-color: rgba(255, 255, 255, .08);
   }

   .qty-btn {
     background: #919496;
     color: #fff;
     border-color: rgba(255, 255, 255, .10);
   }

   .qty-value {
     background: #f0f0f0;
     color: #666;
     border-color: #a9adb3;
   }

   .btn-cancel {
     background: #a9adb3;
     color: #fff;
     border-color: rgba(255, 255, 255, .10);
   }
 }

 /* Precios en el modal */
 .price-wrap {
   margin-top: 10px;
   padding-top: 0px;
   border-top: 1px dashed rgba(0, 0, 0, .12);
   display: grid;
   gap: 6px;
 }

 .price-line strong {
   font-size: 16px;
   color: #00a650;
   /* mismo verde que usas en .precio */
 }

 @media (prefers-color-scheme: dark) {
   .price-wrap {
     border-top-color: rgba(255, 255, 255, .12);
   }

 }



      /* ESTILOS DE PREGUNTAS FRECUENNTES */
      .faq-hero {
        background:
          radial-gradient(900px 500px at 90% -10%, #ffffffff 20%, transparent 60%),
          linear-gradient(180deg, #ffffffff 0%, #ffb899 100%);
        color: var(--naranja);
        border-radius: 22px;
        border: 1px solid var(--faq-border);
        box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
        padding: 36px 16px;
        /* móvil: laterales y vertical */
        margin: 28px auto;
        max-width: 980px;
        /* móvil/tablet por defecto */
      }

      /* Cabecera */
      .faq-eyebrow {
        display: inline-flex;
        gap: 8px;
        align-items: center;
        color: var(--blanco);
        font-size: .92rem;
        letter-spacing: .04em;
        background: rgba(255, 98, 14, .45);
        border: 1px solid rgba(255, 255, 255, .07);
        padding: 8px 12px;
        border-radius: 999px;
      }

      .faq-title {
        margin: 12px 0 4px;
        font-weight: 800;
        font-size: clamp(24px, 5.5vw, 34px);
        line-height: 1.05;
      }

      .faq-sub {
        color: #666;
        font-size: clamp(14px, 3.5vw, 16px);
        margin-bottom: 16px;
      }

      /* Lista de preguntas */
      .faq-list {
        display: grid;
        gap: 10px;
        margin-top: 12px;

      }

      /* Item */
      .faq-item {

        /* border: 1px solid var(--gris);*/

        background: transparent !important;
        position: relative;
        border-radius: 16px;
        overflow: hidden;
        /* sutil elevación sin caja opaca */
        transition: transform .2s ease, box-shadow .2s ease, background .2s ease;

      }

      .faq-item::before {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: 16px;
        padding: 1px;
        background: linear-gradient(135deg,
            rgba(255, 98, 14, .55),
            rgba(255, 184, 153, .55),
            rgba(0, 0, 0, .15));
        -webkit-mask:
          linear-gradient(#000 0 0) content-box,
          linear-gradient(#000 0 0);
        -webkit-mask-composite: xor;
        mask-composite: exclude;
        /* deja solo el borde */
        pointer-events: none;
        opacity: .9;
      }

      /* Botón de pregunta */
      .faq-q {
        color: #1f1f1f;
        padding: 16px 18px;
        border: 0;
      }

      .faq-q:hover {
        background: rgba(255, 255, 255, .55);
      }

      .faq-q:focus-visible {
        outline: 2px solid var(--faq-accent);
        outline-offset: 2px;
      }

      /* Icono +/– */
      .faq-icon {
        background: rgba(255, 255, 255, .35);
        box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06);
      }

      .faq-item[aria-expanded="true"]::after {
        content: "";
        position: absolute;
        inset: 0 0 0 0;
        border-left: 4px solid transparent;
        border-image: linear-gradient(180deg, #ff620e, #ffb899) 1;
        pointer-events: none;
      }


      /* cambia + a × */

      /* Respuesta con colapso */
      .faq-q,
      .faq-a-wrap {
        border-top: 1px dashed rgba(0, 0, 0, .08);
      }

      .faq-a {
        color: #333;
        padding: 0 18px 16px 18px;
      }

      @media (hover:hover) {
        .faq-item:hover {
          transform: translateY(-1px);
          box-shadow: 0 10px 24px rgba(0, 0, 0, .08);
        }
      }





      /* ====== Controles de Desktop/Laptop ====== */
      @media (min-width: 1024px) {

        .faq-hero,
        .suc-hero {
          margin-left: auto;
          margin-right: auto;
          /* ~2vw de margen por lado; se adapta al cambiar el ancho */
          width: min(1500px, 96vw);
          /* relleno interno discreto que también escala */
          padding-left: clamp(24px, 2vw, 48px);
          padding-right: clamp(24px, 2vw, 48px);
        }

        /* TIPOGRAFÍA desktop */
        .faq-title {
          font-size: 48px;
          letter-spacing: .2px;
          margin-bottom: 6px;

        }

        .faq-sub {
          font-size: 18px;
          color: #666;
        }

        .faq-q {
          font-size: 18px;
          padding: 18px 20px;
        }

        .faq-a {
          font-size: 16px;
          padding: 0 20px 20px 20px;
        }

        .faq-icon {
          width: 26px;
          height: 26px;
          border-radius: 10px;
        }
      }

      /* Accesibilidad: reducir movimiento */
      @media (prefers-reduced-motion: reduce) {
        .faq-a-wrap {
          transition: none !important;
        }

        .reveal {
          opacity: 1;
          transform: none;
        }
      }

      /* ===== Sucursales (hero minimalista con mapa) ===== */
      :root {
        --suc-text: var(--text, #f5f6f7);
        --suc-muted: var(--muted, #a9adb3);
        --suc-card: var(--card, #151518);
        --suc-border: rgba(255, 255, 255, .08);
        --suc-accent: var(--brand, #ff620e);
      }

      .suc-hero {
        background:
          radial-gradient(1000px 520px at 0% -10%, rgba(255, 255, 255, 0.14) 12%, transparent 60%),
          linear-gradient(180deg, #ffffffff 0%, #ffb899 100%);
        color: var(--naranja);
        border: 1px solid var(--suc-border);
        border-radius: 22px;
        box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
        padding: 28px 16px;
        margin: 28px auto;
        max-width: 980px;
      }

      .suc-eyebrow {
        display: inline-flex;
        gap: 8px;
        align-items: center;
        color: var(--blanco);
        font-size: .92rem;
        letter-spacing: .04em;
        background: rgba(255, 98, 14, .45);
        border: 1px solid rgba(255, 255, 255, .07);
        padding: 8px 12px;
        border-radius: 999px;

      }

      .suc-title {
        margin: 12px 0 4px;
        font-weight: 800;
        font-size: clamp(24px, 5.5vw, 48px);
        line-height: 1.05;
      }

      .suc-sub {
        color: #666;
        font-size: clamp(14px, 3.5vw, 16px);
        margin-bottom: 16px;
      }

      .suc-grid {
        display: grid;
        gap: 14px;
      }

      @media (min-width: 980px) {
        .suc-grid {
          grid-template-columns: 1.05fr 1fr;
          gap: 18px;
        }
      }

      .suc-list {
        background: #15151800;
        border: 1px solid #1515186e;
        border-radius: 16px;
        padding: 10px;
        max-height: min(60vh, 520px);
        overflow: auto;
      }

      .suc-card {
        display: grid;
        gap: 4px;
        padding: 12px;
        border-radius: 12px;
        cursor: pointer;
        transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
      }

      .suc-card:hover {
        background: #00000020;
        transform: translateY(-1px);
      }

      .suc-card.is-active {
        outline: 2px solid var(--suc-accent);
        background: rgba(255, 98, 14, .08);
      }

      .suc-card h3 {
        margin: 0;
        font-size: 16px;
      }

      .suc-card .meta {
        color: #666;
        font-size: 13px;
      }

      .suc-map {
        border-radius: 16px;
        overflow: hidden;
        border: 1px solid var(--suc-border);
        background: #0f0f10;
        height: min(60vh, 520px);
      }

      @media (max-width: 979px) {
        .suc-map {
          height: min(55vh, 420px);
        }
      }

      /* Aparición on-scroll (reusa tu .reveal) */
      .reveal {
        opacity: 0;
        transform: translateY(12px);
        transition: opacity .5s ease, transform .5s ease;
      }

      .reveal.is-visible {
        opacity: 1;
        transform: none;
      }


      /* Gutter lateral solo en vista móvil */
      @media (max-width: 768px) {

        .faq-hero,
        .fiesta-hero,
        .suc-hero {
          /* separa un poco de las orillas del teléfono */
          margin-inline: clamp(12px, 4vw, 16px);
          /* opcional: suaviza las esquinas cuando hay margen */
          border-radius: 18px;
        }
      }



      .suc-card .row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        flex-wrap: wrap;
      }

      .suc-card h3 {
        margin: 0;
        font-size: 16px;
        flex: 1 1 auto;
      }

      .suc-open {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 8px 12px;
        border-radius: 999px;
        border: 1px solid rgba(0, 0, 0, .12);
        background: var(--naranja);
        text-decoration: none;
        font-weight: 700;
        white-space: nowrap;
        color: var(--blanco, #ffffffff);
        transition: background .2s ease, transform .2s ease, filter .2s ease;
      }

      .suc-open:hover {
        background: #5c413573;
        filter: brightness(1.03);
      }

      .suc-open:active {
        transform: translateY(1px);
      }

      .suc-open .ico {
        font-size: 14px;
        line-height: 1;
      }

      /* ===== FAQ: sin tocar .faq-hero; ítems transparentes con buena presencia ===== */

      /* 0) Restituye el colapso suave por altura (por si alguna regla previa lo tapó) */
      .faq-a-wrap {
        height: 0;
        overflow: hidden;
        transition: height .28s ease;
        will-change: height;
      }

      /* 1) Ítem base sin color sólido, con borde degradado ligero */
      .faq-item {
        background: transparent;
        position: relative;
        border-radius: 16px;
        overflow: hidden;
        transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
      }

      .faq-item::before {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: 16px;
        padding: 1px;
        background: linear-gradient(135deg,
            rgba(255, 98, 14, .55),
            rgba(255, 184, 153, .55),
            rgba(0, 0, 0, .15));
        -webkit-mask:
          linear-gradient(#000 0 0) content-box,
          linear-gradient(#000 0 0);
        -webkit-mask-composite: xor;
        mask-composite: exclude;
        /* deja solo el borde */
        pointer-events: none;
        opacity: .9;
      }

      /* 2) Superficies internas translúcidas (vidrio), sin “bloque” blanco */
      .faq-q,
      .faq-a-wrap {
        background: transparent;
        /* vidrio oscuro para que no se pierda */
        backdrop-filter: blur(6px) saturate(1.05);
        -webkit-backdrop-filter: blur(6px) saturate(1.05);
      }

      /* 3) Botón de pregunta: tipografía y estados */
      .faq-q {
        color: #151518;
        padding: 16px 18px;
        border: 0;
        /* quita el dashed aquí */
      }

      .faq-q:hover {
        background: rgba(255, 98, 14, .35);
      }

      .faq-q:focus-visible {
        outline: 2px solid var(--faq-accent);
        outline-offset: 2px;
      }

      /* 4) Icono “＋”: tamaño, rotación al abrir y mejor contraste */
      .faq-icon {
        width: 24px;
        height: 24px;
        display: grid;
        place-items: center;
        border-radius: 8px;
        background: rgba(255, 255, 255, .12);
        transition: transform .25s ease, background .2s ease;
      }

      .faq-item[aria-expanded="true"] .faq-icon {
        transform: rotate(45deg);
        /* “＋” -> “×” */
        background: rgba(255, 98, 14, .25);
      }

      /* 5) Respuesta: separación y color legible */
      .faq-a-wrap {
        border-top: 1px dashed rgba(255, 255, 255, .12);
        /* el dashed va SOLO aquí */
      }

      .faq-a {
        color: #666;
        padding: 0 18px 16px 18px;
      }

      /* 6) Elevación sutil del ítem */
      @media (hover:hover) {
        .faq-item:hover {
          transform: translateY(-1px);
          box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
        }
      }

      /* 7) Ajuste para modo claro: NO blanco; translúcido suave compatible con tu fondo */
      @media (prefers-color-scheme: light) {

        .faq-q,
        .faq-a-wrap {
          background: rgba(255, 255, 255, .14);
        }

        .faq-q {
          color: #1f1f1f;
        }

        .faq-a {
          color: #2a2d31;
        }

        .faq-a-wrap {
          border-top-color: rgba(0, 0, 0, .12);
        }

        .faq-icon {
          background: rgba(0, 0, 0, .06);
        }

        .faq-item[aria-expanded="true"] .faq-icon {
          background: rgba(255, 98, 14, .18);
        }
      }

      /* 8) Mantén tu tamaño de icono en desktop si lo subes después */
      @media (min-width: 1024px) {
        .faq-icon {
          width: 26px;
          height: 26px;
        }
      }

      /* FIX posición del ícono +/× en FAQ */
      .faq-q {
        display: grid;
        /* texto | icono */
        grid-template-columns: 1fr auto;
        align-items: center;
        gap: 12px;
        width: 100%;
        text-align: left;
      }

      .faq-icon {
        justify-self: end;
        /* pegado al borde derecho (dentro del padding) */
      }

      /* ===== CTA Responsiva (formulario / carta responsiva) — FULL BLEED + GLASS ===== */
      .responsiva-cta {
        position: relative;
        overflow: hidden;
        /* FULL BLEED: ocupa todo el ancho de la ventana para que los puercos toquen las orillas */
        width: auto;
        margin: 40px calc(50% - 50vw);
        /* separa de otras secciones */
        border-radius: 0;
        box-sizing: border-box;
        padding: clamp(40px, 6vw, 72px) clamp(16px, 3vw, 28px);
        color: #141516;

        /* fondo nuevo más vistoso */
        background:
          radial-gradient(1200px 600px at 50% -20%, rgba(255, 184, 153, .55), transparent 60%),
          conic-gradient(from 210deg at 50% 50%, #fff 0 25%, #ffe9dd 25% 50%, #ffd7c3 50% 75%, #fff 75% 100%);
        border-top: 1px solid rgba(0, 0, 0, .06);
        border-bottom: 1px solid rgba(0, 0, 0, .06);
        box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .05), inset 0 1px 0 rgba(255, 255, 255, .35);
      }

      /* Contenido centrado con tarjeta “glass” */
      .resp-body {
        max-width: min(1100px, 92vw);
        margin: 0 auto;
        display: grid;
        grid-template-columns: 1.05fr;
        gap: 18px;
        position: relative;
        z-index: 2;
      }

      @media (min-width: 900px) {
        .resp-body {
          grid-template-columns: 1.1fr .9fr;
          align-items: center;
        }
      }

      /* Tarjeta glass para el texto */
      .resp-card {
        border-radius: 20px;
        padding: clamp(20px, 3vw, 32px);
        background: rgba(255, 255, 255, .55);
        -webkit-backdrop-filter: blur(10px) saturate(1.1);
        backdrop-filter: blur(10px) saturate(1.1);
        box-shadow: 0 20px 40px rgba(0, 0, 0, .15);
        border: 1px solid rgba(0, 0, 0, .06);
      }

      .resp-eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 8px 12px;
        border-radius: 999px;
        background: rgba(255, 98, 14, .15);
        border: 1px solid rgba(0, 0, 0, .06);
        font-weight: 700;
        font-size: .92rem;
      }

      .resp-title {
        margin: .6rem 0 .25rem;
        font-weight: 900;
        font-size: clamp(26px, 5.5vw, 44px);
        line-height: 1.05;
      }

      .resp-sub {
        color: #444;
        font-size: clamp(14px, 2.8vw, 18px);
        margin-bottom: 20px;
      }

      /* Lista de bullets para hacerlo más atractivo */
      .resp-bullets {
        display: grid;
        gap: 10px;
        margin: 8px 0 18px;
        color: #2a2d31;
        font-size: clamp(14px, 2.6vw, 16px);
      }

      .resp-bullets li {
        display: flex;
        align-items: center;
        gap: 10px;
      }

      .resp-badge {
        display: inline-grid;
        place-items: center;
        width: 24px;
        height: 24px;
        border-radius: 8px;
        background: rgba(255, 98, 14, .18);
        border: 1px solid rgba(0, 0, 0, .06);
        font-weight: 900;
      }

      /* Botón con pulso (mismo comportamiento) */
      .resp-actions {
        display: flex;
        align-items: center;
        gap: 12px;
        flex-wrap: wrap;
      }

      .resp-btn {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        font-weight: 800;
        letter-spacing: .3px;
        padding: 16px 24px;
        border-radius: 16px;
        background: linear-gradient(180deg, var(--brand, #ff620e) 0%, #ff5a00 100%);
        color: #fff;
        text-decoration: none;
        position: relative;
        box-shadow: 0 12px 24px rgba(255, 98, 14, .35);
        transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
        isolation: isolate;
      }

      .resp-btn:hover {
        transform: translateY(-2px);
        filter: brightness(1.03);
        box-shadow: 0 18px 32px rgba(255, 98, 14, .45);
      }

      .resp-btn:active {
        transform: translateY(0);
      }

      .resp-btn::after {
        content: "";
        position: absolute;
        inset: -6px;
        border-radius: 20px;
        border: 2px solid rgba(255, 98, 14, .45);
        opacity: .9;
        animation: ring 1.6s ease-out infinite;
      }

      @keyframes ring {
        0% {
          transform: scale(.9);
          opacity: .9
        }

        100% {
          transform: scale(1.15);
          opacity: 0
        }
      }

      .resp-note {
        margin-top: 6px;
        font-size: .92rem;
        color: #555;
      }

      /* Lado visual (ilustración/escudo) */
      .resp-illu {
        min-height: 220px;
        border-radius: 20px;
        border: 1px solid rgba(0, 0, 0, .06);
        background:
          radial-gradient(180px 140px at 20% 30%, rgba(255, 98, 14, .35), transparent 60%),
          radial-gradient(220px 160px at 85% 70%, rgba(255, 184, 153, .28), transparent 60%),
          linear-gradient(180deg, rgba(255, 255, 255, .45), rgba(255, 255, 255, .15));
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35);
      }

      /* ===== Puercos: pegados a las orillas del viewport ===== */
      .resp-pig {
        position: absolute;
        top: 50%;
        translate: 0 -50%;
        width: clamp(140px, 22vw, 240px);
        pointer-events: none;
        will-change: transform, opacity;
        filter: drop-shadow(0 8px 20px rgba(0, 0, 0, .25));
        opacity: .0;
        z-index: 1;
      }

      /* alineados EXACTO a las orillas de la ventana */
      .resp-pig.left {
        left: 0;
      }

      .resp-pig.right {
        right: 0;
      }

      /* Mantén tus animaciones */
      @keyframes peekL {
        from {
          transform: translateX(-60%)
        }

        to {
          transform: translateX(0%)
        }
      }

      @keyframes peekR {
        from {
          transform: translateX(60%)
        }

        to {
          transform: translateX(0%)
        }
      }

      @keyframes bob {

        0%,
        100% {
          transform: translateY(-50%)
        }

        50% {
          transform: translateY(calc(-50% - 6px))
        }
      }

      .responsiva-cta.is-visible .resp-pig.left {
        opacity: 1;
        animation: peekL .8s ease-out forwards, bob 5s ease-in-out .8s infinite;
      }

      .responsiva-cta.is-visible .resp-pig.right {
        opacity: 1;
        animation: peekR .8s ease-out forwards, bob 5s ease-in-out .8s infinite;
      }

      /* En móvil no mostramos los puercos para no tapar */
      @media (max-width: 900px) {
        .resp-pig {
          display: none;
        }

        .responsiva-cta {
          margin: 24px 0;
        }
      }

      /* Respeto accesibilidad */
      @media (prefers-reduced-motion: reduce) {

        .resp-pig,
        .resp-btn::after {
          animation: none !important
        }
      }

      /* Solo el puerco derecho más grande */
      .responsiva-cta .resp-pig.right {
        width: clamp(340px, 28.5vw, 570px);
        /* súbele/bájele aquí */
      }

      .responsiva-cta .resp-pig.right img {
        width: 100%;
        height: auto;
        display: block;
      }


      /* FIX: no duplicar desplazamiento vertical */
      .responsiva-cta .resp-pig {
        translate: none;
        /* anula el translate individual de arriba */
        transform: translate(0, -50%);
        /* centrado vertical real */
      }

      /* keyframes que mantienen Y en -50% */
      @keyframes peekR {
        from {
          transform: translate(60%, -50%);
        }

        to {
          transform: translate(0, -50%);
        }
      }

      @keyframes bobImg {

        0%,
        100% {
          transform: translateY(0);
        }

        50% {
          transform: translateY(-6px);
        }
      }

      /* solo peek en el contenedor derecho (sin bob) */
      .responsiva-cta.is-visible .resp-pig.right {
        opacity: 1;
        animation: peekR .8s ease-out forwards;
      }

      /* bob suave en la IMG, para no pelear con el transform del contenedor */
      .responsiva-cta.is-visible .resp-pig.right img {
        animation: bobImg 5s ease-in-out .8s infinite;
      }

      /* ===== FIX desbordamiento lateral (derecha) ===== */

      /* 1) Mata cualquier scroll horizontal por redondeos o vw */
      html,
      body {
        overflow-x: clip;
        /* mejor que hidden; no crea nueva capa de scroll */
      }

      /* 2) Full-bleed de la sección responsiva: usa dvw (evita gap por barra) */
      .responsiva-cta {
        margin: 40px calc(50% - 50vw);
        /* fallback */
        overflow: clip;
        /* evita que hijos absolutos empujen el layout */
        contain: layout paint;
        /* aísla el efecto de transform/absolutos internos */
      }

      @supports (width: 100dvw) {
        .responsiva-cta {
          margin: 40px calc(50% - 50dvw);
        }

        /* corrige el “sobrante” clásico */
      }

   

      /* 4) Imágenes y videos nunca más grandes que su contenedor */
      img,
      video {
        display: block;
        max-width: 100%;
        height: auto;
      }

      /* 5) Si algún absoluto se sale (puerquitos, flechas), no contaminará el ancho */
      .resp-pig,
      .prod-nav {
        max-width: 100%;
        contain: paint;
      }
       /* ---------- Fiesta: variables base (usa tus colores si ya existen) ---------- */
:root{
  --brand:#ff620e;
  --brand-2:#ffb899;
  --ink:#0b0c0e;
  --paper:#ffffff;
}

/* ---------- Sección ---------- */
.fiesta-hero{
  position: relative;
  isolation: isolate;
  overflow: clip;
  min-height: clamp(520px, 70vh, 880px);
  display: grid;
  place-items: center;
  padding: clamp(24px, 4vw, 48px);
  background:
    radial-gradient(1200px 600px at 50% 120%, rgba(255,98,14,.18), transparent 60%),
    linear-gradient(180deg, #0f0f10 0%, #121315 100%);
  border-block: 1px solid rgba(255,255,255,.06);
}

/* Confeti canvas (cubre todo) */
.fiesta-confetti{
  position:absolute; inset:0; width:100%; height:100%;
  z-index:0; pointer-events:none;
}

/* Luces/guirnaldas */
.fiesta-lights{
  position:absolute; inset-inline:0; top:0; height:120px; z-index:1;
  display:flex; justify-content:center; gap:40px; align-items:flex-end;
  pointer-events:none;
}
.fiesta-lights .light{
  width:14px; height:14px; border-radius:50%;
  background: #ffd166;
  box-shadow: 0 0 16px 6px rgba(255,209,102,.65);
  animation: twinkle 2.2s ease-in-out infinite;
}
.fiesta-lights .light:nth-child(2){ background:#06d6a0; animation-delay:.2s; }
.fiesta-lights .light:nth-child(3){ background:#ef476f; animation-delay:.4s; }
.fiesta-lights .light:nth-child(4){ background:#ffd166; animation-delay:.6s; }
.fiesta-lights .light:nth-child(5){ background:#06d6a0; animation-delay:.8s; }
.fiesta-lights .light:nth-child(6){ background:#118ab2; animation-delay:1s; }
@keyframes twinkle{
  0%,100%{ transform:translateY(0) scale(1); opacity:.8 }
  50%{ transform:translateY(-6px) scale(1.15); opacity:1 }
}

/* Puerquitos (PNG transparentes) */
.fiesta-pig{
  position:absolute; bottom:0; z-index:2; will-change:transform, filter;
  filter: drop-shadow(0 12px 30px rgba(0,0,0,.35));
  max-width: min(38vw, 520px);
  user-select:none; pointer-events:none;
}
.pig-left{ left: max(-2vw, -32px); transform-origin: 20% 100%; }
.pig-right{ right: max(-2vw, -32px); transform-origin: 80% 100%; }

/* Flotado suave */
@keyframes bob {
  0%,100%{ transform: translateY(0) }
  50%{ transform: translateY(-10px) }
}
.bob{ animation: bob 3.8s ease-in-out infinite; }
.bob-delayed{ animation: bob 3.8s ease-in-out 1.1s infinite; }

/* Contenido central */
.fiesta-content{
  z-index:3; text-align:center; color:#f5f6f7;
  max-width: 920px;
}
.fiesta-eyebrow{
  display:inline-block;
  padding:.35rem .7rem; margin-bottom:.6rem;
  border-radius:999px; background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12); font-weight:600; letter-spacing:.02em;
}
.fiesta-title{
  font-size: clamp(28px, 4.4vw, 56px);
  line-height: 1.02; font-weight: 900; margin: 0 0 .6rem;
}
.fiesta-title span{
  background: linear-gradient(90deg, var(--brand), var(--brand-2));
  -webkit-background-clip: text; background-clip:text; color: transparent;
}
.fiesta-sub{
  color:#cfd2d6; font-size: clamp(15px, 1.4vw, 18px);
  max-width: 760px; margin-inline:auto;
}

/* Botones */
.btn-fiesta, .btn-outline{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.5rem; padding:.9rem 1.2rem; border-radius:14px;
  font-weight:700; text-decoration:none; transition: transform .18s ease, box-shadow .18s ease;
}
.btn-fiesta{
  background: linear-gradient(90deg, var(--brand), #ff7f32);
  color:#141518; box-shadow: 0 10px 24px rgba(255,98,14,.35);
}
.btn-fiesta:hover{ transform: translateY(-2px) }
.btn-outline{
  color:#f5f6f7; border:1px solid rgba(255,255,255,.18); margin-left:.5rem;
  background: rgba(255,255,255,.05);
}
.btn-outline:hover{ transform: translateY(-2px) }

/* Chips */
.fiesta-chips{ margin-top:16px; display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.chip{
  padding:.45rem .75rem; border-radius:999px; font-weight:600;
  background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1);
}

/* Responsivo */
@media (max-width: 980px){
  .fiesta-pig{ max-width:min(44vw, 420px) }
}
@media (max-width: 720px){
  .pig-left{ left: -8vw; opacity:.95 }
  .pig-right{ right: -8vw; opacity:.95 }
  .fiesta-lights{ gap:10px; height:48px }
  .fiesta-chips{ display: none !important;
  }
    .fiesta-hero{
    min-height: 420px;   /* en vez de 520px */
    padding-top: 16px;   /* menos espacio arriba */
  }
   .fiesta-content{
    margin-top: -70px;
  }
}

/* Respeto a usuarios con “reducir movimiento” */
@media (prefers-reduced-motion: reduce){
  .bob, .bob-delayed, .fiesta-lights .light{ animation: none !important }
}


/* contenedor por Fila */
.productos-row { position: relative; }
.productos-row + .productos-row { margin-top: 16px; } /* separación entre filas */
