/* =========================================================
   Nghĩa Weme — Design System (Modern Wabi-sabi Business)
   Dùng chung cho toàn bộ các trang.
   ========================================================= */
:root{
  --green-deep:#123328;--green-moss:#526b4f;--cream:#f4efe4;--cream-light:#fbf8f0;
  --earth:#9b7653;--charcoal:#20231f;--muted:#6d6f68;
  --line:rgba(18,51,40,.16);--white-soft:#fffdf7;
  --paper:#ece2cd; /* nền giấy màu be */
  --neon-amber:#ffc46b; /* viền neon hổ phách cho nút chính */
  --shadow:0 24px 70px rgba(18,51,40,.11);
  --radius-xl:32px;--radius-lg:22px;--radius-md:14px;--max:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)' opacity='0.08'/%3E%3C/svg%3E");background-attachment:fixed;color:var(--charcoal);line-height:1.65}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(var(--max),calc(100% - 40px));margin:0 auto}
.top-note{background:var(--green-deep);color:rgba(255,255,255,.82);font-size:13px;letter-spacing:.02em;text-align:center;padding:9px 18px}
/* ---------- Header / Nav ---------- */
header{position:sticky;top:0;z-index:50;backdrop-filter:blur(18px);background:rgba(251,248,240,.82);border-bottom:1px solid var(--line)}
.nav{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;color:var(--green-deep);letter-spacing:-.03em}
.brand-mark{width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#f4efe4 0 11%,transparent 12%),linear-gradient(135deg,var(--green-deep),var(--green-moss));box-shadow:0 10px 28px rgba(18,51,40,.22);position:relative;overflow:hidden;flex:none}
.brand-mark::after{content:"";position:absolute;width:28px;height:28px;border:1px solid rgba(244,239,228,.42);border-radius:50%;left:8px;top:8px}
.brand>span:last-child{display:flex;flex-direction:column;line-height:1.1}
.brand>span:last-child>span{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.03em;margin-top:2px}
nav ul{list-style:none;display:flex;align-items:center;flex-wrap:nowrap;gap:18px;font-size:14px;color:#3e463f}
nav a{opacity:.82;transition:.2s;white-space:nowrap}
nav a:hover,nav a[aria-current="page"]{color:var(--green-deep);opacity:1;font-weight:700}
.nav-cta{display:flex;align-items:center;gap:12px}
/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:13px 20px;font-weight:750;font-size:14px;transition:.25s ease;border:1px solid transparent;cursor:pointer;white-space:nowrap}
.btn-primary{background:var(--green-deep);color:var(--white-soft);box-shadow:0 16px 36px rgba(18,51,40,.18)}
.btn-primary:hover{transform:translateY(-2px);background:#0e2a21}
.btn-secondary{border-color:var(--line);background:rgba(255,255,255,.55);color:var(--green-deep)}
.btn-secondary:hover{border-color:rgba(18,51,40,.35);background:var(--white-soft);transform:translateY(-2px)}
.btn-lg{padding:16px 28px;font-size:15px}
/* ---------- Sections & headings ---------- */
section{padding:72px 0}
h1{font-size:clamp(40px,6vw,74px);line-height:.96;letter-spacing:-.07em;color:var(--green-deep);margin-bottom:22px}
h2{color:var(--green-deep);font-size:clamp(30px,4vw,50px);line-height:1.04;letter-spacing:-.055em}
h3{color:var(--green-deep);letter-spacing:-.03em}
.kicker{color:var(--earth);font-size:13px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}
.section-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:end;margin-bottom:34px}
.section-head p,.wide-text{color:#555d53;font-size:17px;max-width:780px}
.lead{font-size:clamp(17px,2vw,21px);color:#495047;max-width:700px;margin-bottom:34px}
.center{text-align:center}
.center .section-head{grid-template-columns:1fr;justify-items:center;text-align:center}
.eyebrow{display:inline-flex;align-items:center;gap:9px;padding:8px 13px;border:1px solid var(--line);border-radius:999px;color:var(--green-deep);background:rgba(255,255,255,.55);font-size:13px;font-weight:700;margin-bottom:22px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--earth)}
/* ---------- Breadcrumb ---------- */
.breadcrumb{padding:22px 0 0;font-size:13px;color:var(--muted)}
.breadcrumb a:hover{color:var(--green-deep)}
.breadcrumb span{margin:0 6px;opacity:.5}
/* ---------- Hero ---------- */
.hero{padding:80px 0 64px;overflow:hidden;position:relative}
.hero::before{content:"";position:absolute;right:-14vw;top:-18vw;width:52vw;height:52vw;border-radius:50%;background:radial-gradient(circle,rgba(82,107,79,.2),rgba(244,239,228,0) 65%);z-index:-1}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:36px}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:720px}
.stat{border:1px solid var(--line);border-radius:var(--radius-md);padding:16px;background:rgba(255,255,255,.48);transition:.25s ease}
.stat:hover{transform:translateY(-3px);border-color:rgba(18,51,40,.26);background:rgba(255,255,255,.72)}
.stat strong{display:block;color:var(--green-deep);font-size:24px;line-height:1;letter-spacing:-.04em}
.stat span{color:var(--muted);font-size:13px}
/* Dải màu highlight cho từ khoá quan trọng — .kw hổ phách, .kw-2 nâu đất */
.kw,.kw-2{color:var(--green-deep);font-weight:600;padding:.02em .3em;border-radius:.28em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.kw{background:rgba(255,196,107,.5)}
.kw-2{background:rgba(155,118,83,.22)}
/* Block khóa bảo mật cho case study dự án — chỉ là "tấm biển", ruột để trống */
.duan-lock{position:relative;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--white-soft);padding:18px 18px 18px 46px;margin:16px 0}
.duan-lock::before{content:"";position:absolute;left:16px;top:19px;width:18px;height:18px;opacity:.6;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236d6f68' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E")}
.duan-lock strong{display:block;color:var(--green-deep);font-size:16px}
.duan-lock p{color:var(--muted);font-size:14px;margin:6px 0 0}
.portrait-card{border-radius:var(--radius-xl);background:linear-gradient(160deg,rgba(18,51,40,.9),rgba(82,107,79,.92)),radial-gradient(circle at 80% 20%,rgba(244,239,228,.18),transparent 35%);min-height:560px;padding:26px;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.portrait-card::before{content:"";position:absolute;inset:20px;border:1px solid rgba(244,239,228,.18);border-radius:26px;pointer-events:none}
.portrait-placeholder{height:380px;border-radius:24px;background:radial-gradient(circle at 42% 22%,rgba(244,239,228,.55),transparent 10%),linear-gradient(160deg,rgba(244,239,228,.88),rgba(155,118,83,.25));background-size:cover;display:flex;align-items:flex-end;padding:24px;color:var(--green-deep);position:relative;z-index:1}
.portrait-placeholder .label{background:rgba(251,248,240,.86);border:1px solid rgba(18,51,40,.12);border-radius:18px;padding:16px;backdrop-filter:blur(12px)}
.label strong{display:block;font-size:24px;letter-spacing:-.04em}
.label span{display:block;font-size:13px;color:var(--muted)}
.quote-chip{position:relative;z-index:1;margin-top:22px;border-radius:22px;border:1px solid rgba(244,239,228,.18);padding:18px;color:rgba(255,255,255,.86);background:rgba(255,255,255,.08)}
.quote-chip strong{color:var(--cream);display:block;margin-bottom:6px}
/* ---------- Cards / grids ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.cap-card{padding:26px;border-radius:var(--radius-lg);background:var(--white-soft);border:1px solid var(--line);transition:.25s ease}
.cap-card:hover{transform:translateY(-4px);box-shadow:0 22px 52px rgba(18,51,40,.08)}
.card-num{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--cream);color:var(--earth);font-weight:900;margin-bottom:24px}
.cap-card h3{font-size:22px;line-height:1.15;margin-bottom:12px}
.cap-card p{color:var(--muted);font-size:15px}
/* ---------- Courses ---------- */
.course-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.chip{border:1px solid var(--line);background:rgba(255,255,255,.6);color:var(--charcoal);border-radius:999px;padding:9px 18px;font-size:14px;font-weight:700;cursor:pointer;transition:.2s}
.chip:hover{border-color:rgba(18,51,40,.35)}
.chip.active{background:var(--green-deep);color:var(--cream);border-color:var(--green-deep)}
.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.course-card{display:flex;flex-direction:column;background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;transition:.25s ease}
.course-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.course-thumb{aspect-ratio:16/10;position:relative;display:flex;align-items:flex-end;padding:18px;overflow:hidden}
.course-thumb::after{content:"";position:absolute;inset:0;background:radial-gradient(220px 220px at 75% 15%,rgba(255,255,255,.14),transparent 60%),radial-gradient(200px 200px at 15% 90%,rgba(0,0,0,.18),transparent 60%)}
.tg1{background:linear-gradient(150deg,#1c4638,#123328)}
.tg2{background:linear-gradient(150deg,#7d6039,#9b7653)}
.tg3{background:linear-gradient(150deg,#4b5a41,#2f3a28)}
.tg4{background:linear-gradient(150deg,#2c3d4a,#20303a)}
.course-badge{position:relative;z-index:1;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);padding:6px 12px;border-radius:999px;backdrop-filter:blur(4px)}
.course-thumb-ic{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);z-index:1;color:#fff;opacity:.22;pointer-events:none}
.course-thumb-ic svg{width:58px;height:58px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.course-body{padding:24px;display:flex;flex-direction:column;flex:1}
.course-cat{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--earth);margin-bottom:8px}
.course-card h3{font-size:22px;margin-bottom:8px;line-height:1.12}
.course-card .desc{color:var(--muted);font-size:14px;margin-bottom:16px}
.course-meta-row{display:flex;gap:14px;font-size:13px;color:var(--muted);margin-bottom:16px;flex-wrap:wrap}
.rating{color:var(--earth);letter-spacing:1px}
.course-price{margin-top:auto;display:flex;align-items:baseline;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.course-price .now{font-size:26px;font-weight:850;color:var(--green-deep);letter-spacing:-.04em}
.course-price .old{font-size:14px;color:var(--muted);text-decoration:line-through}
.course-price .off{font-size:12px;font-weight:800;color:#fff;background:var(--earth);padding:3px 8px;border-radius:6px}
.course-actions{display:flex;gap:10px}
.course-actions .btn{flex:1}
.course-feat{list-style:none;display:grid;gap:8px;margin:0 0 18px}
.course-feat li{position:relative;padding-left:26px;font-size:14px;color:#4a5147}
.course-feat li::before{content:"✓";position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;background:var(--cream);color:var(--green-deep);font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center}
/* ---------- Course detail (sales page) ---------- */
.sales-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:36px;align-items:start}
.buy-box{position:sticky;top:96px;background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;box-shadow:var(--shadow)}
.buy-box .course-price{margin:0 0 18px}
.buy-box .btn{width:100%}
.buy-box .meta-list{list-style:none;display:grid;gap:12px;margin:20px 0 0;border-top:1px solid var(--line);padding-top:18px}
.buy-box .meta-list li{display:flex;justify-content:space-between;font-size:14px;color:var(--muted)}
.buy-box .meta-list b{color:var(--green-deep)}
.curriculum{display:grid;gap:12px;margin-top:16px}
.mod{border:1px solid var(--line);border-radius:16px;background:var(--white-soft);overflow:hidden}
.mod summary{cursor:pointer;padding:18px 22px;font-weight:750;color:var(--green-deep);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.mod summary::-webkit-details-marker{display:none}
.mod summary .pm{color:var(--earth);font-size:22px;transition:.2s}
.mod[open] summary .pm{transform:rotate(45deg)}
.mod .mod-body{padding:0 22px 20px;color:var(--muted);font-size:14px}
.mod .mod-body ul{margin:6px 0 0 18px}
.prose{max-width:760px}
.prose h2{margin:36px 0 14px}
.prose h3{font-size:22px;margin:26px 0 10px}
.prose p{margin-bottom:14px;color:#454b43}
.prose ul{margin:0 0 16px 20px;color:#454b43}
.prose li{margin-bottom:8px}
/* ---------- Case section (dark) ---------- */
.case-section{background:var(--green-deep);color:var(--cream);border-radius:44px;margin:24px auto;width:min(calc(100% - 28px),1440px);overflow:hidden;position:relative}
.case-section::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(244,239,228,.12),transparent 28%),radial-gradient(circle at 80% 65%,rgba(155,118,83,.22),transparent 30%);pointer-events:none}
.case-section .container{position:relative;z-index:1}
.case-section h2,.case-section .kicker{color:var(--cream)}
.case-section .section-head p{color:rgba(244,239,228,.74)}
.case-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}
.case-card{min-height:320px;display:flex;flex-direction:column;justify-content:space-between;padding:26px;border-radius:28px;background:rgba(255,255,255,.08);border:1px solid rgba(244,239,228,.16);backdrop-filter:blur(12px)}
.case-card h3{font-size:28px;letter-spacing:-.055em;line-height:1;margin-bottom:14px;color:#fffaf0}
.case-card p{color:rgba(244,239,228,.72);font-size:15px}
.case-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.tag{border:1px solid rgba(244,239,228,.2);color:rgba(244,239,228,.78);border-radius:999px;padding:7px 10px;font-size:12px}
/* ---------- Method ---------- */
.method-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:22px;align-items:stretch}
.method-intro{padding:36px;border-radius:var(--radius-xl);background:linear-gradient(180deg,rgba(244,239,228,.9),rgba(255,253,247,.88));border:1px solid var(--line);box-shadow:var(--shadow)}
.method-intro h2{margin-bottom:20px}
.step-list{display:grid;gap:12px}
.step{display:grid;grid-template-columns:52px 1fr;gap:16px;padding:20px;border-radius:20px;background:var(--white-soft);border:1px solid var(--line);transition:.25s ease}
.step:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(18,51,40,.08);border-color:rgba(18,51,40,.22)}
.step b,.step-ic{width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--green-deep);color:var(--cream);font-size:18px;flex:none}
.step-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.step:hover .step-ic{background:var(--green-moss)}
.step-n{display:block;font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--earth);margin-bottom:3px}
.step h3{font-size:19px;margin-bottom:4px}
.step p{color:var(--muted);font-size:14px}
/* ---------- Reviews ---------- */
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rev-card{background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px}
.rev-card .rating{display:block;margin-bottom:12px}
.rev-card p{font-style:italic;color:#454b43;margin-bottom:18px}
.rev-who{display:flex;align-items:center;gap:12px}
.rev-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(150deg,var(--green-moss),var(--green-deep));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex:none}
.rev-who b{display:block;color:var(--green-deep);font-size:15px}
.rev-who span{font-size:13px;color:var(--muted)}
/* ---------- FAQ ---------- */
.faq-list{display:grid;gap:12px;max-width:860px;margin:0 auto}
.faq-item{border:1px solid var(--line);background:var(--white-soft);border-radius:18px;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:20px 24px;font-size:17px;font-weight:750;color:var(--green-deep);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq-q .pm{font-size:24px;color:var(--earth);transition:.25s;flex:none}
.faq-item.open .pm{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;color:var(--muted);font-size:15px}
.faq-a div{padding:0 24px 20px}
/* ---------- CTA / Contact ---------- */
.cta-band{padding:64px 0}
.cta-box{border-radius:36px;background:linear-gradient(135deg,rgba(18,51,40,.96),rgba(82,107,79,.92)),radial-gradient(circle at 80% 10%,rgba(244,239,228,.18),transparent 30%);color:var(--cream);padding:54px;display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:center;box-shadow:var(--shadow);overflow:hidden;position:relative}
.cta-box h2{color:var(--cream);margin-bottom:16px}
.cta-box p{color:rgba(244,239,228,.74);font-size:17px;max-width:720px}
.contact-card{padding:26px;border-radius:26px;background:rgba(255,255,255,.09);border:1px solid rgba(244,239,228,.16)}
.contact-card.light{background:var(--white-soft);border:1px solid var(--line);box-shadow:var(--shadow)}
.contact-card label{display:block;color:rgba(244,239,228,.72);font-size:12px;margin-bottom:7px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.contact-card.light label{color:var(--muted)}
.contact-card input,.contact-card textarea,.contact-card select{width:100%;border:1px solid rgba(244,239,228,.18);background:rgba(255,255,255,.1);color:var(--cream);border-radius:14px;padding:13px 14px;margin-bottom:12px;outline:none;font:inherit}
.contact-card.light input,.contact-card.light textarea,.contact-card.light select{border:1px solid var(--line);background:var(--cream-light);color:var(--charcoal)}
.contact-card input::placeholder,.contact-card textarea::placeholder{color:rgba(244,239,228,.42)}
.contact-card.light input::placeholder,.contact-card.light textarea::placeholder{color:var(--muted)}
.contact-card input:focus,.contact-card textarea:focus,.contact-card select:focus{border-color:var(--earth)}
.err{display:none;color:#ffb4a2;font-size:12px;margin:-6px 0 10px}
.contact-card.light .err{color:#b3402f}
.field.invalid .err{display:block}
/* ---------- Info / pay box ---------- */
.pay-info{background:var(--green-deep);color:var(--cream);border-radius:var(--radius-lg);padding:22px 24px;margin-top:16px}
.pay-info h3{color:var(--cream);margin-bottom:12px;font-size:18px}
.pay-info .prow{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed rgba(244,239,228,.2);font-size:14px}
.pay-info .prow:last-child{border-bottom:none}
.pay-info .prow b{color:var(--cream)}
/* ---------- Journal / blog ---------- */
.journal-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:18px}
.post{border:1px solid var(--line);background:var(--white-soft);border-radius:26px;padding:26px;min-height:240px;display:flex;flex-direction:column;justify-content:space-between;transition:.25s ease}
.post:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.post.featured{background:linear-gradient(135deg,var(--cream),var(--white-soft))}
.post .date{font-size:12px;font-weight:800;color:var(--earth);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}
.post h3{font-size:24px;line-height:1.1;letter-spacing:-.04em}
.post p{margin-top:14px;color:var(--muted);font-size:14px}
.post .more{margin-top:16px;color:var(--green-deep);font-weight:750;font-size:14px}
/* ---------- Footer ---------- */
footer{border-top:1px solid var(--line);padding:52px 0 34px;color:var(--muted);font-size:14px;background:var(--cream)}
.footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:28px;margin-bottom:34px}
.footer-top h4{color:var(--green-deep);font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}
.footer-top p{max-width:34ch;font-size:14px}
.footer-col a{display:block;padding:5px 0;transition:.2s}
.footer-col a:hover{color:var(--green-deep)}
.footer-row{display:flex;justify-content:space-between;gap:24px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:22px}
.footer-links{display:flex;gap:18px;flex-wrap:wrap}
.footer-links a:hover{color:var(--green-deep)}
/* ---------- Mobile menu ---------- */
.mobile-menu-btn{display:none;border:1px solid var(--line);background:rgba(255,255,255,.6);color:var(--green-deep);border-radius:12px;padding:9px 12px;font-size:18px;font-weight:900;cursor:pointer}
/* ---------- Toast ---------- */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(140%);background:var(--green-deep);color:var(--cream);padding:14px 22px;border-radius:999px;font-size:14px;font-weight:700;box-shadow:var(--shadow);z-index:130;transition:transform .35s cubic-bezier(.4,0,.2,1)}
.toast.show{transform:translateX(-50%) translateY(0)}
/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s}
.reveal.in{opacity:1;transform:none}
/* ---------- Accessibility ---------- */
.skip-link{position:absolute;left:-999px;top:0;z-index:200;background:var(--green-deep);color:var(--cream);padding:12px 18px;border-radius:0 0 12px 0;font-weight:700}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid var(--earth);outline-offset:2px;border-radius:4px}
/* ---------- Reading progress bar ---------- */
.read-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--green-moss),var(--earth));z-index:60;transition:width .1s linear}
/* ---------- Back to top ---------- */
.to-top{position:fixed;right:20px;bottom:206px;width:46px;height:46px;border-radius:50%;background:var(--white-soft);border:1px solid var(--line);color:var(--green-deep);box-shadow:var(--shadow);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;opacity:0;visibility:hidden;transform:translateY(10px);transition:.25s;z-index:80}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--green-deep);color:var(--cream)}
/* ---------- Floating contact dock ---------- */
.contact-dock{position:fixed;right:20px;bottom:20px;z-index:80;display:flex;flex-direction:column;gap:10px}
.contact-dock a{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);color:#fff;transition:transform .2s;position:relative}
.contact-dock a:hover{transform:scale(1.08)}
.contact-dock a svg{width:26px;height:26px;fill:currentColor}
.cd-zalo{background:#0068ff}
.cd-phone{background:#12a150}
.cd-mess{background:#0084ff}
.contact-dock a .cd-label{position:absolute;right:60px;white-space:nowrap;background:var(--charcoal);color:#fff;font-size:12px;font-weight:700;padding:6px 10px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s}
.contact-dock a:hover .cd-label{opacity:1}
.cd-phone::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #12a150;animation:cdpulse 1.8s ease-out infinite}
@keyframes cdpulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.6);opacity:0}}
/* ---------- Share buttons ---------- */
.share-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:28px 0 8px;padding-top:22px;border-top:1px solid var(--line)}
.share-row span{font-weight:700;color:var(--green-deep);font-size:14px}
.share-row a{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--white-soft);border:1px solid var(--line);color:var(--green-deep);transition:.2s}
.share-row a:hover{background:var(--green-deep);color:var(--cream);transform:translateY(-2px)}
.share-row a svg{width:18px;height:18px;fill:currentColor}
/* ---------- 404 ---------- */
.err-wrap{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px}
.err-code{font-size:clamp(80px,18vw,180px);line-height:1;font-weight:900;letter-spacing:-.06em;color:var(--green-deep);opacity:.9}
/* ---------- Print ---------- */
@media print{header,footer,.contact-dock,.to-top,.read-progress,.cta-box,.top-note{display:none!important}body{background:#fff}.prose{max-width:100%}}
@media (max-width:640px){
  .contact-dock{right:14px;bottom:14px;gap:8px}
  .contact-dock a{width:46px;height:46px}
  .to-top{right:14px;bottom:174px;width:42px;height:42px}
  .contact-dock a svg{width:22px;height:22px}
}
/* =========================================================
   Hiệu ứng / Motion
   ========================================================= */
/* Header co lại + đổ bóng khi cuộn */
.nav{transition:min-height .3s ease}
header{transition:box-shadow .3s ease, background .3s ease}
header.scrolled{box-shadow:0 8px 30px -16px rgba(18,51,40,.32)}
header.scrolled .nav{min-height:62px}
/* Hero: hiệu ứng xuất hiện khi tải trang */
@keyframes riseIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes floatIn{from{opacity:0;transform:translateY(34px) scale(.97)}to{opacity:1;transform:none}}
.hero .eyebrow,.hero h1,.hero .lead,.hero .hero-actions,.hero .hero-stats{opacity:0;animation:riseIn .8s cubic-bezier(.2,.7,.2,1) forwards}
.hero h1{animation-delay:.07s}
.hero .lead{animation-delay:.15s}
.hero .hero-actions{animation-delay:.23s}
.hero .hero-stats{animation-delay:.31s}
.hero .portrait-card{opacity:0;animation:floatIn .9s cubic-bezier(.2,.7,.2,1) .18s forwards}
/* Blob nền hero trôi nhẹ */
.hero::before{animation:blobDrift 16s ease-in-out infinite alternate}
@keyframes blobDrift{0%{transform:translate(0,0) scale(1)}100%{transform:translate(-32px,22px) scale(1.14)}}
/* Reveal so le (JS gắn class .anim) */
.anim{opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
.anim.in{opacity:1;transform:none}
/* Nút primary loáng sáng khi hover */
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-20deg);transition:left .6s ease;pointer-events:none}
.btn-primary:hover::after{left:135%}
/* Ảnh khoá học zoom nhẹ khi hover card */
.course-thumb{transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.course-card:hover .course-thumb{transform:scale(1.05)}
/* Logo xoay nhẹ khi hover */
.brand-mark{transition:transform .4s ease}
.brand:hover .brand-mark{transform:rotate(10deg) scale(1.06)}
/* Card nhấc lên mượt hơn */
.cap-card,.course-card,.post,.rev-card,.lab-card,.case-card{will-change:transform}
/* Con số đếm nhấn nhá */
.count{font-variant-numeric:tabular-nums}
/* Hiệu ứng gõ chữ */
.typewriter{white-space:pre-wrap}
.tw-caret::after{content:"";display:inline-block;width:3px;height:.92em;background:var(--earth);margin-left:5px;vertical-align:-2px;border-radius:2px;animation:blinkCaret 1s infinite}
@keyframes blinkCaret{0%,100%{opacity:1}50%{opacity:0}}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto!important;transition:none!important}
  .reveal,.anim,.hero .eyebrow,.hero h1,.hero .lead,.hero .hero-actions,.hero .hero-stats,.hero .portrait-card{opacity:1!important;transform:none!important}
}
/* ---------- Viền neon hổ phách ---------- */
/* Nút chính: viền neon hổ phách */
.btn-primary{
  border-color:var(--neon-amber);
  box-shadow:0 0 7px rgba(255,196,107,.55),inset 0 0 7px rgba(255,196,107,.2),0 16px 36px rgba(18,51,40,.18);
}
.btn-primary:hover{
  box-shadow:0 0 15px rgba(255,196,107,.9),0 0 32px rgba(255,196,107,.42),inset 0 0 11px rgba(255,196,107,.3),0 16px 36px rgba(18,51,40,.18);
}
/* ---------- Thư viện Hướng dẫn ---------- */
/* Ô tìm kiếm trong thư viện */
.hd-thanh-tren{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:-6px 0 26px}
.hd-tim{flex:1;min-width:260px;position:relative;display:flex;align-items:center;background:var(--white-soft);border:1px solid var(--line);border-radius:999px;padding:5px 6px 5px 16px;transition:border-color .2s ease}
.hd-tim:focus-within{border-color:var(--earth)}
.hd-tim-ic{flex:none;width:18px;height:18px;color:var(--muted);display:flex;margin-right:9px}
.hd-tim-ic svg{width:18px;height:18px}
.hd-tim input[type=search]{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:15px;color:var(--charcoal);padding:9px 0;outline:none}
.hd-tim input[type=search]::placeholder{color:var(--muted)}
.hd-tim button{flex:none;border:0;border-radius:999px;background:var(--green-deep);color:var(--cream);font:inherit;font-weight:750;font-size:13.5px;padding:10px 20px;cursor:pointer;transition:background .2s ease}
.hd-tim button:hover{background:var(--green-moss)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Kết quả tìm kiếm */
.hd-kq-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 18px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.hd-kq-head h2{font-size:19px;color:var(--green-deep);margin:0}
.hd-kq-xoa{font-size:13px;font-weight:700;color:var(--earth);text-decoration:none;border-bottom:1px solid transparent}
.hd-kq-xoa:hover{border-bottom-color:var(--earth)}
.hd-kq-trong{color:var(--muted);font-size:15.5px;line-height:1.7;background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px 26px}
.hd-kq-trong a{color:var(--earth);font-weight:700}
@media (max-width:560px){
  .hd-tim{padding-left:13px}
  .hd-tim input[type=search]{font-size:14.5px}
  .hd-tim button{padding:10px 15px;font-size:13px}
}

.hd-chude-title{font-size:19px;margin:36px 0 16px;color:var(--green-deep);border-bottom:1px solid var(--line);padding-bottom:9px}
.hd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:16px}
.hd-card{position:relative;background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;transition:.22s ease;display:flex;flex-direction:column}
.hd-card:hover{transform:translateY(-3px);border-color:var(--green-moss);box-shadow:0 16px 34px rgba(18,51,40,.1)}
.hd-card.is-locked{background:rgba(255,253,247,.6)}
/* Nhãn "Riêng" — kiểu chung, dùng cả ở thẻ lẫn trang chi tiết */
.hd-badge{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--earth);background:var(--paper);border-radius:999px;padding:4px 10px;line-height:1}
/* Riêng TRONG THẺ thì nổi ở góc, để không đẩy tiêu đề xuống → các thẻ thẳng hàng */
.hd-card .hd-badge{position:absolute;top:14px;right:14px}
.hd-card h3{font-size:16.5px;line-height:1.4;margin:0 0 8px;padding-right:74px;min-height:2.8em}
.hd-card h3 a{color:var(--green-deep);text-decoration:none}
.hd-card h3 a:hover{color:var(--green-moss)}
.hd-desc{font-size:13.5px;color:var(--muted);line-height:1.55;margin:0 0 16px}
/* Nút thật thay cho chữ trần — gọn, cân, luôn nằm sát đáy thẻ */
.hd-more{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;color:var(--green-deep);background:transparent;border:1px solid var(--line);border-radius:999px;padding:8px 15px;transition:.2s ease}
.hd-more:hover{border-color:var(--earth);background:var(--paper)}
.hd-more-lock{color:var(--cream);background:var(--green-deep);border-color:var(--green-deep)}
.hd-more-lock:hover{background:var(--green-moss);border-color:var(--green-moss);color:var(--cream)}
.hd-login-note{margin-top:36px;padding:18px 22px;background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-lg)}
.hd-login-note p{margin:0;color:var(--charcoal);font-size:14.5px}

/* Trang chi tiết hướng dẫn */
.hd-single-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hd-single-chude{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--earth)}
.hd-lock-wall{text-align:center;background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-xl);padding:42px 30px;margin:24px 0}
.hd-lock-ic{width:46px;height:46px;margin:0 auto 14px;border-radius:50%;background:var(--paper);color:var(--earth);display:flex;align-items:center;justify-content:center}
.hd-lock-ic svg{width:24px;height:24px}
.hd-lock-wall h2{font-size:21px;color:var(--green-deep);margin-bottom:9px}
.hd-lock-wall p{color:var(--muted);font-size:15px;max-width:430px;margin:0 auto 22px;line-height:1.62}
.hd-lock-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.hd-lock-actions .btn{min-width:150px}

/* ---------- Mục lục các bước ---------- */
/* Nền trắng + viền để khối mục lục tách khỏi nền giấy, không bị chìm */
.hd-toc{background:var(--white-soft);border:1px solid var(--line);border-left:3px solid var(--earth);border-radius:var(--radius-md);padding:18px 24px;margin:24px 0 30px}
.hd-toc-title{font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--earth);margin-bottom:9px}
.hd-toc ol{margin:0;padding-left:18px}
.hd-toc li{margin:6px 0;font-size:14.5px;line-height:1.5}
.hd-toc a{color:var(--green-deep);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s ease}
.hd-toc a:hover{border-bottom-color:var(--earth)}
/* Bước đang đọc — mục lục bám theo lúc cuộn */
.hd-toc li{position:relative;transition:color .2s ease}
.hd-toc a.dang-doc{color:var(--earth);font-weight:800}
.hd-toc li:has(a.dang-doc)::marker{color:var(--earth);font-weight:800}
/* Ở màn hình rộng, mục lục dính lại để tra cứu trong lúc đọc bài dài */
@media (min-width:1025px){
  .hd-toc{position:sticky;top:92px;z-index:5}
}

/* Nội dung bài: tiêu đề phụ phải NHỎ hơn tiêu đề bài, giữ đúng tôn ti */
.hd-body h2{font-size:23px;line-height:1.3;margin:32px 0 10px;color:var(--green-deep)}
.hd-body h3{font-size:18.5px;line-height:1.35;margin:24px 0 8px;color:var(--green-deep)}
.hd-body p{font-size:16px;line-height:1.72;margin:0 0 14px}
.hd-body ul,.hd-body ol{margin:0 0 16px;padding-left:22px}
.hd-body li{font-size:16px;line-height:1.7;margin:5px 0}
.hd-body h2,.hd-body h3{scroll-margin-top:90px}
.hd-body iframe,.hd-body video{max-width:100%;border-radius:var(--radius-md)}
.hd-body .wp-block-embed__wrapper{position:relative}
.hd-body img{max-width:100%;height:auto;border-radius:var(--radius-md)}

/* Biểu tượng ổ khoá vẽ nét — cùng phong cách với icon khác, không dùng emoji màu */
.hd-ic-lock{width:13px;height:13px;flex:none}
.hd-badge{gap:5px}

/* Tài liệu kèm theo — gọn, các dòng liền mạch */
.hd-files{margin:32px 0 0;background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px 22px}
.hd-files-title{font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--earth);margin-bottom:10px}
.hd-files ul{list-style:none;margin:0;padding:0}
.hd-files li{margin-bottom:6px}
.hd-files li:last-child{margin-bottom:0}
.hd-files a{display:flex;align-items:center;gap:11px;padding:10px 13px;background:var(--cream-light);border:1px solid var(--line);border-radius:var(--radius-md);text-decoration:none;transition:.2s ease}
.hd-files a:hover{border-color:var(--earth);background:var(--paper)}
.hd-file-ext{flex:none;font-size:10px;font-weight:850;letter-spacing:.04em;color:var(--white-soft);background:var(--green-moss);border-radius:5px;padding:4px 7px;min-width:42px;text-align:center;line-height:1.2}
.hd-file-name{flex:1;font-weight:650;font-size:14px;color:var(--charcoal);line-height:1.4}
.hd-file-size{flex:none;font-size:12px;color:var(--muted)}

/* ---------- Trang Liên hệ: khách đang hỏi về dịch vụ nào ---------- */
.lh-quantam{background:var(--white-soft);border:1px solid var(--line);border-left:3px solid var(--earth);border-radius:var(--radius-md);padding:18px 22px;margin:0 0 26px}
.lh-quantam-nhan{display:block;font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--earth);margin-bottom:5px}
.lh-quantam strong{display:block;font-size:19px;color:var(--green-deep);line-height:1.3;margin-bottom:7px}
.lh-quantam p{margin:0;font-size:14.5px;color:var(--muted);line-height:1.6}

/* ---------- Phòng học: nội dung trái, danh sách bài phải ---------- */
.hoc-wrap{padding-top:24px;padding-bottom:56px}
.hoc-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
.hoc-main{min-width:0}

.hoc-head{margin-bottom:20px}
.hoc-head h1{font-size:clamp(26px,3.2vw,38px);line-height:1.12;color:var(--green-deep);margin:12px 0 8px}
.hoc-tl{font-size:12.5px;color:var(--muted)}
.hoc-vitri{font-size:13.5px;color:var(--muted);margin:0}
.hoc-vitri strong{color:var(--earth);font-weight:750}
.hoc-anh img{width:100%;height:auto;border-radius:var(--radius-lg);display:block;margin-bottom:22px}

/* Trình phát video — phần chính của bài */
.hoc-video{position:relative;width:100%;aspect-ratio:16/9;background:var(--green-deep);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:22px;box-shadow:var(--shadow)}
.hoc-video iframe,.hoc-video video,.hoc-video embed,.hoc-video object{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
/* Nhúng TikTok cao hơn 16:9 nên để nó tự co */
.hoc-video .tiktok-embed{position:static;margin:0 auto;max-width:100%}
.hoc-video:has(.tiktok-embed){aspect-ratio:auto;background:transparent;box-shadow:none}

/* Nút tự đánh dấu đã làm xong */
.nw-dd-khoi{margin-top:30px;padding-top:24px;border-top:1px solid var(--line);text-align:center}
.nw-dd{display:inline-flex;align-items:center;gap:10px;font:inherit;font-size:14.5px;font-weight:750;cursor:pointer;border-radius:999px;padding:13px 26px;background:transparent;border:1.5px solid var(--line);color:var(--green-deep);transition:.22s ease}
.nw-dd:hover:not(:disabled){border-color:var(--green-moss);background:var(--white-soft)}
.nw-dd:disabled{opacity:.6;cursor:wait}
.nw-dd-ic{width:22px;height:22px;flex:none;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;color:transparent;transition:.22s ease}
.nw-dd-ic svg{width:12px;height:12px}
.nw-dd.da-lam{background:var(--green-moss);border-color:var(--green-moss);color:var(--cream)}
.nw-dd.da-lam .nw-dd-ic{background:var(--cream);border-color:var(--cream);color:var(--green-moss)}
.nw-dd-goi{font-size:13px;color:var(--muted);margin:10px 0 0;line-height:1.55}

/* Điều hướng bài trước / bài tiếp */
.hoc-dieuhuong{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:34px;padding-top:22px;border-top:1px solid var(--line)}
.hoc-nav{display:flex;flex-direction:column;gap:5px;background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px 17px;text-decoration:none;transition:.2s ease}
.hoc-nav:hover{border-color:var(--green-moss);transform:translateY(-2px)}
.hoc-nav-sau{text-align:right}
.hoc-nav-label{font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--earth)}
.hoc-nav-ten{font-size:14.5px;font-weight:700;color:var(--green-deep);line-height:1.4}

/* Cột phải */
.hoc-side{position:sticky;top:86px;background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.hoc-side-head{padding:18px 20px;background:var(--green-deep);color:var(--cream)}
.hoc-side-title{font-size:15px;font-weight:800;line-height:1.3}
.hoc-side-so{font-size:12px;color:rgba(244,239,228,.7);margin-top:3px}
.hoc-ds{list-style:none;margin:0;padding:8px;max-height:56vh;overflow-y:auto}
.hoc-ds-item{margin:0 0 4px}
.hoc-ds-item:last-child{margin-bottom:0}
.hoc-ds-item a{display:flex;gap:11px;align-items:flex-start;padding:10px;border-radius:var(--radius-md);text-decoration:none;transition:.18s ease}
.hoc-ds-item a:hover{background:var(--cream-light)}
/* Ảnh thu nhỏ của bài — có ảnh thì hiện ảnh, không thì ô số */
.hoc-ds-thumb{position:relative;flex:none;width:74px;height:47px;border-radius:8px;overflow:hidden;background:var(--paper)}
.hoc-ds-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.hoc-ds-num{position:absolute;left:4px;bottom:4px;min-width:21px;height:19px;padding:0 5px;border-radius:5px;background:rgba(18,51,40,.86);color:var(--cream);font-size:10.5px;font-weight:850;display:flex;align-items:center;justify-content:center}
.hoc-ds-num svg{width:11px;height:11px}
/* Bài chưa có ảnh: ô số/tick phải rõ, không được chìm vào nền */
.hoc-ds-thumb.khong-anh{display:flex;align-items:center;justify-content:center;background:var(--cream)}
.hoc-ds-thumb.khong-anh .hoc-ds-num{position:static;background:transparent;color:var(--green-deep);font-size:15px;font-weight:900;min-width:auto;height:auto}
.hoc-ds-thumb.khong-anh .hoc-ds-num svg{width:17px;height:17px}
.hoc-ds-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;background:rgba(255,253,247,.9);color:var(--green-deep);display:flex;align-items:center;justify-content:center}
.hoc-ds-play svg{width:12px;height:12px;margin-left:1px}
.hoc-ds-main{min-width:0;flex:1}
.hoc-ds-ten{display:block;font-size:13.5px;font-weight:700;color:var(--charcoal);line-height:1.42}
.hoc-ds-meta{display:flex;align-items:center;gap:7px;margin-top:4px;flex-wrap:wrap}
.hoc-tag{font-size:9.5px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;border-radius:4px;padding:2px 6px;line-height:1.5}
.hoc-tag-mo{background:rgba(82,107,79,.14);color:var(--green-moss)}
.hoc-tag-rieng{background:rgba(155,118,83,.16);color:var(--earth)}
.hoc-ds-tl{font-size:11.5px;color:var(--muted)}
/* Bài đang xem */
.hoc-ds-item.dang-xem a{background:var(--paper)}
.hoc-ds-item.dang-xem .hoc-ds-thumb{outline:2px solid var(--green-deep);outline-offset:-2px}
.hoc-ds-item.dang-xem .hoc-ds-ten{color:var(--green-deep);font-weight:800}
/* Bài đã xem */
.hoc-ds-item.da-xem .hoc-ds-num{background:var(--green-moss)}
.hoc-ds-item.da-xem .hoc-ds-thumb.khong-anh{background:var(--green-moss)}
.hoc-ds-item.da-xem .hoc-ds-thumb.khong-anh .hoc-ds-num{background:transparent;color:var(--cream)}
.hoc-ds-item.da-xem .hoc-ds-ten{color:var(--muted);font-weight:600}
.hoc-ds-item.da-xem .hoc-ds-thumb img{opacity:.62}
.hoc-side-foot{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-top:1px solid var(--line);background:var(--cream-light)}
.hoc-side-foot .btn{width:100%;font-size:13px;padding:10px 14px}

@media (max-width:1024px){
  .hoc-grid{grid-template-columns:1fr}
  /* Màn hình hẹp: NỘI DUNG phải lên trước. Trước đây con đẩy danh sách bài lên
     đầu (order:-1) → người mở bài trên điện thoại phải cuộn hết danh sách mới
     đọc được thứ mình cần. Danh sách xuống dưới, và cuộn trong khung riêng. */
  .hoc-side{position:static}
  .hoc-ds{max-height:340px}
  .hoc-dieuhuong{grid-template-columns:1fr}
  .hoc-nav-sau{text-align:left}
}

/* ---------- Khu vực của tôi ---------- */
.kv-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:26px}
.kv-head h1{font-size:clamp(26px,3.4vw,36px);line-height:1.12;color:var(--green-deep);margin:6px 0 8px}
.kv-sub{color:var(--muted);font-size:15px;line-height:1.6;margin:0;max-width:520px}
.kv-logout{flex:none;font-size:13px;font-weight:750;color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:8px 16px;transition:.2s ease}
.kv-logout:hover{border-color:var(--earth);color:var(--earth)}

.kv-tiendo{background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 22px;margin-bottom:16px}
.kv-tiendo-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.kv-tiendo-label{font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--earth)}
.kv-tiendo-so{font-size:14.5px;font-weight:750;color:var(--green-deep)}
.kv-thanh{height:7px;background:var(--paper);border-radius:999px;overflow:hidden}
.kv-thanh span{display:block;height:100%;background:var(--green-moss);border-radius:999px;transition:width .5s ease}

.kv-tieptuc{background:linear-gradient(135deg,rgba(18,51,40,.96),rgba(82,107,79,.92));color:var(--cream);border-radius:var(--radius-lg);padding:22px 26px;margin-bottom:30px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.kv-tieptuc-label{font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:rgba(244,239,228,.72);margin-bottom:6px;width:100%}
.kv-tieptuc h2{font-size:20px;line-height:1.32;margin:0;color:var(--cream);flex:1;min-width:220px}
.kv-tieptuc .btn{flex:none}
.kv-tieptuc h2 a{color:var(--cream);text-decoration:none}
.kv-tieptuc h2 a:hover{border-bottom:1px solid var(--neon-amber)}

.kv-muc{font-size:18px;color:var(--green-deep);margin:0 0 14px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.kv-list{display:flex;flex-direction:column;gap:8px}
.kv-item{display:flex;align-items:center;gap:14px;background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px 18px;text-decoration:none;transition:.2s ease}
.kv-item:hover{border-color:var(--green-moss);transform:translateX(3px)}
.kv-tick{flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;color:transparent}
.kv-item.is-done .kv-tick{background:var(--green-moss);border-color:var(--green-moss);color:var(--cream)}
.kv-tick svg{width:13px;height:13px}
.kv-item-main{flex:1;min-width:0}
.kv-item-title{display:block;font-size:15px;font-weight:700;color:var(--green-deep);line-height:1.4}
.kv-item.is-done .kv-item-title{color:var(--muted);font-weight:600}
.kv-item-meta{display:flex;gap:8px;align-items:center;margin-top:3px;font-size:12px;color:var(--muted)}
.kv-rieng{color:var(--earth);font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:10.5px}
.kv-lam{color:var(--green-moss);font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:10.5px}
.kv-label-lam{color:var(--green-moss)}
/* Phải đủ mạnh để thắng luật .kv-thanh span ở trên, nếu không hai thanh cùng màu */
.kv-thanh span.kv-thanh-lam{background:var(--earth)}
/* Đã LÀM XONG khác với chỉ đã xem: tick đậm, tiêu đề không bị mờ đi */
.kv-item.is-lam .kv-tick{background:var(--earth);border-color:var(--earth);color:var(--cream)}
.kv-item.is-lam .kv-item-title{color:var(--green-deep);font-weight:700}
.kv-item-go{flex:none;color:var(--earth);font-size:16px}

/* Dấu "đã xem" trên thẻ trong thư viện */
.hd-card.da-xem{border-color:rgba(82,107,79,.4)}
.hd-card .hd-daxem{position:absolute;bottom:22px;right:22px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--green-moss)}

/* ---------- Trang đăng nhập ---------- */
.nw-login-card{background:var(--white-soft);border:1px solid var(--line);border-radius:var(--radius-xl);padding:36px 32px;box-shadow:var(--shadow)}
.nw-login-card h1{font-size:24px;line-height:1.25;color:var(--green-deep);margin:6px 0 10px}
.nw-login-card>p{color:var(--muted);font-size:15px;line-height:1.6;margin-bottom:22px}
.nw-login-card .login-username,.nw-login-card .login-password{margin-bottom:14px}
.nw-login-card label{display:block;font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.nw-login-card input[type=text],.nw-login-card input[type=password]{width:100%;border:1px solid var(--line);background:var(--cream-light);color:var(--charcoal);border-radius:var(--radius-md);padding:13px 14px;font:inherit;outline:none;transition:border-color .2s ease}
.nw-login-card input[type=text]:focus,.nw-login-card input[type=password]:focus{border-color:var(--earth)}
.nw-login-card .login-remember{margin:4px 0 18px}
.nw-login-card .login-remember label{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-weight:600;font-size:14px;color:var(--charcoal);margin:0}
.nw-login-card .login-submit input[type=submit]{width:100%;border-radius:999px;padding:14px 20px;font:inherit;font-weight:750;font-size:14.5px;cursor:pointer;background:var(--green-deep);color:var(--white-soft);border:1px solid var(--neon-amber);box-shadow:0 0 7px rgba(255,196,107,.55);transition:.25s ease}
.nw-login-card .login-submit input[type=submit]:hover{background:#0e2a21;box-shadow:0 0 15px rgba(255,196,107,.9),0 0 32px rgba(255,196,107,.42);transform:translateY(-2px)}
.nw-login-help{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted)}
.nw-login-help p{margin:0 0 6px;line-height:1.6}
.nw-login-help p:last-child{margin-bottom:0}
.nw-login-help a{color:var(--earth);font-weight:650;text-decoration:none;border-bottom:1px solid transparent}
.nw-login-help a:hover{border-bottom-color:var(--earth)}
.nw-login-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}

/* ---------- Responsive ---------- */
/* Màn hình vừa: ẩn dòng mô tả dài dưới tên thương hiệu để menu đủ chỗ, không bẻ dòng */
@media (max-width:1280px){
  .brand>span:last-child>span{display:none}
  nav ul{gap:15px;font-size:13.5px}
  .nav{gap:16px}
}
@media (max-width:980px){
  .hero-grid,.section-head,.method-grid,.lab,.cta-box,.sales-grid{grid-template-columns:1fr}
  .hero{padding-top:52px}
  .portrait-card{min-height:480px}
  .grid-3,.case-grid,.journal-grid,.course-grid,.rev-grid,.grid-2{grid-template-columns:1fr}
  .hero-stats{grid-template-columns:1fr 1fr}
  nav ul,.nav-cta .btn{display:none}
  .mobile-menu-btn{display:inline-flex}
  nav#primary-nav.open{display:block;position:absolute;top:100%;left:0;right:0;background:var(--cream-light);border:1px solid var(--line);border-radius:0 0 18px 18px;box-shadow:var(--shadow);padding:8px 0}
  nav#primary-nav.open ul{flex-direction:column;align-items:stretch;gap:0}
  nav#primary-nav.open li{border-bottom:1px solid var(--line)}
  nav#primary-nav.open li:last-child{border-bottom:none}
  nav#primary-nav.open a{display:block;padding:14px 24px}
  .buy-box{position:static}
  .footer-top{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .container{width:min(100% - 28px,var(--max))}
  .hero-stats{grid-template-columns:1fr}
  .portrait-card,.cta-box,.method-intro{border-radius:24px;padding:24px}
  section{padding:52px 0}
  .footer-top{grid-template-columns:1fr}
}
