/* ITI Corporate Training — v4 Design
   Fonts: Raleway (headings) + Roboto (body)
   Colors: --blue #1a9fd4 | --navy #0a1a2f | --red #c41230 | --sky #7fd3f5
   Layout inspired by iti.html editorial style
*/

:root {
  --blue: #1a9fd4;
  --blue-deep: #1188bb;
  --navy: #0a1a2f;
  --navy-soft: #14274a;
  --red: #c41230;
  --sky: #7fd3f5;
  --bg: #f4f8fb;
  --ink: #0a1a2f;
  --ink-soft: #3b4a63;
  --muted: #6b7a92;
  --line: #d9e3ed;
  --line-soft: #e8eef5;
  --paper: #ffffff;
  --shadow-sm: 0 1px 2px rgba(10,26,47,.05);
  --shadow-md: 0 10px 28px rgba(10,26,47,.08), 0 2px 6px rgba(10,26,47,.04);
  --shadow-lg: 0 28px 70px rgba(10,26,47,.14), 0 8px 20px rgba(10,26,47,.06);
  --r: 14px;
  --r-lg: 22px;
  --r-xl: 32px;
  --ease-out: cubic-bezier(.22,1,.36,1);
  --ease-pop: cubic-bezier(.34,1.56,.64,1);
  --f-head: 'Raleway', system-ui, sans-serif;
  --f-body: 'Roboto', system-ui, sans-serif;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent; }
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--ink); font-family:var(--f-body); font-size:15px; line-height:1.7; letter-spacing:.01em; word-spacing:.04em; -webkit-font-smoothing:antialiased; overflow-x:clip; }
::selection { background:var(--blue); color:#fff; }
h1,h2,h3,h4,h5 { font-family:var(--f-head); font-weight:800; letter-spacing:-.025em; color:var(--navy); margin:0; line-height:1.12; }
p { margin:0; line-height:1.75; }
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul { list-style:none; }
img { display:block; max-width:100%; }

/* ── SCROLL PROGRESS ── */
.scroll-progress { position:fixed; top:0; left:0; height:3px; width:0%; background:linear-gradient(90deg,var(--blue),var(--red)); z-index:200; transition:width .08s linear; pointer-events:none; }

/* ── NOISE ── */
.noise { position:fixed; inset:0; pointer-events:none; opacity:.03; z-index:1; mix-blend-mode:multiply; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* ── LOADER ── */
.v4-loader { position:fixed; inset:0; z-index:999; background:var(--navy); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px; transition:opacity .5s ease, visibility .5s ease; }
.v4-loader.hide { opacity:0; visibility:hidden; }
.v4-loader-logo { width:80px; height:80px; border-radius:20px; overflow:hidden; }
.v4-loader-logo img { width:100%; height:100%; object-fit:contain; }
.v4-loader-bar { width:160px; height:2px; background:rgba(255,255,255,.1); border-radius:2px; overflow:hidden; }
.v4-loader-bar i { display:block; height:100%; width:0; background:var(--blue); animation:loaderBar 1.4s var(--ease-out) forwards; }
@keyframes loaderBar { to { width:100%; } }

/* ── NAVBAR ── */
.v4-nav { position:sticky; top:16px; z-index:50; margin:16px 24px 0; display:flex; justify-content:space-between; align-items:center; pointer-events:none; transition:transform .4s var(--ease-out); }
.v4-nav.hidden { transform:translateY(-140%); }
.v4-nav > * { pointer-events:auto; }
.v4-brand { display:flex; align-items:center; gap:12px; background:rgba(255,255,255,.88); backdrop-filter:blur(14px); padding:8px 18px 8px 10px; border-radius:999px; border:1px solid var(--line); box-shadow:var(--shadow-sm); transition:transform .2s; }
.v4-brand:hover { transform:translateY(-1px); }
.v4-brand-logo { width:36px; height:36px; border-radius:10px; overflow:hidden; background:var(--navy); display:flex; align-items:center; justify-content:center; }
.v4-brand-logo img { width:100%; height:100%; object-fit:contain; }
.v4-brand-txt strong { display:block; font-family:var(--f-head); font-weight:800; font-size:13px; color:var(--navy); letter-spacing:-.01em; }
.v4-brand-txt span { display:block; font-size:9.5px; color:var(--muted); letter-spacing:.1em; text-transform:uppercase; margin-top:1px; }
.v4-nav-links { display:flex; align-items:center; gap:2px; background:rgba(255,255,255,.88); backdrop-filter:blur(14px); padding:5px; border-radius:999px; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.v4-nav-links a { padding:8px 16px; border-radius:999px; font-size:13px; font-weight:700; font-family:var(--f-head); color:var(--ink-soft); transition:all .2s; }
.v4-nav-links a:hover { color:var(--navy); background:rgba(26,159,212,.1); }
.v4-nav-cta { display:flex; align-items:center; gap:10px; }
.btn-ghost-nav { padding:10px 18px; font-size:13px; font-weight:700; font-family:var(--f-head); color:var(--navy); background:rgba(255,255,255,.88); backdrop-filter:blur(14px); border:1px solid var(--line); border-radius:999px; transition:all .2s; display:inline-flex; align-items:center; gap:6px; }
.btn-ghost-nav:hover { border-color:var(--navy); transform:translateY(-1px); }
.btn-primary-nav { padding:11px 22px; font-size:13px; font-weight:800; font-family:var(--f-head); color:#fff; background:var(--red); border-radius:999px; box-shadow:0 6px 22px rgba(196,18,48,.3); transition:all .3s var(--ease-pop); display:inline-flex; align-items:center; gap:8px; position:relative; overflow:hidden; }
.btn-primary-nav::before { content:''; position:absolute; inset:0; background:var(--navy); transform:translateY(100%); transition:transform .4s var(--ease-out); }
.btn-primary-nav:hover::before { transform:translateY(0); }
.btn-primary-nav:hover { transform:translateY(-2px); box-shadow:0 14px 32px rgba(10,26,47,.28); }
.btn-primary-nav > * { position:relative; z-index:1; }
.btn-primary-nav svg { width:13px; height:13px; transition:transform .3s; }
.btn-primary-nav:hover svg { transform:translateX(3px); }

/* ── HERO ── */
.v4-hero { padding:40px 24px 80px; min-height:calc(100vh - 100px); display:flex; align-items:center; position:relative; }
.v4-hero-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:48px; width:100%; align-items:center; }
.v4-eyebrow { display:inline-flex; align-items:center; gap:10px; font-size:11px; font-weight:700; color:var(--ink-soft); letter-spacing:.06em; text-transform:uppercase; margin-bottom:28px; }
.v4-eyebrow-dot { width:7px; height:7px; border-radius:50%; background:var(--blue); box-shadow:0 0 0 5px rgba(26,159,212,.18); animation:pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%,100% { box-shadow:0 0 0 5px rgba(26,159,212,.18); } 50% { box-shadow:0 0 0 9px rgba(26,159,212,0); } }
.v4-hero-title { font-size:clamp(44px,6.5vw,88px); font-weight:900; letter-spacing:-.04em; line-height:.93; color:var(--navy); }
.v4-hero-title .line { display:block; overflow:hidden; padding-bottom:.05em; }
.v4-hero-title .word { display:inline-block; transform:translateY(110%); animation:wordRise .9s var(--ease-out) forwards; }
.v4-hero-title em { font-style:italic; font-family:'Georgia',serif; color:var(--blue); font-weight:400; letter-spacing:-.02em; }
.v4-hero-title .underlined { position:relative; }
.v4-hero-title .underlined::after { content:''; position:absolute; left:-2%;right:-2%;bottom:10%;height:16%;background:var(--sky);opacity:0;z-index:-1;border-radius:2px;transform:scaleX(0);transform-origin:left;animation:underline .8s var(--ease-out) 1.4s forwards; }
@keyframes wordRise { to { transform:translateY(0); } }
@keyframes underline { to { opacity:.45; transform:scaleX(1); } }
.v4-cursor { display:inline-block; width:5px; height:.8em; background:var(--red); vertical-align:-.05em; margin-left:3px; animation:blink 1s steps(2) infinite; }
@keyframes blink { 50% { opacity:0; } }
.v4-hero-sub { margin-top:24px; font-size:16px; color:var(--ink-soft); max-width:500px; line-height:1.75; }
.v4-hero-cta { margin-top:32px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.v4-btn-primary { padding:14px 26px; font-size:14px; font-weight:800; font-family:var(--f-head); color:#fff; background:var(--red); border-radius:999px; box-shadow:0 6px 22px rgba(196,18,48,.28); transition:all .3s var(--ease-pop); display:inline-flex; align-items:center; gap:8px; position:relative; overflow:hidden; }
.v4-btn-primary::before { content:''; position:absolute; inset:0; background:var(--navy); transform:translateY(100%); transition:transform .4s var(--ease-out); }
.v4-btn-primary:hover::before { transform:translateY(0); }
.v4-btn-primary:hover { transform:translateY(-2px); box-shadow:0 14px 32px rgba(10,26,47,.3); }
.v4-btn-primary > * { position:relative; z-index:1; }
.v4-btn-ghost { padding:13px 24px; font-size:14px; font-weight:700; font-family:var(--f-head); color:var(--navy); border:1.5px solid var(--line); border-radius:999px; transition:all .2s; display:inline-flex; align-items:center; gap:8px; }
.v4-btn-ghost:hover { border-color:var(--navy); transform:translateY(-1px); }
.v4-hero-trust { margin-top:56px; display:flex; align-items:center; gap:20px; padding-top:24px; border-top:1px dashed var(--line); }
.v4-avs { display:flex; }
.v4-av { width:36px; height:36px; border-radius:50%; border:2px solid var(--bg); background:var(--blue); margin-left:-9px; font-family:var(--f-head); font-weight:800; color:#fff; font-size:11px; display:flex; align-items:center; justify-content:center; }
.v4-av:first-child { margin-left:0; }
.v4-av:nth-child(2) { background:var(--navy); }
.v4-av:nth-child(3) { background:var(--red); }
.v4-av:nth-child(4) { background:var(--sky); color:var(--navy); }
.v4-trust-txt strong { display:block; font-family:var(--f-head); font-weight:800; font-size:13px; color:var(--navy); }
.v4-trust-txt span { font-size:11.5px; color:var(--muted); }

/* hero right */
.v4-hero-right { position:relative; min-height:520px; }
.v4-hero-img { position:absolute; inset:0; border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--shadow-lg); background:var(--navy); }
.v4-hero-img img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease-out); }
.v4-hero-img:hover img { transform:scale(1.04); }
.v4-hero-img-ov { position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,26,47,.15) 0%,rgba(10,26,47,.65) 100%); }
.v4-hero-overlay { position:absolute; bottom:28px; left:28px; right:28px; color:#fff; }
.v4-hero-tag { display:inline-block; padding:5px 14px; background:var(--red); color:#fff; font-family:var(--f-head); font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; border-radius:999px; margin-bottom:14px; }
.v4-hero-overlay h3 { color:#fff; font-size:20px; font-weight:800; letter-spacing:-.02em; }
.v4-hero-overlay p { font-size:12px; opacity:.8; margin-top:6px; }
.v4-hero-corner { position:absolute; top:-20px; left:-20px; background:var(--navy); color:#fff; width:88px; height:88px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:var(--f-head); font-weight:900; text-align:center; line-height:1; box-shadow:var(--shadow-md); transform:rotate(-8deg); z-index:2; animation:floaty 4s ease-in-out infinite; }
.v4-hero-corner strong { font-size:26px; color:var(--sky); }
.v4-hero-corner span { font-size:8px; text-transform:uppercase; letter-spacing:.16em; margin-top:4px; opacity:.8; }
@keyframes floaty { 0%,100% { transform:rotate(-8deg) translateY(0); } 50% { transform:rotate(-6deg) translateY(-5px); } }
.v4-live-card { position:absolute; bottom:-24px; right:-24px; width:240px; background:var(--paper); border-radius:var(--r); padding:16px 18px; box-shadow:var(--shadow-lg); border:1px solid var(--line); }
.v4-live-hdr { display:flex; align-items:center; gap:8px; font-size:9.5px; letter-spacing:.14em; color:var(--muted); margin-bottom:12px; font-weight:700; text-transform:uppercase; }
.v4-live-dot { width:7px; height:7px; border-radius:50%; background:#1eaf63; animation:livePulse 1.5s ease-in-out infinite; }
@keyframes livePulse { 0%,100% { box-shadow:0 0 0 0 rgba(30,175,99,.55); } 50% { box-shadow:0 0 0 6px rgba(30,175,99,0); } }
.v4-live-row { display:flex; justify-content:space-between; align-items:baseline; padding:9px 0; border-top:1px solid var(--line); font-size:12px; }
.v4-live-row span { color:var(--muted); font-size:11px; }
.v4-live-row strong { color:var(--navy); font-family:var(--f-head); font-weight:800; font-size:12px; }

/* ── MARQUEE ── */
.v4-marquee { background:var(--navy); color:rgba(255,255,255,.75); padding:20px 0; margin:0 24px; border-radius:var(--r-lg); overflow:hidden; display:flex; align-items:center; gap:20px; position:relative; margin-top:40px; }
.v4-marquee::before,.v4-marquee::after { content:''; position:absolute; top:0;bottom:0;width:80px;z-index:2;pointer-events:none; }
.v4-marquee::before { left:0; background:linear-gradient(90deg,var(--navy),transparent); }
.v4-marquee::after { right:0; background:linear-gradient(-90deg,var(--navy),transparent); }
.v4-marquee-lbl { flex-shrink:0; padding-left:28px; font-size:10px; letter-spacing:.18em; color:var(--sky); z-index:3; font-weight:700; text-transform:uppercase; white-space:nowrap; }
.v4-marquee-track { display:flex; animation:marquee 130s linear infinite; white-space:nowrap; }
.v4-marquee-row { display:flex; gap:24px; align-items:center; padding-right:24px; font-family:var(--f-head); font-weight:800; font-size:16px; letter-spacing:.03em; }
.v4-marquee-row .dot { color:var(--blue); font-size:12px; }
@keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* ── STATS ── */
.v4-stats { margin:40px 24px 0; background:var(--navy); border-radius:var(--r-xl); padding:52px; display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr 1fr; gap:32px; align-items:center; position:relative; overflow:hidden; }
.v4-stats::before { content:''; position:absolute; top:-50%;right:-10%;width:60%;height:200%;background:radial-gradient(ellipse,rgba(26,159,212,.18) 0%,transparent 60%);pointer-events:none;animation:drift 18s ease-in-out infinite; }
@keyframes drift { 0%,100% { transform:translate(0,0); } 50% { transform:translate(-24px,16px); } }
.v4-stats-lbl .kicker { font-size:10px; font-weight:700; letter-spacing:.16em; color:var(--sky); display:block; margin-bottom:12px; text-transform:uppercase; }
.v4-stats-lbl h2 { color:#fff; font-size:22px; letter-spacing:-.02em; font-weight:700; line-height:1.2; }
.v4-stat { position:relative; z-index:1; }
.v4-stat strong { display:block; font-family:var(--f-head); font-size:clamp(36px,4vw,58px); font-weight:900; letter-spacing:-.035em; line-height:1; color:#fff; }
.v4-stat span { display:block; margin-top:10px; font-size:12px; color:rgba(255,255,255,.55); line-height:1.45; }

/* ── SECTION BASE ── */
.v4-sec { padding:100px 24px; }
.v4-sec-hdr { display:grid; grid-template-columns:1fr 1.3fr; gap:56px; margin-bottom:52px; align-items:end; }
.kicker { font-size:10px; font-weight:700; letter-spacing:.18em; color:var(--blue); text-transform:uppercase; display:inline-block; }
.v4-sec-hdr h2 { font-size:clamp(36px,4.2vw,58px); margin-top:14px; letter-spacing:-.03em; font-weight:800; }
.v4-sec-hdr .sub { color:var(--ink-soft); font-size:15px; max-width:500px; line-height:1.75; }

/* ── ABOUT ── */
.v4-about { background:var(--paper); border-radius:var(--r-xl); margin:0 24px; padding:80px 60px; display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:center; }
.v4-about-visual { position:relative; aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden; background:linear-gradient(180deg,rgba(10,26,47,.1) 0%,rgba(10,26,47,.7) 100%); }
.v4-about-visual img { width:100%; height:100%; object-fit:cover; }
.v4-about-tag { position:absolute; bottom:24px; left:24px; right:24px; color:#fff; }
.v4-about-tag em { display:block; font-style:normal; font-size:10px; font-weight:700; letter-spacing:.18em; color:var(--sky); margin-bottom:6px; text-transform:uppercase; }
.v4-about-tag strong { font-family:var(--f-head); font-size:20px; font-weight:800; letter-spacing:-.02em; }
.v4-about-badge { position:absolute; top:20px; right:20px; background:var(--paper); padding:14px 16px; border-radius:var(--r); box-shadow:var(--shadow-md); display:flex; align-items:center; gap:12px; transform:rotate(2deg); animation:floatyAlt 5s ease-in-out infinite; }
@keyframes floatyAlt { 0%,100% { transform:rotate(2deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-4px); } }
.v4-about-badge .num { font-size:28px; font-weight:900; color:var(--red); letter-spacing:-.03em; font-family:var(--f-head); }
.v4-about-badge .lbl { font-size:10px; color:var(--ink-soft); font-weight:700; max-width:80px; line-height:1.3; }
.v4-about-content h3 { font-size:clamp(28px,3vw,40px); margin-bottom:18px; margin-top:16px; font-weight:800; letter-spacing:-.025em; }
.v4-about-lede { color:var(--ink-soft); margin-bottom:32px; font-size:14px; max-width:520px; line-height:1.7; }
.v4-about-feats { display:grid; grid-template-columns:1fr 1fr; gap:24px 28px; margin-bottom:36px; }
.v4-feat { display:flex; flex-direction:column; gap:5px; }
.v4-feat-icon { width:38px; height:38px; border-radius:10px; background:rgba(26,159,212,.1); color:var(--blue); display:flex; align-items:center; justify-content:center; margin-bottom:6px; transition:all .3s var(--ease-pop); }
.v4-feat:hover .v4-feat-icon { background:var(--blue); color:#fff; transform:scale(1.08) rotate(-4deg); }
.v4-feat-icon svg { width:17px; height:17px; }
.v4-feat h4 { font-size:15px; font-weight:800; letter-spacing:-.01em; }
.v4-feat p { font-size:14px; color:var(--ink-soft); line-height:1.7; }

/* ── SERVICES ── */
.v4-services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:36px; }
.v4-svc { background:var(--paper); border-radius:var(--r-lg); padding:28px; border:1px solid var(--line); transition:all .3s var(--ease-out); }
.v4-svc:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:transparent; }
.v4-svc-icon { width:44px; height:44px; border-radius:12px; background:rgba(26,159,212,.1); color:var(--blue); display:flex; align-items:center; justify-content:center; font-size:20px; margin-bottom:16px; transition:all .3s var(--ease-pop); }
.v4-svc:hover .v4-svc-icon { background:var(--blue); color:#fff; transform:scale(1.08) rotate(-4deg); }
.v4-svc h4 { font-size:16px; font-weight:800; letter-spacing:-.015em; margin-bottom:8px; }
.v4-svc p { font-size:13px; color:var(--ink-soft); line-height:1.65; }

/* ── COURSES ── */
.v4-course-filter { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px; }
.v4-filter-btn { padding:9px 18px; border-radius:999px; font-family:var(--f-head); font-size:13px; font-weight:700; color:var(--ink-soft); background:var(--paper); border:1px solid var(--line); transition:all .2s; }
.v4-filter-btn:hover { border-color:var(--blue); color:var(--navy); }
.v4-filter-btn.active { background:var(--navy); border-color:var(--navy); color:#fff; }
.v4-courses-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.v4-course-card { background:var(--paper); border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); display:flex; flex-direction:column; transition:all .35s var(--ease-out); }
.v4-course-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent; }
.v4-course-thumb { height:170px; position:relative; overflow:hidden; }
.v4-course-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease-out); }
.v4-course-card:hover .v4-course-thumb img { transform:scale(1.06); }
.v4-course-thumb-ov { position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(10,26,47,.7) 100%); }
.v4-course-tag { position:absolute; top:12px; right:12px; background:rgba(255,255,255,.94); color:var(--navy); font-family:var(--f-head); font-size:10px; font-weight:800; padding:4px 10px; border-radius:999px; letter-spacing:.06em; text-transform:uppercase; }
.v4-course-chips { position:absolute; bottom:12px; left:12px; display:flex; gap:6px; }
.v4-chip { background:rgba(10,26,47,.8); color:#fff; font-size:10px; font-weight:700; padding:3px 8px; border-radius:4px; letter-spacing:.04em; backdrop-filter:blur(8px); }
.v4-course-body { padding:20px; flex:1; display:flex; flex-direction:column; }
.v4-course-body h3 { font-size:17px; margin-bottom:8px; letter-spacing:-.015em; font-weight:800; }
.v4-course-body > p { font-size:12.5px; color:var(--ink-soft); margin-bottom:16px; line-height:1.65; flex:1; }
.v4-course-meta { display:flex; justify-content:space-between; align-items:center; padding-top:14px; border-top:1px solid var(--line); }
.v4-course-price { font-family:var(--f-head); font-weight:800; font-size:17px; color:var(--navy); letter-spacing:-.02em; }
.v4-course-price span { font-size:11px; color:var(--muted); font-weight:500; margin-left:3px; }
.v4-course-arr { width:34px; height:34px; border-radius:50%; background:rgba(26,159,212,.12); color:var(--blue); display:flex; align-items:center; justify-content:center; transition:all .3s var(--ease-pop); }
.v4-course-card:hover .v4-course-arr { background:var(--blue); color:#fff; transform:rotate(-45deg); }
.v4-course-arr svg { width:14px; height:14px; }

/* ── TRACK RECORD ── */
.v4-track { background:linear-gradient(160deg,#f0f6fa 0%,#e2eef5 100%); border-radius:var(--r-xl); margin:0 24px; padding:80px 60px; position:relative; overflow:hidden; }
.v4-track::before { content:''; position:absolute; top:-80px;right:-80px;width:360px;height:360px;border:1px dashed rgba(26,159,212,.28);border-radius:50%;animation:spin 60s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.v4-track-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:48px; position:relative; z-index:1; }
.v4-track-card { background:var(--paper); border-radius:var(--r); padding:24px; border:1px solid var(--line-soft); transition:all .3s var(--ease-out); cursor:pointer; }
.v4-track-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.v4-track-year { display:inline-block; font-size:9.5px; color:var(--blue); letter-spacing:.16em; margin-bottom:14px; font-weight:700; text-transform:uppercase; }
.v4-track-card h4 { font-size:15px; letter-spacing:-.015em; font-weight:800; margin-bottom:10px; min-height:38px; line-height:1.35; }
.v4-track-card p { font-size:12px; color:var(--ink-soft); line-height:1.6; margin-bottom:18px; }
.v4-track-meta { display:flex; align-items:baseline; gap:8px; padding-top:14px; border-top:1px dashed var(--line); }
.v4-track-meta .num { font-size:20px; color:var(--red); font-weight:900; letter-spacing:-.02em; font-family:var(--f-head); }
.v4-track-meta .lbl { font-size:11px; color:var(--muted); font-weight:600; }

/* ── CLIENTS ── */
.v4-clients-sec { padding:80px 24px; background:var(--bg); }
.v4-clients-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; margin-top:32px; }
.v4-client-card { background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; transition:all .25s var(--ease-out); min-height:90px; }
.v4-client-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--blue); }
.v4-client-card img { max-height:40px; max-width:120px; object-fit:contain; filter:grayscale(1); opacity:.7; transition:all .25s; }
.v4-client-card:hover img { filter:grayscale(0); opacity:1; }
.v4-client-name { font-family:var(--f-head); font-size:12px; font-weight:800; color:var(--navy); letter-spacing:-.01em; line-height:1.3; }
.v4-client-sector { font-size:10px; color:var(--muted); font-weight:600; text-transform:uppercase; letter-spacing:.08em; }
.v4-client-card.no-logo { background:var(--navy); border-color:var(--navy); }
.v4-client-card.no-logo .v4-client-name { color:#fff; }
.v4-client-card.no-logo .v4-client-sector { color:rgba(255,255,255,.5); }
.v4-client-card.no-logo:hover { background:var(--navy-soft); border-color:var(--blue); }

/* ── TESTIMONIALS ── */
.v4-testi-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:18px; }
.v4-t-card { background:var(--paper); border-radius:var(--r-lg); padding:30px; border:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; transition:all .3s var(--ease-out); }
.v4-t-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.v4-t-card.feat { background:var(--navy); color:#fff; grid-row:span 2; }
.v4-t-qm { font-family:'Georgia',serif; font-size:80px; line-height:.5; color:var(--blue); height:32px; letter-spacing:-.06em; }
.v4-t-card.feat .v4-t-qm { color:var(--sky); }
.v4-t-card blockquote { margin:18px 0 0; font-size:15px; font-weight:600; line-height:1.6; color:var(--navy); letter-spacing:-.005em; font-family:var(--f-head); }
.v4-t-card.feat blockquote { color:#fff; font-size:19px; font-weight:700; line-height:1.45; }
.v4-t-card.sml blockquote { font-size:13.5px; font-weight:400; color:var(--ink-soft); font-family:var(--f-body); line-height:1.7; }
.v4-t-author { display:flex; align-items:center; gap:11px; margin-top:24px; padding-top:18px; border-top:1px solid var(--line); }
.v4-t-card.feat .v4-t-author { border-color:rgba(255,255,255,.15); }
.v4-t-av { width:42px; height:42px; border-radius:50%; background:var(--blue); display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--f-head); font-weight:800; font-size:13px; flex-shrink:0; }
.v4-t-author strong { display:block; font-family:var(--f-head); font-weight:800; font-size:13px; color:var(--navy); }
.v4-t-card.feat .v4-t-author strong { color:#fff; }
.v4-t-author span { font-size:11.5px; color:var(--muted); }
.v4-t-card.feat .v4-t-author span { color:rgba(255,255,255,.55); }
.v4-t-stars { color:#f59e0b; font-size:12px; margin-bottom:4px; }

/* ── FAQ + UPCOMING ── */
.v4-faq-wrap { background:var(--paper); border-radius:var(--r-xl); margin:0 24px; padding:80px 60px; display:grid; grid-template-columns:1fr 1.1fr; gap:72px; }
.v4-faq-aside h2 { font-size:clamp(32px,3.4vw,46px); margin-top:16px; margin-bottom:18px; letter-spacing:-.028em; font-weight:800; }
.v4-faq-aside p { color:var(--ink-soft); margin-bottom:28px; font-size:14px; line-height:1.75; }
.v4-faq-contact { background:var(--bg); border-radius:var(--r); padding:22px; border:1px solid var(--line-soft); }
.v4-faq-contact .lbl { font-size:9.5px; font-weight:700; letter-spacing:.16em; color:var(--muted); margin-bottom:5px; text-transform:uppercase; }
.v4-faq-contact .val { font-family:var(--f-head); font-weight:800; color:var(--navy); font-size:16px; display:block; margin-bottom:16px; transition:color .2s; }
.v4-faq-contact .val:hover { color:var(--blue); }
.v4-faq-list { display:flex; flex-direction:column; }
.v4-faq-item { border-top:1px solid var(--line); overflow:hidden; }
.v4-faq-item:last-child { border-bottom:1px solid var(--line); }
.v4-faq-q { display:flex; justify-content:space-between; align-items:center; cursor:pointer; width:100%; text-align:left; padding:22px 0; font-family:var(--f-head); font-weight:800; font-size:15.5px; color:var(--navy); letter-spacing:-.01em; transition:color .2s; }
.v4-faq-q:hover { color:var(--blue); }
.v4-faq-toggle { width:32px; height:32px; border-radius:50%; background:var(--bg); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-left:14px; transition:all .3s var(--ease-pop); }
.v4-faq-toggle svg { width:13px; height:13px; color:var(--navy); transition:transform .3s; }
.v4-faq-item.open .v4-faq-toggle { background:var(--blue); }
.v4-faq-item.open .v4-faq-toggle svg { color:#fff; transform:rotate(45deg); }
.v4-faq-a { max-height:0; overflow:hidden; transition:max-height .4s var(--ease-out), padding .4s; }
.v4-faq-item.open .v4-faq-a { max-height:300px; padding-bottom:22px; }
.v4-faq-a p { color:var(--ink-soft); font-size:13.5px; line-height:1.75; padding-right:46px; }

/* upcoming right side */
.v4-upcoming-title { font-family:var(--f-head); font-size:18px; font-weight:800; color:var(--navy); margin-bottom:20px; padding-bottom:12px; border-bottom:2px solid var(--line); display:flex; align-items:center; justify-content:space-between; }
.v4-upcoming-title a { font-size:12px; color:var(--blue); font-weight:700; }
.v4-upcoming-item { display:flex; gap:14px; padding:14px 0; border-bottom:1px solid var(--line-soft); transition:all .2s; }
.v4-upcoming-item:last-child { border-bottom:none; }
.v4-upcoming-item:hover { transform:translateX(3px); }
.v4-upcoming-thumb { width:80px; height:64px; border-radius:10px; overflow:hidden; flex-shrink:0; background:var(--navy); }
.v4-upcoming-thumb img { width:100%; height:100%; object-fit:cover; }
.v4-upcoming-info { flex:1; min-width:0; }
.v4-upcoming-info h4 { font-size:13px; font-weight:800; color:var(--navy); letter-spacing:-.01em; line-height:1.35; margin-bottom:5px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.v4-upcoming-meta { display:flex; gap:10px; font-size:11px; color:var(--muted); flex-wrap:wrap; }
.v4-upcoming-meta span { display:inline-flex; align-items:center; gap:4px; }
.v4-upcoming-meta i { color:var(--blue); font-size:10px; }
.v4-upcoming-desc { font-size:11.5px; color:var(--muted); line-height:1.55; margin-top:4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* ── CONTACT ── */
.v4-contact-wrap { background:var(--navy); border-radius:var(--r-xl); padding:72px 60px; display:grid; grid-template-columns:1fr 1.25fr; gap:60px; position:relative; }
.v4-contact-wrap::before { content:''; position:absolute; inset:0; border-radius:inherit; background:radial-gradient(circle at 0% 100%,rgba(26,159,212,.16) 0%,transparent 40%),radial-gradient(circle at 100% 0%,rgba(196,18,48,.1) 0%,transparent 40%); pointer-events:none; }
.v4-contact-left,.v4-contact-form { position:relative; z-index:1; }
.v4-contact-left .kicker { color:var(--sky); }
.v4-contact-left h2 { color:#fff; font-size:clamp(32px,3.4vw,48px); margin-top:14px; letter-spacing:-.028em; font-weight:800; }
.v4-contact-left > p { color:rgba(255,255,255,.68); margin-top:16px; font-size:14.5px; max-width:380px; line-height:1.75; }
.v4-contact-meta { margin-top:36px; display:flex; flex-direction:column; gap:18px; }
.v4-meta-item { display:flex; gap:14px; align-items:flex-start; }
.v4-meta-icon { width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; color:var(--sky); flex-shrink:0; transition:all .3s var(--ease-pop); }
.v4-meta-item:hover .v4-meta-icon { background:var(--blue); border-color:var(--blue); color:#fff; transform:scale(1.05); }
.v4-meta-icon svg { width:16px; height:16px; }
.v4-meta-item .lbl { font-size:10px; font-weight:700; letter-spacing:.14em; color:rgba(255,255,255,.5); margin-bottom:3px; text-transform:uppercase; }
.v4-meta-item .val { color:#fff; font-family:var(--f-head); font-weight:700; font-size:14px; }
.v4-contact-form { background:var(--paper); border-radius:var(--r-lg); padding:36px; align-self:start; position:sticky; top:90px; }
.v4-contact-form h3 { font-size:22px; margin-bottom:6px; letter-spacing:-.02em; }
.v4-form-intro { color:var(--muted); font-size:12.5px; margin-bottom:22px; }
.v4-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.v4-form-field { display:flex; flex-direction:column; gap:5px; }
.v4-form-field.full { grid-column:span 2; }
.v4-form-field label { font-family:var(--f-head); font-size:11px; font-weight:700; color:var(--ink-soft); letter-spacing:.02em; }
.v4-form-field input,.v4-form-field select,.v4-form-field textarea { font-family:var(--f-body); font-size:13px; padding:12px 13px; border-radius:10px; border:1px solid var(--line); background:#fafbfd; color:var(--navy); outline:none; transition:all .2s; }
.v4-form-field input:focus,.v4-form-field select:focus,.v4-form-field textarea:focus { border-color:var(--blue); background:var(--paper); box-shadow:0 0 0 3px rgba(26,159,212,.12); }
.v4-form-field textarea { resize:vertical; min-height:90px; }
.v4-form-success { display:none; background:rgba(30,175,99,.08); border:1px solid rgba(30,175,99,.25); color:#14823f; padding:12px 16px; border-radius:10px; font-size:13px; font-weight:700; align-items:center; gap:8px; margin-bottom:18px; }
.v4-form-success.show { display:flex; }
.v4-form-submit { margin-top:20px; width:100%; padding:15px; background:var(--navy); color:#fff; font-family:var(--f-head); font-weight:800; font-size:14px; border-radius:12px; display:flex; align-items:center; justify-content:center; gap:9px; transition:all .3s; position:relative; overflow:hidden; }
.v4-form-submit::before { content:''; position:absolute; inset:0; background:var(--blue); transform:translateX(-100%); transition:transform .4s var(--ease-out); }
.v4-form-submit:hover::before { transform:translateX(0); }
.v4-form-submit > * { position:relative; z-index:1; }
.v4-form-submit svg { width:15px; height:15px; }

/* ── FOOTER ── */
.v4-footer { background:var(--navy); color:rgba(255,255,255,.68); padding:64px 56px 28px; margin:40px 24px 24px; border-radius:var(--r-xl); position:relative; overflow:hidden; }
.v4-footer-top { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:48px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.08); }
.v4-footer-mark { width:48px; height:48px; border-radius:13px; background:var(--blue); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.v4-footer-mark img { width:100%; height:100%; object-fit:contain; }
.v4-footer-brand-name { color:#fff; font-family:var(--f-head); font-weight:800; font-size:17px; margin:16px 0 8px; letter-spacing:-.015em; }
.v4-footer-brand p { font-size:12.5px; line-height:1.75; margin-bottom:18px; max-width:300px; }
.v4-footer-social { display:flex; gap:8px; }
.v4-footer-social a { width:36px; height:36px; border-radius:9px; border:1px solid rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.6); transition:all .3s var(--ease-pop); }
.v4-footer-social a:hover { background:var(--blue); border-color:var(--blue); color:#fff; transform:translateY(-2px) scale(1.05); }
.v4-footer-social svg { width:15px; height:15px; }
.v4-footer-col h5 { color:#fff; font-family:var(--f-head); font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; margin-bottom:20px; }
.v4-footer-col ul { display:flex; flex-direction:column; gap:11px; }
.v4-footer-col a { font-size:13px; color:rgba(255,255,255,.65); transition:all .2s; display:flex; align-items:center; gap:8px; }
.v4-footer-col a:hover { color:var(--sky); padding-left:4px; }
.v4-footer-col a .pin { width:6px; height:6px; border-radius:50%; background:var(--blue); flex-shrink:0; }
.v4-footer-bottom { padding-top:26px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }
.v4-footer-bottom p { font-size:10.5px; color:rgba(255,255,255,.4); letter-spacing:.06em; }
.v4-footer-legal { display:flex; gap:20px; }
.v4-footer-legal a { font-size:11.5px; color:rgba(255,255,255,.55); font-family:var(--f-head); font-weight:600; transition:color .2s; }
.v4-footer-legal a:hover { color:var(--sky); }

/* ── WHATSAPP + CHAT FABs ── */
.v4-fab { position:fixed; bottom:26px; z-index:80; border-radius:50%; width:58px; height:58px; display:flex; align-items:center; justify-content:center; color:#fff; box-shadow:0 12px 32px rgba(0,0,0,.2); transition:transform .25s var(--ease-pop); border:none; cursor:pointer; }
.v4-fab:hover { transform:translateY(-3px) scale(1.06); }
.v4-fab-wa { right:26px; background:#25D366; animation:fabIn .6s var(--ease-pop) .5s backwards; }
.v4-fab-chat { right:100px; background:var(--navy); animation:fabIn .6s var(--ease-pop) .7s backwards; }
@keyframes fabIn { from { transform:scale(0) rotate(-90deg); opacity:0; } to { transform:scale(1) rotate(0); opacity:1; } }
.v4-fab svg { width:24px; height:24px; }
.v4-fab-badge { position:absolute; top:-3px; right:-3px; width:18px; height:18px; border-radius:50%; background:var(--red); color:#fff; font-family:var(--f-head); font-weight:800; font-size:10px; display:flex; align-items:center; justify-content:center; border:2px solid var(--bg); }

/* ── SCROLL REVEAL ── */
.reveal,.reveal-r { opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease-out),transform .8s var(--ease-out); }
.reveal-r { transform:translateY(32px) scale(.98); }
.reveal.in,.reveal-r.in { opacity:1; transform:translateY(0) scale(1); }
.stagger { opacity:0; transform:translateY(18px); transition:opacity .65s var(--ease-out),transform .65s var(--ease-out); }
.stagger.in { opacity:1; transform:translateY(0); }

/* ── RESPONSIVE ── */
@media(max-width:1080px) {
  .v4-stats { grid-template-columns:1fr 1fr 1fr; }
  .v4-stats-lbl { grid-column:1/-1; }
  .v4-courses-grid { grid-template-columns:1fr 1fr; }
  .v4-track-grid { grid-template-columns:1fr 1fr; }
  .v4-testi-grid { grid-template-columns:1fr 1fr; }
  .v4-t-card.feat { grid-column:span 2; grid-row:span 1; }
  .v4-services-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:820px) {
  .v4-nav-links,.btn-ghost-nav { display:none; }
  .v4-hero-grid { grid-template-columns:1fr; }
  .v4-hero-right { min-height:380px; max-width:480px; margin:0 auto; width:100%; }
  .v4-about { grid-template-columns:1fr; padding:48px 28px; gap:40px; }
  .v4-track { padding:52px 28px; }
  .v4-track-grid { grid-template-columns:1fr 1fr; }
  .v4-testi-grid { grid-template-columns:1fr; }
  .v4-t-card.feat { grid-column:span 1; }
  .v4-faq-wrap { grid-template-columns:1fr; padding:52px 28px; gap:36px; }
  .v4-contact-wrap { grid-template-columns:1fr; padding:44px 28px; gap:36px; }
  .v4-contact-form { position:static; }
  .v4-footer { padding:44px 28px 24px; margin:24px 16px 16px; }
  .v4-footer-top { grid-template-columns:1fr 1fr; gap:28px; }
  .v4-sec-hdr { grid-template-columns:1fr; gap:16px; }
  .v4-about-feats { grid-template-columns:1fr 1fr; }
  .v4-form-grid { grid-template-columns:1fr; }
  .v4-form-field.full { grid-column:span 1; }
  .v4-services-grid { grid-template-columns:1fr; }
}
@media(max-width:540px) {
  .v4-courses-grid { grid-template-columns:1fr; }
  .v4-track-grid { grid-template-columns:1fr; }
  .v4-footer-top { grid-template-columns:1fr; }
  .v4-stats { grid-template-columns:1fr 1fr; padding:32px 24px; }
  .v4-about-feats { grid-template-columns:1fr; }
  .v4-clients-grid { grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); }
}

/* ── MAX-WIDTH CONTAINER ── */
.v4-inner { max-width:1280px; margin:0 auto; padding:0 40px; width:100%; }
.v4-hero { padding:40px 0 80px; }
.v4-hero .v4-hero-grid { max-width:1280px; margin:0 auto; padding:0 40px; }
.v4-marquee { margin:40px auto 0; max-width:1280px; border-radius:var(--r-lg); }
.v4-stats { margin:40px auto 0; max-width:1280px; border-radius:var(--r-xl); }
.v4-about { max-width:1280px; margin:0 auto; border-radius:var(--r-xl); }
.v4-track { max-width:1280px; margin:0 auto; border-radius:var(--r-xl); }
.v4-faq-wrap { max-width:1280px; margin:0 auto; border-radius:var(--r-xl); }
.v4-contact-wrap { max-width:1280px; margin:0 auto; border-radius:var(--r-xl); }
.v4-footer { max-width:1280px; margin:40px auto 24px; border-radius:var(--r-xl); }
.v4-clients-sec .v4-clients-grid,
.v4-clients-sec .v4-sec-hdr,
.v4-clients-sec .v4-marquee { max-width:1280px; margin-left:auto; margin-right:auto; }
.v4-sec > *:not(.v4-courses-grid):not(.v4-course-filter):not(.v4-testi-grid):not(.v4-sec-hdr) { max-width:1280px; margin-left:auto; margin-right:auto; }
.v4-courses-grid,.v4-course-filter,.v4-testi-grid,.v4-sec-hdr { max-width:1280px; margin-left:auto; margin-right:auto; }
.v4-sec { padding:80px 40px; }
.v4-services-grid { max-width:1280px; margin:0 auto; }

/* logo fix in footer */
.v4-footer-mark { overflow:hidden; flex-shrink:0; }
.v4-footer-mark img { width:100%; height:100%; object-fit:contain; }

/* ── WHATSAPP WIDGET ── */
:root {
  --muted:#6b7a92; --text:#0a1a2f; --bg:#f4f8fb;
  --border:#d9e3ed; --blue2:#1580aa; --blue3:#e8f5fb;
  --blue4:#c5e6f5; --red:#c41230;
}
.wa-widget { position:fixed; bottom:28px; left:28px; z-index:700; }
.wa-fab { width:58px; height:58px; border-radius:50%; background:#25d366; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1.7rem; color:#fff; box-shadow:0 6px 22px rgba(37,211,102,.45); transition:transform .2s; position:relative; }
.wa-fab:hover { transform:scale(1.08); }
.wa-fab-lbl { position:absolute; left:68px; top:50%; transform:translateY(-50%); background:#25d366; color:#fff; font-size:.75rem; font-weight:800; padding:5px 12px; border-radius:20px; white-space:nowrap; box-shadow:0 3px 10px rgba(37,211,102,.3); pointer-events:none; font-family:var(--f-body); }
.wa-popup { display:none; position:absolute; bottom:68px; left:0; width:300px; background:#fff; border-radius:16px; box-shadow:0 16px 50px rgba(0,0,0,.18); border:1px solid var(--border); overflow:hidden; }
.wa-popup.open { display:block; animation:pIn .3s ease; }
.wa-popup-hdr { background:linear-gradient(135deg,#075e54,#128c7e); padding:16px 18px; display:flex; align-items:center; gap:10px; }
.wa-popup-hdr img { width:36px; height:36px; border-radius:50%; object-fit:contain; }
.wa-popup-hdr strong { display:block; color:#fff; font-size:.88rem; font-weight:800; }
.wa-popup-hdr span { color:rgba(255,255,255,.7); font-size:.72rem; }
.wa-popup-body { padding:16px; }
.wa-popup-body p { font-size:.82rem; color:var(--muted); margin-bottom:12px; font-weight:600; }
.wa-campus-list { display:flex; flex-direction:column; gap:8px; }
.wa-btn { display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:9px; border:1.5px solid var(--border); background:var(--bg); font-size:.82rem; font-weight:700; color:var(--text); cursor:pointer; transition:all .2s; text-decoration:none; }
.wa-btn:hover { border-color:#25d366; background:#e8f8ed; color:#075e54; }
.wa-btn i { color:var(--blue); width:16px; text-align:center; }

/* ── CHATBOT WIDGET ── */
.chat-widget { position:fixed; bottom:28px; right:28px; z-index:700; }
.chat-fab { width:58px; height:58px; border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--blue-deep)); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1.5rem; color:#fff; box-shadow:0 6px 22px rgba(26,159,212,.4); transition:transform .2s; position:relative; }
.chat-fab:hover { transform:scale(1.08); }
.chat-badge { position:absolute; top:-4px; right:-4px; width:18px; height:18px; border-radius:50%; background:var(--red); color:#fff; font-size:.6rem; font-weight:800; display:flex; align-items:center; justify-content:center; border:2px solid #fff; animation:pingChat 2s infinite; }
@keyframes pingChat { 0%,100% { box-shadow:0 0 0 0 rgba(196,18,48,.4); } 70% { box-shadow:0 0 0 8px rgba(196,18,48,0); } }
.chat-panel { display:none; position:absolute; bottom:68px; right:0; width:340px; max-width:calc(100vw - 40px); background:#fff; border-radius:16px; box-shadow:0 16px 50px rgba(0,0,0,.16); border:1px solid var(--border); overflow:hidden; flex-direction:column; height:520px; max-height:520px; }
.chat-panel.open { display:flex; animation:pIn .3s ease; }
.chat-hdr { background:linear-gradient(135deg,var(--blue),var(--blue-deep)); padding:14px 16px; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.chat-hdr-info { display:flex; align-items:center; gap:10px; }
.chat-hdr-av { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; font-size:1rem; color:#fff; }
.chat-hdr-txt strong { display:block; color:#fff; font-size:.86rem; font-weight:800; }
.chat-hdr-txt span { color:rgba(255,255,255,.7); font-size:.7rem; display:flex; align-items:center; gap:5px; }
.chat-hdr-txt span::before { content:''; width:6px; height:6px; border-radius:50%; background:#4caf50; }
.chat-hdr-btn { background:rgba(255,255,255,.15); border:none; cursor:pointer; color:#fff; width:30px; height:30px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:.85rem; transition:background .2s; }
.chat-hdr-btn:hover { background:rgba(255,255,255,.28); }
.chat-msgs { flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px; min-height:0; }
.chat-msgs::-webkit-scrollbar { width:4px; }
.chat-msgs::-webkit-scrollbar-track { background:#f1f5f9; }
.chat-msgs::-webkit-scrollbar-thumb { background:var(--blue4); border-radius:2px; }
.chat-msg { display:flex; gap:8px; align-items:flex-end; }
.chat-msg.bot .chat-bubble { background:var(--bg); color:var(--text); border:1px solid var(--border); border-radius:14px 14px 14px 4px; }
.chat-msg.user { justify-content:flex-end; }
.chat-msg.user .chat-bubble { background:var(--blue); color:#fff; border-radius:14px 14px 4px 14px; }
.chat-bubble { padding:10px 14px; font-size:.82rem; line-height:1.6; max-width:290px; font-family:var(--f-body); }
.chat-bot-av { width:28px; height:28px; border-radius:50%; background:var(--blue3); display:flex; align-items:center; justify-content:center; font-size:.9rem; color:var(--blue); flex-shrink:0; align-self:flex-start; }
.chat-qr { padding:8px 12px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:6px; flex-shrink:0; background:var(--bg); min-height:0; }
.chat-qr:empty { display:none; }
.chat-qr-btns { display:flex; flex-wrap:wrap; gap:6px; max-height:120px; overflow-y:auto; }
.chat-qr-btn { padding:6px 12px; border-radius:20px; border:1.5px solid var(--blue4); background:var(--blue3); font-size:.75rem; font-weight:700; color:var(--blue2); cursor:pointer; transition:all .2s; display:inline-flex; align-items:center; gap:5px; font-family:var(--f-body); }
.chat-qr-btn:hover { background:var(--blue); color:#fff; border-color:var(--blue); }
.typing-dots { display:inline-flex; gap:4px; align-items:center; padding:2px 0; }
.typing-dots span { width:7px; height:7px; border-radius:50%; background:var(--muted); opacity:.5; animation:typingBounce 1.2s ease-in-out infinite; }
.typing-dots span:nth-child(1) { animation-delay:0s; }
.typing-dots span:nth-child(2) { animation-delay:.2s; }
.typing-dots span:nth-child(3) { animation-delay:.4s; }
@keyframes typingBounce { 0%,80%,100% { transform:translateY(0); opacity:.4; } 40% { transform:translateY(-6px); opacity:1; } }
.chat-msg-new { opacity:0; transform:translateY(10px); transition:opacity .35s ease,transform .35s cubic-bezier(.22,1,.36,1); }
.chat-msg-new.chat-msg-in { opacity:1; transform:translateY(0); }
@keyframes pIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }

/* WA toggle JS helper */
.wa-open .wa-popup { display:block; }