/* =====================================================================
   Virtual Labs Portal - Main Stylesheet
   Mobile-first, animated, attractive
   ===================================================================== */
:root{
  --teal:#0d9488; --teal-d:#0f766e; --teal-l:#14b8a6;
  --pink:#db2777; --purple:#9333ea; --green:#16a34a;
  --amber:#f59e0b; --orange:#ea580c; --cyan:#0891b2;
  --ink:#0f172a; --ink-2:#1e293b; --muted:#64748b;
  --line:#e2e8f0; --bg:#f8fafc; --card:#ffffff;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06);
  --shadow:0 6px 24px rgba(15,23,42,.08);
  --shadow-lg:0 20px 50px rgba(15,23,42,.14);
  --radius:16px; --radius-sm:10px;
  --grad-hero:linear-gradient(135deg,#0d9488 0%,#0891b2 45%,#9333ea 100%);
  --grad-fun:linear-gradient(135deg,#f59e0b 0%,#ea580c 100%);
  --maxw:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,sans-serif;
  color:var(--ink); background:var(--bg);
  line-height:1.6; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{font-family:'Poppins',sans-serif;line-height:1.25;font-weight:700;color:var(--ink)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.page-wrap{min-height:100vh;display:flex;flex-direction:column}
.site-main{flex:1 0 auto}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;border-radius:999px;font-weight:600;font-size:.95rem;border:none;cursor:pointer;transition:.25s;font-family:'Poppins',sans-serif}
.btn-primary{background:var(--teal);color:#fff;box-shadow:0 8px 20px rgba(13,148,136,.35)}
.btn-primary:hover{background:var(--teal-d);transform:translateY(-2px);box-shadow:0 12px 28px rgba(13,148,136,.45)}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.6)}
.btn-ghost:hover{background:rgba(255,255,255,.12)}
.btn-outline{background:transparent;border:2px solid var(--line);color:var(--ink)}
.btn-outline:hover{border-color:var(--teal);color:var(--teal)}
.btn-sm{padding:7px 14px;font-size:.85rem}
.btn-danger{background:#ef4444;color:#fff}
.btn-danger:hover{background:#dc2626}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.site-header.scrolled{box-shadow:var(--shadow-sm)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo-mark{width:42px;height:42px;border-radius:12px;background:var(--grad-hero);display:grid;place-items:center;color:#fff;box-shadow:0 6px 16px rgba(13,148,136,.4)}
.logo-text{display:flex;flex-direction:column;line-height:1.1}
.logo-text strong{font-family:'Poppins';font-size:1.05rem;color:var(--ink)}
.logo-text small{font-size:.68rem;color:var(--muted);font-weight:500}
.main-nav{display:flex;align-items:center;gap:6px}
.main-nav>a,.nav-drop-btn{padding:9px 14px;border-radius:10px;font-weight:600;font-size:.92rem;color:var(--ink-2);background:none;border:none;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px;transition:.2s}
.main-nav>a:hover,.main-nav>a.active,.nav-drop-btn:hover{background:rgba(13,148,136,.1);color:var(--teal-d)}
.nav-dropdown{position:relative}
.nav-dropdown-menu{position:absolute;top:120%;left:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:10px;min-width:230px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s;z-index:50}
.nav-dropdown:hover .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav-dropdown-menu a{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--ink-2);transition:.15s}
.nav-dropdown-menu a:hover{background:var(--bg);color:var(--teal-d)}
.nav-dropdown-menu a .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;min-width:240px}
.nav-search{display:flex;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px 3px 3px 14px;transition:.2s}
.nav-search:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.nav-search input{border:none;background:none;outline:none;font-size:.88rem;width:140px;font-family:inherit;color:var(--ink)}
.nav-search button{border:none;background:var(--teal);color:#fff;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;cursor:pointer;transition:.2s}
.nav-search button:hover{background:var(--teal-d)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}
.nav-toggle span{width:24px;height:2.5px;background:var(--ink);border-radius:2px;transition:.3s}
.nav-toggle.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--grad-hero);color:#fff;padding:70px 0 80px}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.18),transparent 40%),radial-gradient(circle at 80% 60%,rgba(255,255,255,.12),transparent 45%)}
.hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.18) 1.5px,transparent 1.5px);background-size:36px 36px;opacity:.4;mask-image:linear-gradient(to bottom,rgba(0,0,0,1),transparent)}

/* ---------- Quick subject pills ---------- */
.quick-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:999px;background:#fff;border:1.5px solid var(--line);font-weight:600;font-size:.84rem;color:var(--ink-2);transition:.25s;cursor:pointer}
.quick-pill svg{color:var(--pc,var(--teal))}
.quick-pill:hover{border-color:var(--pc,var(--teal));color:var(--pc,var(--teal));transform:translateY(-3px);box-shadow:0 8px 18px -6px var(--pc,var(--teal))}
.hero-inner{position:relative;z-index:2;max-width:760px}
.hero .badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);padding:7px 16px;border-radius:999px;font-size:.82rem;font-weight:600;margin-bottom:18px;animation:fadeUp .6s both}
.hero h1{color:#fff;font-size:clamp(2rem,5vw,3.4rem);font-weight:800;letter-spacing:-.02em;animation:fadeUp .7s .1s both}
.hero h1 .hl{background:linear-gradient(120deg,#fde68a,#fbcfe8);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{font-size:1.1rem;margin-top:16px;opacity:.92;animation:fadeUp .7s .2s both}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;animation:fadeUp .7s .3s both}
.hero-stats{display:flex;gap:34px;margin-top:42px;flex-wrap:wrap;animation:fadeUp .7s .4s both}
.hero-stats .stat strong{font-size:2rem;font-family:'Poppins';display:block}
.hero-stats .stat span{font-size:.85rem;opacity:.85}
.hero-blob{position:absolute;border-radius:50%;filter:blur(8px);opacity:.5;animation:float 8s ease-in-out infinite}
.hero-blob.b1{width:160px;height:160px;background:#f59e0b;top:14%;right:8%}
.hero-blob.b2{width:110px;height:110px;background:#ec4899;bottom:12%;right:22%;animation-delay:1.5s}
.hero-blob.b3{width:80px;height:80px;background:#22d3ee;top:40%;right:34%;animation-delay:3s}

/* floating lab cards */
.float-cards{position:absolute;right:3%;top:18%;width:300px;height:380px;display:none;z-index:2}
@media(min-width:1024px){.float-cards{display:block}}
.float-card{position:absolute;background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);padding:14px;color:var(--ink);animation:floatY 6s ease-in-out infinite}
.float-card .fc-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:#fff;margin-bottom:8px}
.float-card strong{font-size:.85rem;display:block}
.float-card small{font-size:.7rem;color:var(--muted)}
.float-card.c1{top:0;right:0;animation-delay:0s}
.float-card.c2{top:150px;right:60px;animation-delay:1s}
.float-card.c3{top:260px;right:0;animation-delay:2s}

/* ---------- Sections ---------- */
.section{padding:64px 0}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:34px;flex-wrap:wrap}
.section-head h2{font-size:clamp(1.5rem,3.5vw,2.1rem);letter-spacing:-.01em}
.section-head h2 .accent{color:var(--teal)}
.section-head p{color:var(--muted);margin-top:6px;font-size:.95rem}
.section-head .link{font-weight:600;color:var(--teal-d);display:inline-flex;align-items:center;gap:4px;transition:.2s}
.section-head .link:hover{gap:8px}

/* ---------- Lab Cards ---------- */
.lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}
.lab-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.3s;display:flex;flex-direction:column;position:relative;animation:fadeUp .5s both}
.lab-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}
.lab-card .thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,#e0f2fe,#f0fdfa)}
.lab-card .thumb img{width:100%;height:100%;object-fit:cover;transition:.5s}
.lab-card:hover .thumb img{transform:scale(1.06)}
.lab-card .thumb .subj-tag{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);padding:5px 11px;border-radius:999px;font-size:.72rem;font-weight:600;display:flex;align-items:center;gap:6px}
.lab-card .thumb .subj-tag .dot{width:8px;height:8px;border-radius:50%}
.lab-card .thumb .view-badge{position:absolute;bottom:10px;right:10px;background:rgba(15,23,42,.7);color:#fff;padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:600;backdrop-filter:blur(4px);display:flex;align-items:center;gap:5px}
.lab-card .body{padding:16px 16px 18px;flex:1;display:flex;flex-direction:column}
.lab-card .class-chip{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--teal-d);margin-bottom:6px}
.lab-card h3{font-size:1.05rem;margin-bottom:6px;line-height:1.35}
.lab-card .desc{font-size:.85rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}
.lab-card .footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.lab-card .chapter{font-size:.78rem;color:var(--muted);font-weight:500}
.lab-card .play{width:34px;height:34px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;transition:.25s}
.lab-card:hover .play{background:var(--teal-d);transform:scale(1.1) rotate(8deg)}
.lab-card.fun::before{content:"Fun";position:absolute;top:10px;right:10px;background:var(--grad-fun);color:#fff;font-size:.68rem;font-weight:700;padding:4px 10px;border-radius:999px;z-index:2;letter-spacing:.04em}

/* ---------- Class grid (legacy) ---------- */
.class-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.class-tile{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 14px;text-align:center;transition:.3s;position:relative;overflow:hidden;animation:fadeUp .4s both}
.class-tile::after{content:"";position:absolute;inset:0;background:var(--grad-hero);opacity:0;transition:.3s;z-index:0}
.class-tile:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:transparent}
.class-tile:hover::after{opacity:1}
.class-tile>*{position:relative;z-index:1;transition:.3s}
.class-tile:hover .ct-num,.class-tile:hover .ct-label,.class-tile:hover .ct-count{color:#fff}
.class-tile .ct-num{font-family:'Poppins';font-size:2rem;font-weight:800;color:var(--teal-d)}
.class-tile .ct-label{font-weight:600;font-size:.85rem;color:var(--ink-2)}
.class-tile .ct-count{font-size:.72rem;color:var(--muted);margin-top:4px}

/* ---------- Class stages (attractive, universal CSS) ---------- */
.class-stage{margin-bottom:44px}
.class-stage:last-child{margin-bottom:0}
.stage-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding:16px 22px;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.stage-header::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--c1,#0d9488),var(--c2,#0891b2))}
.stage-emoji{font-size:2rem;flex-shrink:0;width:52px;height:52px;display:grid;place-items:center;background:linear-gradient(135deg,var(--c1,#0d9488),var(--c2,#0891b2));border-radius:14px;color:#fff;box-shadow:0 6px 14px rgba(0,0,0,.12)}
.stage-title{font-size:1.2rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.stage-range{font-size:.74rem;font-weight:700;background:linear-gradient(135deg,var(--c1,#0d9488),var(--c2,#0891b2));color:#fff;padding:4px 12px;border-radius:999px;letter-spacing:.03em}
.stage-desc{font-size:.85rem;color:var(--muted);margin-top:3px}

.class-tiles-v2{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px}
.class-card-v2{
  position:relative;display:block;padding:22px 20px;border-radius:16px;
  overflow:hidden;cursor:pointer;text-decoration:none;
  background:#fff;border:1px solid var(--line);
  transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s;
  animation:fadeUp .5s both;
}
/* gradient strip on top */
.class-card-v2::before{
  content:"";position:absolute;left:0;right:0;top:0;height:5px;
  background:linear-gradient(90deg,var(--c1,#0d9488),var(--c2,#0891b2));
  transition:height .3s;
}
/* soft corner glow */
.class-card-v2::after{
  content:"";position:absolute;top:-40px;right:-40px;width:140px;height:140px;
  border-radius:50%;background:var(--c1,#0d9488);opacity:0;
  filter:blur(36px);transition:opacity .35s;pointer-events:none;
}
.class-card-v2:hover{
  transform:translateY(-6px);
  border-color:var(--c1,#0d9488);
  box-shadow:0 16px 32px -12px rgba(15,23,42,.18);
}
.class-card-v2:hover::before{height:100%;opacity:.04}
.class-card-v2:hover::after{opacity:.18}

.ccv-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;position:relative;z-index:1}
.ccv-num{
  font-family:'Poppins';font-size:2.4rem;font-weight:800;line-height:.9;
  color:var(--c2,#0891b2);transition:transform .3s,color .3s;
}
.class-card-v2:hover .ccv-num{transform:scale(1.08);color:var(--c1,#0d9488)}
.ccv-badge{
  font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  color:#fff;background:linear-gradient(135deg,var(--c1,#0d9488),var(--c2,#0891b2));
  padding:4px 9px;border-radius:6px;white-space:nowrap;
}
.ccv-info{position:relative;z-index:1}
.ccv-name{font-weight:700;font-size:1rem;color:var(--ink);font-family:'Poppins';margin-bottom:5px}
.ccv-meta{display:flex;justify-content:space-between;align-items:center}
.ccv-count{font-size:.78rem;color:var(--muted);font-weight:500}
.ccv-count strong{color:var(--c2,#0891b2);font-weight:700}
.ccv-arrow{
  width:28px;height:28px;border-radius:8px;display:grid;place-items:center;
  background:#f1f5f9;color:var(--c2,#0891b2);font-size:.9rem;font-weight:700;
  opacity:0;transform:translateX(-6px);transition:.3s;
}
.class-card-v2:hover .ccv-arrow{opacity:1;transform:translateX(0);background:linear-gradient(135deg,var(--c1,#0d9488),var(--c2,#0891b2));color:#fff}

/* ---------- Subject cards ---------- */
.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.subject-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;gap:16px;align-items:center;transition:.35s cubic-bezier(.2,.8,.2,1);animation:fadeUp .5s both;overflow:hidden;position:relative}
.subject-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--c,var(--teal));transform:scaleY(0);transform-origin:top;transition:.35s}
.subject-card::after{content:"";position:absolute;top:-40px;right:-40px;width:120px;height:120px;border-radius:50%;background:var(--c,var(--teal));opacity:0;filter:blur(30px);transition:.4s}
.subject-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 16px 36px -10px var(--c,var(--teal));border-color:var(--c,var(--teal))}
.subject-card:hover::before{transform:scaleY(1)}
.subject-card:hover::after{opacity:.12}
.subject-card .s-icon{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;color:#fff;flex-shrink:0;background:var(--c,var(--teal));box-shadow:0 8px 18px rgba(0,0,0,.12);transition:.35s}
.subject-card:hover .s-icon{transform:rotate(-8deg) scale(1.08)}
.subject-card .s-meta strong{font-size:1.05rem;display:block}
.subject-card .s-meta small{color:var(--muted);font-size:.82rem}

/* ---------- Fun activity section ---------- */
.fun-section{background:linear-gradient(135deg,#fffbeb,#fff7ed);border-radius:24px;padding:40px;position:relative;overflow:hidden}
.fun-section::before{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(245,158,11,.2),transparent 70%);top:-60px;right:-40px}
.fun-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.fun-chip{background:#fff;border:1px solid var(--amber);color:#b45309;padding:8px 18px;border-radius:999px;font-weight:600;font-size:.88rem;transition:.25s;display:inline-flex;align-items:center;gap:6px}
.fun-chip:hover{background:var(--amber);color:#fff;transform:translateY(-2px)}

/* ---------- Breadcrumb ---------- */
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.85rem;color:var(--muted);margin-bottom:18px}
.breadcrumb a{color:var(--teal-d);font-weight:500}
.breadcrumb span.sep{opacity:.5}

/* ---------- Lab viewer page ---------- */
.viewer-wrap{padding:24px 0 50px}
.viewer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;margin-bottom:18px}
.viewer-top h1{font-size:clamp(1.4rem,3vw,2rem)}
.viewer-top .meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.viewer-top .chip{background:#fff;border:1px solid var(--line);padding:5px 12px;border-radius:999px;font-size:.78rem;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.viewer-top .chip.v{background:var(--ink);color:#fff;border-color:var(--ink)}
.viewer-actions{display:flex;gap:10px;flex-wrap:wrap}
.lab-iframe-box{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
.lab-iframe-bar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--bg)}
.lab-iframe-bar .dots{display:flex;gap:6px}
.lab-iframe-bar .dots span{width:11px;height:11px;border-radius:50%}
.lab-iframe-bar .dots span:nth-child(1){background:#ef4444}
.lab-iframe-bar .dots span:nth-child(2){background:#f59e0b}
.lab-iframe-bar .dots span:nth-child(3){background:#22c55e}
.lab-iframe-bar .url{flex:1;font-size:.78rem;color:var(--muted);font-family:monospace;background:#fff;border:1px solid var(--line);padding:6px 12px;border-radius:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.lab-iframe-bar .fs-btn{background:none;border:none;cursor:pointer;color:var(--muted);padding:6px;border-radius:6px;transition:.2s}
.lab-iframe-bar .fs-btn:hover{background:#fff;color:var(--teal-d)}
.lab-iframe{width:100%;height:72vh;min-height:480px;border:none;display:block;background:#fff}
.lab-info-grid{display:grid;grid-template-columns:1fr 320px;gap:24px;margin-top:26px}
@media(max-width:880px){.lab-info-grid{grid-template-columns:1fr}}
.info-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.info-card h3{margin-bottom:12px;font-size:1.1rem}
.info-card p{color:var(--muted);font-size:.92rem}
.side-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.side-card h4{font-size:.95rem;margin-bottom:14px}
.side-list{display:flex;flex-direction:column;gap:12px}
.side-list a{display:flex;gap:10px;align-items:center;font-size:.88rem;transition:.2s;padding:6px;border-radius:8px}
.side-list a:hover{background:var(--bg);color:var(--teal-d)}
.side-list a img{width:48px;height:36px;object-fit:cover;border-radius:6px}
.instructions{background:#f0fdfa;border-left:4px solid var(--teal);padding:16px 18px;border-radius:8px;margin-top:14px;font-size:.9rem}

/* ---------- Search / empty ---------- */
.empty-state{text-align:center;padding:70px 20px;color:var(--muted)}
.empty-state .emoji{font-size:3rem;margin-bottom:12px}
.empty-state h3{color:var(--ink);margin-bottom:8px}

/* ---------- Pagination ---------- */
.pagination{display:flex;gap:6px;justify-content:center;margin-top:40px;flex-wrap:wrap}
.pagination a,.pagination span{min-width:42px;height:42px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:#fff;font-weight:600;font-size:.9rem;transition:.2s}
.pagination a:hover{border-color:var(--teal);color:var(--teal-d)}
.pagination .current{background:var(--teal);color:#fff;border-color:var(--teal)}

/* ---------- Filters bar ---------- */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:24px}
.filter-bar select,.filter-bar input{padding:9px 14px;border:1px solid var(--line);border-radius:10px;font-family:inherit;font-size:.88rem;background:#fff;color:var(--ink);outline:none;transition:.2s}
.filter-bar select:focus,.filter-bar input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(13,148,136,.12)}

/* ---------- Footer ---------- */
.site-footer{flex-shrink:0;background:var(--ink);color:#cbd5e1;margin-top:60px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:36px;padding:54px 20px 34px}
@media(max-width:820px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr}}
.footer-brand .logo{margin-bottom:14px}
.footer-brand .logo strong{color:#fff}
.footer-brand p{font-size:.88rem;max-width:340px;margin-bottom:18px}
.footer-stats{display:flex;gap:24px}
.footer-stats div{display:flex;flex-direction:column}
.footer-stats strong{font-size:1.5rem;color:#fff;font-family:'Poppins'}
.footer-stats span{font-size:.74rem;color:#94a3b8}
.footer-col h4{color:#fff;font-size:.95rem;margin-bottom:14px}
.footer-links{display:flex;flex-direction:column;gap:8px}
.footer-links a{font-size:.86rem;color:#94a3b8;transition:.2s}
.footer-links a:hover{color:#fff;padding-left:4px}
.footer-bottom{border-top:1px solid #1e293b;padding:18px 0}
.footer-bottom .container{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.82rem;color:#94a3b8}
.footer-bottom .made-with span{color:#ef4444}

/* ---------- Toast ---------- */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120px);background:var(--ink);color:#fff;padding:13px 22px;border-radius:12px;font-size:.9rem;font-weight:500;box-shadow:var(--shadow-lg);z-index:9999;transition:.4s;opacity:0}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}

/* ---------- Animations ---------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.reveal{opacity:0;transform:translateY(30px);transition:.7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- Responsive nav ---------- */
@media(max-width:980px){
  .nav-toggle{display:flex}
  .main-nav{position:fixed;top:68px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:16px;gap:4px;box-shadow:var(--shadow-lg);transform:translateY(-130%);transition:.35s;max-height:calc(100vh - 68px);overflow-y:auto}
  .main-nav.open{transform:translateY(0)}
  .main-nav>a,.nav-drop-btn{padding:12px 14px;border-radius:10px}
  .nav-dropdown{width:100%}
  .nav-dropdown-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;padding:6px 0 6px 14px;background:none;min-width:0;display:none}
  .nav-dropdown.open .nav-dropdown-menu{display:block}
  .class-grid{grid-template-columns:repeat(4,1fr)}
  .nav-search{width:100%}
  .nav-search input{width:100%;flex:1}
}
@media(max-width:560px){
  .hero{padding:50px 0 60px}
  .section{padding:48px 0}
  .fun-section{padding:26px 20px}
  .class-tiles{grid-template-columns:repeat(2,1fr)}
  .class-tiles-v2{grid-template-columns:1fr 1fr;gap:12px}
  .class-card-v2{padding:16px 14px}
  .ccv-num{font-size:1.9rem}
  .ccv-badge{font-size:.58rem;padding:3px 6px}
  .ccv-name{font-size:.82rem}
  .ccv-count{font-size:.7rem}
  .ccv-arrow{display:none}
  .stage-header{padding:12px 14px;gap:10px}
  .stage-emoji{font-size:1.4rem;width:42px;height:42px}
  .stage-title{font-size:.98rem}
  .stage-desc{font-size:.76rem}
  .lab-grid{grid-template-columns:1fr}
}
