/* =========================
   CORE VARIABLES
   ========================= */
:root{
  --bg:#0b1220;
  --panel:#0f1a2e;
  --text:#e8eefc;
  --muted:#b7c3dd;
  --brand:#6aa7ff;
  --brand2:#8bffcc;
  --line:rgba(255,255,255,.12);
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --radius:18px;
  --maxw:1100px;
}

/* =========================
   RESET / BASE
   ========================= */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,#070b14 0%, #0b1220 40%, #070b14 100%);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

a{color:inherit}
img{max-width:100%;height:auto;display:block}
p{line-height:1.5}
.small{font-size:13px;color:var(--muted)}
.lead{font-size:17px;color:var(--muted);line-height:1.55}

/* =========================
   LAYOUT
   ========================= */
.container{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 18px;
}

.hero{padding:34px 0 50px}

.hr{
  height:1px;
  background:var(--line);
  margin:18px 0;
}

/* =========================
   CARDS & CONTENT
   ========================= */
.card{
  background:rgba(15,26,46,.82);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

.pad{padding:18px}

.subject-card{
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px;
}

.subject-card h3{margin:0 0 8px}
.subject-card p{margin:0}

/* =========================
   BADGES
   ========================= */
.badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}

.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  font-size:13px;
  color:var(--muted);
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
}

/* =========================
   BUTTONS
   ========================= */
.btnrow{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:999px;
  font-size:14px;
  font-weight:700;
  text-decoration:none;
  color:var(--text);
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  transition:transform .12s ease, background .15s ease, border-color .15s ease;
}

.btn:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.18);
}

.btn.primary{
  color:#071018;
  border-color:transparent;
  background:linear-gradient(135deg,var(--brand2),var(--brand));
}

/* =========================
   GRIDS
   ========================= */
.grid2{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.hero-grid{
  display:grid;
  grid-template-columns:1.6fr .9fr;
  gap:18px;
}

@media (max-width: 940px){
  .hero-grid,.grid2{grid-template-columns:1fr}
}

/* =========================
   LISTS
   ========================= */
.list{
  margin:10px 0 0;
  padding-left:18px;
}
.list li{margin:6px 0}
.list li::marker{color:var(--muted)}

/* =========================
   TABLES
   ========================= */
.table{
  width:100%;
  border-collapse:collapse;
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--line);
}

.table th,.table td{
  padding:12px;
  border-bottom:1px solid var(--line);
}

.table th{color:var(--muted);font-weight:800}
.table tr:last-child td{border-bottom:none}

/* =========================
   FORMS
   ========================= */
label{display:block;margin:0 0 6px}

.input{
  width:100%;
  padding:12px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  color:var(--text);
  outline:none;
}

.input::placeholder{color:rgba(183,195,221,.75)}

.input:focus{
  border-color:rgba(255,255,255,.22);
  background:rgba(255,255,255,.04);
}

textarea.input{resize:vertical;min-height:120px}

/* Success / error blocks */
#form-success,#form-error{
  display:none;
  margin-top:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  font-size:13px;
}

#form-success{border-color:rgba(139,255,204,.35)}
#form-error{border-color:rgba(255,106,106,.35)}

/* =========================
   HEADER / NAV
   ========================= */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(7,11,20,.78);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}

.site-header__inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:14px 20px;
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.site-nav a{
  color:var(--muted);
  padding:8px 10px;
  border-radius:12px;
  text-decoration:none;
}

.site-nav a:hover{
  color:var(--text);
  background:rgba(255,255,255,.03);
}

.site-nav a.is-active{
  color:#071018;
  background:linear-gradient(135deg,var(--brand2),var(--brand));
}

/* =========================
   SELECT / DROPDOWNS
   ========================= */
select.input,
[data-enquiry-form] select{
  width:100%;
  padding:12px 44px 12px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
  color:var(--text);
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
}

select.input:hover,
[data-enquiry-form] select:hover{
  border-color:rgba(255,255,255,.18);
}

select.input:focus,
[data-enquiry-form] select:focus{
  border-color:rgba(106,167,255,.55);
  box-shadow:0 0 0 4px rgba(106,167,255,.16);
}

/* Placeholder state (Subject / Level) */
select.input:required:invalid,
[data-enquiry-form] select:required:invalid{
  color:rgba(183,195,221,.7);
}

/* Valid selection */
select.input:required:valid,
[data-enquiry-form] select:required:valid{
  color:var(--text);
}

/* Dropdown options */
select option{
  background:var(--panel);
  color:var(--text);
}

/* Arrow */
.select-wrap{position:relative}
.select-wrap::after{
  content:"";
  position:absolute;
  right:16px;
  top:50%;
  width:10px;
  height:10px;
  transform:translateY(-60%) rotate(45deg);
  border-right:2px solid rgba(232,238,252,.75);
  border-bottom:2px solid rgba(232,238,252,.75);
  pointer-events:none;
}
