/* ==================================================
   ECOMNIGHTHQ — 1-TO-1 COACHING PAGE
   ================================================== */

:root {
    --font-display: 'Clash Display', sans-serif;
    --font-body: 'Satoshi', sans-serif;
    --font-mono: 'Inter Tight', monospace;
    --nav-height: 80px;
    --ticker-height: 34px;
    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
}

[data-theme="dark"] {
    --bg-void: #000000;
    --bg-surface: rgba(8,8,12,0.85);
    --bg-glass: rgba(12,12,16,0.5);
    --text-primary: #FFFFFF;
    --text-secondary: #B0B0BC;
    --text-muted: #6B6B78;
    --accent: #4D7CFF;
    --accent-dim: rgba(77,124,255,0.15);
    --accent-glow: rgba(77,124,255,0.4);
    --border-subtle: rgba(255,255,255,0.06);
    --border-glass: rgba(255,255,255,0.1);
    --border-hover: rgba(255,255,255,0.15);
    --green: #34D399;
    --green-dim: rgba(52,211,153,0.1);
    --ticker-bg: rgba(5,5,8,0.95);
    --nav-scrolled-bg: rgba(5,5,8,0.85);
    --mobile-menu-bg: rgba(0,0,0,0.95);
    --btn-primary-bg: #FFFFFF;
    --btn-primary-color: #000000;
    --btn-ghost-bg: rgba(255,255,255,0.03);
    --btn-ghost-border: rgba(255,255,255,0.1);
    --btn-ghost-hover-bg: rgba(255,255,255,0.06);
    --logo-svg-color: #FFFFFF;
    --card-bg: rgba(255,255,255,0.02);
    --form-bg: rgba(255,255,255,0.03);
    --form-border: rgba(255,255,255,0.1);
    --form-focus: rgba(77,124,255,0.4);
    --select-bg: rgba(10,10,14,0.9);
}

[data-theme="light"] {
    --bg-void: #F8F9FC;
    --bg-surface: rgba(255,255,255,0.9);
    --bg-glass: rgba(255,255,255,0.7);
    --text-primary: #0F1419;
    --text-secondary: #536471;
    --text-muted: #8899A6;
    --accent: #2563EB;
    --accent-dim: rgba(37,99,235,0.1);
    --accent-glow: rgba(37,99,235,0.3);
    --border-subtle: rgba(0,0,0,0.06);
    --border-glass: rgba(0,0,0,0.08);
    --border-hover: rgba(0,0,0,0.15);
    --green: #059669;
    --green-dim: rgba(5,150,105,0.08);
    --ticker-bg: rgba(255,255,255,0.98);
    --nav-scrolled-bg: rgba(255,255,255,0.9);
    --mobile-menu-bg: rgba(255,255,255,0.98);
    --btn-primary-bg: #0F1419;
    --btn-primary-color: #FFFFFF;
    --btn-ghost-bg: rgba(0,0,0,0.03);
    --btn-ghost-border: rgba(0,0,0,0.1);
    --btn-ghost-hover-bg: rgba(0,0,0,0.06);
    --logo-svg-color: #0F1419;
    --card-bg: rgba(0,0,0,0.02);
    --form-bg: rgba(0,0,0,0.03);
    --form-border: rgba(0,0,0,0.12);
    --form-focus: rgba(37,99,235,0.4);
    --select-bg: rgba(255,255,255,0.95);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body { font-family: var(--font-body); background: var(--bg-void); color: var(--text-primary); overflow-x: hidden; line-height:1.6; cursor:none; transition: background 0.4s, color 0.4s; }
a { text-decoration:none; color:inherit; cursor:none; }
button { border:none; background:none; cursor:none; font-family:inherit; color:inherit; }
@media (max-width: 1024px) { body, a, button { cursor: auto; } }

/* Cursor */
.custom-cursor { pointer-events:none; position:fixed; top:0; left:0; z-index:99999; mix-blend-mode:difference; }
.cursor-dot { position:absolute; width:8px; height:8px; background:#fff; border-radius:50%; transform:translate(-50%,-50%); will-change:transform; }
.cursor-ring { position:absolute; width:40px; height:40px; border:1.5px solid rgba(255,255,255,0.5); border-radius:50%; transform:translate(-50%,-50%); will-change:transform; }
@media (max-width:1024px) { .custom-cursor { display:none; } }

/* Background */
.bg-elements { position:fixed; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
.bg-grid { position:absolute; inset:0; background-image:linear-gradient(to right,rgba(128,128,128,0.04) 1px,transparent 1px),linear-gradient(to bottom,rgba(128,128,128,0.04) 1px,transparent 1px); background-size:60px 60px; }
.bg-glow { position:absolute; border-radius:50%; filter:blur(80px); }
.bg-glow-1 { top:-20%; right:-5%; width:50vw; height:50vh; background:radial-gradient(ellipse,rgba(77,124,255,0.05) 0%,transparent 70%); }
.bg-glow-2 { bottom:-20%; left:-5%; width:40vw; height:40vh; background:radial-gradient(ellipse,rgba(77,124,255,0.03) 0%,transparent 70%); }

/* Ticker */
.top-ticker { position:fixed; top:0; left:0; width:100%; height:var(--ticker-height); background:var(--ticker-bg); border-bottom:1px solid var(--border-subtle); display:flex; align-items:center; overflow:hidden; z-index:1000; font-size:0.72rem; color:var(--text-muted); }
.ticker-track { display:flex; white-space:nowrap; animation:ticker 60s linear infinite; gap:32px; padding-left:32px; }
.ticker-track span { display:flex; align-items:center; gap:6px; }
.ticker-track .dot { color:var(--accent); font-size:0.5rem; }
.ticker-track .icon-sm { color:var(--accent); width:12px; height:12px; }
@keyframes ticker { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@media (max-width:768px) { .top-ticker { display:none; } }

/* Buttons */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:100px; font-weight:600; font-size:0.9rem; transition:all 0.4s var(--ease-out-expo); cursor:pointer; position:relative; overflow:hidden; white-space:nowrap; }
.btn-accent { background:var(--accent); color:#fff; padding:16px 36px; }
.btn-accent:hover { transform:translateY(-2px); box-shadow:0 12px 40px var(--accent-glow); }
.btn-ghost { background:var(--btn-ghost-bg); border:1px solid var(--btn-ghost-border); color:var(--text-primary); padding:16px 36px; }
.btn-ghost:hover { background:var(--btn-ghost-hover-bg); border-color:var(--border-hover); transform:translateY(-2px); }
.btn-wa { background:#25D366; color:#fff; padding:16px 36px; }
.btn-wa:hover { background:#1ebe5a; transform:translateY(-2px); box-shadow:0 12px 40px rgba(37,211,102,0.3); }
.btn-shine { position:absolute; top:0; left:-100%; width:100%; height:100%; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.25),transparent); transition:left 0.5s; }
.btn:hover .btn-shine { left:100%; }
.btn-lg { padding:18px 44px; font-size:1rem; }

/* Shared */
.container { max-width:1200px; margin:0 auto; padding:0 48px; }
.ch-apply .container { max-width:700px; }
.page-main { padding-top:calc(var(--ticker-height) + var(--nav-height)); }
.section-badge { display:inline-flex; align-items:center; gap:8px; padding:6px 16px; border-radius:100px; background:var(--accent-dim); border:1px solid rgba(77,124,255,0.2); font-size:0.72rem; font-weight:600; color:var(--accent); font-family:var(--font-mono); text-transform:uppercase; letter-spacing:0.8px; margin-bottom:20px; }
.section-badge svg { width:13px; height:13px; }
.section-header { text-align:center; margin-bottom:64px; }
.section-title { font-family:var(--font-display); font-size:clamp(2rem,4vw,3rem); font-weight:700; line-height:1.15; color:var(--text-primary); margin-bottom:16px; }
.section-desc { font-size:1rem; color:var(--text-secondary); max-width:560px; margin:0 auto; line-height:1.7; }
.gradient-text { background:linear-gradient(135deg,var(--accent),#a78bfa); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }

/* ================================================
   HERO
   ================================================ */
.ch-hero { padding:40px 0 60px; text-align:center; }
.ch-hero-badge { margin-bottom:24px; }
.ch-hero-title { font-family:var(--font-display); font-size:clamp(2.2rem,4.5vw,4rem); font-weight:700; line-height:1.1; letter-spacing:-0.5px; margin-bottom:20px; max-width:800px; margin-left:auto; margin-right:auto; }
/* Per-line size control (set from the admin panel — Heading / Normal / Small) */
.ch-hero-title .ch-size-lg { font-size:1em; display:inline-block; }
.ch-hero-title .ch-size-md { font-size:0.68em; display:inline-block; }
.ch-hero-title .ch-size-sm { font-size:0.45em; display:inline-block; }
.ch-hero-title .ch-size-xs { font-size:0.32em; display:inline-block; }
.ch-hero-sub { font-size:1.05rem; color:var(--text-secondary); max-width:680px; margin:0 auto 48px; line-height:1.75; }

/* Video Box */
.ch-video-wrap { max-width:860px; margin:0 auto 48px; }
.ch-video-box {
    position:relative;
    border-radius:20px;
    overflow:hidden;
    border:1px solid var(--border-glass);
    background:#0a0a0e;
    aspect-ratio:16/9;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
}
.ch-video-box video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
/* YouTube/Vimeo facade — same full-box treatment as the <video>, showing
   the uploaded thumbnail (via inline background-image) until clicked. */
.ch-video-embed-facade {
    position:absolute; inset:0; width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    background:#0a0a0e; cursor:pointer;
}
.ch-video-embed-facade iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.ch-video-placeholder {
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:16px;
}
.ch-video-placeholder.hidden { display:none; }
.ch-video-play {
    width:80px; height:80px;
    border-radius:50%;
    background:rgba(77,124,255,0.9);
    display:flex; align-items:center; justify-content:center;
    transition:all 0.3s;
    border:2px solid rgba(255,255,255,0.2);
}
.ch-video-box:hover .ch-video-play { transform:scale(1.1); background:var(--accent); box-shadow:0 0 40px var(--accent-glow); }
.ch-video-play svg { width:32px; height:32px; color:#fff; margin-left:4px; }
.ch-video-label { font-size:0.85rem; color:var(--text-muted); font-family:var(--font-mono); }
.ch-hero-cta { display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; }

/* ================================================
   STUDENT RESULTS
   ================================================ */
.ch-results { padding:100px 0; }
.ch-results-carousel { position:relative; }
.ch-results-grid {
    display:flex;
    align-items:flex-start;
    gap:20px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    padding:4px 4px 16px;
    margin:0 -4px;
    -ms-overflow-style:none;
    scrollbar-width:none;
    /* Force a standard left-to-right scroll axis even when the page itself
       is in Arabic (dir=rtl). Browsers disagree on what scrollLeft actually
       means inside an RTL-direction scroller (three different conventions
       exist across Chrome/Safari/Firefox/mobile Safari), which is exactly
       why the "seamless loop" below kept working on desktop Chrome but
       breaking on mobile — the math assumed one convention while the
       browser used another. Keeping this container itself always LTR means
       scrollLeft behaves identically (0 = start, increasing = forward) on
       every browser, full stop. Text direction inside each card is restored
       separately below so Arabic content still reads correctly.               */
    direction:ltr;
}
html[dir="rtl"] .ch-results-grid .ch-result-card,
html[dir="rtl"] .ch-results-grid .ch-result-video-info { direction:rtl; }
.ch-results-grid::-webkit-scrollbar { display:none; }
/* Both screenshot ("result") cards and video cards now share ONE layout:
   a big vertical 9:16 media box (image or video) filling the top of the
   card edge-to-edge, matching the same 9:16 ratio the About page already
   uses for its testimonial video (i.e. a vertical, phone/reel-style
   shape) — then a compact footer below with a small avatar (photo or a
   letter fallback), the name, and a short line of text. This keeps every
   card in the row the exact same size regardless of card type. */
.ch-result-card {
    scroll-snap-align:start;
    flex:0 0 auto;
    width:280px;
    border-radius:16px;
    border:1px solid var(--border-glass);
    background:var(--card-bg);
    padding:0;
    transition:all 0.3s var(--ease-out-expo);
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
}
.ch-results-nav { display:flex; justify-content:center; gap:12px; margin-top:20px; }
.ch-results-nav-btn {
    width:44px; height:44px; border-radius:50%;
    border:1px solid var(--border-glass);
    background:var(--card-bg);
    color:var(--text-primary);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    transition:all 0.2s;
}
.ch-results-nav-btn:hover { background:var(--accent-dim); border-color:var(--accent); color:var(--accent); }
.ch-results-nav-btn:disabled { opacity:0.35; cursor:default; }
.ch-results-nav-btn:disabled:hover { background:var(--card-bg); border-color:var(--border-glass); color:var(--text-primary); }
.ch-results-nav-btn svg { width:20px; height:20px; }
.ch-result-card::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at top,var(--accent-dim),transparent 60%); opacity:0; transition:opacity 0.3s; pointer-events:none; z-index:1; }
.ch-result-card:hover { border-color:var(--border-hover); transform:translateY(-4px); }
.ch-result-card:hover::before { opacity:1; }

/* Big vertical media box — same fixed 9:16 ratio for both the screenshot
   image and the video, so every card in the row is identical in size no
   matter which type it is. */
.ch-result-media { position:relative; flex:none; width:100%; aspect-ratio:9/16; background:#05060a; display:flex; align-items:center; justify-content:center; overflow:hidden; isolation:isolate; }
.ch-result-media span { font-size:0.78rem; color:var(--text-muted); font-family:var(--font-mono); padding:0 16px; text-align:center; }
.ch-result-media img,
.ch-result-media video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ch-result-media video { cursor:pointer; }

/* Compact footer shared by every card: small avatar + name + short text. */
.ch-result-info { padding:14px 18px 18px; flex:none; }
.ch-result-identity { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.ch-result-avatar-sm { position:relative; width:36px; height:36px; border-radius:50%; flex-shrink:0; background:var(--accent-dim); border:2px solid var(--accent); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:0.85rem; font-weight:700; color:var(--accent); overflow:hidden; }
.ch-result-avatar-sm img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:50%; }
.ch-result-name { font-family:var(--font-display); font-size:0.95rem; font-weight:700; color:var(--text-primary); }
.ch-result-tag { font-size:0.78rem; color:var(--text-secondary); line-height:1.5; }
.ch-result-metric { margin-top:8px; display:flex; align-items:center; gap:6px; }
.ch-result-metric-val { font-family:var(--font-display); font-size:1rem; font-weight:700; color:var(--green); }
/* Made deliberately more prominent than a typical small muted label — this
   field is meant to hold the customer's actual review/quote text (for
   BOTH screenshot and video cards), not just a small metric caption, so it
   needs to read clearly rather than blend into the background. */
.ch-result-metric-label { font-size:0.85rem; color:var(--text-secondary); line-height:1.5; font-family:var(--font-body); }

/* ================================================
   STUDENT VIDEO TESTIMONIALS — rendered as extra cards inside the SAME
   results carousel (#chResultsGrid), right after the quote cards, so they
   scroll/loop together as one row instead of a separate section. They now
   share .ch-result-media / .ch-result-info with the screenshot cards above.
   ================================================ */
.ch-result-video-info .ch-result-identity { margin-bottom:0; }

/* Center play button. z-index is higher than the .ecn-vc-bar control strip
   (z-index:20, includes/video-controls.css) that video-controls.js attaches
   to every video, and isolation:isolate on .ch-result-media (above)
   guarantees this z-index is compared within that box's own stacking
   context, not fought over with anything else on the page.
   pointer-events is back to auto with its own direct click listener
   (coaching/script.js) — every OTHER control on this video (the bottom
   bar's play/±10s/stop buttons) works by listening on itself directly,
   so this button now follows the same proven pattern instead of relying
   only on the wrapper to catch the click. */
.video-play-btn { position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); width:56px; height:56px; border-radius:50%; background:rgba(77,124,255,0.9); border:2px solid rgba(255,255,255,0.2); display:flex; align-items:center; justify-content:center; transition:all 0.3s; z-index:25; cursor:pointer; pointer-events:auto; }
.video-play-btn svg { width:22px; height:22px; color:#fff; margin-left:3px; pointer-events:none; }
.ch-result-video-wrapper:hover .video-play-btn { transform:translate(-50%, -50%) scale(1.1); background:var(--accent); box-shadow:0 0 30px var(--accent-glow); }
.video-play-btn.hidden { opacity:0; pointer-events:none; }

/* The shared bottom control bar (includes/video-controls.css) only
   compacts itself (hides the "Stop" text, shrinks buttons) below a
   480px VIEWPORT width — but these result-carousel cards are a fixed
   280px wide starting at the 1024px breakpoint and up (i.e. on desktop
   laptops), which is narrower than the up-to-340px width these cards get
   on tablet/mobile. So on desktop specifically, the row's content (play +
   back + track + time + forward + "Stop" chip) is too wide for the card
   and the "Stop" label was getting clipped by this box's overflow:hidden.
   Apply the same compact treatment here regardless of viewport width. */
.ch-result-media .ecn-vc-bar { padding:6px 10px 10px; gap:4px; }
.ch-result-media .ecn-vc-btn { width:28px; height:28px; }
.ch-result-media .ecn-vc-time { font-size:10px; min-width:32px; }
.ch-result-media .ecn-vc-chip span { display:none; }
.ch-result-media .ecn-vc-chip { width:26px; height:26px; padding:0; border-radius:50%; }

/* ================================================
   PROGRAM SPECS
   ================================================ */
.ch-specs { padding:100px 0; }
.ch-specs-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.ch-spec-card {
    border-radius:16px;
    border:1px solid var(--border-subtle);
    background:var(--card-bg);
    padding:32px 24px;
    text-align:center;
    transition:all 0.3s;
}
.ch-spec-card:hover { border-color:var(--border-hover); transform:translateY(-4px); background:var(--bg-glass); }
.ch-spec-icon { font-size:2rem; margin-bottom:16px; }
.ch-spec-icon-svg { width:60px; height:60px; border-radius:16px; background:var(--accent-dim); border:1px solid rgba(77,124,255,0.2); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; color:var(--accent); transition:all 0.3s; }
.ch-spec-card:hover .ch-spec-icon-svg { background:var(--accent); color:#fff; border-color:var(--accent); box-shadow:0 0 28px var(--accent-glow); }
.ch-spec-title { font-family:var(--font-display); font-size:1rem; font-weight:700; color:var(--text-primary); margin-bottom:8px; }
.ch-spec-val { font-size:0.88rem; color:var(--text-secondary); line-height:1.5; }
.ch-spec-highlight { font-family:var(--font-display); font-size:1.3rem; font-weight:700; color:var(--accent); display:block; margin-bottom:4px; }

/* ================================================
   CURRICULUM (ACCORDION)
   ================================================ */
.ch-curriculum { padding:100px 0; }
.ch-acc-list { max-width:860px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
.ch-acc-item {
    border-radius:16px;
    border:1px solid var(--border-subtle);
    background:var(--card-bg);
    overflow:hidden;
    transition:border-color 0.3s;
}
.ch-acc-item.open { border-color:var(--accent); }
.ch-acc-header {
    display:flex;
    align-items:center;
    gap:16px;
    padding:24px 28px;
    cursor:pointer;
    transition:background 0.2s;
}
.ch-acc-header:hover { background:var(--btn-ghost-hover-bg); }
.ch-acc-num { font-family:var(--font-mono); font-size:0.72rem; font-weight:700; color:var(--accent); background:var(--accent-dim); border-radius:8px; padding:4px 10px; flex-shrink:0; }
.ch-acc-title { flex:1; font-family:var(--font-display); font-size:1rem; font-weight:600; color:var(--text-primary); }
.ch-acc-goal-line { font-size:0.8rem; color:var(--text-muted); margin-top:4px; }
.ch-acc-toggle { width:32px; height:32px; border-radius:50%; border:1px solid var(--border-glass); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all 0.3s; }
.ch-acc-toggle svg { width:16px; height:16px; color:var(--text-muted); transition:transform 0.4s var(--ease-out-expo); }
.ch-acc-item.open .ch-acc-toggle { background:var(--accent); border-color:var(--accent); }
.ch-acc-item.open .ch-acc-toggle svg { transform:rotate(45deg); color:#fff; }
.ch-acc-body { max-height:0; overflow:hidden; transition:max-height 0.45s var(--ease-out-quart); }
.ch-acc-body-inner { padding:0 28px 28px; }
.ch-acc-goal { font-size:0.88rem; color:var(--text-secondary); line-height:1.7; margin-bottom:20px; padding-left:16px; border-left:2px solid var(--accent); }
.ch-acc-topics-title { font-size:0.78rem; font-weight:700; color:var(--text-muted); font-family:var(--font-mono); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:12px; }
.ch-acc-topics { list-style:none; display:flex; flex-direction:column; gap:8px; margin-bottom:20px; }
.ch-acc-topics li { display:flex; align-items:flex-start; gap:10px; font-size:0.87rem; color:var(--text-secondary); line-height:1.5; }
.ch-acc-topics li::before { content:'→'; color:var(--accent); flex-shrink:0; font-weight:700; }
.ch-acc-outcome { display:flex; align-items:flex-start; gap:10px; font-size:0.87rem; color:var(--text-primary); background:var(--green-dim); border:1px solid rgba(52,211,153,0.15); border-radius:10px; padding:12px 16px; }
.ch-acc-outcome svg { width:16px; height:16px; color:var(--green); flex-shrink:0; margin-top:2px; }

/* ================================================
   FAQ
   ================================================ */
.ch-faq { padding:100px 0; }
.ch-faq-list { max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
.ch-faq-item { border-radius:14px; border:1px solid var(--border-subtle); background:var(--card-bg); overflow:hidden; transition:border-color 0.3s; }
.ch-faq-item.open { border-color:var(--border-hover); }
.ch-faq-q { display:flex; align-items:center; justify-content:space-between; padding:22px 28px; cursor:pointer; gap:16px; }
.ch-faq-q-text { font-size:0.95rem; font-weight:600; color:var(--text-primary); line-height:1.4; }
.ch-faq-icon { width:28px; height:28px; border-radius:50%; border:1px solid var(--border-glass); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all 0.3s; }
.ch-faq-icon svg { width:14px; height:14px; color:var(--text-muted); transition:transform 0.3s; }
.ch-faq-item.open .ch-faq-icon { background:var(--accent); border-color:var(--accent); }
.ch-faq-item.open .ch-faq-icon svg { transform:rotate(45deg); color:#fff; }
.ch-faq-a { max-height:0; overflow:hidden; transition:max-height 0.4s var(--ease-out-quart); }
.ch-faq-a-inner { padding:0 28px 22px; font-size:0.88rem; color:var(--text-secondary); line-height:1.75; }

/* ================================================
   APPLICATION FORM
   ================================================ */
.ch-apply { padding:100px 0; }
.ch-apply-box {
    border-radius:24px;
    border:1px solid var(--accent);
    background:rgba(77,124,255,0.05);
    padding:40px 32px;
    position:relative;
    overflow:hidden;
    max-width:600px;
    margin:0 auto;
}
.ch-apply-box::before { content:''; position:absolute; top:-40%; left:50%; transform:translateX(-50%); width:60%; height:200px; background:radial-gradient(ellipse,rgba(77,124,255,0.15),transparent 70%); filter:blur(40px); pointer-events:none; }
.ch-apply-header { text-align:center; margin-bottom:32px; position:relative; }
.ch-apply-urgency { display:inline-flex; align-items:center; gap:8px; background:rgba(255,80,80,0.1); border:1px solid rgba(255,80,80,0.2); color:#ff6b6b; border-radius:100px; padding:6px 16px; font-size:0.78rem; font-weight:600; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:20px; }
.ch-apply-urgency::before { content:''; width:8px; height:8px; border-radius:50%; background:#ff6b6b; animation:pulse 1.5s ease-in-out infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.6;transform:scale(1.3)} }
.ch-apply-title { font-family:var(--font-display); font-size:clamp(1.5rem,2.5vw,2rem); font-weight:700; color:var(--text-primary); margin-bottom:10px; }
.ch-apply-desc { font-size:0.88rem; color:var(--text-secondary); max-width:540px; margin:0 auto; line-height:1.65; }

/* Form */
.ch-form { position:relative; }
.ch-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:16px; }
.ch-form-group { display:flex; flex-direction:column; gap:8px; }
.ch-form-group.full { grid-column:1/-1; }
.ch-form-label { font-size:0.82rem; font-weight:600; color:var(--text-primary); }
.ch-form-input,
.ch-form-select,
.ch-form-textarea {
    background:var(--form-bg);
    border:1px solid var(--form-border);
    border-radius:10px;
    padding:11px 14px;
    font-family:var(--font-body);
    font-size:0.85rem;
    color:var(--text-primary);
    transition:all 0.3s;
    outline:none;
    width:100%;
}
.ch-form-input:focus, .ch-form-select:focus, .ch-form-textarea:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--form-focus); }
.ch-form-input::placeholder, .ch-form-textarea::placeholder { color:var(--text-muted); }
.ch-form-select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B6B78' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:44px; cursor:pointer; background-color:var(--bg-void); }
.ch-form-select option { background:var(--bg-void); color:var(--text-primary); }
.ch-form-note { font-size:0.8rem; color:var(--text-muted); margin-top:4px; }
.ch-form-submit { display:flex; flex-direction:column; align-items:center; gap:10px; margin-top:24px; }
.ch-form-submit-btn { width:100%; max-width:360px; padding:14px; font-size:0.92rem; font-weight:700; background:var(--accent); color:#fff; border:none; border-radius:12px; cursor:pointer; transition:all 0.3s; display:flex; align-items:center; justify-content:center; gap:10px; }
.ch-form-submit-btn:hover { background:#3a6ae8; transform:translateY(-2px); box-shadow:0 12px 40px var(--accent-glow); }
.ch-form-privacy { font-size:0.78rem; color:var(--text-muted); text-align:center; }
.ch-form-privacy svg { width:12px; height:12px; display:inline-block; vertical-align:middle; margin-right:4px; }

/* Success State */
.ch-form-success { display:none; text-align:center; padding:48px 24px; }
.ch-form-success.show { display:block; }
.ch-form-success-icon { width:72px; height:72px; border-radius:50%; background:var(--green-dim); border:2px solid var(--green); display:flex; align-items:center; justify-content:center; margin:0 auto 24px; }
.ch-form-success-icon svg { width:36px; height:36px; color:var(--green); }
.ch-form-success h3 { font-family:var(--font-display); font-size:1.6rem; font-weight:700; color:var(--text-primary); margin-bottom:12px; }
.ch-form-success p { font-size:0.95rem; color:var(--text-secondary); line-height:1.7; }

/* ================================================
   ONE-TIME CONSULTATION
   ================================================ */
.ch-consult { padding:100px 0 120px; scroll-margin-top: 100px; }
.ch-consult-box {
    border-radius:24px;
    border:1px solid var(--border-glass);
    background:var(--card-bg);
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
    overflow:hidden;
    transition: box-shadow 0.4s ease, border-color 0.4s ease;
}
/* Arrival highlight when someone opens a direct link to /coaching/#consultation */
.ch-consult-box.link-highlight {
    border-color: var(--accent);
    box-shadow: 0 0 0 4px var(--accent-glow, rgba(74,111,255,0.25));
    animation: consultPulse 1.4s ease-in-out 2;
}
@keyframes consultPulse {
    0%, 100% { box-shadow: 0 0 0 4px var(--accent-glow, rgba(74,111,255,0.25)); }
    50% { box-shadow: 0 0 0 10px rgba(74,111,255,0.05); }
}
.ch-consult-left { padding:56px 48px; }
.ch-consult-right { padding:56px 48px; border-left:1px solid var(--border-subtle); display:flex; flex-direction:column; justify-content:center; }
.ch-consult-tag { display:inline-flex; align-items:center; gap:8px; background:var(--btn-ghost-bg); border:1px solid var(--border-glass); border-radius:100px; padding:6px 14px; font-size:0.75rem; font-weight:600; color:var(--text-muted); font-family:var(--font-mono); margin-bottom:20px; }
.ch-consult-title { font-family:var(--font-display); font-size:clamp(1.5rem,2.5vw,2rem); font-weight:700; color:var(--text-primary); margin-bottom:16px; line-height:1.2; }
.ch-consult-desc { font-size:0.92rem; color:var(--text-secondary); line-height:1.75; margin-bottom:28px; }
.ch-consult-features { list-style:none; display:flex; flex-direction:column; gap:10px; margin-bottom:32px; }
.ch-consult-features li { display:flex; align-items:center; gap:10px; font-size:0.88rem; color:var(--text-secondary); }
.ch-consult-features li svg { width:16px; height:16px; color:var(--green); flex-shrink:0; }
.ch-consult-price-block { text-align:center; padding:32px; background:var(--btn-ghost-bg); border-radius:16px; border:1px solid var(--border-glass); margin-bottom:28px; }
.ch-consult-price-label { font-size:0.78rem; color:var(--text-muted); font-family:var(--font-mono); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:12px; }
.ch-consult-price { font-family:var(--font-display); font-size:3rem; font-weight:700; color:var(--text-primary); line-height:1; }
.ch-consult-price span { font-size:1rem; color:var(--text-muted); }
.ch-consult-duration { font-size:0.85rem; color:var(--text-muted); margin-top:8px; }
.ch-consult-book-btn { display:block; width:100%; text-align:center; padding:16px; background:var(--accent); color:#fff; border-radius:12px; font-size:0.95rem; font-weight:700; transition:all 0.3s; cursor:pointer; border:none; font-family:var(--font-body); }
.ch-consult-book-btn:hover { background:#3a6ae8; transform:translateY(-2px); box-shadow:0 12px 40px var(--accent-glow); }
.ch-consult-note { font-size:0.78rem; color:var(--text-muted); text-align:center; margin-top:12px; }

/* ================================================
   RESPONSIVE
   ================================================ */
@media (max-width: 1024px) {
    .ch-specs-grid { grid-template-columns:repeat(2,1fr); }
    .ch-result-card { width:85vw; max-width:340px; }
    .ch-consult-box { grid-template-columns:1fr; }
    .ch-consult-right { border-left:none; border-top:1px solid var(--border-subtle); }
    .ch-apply-box { padding:48px 32px; }
}
@media (max-width: 768px) {
    .container { padding:0 24px; }
    .page-main { padding-top:64px; }
    .ch-hero { padding:24px 0 60px; }
    .ch-results, .ch-specs, .ch-curriculum, .ch-faq, .ch-apply, .ch-consult { padding:70px 0; }
    .ch-specs-grid { grid-template-columns:repeat(2,1fr); }
    .ch-form-grid { grid-template-columns:1fr; }
    .ch-consult-left, .ch-consult-right { padding:36px 28px; }
    .ch-apply-box { padding:36px 24px; }
    .ch-acc-header { padding:18px 20px; }
    .ch-acc-body-inner { padding:0 20px 20px; }
    .ch-consult { scroll-margin-top: 80px; }
}
@media (max-width: 480px) {
    /* Keep the "Program Details" cards 2-per-row instead of stacking them
       one under another — stacking made the page much longer on mobile. */
    .ch-specs-grid { grid-template-columns:repeat(2,1fr); gap:12px; }
    .ch-spec-card { padding:20px 14px; }
    .ch-spec-icon-svg { width:44px; height:44px; margin-bottom:10px; }
    .ch-spec-icon-svg svg { width:24px; height:24px; }
    .ch-spec-title { font-size:0.82rem; margin-bottom:4px; }
    .ch-spec-highlight { font-size:1.05rem; }
    .ch-spec-val { font-size:0.76rem; }
    .ch-hero-title { font-size:2rem; }
    .ch-consult-price { font-size:2.2rem; }
}

.price-equivalent { font-size: 15px; color: var(--text-secondary); font-weight: 600; margin-top: 4px; }

.price-currency-label { display: block; font-size: 0.32em; font-weight: 600; letter-spacing: 0.5px; color: var(--text-secondary); margin-top: 4px; }

/* Override the generic ".ch-consult-price span" rule so our price-main-value
   wrapper keeps the full big/bold price styling instead of being shrunk. */
.ch-consult-price .price-main-value { font-size: inherit; font-weight: inherit; color: inherit; }
.ch-consult-price .price-main-value .price-currency-label { font-size: 0.32em; font-weight: 600; color: var(--text-muted); }
