:root{
  --green:#0c5d2b;
  --green-2:#13763a;
  --green-3:#0a4823;
  --lime:#a8df55;
  --ink:#102019;
  --muted:#607069;
  --cream:#f6f8f4;
  --white:#fff;
  --border:#dce6df;
  --shadow:0 24px 60px rgba(8,48,24,.14);
  --radius:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.skip-link{position:fixed;left:12px;top:-80px;z-index:999;background:#fff;color:#111;padding:10px 14px;border-radius:8px}.skip-link:focus{top:12px}
.topbar{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(12,93,43,.08)}
.nav-wrap{height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;min-width:max-content}.brand img{width:58px;height:58px;object-fit:contain}.brand span{display:flex;flex-direction:column;line-height:1.05}.brand strong{text-transform:uppercase;letter-spacing:.02em;font-size:17px}.brand small{margin-top:5px;color:var(--muted);font-weight:700;font-size:12px}
.nav{display:flex;align-items:center;gap:24px;font-size:14px;font-weight:800}.nav>a:not(.nav-cta):not(.nav-admin){position:relative}.nav>a:not(.nav-cta):not(.nav-admin)::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--green);transition:.25s}.nav>a:hover::after{right:0}.nav-cta,.nav-admin{padding:11px 16px;border-radius:999px}.nav-cta{background:var(--green);color:#fff}.nav-admin{border:1px solid var(--green);color:var(--green)}
.menu-toggle{display:none;width:44px;height:44px;border:0;background:transparent;padding:8px}.menu-toggle span{height:2px;background:var(--ink);display:block;margin:6px 0;border-radius:9px}
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#f5faf6 0%,#eef6ef 42%,#e3f1e7 100%);min-height:690px;display:flex;align-items:center}.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.12fr .88fr;align-items:center;gap:70px;padding:70px 0 110px}.hero-copy{max-width:690px}.eyebrow,.kicker{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--green)}.eyebrow::before,.kicker::before{content:"";width:34px;height:2px;background:currentColor}.hero h1{font-size:clamp(48px,6vw,82px);line-height:.98;letter-spacing:-.055em;margin:20px 0 24px;max-width:850px}.hero h1 span{color:var(--green)}.hero-copy>p{font-size:19px;color:#46594f;max-width:620px;margin:0 0 32px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:14px;font-weight:900;font-size:14px;transition:transform .2s,box-shadow .2s,background .2s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--green);color:#fff;box-shadow:0 14px 28px rgba(12,93,43,.22)}.btn-primary:hover{background:var(--green-2)}.btn-ghost{border:1px solid rgba(16,32,25,.14);background:rgba(255,255,255,.55)}.hero-mini{display:flex;gap:20px;flex-wrap:wrap;margin-top:32px;font-size:12px;font-weight:800;color:#51645a}.hero-visual{display:flex;justify-content:center}.crest-card{position:relative;width:min(440px,90vw);aspect-ratio:1/1;border-radius:42px;display:grid;place-items:center;background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.95),rgba(255,255,255,.52) 42%,rgba(164,209,175,.34) 100%);border:1px solid rgba(12,93,43,.14);box-shadow:var(--shadow);transform:rotate(2deg)}.crest-card img{position:relative;z-index:2;width:76%;height:76%;object-fit:contain;filter:drop-shadow(0 20px 24px rgba(0,0,0,.10));transform:rotate(-2deg)}.season-chip{position:absolute;z-index:4;right:-16px;bottom:44px;background:#102019;color:#fff;border-radius:999px;padding:10px 15px;font-weight:900;font-size:12px;letter-spacing:.08em;transform:rotate(-2deg)}.crest-ring{position:absolute;border:1px solid rgba(12,93,43,.13);border-radius:50%}.crest-ring-a{width:115%;height:115%}.crest-ring-b{width:132%;height:132%}.hero-glow{position:absolute;border-radius:50%;filter:blur(6px);opacity:.6}.hero-glow-1{width:350px;height:350px;background:rgba(168,223,85,.28);right:6%;top:8%}.hero-glow-2{width:280px;height:280px;background:rgba(12,93,43,.12);left:-5%;bottom:-4%}.hero-wave{position:absolute;left:-5%;right:-5%;bottom:-70px;height:120px;background:#fff;border-radius:50% 50% 0 0/70% 70% 0 0}
.section{padding:100px 0}.section-intro{padding-top:85px}.split{display:grid;grid-template-columns:.75fr 1.25fr;gap:100px}.section-heading h2{font-size:clamp(34px,4vw,56px);letter-spacing:-.045em;line-height:1.04;margin:14px 0 16px}.section-heading>p,.intro-copy{color:var(--muted);font-size:18px}.intro-copy p{margin:0 0 16px}.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:56px}.value-card{padding:30px;border:1px solid var(--border);border-radius:20px;background:#fff}.value-card span{display:block;color:var(--green);font-weight:900;font-size:13px;margin-bottom:28px}.value-card h3{font-size:21px;margin:0 0 8px}.value-card p{margin:0;color:var(--muted)}
.section-dark{background:#0e2017;color:#fff;position:relative;overflow:hidden}.section-dark::before{content:"";position:absolute;inset:auto -10% -240px auto;width:500px;height:500px;border-radius:50%;background:rgba(168,223,85,.08)}.section-heading.center{text-align:center;max-width:760px;margin:0 auto 50px}.section-heading.center .kicker{justify-content:center;color:var(--lime)}.section-heading.center p{color:#b6c2bc}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.category-card{min-height:285px;padding:28px;border-radius:22px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;transition:.25s}.category-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.08)}.category-ball{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:var(--lime);color:#102019;font-weight:1000;font-size:19px;margin-bottom:28px}.category-card h3{margin:0 0 10px;font-size:22px}.category-card p{margin:0 0 22px;color:#bdc8c2;font-size:14px;flex:1}.category-card a{color:var(--lime);font-weight:900;font-size:13px}
.method-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:46px}.method-card{display:flex;gap:22px;padding:28px;border:1px solid var(--border);border-radius:22px;background:var(--cream)}.method-card b{display:grid;place-items:center;flex:0 0 52px;height:52px;border-radius:16px;background:var(--green);color:#fff;font-size:14px}.method-card h3{margin:2px 0 7px;font-size:20px}.method-card p{margin:0;color:var(--muted)}
.schedule{background:#eef5ef}.schedule-grid{display:grid;grid-template-columns:1fr .85fr;gap:70px;align-items:center}.schedule-copy h2{font-size:clamp(38px,4vw,58px);letter-spacing:-.045em;line-height:1.05;margin:14px 0 20px}.schedule-copy p{color:var(--muted);font-size:18px;max-width:650px;margin-bottom:28px}.week-card{background:#fff;border:1px solid var(--border);border-radius:26px;box-shadow:var(--shadow);padding:22px}.week-card>div{display:flex;align-items:center;gap:18px;padding:18px;border-bottom:1px solid #edf1ee}.week-card strong{display:grid;place-items:center;width:62px;height:44px;border-radius:12px;background:#eff7f1;color:var(--green);font-size:13px}.week-card span{font-weight:850}.week-card p{font-size:12px;color:var(--muted);margin:18px 18px 4px}
.join{padding:80px 0}.join-card{position:relative;overflow:hidden;display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:center;background:linear-gradient(135deg,var(--green-3),var(--green-2));color:#fff;border-radius:32px;padding:55px}.join-card::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(168,223,85,.15);right:-90px;top:-120px}.kicker.light{color:var(--lime)}.join-card h2{font-size:clamp(34px,4vw,52px);line-height:1.05;letter-spacing:-.04em;margin:14px 0}.join-card p{margin:0;color:#d5e2da}.join-actions{position:relative;z-index:2;display:flex;flex-direction:column;gap:12px}.btn-white{background:#fff;color:var(--green)}.btn-outline-white{border:1px solid rgba(255,255,255,.5);color:#fff}.contact{padding-top:70px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}.contact-cards a{border:1px solid var(--border);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:6px;transition:.2s}.contact-cards a:hover{border-color:var(--green);transform:translateY(-2px)}.contact-cards span{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--green);font-weight:900}.contact-cards strong{font-size:15px}
.footer{border-top:1px solid var(--border);padding:28px 0;background:#fbfcfb}.footer-grid{display:grid;grid-template-columns:1fr auto auto;gap:28px;align-items:center}.footer-brand{display:flex;align-items:center;gap:10px}.footer-brand img{width:45px;height:45px;object-fit:contain}.footer-brand div{display:flex;flex-direction:column;line-height:1.2}.footer-brand small{color:var(--muted)}.footer p{font-size:12px;color:var(--muted);margin:0}.footer>a{font-size:12px;font-weight:850;color:var(--green)}.floating-whatsapp{position:fixed;z-index:80;right:22px;bottom:22px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#1ba94c;color:#fff;font-weight:1000;box-shadow:0 15px 30px rgba(0,0,0,.18)}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:none}
@media (max-width:980px){.menu-toggle{display:block}.nav{position:fixed;top:82px;left:20px;right:20px;display:none;flex-direction:column;align-items:stretch;gap:0;padding:14px;border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.nav.open{display:flex}.nav a{padding:13px 14px}.nav-cta,.nav-admin{text-align:center;margin-top:5px}.hero-grid{grid-template-columns:1fr;gap:38px;padding-top:55px}.hero-copy{text-align:center;margin:auto}.eyebrow{justify-content:center}.hero-actions,.hero-mini{justify-content:center}.crest-card{width:min(360px,82vw)}.split{grid-template-columns:1fr;gap:20px}.value-grid,.category-grid{grid-template-columns:repeat(2,1fr)}.schedule-grid,.join-card,.contact-grid{grid-template-columns:1fr}.join-actions{flex-direction:row}.footer-grid{grid-template-columns:1fr;justify-items:center;text-align:center}}
@media (max-width:640px){.shell{width:min(100% - 28px,1180px)}.nav-wrap{height:72px}.brand img{width:48px;height:48px}.brand strong{font-size:14px}.nav{top:72px}.hero{min-height:auto}.hero-grid{padding:44px 0 90px}.hero h1{font-size:46px}.hero-copy>p{font-size:16px}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}.hero-mini{gap:10px;flex-direction:column}.section{padding:74px 0}.section-heading h2,.schedule-copy h2{font-size:38px}.value-grid,.category-grid,.method-grid,.contact-cards{grid-template-columns:1fr}.join-card{padding:34px 24px;border-radius:24px}.join-card h2{font-size:35px}.join-actions{flex-direction:column}.footer{padding-bottom:92px}.floating-whatsapp{right:16px;bottom:16px}.season-chip{right:-5px;bottom:24px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.btn,.category-card,.contact-cards a{transition:none}}


/* ===== V1.5 · refinamiento profesional ===== */
.topbar{box-shadow:0 4px 24px rgba(8,48,24,.035)}
.brand img{filter:drop-shadow(0 6px 10px rgba(8,48,24,.08))}
.hero{background:linear-gradient(135deg,#f9fcf9 0%,#eef6ef 44%,#e2f0e6 100%)}
.hero-copy>p{line-height:1.75}
.crest-card{box-shadow:0 30px 75px rgba(8,48,24,.15)}
.value-card{position:relative;overflow:hidden;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.value-card::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:3px;background:linear-gradient(90deg,var(--green),var(--lime));transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
.value-card:hover{transform:translateY(-3px);border-color:#c8dacd;box-shadow:0 18px 38px rgba(8,48,24,.08)}
.value-card:hover::after{transform:scaleX(1)}

.philosophy{padding:10px 0 100px;background:#fff}
.philosophy-card{position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:34px;padding:48px 52px;border:1px solid #d9e7dd;border-radius:30px;background:linear-gradient(135deg,#f7fbf8 0%,#edf6ef 100%);box-shadow:0 24px 60px rgba(8,48,24,.08)}
.philosophy-card::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(180deg,var(--green),var(--lime))}
.philosophy-mark{align-self:start;font-family:Georgia,"Times New Roman",serif;font-size:108px;line-height:.78;color:rgba(12,93,43,.13);font-weight:700;margin-top:4px}
.philosophy-copy{position:relative;z-index:2}
.philosophy-copy blockquote{margin:15px 0 24px;max-width:780px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(30px,3.7vw,48px);line-height:1.18;letter-spacing:-.025em;color:#173324;font-weight:600}
.philosophy-signature{display:flex;align-items:center;gap:14px}
.signature-line{width:44px;height:2px;background:var(--green)}
.philosophy-signature div{display:flex;flex-direction:column;line-height:1.25}
.philosophy-signature strong{font-size:14px;letter-spacing:.03em;color:var(--green-3)}
.philosophy-signature small{margin-top:4px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.philosophy-crest{position:relative;width:150px;height:150px;display:grid;place-items:center}
.philosophy-crest::before{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid rgba(12,93,43,.12);background:rgba(255,255,255,.55)}
.philosophy-crest img{position:relative;z-index:1;width:112px;height:112px;object-fit:contain;opacity:.94;filter:drop-shadow(0 10px 16px rgba(8,48,24,.10))}
.category-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.method-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.method-card:hover{transform:translateY(-3px);border-color:#cadbce;box-shadow:0 16px 34px rgba(8,48,24,.07)}
.week-card{box-shadow:0 24px 55px rgba(8,48,24,.10)}
.join-card{box-shadow:0 30px 65px rgba(8,48,24,.16)}
.footer{background:#f8faf8}

@media (max-width:980px){
  .philosophy{padding-bottom:82px}
  .philosophy-card{grid-template-columns:auto 1fr;padding:40px 34px}
  .philosophy-crest{display:none}
}
@media (max-width:640px){
  .philosophy{padding:0 0 68px}
  .philosophy-card{grid-template-columns:1fr;gap:8px;padding:32px 24px 30px;border-radius:24px}
  .philosophy-mark{font-size:74px;height:44px;margin:0}
  .philosophy-copy blockquote{font-size:30px;margin-top:12px}
  .signature-line{width:34px}
}

/* ===== Ajuste de proporción del escudo ===== */
/* Portada: escudo más discreto para equilibrar texto e identidad visual. */
.crest-card{width:min(320px,72vw);border-radius:34px}
.crest-card img{width:58%;height:58%}
.crest-ring-a{width:110%;height:110%}
.crest-ring-b{width:122%;height:122%}
@media (max-width:980px){
  .crest-card{width:min(270px,66vw)}
}
@media (max-width:640px){
  .crest-card{width:min(220px,64vw);border-radius:28px}
  .crest-card img{width:56%;height:56%}
  .season-chip{font-size:10px;padding:8px 11px}
}

/* ===== Ajuste fino: escudo de Filosofía ===== */
/* Se reduce únicamente el escudo decorativo de la sección Filosofía. */
.philosophy-crest{width:92px;height:92px}
.philosophy-crest img{width:66px;height:66px}


/* ===== V1.6 · Carrusel de fotografías ===== */
.moments{padding-top:88px;padding-bottom:92px;background:#fff}
.moments-heading{max-width:760px;margin-bottom:38px}
.moments-heading>p{max-width:720px}
.photo-carousel{position:relative;border-radius:30px;overflow:hidden;background:#0d2518;box-shadow:0 30px 70px rgba(8,48,24,.14);isolation:isolate}
.carousel-viewport{overflow:hidden;aspect-ratio:16/7.3;min-height:400px}
.carousel-track{height:100%;position:relative}
.carousel-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transform:scale(1.015);transition:opacity .55s ease,transform .8s ease,visibility .55s;pointer-events:none}
.carousel-slide.is-active{opacity:1;visibility:visible;transform:scale(1);pointer-events:auto;z-index:1}
.carousel-slide img{width:100%;height:100%;object-fit:cover;display:block}
.carousel-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,30,17,.82) 0%,rgba(7,30,17,.58) 38%,rgba(7,30,17,.12) 72%,rgba(7,30,17,.05) 100%)}
.carousel-caption{position:absolute;z-index:2;left:clamp(28px,5vw,72px);bottom:clamp(34px,5vw,66px);max-width:650px;color:#fff}
.carousel-caption>span{display:inline-flex;align-items:center;gap:9px;margin-bottom:12px;color:var(--lime);text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:950}
.carousel-caption>span::before{content:"";width:30px;height:2px;background:currentColor}
.carousel-caption h3{margin:0 0 10px;font-size:clamp(34px,4.5vw,64px);line-height:1;letter-spacing:-.045em}
.carousel-caption p{margin:0;max-width:570px;color:#e2ebe5;font-size:16px;line-height:1.65}
.carousel-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:48px;height:48px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(11,44,25,.34);color:#fff;font-size:35px;line-height:1;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(8px);transition:.2s}
.carousel-arrow:hover{background:rgba(255,255,255,.96);color:var(--green);border-color:#fff}
.carousel-arrow.prev{left:18px}.carousel-arrow.next{right:18px}
.carousel-dots{position:absolute;z-index:5;right:28px;bottom:24px;display:flex;gap:9px}
.carousel-dot{width:9px;height:9px;border:0;padding:0;border-radius:50%;background:rgba(255,255,255,.46);cursor:pointer;transition:.25s}
.carousel-dot.is-active{width:30px;border-radius:999px;background:#fff}
.carousel-note{margin:14px 2px 0;color:var(--muted);font-size:12px}
.carousel-note code{color:var(--green);font-weight:800}
@media(max-width:980px){
  .carousel-viewport{aspect-ratio:16/9;min-height:0}
  .carousel-caption{max-width:72%}
}
@media(max-width:640px){
  .moments{padding-top:68px;padding-bottom:70px}
  .photo-carousel{border-radius:22px}
  .carousel-viewport{aspect-ratio:4/5}
  .carousel-shade{background:linear-gradient(0deg,rgba(7,30,17,.88) 0%,rgba(7,30,17,.55) 48%,rgba(7,30,17,.05) 82%)}
  .carousel-caption{left:22px;right:22px;bottom:58px;max-width:none}
  .carousel-caption h3{font-size:36px}
  .carousel-caption p{font-size:14px;line-height:1.5}
  .carousel-arrow{width:40px;height:40px;font-size:30px;top:42%}
  .carousel-arrow.prev{left:10px}.carousel-arrow.next{right:10px}
  .carousel-dots{right:auto;left:22px;bottom:22px}
  .carousel-note{display:none}
}
@media(prefers-reduced-motion:reduce){.carousel-slide{transition:none}}

/* ===== V1.8 · Horario real de entrenamientos ===== */
.week-card .schedule-item{
  display:grid;
  grid-template-columns:72px 1fr;
  align-items:start;
  gap:20px;
  padding:22px 18px;
  border-bottom:1px solid #edf1ee;
}
.week-card .schedule-item>strong{
  width:58px;
  height:58px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:var(--green);
  color:#fff;
  font-size:13px;
  font-weight:950;
  letter-spacing:.07em;
  box-shadow:0 10px 20px rgba(12,93,43,.12);
}
.schedule-detail{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.schedule-detail>span{
  font-size:18px;
  line-height:1.25;
  color:var(--green-3);
  font-weight:900;
}
.schedule-option{
  display:grid;
  grid-template-columns:105px 1fr;
  gap:12px;
  align-items:center;
  padding:12px 14px;
  border:1px solid #e1ebe4;
  border-radius:14px;
  background:#f8fbf9;
}
.schedule-time{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:7px 10px;
  border-radius:10px;
  background:#e7f3e9;
  color:var(--green);
  font-size:13px;
  font-weight:950;
  white-space:nowrap;
}
.schedule-place{
  color:#4b5b51;
  font-size:14px;
  line-height:1.45;
  font-weight:700;
}
.schedule-or{
  align-self:flex-start;
  margin:-2px 0 -2px 44px;
  color:#839087;
  font-size:11px;
  font-weight:950;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.week-card .schedule-note{
  margin:18px 18px 4px;
  padding:14px 16px;
  border-radius:14px;
  background:#f1f7f2;
  color:#617067;
  font-size:12px;
  line-height:1.55;
}
@media(max-width:640px){
  .week-card .schedule-item{
    grid-template-columns:56px 1fr;
    gap:14px;
    padding:18px 10px;
  }
  .week-card .schedule-item>strong{
    width:52px;
    height:52px;
    border-radius:14px;
    font-size:12px;
  }
  .schedule-detail>span{font-size:16px}
  .schedule-option{
    grid-template-columns:1fr;
    gap:7px;
    padding:11px 12px;
  }
  .schedule-time{
    width:max-content;
    min-height:32px;
    font-size:12px;
  }
  .schedule-place{font-size:13px}
  .schedule-or{margin-left:12px}
  .week-card .schedule-note{margin:16px 10px 2px}
}


/* =========================================================
   ENTRENADORES — sección modular preparada para V1.9+
   ========================================================= */
.coaches { background: #f7faf7; }
.coach-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    max-width: 1050px;
    margin: 36px auto 0;
}
.coach-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(12,93,43,.10);
    border-radius: 22px;
    box-shadow: 0 16px 40px rgba(20,45,30,.08);
}
.coach-photo { aspect-ratio: 4 / 3; background: #eaf2ec; overflow: hidden; }
.coach-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.coach-placeholder {
    width: 100%; height: 100%; display: grid; place-items: center;
    font-size: 54px; font-weight: 900; letter-spacing: .04em; color: #0c5d2b;
    background: linear-gradient(145deg, #edf7f0, #dcebe0);
}
.coach-info { padding: 22px; }
.coach-info > span {
    display: inline-block; margin-bottom: 7px; color: #0c5d2b;
    font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
.coach-info h3 { margin: 0 0 8px; font-size: 22px; }
.coach-info strong { display: block; margin-bottom: 10px; color: #526159; font-size: 14px; }
.coach-info p { margin: 0; color: #68736c; line-height: 1.65; font-size: 14px; }
@media (max-width: 760px) { .coach-grid { grid-template-columns: 1fr; } }

/* =========================================================
   LOGROS — V2.4 · cronología por año
   ========================================================= */
.achievements{
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg,#ffffff 0%,#f5f9f6 100%);
}
.achievements::before{
    content:"";
    position:absolute;
    width:480px;
    height:480px;
    border-radius:50%;
    right:-250px;
    top:-210px;
    background:radial-gradient(circle,rgba(12,93,43,.08),rgba(12,93,43,0) 68%);
    pointer-events:none;
}
.achievements-heading{max-width:780px;margin-left:auto;margin-right:auto}
.achievement-overview{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    max-width:920px;
    margin:36px auto 48px;
    border:1px solid #dfe9e2;
    border-radius:22px;
    background:#fff;
    box-shadow:0 16px 42px rgba(8,48,24,.06);
    overflow:hidden;
}
.achievement-overview>div{
    padding:20px 24px;
    text-align:center;
}
.achievement-overview>div+div{border-left:1px solid #e5ece7}
.achievement-overview strong{
    display:block;
    color:var(--green-3);
    font-size:21px;
    line-height:1.2;
    font-weight:950;
}
.achievement-overview span{
    display:block;
    margin-top:5px;
    color:#6b766e;
    font-size:12px;
    font-weight:750;
}
.achievement-years{
    position:relative;
    z-index:1;
    max-width:1080px;
    margin:0 auto;
}
.achievement-year-block{
    display:grid;
    grid-template-columns:150px minmax(0,1fr);
    gap:28px;
    padding:0 0 42px;
}
.achievement-year-block:last-child{padding-bottom:0}
.achievement-year-rail{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    padding-top:8px;
}
.achievement-year-rail::after{
    content:"";
    position:absolute;
    top:82px;
    bottom:-42px;
    left:28px;
    width:2px;
    background:linear-gradient(#cfe0d3,#e9f0eb);
}
.achievement-year-block:last-child .achievement-year-rail::after{display:none}
.achievement-year-rail span{
    margin-left:3px;
    color:#849087;
    font-size:10px;
    font-weight:950;
    letter-spacing:.16em;
}
.achievement-year-rail strong{
    display:grid;
    place-items:center;
    min-width:92px;
    min-height:58px;
    margin-top:7px;
    padding:9px 15px;
    border-radius:17px;
    background:linear-gradient(145deg,var(--green),#16783d);
    color:#fff;
    font-size:24px;
    font-weight:950;
    box-shadow:0 12px 26px rgba(12,93,43,.18);
}
.achievement-events{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.achievement-event{
    position:relative;
    min-width:0;
    padding:20px;
    border:1px solid #dfe9e2;
    border-radius:20px;
    background:#fff;
    box-shadow:0 12px 34px rgba(8,48,24,.055);
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.achievement-event:hover{
    transform:translateY(-3px);
    border-color:#c7d9cc;
    box-shadow:0 18px 42px rgba(8,48,24,.09);
}
.achievement-event.is-international{
    grid-column:1 / -1;
    border-color:#c9ddce;
    background:linear-gradient(135deg,#ffffff 0%,#f0f8f2 100%);
}
.achievement-event-top{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:16px;
}
.achievement-event time{
    color:#6d786f;
    font-size:12px;
    font-weight:850;
}
.achievement-result,
.achievement-international{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:5px 9px;
    border-radius:999px;
    font-size:10px;
    font-weight:950;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.achievement-result--campeon{background:#e6f4e9;color:#0c5d2b}
.achievement-result--subcampeon{background:#f0f1f3;color:#55606a}
.achievement-result--tercero{background:#f6eee6;color:#80512b}
.achievement-result--cuarto{background:#eef3f0;color:#5d6c63}
.achievement-international{background:#e8f1ff;color:#245b98}
.achievement-event-main{
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    gap:14px;
    align-items:start;
}
.achievement-medal{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#f3f8f4;
    font-size:22px;
}
.achievement-event h3{
    margin:0 0 9px;
    color:#183426;
    font-size:18px;
    line-height:1.28;
}
.achievement-category{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin:0;
    color:#66726a;
    font-size:13px;
    line-height:1.45;
}
.achievement-category strong{
    display:inline-flex;
    align-items:center;
    min-height:27px;
    padding:4px 9px;
    border-radius:9px;
    background:#edf6ef;
    color:var(--green);
    font-size:12px;
    font-weight:950;
}
.achievement-category span{font-weight:700}
.achievement-location{
    margin:10px 0 0;
    color:#516158;
    font-size:12px;
    font-weight:800;
}
@media(max-width:900px){
    .achievement-year-block{grid-template-columns:110px minmax(0,1fr);gap:20px}
    .achievement-events{grid-template-columns:1fr}
    .achievement-event.is-international{grid-column:auto}
}
@media(max-width:640px){
    .achievement-overview{grid-template-columns:1fr;margin:28px auto 34px}
    .achievement-overview>div{padding:15px 18px}
    .achievement-overview>div+div{border-left:0;border-top:1px solid #e5ece7}
    .achievement-year-block{display:block;padding-bottom:34px}
    .achievement-year-rail{padding:0 0 14px;flex-direction:row;align-items:center;gap:9px}
    .achievement-year-rail::after{display:none}
    .achievement-year-rail span{margin:0}
    .achievement-year-rail strong{min-width:0;min-height:0;margin:0;padding:7px 12px;border-radius:12px;font-size:19px}
    .achievement-events{gap:12px}
    .achievement-event{padding:17px}
    .achievement-event-main{grid-template-columns:42px minmax(0,1fr);gap:12px}
    .achievement-medal{width:42px;height:42px;border-radius:12px;font-size:19px}
    .achievement-event h3{font-size:16px}
}


/* =========================================================
   GALERÍA — V2.5
   ========================================================= */
.gallery-section{
    background:#fff;
    position:relative;
    overflow:hidden;
}
.gallery-heading{
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
}
.gallery-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-rows:235px;
    gap:14px;
    margin-top:36px;
}
.gallery-card{
    text-decoration:none;
    color:inherit;
    position:relative;
    display:block;
    width:100%;
    height:100%;
    padding:0;
    overflow:hidden;
    border:0;
    border-radius:20px;
    background:#dfe9e2;
    cursor:pointer;
    box-shadow:0 12px 30px rgba(8,48,24,.07);
    text-align:left;
}
.gallery-card--featured{
    grid-column:span 2;
    grid-row:span 2;
}
.gallery-card img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .45s ease;
}
.gallery-card:hover img,
.gallery-card:focus-visible img{
    transform:scale(1.045);
}
.gallery-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(4,25,13,0) 35%,rgba(4,25,13,.78) 100%);
    transition:background .25s ease;
}
.gallery-card:hover .gallery-overlay{
    background:linear-gradient(180deg,rgba(4,25,13,.05) 25%,rgba(4,25,13,.86) 100%);
}
.gallery-copy{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:5px;
    padding:18px;
    color:#fff;
}
.gallery-copy small{
    font-size:10px;
    font-style:normal;
    font-weight:900;
    letter-spacing:.09em;
    text-transform:uppercase;
    opacity:.82;
}
.gallery-copy strong{
    font-size:17px;
    line-height:1.2;
    font-weight:900;
}
.gallery-card--featured .gallery-copy strong{font-size:23px}
.gallery-copy em{
    margin-top:3px;
    font-size:11px;
    font-style:normal;
    font-weight:800;
    opacity:.82;
}
.gallery-card:focus-visible{
    outline:3px solid rgba(12,93,43,.35);
    outline-offset:3px;
}
.gallery-footnote{
    max-width:720px;
    margin:22px auto 0;
    color:#718078;
    font-size:13px;
    line-height:1.6;
    text-align:center;
}
.gallery-lightbox[hidden]{display:none}
.gallery-lightbox{
    position:fixed;
    inset:0;
    z-index:9999;
    display:grid;
    place-items:center;
    padding:22px;
}
.gallery-lightbox-backdrop{
    position:absolute;
    inset:0;
    background:rgba(3,16,8,.86);
    backdrop-filter:blur(5px);
}
.gallery-lightbox-dialog{
    position:relative;
    z-index:1;
    width:min(980px,94vw);
    max-height:90vh;
    overflow:hidden;
    border-radius:22px;
    background:#fff;
    box-shadow:0 28px 80px rgba(0,0,0,.35);
}
.gallery-lightbox-dialog>img{
    display:block;
    width:100%;
    max-height:70vh;
    object-fit:contain;
    background:#07140b;
}
.gallery-lightbox-copy{
    padding:18px 22px 20px;
}
.gallery-lightbox-copy h3{
    margin:0 0 6px;
    color:#173426;
    font-size:20px;
}
.gallery-lightbox-copy p{
    margin:0;
    color:#68756d;
    font-size:13px;
    line-height:1.55;
}
.gallery-lightbox-close{
    position:absolute;
    top:12px;
    right:12px;
    z-index:2;
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:50%;
    background:rgba(0,0,0,.62);
    color:#fff;
    font-size:27px;
    line-height:1;
    cursor:pointer;
}
body.gallery-open{overflow:hidden}

@media(max-width:920px){
    .gallery-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        grid-auto-rows:220px;
    }
    .gallery-card--featured{
        grid-column:span 2;
        grid-row:span 1;
    }
}
@media(max-width:580px){
    .gallery-grid{
        grid-template-columns:1fr;
        grid-auto-rows:235px;
        gap:11px;
    }
    .gallery-card--featured{
        grid-column:auto;
        grid-row:auto;
    }
    .gallery-copy{padding:16px}
    .gallery-card--featured .gallery-copy strong,
    .gallery-copy strong{font-size:17px}
    .gallery-lightbox{padding:12px}
    .gallery-lightbox-dialog{border-radius:17px}
    .gallery-lightbox-copy{padding:15px 17px 17px}
}

/* Filtros de Galería — V2.7 */
.gallery-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin:26px auto 10px}
.gallery-filter{border:1px solid #d8e5dc;background:#fff;color:#4e6055;padding:9px 13px;border-radius:999px;font:inherit;font-size:12px;font-weight:850;cursor:pointer;transition:.2s ease}
.gallery-filter:hover,.gallery-filter:focus-visible{border-color:#9fc1a8;color:#0c5d2b;outline:none}
.gallery-filter.is-active{background:#0c5d2b;border-color:#0c5d2b;color:#fff;box-shadow:0 8px 18px rgba(12,93,43,.16)}
.gallery-card.is-filtered-out{display:none}
@media(max-width:580px){.gallery-filters{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding:0 2px 8px;scrollbar-width:thin}.gallery-filter{flex:0 0 auto}}


/* =========================================================
   CATEGORÍAS — V2.8 · etapas formativas
   ========================================================= */
.categories-v2 .section-heading{margin-bottom:38px}
.category-grid-v2{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
    max-width:1080px;
    margin:0 auto;
}
.category-card-v2{
    min-height:0;
    padding:25px;
    border-radius:22px;
    background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.035));
    border:1px solid rgba(255,255,255,.11);
}
.category-card-v2:hover{background:rgba(255,255,255,.085)}
.category-card-top{
    display:flex;
    align-items:center;
    gap:15px;
    margin-bottom:18px;
}
.category-card-v2 .category-ball{
    flex:0 0 auto;
    width:60px;
    height:60px;
    margin:0;
    border-radius:17px;
}
.category-stage small{
    display:block;
    margin-bottom:3px;
    color:var(--lime);
    font-size:10px;
    font-weight:900;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.category-stage h3{
    margin:0;
    font-size:20px;
    line-height:1.22;
}
.category-objective{
    min-height:0;
    margin:0 0 17px!important;
    color:#c6d0ca!important;
    line-height:1.65;
}
.category-focus{
    margin-bottom:20px;
    padding-top:15px;
    border-top:1px solid rgba(255,255,255,.09);
}
.category-focus>span{
    display:block;
    margin-bottom:10px;
    color:#fff;
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.category-focus ul{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin:0;
    padding:0;
    list-style:none;
}
.category-focus li{
    padding:7px 9px;
    border:1px solid rgba(168,223,85,.18);
    border-radius:999px;
    background:rgba(168,223,85,.08);
    color:#dfeadd;
    font-size:11px;
    font-weight:750;
}
.category-card-v2>a{margin-top:auto}
.category-note{
    max-width:820px;
    margin:28px auto 0;
    color:#aebbb4;
    font-size:12px;
    line-height:1.65;
    text-align:center;
}
@media(max-width:760px){
    .category-grid-v2{grid-template-columns:1fr}
    .category-card-v2{padding:21px}
    .category-card-top{align-items:flex-start}
    .category-card-v2 .category-ball{width:54px;height:54px;font-size:17px}
    .category-stage h3{font-size:18px}
}


/* =========================================================
   CATEGORÍAS — V2.10 · versión pública equilibrada
   ========================================================= */
.category-grid-public .category-card-public{
    display:flex;
    flex-direction:column;
    min-height:285px;
}
.category-card-public .category-objective{
    margin:18px 0 22px;
    line-height:1.72;
}
.category-card-public>a{
    margin-top:auto;
}
.category-method-note{
    max-width:900px;
    margin:34px auto 0;
    padding:20px 22px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:18px;
    background:rgba(255,255,255,.06);
    text-align:center;
}
.category-method-note strong{
    display:block;
    margin-bottom:7px;
    color:#fff;
    font-size:15px;
}
.category-method-note p{
    margin:0;
    color:rgba(255,255,255,.76);
    font-size:13px;
    line-height:1.65;
}
@media(max-width:640px){
    .category-grid-public .category-card-public{min-height:0}
    .category-method-note{padding:17px}
}


/* =========================================================
   SEDES — V2.11
   ========================================================= */
.venues{
    background:linear-gradient(180deg,#f7faf7 0%,#ffffff 100%);
}
.venues-heading{
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
}
.venue-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
    margin-top:36px;
}
.venue-card{
    display:flex;
    flex-direction:column;
    min-width:0;
    padding:24px;
    border:1px solid #dfe9e2;
    border-radius:22px;
    background:#fff;
    box-shadow:0 14px 38px rgba(8,48,24,.06);
}
.venue-icon{
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    margin-bottom:20px;
    border-radius:15px;
    background:linear-gradient(145deg,#0c5d2b,#197c42);
    color:#fff;
    font-size:13px;
    font-weight:950;
    letter-spacing:.08em;
    box-shadow:0 10px 24px rgba(12,93,43,.16);
}
.venue-reference{
    display:inline-block;
    margin-bottom:6px;
    color:#0c5d2b;
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.venue-card h3{
    margin:0 0 18px;
    color:#183426;
    font-size:22px;
    line-height:1.2;
}
.venue-meta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:18px;
}
.venue-meta>div{
    padding:12px;
    border-radius:13px;
    background:#f4f8f5;
}
.venue-meta small{
    display:block;
    margin-bottom:4px;
    color:#7a867e;
    font-size:10px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.venue-meta strong{
    display:block;
    color:#314b3d;
    font-size:13px;
    line-height:1.35;
}
.venue-card p{
    margin:auto 0 0;
    color:#68756d;
    font-size:13px;
    line-height:1.65;
}
.venue-callout{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    margin-top:26px;
    padding:20px 22px;
    border:1px solid #dbe7de;
    border-radius:18px;
    background:#fff;
}
.venue-callout strong{
    display:block;
    color:#183426;
    font-size:15px;
}
.venue-callout span{
    display:block;
    margin-top:3px;
    color:#718078;
    font-size:12px;
}
.venue-callout .btn{white-space:nowrap}

@media(max-width:900px){
    .venue-grid{grid-template-columns:1fr}
    .venue-card{padding:21px}
}
@media(max-width:640px){
    .venue-meta{grid-template-columns:1fr}
    .venue-callout{
        align-items:stretch;
        flex-direction:column;
    }
    .venue-callout .btn{
        width:100%;
        text-align:center;
    }
}

/* =========================================================
   METODOLOGÍA PÚBLICA — V2.12
   ========================================================= */
.methodology-public{
    position:relative;
    background:#fff;
}
.methodology-heading{
    max-width:780px;
    margin-left:auto;
    margin-right:auto;
}
.method-grid-public{
    margin-top:36px;
}
.method-grid-public .method-card{
    min-height:185px;
}
.methodology-note{
    max-width:940px;
    margin:30px auto 0;
    padding:22px 24px;
    border:1px solid rgba(12,93,43,.13);
    border-radius:18px;
    background:linear-gradient(135deg,#f5faf6,#ffffff);
    box-shadow:0 10px 30px rgba(8,48,24,.05);
}
.methodology-note strong{
    display:block;
    margin-bottom:6px;
    color:#0c5d2b;
    font-size:15px;
    font-weight:900;
}
.methodology-note p{
    margin:0;
    color:#68756d;
    font-size:13px;
    line-height:1.65;
}
@media(max-width:640px){
    .methodology-note{padding:18px}
}


/* =========================================================
   INSCRIPCIÓN Y CONTACTO — V2.13
   ========================================================= */
.enrollment{
    background:linear-gradient(180deg,#ffffff 0%,#f6faf7 100%);
}
.enrollment-heading{
    max-width:790px;
    margin-left:auto;
    margin-right:auto;
}
.enrollment-steps{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    margin-top:36px;
}
.enrollment-step{
    position:relative;
    min-width:0;
    padding:24px;
    border:1px solid #dfe9e2;
    border-radius:22px;
    background:#fff;
    box-shadow:0 14px 36px rgba(8,48,24,.055);
}
.enrollment-number{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    margin-bottom:20px;
    border-radius:14px;
    background:#edf6ef;
    color:#0c5d2b;
    font-size:13px;
    font-weight:950;
    letter-spacing:.08em;
}
.enrollment-step small{
    display:block;
    margin-bottom:5px;
    color:#0c5d2b;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.enrollment-step h3{
    margin:0 0 10px;
    color:#183426;
    font-size:19px;
    line-height:1.25;
}
.enrollment-step p{
    margin:0;
    color:#68756d;
    font-size:13px;
    line-height:1.68;
}
.enrollment-action{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-top:24px;
    padding:24px 26px;
    border-radius:22px;
    background:linear-gradient(135deg,#0c5d2b,#17783e);
    color:#fff;
    box-shadow:0 18px 42px rgba(12,93,43,.18);
}
.enrollment-action-copy strong{
    display:block;
    margin-bottom:5px;
    font-size:18px;
}
.enrollment-action-copy span{
    display:block;
    max-width:640px;
    color:rgba(255,255,255,.82);
    font-size:12px;
    line-height:1.55;
}
.enrollment-buttons{
    display:flex;
    gap:10px;
    flex-shrink:0;
}
.btn-soft{
    background:#fff;
    color:#0c5d2b;
    border:1px solid rgba(255,255,255,.78);
}
.btn-soft:hover{background:#f3f8f4}
.enrollment-note{
    max-width:850px;
    margin:20px auto 0;
    padding:17px 20px;
    border:1px solid #e2ebe4;
    border-radius:16px;
    background:#fff;
    text-align:center;
}
.enrollment-note strong{
    display:block;
    margin-bottom:4px;
    color:#0c5d2b;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.07em;
}
.enrollment-note p{
    margin:0;
    color:#748078;
    font-size:12px;
    line-height:1.6;
}

/* Contacto */
.contact-v2{
    background:#f4f8f5;
}
.contact-panel{
    display:grid;
    grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
    gap:40px;
    align-items:start;
    padding:38px;
    border:1px solid #dce8df;
    border-radius:26px;
    background:#fff;
    box-shadow:0 18px 46px rgba(8,48,24,.06);
}
.contact-intro h2{
    margin-top:6px;
}
.contact-intro>p{
    max-width:560px;
    color:#68756d;
    line-height:1.7;
}
.contact-topics{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:22px;
}
.contact-topics span{
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:6px 10px;
    border-radius:999px;
    background:#edf6ef;
    color:#31523f;
    font-size:11px;
    font-weight:800;
}
.contact-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.contact-action-card{
    display:flex;
    flex-direction:column;
    min-height:145px;
    padding:18px;
    border:1px solid #e0e9e2;
    border-radius:17px;
    background:#f9fbfa;
    color:inherit;
    text-decoration:none;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
a.contact-action-card:hover{
    transform:translateY(-2px);
    border-color:#cadbce;
    box-shadow:0 12px 26px rgba(8,48,24,.07);
}
.contact-action-card small{
    margin-bottom:7px;
    color:#7a867e;
    font-size:10px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.07em;
}
.contact-action-card strong{
    color:#183426;
    font-size:16px;
    line-height:1.25;
}
.contact-action-card span{
    margin-top:auto;
    padding-top:12px;
    color:#718078;
    font-size:11px;
    line-height:1.5;
}
.contact-action-main{
    background:linear-gradient(145deg,#f0f8f2,#ffffff);
    border-color:#cfe0d3;
}
.contact-action-main strong{color:#0c5d2b}
.contact-action-disabled{
    cursor:default;
    opacity:.82;
}

@media(max-width:900px){
    .enrollment-steps{grid-template-columns:1fr}
    .enrollment-action{
        align-items:stretch;
        flex-direction:column;
    }
    .enrollment-buttons{flex-wrap:wrap}
    .contact-panel{
        grid-template-columns:1fr;
        gap:28px;
        padding:28px;
    }
}
@media(max-width:620px){
    .enrollment-step{padding:20px}
    .enrollment-action{padding:21px}
    .enrollment-buttons{display:grid;grid-template-columns:1fr}
    .enrollment-buttons .btn{width:100%;text-align:center}
    .contact-panel{padding:21px;border-radius:20px}
    .contact-actions{grid-template-columns:1fr}
    .contact-action-card{min-height:125px}
}


/* =========================================================
   PORTADA — V2.16
   ========================================================= */
.hero-v2 .hero-copy>p{
    max-width:660px;
}
.hero-v2 .hero-actions{
    margin-top:2px;
}
.hero-facts{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    max-width:690px;
    margin-top:32px;
}
.hero-facts>div{
    min-width:0;
    padding:14px 15px;
    border:1px solid rgba(12,93,43,.11);
    border-radius:15px;
    background:rgba(255,255,255,.58);
    backdrop-filter:blur(8px);
}
.hero-facts strong{
    display:block;
    color:#183426;
    font-size:13px;
    font-weight:950;
    line-height:1.2;
}
.hero-facts span{
    display:block;
    margin-top:4px;
    color:#68786f;
    font-size:10px;
    font-weight:750;
    line-height:1.35;
}
.hero-crest-card{
    overflow:visible;
    padding:54px 30px 56px;
}
.hero-crest-card img{
    width:68%;
    height:68%;
}
.hero-crest-top{
    position:absolute;
    z-index:5;
    top:26px;
    left:30px;
    right:30px;
    text-align:center;
}
.hero-crest-top span{
    display:block;
    color:#6f8076;
    font-size:9px;
    font-weight:900;
    letter-spacing:.18em;
}
.hero-crest-top strong{
    display:block;
    margin-top:3px;
    color:#183426;
    font-size:12px;
    font-weight:950;
    letter-spacing:.08em;
}
.hero-identity-chip{
    position:absolute;
    z-index:5;
    left:50%;
    bottom:20px;
    transform:translateX(-50%) rotate(-2deg);
    width:max-content;
    max-width:85%;
    padding:8px 13px;
    border-radius:999px;
    background:rgba(255,255,255,.88);
    border:1px solid rgba(12,93,43,.10);
    color:#31523f;
    font-size:10px;
    font-weight:900;
    letter-spacing:.05em;
}
.hero-v2 .season-chip{
    right:-12px;
    bottom:54px;
}
@media(max-width:900px){
    .hero-facts{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:640px){
    .hero-facts{
        grid-template-columns:1fr;
        gap:8px;
        margin-top:24px;
    }
    .hero-facts>div{
        padding:12px 13px;
    }
    .hero-crest-top{
        top:20px;
    }
    .hero-identity-chip{
        bottom:16px;
    }
}


/* =========================================================
   NAVEGACIÓN — V2.17
   ========================================================= */
html{
    scroll-padding-top:96px;
}
section[id]{
    scroll-margin-top:96px;
}

.topbar{
    isolation:isolate;
}
.nav-wrap{
    gap:18px;
}
.nav{
    gap:16px;
    font-size:13px;
}
.nav>a,
.nav-more-toggle{
    white-space:nowrap;
}
.nav>a:not(.nav-cta):not(.nav-admin),
.nav-more-toggle{
    color:#263d31;
}
.nav>a.is-current:not(.nav-cta):not(.nav-admin){
    color:var(--green);
}
.nav>a.is-current:not(.nav-cta):not(.nav-admin)::after{
    right:0;
}

.nav-more{
    position:relative;
}
.nav-more-toggle{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:10px 2px;
    border:0;
    background:transparent;
    font:inherit;
    font-weight:800;
    cursor:pointer;
}
.nav-more-toggle::after{
    content:"";
    position:absolute;
    left:0;
    right:100%;
    bottom:1px;
    height:2px;
    background:var(--green);
    transition:.25s;
}
.nav-more:hover .nav-more-toggle::after,
.nav-more.is-open .nav-more-toggle::after,
.nav-more.has-current .nav-more-toggle::after{
    right:0;
}
.nav-more.has-current .nav-more-toggle{
    color:var(--green);
}
.nav-more-chevron{
    display:inline-block;
    font-size:14px;
    line-height:1;
    transition:transform .2s ease;
}
.nav-more.is-open .nav-more-chevron{
    transform:rotate(180deg);
}
.nav-more-menu{
    position:absolute;
    top:calc(100% + 14px);
    right:-12px;
    z-index:20;
    display:none;
    width:190px;
    padding:8px;
    border:1px solid var(--border);
    border-radius:15px;
    background:#fff;
    box-shadow:0 18px 42px rgba(8,48,24,.12);
}
.nav-more.is-open .nav-more-menu{
    display:grid;
}
.nav-more-menu a{
    padding:10px 12px;
    border-radius:10px;
    color:#31483b;
    font-size:12px;
    font-weight:800;
}
.nav-more-menu a:hover,
.nav-more-menu a.is-current{
    background:#f0f7f2;
    color:var(--green);
}

.menu-toggle{
    position:relative;
    cursor:pointer;
    border-radius:12px;
}
.menu-toggle:hover{
    background:#f2f7f3;
}
.menu-toggle span{
    transform-origin:center;
    transition:transform .2s ease,opacity .2s ease;
}
.menu-toggle[aria-expanded="true"] span:nth-child(1){
    transform:translateY(8px) rotate(45deg);
}
.menu-toggle[aria-expanded="true"] span:nth-child(2){
    opacity:0;
}
.menu-toggle[aria-expanded="true"] span:nth-child(3){
    transform:translateY(-8px) rotate(-45deg);
}

@media (max-width:1080px){
    body.nav-open{
        overflow:hidden;
    }
    .menu-toggle{
        display:block;
        flex:0 0 auto;
    }
    .nav{
        position:fixed;
        top:82px;
        left:18px;
        right:18px;
        z-index:120;
        display:none;
        flex-direction:column;
        align-items:stretch;
        gap:2px;
        max-height:calc(100dvh - 100px);
        overflow-y:auto;
        overscroll-behavior:contain;
        padding:12px;
        border:1px solid var(--border);
        border-radius:18px;
        background:#fff;
        box-shadow:0 22px 56px rgba(8,48,24,.17);
    }
    .nav.open{
        display:flex;
    }
    .nav>a{
        padding:12px 13px;
        border-radius:11px;
    }
    .nav>a:not(.nav-cta):not(.nav-admin)::after{
        display:none;
    }
    .nav>a.is-current:not(.nav-cta):not(.nav-admin){
        background:#f0f7f2;
    }
    .nav-more{
        position:static;
        display:block;
    }
    .nav-more-toggle{
        display:none;
    }
    .nav-more-menu,
    .nav-more.is-open .nav-more-menu{
        position:static;
        display:grid;
        width:auto;
        padding:0;
        border:0;
        border-radius:0;
        background:transparent;
        box-shadow:none;
    }
    .nav-more-menu a{
        padding:12px 13px;
        border-radius:11px;
        font-size:13px;
    }
    .nav-cta,
    .nav-admin{
        margin-top:6px;
        text-align:center;
    }
}

@media (max-width:640px){
    html{
        scroll-padding-top:84px;
    }
    section[id]{
        scroll-margin-top:84px;
    }
    .nav{
        top:72px;
        left:12px;
        right:12px;
        max-height:calc(100dvh - 86px);
        padding:10px;
        border-radius:16px;
    }
    .nav a,
    .nav-more-menu a{
        min-height:44px;
        display:flex;
        align-items:center;
    }
    .nav-cta,
    .nav-admin{
        justify-content:center;
    }
}

@media (prefers-reduced-motion:reduce){
    .menu-toggle span,
    .nav-more-chevron{
        transition:none;
    }
}


/* =========================================================
   FOOTER PROFESIONAL — V2.18
   ========================================================= */
.footer-v2{
    padding:0;
    border-top:0;
    background:#102019;
    color:#fff;
}
.footer-main{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) repeat(3,minmax(0,.8fr));
    gap:46px;
    padding:54px 0 42px;
}
.footer-identity{
    max-width:390px;
}
.footer-brand-v2{
    display:inline-flex;
    align-items:center;
    gap:12px;
    color:#fff;
    text-decoration:none;
}
.footer-brand-v2 img{
    width:58px;
    height:58px;
    object-fit:contain;
}
.footer-brand-v2 div{
    display:flex;
    flex-direction:column;
    line-height:1.15;
}
.footer-brand-v2 strong{
    font-size:17px;
}
.footer-brand-v2 small{
    margin-top:4px;
    color:rgba(255,255,255,.62);
    font-size:11px;
}
.footer-identity>p{
    max-width:360px;
    margin:20px 0 0;
    color:rgba(255,255,255,.68);
    font-size:12px;
    line-height:1.7;
}
.footer-location{
    margin-top:14px;
}
.footer-location span{
    display:inline-flex;
    padding:7px 10px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:999px;
    background:rgba(255,255,255,.05);
    color:rgba(255,255,255,.74);
    font-size:10px;
    font-weight:800;
}
.footer-quote{
    margin:18px 0 0;
    padding:14px 16px;
    border-left:3px solid #7dbf3b;
    border-radius:0 12px 12px 0;
    background:rgba(255,255,255,.04);
    color:#fff;
    font-size:11px;
    font-weight:750;
    line-height:1.6;
}
.footer-quote cite{
    display:block;
    margin-top:5px;
    color:rgba(255,255,255,.55);
    font-size:10px;
    font-style:normal;
}
.footer-column{
    min-width:0;
}
.footer-title{
    display:block;
    margin-bottom:16px;
    color:#fff;
    font-size:12px;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.footer-links{
    display:grid;
    gap:10px;
}
.footer-links a{
    color:rgba(255,255,255,.66);
    font-size:11px;
    font-weight:700;
    line-height:1.4;
    transition:color .2s ease,transform .2s ease;
}
.footer-links a:hover{
    color:#fff;
    transform:translateX(2px);
}
.footer-contact{
    display:flex;
    flex-direction:column;
}
.footer-contact-item{
    display:block;
    padding:11px 0;
    border-bottom:1px solid rgba(255,255,255,.08);
    color:#fff;
}
.footer-contact-item:first-of-type{
    padding-top:0;
}
.footer-contact-item span{
    display:block;
    margin-bottom:3px;
    color:rgba(255,255,255,.46);
    font-size:9px;
    font-weight:850;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.footer-contact-item strong{
    display:block;
    overflow-wrap:anywhere;
    color:rgba(255,255,255,.82);
    font-size:11px;
    line-height:1.45;
}
.footer-contact-item:hover strong{
    color:#fff;
}
.footer-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:20px 0 24px;
    border-top:1px solid rgba(255,255,255,.08);
}
.footer-bottom p{
    margin:0;
    color:rgba(255,255,255,.42);
    font-size:10px;
}
.footer-bottom-links{
    display:flex;
    align-items:center;
    gap:18px;
}
.footer-bottom-links span{
    color:rgba(255,255,255,.38);
    font-size:10px;
}
.footer-bottom-links a{
    color:#9bd65b;
    font-size:10px;
    font-weight:900;
}

/* Botón flotante de WhatsApp */
.floating-whatsapp{
    width:auto;
    height:52px;
    right:20px;
    bottom:20px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:0 16px 0 8px;
    border-radius:999px;
    background:#1ba94c;
    color:#fff;
    font-weight:900;
    box-shadow:0 14px 34px rgba(0,0,0,.22);
}
.floating-whatsapp-icon{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.15);
    font-size:10px;
    font-weight:1000;
}
.floating-whatsapp-text{
    font-size:11px;
}

@media(max-width:980px){
    .footer-main{
        grid-template-columns:1.25fr repeat(2,1fr);
        gap:34px 28px;
    }
    .footer-contact{
        grid-column:2 / 4;
    }
}
@media(max-width:700px){
    .footer-main{
        grid-template-columns:1fr 1fr;
        gap:32px 22px;
        padding:42px 0 34px;
    }
    .footer-identity{
        grid-column:1 / -1;
        max-width:none;
    }
    .footer-contact{
        grid-column:1 / -1;
    }
    .footer-bottom{
        align-items:flex-start;
        flex-direction:column;
        gap:9px;
    }
    .footer-bottom-links{
        width:100%;
        justify-content:space-between;
    }
}
@media(max-width:460px){
    .footer-main{
        grid-template-columns:1fr;
    }
    .footer-identity,
    .footer-contact{
        grid-column:auto;
    }
    .footer-brand-v2 img{
        width:52px;
        height:52px;
    }
    .floating-whatsapp{
        width:52px;
        padding:0;
        justify-content:center;
    }
    .floating-whatsapp-icon{
        width:36px;
        height:36px;
    }
    .floating-whatsapp-text{
        display:none;
    }
}

/* =========================================================
   NOSOTROS + FILOSOFÍA — V2.19
   ========================================================= */
.about-philosophy{
    position:relative;
    background:linear-gradient(180deg,#ffffff 0%,#f7faf8 100%);
}
.about-philosophy-grid{
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(330px,.72fr);
    gap:54px;
    align-items:center;
}
.about-copy h2{
    max-width:650px;
    margin-top:10px;
}
.about-copy>p{
    max-width:720px;
    color:#65736b;
    line-height:1.78;
}
.about-copy .about-lead{
    margin-top:20px;
    color:#405449;
    font-size:16px;
    font-weight:650;
}
.about-values{
    display:grid;
    gap:10px;
    margin-top:28px;
}
.about-values article{
    display:grid;
    grid-template-columns:42px 1fr;
    gap:14px;
    align-items:start;
    padding:14px 15px;
    border:1px solid #e2ebe4;
    border-radius:15px;
    background:#fff;
}
.about-values article>span{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#edf6ef;
    color:#0c5d2b;
    font-size:10px;
    font-weight:950;
    letter-spacing:.07em;
}
.about-values h3{
    margin:1px 0 4px;
    color:#183426;
    font-size:14px;
}
.about-values p{
    margin:0;
    color:#748078;
    font-size:11px;
    line-height:1.55;
}
.about-philosophy-card{
    position:relative;
    overflow:hidden;
    min-height:390px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:34px;
    border-radius:28px;
    background:linear-gradient(145deg,#0d3820 0%,#0c5d2b 58%,#168145 100%);
    box-shadow:0 24px 54px rgba(8,48,24,.16);
    color:#fff;
}
.about-philosophy-logo{
    position:absolute;
    top:28px;
    right:28px;
    width:105px;
    height:105px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.10);
}
.about-philosophy-logo img{
    width:78%;
    height:78%;
    object-fit:contain;
    filter:drop-shadow(0 8px 14px rgba(0,0,0,.15));
}
.about-philosophy-label{
    display:block;
    margin-bottom:12px;
    color:#b9e689;
    font-size:10px;
    font-weight:950;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.about-philosophy-card blockquote{
    position:relative;
    z-index:2;
    max-width:430px;
    margin:0;
    color:#fff;
    font-size:clamp(25px,3vw,38px);
    font-weight:900;
    line-height:1.08;
    letter-spacing:-.035em;
}
.about-philosophy-signature{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:24px;
}
.about-philosophy-signature>span{
    width:38px;
    height:1px;
    background:rgba(255,255,255,.48);
}
.about-philosophy-signature strong,
.about-philosophy-signature small{
    display:block;
}
.about-philosophy-signature strong{
    color:#fff;
    font-size:12px;
}
.about-philosophy-signature small{
    margin-top:3px;
    color:rgba(255,255,255,.58);
    font-size:9px;
}

@media(max-width:900px){
    .about-philosophy-grid{
        grid-template-columns:1fr;
        gap:30px;
    }
    .about-philosophy-card{
        min-height:330px;
    }
}
@media(max-width:560px){
    .about-values article{
        grid-template-columns:38px 1fr;
        padding:13px;
    }
    .about-values article>span{
        width:38px;
        height:38px;
    }
    .about-philosophy-card{
        min-height:300px;
        padding:26px;
        border-radius:22px;
    }
    .about-philosophy-logo{
        top:22px;
        right:22px;
        width:82px;
        height:82px;
    }
}


/* =========================================================
   PRESENCIA VISUAL — MOMENTOS + GALERÍA — V2.20
   ========================================================= */

/* Momentos */
.moments-v2{
    position:relative;
    padding-top:96px;
    padding-bottom:92px;
    background:
        radial-gradient(circle at 92% 8%,rgba(126,191,59,.10),transparent 26%),
        linear-gradient(180deg,#ffffff 0%,#f7faf8 100%);
}
.moments-intro{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:38px;
    align-items:end;
    margin-bottom:34px;
}
.moments-v2 .moments-heading{
    margin:0;
}
.moments-signature{
    display:flex;
    align-items:center;
    gap:11px;
    padding-bottom:5px;
    color:#65756b;
    font-size:10px;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
    white-space:nowrap;
}
.moments-signature i{
    width:5px;
    height:5px;
    border-radius:50%;
    background:var(--green);
}
.moments-carousel{
    border-radius:30px;
    box-shadow:0 34px 78px rgba(8,48,24,.17);
}
.moments-v2 .carousel-viewport{
    aspect-ratio:16/7.6;
    min-height:430px;
}
.moments-v2 .carousel-shade{
    background:
        linear-gradient(90deg,rgba(4,22,12,.88) 0%,rgba(4,22,12,.64) 36%,rgba(4,22,12,.18) 70%,rgba(4,22,12,.08) 100%),
        linear-gradient(0deg,rgba(3,18,10,.32),transparent 44%);
}
.moments-carousel-top{
    position:absolute;
    z-index:4;
    top:28px;
    left:34px;
    display:flex;
    align-items:center;
    gap:12px;
    color:#fff;
}
.moments-carousel-top span{
    padding:7px 9px;
    border:1px solid rgba(255,255,255,.20);
    border-radius:999px;
    background:rgba(7,30,17,.24);
    backdrop-filter:blur(8px);
    font-size:8px;
    font-weight:950;
    letter-spacing:.13em;
}
.moments-carousel-top strong{
    color:rgba(255,255,255,.72);
    font-size:10px;
    font-weight:800;
}
.moments-counter{
    position:absolute;
    z-index:5;
    right:30px;
    top:26px;
    display:flex;
    align-items:baseline;
    gap:5px;
    color:#fff;
    text-shadow:0 2px 12px rgba(0,0,0,.22);
}
.moments-counter strong{
    font-size:25px;
    line-height:1;
    font-weight:950;
}
.moments-counter span{
    color:rgba(255,255,255,.60);
    font-size:10px;
    font-weight:800;
}
.moments-v2 .carousel-caption{
    bottom:clamp(40px,5vw,70px);
}
.moments-v2 .carousel-caption h3{
    max-width:720px;
}
.moments-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    margin-top:23px;
    padding:0 4px;
}
.moments-footer strong{
    display:block;
    color:#183426;
    font-size:13px;
}
.moments-footer span{
    display:block;
    margin-top:4px;
    color:#758179;
    font-size:11px;
}
.moments-gallery-link{
    min-height:44px;
    padding:0 18px;
}

/* Galería */
.gallery-v2{
    position:relative;
    padding-top:100px;
    padding-bottom:100px;
    background:#102019;
    color:#fff;
}
.gallery-v2 .kicker{
    color:#9bd65b;
}
.gallery-v2 .kicker::before{
    background:#9bd65b;
}
.gallery-intro{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:40px;
    align-items:end;
    margin-bottom:34px;
}
.gallery-v2 .gallery-heading{
    margin:0;
    max-width:790px;
}
.gallery-v2 .gallery-heading h2{
    color:#fff;
}
.gallery-v2 .gallery-heading p{
    color:rgba(255,255,255,.60);
    max-width:700px;
}
.gallery-total{
    display:flex;
    align-items:flex-end;
    gap:10px;
    padding-bottom:4px;
}
.gallery-total strong{
    color:#fff;
    font-size:48px;
    line-height:.85;
    letter-spacing:-.06em;
}
.gallery-total span{
    color:rgba(255,255,255,.48);
    font-size:9px;
    font-weight:800;
    line-height:1.35;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.gallery-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-bottom:22px;
    padding:15px 16px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:17px;
    background:rgba(255,255,255,.035);
}
.gallery-v2 .gallery-filters{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin:0;
}
.gallery-v2 .gallery-filter{
    min-height:34px;
    padding:0 12px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:999px;
    background:transparent;
    color:rgba(255,255,255,.66);
    font-size:10px;
    font-weight:850;
    cursor:pointer;
    transition:.2s ease;
}
.gallery-v2 .gallery-filter:hover{
    border-color:rgba(255,255,255,.25);
    color:#fff;
}
.gallery-v2 .gallery-filter.is-active{
    border-color:#9bd65b;
    background:#9bd65b;
    color:#102019;
}
.gallery-toolbar-note{
    flex-shrink:0;
    color:rgba(255,255,255,.38);
    font-size:9px;
    font-weight:750;
}
.gallery-grid-v2{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-flow:dense;
    gap:12px;
}
.gallery-card-v2{
    position:relative;
    min-height:255px;
    overflow:hidden;
    border-radius:18px;
    background:#172a20;
    box-shadow:none;
    isolation:isolate;
}
.gallery-card-v2.gallery-card--editorial{
    grid-column:span 2;
    grid-row:span 2;
    min-height:522px;
}
.gallery-card-v2 img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .35s ease;
}
.gallery-card-v2:hover img{
    transform:scale(1.045);
    filter:saturate(1.04);
}
.gallery-card-v2 .gallery-overlay{
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(0deg,rgba(3,18,10,.88) 0%,rgba(3,18,10,.24) 52%,rgba(3,18,10,.04) 76%);
}
.gallery-index{
    position:absolute;
    z-index:3;
    top:14px;
    right:15px;
    padding:6px 8px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:999px;
    background:rgba(5,25,14,.24);
    backdrop-filter:blur(7px);
    color:rgba(255,255,255,.76);
    font-size:8px;
    font-weight:900;
    letter-spacing:.08em;
}
.gallery-card-v2 .gallery-copy{
    left:18px;
    right:18px;
    bottom:17px;
    z-index:3;
}
.gallery-card-v2 .gallery-copy small{
    color:#a8dc69;
    font-size:9px;
    letter-spacing:.10em;
}
.gallery-card-v2 .gallery-copy strong{
    margin-top:5px;
    color:#fff;
    font-size:16px;
    line-height:1.24;
}
.gallery-card--editorial .gallery-copy strong{
    max-width:500px;
    font-size:clamp(22px,2.3vw,34px);
}
.gallery-card-v2 .gallery-copy em{
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:11px;
    color:rgba(255,255,255,.58);
    font-size:9px;
    font-style:normal;
    font-weight:800;
}
.gallery-card-v2 .gallery-copy em b{
    font-size:11px;
    font-weight:400;
}
.gallery-card-v2.is-filtered-out{
    display:none;
}
.gallery-end{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:18px;
    margin-top:34px;
}
.gallery-end span{
    height:1px;
    background:rgba(255,255,255,.10);
}
.gallery-end p{
    margin:0;
    color:rgba(255,255,255,.42);
    font-size:9px;
    font-weight:800;
    letter-spacing:.04em;
    text-align:center;
}

/* Lightbox editorial */
.gallery-lightbox-v2{
    position:fixed;
    inset:0;
    z-index:1000;
}
.gallery-lightbox-v2[hidden]{
    display:none;
}
.gallery-lightbox-v2 .gallery-lightbox-backdrop{
    position:absolute;
    inset:0;
    background:rgba(4,14,8,.88);
    backdrop-filter:blur(12px);
}
.gallery-lightbox-v2 .gallery-lightbox-dialog{
    position:absolute;
    top:50%;
    left:50%;
    width:min(1120px,calc(100% - 48px));
    max-height:90vh;
    transform:translate(-50%,-50%);
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);
    overflow:hidden;
    border:1px solid rgba(255,255,255,.10);
    border-radius:24px;
    background:#102019;
    box-shadow:0 30px 90px rgba(0,0,0,.45);
}
.gallery-lightbox-media{
    position:relative;
    min-height:520px;
    background:#09140d;
}
.gallery-lightbox-media img{
    width:100%;
    height:100%;
    max-height:78vh;
    object-fit:contain;
    display:block;
}
.gallery-lightbox-position{
    position:absolute;
    right:16px;
    bottom:14px;
    padding:6px 9px;
    border-radius:999px;
    background:rgba(0,0,0,.48);
    color:#fff;
    font-size:9px;
    font-weight:850;
}
.gallery-lightbox-v2 .gallery-lightbox-copy{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:38px 30px;
    background:#102019;
}
.gallery-lightbox-v2 .gallery-lightbox-copy>span{
    margin-bottom:10px;
    color:#9bd65b;
    font-size:9px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.gallery-lightbox-v2 .gallery-lightbox-copy h3{
    margin:0;
    color:#fff;
    font-size:27px;
    line-height:1.12;
}
.gallery-lightbox-v2 .gallery-lightbox-copy p{
    margin:15px 0 0;
    color:rgba(255,255,255,.62);
    font-size:12px;
    line-height:1.7;
}
.gallery-lightbox-v2 .gallery-lightbox-close{
    top:14px;
    right:14px;
    z-index:8;
    width:38px;
    height:38px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:50%;
    background:rgba(6,24,13,.68);
    color:#fff;
}
.gallery-lightbox-nav{
    position:absolute;
    z-index:7;
    top:50%;
    width:42px;
    height:42px;
    transform:translateY(-50%);
    border:1px solid rgba(255,255,255,.16);
    border-radius:50%;
    background:rgba(6,24,13,.68);
    color:#fff;
    font-size:26px;
    cursor:pointer;
}
.gallery-lightbox-prev{
    left:14px;
}
.gallery-lightbox-next{
    left:calc(65.9% - 56px);
}

@media(max-width:1050px){
    .gallery-grid-v2{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:820px){
    .moments-intro,
    .gallery-intro{
        grid-template-columns:1fr;
        gap:18px;
    }
    .moments-signature{
        padding:0;
    }
    .gallery-total{
        display:none;
    }
    .gallery-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }
    .gallery-toolbar-note{
        display:none;
    }
    .gallery-grid-v2{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .gallery-card-v2.gallery-card--editorial{
        grid-column:span 2;
        grid-row:span 1;
        min-height:390px;
    }
    .gallery-lightbox-v2 .gallery-lightbox-dialog{
        grid-template-columns:1fr;
        overflow-y:auto;
    }
    .gallery-lightbox-media{
        min-height:0;
        height:min(60vh,560px);
    }
    .gallery-lightbox-v2 .gallery-lightbox-copy{
        padding:24px 24px 28px;
    }
    .gallery-lightbox-next{
        left:auto;
        right:14px;
    }
}
@media(max-width:640px){
    .moments-v2{
        padding-top:74px;
        padding-bottom:72px;
    }
    .moments-v2 .carousel-viewport{
        aspect-ratio:4/5;
        min-height:0;
    }
    .moments-carousel-top{
        top:18px;
        left:18px;
    }
    .moments-carousel-top strong{
        display:none;
    }
    .moments-counter{
        top:18px;
        right:18px;
    }
    .moments-counter strong{
        font-size:20px;
    }
    .moments-footer{
        align-items:stretch;
        flex-direction:column;
    }
    .moments-gallery-link{
        width:100%;
    }
    .gallery-v2{
        padding-top:76px;
        padding-bottom:76px;
    }
    .gallery-toolbar{
        padding:12px;
    }
    .gallery-v2 .gallery-filters{
        flex-wrap:nowrap;
        width:100%;
        overflow-x:auto;
        padding-bottom:3px;
        scrollbar-width:none;
    }
    .gallery-v2 .gallery-filters::-webkit-scrollbar{
        display:none;
    }
    .gallery-v2 .gallery-filter{
        flex:0 0 auto;
    }
    .gallery-grid-v2{
        grid-template-columns:1fr;
        gap:10px;
    }
    .gallery-card-v2,
    .gallery-card-v2.gallery-card--editorial{
        grid-column:auto;
        grid-row:auto;
        min-height:330px;
    }
    .gallery-card--editorial .gallery-copy strong{
        font-size:22px;
    }
    .gallery-end{
        grid-template-columns:1fr;
    }
    .gallery-end span{
        display:none;
    }
    .gallery-lightbox-v2 .gallery-lightbox-dialog{
        width:calc(100% - 18px);
        max-height:94vh;
        border-radius:18px;
    }
    .gallery-lightbox-media{
        height:56vh;
    }
    .gallery-lightbox-v2 .gallery-lightbox-copy{
        padding:20px 20px 24px;
    }
    .gallery-lightbox-v2 .gallery-lightbox-copy h3{
        font-size:21px;
    }
    .gallery-lightbox-nav{
        width:38px;
        height:38px;
    }
}


/* =========================================================
   SEO LOCAL / PRESENCIA EN SANTIAGO — V2.23
   ========================================================= */
.local-presence{
    padding-top:72px;
    padding-bottom:78px;
    background:linear-gradient(180deg,#f6faf7 0%,#ffffff 100%);
}
.local-presence-card{
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(330px,.7fr);
    gap:42px;
    align-items:center;
    padding:38px;
    border:1px solid #dfe9e2;
    border-radius:28px;
    background:#fff;
    box-shadow:0 22px 55px rgba(8,48,24,.07);
}
.local-presence-copy h2{
    max-width:760px;
    margin:10px 0 18px;
    color:#183426;
    font-size:clamp(32px,4vw,50px);
    line-height:1.04;
    letter-spacing:-.035em;
}
.local-presence-copy p{
    max-width:760px;
    margin:0 0 12px;
    color:#65746b;
    font-size:14px;
    line-height:1.78;
}
.local-presence-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:24px;
}
.local-presence-facts{
    display:grid;
    gap:10px;
}
.local-presence-facts>div{
    padding:16px 17px;
    border:1px solid #e1eae3;
    border-radius:16px;
    background:#f7faf8;
}
.local-presence-facts small{
    display:block;
    margin-bottom:5px;
    color:#0c5d2b;
    font-size:9px;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.local-presence-facts strong{
    display:block;
    color:#243c2f;
    font-size:13px;
    line-height:1.35;
}
.local-presence-facts span{
    display:block;
    margin-top:3px;
    color:#7a877f;
    font-size:10px;
    line-height:1.4;
}
@media(max-width:900px){
    .local-presence-card{
        grid-template-columns:1fr;
        gap:28px;
        padding:30px;
    }
    .local-presence-facts{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:620px){
    .local-presence{
        padding-top:58px;
        padding-bottom:62px;
    }
    .local-presence-card{
        padding:22px;
        border-radius:22px;
    }
    .local-presence-copy h2{
        font-size:34px;
    }
    .local-presence-actions{
        display:grid;
        grid-template-columns:1fr;
    }
    .local-presence-actions .btn{
        width:100%;
    }
    .local-presence-facts{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   GALERÍA MÓVIL COMPACTA — V2.23.2
   Mantiene escritorio/tablet y mejora el mosaico en celular.
   ========================================================= */
@media(max-width:640px){
    .gallery-grid-v2{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
    }

    .gallery-card-v2{
        min-height:0;
        aspect-ratio:1/1;
        border-radius:14px;
    }

    .gallery-card-v2.gallery-card--editorial{
        grid-column:span 2;
        grid-row:auto;
        min-height:0;
        aspect-ratio:16/10;
    }

    .gallery-card-v2 .gallery-copy{
        left:11px;
        right:11px;
        bottom:10px;
        gap:2px;
        padding:0;
    }

    .gallery-card-v2 .gallery-copy small{
        font-size:7px;
        letter-spacing:.08em;
    }

    .gallery-card-v2 .gallery-copy strong{
        margin-top:2px;
        font-size:12px;
        line-height:1.18;
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
        overflow:hidden;
    }

    .gallery-card-v2.gallery-card--editorial .gallery-copy{
        left:15px;
        right:15px;
        bottom:14px;
    }

    .gallery-card-v2.gallery-card--editorial .gallery-copy small{
        font-size:8px;
    }

    .gallery-card-v2.gallery-card--editorial .gallery-copy strong{
        font-size:20px;
        line-height:1.15;
        -webkit-line-clamp:2;
    }

    .gallery-card-v2 .gallery-copy em{
        display:none;
    }

    .gallery-index{
        top:9px;
        right:9px;
        padding:5px 7px;
        font-size:7px;
        background:rgba(5,25,14,.38);
    }

    .gallery-card-v2 .gallery-overlay{
        background:linear-gradient(0deg,rgba(3,18,10,.86) 0%,rgba(3,18,10,.18) 50%,rgba(3,18,10,.02) 76%);
    }
}

@media(max-width:370px){
    .gallery-grid-v2{
        gap:7px;
    }
    .gallery-card-v2 .gallery-copy strong{
        font-size:11px;
    }
    .gallery-card-v2.gallery-card--editorial .gallery-copy strong{
        font-size:18px;
    }
}


/* =========================================================
   NOTICIAS Y COMUNICADOS — V2.24
   ========================================================= */
.news-section{
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg,#f5f9f6 0%,#ffffff 100%);
}
.news-section::before{
    content:"";
    position:absolute;
    width:420px;
    height:420px;
    right:-220px;
    top:-180px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(12,93,43,.08),rgba(12,93,43,0) 68%);
    pointer-events:none;
}
.news-heading{
    position:relative;
    z-index:1;
    display:flex;
    justify-content:space-between;
    gap:34px;
    align-items:end;
    margin-bottom:38px;
}
.news-heading .section-heading{
    max-width:760px;
}
.news-heading .section-heading h2{
    margin-bottom:13px;
}
.news-live{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-bottom:8px;
    padding:9px 13px;
    border:1px solid #d9e7dd;
    border-radius:999px;
    background:#fff;
    color:#65746a;
    font-size:11px;
    font-weight:850;
}
.news-live span{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#27a85c;
    box-shadow:0 0 0 5px rgba(39,168,92,.10);
}
.news-grid{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
    align-items:start;
}
.news-card{
    min-width:0;
    overflow:hidden;
    border:1px solid #dfe9e2;
    border-radius:22px;
    background:#fff;
    box-shadow:0 16px 42px rgba(8,48,24,.07);
}
.news-card--featured{
    grid-column:span 2;
}
.news-image{
    display:block;
    overflow:hidden;
    aspect-ratio:16/10;
    background:#eaf2ec;
}
.news-card--featured .news-image{
    aspect-ratio:16/8.4;
}
.news-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .35s ease;
}
.news-image:hover img{
    transform:scale(1.025);
}
.news-image--placeholder{
    display:grid;
    place-items:center;
    background:linear-gradient(145deg,#edf6ef,#dbeadf);
}
.news-image--placeholder img{
    width:34%;
    height:58%;
    object-fit:contain;
    opacity:.42;
}
.news-card-body{
    padding:22px;
}
.news-card--featured .news-card-body{
    padding:26px 28px 28px;
}
.news-badges{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-bottom:13px;
}
.news-badges span{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:5px 9px;
    border-radius:999px;
    font-size:9px;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.news-type{
    background:#e6f4e9;
    color:#0c5d2b;
}
.news-category{
    background:#eff2f0;
    color:#59675e;
}
.news-featured{
    background:#fff2c7;
    color:#7a5700;
}
.news-card h3{
    margin:0 0 10px;
    color:#163c25;
    font-size:21px;
    line-height:1.18;
    letter-spacing:-.02em;
}
.news-card--featured h3{
    font-size:clamp(25px,3vw,34px);
}
.news-summary{
    margin:0 0 13px;
    color:#617068;
    font-size:14px;
    line-height:1.62;
}
.news-card time{
    display:block;
    color:#7a867e;
    font-size:11px;
    font-weight:800;
}
.news-details{
    margin-top:17px;
    padding-top:15px;
    border-top:1px solid #e7eee9;
}
.news-details summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    color:#0c5d2b;
    font-size:12px;
    font-weight:950;
    cursor:pointer;
    list-style:none;
}
.news-details summary::-webkit-details-marker{
    display:none;
}
.news-details summary span{
    display:grid;
    place-items:center;
    width:26px;
    height:26px;
    border-radius:50%;
    background:#edf6ef;
    transition:transform .2s ease;
}
.news-details[open] summary span{
    transform:rotate(45deg);
}
.news-details-body{
    padding-top:17px;
}
.news-content{
    color:#46564d;
    font-size:14px;
    line-height:1.75;
}
.news-gallery{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-top:18px;
}
.news-gallery a{
    overflow:hidden;
    aspect-ratio:1/1;
    border-radius:12px;
    background:#edf2ee;
}
.news-gallery img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.news-pdf{
    min-height:42px;
    margin-top:18px;
    padding:0 16px;
    font-size:12px;
}
.news-note{
    position:relative;
    z-index:1;
    margin:24px 0 0;
    color:#718078;
    font-size:11px;
    text-align:center;
}
@media(max-width:980px){
    .news-heading{
        align-items:flex-start;
        flex-direction:column;
        gap:16px;
    }
    .news-live{
        margin:0;
    }
    .news-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .news-card--featured{
        grid-column:span 2;
    }
}
@media(max-width:640px){
    .news-section{
        padding-top:70px;
        padding-bottom:72px;
    }
    .news-grid{
        grid-template-columns:1fr;
        gap:14px;
    }
    .news-card--featured{
        grid-column:auto;
    }
    .news-image,
    .news-card--featured .news-image{
        aspect-ratio:16/10;
    }
    .news-card,
    .news-card--featured{
        border-radius:18px;
    }
    .news-card-body,
    .news-card--featured .news-card-body{
        padding:18px;
    }
    .news-card h3,
    .news-card--featured h3{
        font-size:20px;
    }
    .news-gallery{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .news-live{
        white-space:normal;
    }
}


/* =========================================================
   NOTICIAS — IMAGEN COMPLETA V2.24.3
   Muestra la imagen principal completa, sin recorte.
   ========================================================= */
.news-image,
.news-card--featured .news-image{
    aspect-ratio:auto;
    background:#eef4ef;
    display:flex;
    align-items:center;
    justify-content:center;
}

.news-image img{
    display:block;
    width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
    object-position:center;
}

.news-image:hover img{
    transform:none;
}

@media(max-width:640px){
    .news-image,
    .news-card--featured .news-image{
        aspect-ratio:auto;
    }

    .news-image img{
        width:100%;
        height:auto;
        max-height:none;
        object-fit:contain;
    }
}
