*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --bg:#f7f8fa; --surface:#ffffff; --surface-2:#f0f2f5;
  --border:#e5e7eb; --border-hover:#d1d5db;
  --accent:#2563eb; --accent-glow:rgba(37,99,235,.08); --accent-2:#1d4ed8;
  --text:#111827; --text-secondary:#6b7280; --text-muted:#9ca3af;
  --green:#16a34a; --green-bg:rgba(22,163,74,.1);
  --amber:#d97706; --amber-bg:rgba(217,119,6,.1);
  --red:#dc2626; --red-bg:rgba(220,38,38,.1);
  --live:#f43f5e; --live-bg:rgba(244,63,94,.1);
  --radius:8px; --radius-lg:12px;
}
html { scroll-behavior:smooth; overflow-x:hidden; }
body { background:var(--bg); color:var(--text); font-family:'Outfit',sans-serif; font-size:15px; line-height:1.6; min-height:100vh; }
::-webkit-scrollbar { width:6px; } ::-webkit-scrollbar-track { background:var(--bg); } ::-webkit-scrollbar-thumb { background:var(--border-hover); border-radius:3px; }
::selection { background:rgba(37,99,235,.2); color:var(--text); }

/* ── HEADER ── */
header { position:sticky; top:0; z-index:100; background:rgba(17,24,39,.96); backdrop-filter:blur(18px); border-bottom:1px solid rgba(255,255,255,.08); }
.header-inner { max-width:1200px; margin:0 auto; padding:0 24px; height:64px; display:flex; align-items:center; justify-content:space-between; }
.logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
.logo-mark { width:36px; height:36px; background:linear-gradient(135deg,#2563eb,#1d4ed8); border-radius:8px; display:grid; place-items:center; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:14px; color:white; flex-shrink:0; }
.logo-name { font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:17px; color:#fff; }
.logo-name span { color:#60a5fa; }
.header-nav { display:flex; align-items:center; gap:8px; }
    .nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; z-index:200; }
    .nav-toggle span { display:block; width:22px; height:2px; background:#fff; border-radius:2px; transition:all .25s; }
    .nav-toggle.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
    .nav-toggle.open span:nth-child(2) { opacity:0; }
    .nav-toggle.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
    .mobile-nav { display:none; }
.nav-link { padding:8px 18px; border-radius:var(--radius); font-family:'Outfit',sans-serif; font-size:14px; font-weight:600; cursor:pointer; text-decoration:none; transition:all .2s; border:1.5px solid rgba(255,255,255,.22); background:rgba(255,255,255,.07); color:#e5e7eb; display:inline-flex; align-items:center; gap:6px; line-height:1; }
.nav-link:hover { background:rgba(255,255,255,.15); color:#fff; border-color:rgba(255,255,255,.35); transform:translateY(-1px); }
.nav-primary { background:#2563eb; color:#fff; border-color:#2563eb; }
.nav-primary:hover { background:#1d4ed8; color:#fff; border-color:#1d4ed8; box-shadow:0 4px 14px rgba(37,99,235,.4); }
.nav-hire { background:rgba(255,255,255,.07); color:#e5e7eb; border-color:rgba(255,255,255,.22); }
.nav-hire:hover { background:rgba(255,255,255,.15); color:#fff; border-color:rgba(255,255,255,.35); }

/* ── HIRE PAGE (standalone hire.html) ── */
.hire-page { max-width:960px; margin:0 auto; padding:40px 24px 80px; }
.hire-close { position:fixed; top:20px; right:24px; z-index:301; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); color:#fff; font-size:20px; cursor:pointer; display:grid; place-items:center; transition:all .2s; }
.hire-close:hover { background:rgba(255,255,255,.22); transform:scale(1.08); }
.hire-hero { text-align:center; padding:48px 0 40px; }
.hire-badge { display:inline-flex; align-items:center; gap:6px; background:rgba(5,150,105,.15); border:1px solid rgba(5,150,105,.35); border-radius:100px; padding:5px 14px; font-size:12px; font-weight:600; color:#34d399; margin-bottom:18px; }
.hire-title { font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(26px,4vw,42px); font-weight:800; color:#fff; line-height:1.2; margin-bottom:14px; }
.hire-title span { color:#34d399; }
.hire-sub { font-size:16px; color:#9ca3af; max-width:600px; margin:0 auto; line-height:1.6; }
.hire-reasons { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:44px 0; }
@media(max-width:700px){ .hire-reasons { grid-template-columns:1fr; } }
@media(max-width:960px){ .hire-reasons { grid-template-columns:repeat(2,1fr); } }
.reason-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09); border-radius:14px; padding:22px 20px; transition:border-color .2s,transform .2s; }
.reason-card:hover { border-color:rgba(52,211,153,.3); transform:translateY(-3px); }
.reason-icon { font-size:26px; margin-bottom:12px; }
.reason-title { font-family:'Plus Jakarta Sans',sans-serif; font-size:14px; font-weight:700; color:#fff; margin-bottom:6px; }
.reason-text { font-size:13px; color:#9ca3af; line-height:1.6; }
.hire-divider { border:none; border-top:1px solid rgba(255,255,255,.08); margin:40px 0; }
.hire-form-section { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); border-radius:18px; padding:36px 32px; }
@media(max-width:560px){ .hire-form-section { padding:24px 16px; } }
.hire-form-heading { font-family:'Plus Jakarta Sans',sans-serif; font-size:22px; font-weight:700; color:#fff; margin-bottom:6px; }
.hire-form-sub { font-size:14px; color:#9ca3af; margin-bottom:28px; line-height:1.5; }
.hire-form-iframe { width:100%; border:none; border-radius:10px; min-height:900px; background:#fff; }
.hire-form-placeholder { background:rgba(5,150,105,.06); border:2px dashed rgba(52,211,153,.3); border-radius:10px; padding:48px 24px; text-align:center; color:#9ca3af; }
.hire-form-placeholder strong { display:block; color:#34d399; font-size:16px; margin-bottom:8px; }
.hire-stats { display:flex; gap:0; border:1px solid rgba(255,255,255,.08); border-radius:14px; overflow:hidden; margin:0 0 40px; }
.hire-stat { flex:1; text-align:center; padding:20px 12px; border-right:1px solid rgba(255,255,255,.08); }
.hire-stat:last-child { border-right:none; }
.hire-stat-val { font-family:'Plus Jakarta Sans',sans-serif; font-size:24px; font-weight:800; color:#34d399; }
.hire-stat-lbl { font-size:11px; color:#6b7280; text-transform:uppercase; letter-spacing:.7px; margin-top:4px; }

/* ── PROFILE ── */
.profile-section { background:#111827; border-bottom:1px solid rgba(255,255,255,.08); padding:48px 24px 44px; position:relative; overflow:hidden; }
.profile-section::before { content:''; position:absolute; top:-80px; right:-80px; width:380px; height:380px; background:radial-gradient(circle,rgba(37,99,235,.15) 0%,transparent 70%); pointer-events:none; }
.profile-section::after { content:''; position:absolute; bottom:-60px; left:20%; width:260px; height:260px; background:radial-gradient(circle,rgba(96,165,250,.07) 0%,transparent 70%); pointer-events:none; }
.profile-inner { max-width:1200px; margin:0 auto; display:flex; align-items:flex-start; gap:32px; position:relative; z-index:1; }
.avatar { width:100px; height:100px; border-radius:50%; background:linear-gradient(135deg,#1d4ed8,#2563eb,#60a5fa); display:grid; place-items:center; flex-shrink:0; position:relative; overflow:hidden; box-shadow:0 0 0 4px rgba(255,255,255,.1),0 0 0 7px rgba(37,99,235,.3),0 8px 28px rgba(0,0,0,.4); font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:34px; color:white; letter-spacing:-1px; }
.avatar-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:50%; z-index:1; }
.avatar-initials { position:relative; z-index:0; }
.verified-badge { position:absolute; bottom:4px; right:0; z-index:2; width:26px; height:26px; background:var(--accent); border-radius:50%; border:3px solid #111827; display:grid; place-items:center; }
.profile-info { flex:1; min-width:0; }
.profile-name { font-family:'Plus Jakarta Sans',sans-serif; font-size:28px; font-weight:800; letter-spacing:-.5px; margin-bottom:5px; color:#fff; }
.profile-tagline { font-family:'Plus Jakarta Sans',sans-serif; font-size:15px; font-weight:600; color:#60a5fa; margin-bottom:12px; line-height:1.4; }
.profile-bio { color:#9ca3af; font-size:14px; line-height:1.75; max-width:580px; margin-bottom:20px; }
.profile-bio strong { color:#fff; }
.profile-meta { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.meta-chip { display:inline-flex; align-items:center; gap:5px; padding:4px 12px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); border-radius:100px; font-size:12px; color:#9ca3af; text-decoration:none; transition:all .2s; }
.meta-chip:hover { border-color:rgba(255,255,255,.25); color:#fff; }
.meta-chip svg { width:12px; height:12px; opacity:.55; flex-shrink:0; }
.profile-aside { display:flex; flex-direction:column; align-items:flex-end; gap:14px; flex-shrink:0; }
.stats-row { display:flex; gap:0; border-radius:var(--radius-lg); overflow:hidden; border:1px solid rgba(255,255,255,.08); background:#1a2535; }
.stat { text-align:center; padding:16px 22px; background:transparent; border-right:1px solid rgba(255,255,255,.08); }
.stat:last-child { border-right:none; }
.stat-value { font-family:'Plus Jakarta Sans',sans-serif; font-size:26px; font-weight:800; color:#60a5fa; display:block; line-height:1; margin-bottom:6px; letter-spacing:-.5px; }
.stat-label { font-size:9px; color:rgba(255,255,255,.4); text-transform:uppercase; letter-spacing:.8px; font-weight:500; }

/* ── TEAM ── */
.team-section { background:var(--surface); border-top:1px solid var(--border); padding:64px 24px; }
.team-inner { max-width:1200px; margin:0 auto; }
.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin:36px auto 0; max-width:960px; }
.team-card { display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; padding:28px 20px; background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-lg); transition:all .2s; }
@media(max-width:760px){ .team-grid{ grid-template-columns:1fr; max-width:420px; } }
.team-card:hover { border-color:var(--border-hover); box-shadow:0 6px 24px rgba(0,0,0,.07); transform:translateY(-2px); }
.team-avatar { width:110px; height:110px; border-radius:50%; flex-shrink:0; overflow:hidden; display:grid; place-items:center; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:28px; color:#fff; border:3px solid #2563eb; box-shadow:0 0 0 2px rgba(37,99,235,.15); }
.team-avatar img { width:100%; height:100%; object-fit:cover; }
.team-info { flex:1; min-width:0; }
.team-name { font-family:'Plus Jakarta Sans',sans-serif; font-size:16px; font-weight:800; color:var(--text); margin-bottom:3px; }
.team-role { font-size:12.5px; color:var(--accent); font-weight:600; margin-bottom:6px; }
.team-bio { font-size:12.5px; color:var(--text-secondary); line-height:1.6; }
.team-links { display:flex; gap:8px; margin-top:10px; }
.team-link { width:30px; height:30px; border-radius:var(--radius); background:var(--surface-2); border:1px solid var(--border); display:grid; place-items:center; color:var(--text-secondary); text-decoration:none; transition:all .2s; }
.team-link:hover { background:var(--accent-glow); border-color:var(--accent); color:var(--accent); }
.team-link svg { width:14px; height:14px; }
.team-links { justify-content:center; }

/* ── TESTIMONIALS ── */
.testimonials-section { background:var(--bg); padding:64px 24px; border-top:1px solid var(--border); }
.testimonials-inner { max-width:1200px; margin:0 auto; }
.testimonials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:36px; }
.tcard { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px; display:flex; flex-direction:column; gap:14px; transition:transform .2s,box-shadow .2s; }
.tcard:hover { transform:translateY(-3px); box-shadow:0 8px 28px rgba(0,0,0,.08); }
.tcard-stars { display:flex; gap:3px; color:#f59e0b; font-size:15px; }
.tcard-quote { font-size:14px; color:var(--text-secondary); line-height:1.75; flex:1; }
.tcard-quote::before { content:'\201C'; font-size:32px; color:var(--accent); line-height:0; vertical-align:-12px; margin-right:3px; font-family:'Plus Jakarta Sans',sans-serif; }
.tcard-author { display:flex; align-items:center; gap:11px; padding-top:12px; border-top:1px solid var(--border); }
.tcard-avatar { width:40px; height:40px; border-radius:50%; display:grid; place-items:center; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:14px; color:#fff; flex-shrink:0; }
.tcard-name { font-family:'Plus Jakarta Sans',sans-serif; font-size:13px; font-weight:700; color:var(--text); }
.tcard-role { font-size:11.5px; color:var(--text-muted); margin-top:1px; }
.tcard-tag { margin-left:auto; padding:3px 9px; background:var(--accent-glow); border:1px solid rgba(37,99,235,.2); border-radius:100px; font-size:10.5px; color:var(--accent); font-weight:600; white-space:nowrap; }
@media(max-width:900px){ .testimonials-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .testimonials-grid { grid-template-columns:1fr; } }
.aside-rating { display:flex; align-items:center; gap:8px; }
.aside-stars { color:#f59e0b; font-size:15px; letter-spacing:1px; line-height:1; }
.aside-rating-text { font-size:12.5px; color:rgba(255,255,255,.55); font-family:'Outfit',sans-serif; }
.aside-rating-text strong { color:#fff; }
.aside-cta { display:inline-flex; align-items:center; padding:11px 22px; background:var(--accent); color:#fff; border-radius:var(--radius); font-family:'Outfit',sans-serif; font-size:14px; font-weight:600; text-decoration:none; transition:all .2s; white-space:nowrap; }
.aside-cta:hover { background:var(--accent-2); transform:translateY(-1px); box-shadow:0 6px 20px rgba(37,99,235,.4); }
.social-row { display:flex; gap:8px; }
.social-btn { width:38px; height:38px; border-radius:var(--radius); background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); display:grid; place-items:center; color:#9ca3af; text-decoration:none; transition:all .2s; }
.social-btn:hover { background:rgba(37,99,235,.3); border-color:#60a5fa; color:#60a5fa; transform:translateY(-2px); }
.social-btn svg { width:16px; height:16px; }

/* ── MAIN ── */
.main { max-width:1200px; margin:0 auto; padding:0 24px 72px; }
.controls-bar { background:var(--surface); border-bottom:1px solid var(--border); box-shadow:0 2px 12px rgba(0,0,0,.06); padding:16px 24px; margin:0 -24px 28px; position:sticky; top:64px; z-index:90; }
.controls { display:flex; align-items:center; gap:10px; max-width:1200px; margin:0 auto; flex-wrap:wrap; }
.search-wrap { position:relative; flex:0 0 auto; width:260px; }
.search-icon { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--accent); width:14px; height:14px; pointer-events:none; }
.search-input { width:100%; padding:10px 14px 10px 34px; background:var(--bg); border:1.5px solid var(--border); border-radius:var(--radius); color:var(--text); font-family:'Outfit',sans-serif; font-size:14px; outline:none; transition:border-color .2s,box-shadow .2s; }
.search-input::placeholder { color:var(--text-muted); }
.search-input:focus { border-color:var(--accent); background:var(--surface); box-shadow:0 0 0 3px rgba(37,99,235,.1); }

/* type filter pills */
.type-filter { display:flex; gap:5px; flex-wrap:wrap; }
.type-pill { display:inline-flex; align-items:center; gap:5px; padding:6px 13px; border-radius:100px; border:1.5px solid var(--border); background:var(--bg); color:var(--text-secondary); font-size:12px; font-weight:600; cursor:pointer; transition:all .2s; font-family:'Outfit',sans-serif; }
.type-pill:hover { border-color:var(--border-hover); color:var(--text); background:var(--surface-2); }
.type-pill.active-all    { background:var(--accent-glow); border-color:var(--accent); color:var(--accent); }
.type-pill.active-dur    { background:var(--live-bg); border-color:var(--live); color:var(--live); }

.results-count { font-size:13px; color:var(--text-muted); white-space:nowrap; margin-left:auto; }
.currency-badge { display:inline-flex; align-items:center; gap:5px; padding:5px 12px; background:var(--surface-2); border:1.5px solid var(--border); border-radius:100px; font-size:12px; color:var(--text-secondary); white-space:nowrap; }
.currency-badge strong { color:var(--accent-2); }

.categories { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:32px; }
.cat-btn { display:inline-flex; align-items:center; gap:6px; padding:7px 14px; border-radius:var(--radius); border:1px solid var(--border); background:var(--surface); color:var(--text-secondary); font-family:'Outfit',sans-serif; font-size:13px; font-weight:500; cursor:pointer; transition:all .2s; white-space:nowrap; }
.cat-btn:hover { background:var(--surface-2); color:var(--text); border-color:var(--border-hover); }
.cat-btn.active { background:var(--accent-glow); border-color:var(--accent); color:var(--accent); }
.cat-emoji { font-size:14px; }
.cat-count { padding:1px 7px; background:var(--surface-2); border-radius:100px; font-size:11px; color:var(--text-muted); }
.cat-btn.active .cat-count { background:rgba(59,130,246,.15); color:var(--accent-2); }

/* ── GRID ── */
.products-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }

.product-card { background:var(--surface); border:none; border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; transition:transform .25s,box-shadow .25s; animation:fadeUp .35s ease both; cursor:pointer; }
.product-card:hover { transform:translateY(-4px); box-shadow:0 8px 32px rgba(0,0,0,.12); }
.product-card.training-card { border:none; }

/* ── COVER ── */
.card-cover { height:220px; position:relative; overflow:hidden; flex-shrink:0; border-radius:var(--radius-lg) var(--radius-lg) 0 0; }
.cover-fallback { position:absolute; inset:0; }
.cover-fallback .fp { position:absolute; border-radius:50%; background:rgba(255,255,255,.07); }
.cover-fallback .fp1 { width:180px; height:180px; top:-60px; right:-50px; }
.cover-fallback .fp2 { width:110px; height:110px; bottom:-40px; left:-25px; }
.cover-fallback .fp3 { width:60px; height:60px; top:20px; left:20px; background:rgba(255,255,255,.04); }
.cover-fallback-icon { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:68px; filter:drop-shadow(0 6px 20px rgba(0,0,0,.45)); }

.cover-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; opacity:0; transition:opacity .4s; }
.cover-photo.loaded { opacity:1; }
.has-photo .cover-fallback { display:none; }
.cover-shade { position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.6) 0%, rgba(0,0,0,.15) 55%, rgba(0,0,0,0) 100%); z-index:2; }

.cover-top-badges { position:absolute; top:10px; left:10px; right:10px; display:flex; align-items:flex-start; justify-content:space-between; z-index:3; }
.live-badge { display:inline-flex; align-items:center; gap:5px; padding:4px 10px; background:var(--live); border-radius:100px; font-size:10.5px; font-weight:700; color:white; letter-spacing:.3px; }
.live-dot { width:6px; height:6px; border-radius:50%; background:white; animation:pulse 1.5s infinite; flex-shrink:0; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.5;transform:scale(.8);} }
.digital-badge { display:inline-flex; align-items:center; gap:4px; padding:4px 10px; background:rgba(0,0,0,.45); backdrop-filter:blur(4px); border-radius:100px; font-size:10.5px; font-weight:700; color:rgba(255,255,255,.85); border:1px solid rgba(255,255,255,.15); }

.cover-bottom { position:absolute; bottom:0; left:0; right:0; padding:10px 14px 12px; z-index:3; display:flex; align-items:flex-end; justify-content:space-between; }
.cover-cat-label { font-size:10px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:rgba(255,255,255,.65); }
.cover-dur-tag { font-size:10px; font-weight:700; padding:3px 9px; border-radius:4px; background:rgba(255,255,255,.2); color:rgba(255,255,255,.9); backdrop-filter:blur(4px); text-transform:uppercase; letter-spacing:.4px; }

/* ── CARD BODY ── */
.card-body { padding:10px 4px 14px; display:flex; flex-direction:column; flex:1; }
.card-badges { display:flex; align-items:center; gap:5px; margin-bottom:6px; flex-wrap:wrap; }
.badge { display:inline-flex; align-items:center; padding:2px 8px; border-radius:100px; font-size:10.5px; font-weight:600; }
.badge-beginner    { background:var(--green-bg); color:var(--green); }
.badge-intermediate{ background:var(--amber-bg);  color:var(--amber); }
.badge-advanced    { background:var(--red-bg);    color:var(--red); }
.badge-all         { background:rgba(37,99,235,.1); color:var(--accent); }
.badge-format      { background:var(--surface-2); color:var(--text-muted); }
.badge-live        { background:var(--live-bg);   color:var(--live); }
.badge-resource    { background:var(--green-bg);  color:var(--green); }

.card-title { font-family:'Plus Jakarta Sans',sans-serif; font-size:14px; font-weight:700; color:var(--text); margin-bottom:6px; line-height:1.4; }
.card-desc { font-size:12.5px; color:var(--text-secondary); line-height:1.6; flex:1; margin-bottom:10px; display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

.card-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.card-pricing { line-height:1.25; display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; }
.price-primary { font-family:'Plus Jakarta Sans',sans-serif; font-size:16px; font-weight:800; color:var(--accent); }
.price-orig { font-size:12px; color:var(--text-muted); text-decoration:line-through; }
.price-badge { font-size:10px; font-weight:700; color:#fff; background:#16a34a; border-radius:4px; padding:1px 5px; white-space:nowrap; }
.price-secondary { font-size:11px; color:var(--text-muted); width:100%; margin-top:1px; }

.card-cta { padding:7px 14px; background:var(--accent); border:none; border-radius:var(--radius); color:white; font-family:'Outfit',sans-serif; font-size:12.5px; font-weight:600; cursor:pointer; transition:all .2s; white-space:nowrap; flex-shrink:0; }
.card-cta:hover { background:#1d4ed8; box-shadow:0 4px 14px rgba(37,99,235,.3); }
.card-cta-book { background:var(--accent); border:none; color:white; }
.card-cta-book:hover { background:#1d4ed8; box-shadow:0 4px 14px rgba(37,99,235,.3); }

.empty-state { grid-column:1/-1; text-align:center; padding:80px 24px; }
.empty-state h3 { font-size:18px; color:var(--text-secondary); font-weight:600; }
.empty-state p  { font-size:14px; color:var(--text-muted); margin-top:8px; }

/* ── MODAL ── */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(4px); z-index:200; align-items:center; justify-content:center; padding:24px; }
.modal-overlay.open { display:flex; }
.modal { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); width:100%; max-width:560px; max-height:92vh; overflow-y:auto; animation:fadeUp .25s ease; box-shadow:0 20px 60px rgba(0,0,0,.15); }

.modal-header { padding:22px 22px 0; display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.modal-kind { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:100px; font-size:11px; font-weight:700; margin-bottom:8px; }
.modal-kind.training { background:var(--live-bg); color:var(--live); }
.modal-kind.resource { background:var(--green-bg); color:var(--green); }
.modal-product-title { font-family:'Plus Jakarta Sans',sans-serif; font-size:17px; font-weight:700; color:var(--text); line-height:1.3; }
.modal-close { width:32px; height:32px; border-radius:var(--radius); background:var(--surface-2); border:1px solid var(--border); color:var(--text-secondary); font-size:18px; cursor:pointer; display:grid; place-items:center; flex-shrink:0; transition:all .2s; }
.modal-close:hover { background:var(--border); color:var(--text); }

.modal-price-bar { padding:14px 22px; display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--border); border-top:1px solid var(--border); margin-top:14px; }
.modal-price-primary { font-family:'Plus Jakarta Sans',sans-serif; font-size:26px; font-weight:800; color:var(--text); }
.modal-price-sep { color:var(--border-hover); font-size:20px; }
.modal-price-secondary { font-family:'Plus Jakarta Sans',sans-serif; font-size:18px; font-weight:700; color:var(--text-secondary); }
.modal-price-note { font-size:12px; color:var(--text-muted); margin-left:auto; text-align:right; line-height:1.4; }

.modal-body { padding:18px 22px 22px; }
.modal-training-meta { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; }
.modal-meta-chip { display:inline-flex; align-items:center; gap:5px; padding:5px 12px; background:var(--surface-2); border:1px solid var(--border); border-radius:100px; font-size:12px; color:var(--text-secondary); }
.modal-meta-chip svg { width:13px; height:13px; opacity:.6; }

.modal-section-title { font-size:11.5px; text-transform:uppercase; letter-spacing:.8px; color:var(--text-muted); margin-bottom:12px; font-weight:600; }

/* booking steps */
.booking-steps { display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
.booking-step { display:flex; align-items:flex-start; gap:12px; padding:12px 14px; background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); }
.booking-step-num { width:22px; height:22px; border-radius:50%; background:var(--live-bg); color:var(--live); font-size:11px; font-weight:700; display:grid; place-items:center; flex-shrink:0; margin-top:1px; }
.booking-step-text { font-size:13px; color:var(--text-secondary); line-height:1.5; }
.booking-step-text strong { color:var(--text); }

.whatsapp-btn { display:inline-flex; align-items:center; gap:8px; padding:12px 20px; background:#25d366; color:white; border:none; border-radius:var(--radius); font-family:'Outfit',sans-serif; font-size:15px; font-weight:600; cursor:pointer; text-decoration:none; transition:all .2s; width:100%; justify-content:center; margin-bottom:8px; }
.whatsapp-btn:hover { background:#1ebe58; transform:translateY(-1px); box-shadow:0 4px 16px rgba(37,211,102,.4); }
.email-book-btn { display:inline-flex; align-items:center; gap:8px; padding:10px 20px; background:transparent; color:var(--text-secondary); border:1px solid var(--border); border-radius:var(--radius); font-family:'Outfit',sans-serif; font-size:14px; font-weight:500; cursor:pointer; text-decoration:none; transition:all .2s; width:100%; justify-content:center; margin-bottom:16px; }
.email-book-btn:hover { background:var(--surface-2); color:var(--text); border-color:var(--border-hover); }

.modal-divider { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.modal-divider::before,.modal-divider::after { content:''; flex:1; height:1px; background:var(--border); }
.modal-divider span { font-size:11px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.8px; white-space:nowrap; }

.payment-options { display:flex; flex-direction:column; gap:10px; }
.payment-option { border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; transition:border-color .2s; }
.payment-option:hover { border-color:var(--border-hover); }
.payment-option-header { padding:13px 16px; display:flex; align-items:center; gap:12px; cursor:pointer; user-select:none; background:var(--surface-2); }
.payment-option-icon { width:36px; height:36px; border-radius:var(--radius); display:grid; place-items:center; flex-shrink:0; font-size:20px; }
.payment-option-name { font-family:'Plus Jakarta Sans',sans-serif; font-size:14px; font-weight:700; color:var(--text); }
.payment-option-sub { font-size:11.5px; color:var(--text-muted); margin-top:1px; }
.payment-option-toggle { margin-left:auto; color:var(--text-muted); font-size:17px; transition:transform .2s; }
.payment-option.expanded .payment-option-toggle { transform:rotate(180deg); }
.payment-option-body { display:none; padding:14px 16px 16px; border-top:1px solid var(--border); }
.payment-option.expanded .payment-option-body { display:block; }

.paypal-btn { display:flex; align-items:center; gap:8px; padding:11px 20px; background:#0070ba; color:white; border:none; border-radius:var(--radius); font-family:'Outfit',sans-serif; font-size:14px; font-weight:600; cursor:pointer; text-decoration:none; transition:all .2s; width:100%; justify-content:center; margin-bottom:9px; }
.paypal-btn:hover { background:#005ea6; transform:translateY(-1px); box-shadow:0 4px 16px rgba(0,112,186,.4); }
.paypal-note { font-size:11.5px; color:var(--text-muted); text-align:center; }

.mpesa-steps { display:flex; flex-direction:column; gap:9px; margin-bottom:12px; }
.mpesa-step { display:flex; align-items:flex-start; gap:11px; }
.mpesa-step-num { width:21px; height:21px; border-radius:50%; background:rgba(16,185,129,.15); color:var(--green); font-size:11px; font-weight:700; display:grid; place-items:center; flex-shrink:0; margin-top:2px; }
.mpesa-step-text { font-size:13px; color:var(--text-secondary); line-height:1.5; }
.mpesa-step-text strong { color:var(--text); }
.mpesa-note { padding:11px 13px; background:rgba(16,185,129,.08); border:1px solid rgba(16,185,129,.2); border-radius:var(--radius); font-size:12px; color:var(--text-secondary); }
.mpesa-note strong { color:var(--green); }

/* ── CONTACT ── */
.contact-section { background:linear-gradient(160deg,#1e3a5f 0%,#1e293b 55%,#0f172a 100%); border-top:1px solid rgba(255,255,255,.06); padding:72px 24px 64px; position:relative; overflow:hidden; }
.contact-section::before { content:''; position:absolute; top:-100px; right:-60px; width:420px; height:420px; background:radial-gradient(circle,rgba(37,99,235,.18) 0%,transparent 65%); pointer-events:none; }
.contact-section::after { content:''; position:absolute; bottom:-80px; left:5%; width:300px; height:300px; background:radial-gradient(circle,rgba(139,92,246,.12) 0%,transparent 65%); pointer-events:none; }
.contact-inner { max-width:1200px; margin:0 auto; position:relative; z-index:1; }
.section-label { display:inline-flex; align-items:center; gap:6px; padding:4px 14px; background:rgba(37,99,235,.18); border:1px solid rgba(96,165,250,.3); border-radius:100px; font-size:12px; font-weight:600; color:#93c5fd; text-transform:uppercase; letter-spacing:.8px; margin-bottom:14px; }
.section-heading { font-family:'Plus Jakarta Sans',sans-serif; font-size:30px; font-weight:800; letter-spacing:-.5px; margin-bottom:10px; color:#fff; }
.section-sub { font-size:15px; color:rgba(255,255,255,.6); margin-bottom:44px; max-width:520px; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.contact-form { display:flex; flex-direction:column; gap:14px; }
.availability-bar { display:flex; align-items:center; gap:8px; padding:11px 15px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius); margin-bottom:6px; }
.avail-dot { width:8px; height:8px; border-radius:50%; background:#22c55e; box-shadow:0 0 0 3px rgba(34,197,94,.25); flex-shrink:0; }
.avail-text { font-size:13px; color:rgba(255,255,255,.75); }
.avail-text strong { color:#fff; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-group { display:flex; flex-direction:column; gap:5px; }
.form-label { font-size:13px; font-weight:500; color:rgba(255,255,255,.7); }
.form-input,.form-textarea,.form-select { padding:10px 13px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.15); border-radius:var(--radius); color:#fff; font-family:'Outfit',sans-serif; font-size:14px; outline:none; transition:border-color .2s,box-shadow .2s; width:100%; }
.form-input::placeholder,.form-textarea::placeholder { color:rgba(255,255,255,.35); }
.form-input:focus,.form-textarea:focus,.form-select:focus { border-color:#60a5fa; box-shadow:0 0 0 3px rgba(96,165,250,.15); background:rgba(255,255,255,.1); }
.form-textarea { resize:vertical; min-height:110px; }
.form-select { color:#fff; }
.form-select option { background:#1e3a5f; color:#fff; }
.form-submit { padding:12px 28px; background:var(--accent); color:white; border:none; border-radius:var(--radius); font-family:'Outfit',sans-serif; font-size:15px; font-weight:600; cursor:pointer; transition:all .2s; align-self:flex-start; }
.form-submit:hover { background:#1d4ed8; transform:translateY(-1px); box-shadow:0 6px 20px rgba(37,99,235,.4); }
.form-success { display:none; align-items:center; gap:10px; padding:13px 16px; background:rgba(34,197,94,.12); border:1px solid rgba(34,197,94,.3); border-radius:var(--radius); color:#4ade80; font-size:14px; }
.contact-info { display:flex; flex-direction:column; gap:9px; }
.whatsapp-cta { display:flex; align-items:center; justify-content:center; gap:10px; padding:14px 20px; background:#25d366; color:#fff; border-radius:var(--radius-lg); text-decoration:none; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:15px; transition:all .2s; margin-bottom:4px; }
.whatsapp-cta:hover { background:#1ebe5d; transform:translateY(-2px); box-shadow:0 8px 24px rgba(37,211,102,.35); }
.whatsapp-cta svg { width:20px; height:20px; flex-shrink:0; }
.contact-card { display:flex; align-items:center; gap:14px; padding:13px 16px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-lg); text-decoration:none; transition:all .2s; }
.contact-card:hover { border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.1); transform:translateX(4px); }
.contact-card.accent:hover { border-color:rgba(96,165,250,.5); background:rgba(37,99,235,.2); }
.contact-card-icon { width:38px; height:38px; border-radius:var(--radius); display:grid; place-items:center; flex-shrink:0; }
.contact-card-icon svg { width:18px; height:18px; }
.contact-card-text { flex:1; }
.contact-card-label { font-size:10.5px; text-transform:uppercase; letter-spacing:.7px; color:rgba(255,255,255,.4); margin-bottom:2px; }
.contact-card-value { font-size:14px; font-weight:600; color:#fff; }
.contact-card-arrow { color:rgba(255,255,255,.35); font-size:17px; }
.contact-note { padding:13px 15px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius); font-size:13px; color:rgba(255,255,255,.6); line-height:1.6; margin-top:4px; }
.contact-note strong { color:#93c5fd; }

/* ── FOOTER ── */
footer { background:#111827; border-top:1px solid var(--border); padding:26px 24px; }
.footer-inner { max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.footer-brand { font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:15px; color:#fff; }
.footer-brand span { color:#60a5fa; }
.footer-links a { font-size:13px; color:#9ca3af; text-decoration:none; transition:color .2s; }
.footer-links a:hover { color:#fff; }
.footer-copy { font-size:12px; color:#6b7280; }
.footer-links { display:flex; gap:18px; }

@keyframes fadeUp { from{opacity:0;transform:translateY(14px);} to{opacity:1;transform:translateY(0);} }
@keyframes slideUp { from{transform:translateY(100%);} to{transform:translateY(0);} }

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  .products-grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:960px){
  .products-grid{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr;}
}
@media(max-width:768px){
  /* Header */
  .header-inner{height:56px;padding:0 20px;}
  .nav-link{padding:6px 12px;font-size:13px;}
  /* Sticky bar offset matches new header height */
  .controls-bar{top:56px;}
  /* Profile */
  .profile-inner{flex-direction:row;flex-wrap:wrap;gap:16px;}
  .profile-info{flex:1;min-width:160px;}
  .profile-aside{align-items:flex-start;flex-direction:row;flex-wrap:wrap;width:100%;}
  .profile-name{font-size:24px;}
  .profile-section{padding:36px 20px 32px;}
  /* Stats */
  .stats-row{flex-wrap:wrap;}
  .stat{flex:1 1 45%;border-right:none;border-bottom:1px solid rgba(255,255,255,.08);}
  .stat:nth-child(odd){border-right:1px solid rgba(255,255,255,.08);}
  .stat:last-child,.stat:nth-last-child(-n+2):nth-child(odd){border-bottom:none;}
  /* Sections */
  .section-heading{font-size:24px;}
  .team-section{padding:44px 20px;}
  .testimonials-section{padding:44px 20px;}
  .testimonials-grid{grid-template-columns:repeat(2,1fr);}
  /* Forms */
  .form-row{grid-template-columns:1fr;}
  .type-filter{flex-wrap:wrap;}
  /* Search */
  .search-wrap{width:200px;}
  /* Modal */
  .modal-overlay{padding:16px;}
  .modal{max-width:100%;}
  /* Footer */
  .footer-inner{flex-direction:column;align-items:center;text-align:center;gap:10px;}
  .footer-links{justify-content:center;flex-wrap:wrap;gap:12px;}
}
@media(max-width:560px){
  /* Layout & spacing */
  .header-inner{padding:0 16px;}
  .profile-section{padding:28px 16px 24px;}
  .main{padding-left:16px;padding-right:16px;padding-bottom:40px;}
  .contact-section{padding:36px 16px 28px;}
  .team-section{padding:36px 16px;}
  .testimonials-section{padding:36px 16px;}
  /* Nav — hamburger menu on mobile */
      .nav-toggle { display:flex; }
      .header-nav { display:none; }
      .mobile-nav { display:none; position:fixed; top:56px; left:0; right:0; background:rgba(15,23,42,.99); backdrop-filter:blur(18px); border-bottom:1px solid rgba(255,255,255,.08); padding:14px 16px 18px; z-index:99; flex-direction:column; gap:10px; }
      .mobile-nav.open { display:flex; }
      .mobile-nav .nav-link, .mobile-nav .nav-hire, .mobile-nav .nav-primary { width:100%; justify-content:center; padding:13px 16px; font-size:14px; font-weight:600; border-radius:10px; border:1.5px solid rgba(255,255,255,.15); background:rgba(255,255,255,.07); color:#f1f5f9; }
  /* Controls bar */
  .controls-bar{padding:10px 16px;margin:0 -16px 20px;}
  .controls{flex-direction:column;align-items:stretch;gap:8px;}
  .search-wrap{width:100%;flex:none;}
  .type-filter{flex-wrap:wrap;gap:6px;}
  .type-pill{flex:1 1 auto;justify-content:center;}
  .results-count{margin-left:0;font-size:12px;}
  .currency-badge{font-size:11px;padding:4px 10px;}
  /* Categories 2-column grid on mobile */
  .categories{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:20px;}
  .cat-btn{justify-content:flex-start;font-size:12px;padding:8px 10px;}
  /* Product grid & cards */
  .products-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .card-cover{height:160px;}
  .cover-fallback-icon{font-size:48px;}
  .card-body{padding:8px 2px 10px;}
  .card-title{font-size:13px;}
  .price-primary{font-size:14px;}
  .card-cta{font-size:11.5px;padding:6px 10px;}
  /* Section text */
  .section-heading{font-size:20px;}
  .section-sub{font-size:13px;margin-bottom:28px;}
  /* Team */
  .team-grid{gap:12px;}
  .team-card{padding:16px 14px;}
  /* Testimonials */
  .testimonials-grid{grid-template-columns:1fr;}
  .tcard{padding:16px;}
  /* Stats 2x2 grid on mobile */
  .stats-row{flex-direction:row;flex-wrap:wrap;}
  .stat{flex:1 1 50%;border-right:none;border-bottom:1px solid rgba(255,255,255,.08);padding:12px 10px;}
  .stat:nth-child(odd){border-right:1px solid rgba(255,255,255,.08);}
  .stat:nth-last-child(-n+2){border-bottom:none;}
  .stat-value{font-size:20px;}
  /* Profile */
  .profile-name{font-size:19px;}
  .profile-bio{font-size:13px;}
  /* Contact WA buttons stack */
  .wa-cta-row{flex-direction:column;}
  /* Modal — bottom sheet on mobile */
  .modal-overlay{padding:0;align-items:flex-end;}
  .modal{max-height:92vh;border-radius:20px 20px 0 0;animation:slideUp .3s ease;width:100%;max-width:100%;}
  .modal-header{padding:16px 16px 0;}
  .modal-body{padding:12px 16px 24px;}
  .modal-price-bar{padding:10px 16px;}
  .modal-price-primary{font-size:20px;}
  .modal-price-secondary{font-size:14px;}
  .modal-price-note{font-size:11px;}
  /* Handle bar hint */
  .modal::before{content:'';display:block;width:40px;height:4px;background:var(--border-hover);border-radius:2px;margin:12px auto 0;}
  /* Course detail panel */
  .cd-cover{min-height:120px;}
  .cd-body{padding:14px 16px 16px;}
  .cd-title{font-size:16px;}
  .cd-desc{font-size:13px;}
  /* WA bubble */
  .wa-bubble{width:calc(100vw - 24px);}
  .wa-bubble-header{padding:12px 14px;}
  .wa-bubble-footer{padding:10px 14px 12px;}
  /* Footer */
  .footer-copy{font-size:11px;}
  .footer-brand{font-size:14px;}
  .footer-links a{font-size:12px;}
}
@media(max-width:400px){
  /* Products single column */
  .products-grid{grid-template-columns:1fr;gap:10px;}
  .card-cover{height:180px;}
  .cover-fallback-icon{font-size:60px;}
  .card-body{padding:10px 4px 12px;}
  /* Header */
  .logo-name{font-size:14px;}
  /* Modal near fullscreen */
  .modal-overlay{padding:4px;}
  .modal{max-height:98vh;border-radius:var(--radius);}
  /* Booking wizard */
  .bsn-label{display:none;}
  .booking-steps-nav{padding:10px 12px 0;}
  .proof-btn{font-size:13px;padding:10px 12px;}
  /* Section headings */
  .section-heading{font-size:18px;}
  /* CD panel */
  .cd-highlights{grid-template-columns:1fr;}
}

/* ── WHATSAPP LIVE CHAT ── */
.wa-widget { position:fixed; bottom:28px; right:28px; z-index:9998; display:flex; flex-direction:column; align-items:flex-end; gap:12px; pointer-events:none; }
.wa-fab, .wa-bubble.open { pointer-events:auto; }
.wa-bubble { background:#fff; border-radius:16px 16px 4px 16px; box-shadow:0 8px 32px rgba(0,0,0,.18); padding:0; width:300px; overflow:hidden; transform:scale(.85) translateY(12px); opacity:0; pointer-events:none; transition:all .3s cubic-bezier(.34,1.4,.64,1); transform-origin:bottom right; }
.wa-bubble.open { transform:scale(1) translateY(0); opacity:1; pointer-events:auto; }
.wa-bubble-header { background:#075e54; padding:16px 18px; display:flex; align-items:center; gap:12px; }
.wa-bubble-avatar { width:44px; height:44px; border-radius:50%; background:linear-gradient(135deg,#128c7e,#25d366); display:grid; place-items:center; flex-shrink:0; overflow:hidden; }
.wa-bubble-avatar img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.wa-bubble-info { flex:1; }
.wa-bubble-name { font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:14px; color:#fff; }
.wa-bubble-status { font-size:11.5px; color:rgba(255,255,255,.75); display:flex; align-items:center; gap:5px; margin-top:1px; }
.wa-online-dot { width:7px; height:7px; border-radius:50%; background:#25d366; display:inline-block; }
.wa-bubble-close { background:none; border:none; color:rgba(255,255,255,.6); cursor:pointer; font-size:18px; padding:0; line-height:1; transition:color .2s; }
.wa-bubble-close:hover { color:#fff; }
.wa-bubble-body { padding:16px 18px; background:#ece5dd; }
.wa-message { background:#fff; border-radius:8px 8px 8px 2px; padding:10px 13px; font-size:13px; color:#111; line-height:1.55; box-shadow:0 1px 2px rgba(0,0,0,.1); position:relative; }
.wa-message::before { content:''; position:absolute; left:-6px; top:0; width:0; height:0; border-top:6px solid #fff; border-left:6px solid transparent; }
.wa-message-time { font-size:10px; color:#999; text-align:right; margin-top:4px; }
.wa-bubble-footer { padding:12px 18px 16px; background:#f0f0f0; }
.wa-start-btn { display:flex; align-items:center; justify-content:center; gap:9px; width:100%; padding:12px; background:#25d366; color:#fff; border:none; border-radius:10px; font-family:'Plus Jakarta Sans',sans-serif; font-size:14px; font-weight:700; cursor:pointer; text-decoration:none; transition:all .2s; }
.wa-start-btn:hover { background:#1ebe5d; transform:translateY(-1px); box-shadow:0 4px 14px rgba(37,211,102,.4); }
.wa-start-btn svg { width:18px; height:18px; flex-shrink:0; }
.wa-fab { width:58px; height:58px; border-radius:50%; background:#25d366; border:none; cursor:pointer; display:grid; place-items:center; box-shadow:0 6px 24px rgba(37,211,102,.45); transition:all .2s; position:relative; }
.wa-fab:hover { background:#1ebe5d; transform:scale(1.08); }
.wa-fab svg { width:28px; height:28px; }
.wa-fab-badge { position:absolute; top:-2px; right:-2px; width:18px; height:18px; background:#ef4444; border-radius:50%; border:2px solid #fff; display:grid; place-items:center; font-size:10px; font-weight:700; color:#fff; font-family:'Plus Jakarta Sans',sans-serif; }
@keyframes wa-pulse { 0%,100%{ box-shadow:0 6px 24px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,.4); } 50%{ box-shadow:0 6px 24px rgba(37,211,102,.45),0 0 0 10px rgba(37,211,102,0); } }
.wa-fab { animation:wa-pulse 2.5s infinite; }
@media(max-width:480px){ .wa-widget{ bottom:16px; right:16px; } .wa-bubble{ width:calc(100vw - 32px); } }

/* ── SOCIAL PROOF TOAST ── */
.sp-toast { position:fixed; top:76px; right:20px; z-index:9999; background:#0f172a; border:1px solid rgba(255,255,255,.12); border-left:3px solid #22c55e; border-radius:12px; padding:12px 14px 12px 14px; display:flex; align-items:flex-start; gap:10px; box-shadow:0 12px 40px rgba(0,0,0,.45); max-width:290px; width:290px; transform:translateX(calc(100% + 28px)); transition:transform .4s cubic-bezier(.34,1.56,.64,1); pointer-events:auto; }
.sp-toast.show { transform:translateX(0); }
.sp-toast-avatar { width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg,#2563eb,#7c3aed); display:grid; place-items:center; font-weight:800; font-size:13px; color:#fff; flex-shrink:0; font-family:'Plus Jakarta Sans',sans-serif; }
.sp-toast-body { flex:1; min-width:0; }
.sp-toast-name { font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:13px; color:#fff; display:flex; align-items:center; gap:5px; margin-bottom:2px; }
.sp-toast-name svg { width:13px; height:13px; color:#22c55e; flex-shrink:0; }
.sp-toast-action { font-size:12px; color:rgba(255,255,255,.6); line-height:1.45; margin-bottom:4px; }
.sp-toast-action strong { color:#e2e8f0; }
.sp-toast-tag { display:inline-flex; align-items:center; gap:4px; padding:3px 9px; border-radius:100px; font-size:11px; font-weight:700; background:#2563eb; color:#fff; }
.sp-toast-meta { font-size:11px; color:rgba(255,255,255,.35); margin-top:4px; display:flex; align-items:center; gap:5px; }
.sp-toast-meta::before { content:''; width:5px; height:5px; border-radius:50%; background:#22c55e; display:inline-block; flex-shrink:0; }
.sp-toast-close { background:none; border:none; color:rgba(255,255,255,.3); cursor:pointer; font-size:14px; line-height:1; padding:0; margin-left:2px; flex-shrink:0; transition:color .2s; }
.sp-toast-close:hover { color:#fff; }
@media(max-width:480px){ .sp-toast { top:68px; right:12px; max-width:calc(100vw - 24px); width:auto; } }

/* ── BOOKING WIZARD ── */
.booking-steps-nav { display:flex; align-items:center; padding:14px 22px 0; }
.bsn-step { display:flex; align-items:center; gap:7px; flex-shrink:0; }
.bsn-num { width:26px; height:26px; border-radius:50%; background:var(--surface-2); border:2px solid var(--border); color:var(--text-muted); font-size:12px; font-weight:700; display:grid; place-items:center; transition:all .25s; flex-shrink:0; }
.bsn-label { font-size:12px; font-weight:600; color:var(--text-muted); transition:color .25s; white-space:nowrap; }
.bsn-step.active .bsn-num { background:var(--accent); border-color:var(--accent); color:#fff; }
.bsn-step.active .bsn-label { color:var(--text); }
.bsn-step.done .bsn-num { background:var(--green); border-color:var(--green); color:#fff; }
.bsn-step.done .bsn-label { color:var(--green); }
.bsn-line { flex:1; height:2px; background:var(--border); margin:0 6px; }
.bform-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
@media(max-width:560px){
  .bform-row{grid-template-columns:1fr;}
  .booking-steps-nav{padding:10px 14px 0;}
  .bsn-label{font-size:11px;}
  .btime-btn{min-width:75px;font-size:12px;padding:8px 6px;}
  .bstep-next{font-size:14px;}
}
@media(max-width:400px){
  .bsn-label{display:none;}
  .bsn-num{width:24px;height:24px;font-size:10px;}
  .btime-btn{min-width:65px;padding:7px 4px;}
}
.bform-group { display:flex; flex-direction:column; gap:4px; margin-bottom:11px; }
.bform-label { font-size:12.5px; font-weight:600; color:var(--text-secondary); }
.bform-input { padding:9px 12px; border:1px solid var(--border); border-radius:var(--radius); font-family:'Outfit',sans-serif; font-size:14px; color:var(--text); background:var(--surface); outline:none; transition:border-color .2s,box-shadow .2s; width:100%; }
.bform-input:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-glow); }
.bform-textarea { resize:vertical; min-height:60px; }
.btime-group { display:flex; gap:8px; flex-wrap:wrap; }
.btime-btn { flex:1; min-width:90px; display:flex; flex-direction:column; align-items:center; gap:3px; padding:9px 8px; border:1.5px solid var(--border); border-radius:var(--radius); background:var(--surface-2); font-family:'Outfit',sans-serif; font-size:13px; font-weight:600; color:var(--text-secondary); cursor:pointer; transition:all .2s; line-height:1.3; }
.btime-btn span { font-size:10.5px; font-weight:400; color:var(--text-muted); }
.btime-btn.active { border-color:var(--accent); background:var(--accent-glow); color:var(--accent); }
.btime-btn:hover:not(.active) { border-color:var(--border-hover); background:var(--surface); }
.bstep-error { font-size:12.5px; color:var(--red); min-height:18px; margin-bottom:6px; }
.bstep-next { width:100%; padding:12px; background:var(--accent); color:#fff; border:none; border-radius:var(--radius); font-family:'Outfit',sans-serif; font-size:15px; font-weight:600; cursor:pointer; transition:all .2s; margin-top:4px; }
.bstep-next:hover { background:var(--accent-2); transform:translateY(-1px); box-shadow:0 4px 16px rgba(37,99,235,.35); }
.bstep-back { padding:10px 18px; background:transparent; color:var(--text-secondary); border:1px solid var(--border); border-radius:var(--radius); font-family:'Outfit',sans-serif; font-size:14px; font-weight:500; cursor:pointer; transition:all .2s; }
.bstep-back:hover { background:var(--surface-2); border-color:var(--border-hover); color:var(--text); }
.bstep-row { display:flex; gap:10px; align-items:center; margin-top:14px; }
.bstep-row .bstep-next { margin-top:0; flex:1; }
.booking-summary { background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-lg); padding:13px 16px; font-size:13.5px; line-height:1.75; color:var(--text-secondary); margin-bottom:4px; }
.booking-summary strong { color:var(--text); }
.proof-hero { text-align:center; padding:10px 0 16px; }
.proof-icon { font-size:38px; margin-bottom:10px; }
.proof-title { font-family:'Plus Jakarta Sans',sans-serif; font-size:19px; font-weight:800; color:var(--text); margin-bottom:8px; }
.proof-sub { font-size:13.5px; color:var(--text-secondary); line-height:1.6; max-width:380px; margin:0 auto; }
.proof-sub strong { color:var(--text); }
.proof-booking-box { background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); padding:12px 14px; font-size:13px; color:var(--text-secondary); line-height:1.75; margin-bottom:16px; }
.proof-booking-box strong { color:var(--text); }
.proof-actions { display:flex; flex-direction:column; gap:10px; margin-bottom:12px; }
.proof-btn { display:flex; align-items:center; justify-content:center; gap:9px; padding:13px 20px; border-radius:var(--radius); font-family:'Outfit',sans-serif; font-size:15px; font-weight:600; cursor:pointer; text-decoration:none; transition:all .2s; border:none; }
.proof-btn-wa { background:#25d366; color:#fff; }
.proof-btn-wa:hover { background:#1ebe58; transform:translateY(-1px); box-shadow:0 4px 16px rgba(37,211,102,.4); }
.proof-btn-email { background:transparent; color:var(--text-secondary); border:1.5px solid var(--border); }
.proof-btn-email:hover { background:var(--surface-2); color:var(--text); border-color:var(--border-hover); }
.proof-note { font-size:12px; color:var(--text-muted); line-height:1.6; padding:10px 12px; background:var(--surface-2); border-radius:var(--radius); }

/* ── COURSE DETAIL PANEL ── */
.cd-cover { min-height:160px; position:relative; display:flex; align-items:center; justify-content:center; border-radius:var(--radius-lg) var(--radius-lg) 0 0; overflow:hidden; }
.cd-cover .cover-fallback { border-radius:0; width:100%; height:100%; position:absolute; inset:0; }
.cd-cover .cover-shade { opacity:.35; }
.cd-icon { font-size:54px; position:relative; z-index:1; filter:drop-shadow(0 2px 12px rgba(0,0,0,.4)); }
.cd-cover-close { position:absolute; top:12px; right:12px; width:34px; height:34px; border-radius:var(--radius); background:rgba(0,0,0,.38); border:1px solid rgba(255,255,255,.22); color:#fff; font-size:19px; cursor:pointer; display:grid; place-items:center; transition:all .2s; z-index:2; line-height:1; }
.cd-cover-close:hover { background:rgba(0,0,0,.6); }
.cd-body { padding:20px 22px 22px; }
.cd-badges { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.cd-title { font-family:'Plus Jakarta Sans',sans-serif; font-size:18px; font-weight:800; color:var(--text); line-height:1.3; margin-bottom:10px; }
.cd-desc { font-size:14px; color:var(--text-secondary); line-height:1.75; margin-bottom:16px; }
.cd-highlights { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:18px; }
@media(max-width:420px){ .cd-highlights{grid-template-columns:1fr;} }
.cd-hl { display:flex; align-items:flex-start; gap:8px; background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); padding:9px 11px; font-size:12.5px; color:var(--text-secondary); line-height:1.45; }
.cd-hl-icon { font-size:15px; flex-shrink:0; margin-top:1px; }
.cd-price-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:16px; border-top:1px solid var(--border); }
.cd-price-main { font-family:'Plus Jakarta Sans',sans-serif; font-size:22px; font-weight:800; color:var(--text); }
.cd-price-orig { font-size:12px; color:var(--text-muted); text-decoration:line-through; }
.cd-price-disc { font-size:11.5px; font-weight:700; color:var(--green); background:var(--green-bg); padding:2px 7px; border-radius:100px; }
.cd-price-sub { font-size:12px; color:var(--text-muted); margin-top:2px; }
.cd-book-btn { padding:11px 22px; background:var(--accent); color:#fff; border:none; border-radius:var(--radius); font-family:'Outfit',sans-serif; font-size:14px; font-weight:600; cursor:pointer; transition:all .2s; white-space:nowrap; }
.cd-book-btn:hover { background:var(--accent-2); transform:translateY(-1px); box-shadow:0 4px 16px rgba(37,99,235,.35); }

/* WordPress compatibility: removes theme header/footer spacing */
html { margin-top: 0 !important; }
body { margin-top: 0 !important; padding-top: 0 !important; }
#wpadminbar { display: none !important; }
.site-header, .site-footer, #site-header, #site-footer,
.wp-site-blocks > header, .wp-site-blocks > footer,
.entry-header, .entry-footer, .page-header,
header.site-header, footer.site-footer { display: none !important; }
.site-content, .entry-content, .wp-block-group,
.page-content, main.site-main { padding: 0 !important; margin: 0 !important; max-width: 100% !important; }
.wp-block-html { margin: 0 !important; padding: 0 !important; }