/* Springboard — Novum Auctus | static site styles
   Palette pulled from the original Google Site (dark sections + green accents). */
:root{
  --green:#8cc63f;          /* bright accent (intro lines, links, highlights) */
  --green-deep:#1f5a4c;     /* logo deep teal-green */
  --dark:#1a1a1a;           /* primary dark background */
  --dark-2:#232323;         /* slightly lighter band */
  --text:#ececec;
  --text-dim:#b9b9b9;
  --maxw:1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Poppins",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  background:var(--dark);
  color:var(--text);
  line-height:1.6;
}
img{max-width:100%;display:block}
a{color:var(--green);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- Header / nav ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding:12px 24px;
  background:rgba(20,20,20,.92);
  backdrop-filter:saturate(140%) blur(6px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.brand{display:flex;align-items:center;gap:12px;color:#fff}
.brand:hover{text-decoration:none}
.brand-logo{height:34px;width:auto}
.brand-name{font-weight:300;font-size:1.4rem;letter-spacing:.5px}
.site-nav{display:flex;flex-wrap:wrap;gap:6px}
.site-nav a{
  color:var(--text-dim);font-size:.95rem;font-weight:400;
  padding:8px 12px;border-radius:6px;
}
.site-nav a:hover{color:#fff;background:rgba(255,255,255,.06);text-decoration:none}
.site-nav a.active{color:var(--green)}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:72vh;
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:linear-gradient(160deg,#244 0%,#122 100%);
  background-size:cover;background-position:center;
}
.hero::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.32)}
.hero-inner{position:relative;z-index:2;padding:24px}
.hero-logo{height:230px;width:auto;margin:0 auto 4px;filter:drop-shadow(0 4px 18px rgba(0,0,0,.5))}
.hero h1{
  margin:0;color:#fff;font-weight:300;
  font-size:clamp(2.6rem,8vw,5.6rem);letter-spacing:.06em;
  text-shadow:0 2px 22px rgba(0,0,0,.55);
}
.hero .tag{
  margin:.2em 0 0;color:#cfe8b8;font-weight:300;letter-spacing:.5em;
  font-size:clamp(1rem,2.4vw,1.7rem);text-transform:uppercase;
}

/* ---------- Bands / sections ---------- */
.band{padding:64px 0;position:relative;background:var(--dark)}
.band--alt{background:var(--dark-2)}
.band--intro{padding:40px 0;background:var(--dark)}
.band--intro p{
  max-width:980px;margin:0 auto;text-align:center;
  color:var(--green);font-weight:400;
  font-size:clamp(1.15rem,2.6vw,1.7rem);line-height:1.45;
}
/* section that sits over a full-bleed background photo */
.band--photo{background-size:cover;background-position:center}
.band--photo::before{content:"";position:absolute;inset:0;background:rgba(15,15,15,.66)}
.band--photo .wrap{position:relative;z-index:2}

.band h2{
  font-weight:500;font-size:clamp(1.4rem,3vw,2rem);
  margin:0 0 .6em;color:#fff;
}
.band h3{color:var(--green);font-weight:500;margin:2em 0 .4em;font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em}
.band p{margin:0 0 1em;color:var(--text)}
.lead{font-size:1.08rem;color:#fff}

/* two-column image + text */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.two-col.reverse .col-img{order:2}
.col-img img{width:100%;height:100%;max-height:440px;object-fit:cover;border-radius:10px;background:#0d0d0d}

/* bullet lists with bold lead-ins */
.feat{list-style:none;margin:0;padding:0}
.feat li{position:relative;padding:0 0 1.1em 1.4em;color:var(--text)}
.feat li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:2px;background:var(--green)}
.feat strong{color:#fff}

/* ---------- Application CTA ---------- */
.cta{text-align:center;padding:72px 0;background:var(--dark)}
.cta h2{color:var(--green);font-weight:400;font-size:clamp(2rem,5vw,3.2rem);margin:0 0 1.2rem}
.btn{
  display:inline-block;background:var(--green);color:#10250a;
  font-weight:600;padding:14px 34px;border-radius:40px;font-size:1.05rem;
}
.btn:hover{background:#9ed957;text-decoration:none}

/* ---------- Photo gallery ---------- */
.gallery{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:10px;padding:40px 0;
}
.gallery a{display:block;overflow:hidden;border-radius:8px;background:#111}
.gallery img{width:100%;height:230px;object-fit:cover;transition:transform .35s ease}
.gallery img:hover{transform:scale(1.05)}

.gallery a{cursor:zoom-in}

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed;inset:0;z-index:1000;display:none;
  align-items:center;justify-content:center;
  background:rgba(0,0,0,.93);
  -webkit-user-select:none;user-select:none;
}
.lightbox.open{display:flex}
/* loading spinner (sits behind the image; covered once it loads) */
.lightbox::before{
  content:"";position:absolute;width:46px;height:46px;
  border:3px solid rgba(255,255,255,.22);border-top-color:var(--green);
  border-radius:50%;animation:lb-spin .8s linear infinite;
}
@keyframes lb-spin{to{transform:rotate(360deg)}}
.lb-stage{
  margin:0;position:relative;z-index:2;
  max-width:92vw;max-height:86vh;display:flex;align-items:center;justify-content:center;
}
.lb-stage img{
  max-width:92vw;max-height:86vh;width:auto;height:auto;object-fit:contain;
  border-radius:6px;box-shadow:0 12px 48px rgba(0,0,0,.6);
  opacity:0;transition:opacity .25s ease;
}
.lb-stage img.loaded{opacity:1}
.lb-close,.lb-prev,.lb-next{
  position:absolute;z-index:3;background:rgba(0,0,0,.45);color:#fff;border:none;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .15s ease;
}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:var(--green);color:#10250a}
.lb-close{top:18px;right:20px;width:46px;height:46px;border-radius:50%;font-size:28px;line-height:1}
.lb-prev,.lb-next{top:50%;transform:translateY(-50%);width:54px;height:72px;border-radius:8px;font-size:42px;line-height:1}
.lb-prev{left:18px}
.lb-next{right:18px}
.lb-counter{
  position:absolute;z-index:3;bottom:20px;left:50%;transform:translateX(-50%);
  color:#fff;background:rgba(0,0,0,.45);padding:6px 14px;border-radius:20px;font-size:.9rem;
}
@media (max-width:820px){
  .lb-prev,.lb-next{width:42px;height:60px;font-size:32px}
  .lb-close{top:12px;right:12px}
}

/* ---------- Footer ---------- */
.site-footer{
  text-align:center;padding:48px 24px;background:#111;color:var(--text-dim);
  border-top:1px solid rgba(255,255,255,.06);
}
.site-footer img{height:54px;margin:0 auto 12px}
.site-footer .muted{font-size:.85rem;color:#777}

/* hero that is itself a finished branded image — no dark text overlay */
.hero--image::after{background:rgba(0,0,0,.12)}

/* ---------- Meet our Team ---------- */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:8px}
.team-card{text-align:center}
.team-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:10px;background:#0d0d0d}
.team-card .name{color:#fff;font-weight:500;margin:.7em 0 .1em;font-size:1.05rem}
.team-card .role{color:var(--green);font-size:.9rem}
.team-card .role small{display:block;color:var(--text-dim)}

/* ---------- How to Enroll ---------- */
.steps{counter-reset:step;list-style:none;margin:0;padding:0}
.steps>li{position:relative;padding:0 0 1.4em 52px;color:var(--text)}
.steps>li::before{
  counter-increment:step;content:counter(step);
  position:absolute;left:0;top:0;width:34px;height:34px;border-radius:50%;
  background:var(--green);color:#10250a;font-weight:600;
  display:flex;align-items:center;justify-content:center;
}
.steps .label{color:#fff;font-weight:500;display:block;margin-bottom:.15em}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 40px;margin-top:10px}
.contact-grid .label{color:var(--green);font-weight:500;display:block;margin-bottom:.1em}
.contact-grid a{word-break:break-word}

/* ---------- Responsive ---------- */
@media (max-width:820px){
  .team{grid-template-columns:repeat(2,1fr)}
  .contact-grid{grid-template-columns:1fr}
}
/* ---------- Responsive (base) ---------- */
@media (max-width:820px){
  .site-header{flex-direction:column;gap:8px;align-items:flex-start}
  .site-nav{width:100%}
  .two-col{grid-template-columns:1fr;gap:22px}
  .two-col.reverse .col-img{order:0}
  .hero-logo{height:150px}
}
