/* Componentes globales: header, footer, WhatsApp flotante, placeholders */
.site-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:3px solid transparent;border-image:var(--rainbow) 1;box-shadow:0 2px 14px rgba(27,27,47,.06)}
.header__bar{display:flex;align-items:center;justify-content:space-between;min-height:68px;gap:1rem}
.logo{display:flex;align-items:center;gap:.5rem;font-size:1.3rem;font-weight:500}.logo b{color:var(--c-primary)}
.nav ul{display:flex;align-items:center;gap:1.4rem}
.nav a{font-size:.92rem;font-weight:500}
.nav a:not(.btn):hover,.nav a[aria-current]{color:var(--c-primary)}
/* Línea animada bajo el menú principal: aparece de izquierda a derecha y ocupa el 75% del ancho del texto */
.nav>ul>li>a:not(.btn){position:relative}
.nav>ul>li>a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-5px;width:75%;height:2px;border-radius:2px;background:var(--c-primary);transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.4,0,.2,1)}
.nav>ul>li>a:not(.btn):hover::after,.nav>ul>li>a:not(.btn):focus-visible::after,.nav>ul>li>a[aria-current]::after,.nav>ul>li.open>a::after{transform:scaleX(1)}
.has-sub{position:relative}
.nav .has-sub{display:flex;align-items:center;gap:.1rem}
.sub-toggle{width:28px;height:28px;border:0;background:none;cursor:pointer;font-size:.85rem;color:var(--c-ink);transition:transform .2s}
.has-sub.open .sub-toggle{transform:rotate(180deg)}
.nav .sub{position:absolute;top:calc(100% + 12px);left:0;min-width:270px;background:#fff;border-radius:var(--r-sm);box-shadow:var(--shadow);padding:.4rem;display:flex;flex-direction:column;align-items:stretch;gap:0;
  /* borde izquierdo alineado con la "C" de Catálogo; al abrir se revela de derecha a izquierda */
  opacity:0;visibility:hidden;pointer-events:none;transform:translateX(34px);clip-path:inset(-20px -40px -40px 100%);
  transition:opacity .38s ease,transform .45s cubic-bezier(.22,.8,.3,1),clip-path .45s cubic-bezier(.22,.8,.3,1),visibility 0s linear .45s}
.nav .has-sub.open>.sub{opacity:1;visibility:visible;pointer-events:auto;transform:none;clip-path:inset(-20px -40px -40px -40px);transition-delay:0s}
.nav .sub a{display:block;padding:.5rem .8rem;border-radius:8px}.nav .sub a:hover{background:var(--c-soft)}
.nav-toggle{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{display:block;width:24px;height:2px;background:var(--c-ink);position:relative;margin:auto;content:""}
.nav-toggle span::before{position:absolute;top:-7px}.nav-toggle span::after{position:absolute;top:7px}
@media(max-width:900px){
  .nav-toggle{display:block}
  .nav{position:absolute;top:100%;left:0;right:0;background:#fff;padding:1rem;box-shadow:var(--shadow);display:none;max-height:80vh;overflow:auto}
  .nav.open{display:block}
  .nav ul{flex-direction:column;align-items:stretch;gap:.2rem}
  .nav a{display:block;padding:.7rem .5rem}.nav .btn{text-align:center;margin-top:.5rem}
  .nav .has-sub{flex-wrap:wrap}
  .nav .has-sub>a{flex:1}
  .sub-toggle{width:44px;height:44px;font-size:1.1rem}
  .nav>ul>li>a:not(.btn)::after{display:none}
  .nav .sub{position:static;width:100%;box-shadow:none;padding:0 0 0 1rem;min-width:0;display:none;opacity:1;visibility:visible;pointer-events:auto;transform:none;clip-path:none;transition:none}
  .nav .has-sub.open>.sub{display:flex;clip-path:none}
}
.ph{position:relative;display:flex;align-items:flex-end;min-height:100%;background:var(--ph,linear-gradient(135deg,#ffe3e7,#e3ecff));overflow:hidden}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* Imágenes: entran con desenfoque + zoom suave, zoom lento al pasar el cursor y destello de luz */
.js .ph img{opacity:0;transform:scale(1.08);filter:blur(8px);transition:opacity .9s ease,transform 1.2s cubic-bezier(.2,.7,.2,1),filter .9s ease}
.js .ph img.loaded{opacity:1;transform:scale(1);filter:none}
.cat:hover .ph img.loaded,.prod:hover .ph img.loaded,.feat:hover .ph img.loaded{transform:scale(1.07)}
.ph::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.38) 50%,transparent 62%);transform:translateX(-130%);transition:transform .9s ease}
.cat:hover .ph::after,.prod:hover .ph::after,.feat:hover .ph::after{transform:translateX(130%)}
.site-footer{background:#14142a;color:#cfd0e0;padding-top:var(--sp-5);font-size:.92rem;border-top:4px solid transparent;border-image:var(--rainbow) 1}
.site-footer p{margin-bottom:.6rem}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1.2fr 1fr;gap:var(--sp-4)}
.footer__brand{font-size:1.4rem;color:#fff;font-weight:500}.footer__brand b{color:var(--c-primary)}
.site-footer h3{color:#fff;font-size:1rem;margin-bottom:.8rem}
.site-footer li{margin-bottom:.45rem}.site-footer a:hover{color:#fff;text-decoration:underline}
.footer__legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem;margin-top:var(--sp-4);padding-block:1.2rem;border-top:1px solid #2c2c4a;font-size:.82rem}
@media(max-width:900px){.footer__grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footer__grid{grid-template-columns:1fr}}
.wa-float{position:fixed;right:18px;bottom:18px;z-index:90;width:58px;height:58px;border-radius:50%;background:var(--c-wa);display:grid;place-items:center;box-shadow:0 8px 22px rgba(31,184,85,.45);transition:transform .2s}
.wa-float:hover{transform:scale(1.08)}

/* Encabezado de páginas internas */
.page-hero{background:linear-gradient(135deg,#14142a,#3a1030);color:#fff;padding-block:var(--sp-5) var(--sp-4);position:relative}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--rainbow)}
.breadcrumb{font-size:.85rem;color:#c9c9dd;margin-bottom:var(--sp-2)}.breadcrumb a:hover{color:#fff;text-decoration:underline}
.page-hero h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:.6rem}
.page-hero p{color:#e1e1ee;max-width:60ch}

.section__head{text-align:center;margin-bottom:var(--sp-4)}.section__head .lead{margin-inline:auto}
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);align-items:center}
.split .ph{aspect-ratio:5/4;border-radius:var(--r-lg)}
@media(max-width:800px){.split{grid-template-columns:1fr}}
