:root{
  --forest:#1F4D3D;
  --forest-dark:#153529;
  --parchment:#EDE4D2;
  --parchment-light:#F6F1E6;
  --sky:#3E7E92;
  --amber:#E8A33D;
  --berry:#C4423A;
  --ink:#2B2118;
  --ink-soft:#5B4C3E;
  --line: rgba(43,33,24,0.18);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Work Sans', sans-serif;
  background:var(--parchment);
  color:var(--ink);
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:'Baloo 2', sans-serif; font-weight:700; color:var(--forest-dark);}
.mono{font-family:'JetBrains Mono', monospace;}
a{color:inherit;}
img{max-width:100%; display:block;}
button{font-family:inherit;}

body::before{
  content:"";
  position:fixed; inset:0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(31,77,61,0.04) 0, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(196,66,58,0.04) 0, transparent 40%);
  pointer-events:none;
  z-index:0;
}

/* ===== NAV ===== */
header{
  position:sticky; top:0; z-index:100;
  background:var(--forest);
  border-bottom:3px solid var(--forest-dark);
}
.nav-wrap{
  max-width:1180px; margin:0 auto; padding:14px 28px;
  display:flex; align-items:center; justify-content:space-between;
  gap:20px;
}
.brand{display:flex; align-items:center; gap:12px;}
.brand-badge{
  width:42px; height:42px; border-radius:50%;
  background:var(--amber);
  display:flex; align-items:center; justify-content:center;
  border:2px solid var(--parchment-light);
  font-family:'Baloo 2'; font-weight:800; color:var(--forest-dark); font-size:18px;
  flex-shrink:0;
}
.brand-text{color:var(--parchment-light);}
.brand-text .t1{font-family:'Baloo 2'; font-weight:700; font-size:1.05rem; line-height:1.1;}
.brand-text .t2{font-size:0.72rem; opacity:0.75; letter-spacing:0.03em;}
nav{display:flex; align-items:center; gap:6px;}
nav ul{list-style:none; display:flex; gap:6px; flex-wrap:wrap;}
nav a{
  display:inline-block; padding:8px 14px; border-radius:20px;
  color:var(--parchment-light); text-decoration:none; font-size:0.92rem; font-weight:500;
  transition:background .2s;
}
nav a:hover{background:rgba(255,255,255,0.12);}
.nav-toggle{display:none; background:none; border:none; color:var(--parchment-light); font-size:1.6rem; cursor:pointer;}

.lang-switch{
  display:flex; border:1.5px solid rgba(246,241,230,0.4); border-radius:20px; overflow:hidden;
  flex-shrink:0;
}
.lang-switch button{
  background:transparent; border:none; color:var(--parchment-light); padding:6px 12px;
  font-size:0.78rem; font-weight:600; cursor:pointer; letter-spacing:0.03em;
}
.lang-switch button.active{background:var(--amber); color:var(--forest-dark);}

@media (max-width:880px){
  nav{position:absolute; left:0; right:0; top:100%; background:var(--forest);
      flex-direction:column; align-items:stretch; padding:10px 20px 18px; gap:12px;
      border-bottom:3px solid var(--forest-dark); display:none;}
  nav.open{display:flex;}
  nav ul{flex-direction:column; gap:2px;}
  nav a{padding:10px 8px;}
  .nav-toggle{display:block;}
}

/* ===== TRAIL ===== */
#trail-svg{ position:absolute; left:50%; top:0; transform:translateX(-50%); width:6px; z-index:0; pointer-events:none; }
.trail-path{ stroke:var(--forest); stroke-width:4; fill:none; stroke-dasharray:2 16; stroke-linecap:round; opacity:0.35; }
@media (max-width:880px){ #trail-svg{display:none;} }

section{position:relative; z-index:1;}

/* ===== HERO ===== */
.hero{
  max-width:1180px; margin:0 auto; padding:76px 28px 90px;
  display:grid; grid-template-columns:1.15fr 0.85fr; gap:50px; align-items:center;
}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'JetBrains Mono'; font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--forest); background:rgba(31,77,61,0.08);
  padding:6px 14px; border-radius:20px; border:1px solid rgba(31,77,61,0.2);
  margin-bottom:22px;
}
.hero h1{ font-size:clamp(2.4rem, 5vw, 3.6rem); line-height:1.05; letter-spacing:-0.01em; margin-bottom:22px; }
.hero h1 span{color:var(--berry);}
.hero p.lead{font-size:1.12rem; color:var(--ink-soft); max-width:52ch; margin-bottom:32px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 26px; border-radius:10px; font-weight:600; text-decoration:none;
  font-size:0.98rem; border:2px solid transparent; cursor:pointer; transition:transform .15s, box-shadow .15s;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--berry); color:var(--parchment-light); box-shadow:0 4px 0 var(--forest-dark);}
.btn-secondary{background:transparent; border-color:var(--forest); color:var(--forest);}

.hero-compass{
  position:relative; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--sky), var(--forest) 70%);
  display:flex; align-items:center; justify-content:center;
  border:6px solid var(--parchment-light);
  box-shadow:0 12px 30px rgba(31,77,61,0.25);
}
.hero-compass svg{width:62%; height:62%;}
.hero-compass .n-label{ position:absolute; top:14px; left:50%; transform:translateX(-50%); font-family:'Baloo 2'; color:var(--amber); font-weight:800; font-size:1rem; }
@media (max-width:880px){
  .hero{grid-template-columns:1fr; padding-top:48px;}
  .hero-compass{max-width:260px; margin:0 auto;}
}
.stat-row{display:flex; gap:28px; margin-top:24px; flex-wrap:wrap;}
.stat{border-left:3px solid var(--amber); padding-left:14px;}
.stat b{display:block; font-family:'Baloo 2'; font-size:1.6rem; color:var(--forest-dark);}
.stat span{font-size:0.85rem; color:var(--ink-soft);}

/* ===== SECTION HEADERS ===== */
.section-inner{max-width:1180px; margin:0 auto; padding:80px 28px;}
.waypoint{display:flex; align-items:center; gap:14px; margin-bottom:14px;}
.waypoint .num{
  width:44px; height:44px; border-radius:50%; background:var(--forest);
  color:var(--parchment-light); display:flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono'; font-size:0.85rem; flex-shrink:0;
  border:3px solid var(--parchment);
  box-shadow:0 0 0 3px var(--forest);
}
.waypoint .coord{font-family:'JetBrains Mono'; font-size:0.75rem; color:var(--ink-soft); letter-spacing:0.05em;}
.section-inner h2{font-size:clamp(1.7rem,3.4vw,2.4rem); margin-bottom:6px;}
.section-sub{color:var(--ink-soft); max-width:60ch; margin-bottom:44px; font-size:1.02rem;}

.alt-bg{background:var(--parchment-light);}
.forest-bg{background:var(--forest); color:var(--parchment-light);}
.forest-bg h2, .forest-bg h3, .forest-bg .waypoint .num{color:var(--parchment-light);}
.forest-bg .waypoint .num{background:var(--amber); color:var(--forest-dark); box-shadow:0 0 0 3px var(--parchment-light);}
.forest-bg .section-sub{color:rgba(246,241,230,0.75);}

/* ===== ABOUT ===== */
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:36px;}
.about-grid p{margin-bottom:16px; color:var(--ink-soft);}
@media (max-width:780px){.about-grid{grid-template-columns:1fr;}}

/* ===== CLASSES ===== */
.classes-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.class-card{
  background:var(--parchment-light); border-radius:16px; padding:28px 22px;
  border:2px solid var(--line); text-align:center; position:relative;
  transition:transform .2s, box-shadow .2s;
}
.class-card:hover{transform:translateY(-6px); box-shadow:0 14px 26px rgba(31,77,61,0.15);}
.badge-icon{ width:76px; height:76px; border-radius:50%; margin:0 auto 18px; display:flex; align-items:center; justify-content:center; border:3px dashed var(--forest); }
.badge-icon svg{width:38px; height:38px;}
.class-card h3{font-size:1.15rem; margin-bottom:4px;}
.class-card .age{font-family:'JetBrains Mono'; font-size:0.78rem; color:var(--berry); margin-bottom:10px; display:block;}
.class-card p{font-size:0.9rem; color:var(--ink-soft);}
@media (max-width:920px){.classes-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.classes-grid{grid-template-columns:1fr;}}

/* ===== SPECIALTIES ===== */
.spec-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.spec-card{ background:var(--forest-dark); border-radius:12px; padding:22px; display:flex; gap:14px; align-items:flex-start; }
.spec-icon{width:40px; height:40px; flex-shrink:0; color:var(--amber);}
.spec-card h4{color:var(--parchment-light); font-size:1.02rem; margin-bottom:4px;}
.spec-card p{color:rgba(246,241,230,0.65); font-size:0.87rem;}
@media (max-width:880px){.spec-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.spec-grid{grid-template-columns:1fr;}}

/* ===== SCHEDULE ===== */
.schedule-card{ background:var(--parchment-light); border:2px solid var(--line); border-radius:16px; padding:36px; display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.info-line{display:flex; gap:14px; padding:14px 0; border-bottom:1px dashed var(--line);}
.info-line:last-child{border-bottom:none;}
.info-line svg{width:22px; height:22px; color:var(--berry); flex-shrink:0; margin-top:2px;}
.info-line b{display:block; font-family:'Baloo 2'; font-size:1rem;}
.info-line span{font-size:0.88rem; color:var(--ink-soft);}
@media (max-width:780px){.schedule-card{grid-template-columns:1fr;}}

/* ===== TEAM ===== */
.team-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.team-card{text-align:center;}
.team-photo{
  width:100%; aspect-ratio:1; border-radius:50%; background:linear-gradient(135deg,var(--sky),var(--forest));
  margin-bottom:14px; display:flex; align-items:center; justify-content:center;
  border:3px solid var(--parchment-light); box-shadow:0 0 0 2px var(--line);
  overflow:hidden;
}
.team-photo img{width:100%; height:100%; object-fit:cover;}
.team-photo svg{width:42%; height:42%; color:rgba(246,241,230,0.85);}
.team-card h4{font-size:1rem; margin-bottom:2px;}
.team-card span{font-size:0.82rem; color:var(--ink-soft); font-family:'JetBrains Mono';}
@media (max-width:920px){.team-grid{grid-template-columns:1fr 1fr;}}

/* ===== EVENTS ===== */
.events-list{display:flex; flex-direction:column; gap:0;}
.event-row{ display:grid; grid-template-columns:90px 1fr auto; gap:22px; align-items:center; padding:20px 0; border-bottom:1px solid var(--line); }
.event-date{ background:var(--forest); color:var(--parchment-light); border-radius:10px; text-align:center; padding:10px 4px; font-family:'Baloo 2'; }
.event-date .d{font-size:1.4rem; font-weight:700; line-height:1;}
.event-date .m{font-size:0.7rem; text-transform:uppercase; letter-spacing:0.05em;}
.event-row h4{font-size:1.02rem; margin-bottom:2px;}
.event-row p{font-size:0.85rem; color:var(--ink-soft);}
.event-tag{ font-family:'JetBrains Mono'; font-size:0.72rem; padding:5px 12px; border-radius:20px; background:rgba(62,126,146,0.12); color:var(--sky); white-space:nowrap; height:fit-content; }
.empty-note{color:var(--ink-soft); font-style:italic; padding:20px 0;}

/* ===== CONTACT ===== */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:50px;}
.contact-form{display:flex; flex-direction:column; gap:14px;}
.contact-form input, .contact-form textarea{
  padding:13px 16px; border-radius:10px; border:2px solid var(--line);
  background:var(--parchment-light); font-family:'Work Sans'; font-size:0.95rem; color:var(--ink);
}
.contact-form input:focus, .contact-form textarea:focus{outline:2px solid var(--sky); border-color:transparent;}
.contact-form label{font-size:0.82rem; font-weight:600; color:var(--forest-dark); margin-bottom:-8px;}
.contact-form textarea{resize:vertical; min-height:110px;}
.contact-info .info-line svg{color:var(--amber);}
.form-status{font-size:0.88rem; padding:10px 14px; border-radius:8px; display:none;}
.form-status.success{display:block; background:rgba(31,77,61,0.12); color:var(--forest-dark);}
.form-status.error{display:block; background:rgba(196,66,58,0.12); color:var(--berry);}
@media (max-width:780px){.contact-grid{grid-template-columns:1fr;}}

footer{ background:var(--forest-dark); color:rgba(246,241,230,0.6); text-align:center; padding:36px 20px; font-size:0.85rem; }
footer strong{color:var(--parchment-light);}
footer .admin-link{display:inline-block; margin-top:10px; font-size:0.75rem; opacity:0.5;}
footer .admin-link:hover{opacity:0.9;}

.skeleton{opacity:0.4;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}
