/* Base styles dùng chung mọi trang. Mọi màu/font phải tham chiếu tokens.css — không hardcode hex mới. */
* { box-sizing: border-box; }

/* html body (thay vì chỉ "body") để thắng reset.css của theme cha — xem ghi chú "html a" bên
   dưới, cùng nguyên nhân. Đây là chỗ tác động lớn nhất: reset.css có "body { background:#fff;
   color:#333; font-family: -apple-system... }" — mất TOÀN BỘ nền/màu/font gốc nếu không tăng
   độ đặc hiệu, mọi phần tử kế thừa từ body (không có style riêng) sẽ theo font/màu hệ thống
   mặc định thay vì Work Sans + token màu, kể cả khi chuyển dark/light mode. */
html body {
  margin: 0;
  background-color: var(--lv-bg);
  color: var(--lv-text);
  font-family: var(--lv-font-body);
  font-size: var(--lv-size-body);
  line-height: 1.6;
  background-image:
    linear-gradient(var(--lv-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--lv-grid-line) 1px, transparent 1px);
  background-size: var(--lv-grid-size) var(--lv-grid-size);
  transition: background-color .2s, color .2s;
}

/* html a (thay vì chỉ "a") để thắng reset.css của theme cha Hello Elementor — reset.css nạp
   SAU CSS của theme, có rule "a { color:... }" cùng độ đặc hiệu (0,0,1), thắng theo thứ tự nạp
   nếu không tăng độ đặc hiệu. Xem base.css mục nút bấm (button.lv-*) — cùng nguyên nhân. */
html a { color: var(--lv-primary); text-decoration: none; }
/* reset.css có "a:active,a:hover{color:#336}" cùng độ đặc hiệu (0,1,1) với "html a{color:...}"
   — rule opacity ở dưới KHÔNG khai báo color nên không "thắng" thuộc tính color trên :hover, để
   lộ đúng #336 (xanh navy lạ) của theme cha thay vì màu brand. Phải khai color tường minh ở đây. */
html a:hover, html a:active { color: var(--lv-primary); opacity: .75; }

/* html h1/h2/h3 — cùng lý do: reset.css có "h1,h2,h3,h4,h5,h6 { color:inherit; font-family:
   inherit; ... }" (kế thừa từ body, đang bị lỗi bên trên) + rule font-size riêng cho từng thẻ
   (h1 { font-size:2.5rem } ...) — mọi H1-H3 không có style inline riêng sẽ mất cả font Fraunces
   lẫn font-size responsive theo token. */
html h1, html h2, html h3 { font-family: var(--lv-font-heading); font-weight: 600; margin: 0; color: var(--lv-text); }
html h1 { font-size: var(--lv-size-h1); line-height: 1.12; }
html h2 { font-size: var(--lv-size-h2); }
html h3 { font-size: var(--lv-size-h3); }

.lv-eyebrow {
  font-family: var(--lv-font-mono);
  font-weight: 500;
  font-size: var(--lv-size-eyebrow);
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--lv-primary);
}

.lv-container { max-width: var(--lv-container); margin: 0 auto; padding: 0 24px; }
/* Chỉ khai padding-top/bottom (không dùng shorthand "X 0") — .lv-container và .lv-section
   cùng độ đặc hiệu (1 class), thường dùng chung trên 1 <section>; shorthand "padding" ở đây
   từng tự zero-hoá padding-left/right của .lv-container vì nạp sau (xem bug 0019). */
.lv-section { padding-top: var(--lv-section-pad); padding-bottom: var(--lv-section-pad); }

/* Sheet-tag: dòng mono nhỏ đầu mỗi trang */
.lv-sheet-tag {
  font-family: var(--lv-font-mono);
  font-size: 10px;
  opacity: .6;
  display: flex;
  justify-content: space-between;
  padding: 16px 24px;
  max-width: var(--lv-container);
  margin: 0 auto;
}

/* Divider: thay khoảng trắng giữa section */
.lv-divider { border-top: 1px dashed var(--lv-border); }

/* Corner mark: 2 góc chéo brass trên ảnh/khối minh hoạ kỹ thuật */
.lv-corner-mark { position: relative; }
.lv-corner-mark::before,
.lv-corner-mark::after {
  content: '';
  position: absolute;
  width: 14px; height: 14px;
  border: 1.5px solid var(--lv-brass);
  pointer-events: none;
}
.lv-corner-mark::before { top: 10px; left: 10px; border-right: none; border-bottom: none; }
.lv-corner-mark::after { bottom: 10px; right: 10px; border-left: none; border-top: none; }

/* Button — ".lv-btn"/".btn-ghost" trước giờ chỉ gắn trên thẻ <a> (không có type="submit"/
   "button" nên không đụng reset.css). Từ trang đăng nhập/đăng ký (mục 15) mới có <button
   type="submit">, và reset.css có rule [type=button],[type=submit],button{color:#c36;
   background-color:transparent;...} + hover/focus {background-color:#c36;color:#fff} —
   selector [type="submit"] có độ đặc hiệu bằng đúng 1 class, HOÀ với ".lv-btn"/".btn-ghost"/
   ".lv-tab" đứng một mình nên ai nạp sau thắng (xem LUVIART-DEV-REFERENCE.md §10). Luôn thêm
   biến thể "button.tên-class" (thẻ+class, độ đặc hiệu cao hơn hẳn) cho mọi class dùng trên
   <button>, cả state hover/focus, khai đủ property mà reset.css có set (background/border/color). */
.lv-btn, button.lv-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--lv-font-mono);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 14px 22px;
  border-radius: var(--lv-radius);
  background: var(--lv-primary);
  color: var(--lv-bg);
  border: none;
  cursor: pointer;
  transition: background .15s;
}
.lv-btn:hover, .lv-btn:focus, .lv-btn:focus-visible,
button.lv-btn:hover, button.lv-btn:focus, button.lv-btn:focus-visible { background: var(--lv-primary-hover); color: var(--lv-bg); opacity: 1; }

/* Nút phụ (viền, không nền) — dùng cho CTA thứ 2 trên các trang khoá học/tài khoản/đăng nhập.
   Màu viền/chữ có thể override qua style inline (VD: viền brass cho nút "Mua combo"). */
.btn-ghost, button.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--lv-font-mono);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 14px 22px;
  border-radius: var(--lv-radius);
  background: transparent;
  color: var(--lv-text);
  border: 1px solid var(--lv-border);
  cursor: pointer;
  text-decoration: none;
  transition: border-color .15s, color .15s;
}
.btn-ghost:hover, .btn-ghost:focus, .btn-ghost:focus-visible,
button.btn-ghost:hover, button.btn-ghost:focus, button.btn-ghost:focus-visible { border-color: var(--lv-primary); color: var(--lv-primary); background: transparent; }

/* Biến thể thứ 3 của lỗi độ đặc hiệu cùng họ (xem 2 khối comment ở trên + REFERENCE.md §1/§10):
   woocommerce.css có rule ".woocommerce a{color:var(--lv-primary)}" (1 class + 1 thẻ = độ đặc
   hiệu 0,1,1) — hoà hoặc thắng ".lv-btn"/".btn-ghost"/".lv-tab"/".lv-line-cell" đứng một mình
   khi dùng trên thẻ <a> nằm trong trang có wrapper .woocommerce (giỏ hàng/thanh toán/tài khoản).
   Phát hiện ở trang tài khoản (mục 16) — nút "Học tiếp"/"Xem các khoá học" và toàn bộ lưới ô
   quản lý dùng <a>, chữ bị nhuộm nhầm màu primary hoặc biến mất (trùng màu nền). Luôn thêm biến
   thể "woocommerce a.tên-class" (đủ state) cho mọi class có thể gắn trên <a> bên trong trang WC. */
.woocommerce a.lv-btn, .woocommerce a.lv-btn:hover, .woocommerce a.lv-btn:focus-visible { color: var(--lv-bg); }
.woocommerce a.btn-ghost { color: var(--lv-text); }
.woocommerce a.btn-ghost:hover, .woocommerce a.btn-ghost:focus-visible { color: var(--lv-primary); }
.woocommerce a.lv-tab { color: var(--lv-text-secondary); }
.woocommerce a.lv-tab:hover, .woocommerce a.lv-tab:focus-visible, .woocommerce a.lv-tab.is-active { color: var(--lv-primary); }
.woocommerce a.lv-line-cell, .woocommerce a.lv-line-cell:hover, .woocommerce a.lv-line-cell:focus-visible { color: var(--lv-text); }

/* Checkbox vuông theo phong cách bản vẽ kỹ thuật (thay checkbox mặc định trình duyệt) */
.lv-checkbox {
  appearance: none; -webkit-appearance: none;
  width: 14px; height: 14px; min-width: 14px; min-height: 14px;
  border: 1px solid var(--lv-border);
  background: var(--lv-bg);
  border-radius: 2px;
  position: relative;
  cursor: pointer;
  flex-shrink: 0;
}
.lv-checkbox:checked { background: var(--lv-primary); border-color: var(--lv-primary); }
.lv-checkbox:checked::after {
  content: ''; position: absolute; left: 4px; top: 1px;
  width: 3px; height: 7px;
  border: solid var(--lv-bg); border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.lv-checkbox:focus-visible { outline: 2px solid var(--lv-primary); outline-offset: 2px; }

.lv-card { background: var(--lv-card); border: 1px solid var(--lv-border); border-radius: var(--lv-radius); }

/* Lưới/bảng nối bằng đường kẻ 1px (nền border hở gap:1px, ô con nền card) — dùng cho thẻ
   thành viên, bảng số liệu, lưới ô mục quản lý, bảng "Rập đã mua" (trang tài khoản, mục 16). */
.lv-line-grid { display: grid; gap: 1px; background: var(--lv-border); border: 1px solid var(--lv-border); }
.lv-line-cell { background: var(--lv-card); }
a.lv-line-cell { color: var(--lv-text); text-decoration: none; transition: background .15s; }
a.lv-line-cell:hover, a.lv-line-cell:focus-visible { background: var(--lv-bg); }

/* Thanh tiến độ (mục 16.3 "Học tiếp", mục 13 khoá học...) */
.lv-progress { background: var(--lv-border); border-radius: 3px; overflow: hidden; }
.lv-progress-fill { height: 100%; background: var(--lv-primary); border-radius: 3px; }

/* Trang tài khoản (mục 16) — bảng số liệu 4 cột, lưới ô mục quản lý 3 cột, responsive 16.9 */
.lv-stat-grid { grid-template-columns: repeat(4, 1fr); }
.lv-tile-grid { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) {
  .lv-stat-grid, .lv-tile-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .lv-stat-grid, .lv-tile-grid { grid-template-columns: 1fr; }
}

/* Khối "Học tiếp" (16.3) — ảnh + nội dung + nút, xếp dọc ở mobile. */
.lv-continue-card { display: flex; flex-wrap: wrap; align-items: center; gap: 26px; }
@media (max-width: 640px) {
  .lv-continue-card { flex-direction: column; align-items: stretch; }
  .lv-continue-card > a.lv-btn, .lv-continue-card > .lv-btn { width: 100%; justify-content: center; }
}

/* Bảng "Rập đã mua" (16.7) — bỏ cột Lần tải ở mobile. */
@media (max-width: 640px) {
  .lv-downloads-count { display: none; }
}

/* Lời chào + thẻ thành viên (16.2) — thẻ xuống dưới ở tablet/mobile. */
.lv-account-hero { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; }
.lv-account-hero > .lv-member-card { flex: 0 0 340px; }
@media (max-width: 900px) {
  .lv-account-hero > .lv-member-card { flex: 1 1 100%; }
}

/* Thanh tabs mono (đăng nhập/đăng ký, tabs tài khoản, tabs bài học...) — padding có thể
   override inline theo từng trang nếu spec khác nhau, phần màu/trạng thái dùng chung. */
.lv-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--lv-border); flex-wrap: wrap; }
.lv-tab, button.lv-tab {
  font-family: var(--lv-font-mono);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 12px 20px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--lv-text-secondary);
  cursor: pointer;
}
.lv-tab:hover, .lv-tab:focus, .lv-tab:focus-visible,
button.lv-tab:hover, button.lv-tab:focus, button.lv-tab:focus-visible { color: var(--lv-primary); background: transparent; }
.lv-tab.is-active, button.lv-tab.is-active { color: var(--lv-primary); border-bottom-color: var(--lv-brass); }
@media (max-width: 900px) {
  /* Trang tài khoản (mục 16.9): tabs cuộn ngang thay vì xuống dòng khi nhiều mục không đủ chỗ. */
  .lv-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .lv-tab, button.lv-tab { flex-shrink: 0; }
}

/* Dark mode toggle button */
.lv-theme-toggle {
  font-family: var(--lv-font-mono);
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  background: transparent;
  border: 1px solid var(--lv-border);
  color: var(--lv-text);
  padding: 6px 10px;
  border-radius: var(--lv-radius);
  cursor: pointer;
}

/* Header: chiều cao cố định theo breakpoint + logo giới hạn kích thước */
.lv-header-top { height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--lv-border); }
.lv-header-main { height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.lv-logo { display: flex; align-items: center; height: 100%; }
.lv-logo img { max-height: 36px; width: auto; display: block; }

/* Logo mark: mượn mô-típ 2 góc chép brass đang dùng trên ảnh minh hoạ kỹ thuật (.lv-corner-mark)
   nhưng thu nhỏ/áp sát hơn cho logo trong header — .lv-corner-mark gốc dùng inset 10px/kích
   thước 14px, hợp với ảnh lớn chứ không hợp logo nhỏ, nên tách riêng thay vì sửa rule chung. */
.lv-logo-mark { position: relative; padding: 7px 12px; }
.lv-logo-mark::before, .lv-logo-mark::after {
  content: ''; position: absolute; width: 8px; height: 8px; border: 1.5px solid var(--lv-brass); pointer-events: none;
}
.lv-logo-mark::before { top: 0; left: 0; border-right: none; border-bottom: none; }
.lv-logo-mark::after { bottom: 0; right: 0; border-left: none; border-top: none; }
@media (max-width: 900px) {
  .lv-header-main { height: 64px; }
  .lv-logo img { max-height: 30px; }
}
@media (max-width: 640px) {
  .lv-header-top { height: 32px; }
  .lv-header-main { height: 56px; }
  .lv-logo img { max-height: 26px; }
}

/* Hamburger + mobile nav panel */
button.lv-hamburger {
  display: none; width: 30px; height: 30px; border-radius: var(--lv-radius); border: 1px solid var(--lv-border);
  background: transparent; color: var(--lv-text); align-items: center; justify-content: center; cursor: pointer;
}
/* reset.css có "button:focus, button:hover { background-color:#CC3366 }" cùng độ đặc hiệu với
   rule "background:transparent" gốc — không khai báo riêng :hover/:focus thì bấm/hover vào sẽ
   lộ nền hồng của theme cha thay vì giữ trong suốt. Áp dụng cho mọi nút nền trong suốt/nhạt. */
button.lv-hamburger:hover, button.lv-hamburger:focus { background: transparent; color: var(--lv-primary); border-color: var(--lv-primary); }
@media (max-width: 900px) {
  button.lv-hamburger { display: flex; }
  .lv-header-top .lv-header-icon { display: none; } /* mobile: chỉ hiện hamburger, ẩn icon tài khoản/giỏ hàng ở top bar */
  .lv-nav-wrap {
    display: none; position: absolute; left: 0; right: 0; top: 100%;
    background: var(--lv-card); border-bottom: 1px solid var(--lv-border); padding: 16px 24px 20px; z-index: 40;
  }
  .lv-nav-wrap.lv-nav-open { display: block; }
  .lv-nav-wrap nav { justify-content: flex-start !important; flex-direction: column; align-items: flex-start !important; gap: 16px !important; }
  /* .lv-nav-menu (ul) mặc định display:flex hàng ngang (dùng cho desktop) — nếu không ghi đè
     ở đây, menu chính trong panel mobile sẽ vẫn xếp ngang/wrap lộn xộn thay vì xếp dọc gọn
     gàng như 1 danh sách, dù nav cha đã đổi flex-direction:column. */
  .lv-nav-wrap .lv-nav-menu { flex-direction: column; align-items: flex-start; width: 100%; gap: 0; }
  .lv-nav-wrap .lv-nav-menu li { width: 100%; border-bottom: 1px dashed var(--lv-border); }
  .lv-nav-wrap .lv-nav-menu li:last-child { border-bottom: none; }
  .lv-nav-wrap .lv-nav-menu a { display: block; padding: 12px 0; }
  .lv-header-main { position: relative; }
  /* .lv-support-dropdown mặc định display:flex hàng ngang (dùng cho desktop, "*.lv-support-panel"
     nổi tuyệt đối lên trên nên chiều flex-direction không ảnh hưởng) — ở mobile, panel chuyển
     sang position:static nên SẼ tham gia dòng chảy layout của cha, nếu không đổi cột dọc ở đây
     thì panel bị ép nằm CẠNH link "Hỗ trợ ▾" thay vì xuống dòng bên dưới, tràn ra ngoài màn hình.
     Selector `.lv-nav-wrap .lv-support-panel` (2 class, độ đặc hiệu cao hơn) bắt buộc phải dùng
     thay vì `.lv-support-panel` trần — rule desktop `.lv-support-panel{position:absolute;...}`
     khai báo SAU trong file (cùng độ đặc hiệu 1 class) nên sẽ thắng theo thứ tự nạp nếu không
     tăng độ đặc hiệu ở đây, dù đang đứng trong đúng media query mobile. */
  .lv-nav-wrap .lv-support-dropdown { flex-direction: column; align-items: flex-start; width: 100%; border-bottom: 1px dashed var(--lv-border); }
  .lv-nav-wrap .lv-support-dropdown:last-child { border-bottom: none; }
  .lv-nav-wrap .lv-support-dropdown > a { display: block; padding: 12px 0; }
  .lv-nav-wrap .lv-support-panel { position: static; padding-top: 0; padding-bottom: 12px; min-width: 0; width: 100%; }
  .lv-mobile-account-links { display: flex; flex-direction: column; gap: 12px; padding-top: 16px; border-top: 1px solid var(--lv-border); width: 100%; }
  .lv-mobile-account-links a { font-family: var(--lv-font-mono); font-size: 12px; letter-spacing: .5px; text-transform: uppercase; color: var(--lv-text); }
}
@media (min-width: 901px) {
  .lv-mobile-account-links { display: none; }
}

/* Nút chuyển sáng/tối — sticky nổi góc màn hình */
button.lv-theme-fab {
  position: fixed; bottom: 20px; right: 20px; z-index: 70;
  width: 44px; height: 44px; border-radius: var(--lv-radius); padding: 0;
  background: var(--lv-primary); color: var(--lv-bg); border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
}
button.lv-theme-fab:hover { background: var(--lv-primary-hover); }
/* reset.css có "button:focus, button:hover { background-color:#CC3366; color:#fff }" — cùng
   độ đặc hiệu (0,1,1) với "button.lv-theme-fab { background:... }" gốc (không gắn :focus), nên
   thắng riêng ở trạng thái :focus (đây là lý do bấm xong hiện màu hồng dù :hover đã đúng — 2
   trạng thái khác selector, phải khai báo :focus riêng, không dùng chung với :hover được). */
button.lv-theme-fab:focus { background: var(--lv-primary); color: var(--lv-bg); outline: 2px solid var(--lv-primary); outline-offset: 2px; }
@media (max-width: 640px) {
  button.lv-theme-fab { bottom: 16px; right: 16px; width: 40px; height: 40px; }
}
.lv-nav-menu, .lv-support-menu, .lv-footer-menu { list-style: none; margin: 0; padding: 0; }
.lv-nav-menu { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.lv-nav-menu li, .lv-support-dropdown { display: flex; }
.lv-nav-menu a, .lv-nav-link {
  position: relative;
  font-family: var(--lv-font-mono); font-weight: 500; font-size: 12px;
  letter-spacing: .5px; text-transform: uppercase; color: var(--lv-text);
  padding-bottom: 3px;
}
/* Gạch chân kiểu "nét thước kẻ" chạy vào khi hover/focus, thay hiệu ứng mờ opacity chung
   (html a:hover{opacity:.75}) đang hơi nhạt cho nav — khớp tinh thần bản vẽ kỹ thuật của brand. */
.lv-nav-menu a::after, .lv-nav-link::after {
  content: ''; position: absolute; left: 0; right: 100%; bottom: 0; height: 1.5px;
  background: var(--lv-primary); transition: right .2s ease;
}
.lv-nav-menu a:hover::after, .lv-nav-link:hover::after,
.lv-nav-menu a:focus-visible::after, .lv-nav-link:focus-visible::after { right: 0; }
@media (prefers-reduced-motion: reduce) {
  .lv-nav-menu a::after, .lv-nav-link::after { transition: none; }
}
@media (min-width: 901px) {
  .lv-header-main .lv-nav-wrap { border-left: 1px solid var(--lv-border); padding-left: 32px; }
}
.lv-icon-btn {
  width: 30px; height: 30px; border-radius: var(--lv-radius); border: 1px solid var(--lv-border);
  background: transparent; color: var(--lv-text); display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.lv-icon-btn:hover { border-color: var(--lv-primary); color: var(--lv-primary); opacity: 1; }

/* Ticket 0067 — toggle VI/EN thay cho block mặc định của WPML. Vị trí VI-trái/EN-phải cố định
   (xem inc/language-switcher.php) — chỉ ngôn ngữ hiện tại (span, không phải link) đổi giữa 2 bên. */
.lv-lang-toggle {
  display: flex; align-items: center; gap: 7px;
  font-family: var(--lv-font-mono); font-weight: 500; font-size: 12px; letter-spacing: .5px;
}
.lv-lang-current { color: var(--lv-text); padding-bottom: 3px; }
.lv-lang-sep { color: var(--lv-border); padding-bottom: 3px; }
.lv-lang-other {
  position: relative; color: var(--lv-text-secondary); padding-bottom: 3px; text-decoration: none;
}
.lv-lang-other::after {
  content: ''; position: absolute; left: 0; right: 100%; bottom: 0; height: 1.5px;
  background: var(--lv-primary); transition: right .2s ease;
}
.lv-lang-other:hover { color: var(--lv-primary); }
.lv-lang-other:hover::after, .lv-lang-other:focus-visible::after { right: 0; }
@media (prefers-reduced-motion: reduce) { .lv-lang-other::after { transition: none; } }
/* Bản mobile (trong panel menu, cạnh Giỏ hàng/Tài khoản) — ẩn ở desktop, đúng cặp với
   .lv-mobile-account-links đã có sẵn (xem @media(min-width:901px) phía trên). */
.lv-mobile-lang-toggle { padding-top: 16px; border-top: 1px solid var(--lv-border); margin-top: 12px; }
@media (min-width: 901px) { .lv-mobile-lang-toggle { display: none; } }

/* Ẩn block "Footer language switcher" mặc định của WPML (đã có toggle riêng ở header, xem trên).
   Renderer thật (WPML_LS_Render::wp_footer_action) chạy trên 1 object instance riêng, không có
   cách remove_action() an toàn từ theme — ẩn bằng CSS thay vì gỡ hook. */
.wpml-ls-statics-footer { display: none !important; }

.lv-support-dropdown { position: relative; }
.lv-support-panel {
  position: absolute; top: 100%; right: 0; padding-top: 14px; z-index: 60;
  min-width: 220px; display: none;
}
.lv-support-dropdown:hover .lv-support-panel,
.lv-support-dropdown.lv-support-open .lv-support-panel { display: block; }
.lv-support-panel .lv-support-menu { background: var(--lv-card); border: 1px solid var(--lv-border); display: flex; flex-direction: column; }
.lv-support-panel .lv-support-menu a {
  font-family: var(--lv-font-body); font-size: 14px; color: var(--lv-text);
  padding: 12px 16px; border-bottom: 1px solid var(--lv-border); display: block;
}
.lv-support-panel .lv-support-menu li:last-child a { border-bottom: none; }
.lv-support-panel .lv-support-menu a:hover { color: var(--lv-primary); background: var(--lv-bg); opacity: 1; }

.lv-footer-menu li { margin-bottom: 9px; }
.lv-footer-menu a { font-family: var(--lv-font-body); font-size: 14px; color: var(--lv-text); }

/* Section sheet-tag row (per-page numbering, e.g. "SHEET 01/06") */
.lv-section-tag {
  display: flex; justify-content: space-between;
  font-family: var(--lv-font-mono); font-size: 10px; letter-spacing: 1px;
  color: var(--lv-text); opacity: .55; margin-bottom: 26px; flex-wrap: wrap; gap: 6px;
}

/* Comment form — bố cục giống demo: Tên/Email cùng hàng, textarea, nút bên dưới */
@keyframes lv-blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
.lv-console-caret { display: inline-block; width: 7px; height: 16px; background: var(--lv-primary); animation: lv-blink 1s step-start infinite; vertical-align: middle; margin-left: 4px; }

.lv-comment-form { background: var(--lv-card); border: 1px solid var(--lv-border); padding: 20px; }
.lv-comment-form p { margin: 0 0 12px; }
.lv-comment-form label { display: none; }
.lv-comment-form .comment-form-author, .lv-comment-form .comment-form-email { display: inline-block; width: 48.5%; }
.lv-comment-form .comment-form-author { margin-right: 3%; }
.lv-comment-form input[type="text"], .lv-comment-form input[type="email"], .lv-comment-form textarea {
  width: 100%; background: var(--lv-bg); border: 1px solid var(--lv-border);
  color: var(--lv-text); font-family: var(--lv-font-body); font-size: 14px; padding: 12px 14px;
}
.lv-comment-form textarea { resize: vertical; }
.lv-comment-form input::placeholder, .lv-comment-form textarea::placeholder { color: var(--lv-text); opacity: .5; }
.lv-comment-form .form-submit { margin-top: 4px; }
.lv-comment-form input[type="submit"] {
  background: var(--lv-primary); color: var(--lv-bg); border: none;
  font-family: var(--lv-font-mono); font-weight: 500; font-size: 12px; letter-spacing: 1px; text-transform: uppercase;
  padding: 12px 22px; border-radius: var(--lv-radius); cursor: pointer;
}
.lv-comment-form input[type="submit"]:hover { background: var(--lv-primary-hover); }
@media (max-width: 480px) {
  .lv-comment-form .comment-form-author, .lv-comment-form .comment-form-email { width: 100%; margin-right: 0; }
}

/* WooCommerce reskin tối thiểu (My Account, Shop) */
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1px; background: var(--lv-border); border: 1px solid var(--lv-border); }
.woocommerce-MyAccount-navigation li { background: var(--lv-card); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 12px 16px; font-family: var(--lv-font-mono); font-size: 12px; letter-spacing: .5px; text-transform: uppercase; color: var(--lv-text); }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--lv-primary); background: var(--lv-bg); }
.woocommerce-account table.shop_table, .woocommerce table.shop_table { border-collapse: collapse; width: 100%; border: 1px solid var(--lv-border); }
.woocommerce-account table.shop_table th, .woocommerce-account table.shop_table td, .woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 12px 14px; border-bottom: 1px solid var(--lv-border); font-size: 14px; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
  font-family: var(--lv-font-mono); font-weight: 500; font-size: 12px; letter-spacing: 1px; text-transform: uppercase;
  background: var(--lv-primary); color: var(--lv-bg); border-radius: var(--lv-radius); padding: 12px 20px; border: none;
}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
  border: 1px solid var(--lv-border); background: var(--lv-card); color: var(--lv-text); font-family: var(--lv-font-body); padding: 10px 12px;
}

@media (max-width: 640px) {
  .lv-section { padding-top: 48px; padding-bottom: 48px; }
  .lv-sheet-tag { padding: 12px 16px; }
  .lv-nav-menu { gap: 18px; }
  .lv-console-form .comment-form-author, .lv-console-form .comment-form-email { width: 100%; margin-right: 0; }
  /* Bug 0036: khung ảnh "Rập nổi bật" trang chủ có flex-grow:0 (chủ ý giữ ~42% cạnh text ở desktop,
     xem bug 0019) — khi flex-wrap xuống hàng riêng ở mobile, nó không giãn hết hàng, để lại khoảng
     trống bên phải (lộ rõ ở dark mode). Ép flex-basis:100% chỉ ở mobile, không đụng tỉ lệ desktop.
     !important bắt buộc — element có inline "flex:0 1 42%" luôn thắng rule ngoài nếu không có nó
     (cùng lớp lỗi đã ghi ở bug 0015 / LUVIART-DEV-REFERENCE.md mục 21). */
  .lv-home-featured-image { flex-basis: 100% !important; }
}

@media (max-width: 480px) {
  .lv-header-quote { display: none; } /* ẩn quote bar khi màn quá nhỏ */
  .lv-container { padding-left: 16px !important; padding-right: 16px !important; }
}

/* Footer: mobile mỗi cột full-width, gọn khoảng cách. Row A/B là CSS grid 12 cột (desktop) —
   ở mobile đổi về 1 cột, các item "grid-column:span N" tự co vừa 1 cột có sẵn (browser tự giới
   hạn span không vượt quá số cột thực tế), không cần sửa span trong PHP. */
@media (max-width: 640px) {
  footer .lv-container > div { grid-template-columns: 1fr !important; }
  footer .lv-container > div > div,
  footer .lv-footer-meta-row > div { padding: 20px 20px !important; }
}

img, svg { max-width: 100%; height: auto; }
* { min-width: 0; } /* tránh flex item tràn khối trên mobile */

/* Icon SVG nhỏ trong nút flex (hamburger, icon-btn, theme-fab, nút play video, icon khung vuông…)
   PHẢI khai width/height/min-width/min-height bằng số px tường minh, không được để tự suy ra từ
   attribute width/height trong markup hay dùng "auto" — đã kiểm chứng qua getBoundingClientRect:
   <svg> (khác <img>) không có "kích thước tự nhiên" hợp lệ cho thuật toán flexbox của Chromium,
   nên khi cha là flex + có rule `* { min-width:0 }` ở trên, item co thẳng về ĐÚNG 0×0 (ẩn hẳn icon)
   dù attribute width/height trong markup vẫn đúng và code không có lỗi gì khác. Icon mới thêm sau
   này đặt trong 1 nút/khung flex phải bổ sung dòng riêng ở đây, khớp đúng width/height trong markup. */
.lv-hamburger svg { width: 18px; height: 18px; min-width: 18px; min-height: 18px; }
.lv-icon-btn svg { width: 14px; height: 14px; min-width: 14px; min-height: 14px; }
button.lv-theme-fab svg { width: 16px; height: 16px; min-width: 16px; min-height: 16px; }

/* Lightbox ảnh full-size (single-product.php, single-lv_project.php) */
.lv-lightbox {
  position: fixed; inset: 0; z-index: 90; background: var(--lv-overlay-strong);
  display: none; align-items: center; justify-content: center;
}
.lv-lightbox.lv-lightbox-open { display: flex; }
.lv-lightbox-img { max-width: 90vw; max-height: 88vh; object-fit: contain; display: block; }
button.lv-lightbox-close, button.lv-lightbox-prev, button.lv-lightbox-next {
  position: absolute; background: var(--lv-card); border: 1px solid var(--lv-border); color: var(--lv-text);
  cursor: pointer; display: flex; align-items: center; justify-content: center; border-radius: var(--lv-radius);
}
button.lv-lightbox-close:hover, button.lv-lightbox-prev:hover, button.lv-lightbox-next:hover,
button.lv-lightbox-close:focus, button.lv-lightbox-prev:focus, button.lv-lightbox-next:focus {
  background: var(--lv-card); border-color: var(--lv-primary); color: var(--lv-primary);
}
button.lv-lightbox-close { top: 20px; right: 20px; width: 40px; height: 40px; font-size: 22px; line-height: 1; }
button.lv-lightbox-prev, button.lv-lightbox-next { top: 50%; transform: translateY(-50%); width: 48px; height: 48px; font-size: 28px; line-height: 1; }
button.lv-lightbox-prev { left: 20px; }
button.lv-lightbox-next { right: 20px; }
@media (max-width: 640px) {
  button.lv-lightbox-close { top: 12px; right: 12px; width: 36px; height: 36px; }
  button.lv-lightbox-prev, button.lv-lightbox-next { width: 40px; height: 40px; }
  button.lv-lightbox-prev { left: 8px; }
  button.lv-lightbox-next { right: 8px; }
}

/* FAQ */
.lv-faq-qa{background:var(--lv-card);border-bottom:1px solid var(--lv-border);}
.lv-faq-qa:last-child{border-bottom:none;}
.lv-faq-qa > summary{display:flex;align-items:flex-start;gap:14px;padding:17px 22px;cursor:pointer;list-style:none;}
.lv-faq-qa > summary::-webkit-details-marker{display:none;}
.lv-faq-qa > summary::marker{content:'';}
.lv-faq-num{font-family:var(--lv-font-mono);font-size:11px;color:var(--lv-text-secondary);flex-shrink:0;padding-top:3px;width:26px;}
.lv-faq-title{flex:1;font-size:16px;font-weight:500;line-height:1.5;}
.lv-faq-sign{font-family:var(--lv-font-mono);font-size:15px;color:var(--lv-primary);flex-shrink:0;padding-top:1px;}
.lv-faq-qa[open] .lv-faq-plus{display:none;}
.lv-faq-minus{display:none;}
.lv-faq-qa[open] .lv-faq-minus{display:inline;}
.lv-faq-body{padding:0 22px 22px 62px;font-size:15px;line-height:1.75;color:var(--lv-text-secondary);}
.lv-faq-body p{margin:0 0 12px;}
.lv-faq-body ul{margin:0 0 12px;padding-left:18px;}
.lv-faq-body li{margin-bottom:6px;}
.lv-faq-body strong{color:var(--lv-text);font-weight:600;}
.lv-faq-helpful{display:flex;align-items:center;gap:12px;padding-top:14px;margin-top:4px;border-top:1px dashed var(--lv-border);flex-wrap:wrap;}
.lv-faq-hlabel{font-family:var(--lv-font-mono);font-size:10px;letter-spacing:1px;color:var(--lv-text-secondary);}
.lv-faq-hbtn{font-family:var(--lv-font-mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;border:1px solid var(--lv-border);background:transparent;color:var(--lv-primary);padding:5px 12px;cursor:pointer;}
.lv-faq-hbtn:hover{border-color:var(--lv-primary);}
.lv-faq-hbtn[disabled]{opacity:.5;cursor:default;}
.lv-faq-navlink{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;background:var(--lv-card);border-bottom:1px solid var(--lv-border);font-size:13px;cursor:pointer;}
.lv-faq-navlink:last-child{border-bottom:none;}
.lv-faq-navlink[aria-current="true"]{background:var(--lv-bg);border-left:3px solid var(--lv-brass);font-weight:600;}
.lv-faq-tabs{display:none;}
.lv-faq-tab{flex:0 0 auto;padding:9px 14px;font-family:var(--lv-font-mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;background:var(--lv-card);color:var(--lv-text-secondary);border:none;}
.lv-faq-tab[aria-current="true"]{background:var(--lv-bg);color:var(--lv-primary);border-bottom:2px solid var(--lv-brass);}
.lv-faq-empty{padding:26px 22px;font-size:14px;color:var(--lv-text-secondary);background:var(--lv-card);}

/* FAQ — bổ sung: khai base ở đây (TRƯỚC 2 khối @media dưới) vì các thuộc tính này còn bị ghi đè
   theo breakpoint — nếu đặt trong template-faq.php dưới dạng inline style, inline luôn thắng
   stylesheet nên 2 khối @media ngay dưới sẽ không bao giờ áp dụng được nữa. */
.lv-faq-sidebar { flex: 0 0 260px; position: sticky; top: 24px; }
.lv-faq-list { flex: 1; min-width: 520px; }
.lv-faq-featured { grid-template-columns: repeat(4, 1fr); }

@media(max-width:900px){
  .lv-faq-sidebar{position:static;flex:1 1 100%;}
  .lv-faq-list{min-width:0;flex:1 1 100%;}
  .lv-faq-featured{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:640px){
  .lv-faq-sidebar{display:none;}
  .lv-faq-tabs{display:flex;gap:1px;overflow-x:auto;background:var(--lv-border);border:1px solid var(--lv-border);margin-bottom:26px;}
  .lv-faq-featured{grid-template-columns:1fr;}
  .lv-faq-qa > summary{padding:14px 16px;gap:10px;}
  .lv-faq-num{width:20px;}
  .lv-faq-title{font-size:15px;}
  .lv-faq-body{padding:0 16px 18px 46px;font-size:14px;}
  .lv-faq-hlabel{font-size:9px;}
}

/* FAQ — bổ sung: .lv-faq-navlink/.lv-faq-tab/.lv-faq-hbtn dùng <button type="button"> — chống
   reset.css thắng theo thứ tự nạp trên [type=button],[type=submit],button khi độ đặc hiệu hoà
   (xem LUVIART-DEV-REFERENCE.md mục 1). Khai lại đủ border/background/color ở cả base lẫn
   :hover/:focus, ghép thẻ "button" vào trước class ở mọi nơi — cùng cách đã dùng cho .lv-tab.
   Bug 0013: display/font-size/padding của .lv-faq-navlink (dòng ~513) cũng bị hoà tương tự
   (reset.css set display:inline-block;font-size:1rem;padding:.5rem 1rem cho [type=button]) —
   sập flex khiến span tên nhóm + span số đếm dính sát nhau (justify-content:space-between vô
   hiệu khi không còn display:flex). Khai lại đủ 3 thuộc tính này + gap:8px làm sàn tối thiểu
   ở rule button.lv-faq-navlink bên dưới. */
.lv-faq-navlink, button.lv-faq-navlink {
  width:100%; text-align:left; font-family:var(--lv-font-body); color:var(--lv-text);
  border:none; border-bottom:1px solid var(--lv-border); background:var(--lv-card);
  display:flex; justify-content:space-between; align-items:center; gap:8px;
  padding:11px 16px; font-size:13px;
}
.lv-faq-navlink:last-child, button.lv-faq-navlink:last-child { border-bottom:none; }
.lv-faq-navlink:hover, .lv-faq-navlink:focus-visible, .lv-faq-navlink:focus,
button.lv-faq-navlink:hover, button.lv-faq-navlink:focus-visible, button.lv-faq-navlink:focus { background:var(--lv-card); color:var(--lv-text); border-bottom:1px solid var(--lv-border); }
.lv-faq-navlink[aria-current="true"], button.lv-faq-navlink[aria-current="true"] {
  background:var(--lv-bg); border-left:3px solid var(--lv-brass); font-weight:600; color:var(--lv-text);
}
.lv-faq-navlink[aria-current="true"]:hover, .lv-faq-navlink[aria-current="true"]:focus,
button.lv-faq-navlink[aria-current="true"]:hover, button.lv-faq-navlink[aria-current="true"]:focus { background:var(--lv-bg); color:var(--lv-text); }

.lv-faq-tab, button.lv-faq-tab { border:none; background:var(--lv-card); color:var(--lv-text-secondary); }
.lv-faq-tab:hover, .lv-faq-tab:focus, .lv-faq-tab:focus-visible,
button.lv-faq-tab:hover, button.lv-faq-tab:focus, button.lv-faq-tab:focus-visible { border:none; background:var(--lv-card); color:var(--lv-text-secondary); }
.lv-faq-tab[aria-current="true"], button.lv-faq-tab[aria-current="true"] {
  background:var(--lv-bg); color:var(--lv-primary); border:none; border-bottom:2px solid var(--lv-brass);
}
.lv-faq-tab[aria-current="true"]:hover, .lv-faq-tab[aria-current="true"]:focus,
button.lv-faq-tab[aria-current="true"]:hover, button.lv-faq-tab[aria-current="true"]:focus { background:var(--lv-bg); color:var(--lv-primary); border-bottom:2px solid var(--lv-brass); }

.lv-faq-hbtn, button.lv-faq-hbtn { border:1px solid var(--lv-border); background:transparent; color:var(--lv-primary); }
.lv-faq-hbtn:hover, .lv-faq-hbtn:focus-visible, .lv-faq-hbtn:focus,
button.lv-faq-hbtn:hover, button.lv-faq-hbtn:focus-visible, button.lv-faq-hbtn:focus { border-color:var(--lv-primary); background:transparent; color:var(--lv-primary); }
.lv-faq-hbtn[disabled], button.lv-faq-hbtn[disabled] { opacity:.5; cursor:default; border-color:var(--lv-border); color:var(--lv-primary); background:transparent; }

.lv-faq-hlabel.is-voted { color:var(--lv-primary); }

@media(max-width:640px){
  .lv-faq-search-count{display:none;}
  .lv-faq-body{font-size:15px;}
  .lv-faq-cta-actions{width:100%;}
  .lv-faq-cta-actions .btn-ghost{display:none;}
  .lv-faq-cta-actions .lv-btn{width:100%;text-align:center;}
}

/* LEGAL */
/* Container + tab row/toc: khai bằng class (không inline trong template) vì có override theo
   breakpoint bên dưới — inline style luôn thắng @media, bài học từ đợt #27 (README, FAQ). */
.lv-legal-tabs{display:flex;gap:1px;background:var(--lv-border);border:1px solid var(--lv-border);width:fit-content;margin-bottom:26px;}
.lv-legal-tab{display:block;padding:9px 16px;font-family:var(--lv-font-mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;background:var(--lv-card);color:var(--lv-text-secondary);text-decoration:none;}
.lv-legal-tab[aria-current="page"]{background:var(--lv-bg);color:var(--lv-primary);}
.lv-legal-tab:hover, .lv-legal-tab:focus-visible{color:var(--lv-primary);}

.lv-legal-toc{flex:0 0 260px;position:sticky;top:24px;}
.lv-legal-body{flex:1;min-width:0;max-width:760px;}

.lv-legal-tocitem{display:flex;gap:10px;align-items:baseline;padding:10px 14px;font-size:13px;line-height:1.45;background:var(--lv-card);border-bottom:1px solid var(--lv-border);border-left:3px solid transparent;text-decoration:none;color:inherit;}
.lv-legal-tocitem:last-child{border-bottom:none;}
.lv-legal-tocitem:hover, .lv-legal-tocitem:focus-visible{color:var(--lv-primary);}
.lv-legal-toc-num{font-family:var(--lv-font-mono);font-size:11px;color:var(--lv-text-secondary);flex:0 0 20px;}
.lv-legal-toc-name{flex:1;}
.lv-legal-tocitem.is-active{background:var(--lv-bg);border-left-color:var(--lv-brass);font-weight:600;}

.lv-legal-h2row{display:flex;align-items:baseline;gap:10px;margin:34px 0 12px;scroll-margin-top:90px;}
.lv-legal-h2row:first-child{margin-top:0;}
.lv-legal-h2row h2{font-family:var(--lv-font-heading);font-weight:600;font-size:21px;line-height:1.3;margin:0;}
.lv-legal-anchor{font-family:var(--lv-font-mono);font-size:13px;color:var(--lv-brass);cursor:pointer;flex-shrink:0;user-select:none;}

.lv-legal-body p{font-size:15px;line-height:1.75;color:var(--lv-text-secondary);margin:0 0 12px;}
.lv-legal-body ul{font-size:15px;line-height:1.75;color:var(--lv-text-secondary);padding-left:18px;margin:0 0 12px;}
.lv-legal-body li{margin-bottom:6px;}
.lv-legal-body strong{color:var(--lv-text);font-weight:600;}

.lv-legal-body blockquote{border:1px solid var(--lv-brass);background:var(--lv-card);padding:18px 20px;margin:0 0 12px;display:flex;gap:12px;align-items:flex-start;position:relative;}
.lv-legal-body blockquote::before{content:'';width:6px;height:6px;min-width:6px;min-height:6px;background:var(--lv-brass);flex-shrink:0;margin-top:7px;display:block;}
.lv-legal-body blockquote p{margin:0;color:var(--lv-text);font-size:14px;line-height:1.65;}

.lv-legal-body table{width:100%;border-collapse:collapse;border:1px solid var(--lv-border);margin:0 0 12px;}
.lv-legal-body table td{padding:12px 16px;border-bottom:1px solid var(--lv-border);background:var(--lv-card);}
.lv-legal-body table tr:last-child td{border-bottom:none;}
.lv-legal-body table td:first-child{font-family:var(--lv-font-mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--lv-text-secondary);}
.lv-legal-body table td:last-child{font-size:14px;text-align:right;}

@media(max-width:900px){
  .lv-legal-toc{position:static;flex:1 1 100%;}
  .lv-legal-body{flex:1 1 100%;max-width:none;}
}
@media(max-width:640px){
  .lv-legal-tabs{width:100%;}
  .lv-legal-tab{flex:1;text-align:center;padding:11px 10px;font-size:10px;}
  .lv-legal-body h2{font-size:19px;}
  .lv-legal-body p, .lv-legal-body li{font-size:14px;}
  .lv-legal-body table td{padding:10px 12px;}
  .lv-legal-body table tr{display:flex;flex-direction:column;gap:4px;}
  .lv-legal-body table td:last-child{text-align:left;}
}
@media print{
  .lv-legal-toc, .lv-legal-tabs, .lv-legal-related, .lv-legal-anchor, header, footer{display:none !important;}
  body{background:#fff !important; background-image:none !important; color:#000 !important;}
  .lv-legal-body{max-width:none !important;}
  .lv-legal-body h2{break-after:avoid;}
  .lv-legal-body blockquote, .lv-legal-body table{break-inside:avoid;}
}

/* Ticket 0064 pilot: trang About lấy 2 cặp heading/body từ post_content (Gutenberg block) thay vì
   theme_mod — style giữ y hệt inline-style cũ, chỉ đổi cách nạp giá trị. */
.lv-about-heading{font-size:clamp(28px,4vw,42px);margin:0 0 16px;}
.lv-about-body{font-size:17px;color:var(--lv-text);opacity:.8;line-height:1.6;margin:0 0 24px;white-space:pre-wrap;}
.lv-about-position-heading{font-size:26px;margin:0 0 16px;}
.lv-about-position-body{font-size:17px;color:var(--lv-text);opacity:.8;line-height:1.7;margin:0;white-space:pre-wrap;}
.lv-portfolio-heading{font-size:clamp(28px,4vw,42px);margin:0 0 14px;}
.lv-portfolio-body{font-size:16px;color:var(--lv-text);opacity:.8;max-width:640px;line-height:1.6;margin:0;white-space:pre-wrap;}
.lv-contact-heading{font-size:clamp(28px,4vw,42px);margin:0 0 16px;}
.lv-contact-body{font-size:17px;color:var(--lv-text);opacity:.8;line-height:1.6;margin:0;max-width:640px;white-space:pre-wrap;}
.lv-faq-heading{font-size:clamp(26px,4vw,38px);line-height:1.16;max-width:760px;margin:0 0 16px;}
.lv-faq-body{font-size:17px;color:var(--lv-text-secondary);line-height:1.65;max-width:660px;margin:0 0 24px;white-space:pre-wrap;}
.lv-faq-reply-note{font-family:var(--lv-font-mono);font-size:11px;color:var(--lv-text-secondary);margin-top:12px;}
.lv-faq-cta-eyebrow{font-family:var(--lv-font-mono);font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--lv-primary);font-size:11px;margin-bottom:10px;}
.lv-faq-cta-heading{font-size:24px;margin:0 0 10px;}
.lv-faq-cta-body{font-size:15px;color:var(--lv-text-secondary);margin:0;white-space:pre-wrap;}
