:root{
  /* Colores corporativos: rojo violáceo + oro */
  --vino:#7b1a4b;
  --vino-claro:#a3386e;
  --vino-osc:#4e0f30;
  --vino-prof:#2c0719;
  --oro:#c9a45c;
  --oro-claro:#ecd9a8;
  --oro-osc:#94712f;
  --grad-oro:linear-gradient(135deg,#f6e7b9 0%,#d8b76c 35%,#b98f45 60%,#e9d39b 100%);
  --marfil:#fbf4ee;
  --marfil-2:#f4e6df;
  --texto:#3a1428;
  --suave:#6e4a5a;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Jost",system-ui,sans-serif;
  --r:22px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{background:var(--marfil);color:var(--texto);font:300 17px/1.65 var(--sans);overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1;color:var(--vino)}
h2{font-size:clamp(2.1rem,5vw,3.4rem)}
h2 em{font-style:italic;color:var(--oro-osc)}
.eyebrow{font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--oro-osc);font-weight:500;margin-bottom:.9rem}
section{padding:clamp(70px,10vw,130px) clamp(16px,5vw,64px)}

/* Logo (PNG transparente usado como máscara, relleno con degradado oro) */
.logo-mask,.wordmark,.logo-grande{display:inline-block;background:var(--grad-oro);-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.logo-mask{-webkit-mask-image:url(../img/corona.png);mask-image:url(../img/corona.png);aspect-ratio:1400/1108}
.wordmark{-webkit-mask-image:url(../img/wordmark.png);mask-image:url(../img/wordmark.png);aspect-ratio:1800/521}
.logo-grande{-webkit-mask-image:url(../img/logo-completo.png);mask-image:url(../img/logo-completo.png);aspect-ratio:1400/1502}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.95em 1.9em;border-radius:999px;font:500 .85rem var(--sans);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:transform .25s,background .25s,color .25s,box-shadow .25s,filter .25s}
.btn:hover{transform:translateY(-2px)}
.btn--solid{background:var(--vino);color:#fff;box-shadow:0 10px 30px -12px rgba(78,15,48,.7)}
.btn--solid:hover{background:var(--vino-claro)}
.btn--ghost{border:1px solid var(--vino);color:var(--vino)}
.btn--ghost:hover{background:var(--vino);color:#fff}
.btn--pill{background:var(--grad-oro);color:var(--vino-prof);padding:.7em 1.4em}
.btn--pill:hover{filter:brightness(1.08)}
.btn--oro{background:var(--grad-oro);color:var(--vino-prof);box-shadow:0 12px 30px -14px rgba(201,164,92,.8)}
.btn--oro:hover{filter:brightness(1.08)}
.btn--ghost-claro{border:1px solid rgba(236,217,168,.6);color:var(--oro-claro)}
.btn--ghost-claro:hover{background:var(--oro-claro);color:var(--vino-prof)}

/* Nav */
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(16px,5vw,64px);transition:background .3s,box-shadow .3s}
.nav.is-scrolled{background:rgba(44,7,25,.9);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(201,164,92,.25)}
.nav__marca{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.nav__marca .logo-mask{width:46px}
.nav__nombre{width:120px}
.nav__menu{display:flex;align-items:center;gap:2rem}
.nav__menu a:not(.btn){text-decoration:none;font-size:.9rem;letter-spacing:.06em;color:var(--oro-claro);position:relative}
.nav__menu a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--oro);transform:scaleX(0);transition:transform .3s}
.nav__menu a:not(.btn):hover::after{transform:scaleX(1)}
.nav__toggle{display:none;background:none;border:0;width:40px;height:40px;cursor:pointer;position:relative}
.nav__toggle span{position:absolute;left:9px;right:9px;height:1.5px;background:var(--oro-claro);transition:transform .3s}
.nav__toggle span:first-child{top:15px}.nav__toggle span:last-child{top:24px}
.nav.is-open .nav__toggle span:first-child{transform:translateY(4.5px) rotate(45deg)}
.nav.is-open .nav__toggle span:last-child{transform:translateY(-4.5px) rotate(-45deg)}

/* Hero */
.hero{min-height:100svh;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(24px,5vw,80px);padding-top:110px;color:#f5e6ec;background:
  radial-gradient(55% 60% at 80% 35%,rgba(201,164,92,.18),transparent 70%),
  radial-gradient(60% 70% at 10% 90%,rgba(163,56,110,.55),transparent 70%),
  linear-gradient(160deg,var(--vino) 0%,var(--vino-osc) 60%,var(--vino-prof) 100%)}
.hero__texto{display:flex;flex-direction:column;align-items:center;text-align:center}
.hero__logo{display:flex;flex-direction:column;align-items:center;margin-bottom:1.6rem}
.hero__logo .logo-grande{width:clamp(240px,30vw,400px);filter:drop-shadow(0 10px 24px rgba(0,0,0,.35))}
.hero__sub{font:500 clamp(.8rem,1.3vw,.95rem) var(--sans);letter-spacing:.45em;text-transform:uppercase;color:var(--oro-claro);margin-top:1.4rem;padding-left:.45em}
.hero__lema{font:italic 400 clamp(1.4rem,2.4vw,1.85rem)/1.35 var(--serif);color:#fff;max-width:30ch;margin-bottom:1rem}
.hero__bajada{max-width:44ch;color:#e7cfd9;margin-bottom:2rem}
.hero__acciones{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.hero .btn--solid{background:var(--grad-oro);color:var(--vino-prof)}
.hero .btn--solid:hover{filter:brightness(1.08)}
.hero .btn--ghost{border-color:rgba(236,217,168,.6);color:var(--oro-claro)}
.hero .btn--ghost:hover{background:var(--oro-claro);color:var(--vino-prof)}
.hero__dato{margin-top:2.2rem;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--oro)}
.hero__foto{position:relative;justify-self:center;width:min(100%,440px)}
.arco{display:block;border-radius:999px 999px var(--r) var(--r);overflow:hidden;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);border:3px solid var(--oro);outline:1px solid rgba(201,164,92,.4);outline-offset:8px}
.arco img{width:100%;aspect-ratio:3/4.1;object-fit:cover;object-position:50% 20%;transition:transform 1.2s}
.hero__foto:hover .arco img{transform:scale(1.04)}

/* Títulos */
.titulo{text-align:center;max-width:720px;margin:0 auto clamp(40px,6vw,64px)}
.titulo h2::after{content:"";display:block;width:70px;height:2px;background:var(--grad-oro);margin:1.1rem auto 0}
.titulo--claro h2{color:#fff}
.titulo--claro h2 em{color:var(--oro-claro)}
.titulo--claro .eyebrow{color:var(--oro)}

/* Clases */
.clases__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1200px;margin:0 auto}
.card{background:#fff;border-radius:var(--r);padding:34px 28px;position:relative;box-shadow:0 20px 50px -30px rgba(78,15,48,.35);transition:transform .35s,box-shadow .35s;border-top:3px solid var(--oro)}
.card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(78,15,48,.5)}
.card__num{font:italic 500 2.6rem var(--serif);color:var(--oro);display:block;margin-bottom:.6rem}
.card h3{font-size:1.65rem;margin-bottom:.6rem}
.card p{color:var(--suave);font-size:.98rem}

/* Luna */
.luna{background:linear-gradient(180deg,var(--vino) 0%,var(--vino-osc) 55%,var(--vino-prof) 100%);color:#f3e3ea;position:relative;overflow:hidden}
.luna::before{content:"";position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(201,164,92,.18),transparent 65%);top:-250px;right:-200px;pointer-events:none}
.luna__intro{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,90px);align-items:center;max-width:1150px;margin:0 auto}
.luna__foto{border-radius:var(--r);overflow:hidden;border:1px solid rgba(201,164,92,.6);padding:10px;background:rgba(255,255,255,.04)}
.luna__foto img{border-radius:calc(var(--r) - 8px);width:100%;aspect-ratio:1/1.1;object-fit:cover;object-position:40% 40%}
.luna h2{color:#fff}
.luna h2 em{color:var(--oro-claro)}
.luna .eyebrow{color:var(--oro)}
.luna__cita{font:italic 400 1.6rem var(--serif);color:var(--oro-claro);margin:.6rem 0 1.2rem}
.luna__texto p{margin-bottom:1rem;max-width:52ch}
.luna__texto strong{color:#fff;font-weight:500}
.luna .btn--ghost{border-color:var(--oro);color:var(--oro-claro);margin-top:.6rem}
.luna .btn--ghost:hover{background:var(--oro);color:var(--vino-prof)}
.formacion{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:.4rem 0 1.4rem}
.formacion li{border:1px solid rgba(201,164,92,.55);color:var(--oro-claro);border-radius:999px;padding:.35em 1em;font-size:.8rem;letter-spacing:.06em}
.logros__titulo{margin-top:clamp(60px,8vw,100px);margin-bottom:clamp(28px,4vw,40px)}
.logros{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1150px;margin:0 auto}
.logros li{border:1px solid rgba(201,164,92,.4);border-radius:var(--r);padding:24px 18px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.25rem;background:rgba(255,255,255,.03)}
.logros strong{font:500 1.35rem var(--serif);color:#fff}
.logros small{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#d9b9c8}
.medalla{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font:600 1.15rem var(--serif);margin-bottom:.4rem;color:var(--vino-prof)}
.oro{background:radial-gradient(circle at 35% 30%,#f6e6b8,var(--oro))}
.bronce{background:radial-gradient(circle at 35% 30%,#f0c8a8,#b07a52)}
.cia{background:var(--grad-oro)}
.escena{max-width:1150px;margin:clamp(70px,9vw,110px) auto 0}
.escena__grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:14px}
.escena__item{position:relative;border-radius:16px;overflow:hidden;margin:0;border:1px solid rgba(201,164,92,.3)}
.escena__item--ancho{grid-column:span 2}
.escena__item img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.escena__item:hover img{transform:scale(1.06)}
.escena__item figcaption{position:absolute;inset:auto 0 0;padding:28px 16px 14px;background:linear-gradient(transparent,rgba(44,7,25,.88));font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--oro-claro)}
.shamal{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,6vw,80px);align-items:center;max-width:1150px;margin:clamp(70px,9vw,110px) auto 0}
.shamal__foto{margin:0;border-radius:var(--r);overflow:hidden;border:1px solid rgba(201,164,92,.6)}
.shamal__foto img{width:100%;aspect-ratio:4/4.6;object-fit:cover;object-position:50% 62%}
.shamal h2{font-size:clamp(2rem,4.4vw,3rem)}
.shamal h2 em{display:block;font-size:.55em;margin-top:.4rem;letter-spacing:.02em}
.shamal__texto>p{margin:1.1rem 0;max-width:54ch}
.shamal__lista{list-style:none;margin:0 0 1.6rem;display:grid;gap:.55rem}
.shamal__lista li{padding-left:1.4rem;position:relative}
.shamal__lista li::before{content:"✦";position:absolute;left:0;color:var(--oro);font-size:.8rem;top:.25rem}
.shamal__lista strong{color:#fff;font-weight:500}
.evento{border:1px solid var(--oro);border-radius:var(--r);padding:22px 24px;background:linear-gradient(135deg,rgba(201,164,92,.18),rgba(163,56,110,.12))}
.evento__tag{display:inline-block;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;background:var(--grad-oro);color:var(--vino-prof);padding:.3em .9em;border-radius:999px;margin-bottom:.8rem;font-weight:500}
.evento h3{color:#fff;font-size:1.7rem;margin-bottom:.3rem}
.evento h3 em{color:var(--oro-claro)}
.evento__datos{margin-top:.6rem;color:var(--oro-claro);font-size:.92rem}
.shamal__redes{margin-top:1.4rem!important}
.shamal__redes a{color:var(--oro-claro)}

/* Galería */
.galeria__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:1200px;margin:0 auto}
.galeria__grid img{width:100%;height:380px;object-fit:cover;border-radius:16px;transition:transform .4s,filter .4s;filter:saturate(.95);border:1px solid rgba(201,164,92,.35)}
.galeria__grid img:nth-child(even){margin-top:40px}
.galeria__grid img:hover{transform:translateY(-6px);filter:saturate(1.1)}
.galeria__ig{display:block;text-align:center;margin-top:36px;color:var(--vino);font-family:var(--serif);font-size:1.3rem;font-style:italic}

/* Horario */
.horario{background:linear-gradient(135deg,var(--marfil-2),var(--marfil))}
.horario__card{max-width:760px;margin:0 auto;background:#fff;border-radius:calc(var(--r) + 8px);padding:clamp(34px,6vw,64px);text-align:center;box-shadow:0 30px 70px -40px rgba(78,15,48,.5);border:1px solid rgba(201,164,92,.5)}
.datos{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:20px;margin:2.2rem 0 2.4rem;text-align:left}
.datos div{border-left:2px solid var(--oro);padding-left:14px}
.datos dt{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--oro-osc)}
.datos dd{font:500 1.3rem/1.3 var(--serif);color:var(--vino)}
.modalidades{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:-.6rem 0 2.2rem;text-align:left}
.modalidades li{background:var(--marfil);border:1px solid rgba(201,164,92,.35);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:.2rem}
.modalidades strong{font:500 1.15rem var(--serif);color:var(--vino)}
.modalidades strong::before{content:"✦ ";color:var(--oro);font-size:.8em}
.modalidades span{font-size:.88rem;color:var(--suave)}

/* CTA */
.cta{background:radial-gradient(80% 120% at 50% 0%,var(--vino-claro),var(--vino) 40%,var(--vino-prof));text-align:center;color:#f3e3ea}
.cta__corona{width:120px;margin-bottom:1.2rem}
.cta h2{color:#fff;max-width:18ch;margin:0 auto 1rem}
.cta h2 em{color:var(--oro-claro)}
.cta p{margin-bottom:2rem;color:#ead2dc}
.cta .hero__acciones{justify-content:center}
.cta__tel{margin:1.4rem 0 0!important;font:italic 400 1.3rem var(--serif);color:var(--oro-claro)!important}
.ico{width:1.3em;height:1.3em;flex:none}

/* WhatsApp flotante */
.wsp-flotante{position:fixed;right:18px;bottom:18px;z-index:60;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--vino);color:var(--oro-claro);border:2px solid var(--oro);box-shadow:0 14px 30px -10px rgba(44,7,25,.7);transition:transform .25s,background .25s}
.wsp-flotante svg{width:28px;height:28px}
.wsp-flotante:hover{transform:scale(1.08);background:var(--vino-claro);color:#fff}

/* Pie */
.pie{background:var(--vino-prof);color:#cfa9bb;text-align:center;padding:56px 16px 40px;border-top:1px solid rgba(201,164,92,.3)}
.pie__logo{width:150px;margin-bottom:1rem}
.pie p{font-size:.88rem;margin-bottom:.4rem}
.pie a{color:var(--oro-claro)}
.pie__mini{opacity:.6;font-size:.75rem!important;margin-top:1rem}

/* Aparición */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* Responsive */
@media (max-width:1000px){
  .clases__grid{grid-template-columns:repeat(2,1fr)}
  .logros{grid-template-columns:repeat(2,1fr)}
  .escena__grid{grid-template-columns:repeat(2,1fr)}
  .galeria__grid{grid-template-columns:repeat(2,1fr)}
  .galeria__grid img:nth-child(even){margin-top:0}
}
@media (max-width:800px){
  .nav__toggle{display:block}
  .nav__menu{position:fixed;inset:70px 12px auto;flex-direction:column;gap:1.2rem;padding:28px;background:var(--vino-osc);border:1px solid rgba(201,164,92,.4);border-radius:var(--r);box-shadow:0 30px 60px -20px rgba(0,0,0,.5);opacity:0;pointer-events:none;transform:translateY(-10px);transition:.3s}
  .nav.is-open .nav__menu{opacity:1;pointer-events:auto;transform:none}
  .nav.is-open{background:rgba(44,7,25,.95)}
  .hero{grid-template-columns:1fr;padding-top:100px}
  .hero__foto{width:min(82%,380px);margin-top:40px;grid-row:2}
  .luna__intro,.shamal{grid-template-columns:1fr}
  .datos,.modalidades{grid-template-columns:1fr}
}
@media (max-width:560px){
  body{font-size:16px}
  section{padding-left:16px;padding-right:16px}
  .clases__grid{grid-template-columns:1fr}
  .escena__grid{grid-auto-rows:200px}
  .galeria__grid{grid-template-columns:repeat(2,1fr)}
  .galeria__grid img{height:240px}
  .btn{width:100%}
  .nav__menu .btn{width:auto}
  .nav__nombre{width:100px}
}