    *{margin:0;padding:0;box-sizing:border-box;}
    html{scroll-behavior:smooth;overflow-x:hidden;}
    body{font-family:var(--fuente-cuerpo);background:var(--fondo);color:var(--texto);overflow-x:hidden;}

    /* Titulares con la fuente característica del rubro — es lo que más
       diferencia visualmente una perfumería de una tienda de tecnología,
       incluso más que el color. */
    h1,h2,h3,.section-title,.hero-title,.product-name,.cart-title,.summary-title{
      font-family:var(--fuente-titulos);
      font-weight:var(--peso-titulo);
      letter-spacing:var(--tracking);
    }

    /* NAV */
    nav{position:fixed;top:0;left:0;right:0;z-index:300;padding:12px 0;background:rgba(255,255,255,0.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--borde);box-shadow:0 1px 12px rgba(0,0,0,0.06);}
    .nav-inner{max-width:1200px;margin:0 auto;width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 24px;box-sizing:border-box;}
    .nav-logo{display:flex;align-items:center;gap:10px;cursor:pointer;}
    .nav-logo img{height:56px;width:auto;max-width:230px;object-fit:contain;object-position:left center;}
    .nav-logo-fallback{height:52px;width:52px;border-radius:50%;background:var(--color-primario);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:20px;flex-shrink:0;}
    .nav-logo-text{font-size:17px;font-weight:800;color:var(--color-primario);letter-spacing:-0.3px;}
    .nav-links{display:flex;gap:28px;list-style:none;}
    .nav-links a{color:var(--texto-suave);font-weight:600;font-size:14px;transition:color 0.2s;cursor:pointer;}
    .nav-links a:hover{color:var(--color-primario);}
    .nav-right{display:flex;align-items:center;gap:10px;}
    .nav-cta{background:var(--color-primario);color:#fff;font-weight:700;font-size:13px;padding:9px 20px;border-radius:var(--radio-chico);transition:background 0.2s,transform 0.15s;display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:none;}
    .nav-cta:hover{background:var(--color-primario);transform:translateY(-1px);}
    .cart-btn{position:relative;background:var(--color-acento);color:var(--texto);font-weight:800;font-size:18px;padding:8px 14px;border-radius:var(--radio-chico);border:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all 0.2s;}
    .cart-btn:hover{filter:brightness(0.88);transform:translateY(-1px);}
    .cart-badge{position:absolute;top:-7px;right:-7px;background:#EF4444;color:#fff;font-size:10px;font-weight:800;min-width:18px;height:18px;border-radius:100px;display:flex;align-items:center;justify-content:center;padding:0 4px;display:none;}
    .cart-badge.show{display:flex;}
    .nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px;}
    .nav-hamburger span{display:block;width:24px;height:2px;background:var(--texto);border-radius:2px;transition:all 0.3s;}
    .mobile-menu{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:400;background:rgba(0,0,0,0.5);}
    .mobile-menu.open{display:block;}
    .mobile-panel{position:absolute;top:0;right:0;width:75%;max-width:320px;height:100%;background:#fff;box-shadow:-8px 0 32px rgba(0,0,0,0.15);padding:24px;display:flex;flex-direction:column;gap:0;}
    .mobile-close{align-self:flex-end;background:none;border:1px solid var(--borde);border-radius:8px;width:36px;height:36px;font-size:18px;cursor:pointer;margin-bottom:24px;display:flex;align-items:center;justify-content:center;}
    .mobile-nav-item{padding:18px 0;border-bottom:1px solid var(--fondo-suave);font-size:18px;font-weight:700;color:var(--texto);cursor:pointer;display:flex;align-items:center;justify-content:space-between;}
    .mobile-nav-item:hover{color:var(--color-primario);}
    .mobile-wa{margin-top:auto;padding-top:24px;display:flex;align-items:center;gap:10px;background:#25D366;color:#fff;font-weight:700;font-size:15px;padding:14px 20px;border-radius:var(--radio-chico);text-decoration:none;justify-content:center;}

    /* HERO */
    .hero{min-height:100vh;display:flex;align-items:center;background:linear-gradient(135deg,var(--color-primario) 0%,var(--color-primario-medio) 45%,var(--color-primario-claro) 100%);position:relative;overflow:hidden;padding:120px 40px 100px;}
    .hero-pattern{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Ccircle cx='40' cy='40' r='6' stroke='%23FACC15' stroke-opacity='.06' stroke-width='1.5'/%3E%3Cpath d='M0 40h80M40 0v80' stroke='%23fff' stroke-opacity='.03' stroke-width='1'/%3E%3C/g%3E%3C/svg%3E");}
    .hero-shimmer{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(105deg,transparent 40%,rgba(var(--color-acento-rgb),0.04) 50%,transparent 60%);animation:shimmer 7s ease-in-out infinite;}
    @keyframes shimmer{0%{transform:translateX(-200%);}100%{transform:translateX(200%);}}
    .hero-glow-r{position:absolute;top:40%;right:-100px;transform:translateY(-50%);width:700px;height:700px;background:radial-gradient(circle,rgba(var(--color-acento-rgb),0.1) 0%,rgba(var(--color-primario-rgb),0.08) 40%,transparent 70%);pointer-events:none;}
    .hero-glow-l{position:absolute;bottom:0;left:-80px;width:500px;height:500px;background:radial-gradient(circle,rgba(29,78,216,0.2) 0%,transparent 70%);pointer-events:none;}
    .hero-content{position:relative;z-index:1;max-width:1200px;margin:0 auto;width:100%;display:flex;align-items:center;justify-content:flex-start;gap:80px;}
    .hero-text{max-width:640px;}
    .hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(var(--color-acento-rgb),0.12);color:var(--color-acento);font-size:11px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;padding:8px 18px;border-radius:100px;margin-bottom:28px;border:1px solid rgba(var(--color-acento-rgb),0.25);backdrop-filter:blur(4px);}
    h1{font-size:clamp(52px,7vw,88px);font-weight:900;line-height:0.94;letter-spacing:-2.5px;color:#fff;text-wrap:balance;}
    /* El titular del héroe se parte solo donde el navegador quiera, lo
       que dejaba cortes feos como "Licorera La / Titular". Con
       text-wrap:balance las líneas quedan parejas, y el <span> de abajo
       permite marcar en el texto qué palabras no deben separarse nunca
       (ver como se arma el titular en index.php). */
    h1 .junto{white-space:nowrap;}
    h1 .accent{color:var(--color-acento);display:block;text-shadow:0 0 80px rgba(var(--color-acento-rgb),0.3);}
    .hero-tagline{display:flex;align-items:center;gap:12px;margin-top:24px;}
    .hero-tagline-dot{width:5px;height:5px;border-radius:50%;background:var(--color-acento);flex-shrink:0;}
    .hero-tagline-text{font-size:21px;font-weight:700;color:rgba(255,255,255,0.85);letter-spacing:-0.3px;}
    .hero-sub{font-size:16px;font-weight:400;color:rgba(255,255,255,0.55);margin-top:18px;line-height:1.75;}
    .hero-sub strong{color:rgba(255,255,255,0.9);font-weight:700;}
    .hero-stats{display:flex;gap:0;margin-top:36px;flex-wrap:wrap;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radio);overflow:hidden;backdrop-filter:blur(8px);}
    .hero-stat{flex:1;display:flex;flex-direction:column;align-items:center;padding:18px 16px;border-right:1px solid rgba(255,255,255,0.08);}
    .hero-stat:last-child{border-right:none;}
    .hero-stat-num{font-size:26px;font-weight:900;color:var(--color-acento);line-height:1;}
    .hero-stat-label{font-size:11px;font-weight:600;color:rgba(255,255,255,0.45);margin-top:5px;text-transform:uppercase;letter-spacing:0.8px;text-align:center;}
    .hero-btns{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap;}
    .btn-yellow{background:var(--color-acento);color:var(--texto);font-weight:800;font-size:15px;padding:16px 32px;border-radius:var(--radio);text-decoration:none;transition:all 0.25s;display:inline-flex;align-items:center;gap:8px;box-shadow:0 12px 40px rgba(var(--color-acento-rgb),0.4);border:none;cursor:pointer;letter-spacing:-0.2px;}
    .btn-yellow:hover{filter:brightness(0.88);transform:translateY(-3px);box-shadow:0 20px 50px rgba(var(--color-acento-rgb),0.55);}
    .btn-white-outline{border:2px solid rgba(255,255,255,0.18);color:#fff;font-weight:700;font-size:15px;padding:14px 28px;border-radius:var(--radio);text-decoration:none;transition:all 0.25s;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,0.05);backdrop-filter:blur(8px);}
    .btn-white-outline:hover{border-color:var(--color-acento);color:var(--color-acento);background:rgba(var(--color-acento-rgb),0.07);}
    .hero-img-wrap{flex-shrink:0;position:relative;animation:float 5s ease-in-out infinite;}
    .hero-img-ring{position:absolute;inset:-40px;border-radius:50%;border:1px solid rgba(var(--color-acento-rgb),0.15);animation:ring-pulse 4s ease-in-out infinite;}
    .hero-img-ring2{position:absolute;inset:-80px;border-radius:50%;border:1px solid rgba(var(--color-acento-rgb),0.07);animation:ring-pulse 4s ease-in-out infinite 1s;}
    .hero-img-wrap img{width:300px;height:300px;object-fit:contain;filter:drop-shadow(0 40px 80px rgba(0,0,0,0.6)) drop-shadow(0 0 40px rgba(var(--color-acento-rgb),0.25));position:relative;z-index:1;}
    .hero-img-fallback{width:300px;height:300px;display:flex;align-items:center;justify-content:center;font-size:140px;position:relative;z-index:1;filter:drop-shadow(0 40px 80px rgba(0,0,0,0.6));}
    @keyframes float{0%,100%{transform:translateY(0) rotate(-1.5deg);}50%{transform:translateY(-20px) rotate(1.5deg);}}
    @keyframes ring-pulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.06);opacity:0.5;}}

    /* FEATURES STRIP */
    .features-strip{background:#fff;border-bottom:1px solid var(--borde);padding:0 40px;box-shadow:0 4px 24px rgba(0,0,0,0.04);}
    .features-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);}
    .feature-item{display:flex;align-items:center;gap:14px;padding:22px 24px;border-right:1px solid var(--fondo-suave);}
    .feature-item:last-child{border-right:none;}
    .feature-icon-wrap{width:44px;height:44px;border-radius:var(--radio-chico);background:#eff6ff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
    .feature-icon{font-size:22px;}
    .feature-title{font-weight:700;font-size:13px;color:var(--texto);}
    .feature-desc{font-size:12px;color:var(--texto-tenue);margin-top:1px;}

    /* SECTIONS */
    section{padding:80px 40px;}
    .section-inner{max-width:1200px;margin:0 auto;}
    .section-label{font-size:11px;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:var(--color-primario);display:block;margin-bottom:10px;}
    .section-title{font-size:clamp(28px,4vw,40px);font-weight:900;letter-spacing:-0.8px;color:var(--texto);}
    .section-desc{color:var(--texto-suave);margin-top:8px;font-size:16px;}
    .section-header{margin-bottom:32px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;}

    /* SEARCH BAR */
    .search-wrap{position:relative;width:260px;flex-shrink:0;}
    .search-input{width:100%;background:#fff;border:2px solid var(--borde);border-radius:var(--radio-chico);padding:10px 16px 10px 40px;font-family:var(--fuente-cuerpo);font-size:14px;color:var(--texto);outline:none;transition:border-color 0.2s;}
    .search-input:focus{border-color:var(--color-primario);}
    .search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);font-size:16px;pointer-events:none;}

    /* PRODUCTS */
    .products-section{background:var(--fondo);}
    .category-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:32px;}
    .tab{padding:8px 18px;border-radius:100px;font-size:13px;font-weight:700;cursor:pointer;border:1.5px solid var(--borde);color:var(--texto-suave);background:#fff;transition:all 0.2s;white-space:nowrap;}
    .tab:hover{border-color:var(--color-primario);color:var(--color-primario);}
    .tab.active{background:var(--color-primario);color:#fff;border-color:var(--color-primario);}
    .products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;}
    .product-card{background:#fff;border:1px solid var(--fondo-suave);border-radius:var(--radio);overflow:hidden;transition:transform 0.25s,box-shadow 0.25s;display:flex;flex-direction:column;}
    .product-card:hover{transform:translateY(-5px);box-shadow:0 20px 48px rgba(0,0,0,0.1);}
    .product-card-top{position:relative;padding:12px 12px 0;}
    .product-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;min-height:22px;}
    .badge-destacado{background:var(--color-acento);color:var(--texto);font-size:10px;font-weight:800;padding:3px 10px;border-radius:100px;letter-spacing:0.5px;text-transform:uppercase;}
    .badge-urgencia{background:#DC2626;color:#fff;font-size:10px;font-weight:800;padding:3px 10px;border-radius:100px;letter-spacing:0.3px;animation:pulso-urgencia 1.8s ease-in-out infinite;}
    @keyframes pulso-urgencia{0%,100%{opacity:1;}50%{opacity:0.7;}}

    /* Vista rápida */
    .product-img-container{position:relative;}
    .qv-btn{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.92);border:none;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,0.15);opacity:0;transition:opacity 0.15s;}
    .product-card:hover .qv-btn{opacity:1;}
    .qv-overlay{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,0.55);opacity:0;pointer-events:none;transition:opacity 0.25s;}
    .qv-overlay.show{opacity:1;pointer-events:all;}
    .qv-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-46%);z-index:601;background:#fff;border-radius:var(--radio);width:92%;max-width:520px;max-height:85vh;overflow-y:auto;opacity:0;pointer-events:none;transition:opacity 0.25s, transform 0.25s;padding:24px;}
    .qv-modal.show{opacity:1;pointer-events:all;transform:translate(-50%,-50%);}
    .qv-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;background:#F1F5F9;border:none;font-size:14px;cursor:pointer;z-index:2;}
    .qv-img{background:var(--fondo);border-radius:var(--radio-chico);height:200px;display:flex;align-items:center;justify-content:center;font-size:76px;margin-bottom:16px;overflow:hidden;}
    .qv-img img{width:100%;height:100%;object-fit:cover;}
    .qv-brand{font-size:11px;color:#94A3B8;text-transform:uppercase;font-weight:700;margin:0;}
    .qv-name{font-size:20px;font-weight:900;margin:4px 0 8px;color:#0f172a;}
    .qv-detail{font-size:13px;color:#64748B;margin-bottom:6px;}
    .qv-urgencia{color:#DC2626;font-weight:800;font-size:13px;margin-bottom:8px;}
    .qv-price{font-size:26px;font-weight:900;color:#0F172A;margin:0 0 16px;}
    .qv-btn-add{width:100%;background:var(--color-acento);color:var(--texto);border:none;padding:13px;border-radius:var(--radio-chico);font-weight:800;font-size:14px;cursor:pointer;margin-bottom:10px;}
    .qv-ver-mas{display:block;text-align:center;font-size:13px;color:var(--color-primario);text-decoration:none;font-weight:600;}
    @media (max-width:520px){ .qv-modal{padding:18px;} }
    .badge-cat{background:var(--texto);color:#fff;font-size:10px;font-weight:700;padding:3px 10px;border-radius:100px;text-transform:capitalize;}
    .product-img-wrap{background:var(--fondo);border-radius:var(--radio);height:130px;display:flex;align-items:center;justify-content:center;font-size:54px;}
    /* Marcador para productos sin foto propia: inicial de la marca sobre
       un fondo derivado de la paleta, con el emoji pequeño de apoyo.
       El tono se calcula por marca (ver marcadorProducto en index.php),
       así el catálogo se ve variado pero coherente, no aleatorio. */
    .prod-marcador{position:relative;width:100%;height:100%;border-radius:inherit;display:flex;align-items:center;justify-content:center;
      background:linear-gradient(140deg,
        hsl(from var(--color-primario) calc(h + var(--tono) / 8) 22% 94%),
        hsl(from var(--color-primario) calc(h + var(--tono) / 8) 28% 88%));
      overflow:hidden;}
    .prod-marcador-inicial{font-family:var(--fuente-titulos);font-size:38px;font-weight:var(--peso-titulo);
      color:var(--color-primario);opacity:.34;letter-spacing:1px;line-height:1;}
    .prod-marcador-emoji{position:absolute;right:8px;bottom:6px;font-size:20px;opacity:.72;}
    /* Respaldo para navegadores sin soporte de hsl() relativo: fondo
       liso de la paleta en vez de degradado, sin romper nada. */
    @supports not (background: hsl(from red h s l)){
      .prod-marcador{background:var(--fondo-suave);}
    }
    .product-info{padding:14px 16px 16px;flex:1;display:flex;flex-direction:column;}
    .product-brand{font-size:10px;font-weight:800;color:var(--color-primario);letter-spacing:2px;text-transform:uppercase;margin-bottom:3px;}
    .product-name{font-size:14px;font-weight:700;color:var(--texto);line-height:1.3;margin-bottom:4px;}
    .product-detail{font-size:12px;color:var(--texto-tenue);margin-bottom:12px;}
    .product-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;}
    .product-price{font-size:22px;font-weight:900;color:var(--texto);}
    .add-btn{width:38px;height:38px;border-radius:var(--radio-chico);background:var(--color-acento);color:var(--texto);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;line-height:1;transition:all 0.15s;flex-shrink:0;}
    .add-btn:hover{filter:brightness(0.88);transform:scale(1.08);}
    .no-results{grid-column:1/-1;text-align:center;padding:48px 20px;color:var(--texto-tenue);font-size:15px;font-weight:600;}

    /* EVENTS */
    .events-section{background:#fff;}
    .events-big-card{background:linear-gradient(135deg,var(--color-primario) 0%,var(--color-primario-medio) 60%,var(--color-primario-claro) 100%);border-radius:24px;padding:32px;position:relative;overflow:hidden;}
    .events-big-card::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cpath d='M36 18c3.314 0 6 2.686 6 6s-2.686 6-6 6-6-2.686-6-6 2.686-6 6-6z' stroke='%23fff' stroke-opacity='.05' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");}
    .events-big-inner{position:relative;z-index:1;}
    .events-big-badge{display:inline-flex;background:var(--color-acento);color:var(--texto);font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;padding:6px 14px;border-radius:100px;margin-bottom:14px;}
    .events-big-title{font-size:clamp(22px,3vw,32px);font-weight:900;color:#fff;line-height:1.1;margin-bottom:8px;}
    .events-big-sub{color:rgba(255,255,255,0.8);font-size:15px;margin-bottom:24px;line-height:1.5;}
    .events-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px;}
    .event-row{background:rgba(255,255,255,0.12);backdrop-filter:blur(4px);border-radius:var(--radio);padding:16px;display:flex;gap:14px;align-items:flex-start;}
    .event-row-icon{font-size:28px;flex-shrink:0;line-height:1;}
    .event-row-title{font-weight:800;font-size:15px;color:#fff;margin-bottom:2px;}
    .event-row-desc{font-size:13px;color:rgba(255,255,255,0.7);margin-bottom:6px;}
    .event-row-date{font-size:12px;color:var(--color-acento);font-weight:700;}
    .events-big-emoji{text-align:center;font-size:72px;margin-top:8px;}

    /* CONTACT */
    .contact-section{background:var(--fondo);}
    .contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:start;}
    .contact-item{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px;}
    .contact-icon-wrap{width:44px;height:44px;border-radius:var(--radio-chico);background:#eff6ff;border:1px solid #dbeafe;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
    .contact-label{font-size:11px;font-weight:700;color:var(--color-primario);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:3px;}
    .contact-val{font-weight:600;font-size:15px;color:var(--texto);}
    .contact-val a{color:var(--color-primario);text-decoration:none;}
    .contact-val a:hover{color:var(--color-primario);text-decoration:underline;}
    .contact-form{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:32px;}
    .form-group{margin-bottom:16px;}
    .form-group label{display:block;font-size:11px;font-weight:700;color:var(--texto-suave);letter-spacing:1px;text-transform:uppercase;margin-bottom:7px;}
    .form-group input,.form-group textarea,.form-group select{width:100%;background:var(--fondo);border:1.5px solid var(--borde);border-radius:var(--radio-chico);color:var(--texto);font-family:var(--fuente-cuerpo);font-size:14px;padding:11px 14px;transition:border-color 0.2s;outline:none;}
    .form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--color-primario);background:#fff;}
    .form-group textarea{resize:vertical;min-height:110px;}
    .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

    /* CTA */
    .cta-section{background:linear-gradient(180deg,var(--color-acento) 0%,var(--color-acento) 50%,var(--color-primario) 100%);padding:64px 40px;text-align:center;}
    .cta-title{font-size:clamp(26px,4vw,40px);font-weight:900;color:var(--texto);letter-spacing:-0.5px;}
    .cta-sub{color:#374151;font-size:17px;font-weight:500;margin-top:10px;}
    .btn-blue{background:var(--color-primario);color:#fff;font-weight:800;font-size:15px;padding:14px 32px;border-radius:var(--radio-chico);text-decoration:none;transition:all 0.2s;display:inline-flex;align-items:center;gap:8px;margin-top:28px;box-shadow:0 8px 28px rgba(var(--color-primario-rgb),0.3);border:none;cursor:pointer;}
    .btn-blue:hover{background:var(--color-primario);transform:translateY(-2px);}

    /* FOOTER */
    footer{background:var(--color-primario);padding:52px 40px 28px;}
    .footer-inner{max-width:1200px;margin:0 auto;}
    .footer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px;flex-wrap:wrap;gap:24px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,0.08);}
    .footer-brand{display:flex;align-items:center;gap:14px;}
    .footer-logo{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:60px;height:60px;}
    .footer-logo img{height:60px;width:60px;object-fit:contain;filter:brightness(1.1);position:relative;z-index:1;}
    .footer-logo-ring{position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(var(--color-acento-rgb),0.15);animation:ring-pulse 4s ease-in-out infinite;}
    .footer-logo-ring2{position:absolute;inset:-16px;border-radius:50%;border:1px solid rgba(var(--color-acento-rgb),0.07);animation:ring-pulse 4s ease-in-out infinite 1s;}
    .footer-logo-fallback{position:relative;z-index:1;width:60px;height:60px;border-radius:50%;background:var(--color-acento);color:var(--texto);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:24px;}
    .footer-brand-name{font-weight:800;font-size:18px;color:var(--color-acento);display:block;}
    .footer-brand-sub{font-size:12px;color:var(--texto-suave);margin-top:2px;}
    .footer-links{display:flex;gap:28px;flex-wrap:wrap;align-items:center;}
    .footer-links a{color:var(--texto-tenue);font-size:14px;font-weight:600;transition:color 0.2s;cursor:pointer;text-decoration:none;}
    .footer-links a:hover{color:var(--color-acento);}
    .footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
    .footer-bottom p{font-size:13px;color:var(--texto-suave);}
    .footer-bottom strong{color:var(--color-acento);}

    /* CART PANEL */
    .cart-overlay{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0.55);opacity:0;pointer-events:none;transition:opacity 0.3s;}
    .cart-overlay.open{opacity:1;pointer-events:all;}
    .cart-panel{position:fixed;top:0;right:0;z-index:501;width:100%;max-width:520px;height:100vh;height:100dvh;background:#fff;box-shadow:-8px 0 40px rgba(0,0,0,0.15);display:flex;flex-direction:column;transform:translateX(100%);transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);overflow:hidden;}
    .cart-panel.open{transform:translateX(0);}
    .cart-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--borde);background:var(--fondo);flex-shrink:0;}
    .cart-title{font-size:17px;font-weight:800;color:var(--texto);display:flex;align-items:center;gap:8px;}
    .cart-close-btn{background:none;border:1px solid var(--borde);border-radius:8px;width:34px;height:34px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s;}
    .cart-close-btn:hover{background:var(--borde);}
    /* Scrollable body */
    .cart-scroll{flex:1;overflow-y:auto;display:flex;flex-direction:column;}
    /* Empty state */
    .cart-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:48px 32px;text-align:center;color:var(--texto-tenue);}
    .cart-empty-icon{font-size:60px;}
    .cart-empty-text{font-size:15px;font-weight:600;}
    /* Items list */
    .cart-items{padding:16px 20px;display:flex;flex-direction:column;gap:10px;}
    .cart-item{display:flex;align-items:center;gap:10px;background:var(--fondo);border-radius:var(--radio-chico);padding:10px 12px;}
    .cart-item-emoji{font-size:32px;flex-shrink:0;width:42px;text-align:center;line-height:1;}
    .cart-item-info{flex:1;min-width:0;}
    .cart-item-name{font-size:13px;font-weight:700;color:var(--texto);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px;}
    .cart-item-price{font-size:12px;font-weight:700;color:var(--color-primario);}
    .cart-item-qty{display:flex;align-items:center;gap:6px;flex-shrink:0;}
    .qty-btn{width:26px;height:26px;border-radius:7px;border:1.5px solid var(--borde);background:#fff;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:800;transition:all 0.15s;line-height:1;}
    .qty-btn:hover{border-color:var(--color-primario);color:var(--color-primario);}
    .qty-num{font-size:13px;font-weight:800;color:var(--texto);min-width:18px;text-align:center;}
    .cart-del-btn{background:none;border:none;cursor:pointer;font-size:15px;color:#d1d5db;transition:color 0.2s;flex-shrink:0;padding:4px;}
    .cart-del-btn:hover{color:#EF4444;}
    /* Order form inside cart */
    .cart-form{padding:0 20px 20px;display:flex;flex-direction:column;gap:14px;}
    .cart-section-title{font-size:12px;font-weight:800;color:var(--texto-suave);letter-spacing:1.5px;text-transform:uppercase;margin-top:4px;padding-bottom:8px;border-bottom:1px solid var(--fondo-suave);}
    .delivery-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
    .delivery-opt{position:relative;border:2px solid var(--borde);border-radius:var(--radio-chico);padding:14px 12px;cursor:pointer;transition:all 0.2s;background:#fff;}
    .delivery-opt.active{border-color:var(--color-primario);background:#eff6ff;}
    .delivery-opt input[type=radio]{position:absolute;opacity:0;pointer-events:none;}
    .delivery-opt-icon{font-size:22px;margin-bottom:6px;display:block;}
    .delivery-opt-name{font-size:13px;font-weight:800;color:var(--texto);margin-bottom:2px;}
    .delivery-opt-price{font-size:12px;font-weight:700;color:var(--color-primario);}
    .delivery-opt.active .delivery-opt-name{color:var(--color-primario);}
    .form-field{display:flex;flex-direction:column;gap:5px;}
    .form-field label{font-size:11px;font-weight:700;color:#374151;letter-spacing:0.8px;text-transform:uppercase;}
    .form-field label span.required{color:#EF4444;margin-left:2px;}
    .form-field input,.form-field select,.form-field textarea{background:var(--fondo);border:1.5px solid var(--borde);border-radius:var(--radio-chico);padding:10px 12px;font-family:var(--fuente-cuerpo);font-size:14px;color:var(--texto);outline:none;transition:border-color 0.2s;width:100%;}
    .form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--color-primario);background:#fff;}
    .form-field textarea{resize:vertical;min-height:64px;}
    .form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
    .payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
    .pay-opt{position:relative;border:2px solid var(--borde);border-radius:var(--radio-chico);padding:12px 10px;cursor:pointer;transition:all 0.2s;background:#fff;text-align:left;}
    .pay-opt.active{border-color:var(--color-primario);background:#eff6ff;}
    .pay-opt input[type=radio]{position:absolute;opacity:0;pointer-events:none;}
    .pay-opt-name{font-size:12px;font-weight:800;color:var(--texto);display:block;margin-bottom:2px;}
    .pay-opt-desc{font-size:11px;color:var(--texto-tenue);display:block;}
    .pay-opt.active .pay-opt-name{color:var(--color-primario);}
    /* Summary */
    .cart-summary{background:var(--fondo);border-radius:var(--radio-chico);padding:14px 16px;margin:0 20px;}
    .summary-title{font-size:12px;font-weight:800;color:var(--texto-suave);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:10px;}
    .summary-line{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--texto-suave);margin-bottom:6px;}
    .summary-line strong{color:var(--texto);font-weight:700;}
    .summary-divider{border:none;border-top:1px solid var(--borde);margin:8px 0;}
    .summary-total{display:flex;justify-content:space-between;align-items:center;font-size:16px;font-weight:900;color:var(--texto);}
    .summary-total-price{color:var(--color-primario);font-size:20px;}
    /* Footer button */
    .cart-footer{padding:16px 20px 20px;flex-shrink:0;border-top:1px solid var(--borde);background:#fff;}
    .cart-order-btn{width:100%;padding:16px;background:#25D366;color:#fff;font-weight:800;font-size:15px;border:none;border-radius:var(--radio);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all 0.2s;box-shadow:0 8px 24px rgba(37,211,102,0.35);}
    .cart-order-btn:hover{background:#1ebe5d;transform:translateY(-1px);}
    .cart-order-btn:disabled{background:#d1d5db;box-shadow:none;cursor:not-allowed;transform:none;}
    .cart-note{font-size:11px;color:var(--texto-tenue);text-align:center;margin-top:8px;}

    /* WHATSAPP FLOAT */
    .wa-float-wrap{position:fixed;bottom:28px;right:28px;z-index:1000;display:flex;align-items:center;gap:10px;}
    .wa-float-msg{background:white;color:var(--texto);font-weight:800;font-size:13.5px;padding:10px 16px;border-radius:var(--radio);box-shadow:0 8px 24px rgba(0,0,0,0.18);white-space:nowrap;animation:waMsgPop 0.4s ease;}
    .wa-float{position:relative;z-index:1000;width:60px;height:60px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 28px rgba(37,211,102,0.5);text-decoration:none;flex-shrink:0;animation:waPulse 2.5s infinite;-webkit-tap-highlight-color:transparent;}
    .wa-float:hover{background:#1ebe5d;transform:scale(1.08);}
    .wa-float svg{width:32px;height:32px;fill:#fff;pointer-events:none;}
    @keyframes waMsgPop{from{opacity:0;transform:translateX(8px);}to{opacity:1;transform:translateX(0);}}
    @keyframes waMsgPopUp{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
    @keyframes waPulse{0%,100%{box-shadow:0 8px 28px rgba(37,211,102,0.5),0 0 0 0 rgba(37,211,102,0.35);}60%{box-shadow:0 8px 28px rgba(37,211,102,0.5),0 0 0 14px rgba(37,211,102,0);}}

    /* TOAST */
    .cart-toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%) translateY(40px);z-index:999;background:var(--texto);color:#fff;border-radius:var(--radio);padding:12px 20px;display:flex;align-items:center;gap:10px;box-shadow:0 16px 48px rgba(0,0,0,0.2);opacity:0;transition:all 0.35s cubic-bezier(0.34,1.56,0.64,1);pointer-events:none;font-weight:700;font-size:13px;white-space:nowrap;}
    .cart-toast.show{transform:translateX(-50%) translateY(0);opacity:1;}

    /* RESPONSIVE */
    @media(max-width:900px){
      nav{padding:12px 0;}
      .nav-inner{padding:0 20px;}
      .nav-links,.nav-cta{display:none;}
      span.cli-nav-slot{display:none;}
      .nav-hamburger{display:flex;}
      section{padding:48px 20px;}
      .hero{padding:90px 20px 56px;}
      .hero-content{flex-direction:column-reverse;text-align:center;gap:20px;}
      .hero-img-wrap img{width:160px;height:160px;}
      .hero-img-fallback{width:160px;height:160px;font-size:76px;}
      .hero-stats{margin-top:24px;}
      .hero-stat{padding:12px 10px;}
      .hero-stat-num{font-size:20px;}
      .hero-tagline-text{font-size:17px;}
      .hero-btns{justify-content:center;margin-top:22px;}
      .features-strip{padding:0 20px;}
      .features-inner{grid-template-columns:1fr 1fr;}
      .feature-item{border-right:none;border-bottom:1px solid var(--fondo-suave);padding:16px 0;}
      .products-grid{grid-template-columns:1fr 1fr;gap:12px;}
      .product-img-wrap{height:110px;font-size:44px;}
      .events-big-card{padding:24px;}
      .contact-grid{grid-template-columns:1fr;gap:28px;}
      .form-row{grid-template-columns:1fr;}
      .footer-top{flex-direction:column;align-items:flex-start;}
      .footer-links{gap:16px;}
      .cta-section{padding:48px 20px;}
      /* Más abajo en móvil (antes 78px): a esa altura el botón quedaba
         montado sobre los indicadores del héroe. En pantallas cortas
         (~700px, iPhone con las barras del navegador visibles) el espacio
         libre bajo los indicadores es de solo 55px y el botón mide 56 —
         no cabe por poco, así que además de bajarlo se le baja la
         opacidad mientras esa zona está a la vista (ver .sobre-hero). */
      .wa-float-wrap{bottom:24px;right:20px;flex-direction:column;align-items:flex-end;gap:6px;}
      .wa-float{width:56px;height:56px;}
      .wa-float svg{width:28px;height:28px;}
      .wa-float-msg{font-size:11.5px;padding:7px 12px;animation:waMsgPopUp 0.4s ease;}
      /* En móvil, el globo de "¡Haz tu Pedido!" se montaba encima de los
         indicadores del héroe (+3 años, +80 productos...) tapando el
         último. Se oculta mientras se está viendo esa zona y reaparece al
         bajar — el botón verde de WhatsApp sigue siempre disponible. */
      .wa-float-wrap.sobre-hero .wa-float-msg{opacity:0;pointer-events:none;transform:translateY(6px);}
      /* El botón no se oculta —debe seguir siendo alcanzable siempre—
         pero se atenúa para que el texto de abajo se lea a través de él
         en las pantallas cortas donde no hay espacio suficiente. */
      .wa-float-wrap.sobre-hero .wa-float{opacity:.45;}
      .wa-float{transition:opacity .25s;}
      .wa-float-msg{transition:opacity .25s,transform .25s;}
      .cart-panel{max-width:100%;}
      .search-wrap{width:100%;}
      .section-header{flex-direction:column;align-items:flex-start;}
    }
    @media(max-width:480px){
      .products-grid{grid-template-columns:1fr 1fr;gap:10px;}
      .product-name{font-size:13px;}
      .product-price{font-size:18px;}
    }

    /* SUCCESS OVERLAY */
    .success-overlay{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,0.7);display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px);}
    .success-overlay.show{display:flex;}
    .success-box{background:white;border-radius:24px;padding:2.5rem 2rem;max-width:440px;width:100%;text-align:center;box-shadow:0 32px 80px rgba(0,0,0,0.3);animation:pop-in 0.4s cubic-bezier(0.34,1.56,0.64,1);}
    @keyframes pop-in{from{transform:scale(0.85);opacity:0;}to{transform:scale(1);opacity:1;}}
    .success-icon{font-size:60px;margin-bottom:1rem;display:block;}
    .success-title{font-size:1.5rem;font-weight:900;color:var(--texto);margin-bottom:0.5rem;}
    .success-sub{font-size:0.9rem;color:var(--texto-suave);line-height:1.6;margin-bottom:1.5rem;}
    .success-pedido-num{display:inline-block;background:#eff6ff;color:var(--color-primario);font-size:0.78rem;font-weight:800;padding:5px 14px;border-radius:var(--radio);margin-bottom:1.2rem;}
    .success-wa-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px;background:#25D366;color:white;font-weight:800;font-size:15px;border-radius:var(--radio);text-decoration:none;margin-bottom:0.75rem;transition:all 0.2s;}
    .success-wa-btn:hover{background:#1ebe5d;transform:translateY(-2px);}
    .success-close-btn{background:none;border:1.5px solid var(--borde);color:var(--texto-suave);font-size:0.82rem;padding:10px 24px;border-radius:var(--radio-chico);cursor:pointer;width:100%;font-weight:600;transition:all 0.2s;}
    .error-toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%) translateY(40px);z-index:1500;background:#EF4444;color:white;padding:12px 24px;border-radius:var(--radio);font-weight:700;font-size:13px;opacity:0;transition:all 0.35s;pointer-events:none;white-space:nowrap;}
    .error-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

    /* AGE GATE (verificación de edad) */
    .age-gate-overlay{position:fixed;inset:0;z-index:3000;background:rgba(15,23,42,0.94);display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(6px);}
    .age-gate-overlay.show{display:flex;}
    .cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:2500;background:#0F172A;color:#fff;border-radius:var(--radio);padding:16px 20px;display:none;align-items:center;gap:16px;flex-wrap:wrap;box-shadow:0 12px 40px rgba(0,0,0,0.35);max-width:640px;margin:0 auto;}
    .cookie-banner.show{display:flex;}
    .cookie-banner p{margin:0;font-size:13px;line-height:1.5;flex:1;min-width:220px;color:#E2E8F0;}
    .cookie-banner button{background:var(--color-acento);color:var(--texto);border:none;padding:10px 22px;border-radius:8px;font-weight:800;font-size:13px;cursor:pointer;white-space:nowrap;}
    .age-gate-box{background:white;border-radius:24px;padding:2.5rem 2rem;max-width:420px;width:100%;text-align:center;box-shadow:0 32px 80px rgba(0,0,0,0.4);animation:pop-in 0.4s cubic-bezier(0.34,1.56,0.64,1);}
    .age-gate-icon{font-size:56px;margin-bottom:0.8rem;display:block;}
    .age-gate-title{font-size:1.4rem;font-weight:900;color:var(--texto);margin-bottom:0.6rem;}
    .age-gate-sub{font-size:0.88rem;color:var(--texto-suave);line-height:1.6;margin-bottom:1.6rem;}
    .age-gate-buttons{display:flex;flex-direction:column;gap:10px;}
    .age-gate-buttons .btn-blue{width:100%;}
    .age-gate-no{background:none;border:1.5px solid var(--borde);color:var(--texto-suave);font-size:0.82rem;padding:12px 20px;border-radius:var(--radio-chico);cursor:pointer;width:100%;font-weight:600;transition:all 0.2s;}
    .age-gate-no:hover{background:var(--fondo);color:#374151;}

    /* POLÍTICAS LEGALES: enlaces de pie de página y modal */
    .footer-legal-links{display:flex;flex-wrap:wrap;gap:6px 18px;padding-top:14px;margin-top:14px;border-top:1px solid rgba(255,255,255,0.08);}
    .footer-legal-links a{font-size:11.5px;color:rgba(255,255,255,0.5);cursor:pointer;text-decoration:none;}
    .footer-legal-links a:hover{color:rgba(255,255,255,0.85);text-decoration:underline;}
    .policy-modal-overlay{position:fixed;inset:0;z-index:2500;background:rgba(0,0,0,0.6);display:none;backdrop-filter:blur(3px);}
    .policy-modal-overlay.show{display:block;}
    .policy-modal{position:fixed;z-index:2501;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:620px;max-height:82vh;background:#fff;border-radius:var(--radio);box-shadow:0 32px 80px rgba(0,0,0,0.35);display:none;flex-direction:column;overflow:hidden;}
    .policy-modal.show{display:flex;}
    .policy-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--borde);flex-shrink:0;}
    .policy-modal-header h3{font-size:1.05rem;font-weight:800;color:var(--texto);}
    .policy-modal-close{background:none;border:none;font-size:18px;color:var(--texto-suave);cursor:pointer;line-height:1;padding:4px 8px;border-radius:8px;}
    .policy-modal-close:hover{background:#f1f5f9;color:var(--texto);}
    .policy-modal-body{padding:20px 22px 28px;overflow-y:auto;font-size:0.86rem;line-height:1.7;color:#374151;white-space:normal;}

    /* Aviso de venta a menores dentro del carrito */
    .cart-menor-warning{margin:14px 20px 0;padding:12px 14px;background:#FEF3C7;border:1px solid #FCD34D;border-radius:var(--radio-chico);color:#92400E;font-size:12px;font-weight:600;line-height:1.5;}

    /* Check de confirmación de mayoría de edad en el carrito */
    .age-confirm-check{display:flex;align-items:flex-start;gap:8px;text-transform:none;font-weight:600;font-size:12.5px;line-height:1.5;color:#374151;}
    .age-confirm-check a{color:var(--color-primario);text-decoration:underline;}

    /* Enlace a la autoridad de protección al consumidor (SIC). El
       Estatuto del Consumidor exige que sea visible y de fácil acceso. */
    .footer-sic{padding-top:12px;margin-top:12px;border-top:1px solid rgba(255,255,255,0.08);
      font-size:12.5px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;}
    .footer-sic a{color:rgba(255,255,255,0.85);text-decoration:underline;font-weight:600;}
    .footer-sic a:hover{color:var(--color-acento);}
    .footer-sic span{color:rgba(255,255,255,0.5);}

    /* Aviso de derechos del consumidor en el checkout. Va ANTES del
       botón de confirmar porque la ley exige que la información se
       entregue antes de aceptar la oferta — fue el punto central de la
       sanción de la SIC a EPA Colombia. */
    .checkout-derechos{background:#F8FAFC;border:1px solid #E2E8F0;border-radius:10px;
      padding:11px 13px;margin:0 20px 12px;font-size:12px;line-height:1.55;color:#475569;}
    .checkout-derechos strong{color:#1E293B;display:block;margin-bottom:5px;font-size:12.5px;}
    .checkout-derechos a{color:#2563EB;text-decoration:underline;cursor:pointer;}
