:root{--rojo:#E05D5A;--azul:#2072B3;--azul2:#4A99C9;--crema:#FBF6E0;--carbon:#4F4F4F;--oro:#F4CE6F;--terracota:#913B3B}
*{box-sizing:border-box}
body{margin:0;background:var(--crema);color:var(--carbon);font:16px/1.6 "Open Sans",system-ui,sans-serif}
h1,h2,h3{font-family:"League Spartan",sans-serif;line-height:1.1}
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--terracota),var(--rojo) 55%,#e9845a);color:#fff;padding:0 6vw 70px}
.papel{position:absolute;inset:0 0 auto 0;height:46px;background:
 repeating-linear-gradient(90deg,var(--oro) 0 40px,var(--azul2) 40px 80px,#fff 80px 120px,var(--azul) 120px 160px);
 -webkit-mask:radial-gradient(circle at 20px 46px,transparent 14px,#000 15px) 0 0/40px 46px;mask:radial-gradient(circle at 20px 46px,transparent 14px,#000 15px) 0 0/40px 46px;opacity:.9}
.top{position:relative;display:flex;justify-content:space-between;align-items:center;padding-top:64px}
.logo{color:#fff;text-decoration:none;font:700 1.3rem "League Spartan"}
.logo b{color:var(--oro)}
.btn-sumate{background:var(--oro);color:var(--terracota);font:600 .95rem Montserrat;padding:.6em 1.3em;border-radius:99px;text-decoration:none}
.hero-txt{position:relative;max-width:820px;margin-top:48px}
.kicker{font:600 .9rem Montserrat;letter-spacing:.2em;text-transform:uppercase;color:var(--oro);margin:0}
h1{font-size:clamp(2rem,5vw,3.6rem);font-weight:800;margin:.3em 0}
h1 span{color:var(--oro)}
.sub{font-size:1.1rem;max-width:620px;opacity:.95}
main{max-width:1280px;margin:0 auto;padding:0 4vw 60px}
.filtros{position:sticky;top:0;z-index:5;display:flex;gap:8px;overflow-x:auto;padding:14px 0;margin-top:-28px;scrollbar-width:none}
.filtros button{flex:none;border:2px solid var(--azul);background:#fff;color:var(--azul);font:600 .9rem Montserrat;padding:.55em 1.1em;border-radius:99px;cursor:pointer;box-shadow:0 2px 8px #0001}
.filtros button span{opacity:.6;font-size:.8em;margin-left:4px}
.filtros button[aria-selected=true]{background:var(--azul);color:#fff}
.cat h2{font-size:2rem;color:var(--terracota);margin:48px 0 4px;display:flex;align-items:center;gap:14px}
.cat h2::after{content:"";flex:1;height:3px;background:linear-gradient(90deg,var(--oro),transparent)}
.cat h3{font:600 1rem Montserrat;color:var(--azul);margin:22px 0 10px;letter-spacing:.1em}
.grid{columns:4 240px;column-gap:14px}
.foto{display:block;width:100%;margin:0 0 14px;padding:0;border:0;background:#fff;border-radius:14px;overflow:hidden;cursor:zoom-in;break-inside:avoid;position:relative;box-shadow:0 4px 14px #913b3b1f;transition:transform .2s}
.foto:hover{transform:translateY(-3px)}
.foto img{display:block;width:100%;height:auto}
.foto span{position:absolute;left:0;right:0;bottom:0;padding:24px 12px 10px;color:#fff;font-size:.85rem;text-align:left;background:linear-gradient(transparent,#000a);opacity:0;transition:opacity .2s}
.foto:hover span,.foto:focus span{opacity:1}
.videos h2{font-size:2rem;color:var(--terracota);margin-top:48px}
.nota{font-size:.9rem;opacity:.8}
.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
.video iframe,.ph{width:100%;aspect-ratio:16/9;border:0;border-radius:14px}
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--azul);color:#fff;font-size:3rem}
.ph small{font:600 .9rem Montserrat}
.video p{margin:.4em 0;font-weight:600}
footer{background:var(--azul);color:#fff;text-align:center;padding:40px 20px}
footer a{color:var(--oro)}
.lema{font:800 1.6rem "League Spartan";color:var(--oro);margin:0 0 6px}
.lightbox{position:fixed;inset:0;z-index:50;background:#1d1414ee;display:flex;align-items:center;justify-content:center}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0;max-width:92vw;text-align:center}
.lightbox img{max-width:92vw;max-height:82vh;border-radius:8px}
.lightbox figcaption{color:#fff;margin-top:10px}
.lightbox button{position:absolute;background:none;border:0;color:#fff;font-size:3rem;cursor:pointer;padding:10px 18px}
.lb-x{top:8px;right:12px}.lb-prev{left:6px}.lb-next{right:6px}
@media (max-width:600px){.cat h2{font-size:1.5rem}.grid{columns:2 140px;column-gap:8px}.foto{margin-bottom:8px}}
