/* ═══════════════════════════════════════════════════════════
   COLEGIO LOS ÁLAMOS — Design System
   Tokens · Reset · Layout · Components · Motion · A11y
   ═══════════════════════════════════════════════════════════ */

/* ── 1. DESIGN TOKENS ── */
:root{
  /* Brand palette */
  --c-primary:        #1f6f3a;
  --c-primary-600:    #2e7d32;
  --c-primary-400:    #66bb6a;
  --c-primary-50:     #eaf4ed;

  --c-accent:         #e65100;
  --c-accent-600:     #f57c00;
  --c-accent-400:     #ff9800;
  --c-accent-50:      #fff3e0;

  --c-blue:           #1565c0;
  --c-blue-400:       #42a5f5;
  --c-blue-50:        #e8f1fb;

  --c-yellow:         #f9a825;
  --c-rose:           #c62828;
  --c-wa:             #25d366;

  /* Neutrals (warm) */
  --c-ink:            #131a17;
  --c-ink-2:          #1f2a25;
  --c-text:           #2b3631;
  --c-text-muted:     #5b6a64;
  --c-text-soft:      #7a8983;
  --c-border:         #e6ebe8;
  --c-border-strong:  #d2dad6;
  --c-surface:        #ffffff;
  --c-surface-2:      #f6f8f7;
  --c-surface-3:      #eef2f0;
  --c-cream:          #fbfaf6;

  /* Type scale (1.200 modular) */
  --fs-xs:   .78rem;
  --fs-sm:   .875rem;
  --fs-base: 1rem;
  --fs-md:   1.05rem;
  --fs-lg:   1.2rem;
  --fs-xl:   clamp(1.25rem, 1.6vw + 1rem, 1.65rem);
  --fs-2xl:  clamp(1.6rem, 2.4vw + 1rem, 2.25rem);
  --fs-3xl:  clamp(2rem, 3.6vw + 1rem, 3.1rem);
  --fs-4xl:  clamp(2.4rem, 5vw + 1rem, 4rem);

  /* Spacing scale (8pt base) */
  --s-1:  .25rem;
  --s-2:  .5rem;
  --s-3:  .75rem;
  --s-4:  1rem;
  --s-5:  1.25rem;
  --s-6:  1.5rem;
  --s-8:  2rem;
  --s-10: 2.5rem;
  --s-12: 3rem;
  --s-16: 4rem;
  --s-20: 5rem;
  --s-24: 6rem;

  /* Radii */
  --r-sm:  8px;
  --r-md:  12px;
  --r-lg:  18px;
  --r-xl:  24px;
  --r-pill: 999px;

  /* Elevation (multi-layer) */
  --e-1: 0 1px 2px rgba(19,26,23,.04), 0 1px 3px rgba(19,26,23,.06);
  --e-2: 0 2px 6px rgba(19,26,23,.05), 0 6px 16px rgba(19,26,23,.07);
  --e-3: 0 8px 18px rgba(19,26,23,.08), 0 18px 38px rgba(19,26,23,.09);
  --e-4: 0 14px 30px rgba(19,26,23,.10), 0 30px 60px rgba(19,26,23,.14);
  --ring-focus: 0 0 0 3px rgba(46,125,50,.22), 0 0 0 5px rgba(46,125,50,.10);

  /* Motion */
  --ease:        cubic-bezier(.32,.72,.27,1);
  --ease-out:    cubic-bezier(.22,1,.36,1);
  --t-fast:      .18s var(--ease);
  --t-base:      .28s var(--ease);
  --t-slow:      .55s var(--ease-out);

  /* Layout */
  --nav-h: 72px;
  --container: 1240px;

  /* Legacy aliases (compat) */
  --color-primary:    var(--c-primary-600);
  --color-secondary:  var(--c-primary-400);
  --color-accent:     var(--c-accent);
  --color-blue:       var(--c-blue);
  --color-yellow:     var(--c-yellow);
  --color-red:        var(--c-rose);
  --color-white:      #fff;
  --color-gray:       var(--c-surface-2);
  --color-dark:       var(--c-ink);
  --color-text:       var(--c-text);
  --color-text-light: var(--c-text-muted);
  --shadow-sm: var(--e-1);
  --shadow-md: var(--e-2);
  --shadow-lg: var(--e-3);
  --radius:    var(--r-lg);
  --transition: var(--t-base);
  --nav-height: var(--nav-h);
}

/* ── 2. RESET / BASE ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h);-webkit-text-size-adjust:100%}
body{
  font-family:'Nunito',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--c-text);
  line-height:1.65;
  background:var(--c-surface);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{font:inherit;cursor:pointer;background:none;border:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}

/* Headings */
h1{font-family:'Fredoka One',cursive;font-weight:400;line-height:1.15;color:var(--c-ink-2);letter-spacing:-.01em;font-size:var(--fs-4xl)}
h2,h3{font-family:'Nunito',sans-serif;font-weight:900;line-height:1.15;color:var(--c-ink-2);letter-spacing:-.02em}
h2{font-size:var(--fs-3xl);color:var(--c-primary)}
h3{font-size:var(--fs-xl)}
h4{font-size:var(--fs-lg);font-family:'Nunito',sans-serif;font-weight:800;letter-spacing:-.005em;line-height:1.15;color:var(--c-ink-2)}
p{font-size:var(--fs-base)}

/* Selection */
::selection{background:var(--c-primary);color:#fff}

/* Focus ring */
:focus-visible{outline:none;box-shadow:var(--ring-focus);border-radius:6px}

/* Skip link */
.skip-link{
  position:absolute;left:-9999px;top:8px;z-index:9999;
  background:var(--c-primary);color:#fff;padding:.6rem 1rem;
  border-radius:8px;font-weight:800;text-decoration:none;
}
.skip-link:focus{left:8px}

/* ── 3. LAYOUT ── */
.container{max-width:var(--container);margin:0 auto;width:100%;padding:0 var(--s-5)}
section{padding:var(--s-20) var(--s-5)}

.section-header{text-align:center;margin-bottom:var(--s-12);max-width:740px;margin-left:auto;margin-right:auto}
.eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:var(--fs-xs);font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--c-primary);background:var(--c-primary-50);
  padding:.4rem .85rem;border-radius:var(--r-pill);
  margin-bottom:var(--s-3);
}
.eyebrow::before{content:"";width:18px;height:2px;background:var(--c-primary);border-radius:2px}
.section-header h2 span{color:var(--c-accent)}
.accent-line{width:64px;height:4px;background:linear-gradient(90deg,var(--c-primary),var(--c-primary-400));border-radius:2px;margin:var(--s-3) auto var(--s-4)}
.section-subtitle{color:var(--c-text-muted);font-size:var(--fs-md);max-width:620px;margin:var(--s-3) auto 0}

/* ── 4. NAVBAR ── */
.navbar{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  transition:background var(--t-base), box-shadow var(--t-base), backdrop-filter var(--t-base);
  background:rgba(19,26,23,.28);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.navbar.scrolled{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid rgba(19,26,23,.06);
  box-shadow:0 6px 20px rgba(19,26,23,.06);
}
.navbar .container{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--s-6);padding:0 var(--s-6);min-height:72px;
}

/* Logo — hanging card effect */
.nav-logo{display:flex;align-items:center;position:relative;align-self:center}
.nav-logo-card{
  display:inline-flex;align-items:center;justify-content:center;
  background:#fff;border-radius:18px;padding:.55rem .85rem;
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 12px 28px rgba(19,26,23,.20),
    0 4px 10px rgba(19,26,23,.10);
  transition:transform var(--t-base), box-shadow var(--t-base);
  transform:translateY(22px);
  border:1px solid rgba(19,26,23,.04);
}
.nav-logo-card:hover{
  transform:translateY(20px) scale(1.025);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 18px 38px rgba(19,26,23,.24),
    0 6px 14px rgba(19,26,23,.12);
}
.nav-logo-card img{height:80px;width:auto;display:block}
.navbar.scrolled .nav-logo-card{transform:translateY(16px)}
.navbar.scrolled .nav-logo-card:hover{transform:translateY(14px) scale(1.025)}

/* Links */
.nav-links{display:flex;gap:.35rem;align-items:center;justify-content:flex-end}
.nav-links a{
  font-weight:700;font-size:.93rem;
  color:rgba(255,255,255,.92);
  position:relative;
  padding:.55rem .9rem;border-radius:10px;
  transition:color var(--t-fast), background var(--t-fast);
}
.navbar.scrolled .nav-links a{color:var(--c-text)}
.nav-links a:not(.nav-cta):not(.nav-schedule)::after{
  content:'';position:absolute;left:50%;bottom:.25rem;
  width:0;height:2px;background:currentColor;border-radius:2px;
  transition:width var(--t-base), left var(--t-base);
  opacity:.85;
}
.nav-links a:not(.nav-cta):not(.nav-schedule):hover::after,
.nav-links a:not(.nav-cta):not(.nav-schedule).active::after{
  width:calc(100% - 1.8rem);left:.9rem;
}
.nav-links a:hover{color:#fff;background:rgba(255,255,255,.08)}
.navbar.scrolled .nav-links a:hover{color:var(--c-primary);background:var(--c-primary-50)}
.navbar.scrolled .nav-links a.active{color:var(--c-primary)}

/* Schedule pill — discreet info chip */
.nav-schedule{
  display:inline-flex;align-items:center;gap:.45rem;
  margin-left:var(--s-3);
  padding:.45rem .85rem;border-radius:var(--r-pill);
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.92);
  font-size:.78rem;font-weight:700;letter-spacing:.01em;
  transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast);
}
.nav-schedule:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.32);color:#fff}
.navbar.scrolled .nav-schedule{
  background:var(--c-surface-2);border-color:var(--c-border);color:var(--c-text-muted);
}
.navbar.scrolled .nav-schedule:hover{
  background:var(--c-primary-50);border-color:rgba(31,111,58,.2);color:var(--c-primary);
}
.nav-schedule::after{display:none !important}
.nav-schedule i{width:14px;height:14px;flex-shrink:0;opacity:.85}

/* CTA button in nav */
.nav-cta{
  display:inline-flex !important;align-items:center;gap:.4rem;
  background:var(--c-accent);color:#fff !important;
  margin-left:var(--s-2);
  padding:.6rem 1.2rem !important;border-radius:var(--r-pill);
  font-size:.88rem !important;font-weight:800 !important;letter-spacing:.01em;
  box-shadow:0 6px 16px rgba(230,81,0,.32);
  transition:transform var(--t-fast), box-shadow var(--t-base), background var(--t-fast);
}
.nav-cta::before{
  content:"";width:6px;height:6px;border-radius:50%;background:#fff;
  box-shadow:0 0 0 4px rgba(255,255,255,.25);
  animation:ctaPulse 2s ease-in-out infinite;
}
@keyframes ctaPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.45)}
  50%{box-shadow:0 0 0 5px rgba(255,255,255,0)}
}
.nav-cta:hover{background:var(--c-accent-600);transform:translateY(-2px);box-shadow:0 10px 24px rgba(230,81,0,.42);color:#fff}
.nav-cta::after{display:none !important}

/* Burger */
.burger{display:none;flex-direction:column;gap:5px;padding:8px;z-index:1001;border-radius:10px}
.burger span{width:24px;height:2px;background:#fff;border-radius:3px;transition:transform var(--t-base), opacity var(--t-fast), background var(--t-fast)}
.navbar.scrolled .burger span{background:var(--c-ink-2)}
.burger.active span{background:var(--c-ink-2)}
.burger.active span:nth-child(1){transform:rotate(45deg) translate(5px,6px)}
.burger.active span:nth-child(2){opacity:0}
.burger.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-6px)}

/* ── 5. HERO ── */
.hero{
  position:relative;min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:var(--c-ink);
  isolation:isolate;
}
.hero-overlay{
  position:absolute;inset:0;z-index:2;
  background:
    radial-gradient(120% 80% at 20% 20%, rgba(46,125,50,.55), transparent 60%),
    radial-gradient(100% 80% at 80% 80%, rgba(21,101,192,.45), transparent 60%),
    linear-gradient(180deg, rgba(19,26,23,.55), rgba(19,26,23,.75));
}
.hero-content{position:relative;z-index:3;text-align:center;color:#fff;padding:var(--s-8) var(--s-5);max-width:780px}
.hero-content h1{font-size:var(--fs-4xl);margin-bottom:var(--s-3);text-shadow:0 4px 30px rgba(0,0,0,.35);color:#fff}
.hero-content .hero-sub{font-size:clamp(1rem,2vw,1.2rem);margin-bottom:var(--s-8);opacity:.94;max-width:620px;margin-left:auto;margin-right:auto}
.hero-buttons{display:flex;gap:var(--s-3);justify-content:center;flex-wrap:wrap}

/* Trust strip */
.hero-trust{
  position:absolute;left:50%;bottom:5.5rem;transform:translateX(-50%);
  z-index:3;display:flex;gap:var(--s-6);align-items:center;
  background:rgba(255,255,255,.10);backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.18);
  padding:.6rem 1.1rem;border-radius:var(--r-pill);
  color:#fff;font-size:.82rem;font-weight:700;
  white-space:nowrap;
}
.hero-trust span{display:inline-flex;align-items:center;gap:.4rem;opacity:.95}
.hero-trust span + span{padding-left:var(--s-6);border-left:1px solid rgba(255,255,255,.18)}
.hero-trust i{width:14px;height:14px;color:var(--c-primary-400)}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.95rem 1.85rem;border-radius:var(--r-pill);
  font-family:'Nunito',sans-serif;font-weight:800;font-size:1rem;letter-spacing:.01em;
  border:none;cursor:pointer;transition:transform var(--t-fast), box-shadow var(--t-base), background var(--t-fast), color var(--t-fast);
  white-space:nowrap;
}
.btn-primary{background:var(--c-accent);color:#fff;box-shadow:0 8px 18px rgba(230,81,0,.35)}
.btn-primary:hover{background:var(--c-accent-600);transform:translateY(-2px);box-shadow:0 12px 24px rgba(230,81,0,.45)}
.btn-secondary{background:rgba(255,255,255,.08);color:#fff;border:1.5px solid rgba(255,255,255,.55);backdrop-filter:blur(4px)}
.btn-secondary:hover{background:#fff;color:var(--c-primary);border-color:#fff;transform:translateY(-2px)}

/* Hero badge */
.hero-badge{
  display:inline-flex;align-items:center;gap:.5rem;
  background:rgba(255,255,255,.12);backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.22);
  padding:.5rem 1.1rem;border-radius:var(--r-pill);
  font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:#fff;margin-bottom:var(--s-4);
  animation:fadeInUp .85s var(--ease-out) .05s both;
}
.hero-badge-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--c-primary-400);
  box-shadow:0 0 0 3px rgba(102,187,106,.35);
  animation:badgePulse 2s ease-in-out infinite;
}
@keyframes badgePulse{
  0%,100%{box-shadow:0 0 0 0 rgba(102,187,106,.5)}
  50%{box-shadow:0 0 0 6px rgba(102,187,106,0)}
}

/* Gradient text */
.text-gradient{
  background:linear-gradient(135deg,var(--c-primary-400),var(--c-accent-400),var(--c-yellow));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}

/* Hero button icons */
.hero-buttons .btn i,.hero-buttons .btn svg{width:18px;height:18px;flex-shrink:0}

/* Hero decorative particles */
.hero-particles{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.particle{position:absolute;border-radius:50%;opacity:.5;animation:floatParticle linear infinite}
.particle.leaf{width:18px;height:18px;background:var(--c-primary-400);border-radius:50% 0 50% 0;filter:blur(.3px)}
.particle.star{width:11px;height:11px;background:var(--c-yellow);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
@keyframes floatParticle{
  0%{transform:translateY(100vh) rotate(0);opacity:0}
  10%{opacity:.55}
  90%{opacity:.55}
  100%{transform:translateY(-100px) rotate(720deg);opacity:0}
}

/* ── 6. ABOUT ── */
#nosotros{background:var(--c-surface-2);position:relative}
.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s-6);margin-bottom:var(--s-12)}
.about-card{
  background:#fff;border-radius:var(--r-lg);padding:var(--s-8) var(--s-6);
  text-align:center;box-shadow:var(--e-1);
  transition:transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
  border:1px solid var(--c-border);
  position:relative;overflow:hidden;
}
.about-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--c-primary);transform-origin:left;transition:transform var(--t-slow);
}
.about-card:nth-child(2)::before{background:var(--c-blue)}
.about-card:nth-child(3)::before{background:var(--c-accent)}
.about-card:hover{transform:translateY(-6px);box-shadow:var(--e-3);border-color:transparent}
.about-card .icon{
  width:64px;height:64px;border-radius:18px;
  display:inline-flex;align-items:center;justify-content:center;
  margin-bottom:var(--s-5);
  background:linear-gradient(135deg,var(--c-primary-50),#fff);
  color:var(--c-primary);
  box-shadow:inset 0 0 0 1px rgba(46,125,50,.12);
}
.about-card .icon svg{width:28px;height:28px;stroke-width:1.8}
.about-card:nth-child(2) .icon{background:linear-gradient(135deg,var(--c-blue-50),#fff);color:var(--c-blue);box-shadow:inset 0 0 0 1px rgba(21,101,192,.12)}
.about-card:nth-child(3) .icon{background:linear-gradient(135deg,var(--c-accent-50),#fff);color:var(--c-accent);box-shadow:inset 0 0 0 1px rgba(230,81,0,.12)}
.about-card h3{margin-bottom:var(--s-2);color:var(--c-ink-2)}
.about-card p{color:var(--c-text-muted);font-size:.96rem}

/* Counters */
.counters{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s-4);
  background:#fff;border-radius:var(--r-xl);padding:var(--s-6) var(--s-4);
  box-shadow:var(--e-2);border:1px solid var(--c-border);
}
.counter-item{text-align:center;padding:var(--s-4) var(--s-2);position:relative}
.counter-item + .counter-item::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:1px;height:60%;background:var(--c-border);
}
.counter-item .number{
  font-family:'Fredoka One',cursive;
  font-size:clamp(2.2rem,4vw,2.8rem);
  color:var(--c-primary);display:block;line-height:1;
}
.counter-item .label{
  color:var(--c-text-muted);font-weight:700;font-size:.85rem;
  display:block;margin-top:.4rem;letter-spacing:.02em;
}
.counter-item:nth-child(2) .number{color:var(--c-blue)}
.counter-item:nth-child(3) .number{color:var(--c-accent)}
.counter-item:nth-child(4) .number{color:var(--c-yellow)}

/* ── 7. LEVELS ── */
#niveles{background:var(--c-surface);position:relative}
.levels-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s-6)}
.level-card{
  background:#fff;border-radius:var(--r-xl);overflow:hidden;
  box-shadow:var(--e-1);border:1px solid var(--c-border);
  transition:transform var(--t-base), box-shadow var(--t-base);
  display:flex;flex-direction:column;
}
.level-card:hover{transform:translateY(-8px);box-shadow:var(--e-4)}
.level-card-header{
  padding:var(--s-8) var(--s-6) var(--s-6);
  text-align:center;color:#fff;position:relative;overflow:hidden;
}
.level-card-header::after{
  content:"";position:absolute;inset:auto -20% -60% -20%;height:140%;
  background:radial-gradient(60% 100% at 50% 0%, rgba(255,255,255,.18), transparent 70%);
  pointer-events:none;
}
.level-card:nth-child(1) .level-card-header{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-400))}
.level-card:nth-child(2) .level-card-header{background:linear-gradient(135deg,var(--c-blue),var(--c-blue-400))}
.level-card:nth-child(3) .level-card-header{background:linear-gradient(135deg,var(--c-accent),var(--c-yellow))}
.level-card-header .level-icon{
  width:70px;height:70px;margin:0 auto var(--s-3);
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);
  border-radius:20px;backdrop-filter:blur(6px);
}
.level-card-header .level-icon svg{width:36px;height:36px;stroke-width:1.6}
.level-card-header h3{font-size:1.4rem;color:#fff}
.level-card-body{padding:var(--s-6);flex:1;display:flex;flex-direction:column}
.level-card-body p{color:var(--c-text-muted);font-size:.95rem;margin-bottom:var(--s-4)}
.level-card-body ul{display:flex;flex-direction:column;gap:.55rem;margin-top:auto}
.level-card-body ul li{
  display:flex;align-items:center;gap:.6rem;
  font-size:.92rem;color:var(--c-text);
}
.level-card-body ul li::before{
  content:"";width:18px;height:18px;border-radius:50%;flex-shrink:0;
  background:var(--c-primary-50) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f6f3a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/12px no-repeat;
}
.level-card:nth-child(2) .level-card-body ul li::before{background:var(--c-blue-50) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231565c0' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/12px no-repeat}
.level-card:nth-child(3) .level-card-body ul li::before{background:var(--c-accent-50) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e65100' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/12px no-repeat}

/* Level age badge */
.level-age{
  display:inline-block;
  background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);
  padding:.25rem .75rem;border-radius:var(--r-pill);
  font-family:'Nunito',sans-serif;font-size:.72rem;font-weight:800;
  letter-spacing:.08em;text-transform:uppercase;color:#fff;
  margin-bottom:var(--s-3);backdrop-filter:blur(4px);
}

/* Level CTA button */
.btn-level{
  display:inline-flex;align-items:center;gap:.4rem;
  margin-top:var(--s-5);padding:.7rem 1.3rem;
  border-radius:var(--r-pill);
  font-weight:800;font-size:.88rem;
  color:var(--c-primary);background:var(--c-primary-50);
  border:1.5px solid rgba(31,111,58,.15);
  transition:background var(--t-fast), color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast), border-color var(--t-fast);
  align-self:flex-start;
}
.btn-level i,.btn-level svg{width:16px;height:16px;transition:transform var(--t-fast)}
.btn-level:hover{
  background:var(--c-primary);color:#fff;border-color:var(--c-primary);
  transform:translateY(-2px);box-shadow:0 6px 16px rgba(31,111,58,.25);
}
.btn-level:hover i,.btn-level:hover svg{transform:translateX(3px)}
.level-card:nth-child(2) .btn-level{color:var(--c-blue);background:var(--c-blue-50);border-color:rgba(21,101,192,.15)}
.level-card:nth-child(2) .btn-level:hover{background:var(--c-blue);color:#fff;border-color:var(--c-blue);box-shadow:0 6px 16px rgba(21,101,192,.25)}
.level-card:nth-child(3) .btn-level{color:var(--c-accent);background:var(--c-accent-50);border-color:rgba(230,81,0,.15)}
.level-card:nth-child(3) .btn-level:hover{background:var(--c-accent);color:#fff;border-color:var(--c-accent);box-shadow:0 6px 16px rgba(230,81,0,.25)}

/* ── 7b. PROCESS ── */
#proceso{background:var(--c-surface-2);position:relative;overflow:hidden}
.process-grid-wrap{position:relative;max-width:960px;margin:0 auto}
.process-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-6);
  position:relative;z-index:2;
}
.process-line{
  position:absolute;top:72px;left:10%;right:10%;height:2px;z-index:1;
  background:linear-gradient(90deg,var(--c-primary),var(--c-blue),var(--c-accent),var(--c-yellow));
  border-radius:2px;
  opacity:.3;
}
.process-step{
  text-align:center;position:relative;
  background:#fff;border-radius:var(--r-xl);
  padding:var(--s-8) var(--s-4) var(--s-6);
  box-shadow:var(--e-1);border:1px solid var(--c-border);
  transition:transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
}
.process-step:hover{transform:translateY(-6px);box-shadow:var(--e-3);border-color:transparent}
.process-number{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  width:30px;height:30px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'Fredoka One',cursive;font-size:.85rem;color:#fff;
  box-shadow:0 4px 12px rgba(31,111,58,.3);
}
.process-step:nth-child(1) .process-number{background:var(--c-primary)}
.process-step:nth-child(2) .process-number{background:var(--c-blue)}
.process-step:nth-child(3) .process-number{background:var(--c-accent)}
.process-step:nth-child(4) .process-number{background:var(--c-yellow);color:var(--c-ink-2)}
.process-icon{
  width:64px;height:64px;border-radius:18px;
  display:inline-flex;align-items:center;justify-content:center;
  margin-bottom:var(--s-4);
  transition:transform var(--t-base);
}
.process-step:hover .process-icon{transform:scale(1.08)}
.process-icon svg{width:28px;height:28px;stroke-width:1.8}
.process-step:nth-child(1) .process-icon{background:var(--c-primary-50);color:var(--c-primary)}
.process-step:nth-child(2) .process-icon{background:var(--c-blue-50);color:var(--c-blue)}
.process-step:nth-child(3) .process-icon{background:var(--c-accent-50);color:var(--c-accent)}
.process-step:nth-child(4) .process-icon{background:rgba(249,168,37,.12);color:var(--c-yellow)}
.process-step h3{margin-bottom:var(--s-2);font-size:1.08rem;color:var(--c-ink-2)}
.process-step p{color:var(--c-text-muted);font-size:.88rem;line-height:1.55}
.process-step:nth-child(1):hover{border-color:rgba(31,111,58,.3)}
.process-step:nth-child(2):hover{border-color:rgba(21,101,192,.3)}
.process-step:nth-child(3):hover{border-color:rgba(230,81,0,.3)}
.process-step:nth-child(4):hover{border-color:rgba(249,168,37,.3)}

/* ── 8. GALLERY ── */
#galeria{background:var(--c-surface-2)}
.gallery-filters{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-bottom:var(--s-8)}
.filter-btn{
  padding:.55rem 1.25rem;border-radius:var(--r-pill);
  border:1.5px solid var(--c-border-strong);background:#fff;
  color:var(--c-text);font-family:inherit;font-weight:700;font-size:.9rem;
  transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast), transform var(--t-fast);
}
.filter-btn:hover{border-color:var(--c-primary);color:var(--c-primary);transform:translateY(-1px)}
.filter-btn.active{background:var(--c-primary);color:#fff;border-color:var(--c-primary);box-shadow:0 6px 14px rgba(31,111,58,.25)}

.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--s-3)}
.gallery-item{
  display:block;width:100%;padding:0;text-align:left;
  position:relative;border-radius:var(--r-lg);overflow:hidden;cursor:pointer;
  aspect-ratio:4/3;box-shadow:var(--e-1);
  transition:transform var(--t-base), box-shadow var(--t-base);
}
.gallery-item:hover{transform:translateY(-3px);box-shadow:var(--e-3)}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}
.gallery-item:hover img{transform:scale(1.08)}
.gallery-item .gallery-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(19,26,23,.85) 0%, rgba(19,26,23,.25) 50%, transparent 80%);
  opacity:0;transition:opacity var(--t-base);
  display:flex;align-items:flex-end;padding:var(--s-5);
}
.gallery-item:hover .gallery-overlay{opacity:1}
.gallery-overlay span{color:#fff;font-weight:800;font-size:.95rem;text-shadow:0 2px 8px rgba(0,0,0,.4)}
.gallery-item{cursor:zoom-in;transition:transform var(--t-base), box-shadow var(--t-base), opacity .35s var(--ease), scale .35s var(--ease)}
.gallery-item.hidden{opacity:0;scale:.92;pointer-events:none;position:absolute;visibility:hidden}

/* ── 9. NEWS ── */
#noticias{background:var(--c-surface)}
.news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--s-6)}
.news-card{
  background:#fff;border-radius:var(--r-xl);overflow:hidden;
  box-shadow:var(--e-1);border:1px solid var(--c-border);
  transition:transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
  display:flex;flex-direction:column;
}
.news-card:hover{transform:translateY(-6px);box-shadow:var(--e-3)}
.news-card:nth-child(1):hover{border-color:rgba(31,111,58,.4)}
.news-card:nth-child(2):hover{border-color:rgba(21,101,192,.4)}
.news-card:nth-child(3):hover{border-color:rgba(230,81,0,.4)}
.news-card-img{height:210px;overflow:hidden;background:var(--c-surface-3);position:relative}
.news-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out)}
.news-card:hover .news-card-img img{transform:scale(1.06)}
.news-card-body{padding:var(--s-6);display:flex;flex-direction:column;flex:1}
.news-date{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.78rem;font-weight:800;letter-spacing:.04em;
  color:var(--c-primary);background:var(--c-primary-50);
  padding:.35rem .8rem;border-radius:var(--r-pill);
  margin-bottom:.85rem;align-self:flex-start;
}
.news-card:nth-child(2) .news-date{color:var(--c-blue);background:var(--c-blue-50)}
.news-card:nth-child(3) .news-date{color:var(--c-accent);background:var(--c-accent-50)}
.news-category{
  position:absolute;top:var(--s-3);left:var(--s-3);z-index:2;
  padding:.3rem .75rem;border-radius:var(--r-pill);
  font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:#fff;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.cat-admisiones{background:rgba(31,111,58,.85)}
.cat-academico{background:rgba(21,101,192,.85)}
.cat-reconocimiento{background:rgba(230,81,0,.85)}
.news-card-body h3{margin-bottom:var(--s-2);color:var(--c-ink-2);font-size:1.18rem;line-height:1.3}
.news-card-body p{color:var(--c-text-muted);font-size:.93rem}
.news-link{
  display:inline-flex;align-items:center;gap:.35rem;
  margin-top:var(--s-4);font-weight:800;font-size:.88rem;
  color:var(--c-primary);transition:gap var(--t-fast), color var(--t-fast);
}
.news-link i,.news-link svg{width:16px;height:16px;transition:transform var(--t-fast)}
.news-link:hover{color:var(--c-accent)}
.news-link:hover i,.news-link:hover svg{transform:translateX(4px)}
.news-card:nth-child(2) .news-link{color:var(--c-blue)}
.news-card:nth-child(2) .news-link:hover{color:var(--c-accent)}
.news-card:nth-child(3) .news-link{color:var(--c-accent)}
.news-card:nth-child(3) .news-link:hover{color:var(--c-primary)}

/* ── 10. CONTACT ── */
#contacto{background:var(--c-surface-2)}
.contact-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:var(--s-8)}
.contact-form{
  background:#fff;border-radius:var(--r-xl);padding:var(--s-8);
  box-shadow:var(--e-2);border:1px solid var(--c-border);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}
.form-group{margin-bottom:var(--s-4);position:relative}
.form-group label{
  display:block;font-weight:700;margin-bottom:.4rem;
  font-size:.85rem;color:var(--c-ink-2);letter-spacing:.01em;
}
.form-group input,
.form-group select,
.form-group textarea{
  width:100%;padding:.85rem 1rem;
  border:1.5px solid var(--c-border-strong);border-radius:12px;
  font-family:inherit;font-size:.95rem;color:var(--c-text);background:#fff;
  transition:border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);
}
.form-group input::placeholder,
.form-group textarea::placeholder{color:var(--c-text-soft)}
.form-group input:hover,
.form-group select:hover,
.form-group textarea:hover{border-color:var(--c-primary-400)}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 4px rgba(46,125,50,.15);background:#fdfffd}
.form-group select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6a64' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 1rem center;background-size:16px;padding-right:2.6rem}
.form-group textarea{resize:vertical;min-height:130px}
.form-group input.error,
.form-group select.error,
.form-group textarea.error{border-color:var(--c-rose);box-shadow:0 0 0 4px rgba(198,40,40,.10)}
.form-group .error-msg{
  color:var(--c-rose);font-size:.78rem;margin-top:.35rem;
  display:none;font-weight:700;
}
.ohnohoney{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden}
.form-message{
  padding:1rem 1.1rem;border-radius:12px;margin-top:var(--s-4);
  font-weight:700;font-size:.92rem;display:none;
  animation:fadeInUp .4s var(--ease-out);
}
.form-header{margin-bottom:var(--s-6);padding-bottom:var(--s-5);border-bottom:1px solid var(--c-border)}
.form-header h3{display:flex;align-items:center;gap:.5rem;font-size:1.2rem;color:var(--c-primary);margin-bottom:.3rem}
.form-header h3 i,.form-header h3 svg{width:22px;height:22px}
.form-header p{color:var(--c-text-muted);font-size:.9rem}
.form-message.success{background:var(--c-primary-50);color:var(--c-primary);display:block;border:1px solid rgba(31,111,58,.18)}
.form-message.error-message{background:rgba(198,40,40,.08);color:var(--c-rose);display:block;border:1px solid rgba(198,40,40,.18)}
.btn-submit{width:100%;font-size:1.02rem;padding:1rem 1.5rem;gap:.5rem}
.btn-submit i,.btn-submit svg{width:18px;height:18px;transition:transform var(--t-fast)}
.btn-submit:hover i,.btn-submit:hover svg{transform:translateX(3px)}

/* Contact info */
.contact-info{display:flex;flex-direction:column;gap:var(--s-5)}
.contact-map{
  border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--e-2);border:1px solid var(--c-border);
  flex:1;min-height:260px;
}
.contact-map iframe{width:100%;height:100%;border:0;min-height:260px;display:block}
.contact-details{display:flex;flex-direction:column;gap:.85rem}
.contact-item{
  display:flex;align-items:flex-start;gap:var(--s-4);
  padding:var(--s-4) var(--s-5);background:#fff;border-radius:var(--r-md);
  box-shadow:var(--e-1);border:1px solid var(--c-border);
  transition:border-color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
}
.contact-item:hover{transform:translateY(-2px);box-shadow:var(--e-2)}
.contact-item:nth-child(1):hover{border-color:rgba(31,111,58,.35)}
.contact-item:nth-child(2):hover{border-color:rgba(21,101,192,.35)}
.contact-item:nth-child(3):hover{border-color:rgba(230,81,0,.35)}
.contact-item:nth-child(4):hover{border-color:rgba(37,211,102,.35)}
.contact-item .ci-icon{
  width:46px;height:46px;border-radius:14px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.contact-item .ci-icon svg{width:22px;height:22px;stroke-width:1.8}
.contact-item:nth-child(1) .ci-icon{background:var(--c-primary-50);color:var(--c-primary)}
.contact-item:nth-child(2) .ci-icon{background:var(--c-blue-50);color:var(--c-blue)}
.contact-item:nth-child(3) .ci-icon{background:var(--c-accent-50);color:var(--c-accent)}
.contact-item:nth-child(4) .ci-icon{background:rgba(37,211,102,.12);color:var(--c-wa)}
.contact-item h4{font-family:inherit;font-size:.85rem;font-weight:800;color:var(--c-ink-2);margin-bottom:.15rem}
.contact-item p,.contact-item a{font-size:.9rem;color:var(--c-text-muted);line-height:1.4}
.contact-item a{transition:color var(--t-fast);font-weight:700}
.contact-item a:hover{color:var(--c-primary)}

/* ── 11. FOOTER ── */
.footer{
  background:linear-gradient(180deg,var(--c-ink-2),var(--c-ink));
  color:rgba(255,255,255,.78);padding:var(--s-16) var(--s-5) var(--s-6);
  position:relative;
}
.footer::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg, var(--c-primary), var(--c-primary-400));
}
.footer-grid{
  display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:var(--s-8);
  margin-bottom:var(--s-10);max-width:var(--container);margin-left:auto;margin-right:auto;
}
.footer-col h4{
  font-family:'Fredoka One',cursive;font-weight:400;
  color:#fff;margin-bottom:var(--s-4);font-size:1.05rem;letter-spacing:0;
}
.footer-col p{font-size:.9rem;line-height:1.7;color:rgba(255,255,255,.72)}
.footer-col p i{color:var(--c-primary-400);margin-right:.4rem}
.footer-col .footer-logo{display:flex;align-items:center;gap:.6rem;margin-bottom:var(--s-4)}
.footer-col .footer-logo img{height:46px;border-radius:6px;background:#fff;padding:3px}
.footer-col .footer-logo span{font-family:'Fredoka One',cursive;font-size:1.25rem;color:#fff}
.footer-links{display:flex;flex-direction:column;gap:.55rem}
.footer-links a{
  font-size:.9rem;color:rgba(255,255,255,.72);
  transition:color var(--t-fast), padding var(--t-fast);
  display:inline-flex;align-items:center;gap:.4rem;
}
.footer-links a::before{content:"›";color:var(--c-primary-400);opacity:0;transform:translateX(-6px);transition:opacity var(--t-fast), transform var(--t-fast)}
.footer-links a:hover{color:#fff}
.footer-links a:hover::before{opacity:1;transform:translateX(0)}
.footer-social{display:flex;gap:.6rem;margin-top:.5rem}
.footer-social a{
  width:42px;height:42px;border-radius:12px;
  background:rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
  transition:background var(--t-fast), transform var(--t-fast), color var(--t-fast);
  color:#fff;
}
.footer-social a.social-ig:hover{background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);transform:translateY(-3px)}
.footer-social a.social-fb:hover{background:#1877f2;transform:translateY(-3px)}
.footer-social a.social-wa:hover{background:var(--c-wa);transform:translateY(-3px)}
.footer-social svg{width:20px;height:20px}
.footer-bottom{
  text-align:center;padding-top:var(--s-5);
  border-top:1px solid rgba(255,255,255,.10);
  font-size:.82rem;color:rgba(255,255,255,.55);
  max-width:var(--container);margin:0 auto;
}

/* ── 11b. PRE-FOOTER CTA ── */
.pre-footer-cta{background:var(--c-surface);padding:var(--s-12) var(--s-5)}
.cta-band{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-8);
  background:linear-gradient(135deg,var(--c-ink-2),#1a3a5c);
  border-radius:var(--r-xl);padding:var(--s-10) var(--s-12);
  color:#fff;position:relative;overflow:hidden;
}
.cta-band::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 90% 50%,rgba(31,111,58,.3),transparent 60%);
  pointer-events:none;
}
.cta-band-text{position:relative;z-index:1;max-width:520px}
.cta-band-text h2{color:#fff;font-size:var(--fs-2xl);margin-bottom:var(--s-2)}
.cta-band-text p{color:rgba(255,255,255,.8);font-size:1rem}
.cta-band-actions{position:relative;z-index:1;display:flex;gap:var(--s-3);flex-shrink:0}
.btn-wa{
  display:inline-flex;align-items:center;gap:.5rem;
  background:var(--c-wa);color:#fff;
  padding:.95rem 1.85rem;border-radius:var(--r-pill);
  font-weight:800;font-size:1rem;
  box-shadow:0 8px 18px rgba(37,211,102,.35);
  transition:transform var(--t-fast), box-shadow var(--t-base), background var(--t-fast);
}
.btn-wa:hover{background:#20bd5a;transform:translateY(-2px);box-shadow:0 12px 24px rgba(37,211,102,.45)}
.btn-wa i,.btn-wa svg{width:18px;height:18px}

/* ── 12. WHATSAPP FLOAT ── */
.whatsapp-float{
  position:fixed;bottom:22px;right:22px;z-index:9999;
  width:60px;height:60px;border-radius:50%;
  background:var(--c-wa);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 22px rgba(37,211,102,.45);
  transition:transform var(--t-base), box-shadow var(--t-base);
}
.whatsapp-float:hover{transform:scale(1.08);box-shadow:0 12px 30px rgba(37,211,102,.55)}
.whatsapp-float svg{width:30px;height:30px;fill:#fff}
.whatsapp-float::before{
  content:'¡Escríbenos!';
  position:absolute;right:74px;
  background:var(--c-ink-2);color:#fff;
  padding:.5rem .9rem;border-radius:10px;
  font-size:.78rem;font-weight:800;white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity var(--t-fast), transform var(--t-fast);
  transform:translateX(8px);
  box-shadow:var(--e-2);
}
.whatsapp-float:hover::before{opacity:1;transform:translateX(0)}
.whatsapp-float .pulse-ring{
  position:absolute;inset:0;border-radius:50%;
  border:3px solid var(--c-wa);
  animation:waPulse 2s ease infinite;
}
@keyframes waPulse{
  0%{transform:scale(1);opacity:.65}
  100%{transform:scale(1.6);opacity:0}
}

/* ── 13. BACK TO TOP ── */
.back-to-top{
  position:fixed;bottom:22px;right:94px;z-index:9998;
  width:46px;height:46px;border-radius:50%;
  background:#fff;color:var(--c-primary);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--e-3);border:1px solid var(--c-border);
  transition:transform var(--t-base), opacity var(--t-base), background var(--t-fast), color var(--t-fast);
  opacity:0;visibility:hidden;transform:translateY(12px);
  font-size:1.05rem;font-weight:800;
}
.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:var(--c-primary);color:#fff;transform:translateY(-3px)}

/* ── 14. LIGHTBOX ── */
.lightbox{
  position:fixed;inset:0;z-index:10000;
  background:rgba(10,12,11,.94);backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity var(--t-base), visibility var(--t-base);
}
.lightbox.active{opacity:1;visibility:visible}
.lightbox img{max-width:90%;max-height:85vh;border-radius:10px;box-shadow:0 30px 60px rgba(0,0,0,.5)}
.lightbox-close{
  position:absolute;top:1.25rem;right:1.25rem;
  width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.10);color:#fff;
  border:1px solid rgba(255,255,255,.18);
  font-size:1.4rem;display:flex;align-items:center;justify-content:center;
  transition:background var(--t-fast), transform var(--t-fast);
}
.lightbox-close:hover{background:var(--c-rose);border-color:transparent;transform:rotate(90deg)}
.lightbox-prev,.lightbox-next{
  position:absolute;top:50%;transform:translateY(-50%);
  width:50px;height:50px;border-radius:50%;
  background:rgba(255,255,255,.10);color:#fff;
  border:1px solid rgba(255,255,255,.18);
  font-size:1.4rem;display:flex;align-items:center;justify-content:center;
  transition:background var(--t-fast), transform var(--t-fast);
}
.lightbox-prev{left:1.25rem}
.lightbox-next{right:1.25rem}
.lightbox-prev:hover{background:var(--c-primary);border-color:transparent;transform:translateY(-50%) translateX(-3px)}
.lightbox-next:hover{background:var(--c-primary);border-color:transparent;transform:translateY(-50%) translateX(3px)}
.lightbox-counter{
  position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);
  background:rgba(0,0,0,.5);backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  color:#fff;font-size:.85rem;font-weight:700;
  padding:.4rem 1rem;border-radius:var(--r-pill);
  border:1px solid rgba(255,255,255,.15);
}

/* ── 15. ANIMATIONS ── */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .65s var(--ease-out), transform .65s var(--ease-out)}
.reveal.active{opacity:1;transform:translateY(0)}

@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}

.hero-content h1{animation:fadeInUp .85s var(--ease-out) .2s both}
.hero-content .hero-sub{animation:fadeInUp .85s var(--ease-out) .4s both}
.hero-buttons{animation:fadeInUp .85s var(--ease-out) .6s both}
.hero-trust{animation:fadeInUp .85s var(--ease-out) .8s both}

/* ── 16. ACCESSIBILITY ── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto}
  .particle,.pulse-ring{display:none}
}

@media(prefers-contrast:more){
  :root{--c-text-muted:#3b4945;--c-border:#cfd6d3;--c-border-strong:#aab6b1}
  .nav-links a{color:#fff}
  .navbar.scrolled .nav-links a{color:var(--c-ink-2)}
}

/* ── 17. ABOUT CONNECTOR (pencil interactive) ── */
.about-grid-wrap{position:relative}

/* ── LEVELS SHINE EFFECT ── */
.levels-grid-wrap{position:relative}
.level-card::after{
  content:"";position:absolute;top:0;left:-75%;
  width:50%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-20deg);
  opacity:0;pointer-events:none;
  transition:none;
}
.level-card.reveal.active::after{
  animation:cardShine .9s var(--ease-out) forwards;
}
.level-card:nth-child(2).reveal.active::after{animation-delay:.18s}
.level-card:nth-child(3).reveal.active::after{animation-delay:.36s}
@keyframes cardShine{
  0%{left:-75%;opacity:0}
  20%{opacity:1}
  100%{left:125%;opacity:0}
}
.grid-path-svg{
  position:absolute;inset:0;width:100%;height:100%;
  pointer-events:none;overflow:visible;z-index:2;
}
.grid-pencil{
  position:absolute;top:0;left:0;
  pointer-events:none;opacity:0;z-index:3;
  transition:opacity .35s ease;
}
.grid-pencil svg{
  display:block;
  transform:rotate(-25deg);
  transform-origin:top left;
  color:var(--c-primary);
  filter:drop-shadow(1px 2px 4px rgba(0,0,0,.22));
  transition:color .25s ease;
}
.grid-pencil.color-blue svg{color:var(--c-blue)}
.grid-pencil.color-orange svg{color:var(--c-accent)}
/* Card glow on pencil arrive */
.about-card.pencil-hit{transform:translateY(-8px)!important;box-shadow:var(--e-3)!important}
.about-card:nth-child(1).pencil-hit .icon{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-400))!important;color:#fff!important}
.about-card:nth-child(2).pencil-hit .icon{background:linear-gradient(135deg,var(--c-blue),var(--c-blue-400))!important;color:#fff!important}
.about-card:nth-child(3).pencil-hit .icon{background:linear-gradient(135deg,var(--c-accent),var(--c-accent-400))!important;color:#fff!important}
@media(max-width:1024px){.grid-path-svg,.grid-pencil{display:none}}
