:root{
  --bg:#2b2005;
  --card:#3a2b08;
  --accent:#f5c542;
  --accent-bright:#ffe083;
  --line:#06C755;
  --text:#ffffff;
  --muted:#d9c8a0;
}

*{box-sizing:border-box}

body{
  background:linear-gradient(160deg,#2b2005 0%,#4a3408 35%,#6b4e0a 100%);
  background-attachment:fixed;
  color:var(--text);
  font-family:'Sarabun','Noto Sans Thai',sans-serif;
  margin:0;
  padding:0;
  line-height:1.6;
}

.topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:16px 24px;
  border-bottom:1px solid rgba(245,197,66,.6);
  flex-wrap:wrap;
  gap:12px;
}
.brand{font-weight:700;font-size:1.2rem}
.topbar nav a{
  color:var(--muted);
  text-decoration:none;
  margin-left:18px;
  font-size:.9rem;
}
.topbar nav a:hover{color:var(--text)}

section{padding:48px 20px;max-width:960px;margin:0 auto}

.hero{text-align:center}
.hero-media{width:100%;max-width:800px;border-radius:20px;display:block;margin:0 auto 24px}
.hero h1{font-size:2rem;margin:16px 0;text-shadow:0 0 20px rgba(245,197,66,.6);}
.hero .sub{color:var(--muted);max-width:640px;margin:0 auto 24px}
.hero-note{color:var(--muted);font-size:.85rem;margin-top:12px}

.btn{
  display:inline-block;
  background:var(--line);
  color:#fff;
  padding:16px 28px;
  border-radius:999px;
  text-decoration:none;
  font-weight:600;
}

h2{text-align:center;margin-bottom:28px}

.video-frame{
  max-width:720px;
  width:100%;
  aspect-ratio:16/9;
  margin:0 auto 24px;
  background:var(--card);
  border-radius:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  font-size:.9rem;
  text-align:center;
  padding:16px;
  border:2px solid rgba(245,197,66,.85);
}
video.video-frame{
  padding:0;
  object-fit:cover;
  background:#000;
  box-shadow:0 0 40px rgba(245,197,66,.55);
}

.btn-lg{
  font-size:1.25rem;
  padding:22px 44px;
  box-shadow:0 0 28px rgba(6,199,85,.55);
  animation:pulse-glow 2.2s ease-in-out infinite;
}
@keyframes pulse-glow{
  0%,100%{box-shadow:0 0 20px rgba(6,199,85,.45);}
  50%{box-shadow:0 0 40px rgba(6,199,85,.85);}
}

.hero-portrait{
  max-width:360px;
  border-radius:24px;
  object-fit:cover;
  aspect-ratio:3/4;
  border:2px solid var(--accent);
  box-shadow:0 0 32px rgba(245,197,66,.45);
}
.badge{
  display:inline-block;
  background:linear-gradient(135deg,var(--accent),var(--accent-bright));
  color:#1a1408;
  font-weight:700;
  padding:6px 20px;
  border-radius:999px;
  font-size:.9rem;
  margin:8px 0 16px;
  box-shadow:0 0 20px rgba(245,197,66,.5);
}

.grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
}
.card{
  background:var(--card);
  padding:24px;
  border-radius:16px;
  text-align:left;
  border:1px solid rgba(245,197,66,.6);
  box-shadow:0 0 16px rgba(245,197,66,.12);
}
.card-icon{font-size:1.8rem;margin-bottom:10px}
.card h3{margin:0 0 10px;font-size:1.05rem}
.card p{margin:0;color:var(--muted);font-size:.92rem}

.curriculum-list{
  background:var(--card);
  border-radius:16px;
  padding:24px 24px 24px 44px;
}
.curriculum-list li{margin-bottom:14px}

.gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:20px;
}
.gallery-grid img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:16px;
  display:block;
  border:1px solid rgba(245,197,66,.6);
}
.gallery-grid figcaption{text-align:center;color:var(--muted);font-size:.85rem;margin-top:8px}
.gallery-hint{color:var(--muted);font-size:.8rem;text-align:center;margin-top:16px}

.about{
  display:flex;
  gap:32px;
  align-items:center;
  flex-wrap:wrap;
}
.about-photo{
  width:220px;
  height:220px;
  border-radius:50%;
  object-fit:cover;
  flex-shrink:0;
  margin:0 auto;
}
.about-text{flex:1;min-width:240px}
.about-text h2{text-align:left}

#faq details{
  background:var(--card);
  border-radius:12px;
  padding:16px 20px;
  margin-bottom:12px;
}
#faq summary{cursor:pointer;font-weight:600}
#faq p{color:var(--muted);margin-top:10px}

.final-cta{text-align:center}

footer{
  padding:32px 20px;
  border-top:1px solid rgba(245,197,66,.6);
  text-align:center;
}
footer p{
  color:var(--muted);
  font-size:.8rem;
  max-width:720px;
  margin:0 auto;
}

@media (max-width:600px){
  .hero h1{font-size:1.5rem}
  .about{text-align:center}
  .about-text h2{text-align:center}
  .grid{grid-template-columns:1fr}
}
