/* MotionSites v2 — Cô Thanh English Hub · ELEGANT LEARNING DESK
   Nguyên tắc: mềm, chậm, có chủ đích; không chip bay, không công nghệ hóa; reduced-motion đầy đủ. */

/* ===== HERO — LEARNING DESK VISUAL ===== */
.th-hero { position:relative; overflow:hidden; }
.th-hero .softorb { position:absolute; width:420px; height:420px; border-radius:50%; filter:blur(85px); opacity:.45; pointer-events:none;
  background:radial-gradient(circle, rgba(255,217,102,.32), rgba(74,127,165,.12) 60%, transparent 78%); right:-110px; top:-70px; }
.th-grid { display:grid; grid-template-columns:1fr; gap:30px; align-items:center; position:relative; z-index:2; }
@media (min-width:880px){ .th-grid { grid-template-columns:1.02fr .98fr; } }

.learning-desk { display:grid; grid-template-columns:auto 1fr; gap:12px; max-width:430px; margin:0 auto; align-items:start; }
@media (max-width:560px){ .learning-desk { grid-template-columns:1fr; } }
/* portrait nhỏ — đứng gần như yên */
.teacher-mini-card { background:#fff; border:1px solid var(--border); border-radius:18px; padding:14px; text-align:center; width:132px;
  box-shadow:0 10px 26px rgba(74,127,165,.12); }
@media (max-width:560px){ .teacher-mini-card { width:100%; display:flex; align-items:center; gap:12px; text-align:left; } }
.teacher-mini-card img { width:76px; height:76px; border-radius:50%; object-fit:cover; object-position:center; border:3px solid var(--gold); }
.teacher-mini-card .nm { font-family:'Fraunces',serif; font-size:.9rem; color:var(--ink); margin-top:8px; line-height:1.3; }
@media (max-width:560px){ .teacher-mini-card .nm { margin-top:0; } }
.teacher-mini-card .rl { font-size:.7rem; color:var(--blue-deep); font-weight:700; }
@media (prefers-reduced-motion:no-preference){
  .teacher-mini-card { animation:td-float 10s ease-in-out infinite; }
}
@keyframes td-float { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-4px); } }
/* card chính */
.learning-main-card { background:#fff; border:1px solid var(--border); border-top:4px solid var(--gold); border-radius:18px; padding:16px 18px;
  box-shadow:0 12px 30px rgba(74,127,165,.12); }
.learning-main-card .k { font-size:.68rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--blue-deep); }
.learning-main-card .t { font-family:'Fraunces',serif; font-size:1.08rem; color:var(--ink); margin:4px 0 2px; }
.learning-main-card .flow { font-size:.84rem; color:var(--muted); }
.learning-main-card .flow b { color:var(--gold-text); }
/* 3 card phụ */
.learning-cards { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
@media (max-width:560px){ .learning-cards { grid-template-columns:1fr; } }
.learning-card { background:#fff; border:1px solid var(--border); border-radius:14px; padding:11px 13px; font-size:.8rem; font-weight:700; color:var(--ink); }
.learning-card small { display:block; font-weight:400; color:var(--muted); font-size:.72rem; margin-top:2px; }
.learning-card i { font-style:normal; color:var(--gold-text); margin-right:5px; }
/* mini note */
.learning-note { grid-column:1 / -1; background:var(--gold-soft); border-radius:12px; padding:10px 15px; font-size:.84rem; color:var(--ink); }
/* fade-in tuần tự khi tải */
@media (prefers-reduced-motion:no-preference){
  .learning-desk > * { opacity:0; animation:td-in .7s ease forwards; }
  .teacher-mini-card { animation:td-in .7s ease forwards, td-float 10s ease-in-out 1s infinite; }
  .learning-main-card { animation-delay:.15s; }
  .learning-cards { animation-delay:.3s; }
  .learning-note { animation-delay:.45s; }
}
@keyframes td-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }

/* ===== LEARNING PROGRESS (path có line dọc xanh→vàng) ===== */
.learning-progress { position:relative; padding-left:16px; }
.learning-progress::before { content:""; position:absolute; left:27px; top:10px; bottom:10px; width:2px;
  background:var(--line-fill, var(--blue-soft)); transition:background .6s ease; border-radius:2px; z-index:0; }
.learning-progress .st { position:relative; z-index:1; transition:background .6s ease, border-color .6s ease, box-shadow .6s ease; }
.learning-progress .st::before { transition:background .6s ease, color .6s ease; }
.learning-progress .st.lit { background:#fff; border-color:var(--gold); box-shadow:0 8px 22px rgba(255,192,32,.13); }
.learning-progress .st.lit::before { background:var(--gold); color:var(--ink); }

/* ===== REPORT SIGNATURE (visual đặc trưng) ===== */
.report-prev { max-width:430px; margin:18px auto 0; background:#fff; border:1px solid var(--border); border-radius:18px; padding:20px 22px;
  box-shadow:0 16px 40px rgba(74,127,165,.14); }
.report-signature { border-top:4px solid var(--gold); box-shadow:0 20px 48px rgba(74,127,165,.16); }
.report-prev .rp-h { display:flex; align-items:center; gap:9px; border-bottom:1px dashed var(--border); padding-bottom:10px; margin-bottom:10px; }
.report-prev .rp-h .ic { width:34px; height:34px; border-radius:10px; background:var(--gold-soft); display:flex; align-items:center; justify-content:center; font-weight:800; color:var(--gold-text); font-size:.72rem; }
.report-prev .rp-h strong { font-size:.92rem; }
.report-prev .rp-h small { display:block; font-size:.75rem; color:var(--muted); }
.rp-row { display:flex; gap:9px; font-size:.86rem; margin-bottom:8px; align-items:flex-start; }
.rp-row .tick { flex:none; width:20px; height:20px; border-radius:6px; font-size:.7rem; display:flex; align-items:center; justify-content:center; }
.rp-row .tick.ok { background:#e7f2e7; color:#3c7a3c; }
.rp-row .tick.fix { background:#fdf1e3; color:#a05c00; }
.rp-row .tick.next { background:var(--blue-soft); color:var(--blue-deep); }
/* hiệu ứng "update nhẹ" khi vào màn hình (JS thêm .on) */
@media (prefers-reduced-motion:no-preference){
  .js-motion .report-prev .rp-row { opacity:0; transform:translateY(8px); transition:opacity .55s ease, transform .55s ease; }
  .js-motion .report-prev.on .rp-row { opacity:1; transform:none; }
  .report-prev.on .rp-row:nth-child(2){ transition-delay:.1s; } .report-prev.on .rp-row:nth-child(3){ transition-delay:.25s; }
  .report-prev.on .rp-row:nth-child(4){ transition-delay:.4s; } .report-prev.on .rp-row:nth-child(5){ transition-delay:.55s; }
}

/* ===== VIDEO LESSON CARDS (mockup video thật) ===== */
.vcarousel { overflow-x:auto; display:flex; gap:14px; padding:6px 4px 14px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
.vcarousel::-webkit-scrollbar { height:8px; } .vcarousel::-webkit-scrollbar-thumb { background:var(--border); border-radius:99px; }
.vcarousel .card { flex:0 0 240px; scroll-snap-align:start; }
.video-lesson-card .vthumb { position:relative; height:118px; border-radius:12px; margin-bottom:10px; overflow:hidden;
  background:linear-gradient(150deg,var(--blue-soft),var(--gold-soft)); }
.play-badge { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.92); box-shadow:0 6px 18px rgba(43,43,43,.18); }
.play-badge::before { content:""; position:absolute; left:56%; top:50%; transform:translate(-50%,-50%);
  border-left:13px solid var(--blue-deep); border-top:8px solid transparent; border-bottom:8px solid transparent; }
.duration-badge { position:absolute; right:8px; bottom:8px; background:rgba(43,43,43,.78); color:#fff; font-size:.68rem; font-weight:700;
  border-radius:6px; padding:2px 8px; }
.video-lesson-card .goal { font-size:.78rem; color:var(--blue-deep); font-weight:600; margin-top:4px; }
.video-lesson-card:hover .play-badge { transform:translate(-50%,-50%) scale(1.06); transition:transform .3s ease; }

/* ===== CARD / QUIZ / TRUST (giữ, êm) ===== */
.card { transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.card:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(74,127,165,.13); border-color:rgba(74,127,165,.35); }
.quizsim { max-width:560px; margin:16px auto 0; }
.qcard { background:#fff; border:1px solid var(--border); border-radius:16px; padding:16px 18px; margin-bottom:10px; box-shadow:0 6px 18px rgba(43,43,43,.05); }
.qcard .qk { font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--blue-deep); }
.qcard.warn .qk { color:#a05c00; } .qcard.good .qk { color:var(--gold-text); }
.qcard p { font-size:.93rem; margin-top:4px; }
.qcard .opt { display:inline-block; border:1px solid var(--border); border-radius:10px; padding:6px 12px; margin:6px 6px 0 0; font-size:.88rem; }
.qcard .opt.x { border-color:#d99; background:#fdf3f3; } .qcard .opt.v { border-color:var(--gold); background:var(--gold-soft); }
.trust { border-top:4px solid var(--gold-soft); } .trust:hover { border-top-color:var(--gold); }

/* ===== CALM CTA — pulse rất nhẹ chỉ nút chính hero ===== */
.btn { transition:filter .25s ease, transform .25s ease, box-shadow .25s ease; }
.btn:hover { transform:translateY(-1px); box-shadow:0 6px 16px rgba(255,192,32,.28); }
@media (prefers-reduced-motion:no-preference){
  .th-hero .btn:not(.line) { animation:td-pulse 5s ease-in-out infinite; }
}
@keyframes td-pulse { 0%,100%{ box-shadow:0 0 0 0 rgba(255,192,32,0); } 50%{ box-shadow:0 0 0 6px rgba(255,192,32,.10); } }

/* Ảnh cũ + reveal + mobile touch */
.photo-portrait { width:150px; height:150px; border-radius:50%; object-fit:cover; object-position:center top; border:4px solid var(--gold); box-shadow:0 8px 24px rgba(74,127,165,.18); margin-bottom:14px; }
.photo-wide { width:100%; border-radius:16px; display:block; box-shadow:0 10px 28px rgba(43,43,43,.10); }
.photo-cap { font-size:.82rem; color:var(--muted); margin-top:8px; text-align:center; }
/* V15 25/08: chỉ ẩn KHI JS đã bật cờ .js-motion. Không có JS = nội dung hiện bình thường. */
.js-motion .ms-reveal { opacity:0; transform:translateY(14px); transition:opacity .65s ease, transform .65s ease; }
.js-motion .ms-reveal.in { opacity:1; transform:none; }
@media (hover:none){
  .card:active { transform:scale(.985); box-shadow:0 4px 14px rgba(74,127,165,.12); }
  .btn:active { transform:translateY(0); filter:brightness(1.06); }
}
@media (prefers-reduced-motion:reduce){
  .teacher-mini-card, .learning-desk > *, .th-hero .btn:not(.line) { animation:none !important; opacity:1 !important; }
  .report-prev .rp-row, .js-motion .report-prev .rp-row { opacity:1 !important; transform:none !important; }
  .ms-reveal, .js-motion .ms-reveal { opacity:1 !important; transform:none !important; transition:none !important; }
  .btn:hover { transform:none; }
}

/* Ảnh dọc cô đứng bảng — căn giữa, không quá cao */
.photo-tall { display:block; max-width:400px; width:100%; margin:16px auto 0; border-radius:16px; box-shadow:0 12px 32px rgba(74,127,165,.14); }

/* ===== TIN HIEU SONG (3 muc web Co Thanh — am, khong neon) ===== */
/* 4. Report "dang duoc nhap": header hien 'dang cap nhat...' truoc khi cac dong hien */
.report-prev .rp-h .live-typing { display:none; }
@media (prefers-reduced-motion:no-preference){
  .report-prev:not(.on) .rp-h .live-static { display:none; }
  .report-prev:not(.on) .rp-h .live-typing { display:inline; color:var(--gold-text); font-weight:700; }
  .live-typing::after { content:""; animation:td-dots 1.2s steps(4) infinite; }
}
@keyframes td-dots { 0%{content:"";} 25%{content:".";} 50%{content:"..";} 75%{content:"...";} }
/* 5. Quiz tu cham: dap an dung tu sang sau 1s khi cuon toi */
@media (prefers-reduced-motion:no-preference){
  .quizsim .opt.v { position:relative; }
  .quizsim.on .opt.v { animation:td-pick .5s ease 1s forwards; }
}
@keyframes td-pick {
  0% { background:var(--gold-soft); transform:scale(1); }
  50% { background:var(--gold); transform:scale(1.06); }
  100% { background:var(--gold); border-color:var(--gold); transform:scale(1); font-weight:700; }
}
/* 6. Nhan tien do lo trinh */
.path-progress { display:inline-block; background:var(--blue-soft); color:var(--blue-deep); font-size:.78rem; font-weight:700;
  border-radius:999px; padding:4px 13px; margin-bottom:10px; }

/* ═══════════════════════════════════════════════════════════════════
   NÂNG CRAFT HIỆU ỨNG 2026-07-07 (chuẩn Bee's Home) — GIỮ NGUYÊN MÀU BRAND.
   Chỉ dùng biến màu sẵn có: --gold(#FFC020) · --gold-text · --blue · --cream.
   Không thêm màu mới, không đổi hue thương hiệu Cô Thanh.
   ═══════════════════════════════════════════════════════════════════ */

/* #1 Reveal so le — trồi + mờ + settle mượt hơn (easing có nhịp, thay fade phẳng) */
.ms-reveal { transform: translateY(18px) scale(.985);
  transition: opacity .62s cubic-bezier(.22,.61,.36,1), transform .62s cubic-bezier(.22,.61,.36,1); }
.ms-reveal.in { transform: none; }

/* #3 Icon sống — vòng vàng xoay chậm quanh chấm ● của learning-card (echo bh-icon-ring) */
.learning-card i { position:relative; display:inline-block; width:12px; height:12px; font-size:0; vertical-align:-1px; margin-right:8px; }
.learning-card i::before { content:""; position:absolute; inset:3px; border-radius:50%; background:var(--gold-text); }
@media (prefers-reduced-motion:no-preference){
  .learning-card i::after { content:""; position:absolute; inset:-1px; border-radius:50%;
    background:conic-gradient(from 0deg, var(--gold), rgba(255,192,32,0) 68%);
    -webkit-mask:radial-gradient(circle, transparent 54%, #000 56%); mask:radial-gradient(circle, transparent 54%, #000 56%);
    animation:th-ring 3.4s linear infinite; }
}
@keyframes th-ring { to { transform:rotate(1turn); } }

/* #4 Ảnh sống — Ken Burns RẤT nhẹ (breathe 1→1.03); biên độ nhỏ để không tràn ngang */
@media (prefers-reduced-motion:no-preference){
  .photo-wide, .photo-tall { transform-origin:center; will-change:transform; animation:th-kenburns 15s ease-in-out infinite; }
}
@keyframes th-kenburns { 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.03); } }

/* #6 Hover thẻ — nâng rõ hơn + VIỀN VÀNG brand (điểm nhấn vàng, không phải màu mới) */
.card { transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.card:hover { transform:translateY(-4px); box-shadow:0 14px 32px rgba(74,127,165,.15); border-color:var(--gold); }

/* #11 Nút — glow vàng rõ hơn khi hover (giữ pulse hero sẵn có) */
.btn:hover { transform:translateY(-1px); box-shadow:0 8px 22px rgba(255,192,32,.42), 0 0 0 3px rgba(255,192,32,.14); }

/* #9 Header — kính mờ + đổ bóng khi cuộn (JS thêm .scrolled) */
.nav { transition:background .3s ease, box-shadow .3s ease, backdrop-filter .3s ease; }
.nav.scrolled { background:rgba(255,255,255,.82); -webkit-backdrop-filter:saturate(160%) blur(12px); backdrop-filter:saturate(160%) blur(12px);
  box-shadow:0 6px 22px rgba(74,127,165,.09); }

/* FIX ẢNH KÉO BỂ — thiếu height:auto nên trình duyệt lấy height="1200/540" từ thuộc tính → méo.
   (KHÔNG đụng .photo-portrait: nó cố ý vuông + object-fit) */
.photo-wide, .photo-tall { height:auto; }

/* THẺ pain + bước lộ trình — thêm hover nâng + viền vàng brand (đồng bộ .card, trước đây KHÔNG có hover) */
.pain, .path .st { transition:transform .26s ease, box-shadow .26s ease, border-color .26s ease; }
.pain:hover { transform:translateX(3px); box-shadow:0 10px 24px rgba(74,127,165,.13); border-left-color:var(--gold); }
.path .st:hover { transform:translateY(-3px); box-shadow:0 12px 26px rgba(74,127,165,.14); border-color:var(--gold); }
@media (hover:none){
  .pain:active { transform:translateX(2px); }
  .path .st:active { transform:scale(.99); }
}

/* reduced-motion: tắt mọi hiệu ứng mới */
@media (prefers-reduced-motion:reduce){
  .photo-wide, .photo-tall { animation:none !important; }
  .learning-card i::after { animation:none !important; }
}
