 :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 1220x420 SIN RECORTE */
 /* ===================== */
 .slider-ml {
   display: flex;
   overflow-x: auto;
   scroll-snap-type: x mandatory;
   scroll-snap-stop: always;
   -webkit-overflow-scrolling: touch;
   gap: 0;
   margin: 0;
   padding: 0;
   background: transparent;

   height: auto;
 }

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

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

   aspect-ratio: 1220 / 420;
   /* (= 61/21) */

   display: flex;
   align-items: center;
   justify-content: center;
   background: var(--blanco_gris);
 }

 .slide img {
   width: 100%;
   height: 100%;
   object-fit: contain;
   object-position: center;
   display: block;
 }




 /* ===== PC ===== */
 @media (min-width: 769px) {
   .slider-dots {
     z-index: 2;
   }

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

   .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-snap-type: x mandatory;
   padding: 8px 0 10px;
   -webkit-overflow-scrolling: touch;
 }

 /* Ocultar scrollbar */
 .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;
 }

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

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

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

 @media (min-width: 1024px) {

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

 /* centrar flechas en el control de los articulos*/
 .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;

   /* Aqui oculto las flechas en responsivo */
   display: none;

   padding: 0;
   line-height: 0;
   text-align: center;
 }

 @media (min-width: 769px) {
   .prod-nav {
     display: grid;
     place-items: center;
     line-height: 0;
     font-size: 0;
   }
 }

 .prod-nav>span,
 .prod-nav>i,
 .prod-nav>svg {
   display: block;
   line-height: 1;
 }

 .prod-nav>svg {
   width: 22px;
   height: 22px;
 }

 .prod-prev {
   left: 8px;
 }

 .prod-next {
   right: 8px;
 }

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



 .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);
   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-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;
 }

 .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;
 }

 @media (prefers-reduced-motion: reduce) {

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

 @media (min-width: 1024px) {

   .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;
     padding: 0 32px;
   }

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

   .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;
   }

   .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;
   }

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

   .reglas-title {
     font-size: 45px;
   }

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

   .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);
 }

 @media (min-width: 1024px) {
   .modal-dialog {
     max-width: 820px;
   }
 }


 .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;
   text-align: center;
 }

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

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

 .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;
   justify-items: center;
 }

 .price-line {
   display: flex;
   align-items: baseline;
   justify-content: center;
   gap: 6px;
 }

 .price-line strong {
   font-size: 16px;
   color: #00a650;
 }


 @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;
   margin: 28px auto;
   max-width: 980px;
 }

 .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;
 }

 .faq-list {
   display: grid;
   gap: 10px;
   margin-top: 12px;

 }

 .faq-item {


   background: transparent !important;
   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;
 }

 /* 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;
   backdrop-filter: blur(6px) saturate(1.05);
   -webkit-backdrop-filter: blur(6px) saturate(1.05);
 }

 .faq-q {
   color: #151518;
   padding: 16px 18px;
   border: 0;
 }

 .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);
 }

 .faq-a-wrap {
   border-top: 1px dashed rgba(255, 255, 255, .12);
 }

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

 @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);
   }
 }

 @media (min-width: 1024px) {
   .faq-icon {
     width: 26px;
     height: 26px;
   }
 }

 .faq-q {
   display: grid;
   grid-template-columns: 1fr auto;
   align-items: center;
   gap: 12px;
   width: 100%;
   text-align: left;
 }

 .faq-icon {
   justify-self: end;
 }

 .responsiva-cta {
   position: relative;
   overflow: hidden;
   width: auto;
   margin: 40px calc(50% - 50vw);
   border-radius: 0;
   box-sizing: border-box;
   padding: clamp(40px, 6vw, 72px) clamp(16px, 3vw, 28px);
   color: #141516;

   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);
 }

 .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;
   }
 }

 .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;
 }

 .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;
 }

 .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;
 }

 .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;
 }

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

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

 @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;
 }
 @media (max-width: 900px) {
   .resp-pig {
     display: none;
   }

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

 @media (prefers-reduced-motion: reduce) {

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

 .responsiva-cta .resp-pig.right {
   width: clamp(340px, 28.5vw, 570px);
 }

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


 .responsiva-cta .resp-pig {
   translate: none;
   transform: translate(0, -50%);
 }

 @keyframes peekR {
   from {
     transform: translate(60%, -50%);
   }

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

 @keyframes bobImg {

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

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

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

 .responsiva-cta.is-visible .resp-pig.right img {
   animation: bobImg 5s ease-in-out .8s infinite;
 }


 html,
 body {
   overflow-x: clip;
 }

 .responsiva-cta {
   margin: 40px calc(50% - 50vw);
   overflow: clip;
   contain: layout paint;
 }

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

 }



 img,
 video {
   display: block;
   max-width: 100%;
   height: auto;
 }

 .resp-pig,
 .prod-nav {
   max-width: 100%;
   contain: paint;
 }

 :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 */
 .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
   }
 }

 .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%;
 }

 @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 */
 .modal-warning {
   margin-top: 10px;
   padding: 8px 10px;
   border-radius: 8px;
   background: #fff4e5;
   border: 1px solid #ffb85c;
   color: #8a4b00;
   font-size: 13px;
   line-height: 1.4;
 }

 .modal-warning strong {
   font-weight: 700;
 }