:root{
  --ink:#1a241d;
  --ink-soft:#57624f;
  --verde:#1f5631;
  --verde-2:#2f7a3d;
  --sun:#f0981a;
  --sun-deep:#b4690b;
  --gold-light:#ffdf8f;
  --royal:#1d3a7a;
  --paper:#fbfaf6;
  --stone:#efe8d2;
  --paper-2:#ffffff;
  --line:rgba(26,36,29,0.13);
  --card-shadow:0 1px 2px rgba(26,36,29,0.05), 0 10px 28px -10px rgba(26,36,29,0.18);
  --radius:14px;
}
@media (prefers-color-scheme: dark){
  :root{
    --ink:#eef1ec; --ink-soft:#a8b3a2; --verde:#0e2616; --verde-2:#163a21;
    --paper:#0d1710; --stone:#17241a; --paper-2:#132015;
    --line:rgba(238,241,236,0.12);
    --card-shadow:0 1px 2px rgba(0,0,0,0.3), 0 10px 28px -10px rgba(0,0,0,0.5);
  }
  .eyebrow, .tone{color:var(--sun);}
  section.band-stone .eyebrow{color:#7fa0e8;}
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; padding:0 16px; background:var(--paper); color:var(--ink);
  font-family:'Work Sans', system-ui, sans-serif; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Fraunces', Georgia, serif; text-wrap:balance; margin:0; color:var(--ink); font-weight:600;}
.wrap{max-width:1160px; margin:0 auto;}
a{color:inherit;}
img{max-width:100%;}
.eyebrow{text-transform:uppercase; letter-spacing:.14em; font-size:12px; font-weight:700; color:var(--sun-deep);}
.tone{font-style:normal; color:var(--sun-deep);}

section{padding:76px 0;}
section.band-stone{background:var(--stone); margin:0 -16px; padding:76px 16px;}
section.band-stone .eyebrow{color:var(--royal);}
.section-head{max-width:640px; margin-bottom:38px;}
.section-head h2{font-size:clamp(26px,3.2vw,36px); margin-top:10px;}
.section-head p{color:var(--ink-soft); margin-top:12px; font-size:15.5px;}

/* HEADER */
header{position:sticky; top:0; z-index:50; background:var(--verde); color:#fff; margin:0 -16px; padding:0 16px;}
.nav{max-width:1160px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:16px;}
.brand{display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-weight:600; font-size:17px; color:#fff; text-decoration:none;}
.brand img{width:36px; height:50px; display:block; object-fit:contain;}
.brand small{display:block; font-family:'Work Sans',sans-serif; font-weight:500; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-light); margin-top:1px;}
ul.links{display:flex; gap:28px; list-style:none; margin:0; padding:0;}
ul.links a{font-size:14.5px; font-weight:500; text-decoration:none; color:#dbe2f0; white-space:nowrap;}
ul.links a:hover{color:#fff;}
.has-drop{position:relative;}
.dropdown{
  position:absolute; top:100%; left:-14px; margin-top:14px; background:var(--verde-2);
  border:1px solid rgba(255,255,255,.12); border-radius:10px; padding:8px; display:none;
  flex-direction:column; min-width:190px; box-shadow:0 18px 40px -12px rgba(0,0,0,.5);
}
.has-drop:hover .dropdown, .has-drop:focus-within .dropdown{display:flex;}
.dropdown a{padding:8px 10px; border-radius:7px; color:#dbe2f0;}
.dropdown a:hover{background:rgba(255,255,255,.08); color:#fff;}
.nav-contacto{border:1.5px solid rgba(255,255,255,.6); border-radius:999px; padding:7px 14px; font-weight:700;}
.nav-contacto:hover{border-color:var(--sun); color:#fff;}
.cta-consulta{display:none;}
@media (max-width:860px){ .cta-consulta{display:inline-block;} }
.cta-grupo{display:flex; gap:8px; align-items:center;}
.cta-consulta{color:#fff; font-weight:700; font-size:13.5px; padding:8px 14px; border:1.5px solid rgba(255,255,255,.55); border-radius:999px; text-decoration:none; white-space:nowrap; background:transparent;}
.cta-consulta:hover{border-color:#fff; background:rgba(255,255,255,.1);}
@media (max-width:420px){ .cta-grupo{gap:6px;} .cta-consulta,.cta-header{font-size:12px; padding:7px 9px;} .brand small{display:none;} header .brand span{display:none;} header .nav{gap:8px;} .brand img{width:28px; height:auto;} }
.cta-header{background:var(--sun); color:#1a1200; font-weight:700; font-size:13.5px; padding:9px 16px; border-radius:999px; text-decoration:none; white-space:nowrap;}
@media (max-width:860px){ header nav{display:none;} }

/* HERO */
.hero{
  background:
    radial-gradient(1200px 520px at 85% -15%, rgba(239,147,24,0.22), transparent 60%),
    linear-gradient(180deg, var(--verde) 0%, var(--verde-2) 100%);
  color:#fff; margin:0 -16px; padding:0 16px; border-radius:0 0 28px 28px; position:relative; overflow:hidden;
}

.hero-inner{max-width:1160px; margin:0 auto; padding:56px 0 46px; display:grid; grid-template-columns:1.05fr 1fr; gap:44px; align-items:center;}
@media (max-width:900px){ .hero-inner{grid-template-columns:1fr; gap:30px; padding:40px 0 34px;} }
.hero h1{font-size:clamp(34px,5.4vw,58px); color:#fff; line-height:1.04; max-width:16ch;}
.hero h1 em{font-style:normal; color:var(--sun);}
.hero p.lede{color:#d4e3d6; font-size:18px; max-width:52ch; margin-top:20px;}
.hero-actions{display:flex; gap:12px; margin-top:28px; flex-wrap:wrap;}
.btn-primary{background:var(--sun); color:#1a1200; font-weight:700; padding:13px 24px; border-radius:10px; text-decoration:none; font-size:14.5px; box-shadow:0 10px 24px -8px rgba(239,147,24,.55);}
.btn-ghost{border:1.5px solid rgba(255,255,255,.35); color:#fff; padding:13px 24px; border-radius:10px; text-decoration:none; font-size:14.5px; font-weight:600;}

.stat-strip{
  max-width:1160px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,.14); padding:30px 0 42px;
}
@media (max-width:800px){ .stat-strip{grid-template-columns:repeat(2,1fr); gap:24px 0;} }
.stat-strip div{padding:0 22px; border-left:1px solid rgba(255,255,255,.14);}
.stat-strip div:first-child{border-left:none; padding-left:0;}
@media (max-width:800px){ .stat-strip div:nth-child(2n+1){border-left:none; padding-left:0;} }
.stat-strip strong{display:block; font-family:'Fraunces',serif; font-size:clamp(20px,1.9vw,25px); line-height:1.2; margin-bottom:4px; color:#fff; font-weight:600;}
.stat-strip span{font-size:12.5px; color:#b6cdb9;}

/* STATEMENT */
.statement{display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center;}
@media (max-width:860px){ .statement{grid-template-columns:1fr;} }
.statement h2{font-size:clamp(26px,3.6vw,38px); line-height:1.15;}
.statement p{color:var(--ink-soft); font-size:15.5px; margin-top:16px; max-width:52ch;}
.photo-band{
  aspect-ratio:4/3; border-radius:18px; position:relative; overflow:hidden;
  display:flex; align-items:flex-end; padding:20px; color:#fff; box-shadow:var(--card-shadow);
}
.photo-band::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,28,16,.75), rgba(10,28,16,.05) 55%);}
.photo-band span{position:relative; z-index:2; font-size:12.5px; font-weight:600; letter-spacing:.04em;}

/* NIVELES */
.niveles-tabs{display:flex; gap:10px; margin-bottom:28px; flex-wrap:wrap;}
.nivel-tab{
  border:1px solid var(--line); background:var(--paper-2); padding:10px 20px; border-radius:999px;
  font-size:14px; font-weight:600; cursor:pointer; color:var(--ink-soft); font-family:inherit;
}
.nivel-tab.active{background:var(--verde); color:#fff; border-color:var(--verde);}
.nivel-panel{display:none; grid-template-columns:1fr 1fr; gap:40px; align-items:center;}
.nivel-panel.active{display:grid;}
@media (max-width:860px){ .nivel-panel{grid-template-columns:1fr;} }
.nivel-panel h3{font-size:22px;}
.nivel-panel p{color:var(--ink-soft); font-size:15px; margin-top:12px;}
.nivel-panel ul{margin:16px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px;}
.nivel-panel li{font-size:14px; color:var(--ink); display:flex; gap:8px; align-items:baseline;}
.nivel-panel li::before{content:"—"; color:var(--sun-deep); flex-shrink:0;}

/* CARRUSEL */
.carousel{position:relative; border-radius:18px; overflow:hidden; box-shadow:var(--card-shadow); background:var(--verde);}
.car-track{display:flex; transition:transform .6s cubic-bezier(.65,0,.35,1);}
.car-slide{min-width:100%; aspect-ratio:16/7; position:relative; display:flex; align-items:flex-end; padding:30px; color:#fff;}
@media (max-width:700px){ .car-slide{aspect-ratio:4/3.4;} }
.car-slide::after{content:"";position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,28,16,.82), rgba(10,28,16,.05) 60%);}
.car-slide .cs-content{position:relative; z-index:2;}
.car-slide .cs-tag{font-size:11.5px; text-transform:uppercase; letter-spacing:.1em; color:var(--gold-light); font-weight:700;}
.car-slide h3{color:#fff; font-size:23px; margin-top:6px;}
.car-slide p{color:#e0ece2; font-size:13.5px; margin:6px 0 0; max-width:44ch;}
.cs-bg{position:absolute; inset:0; background-size:cover; background-position:center;}
.car-dots{position:absolute; bottom:14px; right:20px; z-index:3; display:flex; gap:7px;}
.car-dots button{width:8px; height:8px; border-radius:50%; border:none; background:rgba(255,255,255,.4); cursor:pointer; padding:0;}
.car-dots button.active{background:var(--sun); width:22px; border-radius:5px;}
.car-arrow{position:absolute; top:50%; transform:translateY(-50%); z-index:3; background:rgba(10,28,16,.55); border:1px solid rgba(255,255,255,.25); color:#fff; width:38px; height:38px; border-radius:50%; cursor:pointer; font-size:16px; display:flex; align-items:center; justify-content:center;}
.car-arrow.prev{left:14px;} .car-arrow.next{right:14px;}
.car-arrow:hover{background:rgba(10,28,16,.8);}

/* PILARES */
.pilares-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:18px;}
.pilar-card{background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius); padding:24px; box-shadow:var(--card-shadow);}
.pilar-ico{width:60px; height:60px; border-radius:16px; background:#fff; border:1.5px solid rgba(31,86,49,.2); box-shadow:0 2px 8px -2px rgba(26,36,29,.18); display:flex; align-items:center; justify-content:center; margin-bottom:16px; font-size:32px; line-height:1;}
.pilar-card h3{font-size:16.5px; font-weight:600;}
.pilar-card p{font-size:13.5px; color:var(--ink-soft); margin-top:6px;}

/* TESTIMONIO */
.testimonio{max-width:760px; margin:0 auto; text-align:center; position:relative;}
.testimonio blockquote{
  font-family:'Fraunces',serif; font-size:clamp(20px,2.6vw,27px); font-weight:500; line-height:1.4;
  margin:0; color:var(--ink);
}
.testimonio cite{display:block; margin-top:22px; font-style:normal; font-size:13.5px; color:var(--ink-soft); font-weight:600;}

/* NOTICIAS */
.noticias-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media (max-width:900px){ .noticias-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .noticias-grid{grid-template-columns:1fr;} }
.noticia-card{background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--card-shadow); display:flex; flex-direction:column;}
.noticia-card img{width:100%; aspect-ratio:16/9; object-fit:cover; display:block;}
.noticia-body{padding:22px; display:flex; flex-direction:column; gap:8px;}
.noticia-fecha{font-size:11.5px; text-transform:uppercase; letter-spacing:.08em; font-weight:700; color:var(--sun-deep);}
.noticia-card h3{font-size:16px;}
.noticia-card p{font-size:13.5px; color:var(--ink-soft); margin:0;}
.noticias-grid{grid-auto-flow:row dense;}
.noticia-card img{cursor:zoom-in;}
.noticia-card.vertical{grid-column:span 2; flex-direction:row; align-items:stretch;}
.noticia-card.vertical img{width:44%; aspect-ratio:auto; height:auto; max-height:520px; object-fit:contain; background:#0b1410; flex:0 0 auto;}
.noticia-card.vertical .noticia-body{justify-content:center; padding:28px; flex:1;}
.noticia-card.vertical h3{font-size:20px;}
.noticia-card.vertical p{font-size:14.5px;}
@media (max-width:700px){ .noticia-card.vertical{flex-direction:column; grid-column:auto;} .noticia-card.vertical img{width:100%; max-height:420px;} }
.img-zoom{position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.88); display:flex; align-items:center; justify-content:center; padding:16px; cursor:zoom-out;}
.img-zoom img{max-width:100%; max-height:100%; object-fit:contain; border-radius:6px;}
.noticias-vacio{color:var(--ink-soft); font-size:14px;}

/* REDES */
.redes-layout{display:grid; grid-template-columns:1.3fr .9fr; gap:18px;}
@media (max-width:820px){ .redes-layout{grid-template-columns:1fr;} }
.fb-embed{border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--paper-2); box-shadow:var(--card-shadow); display:flex; flex-direction:column;}
.fb-embed-head{background:#1877f2; color:#fff; font-weight:700; font-size:13.5px; padding:12px 16px; display:flex; gap:8px; align-items:center;}
.fb-embed-body{flex:1; min-height:220px; display:flex; align-items:center; justify-content:center; text-align:center; padding:12px; background:var(--paper-2);}
.fb-embed-body iframe{max-width:100%; border:none; overflow:hidden;}
.redes-side{display:flex; flex-direction:column; gap:12px;}
.red-btn{display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper-2); padding:14px 16px; text-decoration:none; color:var(--ink); box-shadow:var(--card-shadow);}
.red-btn b{display:block; font-size:14px;}
.red-btn small{color:var(--ink-soft); font-size:12px;}
.red-btn .arrow{margin-left:auto; color:var(--ink-soft); font-size:15px;}
.red-btn:hover{border-color:var(--sun);}
.net-dot{width:9px; height:9px; border-radius:50%;}
.net-dot.ig{background:linear-gradient(135deg,#ef9318,#c02aad,#4c5fd7);}
.net-dot.fb{background:#fff;}
.net-dot.tt{background:linear-gradient(135deg,#25f4ee,#111,#fe2c55);}
.net-dot.wa{background:#25D366;}
.net-dot.yt{background:#ff0000;} .net-dot.x{background:#111;} .net-dot.li{background:#0a66c2;} .net-dot.th{background:#444;} .net-dot.tg{background:#27a7e7;} .net-dot.ot{background:var(--sun);}
.redes-layout.sin-fb{grid-template-columns:1fr; max-width:520px;}
.info-row a{color:inherit; font-weight:600;}

/* ACCESOS */
.accesos-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:14px;}
@media (max-width:900px){ .accesos-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:560px){ .accesos-grid{grid-template-columns:repeat(2,1fr);} }
.acceso-card{display:flex; flex-direction:column; align-items:flex-start; gap:4px; text-decoration:none; color:var(--ink); border:1px solid var(--line); border-radius:var(--radius); background:var(--paper-2); padding:18px; box-shadow:var(--card-shadow);}
.acceso-card:hover{border-color:var(--sun);}
.acceso-ico{width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:17px; margin-bottom:6px;}
.acceso-card b{font-size:14px;}
.acceso-card small{color:var(--ink-soft); font-size:12px;}

.tr-publico{display:flex; flex-direction:column; gap:3px; margin-top:6px; padding:16px 20px; border-radius:var(--radius); background:var(--paper-2); border:1px solid var(--line); border-left:5px solid var(--sun); box-shadow:var(--card-shadow); max-width:460px;}
.tr-pub-ico{font-size:22px; line-height:1;}
.tr-publico b{font-size:18px; line-height:1.2;}
.tr-publico small{font-size:15px; font-weight:700; color:var(--ink); line-height:1.4;}

/* CONTACTO */
.contacto{display:grid; grid-template-columns:1fr 1fr; gap:26px; background:var(--verde); color:#fff; border-radius:20px; padding:44px;}
@media (max-width:860px){ .contacto{grid-template-columns:1fr; padding:28px;} }
.contacto h2{color:#fff;}
.contacto .eyebrow{color:var(--sun);}
.info-row{display:flex; gap:12px; margin-top:16px; font-size:14px; color:#dbe8dd;}
.info-row b{color:#fff; display:block; font-size:13px;}
.map-box{border-radius:14px; overflow:hidden; background:var(--verde-2); border:1px solid rgba(255,255,255,.2); min-height:260px; display:flex;}
.map-box iframe{width:100%; min-height:260px; border:0; flex:1;}
.whatsapp-btn{margin-top:20px; display:inline-flex; align-items:center; gap:8px; background:#25D366; color:#04270f; font-weight:700; padding:11px 18px; border-radius:10px; text-decoration:none; font-size:14px;}

/* CTA FINAL */
.cta-final{text-align:center; background:var(--stone); margin:0 -16px; padding:70px 16px; border-radius:24px;}
.cta-final h2{font-size:clamp(26px,3.6vw,36px); max-width:20ch; margin:0 auto;}
.cta-final .btn-primary{color:#1a1200; margin-top:26px; display:inline-block;}
.cta-final .eyebrow{color:var(--royal);}

footer{padding:36px 0 50px; color:var(--ink-soft); font-size:13px; border-top:1px solid var(--line); margin-top:10px;}
.foot-row{display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; align-items:center;}
.foot-social{display:flex; gap:14px;}
.foot-social a{color:var(--ink-soft); text-decoration:none; font-weight:600; font-size:12.5px;}

/* KEYWORDS (pestañas Visión/Misión/Objetivo) */
.keywords{display:flex; flex-wrap:wrap; gap:14px; align-content:center; position:relative; padding:18px 0;}
.keywords::before{content:""; flex:0 0 100%; height:72px; background:url(../assets/monograma-dorado.png) left center/contain no-repeat;}
.keywords span{position:relative; background:var(--paper-2); color:var(--verde); border:1.5px solid var(--verde-2); border-left:7px solid var(--sun); padding:16px 26px; border-radius:14px; font-family:'Fraunces',serif; font-size:clamp(19px,2.2vw,24px); font-weight:600; box-shadow:var(--card-shadow);}

/* VIDEOS DE TESTIMONIOS */
.video-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
@media (max-width:900px){ .video-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .video-grid{grid-template-columns:1fr;} }
.video-thumb{position:relative; aspect-ratio:16/9; border:0; padding:0; border-radius:var(--radius); overflow:hidden; cursor:pointer; background:#000; box-shadow:var(--card-shadow);}
.video-thumb img{width:100%; height:100%; object-fit:cover; display:block; opacity:.85;}
.video-thumb .play{position:absolute; inset:0; margin:auto; width:56px; height:56px; border-radius:50%; background:var(--sun); color:#1a1200; display:flex; align-items:center; justify-content:center; font-size:20px;}
.video-thumb iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}

.form-btn{margin-top:20px; margin-left:8px; display:inline-flex; background:rgba(255,255,255,.1); color:#fff; border:2px solid var(--sun); font-weight:700; padding:10px 18px; border-radius:10px; text-decoration:none; font-size:14px;}
[hidden]{display:none !important;}

/* Transporte: con foto opcional a la derecha */
.transporte-layout.con-foto{display:grid; grid-template-columns:1.05fr .95fr; gap:36px; align-items:center;}
.tr-foto{margin:0; border-radius:var(--radius); overflow:hidden; box-shadow:var(--card-shadow); border:1px solid var(--line);}
.tr-foto img{display:block; width:100%; height:100%; max-height:420px; object-fit:cover;}
@media (max-width:820px){ .transporte-layout.con-foto{grid-template-columns:1fr; gap:22px;} }

/* Videos (YouTube, TikTok, Instagram, Facebook) */
.vgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:20px; align-items:start;}
.vitem{display:flex; flex-direction:column; gap:8px; width:100%;}
.vcard{position:relative; width:100%; aspect-ratio:16/9; border:0; padding:0; border-radius:var(--radius); overflow:hidden; cursor:pointer; background:#000; box-shadow:var(--card-shadow); color:#fff; font-family:inherit;}
.vcard img{width:100%; height:100%; object-fit:cover; display:block; opacity:.88;}
.vcard .vfondo{position:absolute; inset:0; display:flex; align-items:flex-start; justify-content:flex-start; padding:16px; font-weight:700; font-size:13px; letter-spacing:.08em; text-transform:uppercase;}
.vcard.p-tiktok .vfondo{background:radial-gradient(circle at 20% 15%,rgba(37,244,238,.35),transparent 45%),radial-gradient(circle at 85% 85%,rgba(254,44,85,.4),transparent 45%),#0d0d0d;}
.vcard.p-instagram .vfondo{background:linear-gradient(160deg,#f58529,#dd2a7b 55%,#8134af);}
.vcard.p-facebook .vfondo{background:linear-gradient(160deg,#1877f2,#0b4aa8);}
.vcard .play{position:absolute; inset:0; margin:auto; width:56px; height:56px; border-radius:50%; background:var(--sun); color:#1a1200; display:flex; align-items:center; justify-content:center; font-size:20px;}
.vcard iframe{position:absolute; inset:0; width:100%; height:100%; border:0; background:#000;}
.vmeta{display:flex; flex-direction:column; gap:2px;}
.vmeta b{font-size:14.5px; font-weight:600; line-height:1.3;}
.vmeta a{font-size:12.5px; color:var(--ink-soft);}
.vmeta a:hover{color:var(--verde);}

/* ---------- Cierre, WhatsApp flotante, apariciones ---------- */
.cta-sub{color:var(--ink-soft); margin:14px auto 0; max-width:46ch; font-size:16px;}
.cta-botones{display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:26px;}
.cta-final .btn-primary{margin-top:0;}
.btn-ghost-dark{border:1.5px solid var(--verde); color:var(--verde); padding:13px 24px; border-radius:10px; text-decoration:none; font-size:14.5px; font-weight:700;}
.wa-float{position:fixed; right:18px; bottom:18px; z-index:60; background:#25d366; color:#fff; font-weight:700; font-size:14px; padding:13px 20px 13px 46px; border-radius:999px; text-decoration:none; box-shadow:0 10px 24px -8px rgba(0,0,0,.45); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm5.2 14.2c-.2.6-1.300 1.200-1.800 1.200-.5.100-1.100.1-3.500-.9-3-1.300-4.900-4.300-5-4.500-.2-.2-1.200-1.600-1.200-3s.7-2.100 1-2.400c.2-.3.500-.3.700-.3h.5c.2 0 .4 0 .6.500l.8 2c.1.200.1.400 0 .5l-.4.600-.3.400c-.1.200-.3.300-.1.600.2.300.8 1.300 1.700 2.100 1.200 1 2.100 1.300 2.400 1.500.3.100.5.100.6-.1l.9-1.100c.2-.3.400-.2.600-.1l1.900.9c.3.100.4.200.5.300.1.200.1.800-.1 1.400z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:15px center; background-size:22px;}
@media (max-width:560px){ .wa-float{font-size:0; padding:0; width:54px; height:54px; background-position:center; background-size:28px;} }
.vetq{display:inline-block; font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--sun-deep); font-weight:700; margin-bottom:3px;}
.anim .rev{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.anim .rev.visto{opacity:1; transform:none;}

@media (prefers-color-scheme: dark){
  .keywords span{background:#1f3a27; color:#fff; border-color:var(--sun); box-shadow:none;}
  .btn-ghost-dark{border-color:#fff; color:#fff;}
  .cta-final .eyebrow, section.band-stone .eyebrow{color:var(--gold-light);}
}

/* ---------- Himno y requisitos ---------- */
.himno-layout{display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:center;}
@media (max-width:860px){ .himno-layout{grid-template-columns:1fr; gap:28px;} }
.estrofas{margin-top:22px; display:grid; grid-template-columns:1fr 1fr; gap:6px 32px;}
@media (max-width:560px){ .estrofas{grid-template-columns:1fr;} }
.estrofas p{margin:0 0 14px; font-family:'Fraunces',Georgia,serif; font-size:17px; line-height:1.55; color:var(--ink);}
.himno-audio{text-align:center;}
.himno-audio .video-thumb{width:100%;}
.himno-audio p{margin:12px 0 0; color:var(--ink-soft); font-size:14px;}
.req-grid{display:grid; grid-template-columns:1fr 1.15fr; gap:22px; align-items:start;}
@media (max-width:860px){ .req-grid{grid-template-columns:1fr;} }
.req-card{background:var(--paper-2); border-radius:var(--radius); box-shadow:var(--card-shadow); overflow:hidden; border:1px solid var(--line);}
.req-head{background:var(--verde-2); padding:18px 24px;}
.req-head h3{color:#fff; font-size:20px;}
.req-card ul{margin:0; padding:20px 24px 22px 44px; display:grid; gap:10px;}
.req-card li{color:var(--ink); font-size:15px; line-height:1.5;}
.req-card li::marker{color:var(--sun-deep);}
.req-nota{margin:18px auto 0; max-width:70ch; text-align:center; color:var(--ink-soft); font-size:14.5px;}
.req-cta{text-align:center; margin-top:26px;}
.vcard.p-tiktok .vfondo{font-weight:700;}

/* ---------- Fotos de la portada y de Nosotros ---------- */
.hero-fotos{position:relative; padding:0 0 38px 38px;}
.hf1{display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:20px; box-shadow:0 24px 50px -16px rgba(0,0,0,.55); border:3px solid rgba(255,255,255,.9);}
.hf2{position:absolute; left:0; bottom:0; width:46%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:14px; border:3px solid #fff; box-shadow:0 16px 34px -10px rgba(0,0,0,.6);}
.hf-sello{position:absolute; right:-10px; top:-18px; width:74px; height:auto; background:#fff; padding:8px 10px; border-radius:16px; box-shadow:0 12px 26px -8px rgba(0,0,0,.5);}
@media (max-width:900px){ .hero-fotos{padding:0 0 30px 22px; max-width:560px;} .hf-sello{width:60px; right:-4px;} }
.nos-col{display:grid; gap:20px; align-content:center;}
.nos-foto{margin:0;}
.nos-foto img{display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; border-radius:16px; box-shadow:var(--card-shadow);}
.nos-col .keywords{padding:0;}

.hero-inner.sin-fotos{grid-template-columns:1fr;}
.hero-fotos.solo-1{padding:0 0 0 0;}
.hero-fotos.solo-2{padding:0;}
.hero-fotos.solo-2 .hf2{position:static; width:100%; aspect-ratio:4/3;}
.hero-fotos.solo-1 .hf2{display:none;}

/* ---------- Visor de videos ---------- */
.visor{position:fixed; inset:0; z-index:100; background:rgba(8,14,10,.86); display:flex; align-items:center; justify-content:center; padding:20px;}
.visor-caja{position:relative; width:min(94vw,980px); aspect-ratio:16/9; max-height:84vh; background:#000; border-radius:14px; overflow:hidden; box-shadow:0 30px 80px -20px rgba(0,0,0,.8);}
.visor-caja.vert{width:min(92vw,400px); aspect-ratio:auto; height:min(86vh,720px);}
.visor-caja iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.visor-x{position:absolute; top:14px; right:16px; width:44px; height:44px; border-radius:50%; border:0; background:#fff; color:#111; font-size:28px; line-height:1; cursor:pointer; box-shadow:0 6px 16px rgba(0,0,0,.4);}
body.visor-abierto{overflow:hidden;}

/* AVISO DESTACADO */
.aviso-top{background:var(--sun); color:#1a1200; text-align:center; font-weight:600; font-size:14px; padding:10px 16px; line-height:1.4;}
.aviso-top a{color:#1a1200; font-weight:800; text-decoration:underline; margin-left:10px; white-space:nowrap;}
/* HORARIOS · LLAMAR · CÓMO LLEGAR */
.horarios ul{margin:4px 0 0; padding:0; list-style:none;}
.horarios li{margin:2px 0;}
.hor-clases{margin:8px 0 0; color:#fff;}
.hor-clases b{display:inline;}
.llamar-btn{margin-top:20px; margin-left:8px; display:inline-flex; align-items:center; gap:6px; background:#fff; color:var(--verde); font-weight:700; padding:11px 18px; border-radius:10px; text-decoration:none; font-size:14px;}
.map-col{display:flex; flex-direction:column; gap:12px;}
.map-col .map-box{flex:1;}
.llegar-btn{display:inline-flex; justify-content:center; align-items:center; gap:8px; background:var(--sun); color:#1a1200; font-weight:700; padding:12px 18px; border-radius:10px; text-decoration:none; font-size:14px;}
.call-float{display:none;}
@media (max-width:560px){
  .call-float{display:block; position:fixed; right:18px; bottom:84px; z-index:60; width:54px; height:54px; border-radius:50%; background:var(--sun); font-size:0; box-shadow:0 10px 24px -8px rgba(0,0,0,.45);
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231a1200'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.250.2 2.450.57 3.600a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:center; background-size:26px;}
  .llamar-btn{margin-left:0;}
}
/* COMPARTIR NOTICIA */
.noticia-compartir{margin-top:6px; align-self:flex-start; font-size:12.5px; font-weight:700; color:var(--verde-2); text-decoration:none; border:1px solid var(--line); border-radius:999px; padding:6px 12px;}
.noticia-compartir:hover{border-color:#25D366; color:#128c4a;}
/* CALENDARIO */
.cal-lista{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
@media (max-width:700px){ .cal-lista{grid-template-columns:1fr;} }
.cal-item{display:flex; gap:16px; align-items:center; background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius); padding:14px 18px; box-shadow:var(--card-shadow);}
.cal-fecha{flex:0 0 74px; text-align:center; background:var(--verde); color:#fff; border-radius:12px; padding:8px 4px; line-height:1.1;}
.cal-fecha b{display:block; font-size:24px;}
.cal-fecha span{font-size:11px; letter-spacing:.08em; font-weight:700; color:var(--gold-light);}
.cal-texto h3{font-size:16px; margin:0;}
.cal-texto p{margin:4px 0 0; font-size:13.5px; color:var(--ink-soft);}
@media (max-width:560px){ .form-btn{margin-left:0;} }

/* ---------- Formularios del sitio (contacto y admisiones) ---------- */
html.dlg-abierto{overflow:hidden;}
.form-dlg{--err:#c0392b; border:none; padding:0; background:transparent; max-width:none; width:min(580px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); margin:auto; color:var(--ink);}
@media (prefers-color-scheme:dark){ .form-dlg{--err:#ff8d7e;} }
.form-dlg::backdrop{background:rgba(8,16,10,.62); backdrop-filter:blur(2px);}
.dlg-caja{background:var(--paper-2); border-radius:18px; overflow:hidden; display:flex; flex-direction:column; max-height:calc(100dvh - 24px); box-shadow:0 30px 70px -20px rgba(0,0,0,.55);}
.dlg-cab{background:linear-gradient(180deg,var(--verde),var(--verde-2)); color:#fff; padding:16px 18px; display:flex; gap:14px; align-items:center; border-bottom:4px solid var(--sun); flex:0 0 auto;}
.dlg-cab img{width:40px; height:40px; object-fit:contain;}
.dlg-cab h2{color:#fff; font-size:21px; line-height:1.15;}
.dlg-cab p{margin:3px 0 0; font-size:13px; opacity:.88;}
.dlg-x{margin-left:auto; flex:0 0 auto; width:36px; height:36px; border-radius:50%; border:0; background:rgba(255,255,255,.14); color:#fff; font-size:16px; cursor:pointer;}
.dlg-x:hover{background:rgba(255,255,255,.28);}
.dlg-cuerpo{padding:20px 20px 22px; overflow:auto; flex:1 1 auto;}
.ff{margin-bottom:14px; text-align:left;}
.ff label, .ff .lbl{display:block; font-size:13.5px; font-weight:600; margin-bottom:6px; color:var(--ink);}
.ff .req{color:var(--sun-deep);} .ff .opt{color:var(--ink-soft); font-weight:400;}
.ff input[type=text],.ff input[type=tel],.ff input[type=email],.ff input[type=date],.ff textarea{width:100%; font:inherit; font-size:16px; padding:12px 14px; border:1.5px solid var(--line); border-radius:10px; background:var(--paper); color:var(--ink); box-sizing:border-box;}
.ff textarea{resize:vertical; min-height:96px;}
.ff input:focus,.ff textarea:focus{outline:3px solid rgba(240,152,26,.35); border-color:var(--sun);}
.ff [aria-invalid="true"]{border-color:var(--err);}
.ff-corto input{max-width:240px;}
.ff-hint{font-size:12.5px; color:var(--ink-soft); margin-top:5px;}
.ff-err,.ff-envio-err{color:var(--err); font-size:13px; margin-top:5px;}
.ff-err:empty,.ff-envio-err:empty{display:none;}
.ff-envio-err{margin:4px 0 10px; font-size:13.5px;} .ff-envio-err a{color:inherit; text-decoration:underline; font-weight:600;}
.ff-trampa{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.chips{display:flex; flex-wrap:wrap; gap:8px;}
.chip{position:relative;}
.chip input{position:absolute; opacity:0; pointer-events:none;}
.chip label{display:flex; flex-direction:column; margin:0; border:1.5px solid var(--line); border-radius:12px; padding:9px 14px; cursor:pointer; background:var(--paper); min-width:64px; font-weight:600;}
.chip label small{font-size:12px; font-weight:400; color:var(--ink-soft);}
.chip input:checked + label{border-color:var(--sun); background:rgba(240,152,26,.14); box-shadow:inset 0 0 0 1px var(--sun);}
.chip input:focus-visible + label{outline:3px solid rgba(240,152,26,.4);}
.ff-grado .chip label{min-width:0;}
.paso{border:0; margin:0; padding:0; min-width:0;}
.paso legend{font-family:'Fraunces', Georgia, serif; font-size:18px; font-weight:600; padding:0; margin-bottom:14px;}
.pasos{list-style:none; display:flex; gap:6px; margin:0 0 18px; padding:0;}
.pasos li{flex:1; display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink-soft); border-top:3px solid var(--line); padding-top:8px;}
.pasos li span{display:inline-grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--line); font-weight:700; font-size:12px; color:var(--ink);}
.pasos li em{font-style:normal; font-weight:600;}
.pasos li.act{border-color:var(--sun); color:var(--ink);} .pasos li.act span{background:var(--sun); color:#1a1200;}
.pasos li.hecho{border-color:var(--verde-2);} .pasos li.hecho span{background:var(--verde-2); color:#fff;}
.resumen{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-top:14px;}
.resumen dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:4px 14px; font-size:13.5px;}
.resumen dt{color:var(--ink-soft);} .resumen dd{margin:0; font-weight:600; overflow-wrap:anywhere;}
.ff-acc{display:flex; gap:10px; justify-content:flex-end; margin-top:6px;}
.btn-env{background:var(--sun); color:#1a1200; font-weight:700; border:0; border-radius:10px; padding:13px 26px; font-size:15px; cursor:pointer; font-family:inherit; box-shadow:0 10px 24px -10px rgba(239,147,24,.7);}
.btn-env:disabled{opacity:.7; cursor:progress;}
.btn-sec{background:transparent; border:1.5px solid var(--line); color:var(--ink); border-radius:10px; padding:12px 20px; font-weight:600; font-family:inherit; font-size:15px; cursor:pointer;}
.btn-sec:hover{border-color:var(--sun);}
.ff-nota{margin:12px 0 0; font-size:12px; color:var(--ink-soft); text-align:right;}
.exito{text-align:center; padding:8px 4px 4px;}
.exito-ico{width:64px; height:64px; border-radius:50%; background:var(--verde-2); color:#fff; font-size:32px; display:grid; place-items:center; margin:4px auto 14px;}
.exito h3{font-size:22px; margin-bottom:8px; outline:none;}
.exito p{color:var(--ink-soft); font-size:15px; margin:0 0 10px;}
.exito-cod b{color:var(--ink); letter-spacing:.04em;}
.btn-wa{display:inline-flex; align-items:center; gap:8px; background:#25D366; color:#04270f; font-weight:700; padding:12px 20px; border-radius:10px; text-decoration:none; font-size:14.5px; margin:8px 8px 0 0;}
.exito .btn-sec{margin-top:8px;}
@media (max-width:560px){
  .form-dlg{width:100vw; max-height:100dvh;}
  .dlg-caja{border-radius:0; max-height:100dvh; height:100dvh;}
  .pasos li em{display:none;} .pasos li{justify-content:center;}
  .ff-acc{flex-direction:row-reverse;} .ff-acc .btn-env{flex:1;}
  .ff-corto input{max-width:none;}
}

/* Pie de página */
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:28px; padding-bottom:26px; margin-bottom:18px; border-bottom:1px solid var(--line);}
.foot-col{display:flex; flex-direction:column; gap:7px; align-items:flex-start; line-height:1.45;}
.foot-col>b{color:var(--ink); font-size:14px; margin-bottom:2px;}
.foot-col a{color:var(--ink-soft); text-decoration:none;}
.foot-col a:hover{color:var(--ink); text-decoration:underline;}
.foot-marca img{margin-bottom:4px;}
.foot-marca span{max-width:34ch;}
@media (max-width:760px){ .foot-grid{grid-template-columns:1fr; gap:22px;} }

.form-btn:hover{background:var(--sun); color:#1a1200;}

/* Himno a todo el ancho */
.himno-wrap{max-width:1000px; margin:0 auto;}
.himno-cab{text-align:center;}
#himno .estrofas{margin-top:30px; gap:10px 56px; max-width:960px; margin-left:auto; margin-right:auto;}
#himno .estrofas p{font-size:clamp(19px,2.1vw,23px); line-height:1.6; margin:0 0 22px;}
.himno-player{margin-top:14px; display:flex; gap:14px; align-items:center; justify-content:center; flex-wrap:wrap; color:var(--ink-soft); font-size:14px;}
.himno-player[hidden]{display:none;}
.himno-player audio{width:min(420px,100%);}
@media (max-width:560px){ #himno .estrofas{grid-template-columns:1fr;} }
/* Botón de música de fondo */
.musica-btn{position:fixed; left:18px; bottom:18px; z-index:60; display:inline-flex; align-items:center; gap:8px; border:2px solid var(--sun); background:#1f5a31; color:#fff; font:700 13.5px/1 inherit; font-family:inherit; padding:11px 16px 11px 12px; border-radius:999px; cursor:pointer; box-shadow:0 10px 24px -8px rgba(0,0,0,.45);}
.musica-btn[hidden]{display:none;}
.musica-btn:hover{background:#26703c;}
.musica-btn .mi{width:18px; height:18px; display:inline-block; background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f0981a'%3E%3Cpath d='M9 18V5l12-2v13a3 3 0 1 1-2-2.8V6.3L11 7.700V18a3 3 0 1 1-2-2.800z'/%3E%3C/svg%3E");}
.musica-btn.suena .mi{animation:mbeat 1s ease-in-out infinite;}
@keyframes mbeat{50%{transform:scale(1.25) rotate(-8deg);}}
@media (prefers-reduced-motion:reduce){ .musica-btn.suena .mi{animation:none;} }
@media (max-width:560px){ .musica-btn .mt{display:none;} .musica-btn{width:54px; height:54px; padding:0; justify-content:center;} .musica-btn .mi{width:24px; height:24px;} }

/* Música apagada: gris y con una raya sobre la nota, para que se note que no suena */
.musica-btn:not(.suena){background:#6b726d; border-color:#b9c0bb; color:#e9ecea;}
.musica-btn:not(.suena):hover{background:#7a817c;}
.musica-btn:not(.suena) .mi{position:relative; opacity:.8; filter:grayscale(1) brightness(1.6);}
.musica-btn:not(.suena) .mi::after{content:""; position:absolute; left:-3px; right:-3px; top:50%; height:2.5px; background:#fff; border-radius:2px; transform:rotate(-45deg); box-shadow:0 0 0 1.5px #6b726d;}
@media (max-width:560px){ .musica-btn:not(.suena) .mi::after{left:-4px; right:-4px;} }

/* Recorrido por las instalaciones */
.recorrido-wrap{max-width:900px; margin:0 auto; text-align:center;}
.recorrido-cab p{margin:10px auto 0; color:var(--ink-soft); max-width:56ch;}
.recorrido-video{display:block; width:100%; margin:26px auto 0;}
.recorrido-video img{opacity:1;}
.recorrido-video .play{width:76px; height:76px; font-size:28px; box-shadow:0 8px 24px rgba(0,0,0,.4);}
.recorrido-video:hover .play{transform:scale(1.07);}

/* Portada propia de un video (Instagram, TikTok, Facebook): fondo desenfocado + imagen completa */
.vcard .vportada{position:absolute; inset:0; overflow:hidden; background:#000;}
.vcard .vp-fondo{position:absolute; inset:-12%; width:124%; height:124%; object-fit:cover; filter:blur(18px) brightness(.7); opacity:1;}
.vcard .vp-frente{position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:1;}
.vcard .vplat{position:absolute; top:10px; left:10px; z-index:2; padding:4px 10px; border-radius:999px; background:rgba(0,0,0,.55); color:#fff; font-weight:700; font-size:11px; letter-spacing:.08em; text-transform:uppercase;}
.vcard .play{z-index:2;}

/* Videos agrupados por sección */
.vsecs{display:block;}
.vsec + .vsec{margin-top:36px;}
.vsec-t{font-family:var(--font-display, inherit); font-size:1.25rem; margin:0 0 14px; padding-left:12px; border-left:4px solid var(--gold, var(--primary, #444));}
.vsec[hidden]{display:none;}
.vfiltros{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 24px;}
.vfiltro{border:1px solid var(--line, #ccc); background:#fff; color:inherit; padding:8px 16px; border-radius:999px; font:inherit; font-size:.92rem; cursor:pointer;}
.vfiltro[aria-pressed="true"]{background:var(--primary, #1d3a6b); color:#fff; border-color:transparent;}
.vfiltro:focus-visible{outline:3px solid var(--gold, #c9a227); outline-offset:2px;}
