:root{
  --blue-50:#F4F9FC;
  --blue-100:#E8F3FA;
  --blue-200:#D8EAF7;
  --blue-300:#BDDDF0;
  --blue-400:#9BCBE6;
  --yellow-50:#FFFDF0;
  --yellow-100:#FFF9DD;
  --yellow-200:#F8EDB6;
  --yellow-300:#EEDB86;
  --brown-950:#34251C;
  --brown-900:#4D382A;
  --brown-700:#705748;
  --brown-500:#A18472;
  --paper:#FFFFFF;
  --shadow-blue:rgba(96,139,165,.18);
  --shadow-brown:rgba(52,37,28,.20);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Poppins',sans-serif;
  color:var(--brown-900);
  background:linear-gradient(180deg,var(--blue-50),#fff 30%,var(--yellow-50));
  overflow-x:hidden;
}
body.intro-active{overflow:hidden}
section{padding:96px 10%}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:700}
.site.locked{filter:blur(3px);pointer-events:none;user-select:none}
.site.revealed{animation:siteReveal 1s ease forwards}
@keyframes siteReveal{from{opacity:.4;filter:blur(5px)}to{opacity:1;filter:blur(0)}}

nav{
  position:fixed;top:0;left:0;width:100%;
  display:flex;justify-content:center;gap:38px;padding:18px;
  background:rgba(244,249,252,.86);
  border-bottom:1px solid rgba(189,221,240,.65);
  backdrop-filter:blur(14px);
  z-index:1000;
  box-shadow:0 10px 30px rgba(96,139,165,.08);
}
nav a{text-decoration:none;color:var(--brown-900);font-size:15px;letter-spacing:1px;transition:.25s}
nav a:hover{color:#638FB0}

.hero{
  position:relative;
  height:100vh;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  background:
    linear-gradient(135deg,rgba(216,234,247,.82),rgba(255,249,221,.52) 48%,rgba(77,56,42,.34)),
    url('../images/hero.jpg');
  background-size:cover;
  background-position:center;
  background-blend-mode:normal,luminosity;
  text-align:center;
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at center,rgba(255,255,255,.38),rgba(232,243,250,.18) 42%,rgba(52,37,28,.18) 100%);
}
.hero > *{position:relative;z-index:1}
.hero h1{
  font-size:82px;color:#fff;
  text-shadow:0 8px 30px rgba(52,37,28,.34);
  letter-spacing:.5px;
}
.hero h2{margin-top:15px;font-size:29px;font-weight:400;color:var(--yellow-100);text-shadow:0 4px 18px rgba(52,37,28,.32)}
.hero .fecha{margin-top:30px;font-size:20px;color:white;letter-spacing:2px;line-height:1.7;font-weight:500;text-shadow:0 4px 16px rgba(52,37,28,.34)}
.boton{
  margin-top:45px;display:inline-block;padding:15px 38px;
  border:2px solid rgba(255,249,221,.86);color:white;text-decoration:none;transition:.3s;border-radius:40px;
  background:rgba(77,56,42,.14);backdrop-filter:blur(4px);
}
.boton:hover{background:var(--yellow-100);color:var(--brown-900);border-color:var(--yellow-100);transform:translateY(-2px)}

.titulo{text-align:center;font-size:52px;margin-bottom:25px;color:var(--brown-900)}
.titulo::after{content:"";display:block;width:92px;height:2px;margin:16px auto 0;background:linear-gradient(90deg,var(--blue-300),var(--yellow-200))}
.subtitulo{text-align:center;max-width:820px;margin:auto;line-height:1.85;color:var(--brown-700)}

#historia,#evento,#galeria{background:rgba(255,255,255,.54)}
#contador,#ubicacion{background:linear-gradient(180deg,var(--blue-50),var(--yellow-50))}

.contador{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;margin-top:60px;text-align:center}
.numero{
  background:rgba(255,255,255,.88);padding:30px;border-radius:18px;
  border:1px solid rgba(189,221,240,.9);
  box-shadow:0 18px 42px var(--shadow-blue);
}
.numero h3{font-size:55px;color:#6E9FC0}.numero span{font-size:15px;letter-spacing:1px;color:var(--brown-700)}

.eventos{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:40px;margin-top:50px}
.card{
  background:white;padding:40px;border-radius:22px;
  border:1px solid rgba(248,237,182,.95);
  box-shadow:0 18px 45px rgba(96,139,165,.13);
}
.card h3{font-size:35px;color:#638FB0;margin-bottom:20px}.card p{line-height:2;color:var(--brown-700)}

.galeria{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-top:50px}
.galeria img{width:100%;height:320px;object-fit:cover;border-radius:18px;background:var(--blue-100);border:6px solid white;box-shadow:0 14px 34px var(--shadow-blue)}
.mapa-contenedor{margin:50px auto 25px;max-width:1100px;border-radius:24px;overflow:hidden;box-shadow:0 20px 45px var(--shadow-blue);background:white;border:1px solid rgba(189,221,240,.9)}
.mapa-boton-wrap{text-align:center}.boton-maps{display:inline-block;padding:15px 35px;border-radius:40px;background:linear-gradient(135deg,var(--blue-300),var(--blue-400));color:var(--brown-900);text-decoration:none;font-weight:600;box-shadow:0 12px 26px rgba(96,139,165,.16)}.boton-maps:hover{background:linear-gradient(135deg,var(--yellow-100),var(--yellow-200))}

footer{background:linear-gradient(135deg,var(--blue-100),var(--yellow-100));padding:60px;text-align:center;color:var(--brown-900)}footer h2{font-size:45px;margin-bottom:20px;color:var(--brown-900)}footer p{line-height:2;color:var(--brown-700)}

@media(max-width:800px){section{padding:70px 7%}.hero h1{font-size:52px}.hero h2{font-size:22px}.contador{grid-template-columns:repeat(2,1fr)}nav{gap:14px;font-size:13px;overflow-x:auto;justify-content:flex-start;padding-left:18px}.titulo{font-size:42px}}
