:root{--ink:#12212e;--ink-2:#4a5b68;--ink-3:#7b8a95;--paper:#f6f8f7;--surface:#fff;--line:#dde4e2;--line-soft:#eef2f0;--teal:#0b6b62;--teal-dark:#085048;--teal-soft:#e6f2f0;--amber:#a65a0b;--amber-soft:#fdf4e7;--radius:10px;--radius-sm:6px;--shadow:0 1px 2px #12212e0f, 0 4px 12px #12212e0a;--display:"Be Vietnam Pro", system-ui, sans-serif;--body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--wrap:1080px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.015em;margin:0 0 .5em;font-weight:700;line-height:1.2}h1{font-size:clamp(1.55rem,1.1rem + 2vw,2.25rem)}h2{font-size:clamp(1.2rem,1rem + 1vw,1.5rem)}h3{font-size:1.05rem}p{margin:0 0 1em}a{color:var(--teal);text-underline-offset:2px;text-decoration-thickness:1px}a:hover{color:var(--teal-dark)}:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:3px}img{max-width:100%;height:auto}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 16px}.btn{font-family:var(--display);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover{background:var(--teal-dark);color:#fff}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn-ghost:hover{border-color:var(--teal);color:var(--teal)}.btn-block{width:100%}.chip{color:var(--ink-2);background:var(--paper);border:1px solid var(--line-soft);white-space:nowrap;border-radius:100px;align-items:center;gap:5px;padding:3px 9px;font-size:.8125rem;display:inline-flex}.chip-strong{background:var(--teal-soft);color:var(--teal-dark);border-color:#0000;font-weight:600}.eyebrow{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px;font-size:.75rem;font-weight:600}.site-header{background:var(--surface);border-bottom:1px solid var(--line);z-index:50;position:sticky;top:0}.site-header .wrap{align-items:center;gap:20px;min-height:60px;display:flex}.brand{font-family:var(--display);color:var(--ink);letter-spacing:-.02em;font-size:1.05rem;font-weight:800;line-height:1.15;text-decoration:none}.brand span{color:var(--ink-3);letter-spacing:.04em;font-size:.7rem;font-weight:500;display:block}.site-nav{align-items:center;gap:6px;margin-left:auto;display:flex}.site-nav a{color:var(--ink-2);border-radius:var(--radius-sm);padding:8px 10px;font-size:.9rem;text-decoration:none}.site-nav a:hover{background:var(--paper);color:var(--ink)}.site-nav a.cta{background:var(--teal);color:#fff;padding:9px 16px;font-weight:600}.site-nav a.cta:hover{background:var(--teal-dark)}.site-footer{background:var(--ink);color:#b9c6cf;margin-top:64px;padding:36px 0 44px;font-size:.9rem}.site-footer a{color:#fff}.footer-grid{grid-template-columns:1.4fr 1fr 1fr;gap:28px;display:grid}.site-footer h4{color:#fff;letter-spacing:.07em;text-transform:uppercase;margin-bottom:12px;font-size:.82rem}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer li{margin-bottom:7px}.footer-bottom{border-top:1px solid #ffffff1f;margin-top:28px;padding-top:18px;font-size:.82rem}.crumbs{color:var(--ink-3);padding:14px 0 0;font-size:.85rem}.crumbs a{color:var(--ink-2);text-decoration:none}.crumbs a:hover{color:var(--teal);text-decoration:underline}.crumbs span{opacity:.5;margin:0 6px}.class-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.class-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;padding:16px 16px 14px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.class-card:hover{border-color:var(--teal);box-shadow:var(--shadow)}.code-tab{letter-spacing:.04em;color:var(--teal-dark);background:var(--teal-soft);border-radius:3px 3px 3px 0;align-self:flex-start;padding:3px 9px;font-family:ui-monospace,SFMono-Regular,Cascadia Mono,Consolas,monospace;font-size:.78rem;font-weight:600;position:relative}.code-tab:after{content:"";border-style:solid;border-width:4px 4px 0 0;border-color:var(--teal-dark) transparent transparent transparent;opacity:.35;position:absolute;bottom:-4px;left:0}.class-card h3{margin:0;font-size:1.06rem;line-height:1.3}.class-card h3 a{color:var(--ink);text-decoration:none}.class-card h3 a:after{content:"";border-radius:var(--radius);position:absolute;inset:0}.class-card h3 a:hover{color:var(--teal)}.class-where{color:var(--ink-2);margin:0;font-size:.875rem}.class-facts{flex-wrap:wrap;gap:6px;display:flex}.class-foot{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:baseline;gap:12px;margin-top:auto;padding-top:10px;display:flex}.price{font-family:var(--display);color:var(--amber);letter-spacing:-.02em;font-size:1.22rem;font-weight:800}.price small{color:var(--ink-3);letter-spacing:0;font-size:.72rem;font-weight:500}.class-need{color:var(--ink-3);text-align:right;font-size:.82rem}.filter-bar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px;padding:14px}.filter-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.field label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:.75rem;font-weight:600;display:block}.field select,.field input{width:100%;font-size:.92rem;font-family:var(--body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 10px}.field select:focus,.field input:focus{border-color:var(--teal);outline:none}.filter-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.result-line{color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:.9rem;display:flex}.result-line b{color:var(--ink)}.pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:28px 0 0;display:flex}.pager a,.pager span{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-width:38px;height:38px;color:var(--ink-2);justify-content:center;align-items:center;padding:0 10px;font-size:.9rem;text-decoration:none;display:inline-flex}.pager a:hover{border-color:var(--teal);color:var(--teal)}.pager .current{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}.detail{grid-template-columns:1fr 340px;align-items:start;gap:24px;margin-top:18px;display:grid}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.panel+.panel{margin-top:16px}.status-open,.status-closed{border-radius:100px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.status-open{background:var(--teal-soft);color:var(--teal-dark)}.status-closed{color:#6b6560;background:#f1f0ee}.spec{border-collapse:collapse;width:100%;font-size:.94rem}.spec th,.spec td{text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top;padding:10px 0}.spec th{color:var(--ink-3);width:40%;font-weight:500}.spec tr:last-child th,.spec tr:last-child td{border-bottom:0}.apply-box{position:sticky;top:76px}.apply-price{font-family:var(--display);color:var(--amber);font-size:1.9rem;font-weight:800;line-height:1.1}.apply-price small{color:var(--ink-3);margin-top:2px;font-size:.78rem;font-weight:500;display:block}.form-note{color:var(--ink-3);margin:10px 0 0;font-size:.8rem}.form-field{margin-bottom:12px}.form-field label{color:var(--ink-2);margin-bottom:4px;font-size:.82rem;font-weight:600;display:block}.form-field input,.form-field select,.form-field textarea{width:100%;font-size:.95rem;font-family:var(--body);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);padding:10px}.form-field textarea{resize:vertical;min-height:74px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--teal);outline:none}.alert{border-radius:var(--radius-sm);margin-bottom:14px;padding:12px 14px;font-size:.9rem}.alert-ok{background:var(--teal-soft);color:var(--teal-dark)}.alert-err{color:#96261b;background:#fdecea}.link-cloud{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.link-cloud a{background:var(--surface);border:1px solid var(--line);color:var(--ink-2);border-radius:100px;align-items:center;gap:6px;padding:7px 13px;font-size:.88rem;text-decoration:none;display:inline-flex}.link-cloud a:hover{border-color:var(--teal);color:var(--teal)}.link-cloud b{color:var(--ink-3);font-size:.8rem;font-weight:500}.prose{max-width:68ch}.prose h2{margin-top:1.6em}.empty{text-align:center;color:var(--ink-2);padding:48px 20px}.section{margin-top:40px}.section-head{margin-bottom:14px}@media (width<=860px){.detail{grid-template-columns:1fr}.apply-box{position:static}.footer-grid{grid-template-columns:1fr;gap:22px}.site-nav a:not(.cta){display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.lead-head{max-width:62ch;margin:18px 0}.lead-head h1{margin-bottom:.35em}.lead{color:var(--ink-2);margin:0 0 .5em;font-size:1.02rem}.lead-call{color:var(--ink-2);margin:0;font-size:.92rem}.lead-grid{grid-template-columns:1fr 320px;align-items:start;gap:20px;display:grid}.lead-side{gap:16px;display:grid;position:sticky;top:76px}.lead-side .panel{padding:16px 18px}.lead-side .panel p:last-of-type{margin-bottom:12px}.lead-side .panel .btn:last-child{margin-bottom:0}.lead-grid form.panel>h2{border-top:1px solid var(--line-soft);margin:22px 0 12px;padding-top:16px;font-size:1.02rem}.lead-grid form.panel>h2:first-of-type{border-top:0;margin-top:4px;padding-top:0}.form-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));column-gap:14px;display:grid}.form-field.span-2{grid-column:1/-1}.form-field .form-note{margin-top:5px}.req{color:#b3261e}.opt{color:var(--ink-3);font-size:.78rem;font-weight:500}.check-grid{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:7px;display:grid}.check-grid label{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:8px;min-height:44px;margin:0;padding:9px 11px;font-size:.9rem;font-weight:500;line-height:1.25;display:flex}.check-grid label:hover{border-color:var(--teal)}.check-grid input[type=checkbox]{width:auto;accent-color:var(--teal);flex:none;margin:0;padding:0}.check-grid label:has(input:checked){border-color:var(--teal);background:var(--teal-soft);color:var(--teal-dark)}.hp{width:1px;height:1px;position:absolute;top:auto;left:-9999px;overflow:hidden}.steps{gap:9px;margin:0;padding-left:1.15em;display:grid}.steps li{color:var(--ink-2);font-size:.9rem}.steps b{color:var(--ink);font-weight:600}@media (width<=860px){.lead-grid{grid-template-columns:1fr}.lead-side{position:static}}.hero{max-width:46rem;padding:46px 0 10px}.hero h1{margin-bottom:.4em}.hero-lead{color:var(--ink-2);margin:0 0 4px;font-size:1.06rem}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.hero-call{color:var(--ink-2);margin:14px 0 0;font-size:.92rem}.price-mini th,.price-full th{font-weight:500}.price-mini thead th,.price-full thead th{font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);width:auto;font-size:.76rem;font-weight:600}.price-mini tbody th,.price-full tbody th{color:var(--ink);width:auto;font-weight:600}.price-mini td.money,.price-full td.money{font-family:var(--display);color:var(--amber);white-space:nowrap;font-weight:700}.price-full{font-size:.9rem}.how-grid{counter-reset:none;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.how-step{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.how-step h3{margin:10px 0 6px;font-size:1rem}.how-step p{color:var(--ink-2);margin:0;font-size:.9rem}.how-num{background:var(--teal-soft);width:28px;height:28px;color:var(--teal-dark);font-family:var(--display);border-radius:100px;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:inline-flex}.cta-band{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:24px;display:flex}.cta-band h2{margin:0 0 6px}.cta-band p{color:var(--ink-2);max-width:48ch;margin:0;font-size:.94rem}.cta-actions{flex-wrap:wrap;gap:10px;display:flex}@media (width<=640px){.hero{padding-top:30px}.hero-actions .btn,.cta-actions .btn{flex:auto}.price-full{font-size:.82rem}.price-full th,.price-full td{padding:8px 6px}}.tabs{gap:6px;margin-bottom:12px;display:flex}.tab{font-family:var(--display);border-radius:var(--radius-sm);cursor:pointer;background:var(--surface);color:var(--ink-2);border:1px solid var(--line);font-size:.9rem;font-weight:600;font-family:var(--display);padding:9px 16px}.tab:hover{border-color:var(--teal);color:var(--teal)}.tab[aria-selected=true]{background:var(--teal);border-color:var(--teal);color:#fff}.pane.hidden{display:none}.chat-box{flex-direction:column;display:flex}.chat-log{flex-direction:column;gap:10px;min-height:260px;max-height:440px;padding-right:4px;display:flex;overflow-y:auto}.chat-intro{color:var(--ink-2);font-size:.92rem}.chat-intro p:last-child{margin-bottom:0}.msg{white-space:pre-wrap;border-radius:12px;max-width:86%;padding:10px 13px;font-size:.93rem;line-height:1.5}.msg-bot{background:var(--paper);border:1px solid var(--line-soft);align-self:flex-start}.msg-nguoi{background:var(--teal);color:#fff;align-self:flex-end}.msg-loi{color:#96261b;background:#fdecea;align-self:flex-start}.chat-gate{border-top:1px solid var(--line-soft);color:var(--ink-2);margin-top:14px;padding-top:14px;font-size:.9rem}.chat-gate p{margin:0 0 10px}.chat-loi{color:#96261b}[hidden]{display:none!important}.chat-input{border-top:1px solid var(--line-soft);align-items:center;gap:8px;margin-top:14px;padding-top:14px;display:flex}.chat-input input{font-size:.95rem;font-family:var(--body);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);flex:1;padding:11px 12px}.chat-input input:focus{border-color:var(--teal);outline:none}.chat-input input:disabled{background:var(--paper);color:var(--ink-3)}.chat-input .btn{padding:11px 18px}@media (width<=640px){.chat-log{min-height:220px;max-height:60vh}.msg{max-width:92%}.tab{flex:1;padding:9px 8px;font-size:.85rem}}
