/* BỘ DỰNG NỘI DUNG CHUNG (ios-chung/noi-dung) — CSS chép vào web của app lúc dựng (trang.mjs). Rút từ giochap.com/van-khan (duyệt 9–10).
   Màu thương hiệu: app đặt các biến dưới ở :root trong CSS riêng của mình (nạp TRƯỚC tệp này); không đặt thì dùng màu mặc định (son + giấy dó).
   --nd-mau (đậm) --nd-mau2 (chính) --nd-nhan (nhấn) --nd-the (nền thẻ) --nd-vien --nd-chu --nd-chu-nhat --nd-nen
   Phần nền tối thiểu (:where — app có CSS riêng thì luôn thắng) cho app chưa có trang.css: chữ, nút tải, FAQ. */
:where(body) { margin: 0; background: var(--nd-nen, #F3E9D2); color: var(--nd-chu, #2A2118); font: 17px/1.65 system-ui, -apple-system, sans-serif; }
:where(.nd) a { color: var(--nd-mau2, #9B1B1E); }
:where(.nd) :is(h1, h2, h3) { color: var(--nd-mau, #6E1012); }
:where(.nd) .nho { font-size: 14.5px; color: var(--nd-chu-nhat, #6B5B4A); }
:where(.nd) .mua { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 14px; }
:where(.nd) .nut { display: inline-flex; flex-direction: column; line-height: 1.15; padding: 11px 22px; border-radius: 14px; background: var(--nd-mau, #6E1012); color: #fff; text-decoration: none; font-weight: 700; font-size: 18px; }
:where(.nd) .nut span { font-size: 12px; font-weight: 500; opacity: .8; }
:where(.nd) .nut-phu { background: var(--nd-the, #FBF5E6); color: var(--nd-mau, #6E1012); border: 1.5px solid var(--nd-mau, #6E1012); }
:where(.nd) .hoi details { border-top: 1px solid var(--nd-vien, #E2D3B0); padding: 14px 0; }
:where(.nd) .hoi summary { font-weight: 600; cursor: pointer; }
.nd-dau { max-width: 1120px; margin: 0 auto; padding: 14px 16px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.nd-logo { display: flex; align-items: center; gap: 10px; font: 800 22px "Noto Serif", serif; color: var(--nd-mau, #6E1012); text-decoration: none; }
.nd-logo img { border-radius: 8px; }
.nd-dau nav { margin-left: auto; display: flex; gap: 18px; align-items: center; font-size: 15px; font-weight: 600; }
.nd-dau nav a { text-decoration: none; color: var(--nd-chu, #2A2118); }
.nd-dau nav .nd-tai { background: var(--nd-mau, #6E1012); color: #FBF5E6; padding: 7px 14px; border-radius: 10px; }
.nd { max-width: 860px; margin: 0 auto; padding: 4px 16px 40px; }
.nd > section, .nd > aside, .nd > form { margin-bottom: 44px; }
.nd h2 { font-size: clamp(24px, 3vw, 30px); margin: 0 0 14px; }
.nd-duong { font-size: 14px; color: var(--nd-chu-nhat, #6B5B4A); margin: 4px 0 14px; }
.nd-duong a { color: var(--nd-chu-nhat, #6B5B4A); }

/* hero: ảnh thật, lớp son mờ dần để chữ đọc rõ mà ảnh vẫn thấy */
.nd-hero { border-radius: 22px; overflow: hidden; min-height: 340px; display: flex; align-items: flex-end; color: #FBF5E6;
  background: linear-gradient(180deg, rgba(42,20,14,.05) 0%, rgba(42,20,14,.55) 45%, rgba(60,12,12,.92) 100%), var(--anh) center/cover no-repeat; }
.nd-hero-chu { padding: 30px 26px 26px; }
.nd-hero h1 { color: #FFF6E2; font-size: clamp(34px, 5.4vw, 54px); line-height: 1.08; margin: 0 0 12px; letter-spacing: -.01em; }
.nd-khi { margin: 0 0 8px; font-size: 13.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #F3D9A0; }
.nd-mo { font-size: 18px; margin: 0; max-width: 58ch; }
.nd-hero .nd-mo { color: #FBF0DA; }

.nd-lantoi { background: var(--nd-the, #FBF5E6); border: 1px solid var(--nd-vien, #E2D3B0); border-radius: 18px; padding: 20px 22px; }
.nd-lantoi h2 { font-size: 22px; margin-bottom: 10px; }
.nd-lantoi p { margin: 0; }
.nd-ngay { list-style: none; margin: 0 0 8px; padding: 0; }
.nd-ngay li { display: grid; grid-template-columns: 1fr auto; gap: 2px 14px; padding: 10px 0; border-top: 1px dashed var(--nd-vien, #E2D3B0); }
.nd-ngay li:first-child { border-top: 0; }
.nd-ngay b { font-weight: 700; color: var(--nd-mau, #6E1012); }
.nd-ngay b a { color: inherit; }
.nd-ngay span { grid-column: 1; font-size: 15px; color: var(--nd-chu-nhat, #6B5B4A); }
.nd-ngay em { grid-row: 1 / span 2; grid-column: 2; align-self: center; font-style: normal; font-weight: 700; font-size: 14px; color: var(--nd-nhan, #B8862F); white-space: nowrap; }
.nd-dan { font-size: 18px; }

.nd-dien { background: #fff; border: 1.5px solid var(--nd-nhan, #B8862F); border-radius: 18px; padding: 20px 22px; box-shadow: 0 14px 30px -22px rgba(42,33,24,.6); }
.nd-dien h2 { font-size: 21px; margin-bottom: 10px; }
.nd-o { display: grid; gap: 10px 14px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.nd-o label { display: grid; gap: 4px; font-size: 14px; font-weight: 600; color: var(--nd-chu-nhat, #6B5B4A); }
.nd-o input { font: inherit; font-size: 16px; padding: 10px 12px; border: 1px solid var(--nd-vien, #E2D3B0); border-radius: 10px; background: var(--nd-the, #FBF5E6); color: var(--nd-chu, #2A2118); width: 100%; }
.nd-o input:focus { outline: 2px solid var(--nd-nhan, #B8862F); background: #fff; }
.nd-dien .nho { margin: 12px 0 0; }
.nd-dien button { font: inherit; font-size: 14px; font-weight: 600; padding: 6px 12px; border-radius: 9px; border: 1px solid var(--nd-mau, #6E1012); background: var(--nd-the, #FBF5E6); color: var(--nd-mau, #6E1012); cursor: pointer; margin-left: 6px; }

.nd-bai { background: var(--nd-the, #FBF5E6); border: 1px solid var(--nd-vien, #E2D3B0); border-radius: 18px; padding: 22px 24px; margin-bottom: 18px; }
.nd-bai h3 { margin: 0 0 4px; font-size: 22px; }
.nd-ghi { margin: 0 0 14px; font-size: 14.5px; color: var(--nd-nhan, #B8862F); font-weight: 600; }
.nd-loi { font-family: "Noto Serif", Georgia, serif; font-size: 19px; line-height: 1.75; }
.nd-loi p { margin: 0 0 14px; }
.nd-loi .v { color: var(--nd-mau2, #9B1B1E); font-weight: 700; }
.nd-loi .thieu { background: rgba(184,134,47,.22); border-bottom: 1.5px dashed var(--nd-nhan, #B8862F); color: var(--nd-mau, #6E1012); padding: 0 3px; border-radius: 3px; font-family: "Be Vietnam Pro", sans-serif; font-size: .82em; }
.nd-nguon { margin: 0; font-size: 13px; color: var(--nd-chu-nhat, #6B5B4A); }

.nd-app { display: grid; gap: 22px; align-items: center; background: var(--nd-mau, #6E1012); color: #FBF0DA; border-radius: 22px; padding: 24px; }
.nd-app img { width: 150px; height: auto; border-radius: 18px; justify-self: center; box-shadow: 0 18px 40px -18px #000; }
.nd-app h2 { color: #FFF6E2; }
.nd-app p { margin: 0 0 14px; }
.nd-app .nho { color: #F3D9A0; margin: 0; }
.nd-app .nho a { color: #FFF6E2; }
.nd-app .nut { background: #FBF5E6; color: var(--nd-mau, #6E1012); }
.nd-app .nut-phu { background: transparent; color: #FBF5E6; border-color: #F3D9A0; }
@media (min-width: 700px) { .nd-app { grid-template-columns: 170px 1fr; } }

.nd-hai { display: grid; gap: 26px; }
@media (min-width: 760px) { .nd-hai { grid-template-columns: 1fr 1fr; } }
.nd-hai ul, .nd-hai ol { margin: 0; padding-left: 22px; }
.nd-hai li { margin-bottom: 8px; }
.nd-y p { margin: 0; }
.nd-lo > div { border-left: 3px solid var(--nd-mau2, #9B1B1E); padding: 4px 0 4px 16px; margin-bottom: 16px; }
.nd-lo b { display: block; color: var(--nd-mau, #6E1012); }
.nd-lo p { margin: 4px 0 0; }
.nd-khac ul { columns: 2 260px; padding-left: 20px; margin: 0; }
.nd-khac li { margin-bottom: 6px; }
.nd-cuoi { text-align: center; }
.nd-cuoi .mua { justify-content: center; }

.nd-luoi { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.nd-the { display: grid; background: var(--nd-the, #FBF5E6); border: 1px solid var(--nd-vien, #E2D3B0); border-radius: 16px; overflow: hidden; text-decoration: none; color: var(--nd-chu, #2A2118); }
.nd-the img { width: 100%; height: 150px; object-fit: cover; }
.nd-the b { padding: 12px 14px 2px; font: 700 18px "Noto Serif", serif; color: var(--nd-mau, #6E1012); }
.nd-the span { padding: 0 14px 14px; font-size: 14px; color: var(--nd-chu-nhat, #6B5B4A); }
.nd-the:hover { border-color: var(--nd-nhan, #B8862F); }

.nd-hom { display: grid; gap: 28px; align-items: center; }
.nd-hom h1 { font-size: clamp(38px, 6vw, 58px); margin: 0 0 12px; }
@media (min-width: 820px) { .nd-hom { grid-template-columns: 1.1fr 1fr; } }

.nd-chan { max-width: 860px; margin: 0 auto; padding: 18px 16px 40px; display: flex; flex-wrap: wrap; gap: 16px; border-top: 1px solid var(--nd-vien, #E2D3B0); font-size: 14.5px; color: var(--nd-chu-nhat, #6B5B4A); }
.nd-chan span { margin-left: auto; }

@media print {
  .nd-dau, .nd-chan, .nd-hero, .nd-lantoi, .nd-dan, .nd-dien, .nd-app, .nd-hai, .nd-y, .nd-lo, .nd-hoi, .nd-khac, .nd-cuoi, .nd-duong { display: none !important; }
  body { background: #fff; } .nd-bai { border: 0; padding: 0; page-break-inside: avoid; } .nd-loi .thieu { background: none; border-bottom: 1px solid #999; }
}
.nd-2o { display: flex; gap: 8px; }
.nd-2o select { font: inherit; font-size: 16px; padding: 9px 8px; border: 1px solid var(--nd-vien, #E2D3B0); border-radius: 10px; background: var(--nd-the, #FBF5E6); color: var(--nd-chu, #2A2118); flex: 1; }
/* 24/10 lượt 2 (Phòng Nội dung): ảnh đầu là <img>, khung ví dụ, checklist lễ vật, thẻ bước, video, thẻ chuyển bài */
.nd-hero { position: relative; background: none; }
.nd-hero-anh { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.nd-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(42,20,14,.05) 0%, rgba(42,20,14,.55) 45%, rgba(60,12,12,.92) 100%); z-index: 1; }
.nd-hero-chu { position: relative; z-index: 2; }
.nd-vd { background: var(--nd-the, #FBF5E6); border: 1px dashed var(--nd-nhan, #B8862F); border-radius: 18px; padding: 20px 22px; }
.nd-vd h2 { font-size: 21px; }
.nd-vd-hai { display: grid; gap: 12px; align-items: center; }
@media (min-width: 760px) { .nd-vd-hai { grid-template-columns: 1fr auto 1fr; } }
.nd-vd-hai > div { background: #fff; border: 1px solid var(--nd-vien, #E2D3B0); border-radius: 12px; padding: 12px 14px; }
.nd-vd-hai small { display: block; font-size: 12.5px; font-weight: 600; color: var(--nd-nhan, #B8862F); margin-bottom: 4px; }
.nd-vd-hai p { margin: 0; font-family: "Noto Serif", serif; font-size: 16px; }
.nd-vd-hai b { color: var(--nd-mau2, #9B1B1E); }
.nd-vd-hai > span { font-size: 26px; color: var(--nd-nhan, #B8862F); text-align: center; }
.nd-vd-ra { border-color: var(--nd-mau2, #9B1B1E) !important; }
.nd-sam { background: #fff; border: 1px solid var(--nd-vien, #E2D3B0); border-radius: 18px; padding: 20px 22px; }
.nd-sam ul { list-style: none; margin: 0; padding: 0; }
.nd-sam li { padding: 8px 0; border-top: 1px dashed var(--nd-vien, #E2D3B0); }
.nd-sam li:first-child { border-top: 0; }
.nd-sam label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.nd-sam input { width: 20px; height: 20px; margin-top: 3px; accent-color: var(--nd-mau2, #9B1B1E); flex: none; }
.nd-sam input:checked + * , .nd-sam label:has(input:checked) { color: var(--nd-chu-nhat, #6B5B4A); text-decoration: line-through; }
.nd-buoc-ds { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.nd-buoc { background: var(--nd-the, #FBF5E6); border: 1px solid var(--nd-vien, #E2D3B0); border-radius: 16px; padding: 16px; }
.nd-buoc b { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--nd-mau, #6E1012); color: #FBF5E6; font: 700 17px "Noto Serif", serif; margin-bottom: 8px; }
.nd-buoc p { margin: 0; font-size: 15.5px; }
.nd-video video { width: 100%; height: auto; border-radius: 16px; background: #000; display: block; }
.nd-video .nho { margin: 8px 0 0; }
.nd-chuyen { margin: -4px 0 18px; padding: 12px 18px; border-radius: 14px; background: var(--nd-mau, #6E1012); color: #FBF0DA; font-size: 15.5px; }
.nd-chuyen b { color: #FFF6E2; }
.nd-chuyen span { display: block; font-size: 13.5px; color: #F3D9A0; }
.nd-hom-anh { width: 100%; height: 180px; object-fit: cover; border-radius: 16px; margin-bottom: 14px; }
@media print { .nd-vd, .nd-sam, .nd-cach, .nd-video, .nd-chuyen { display: none !important; } }
.nd-doi { background: #fff; border: 1.5px solid var(--nd-nhan, #B8862F); border-radius: 18px; padding: 20px 22px; }
.nd-doi-hai { display: grid; gap: 10px 18px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); align-items: end; }
.nd-doi label { display: grid; gap: 4px; font-size: 14px; font-weight: 600; color: var(--nd-chu-nhat, #6B5B4A); }
.nd-doi input { font: inherit; font-size: 16px; padding: 9px 10px; border: 1px solid var(--nd-vien, #E2D3B0); border-radius: 10px; background: var(--nd-the, #FBF5E6); color: var(--nd-chu, #2A2118); }
.nd-doi-ra { margin: 0; font-size: 16px; } .nd-doi-ra b { color: var(--nd-mau2, #9B1B1E); }
.nd-thang { background: var(--nd-the, #FBF5E6); border: 1px solid var(--nd-vien, #E2D3B0); border-radius: 18px; padding: 18px; }
.nd-luoi-thang { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.nd-luoi-thang .t { font-size: 12.5px; color: var(--nd-chu-nhat, #6B5B4A); padding: 4px 0; }
.nd-luoi-thang span { background: #fff; border-radius: 10px; padding: 6px 0 4px; font: 700 18px "Noto Serif", serif; color: var(--nd-chu, #2A2118); }
.nd-luoi-thang small { display: block; font: 500 11.5px "Be Vietnam Pro", sans-serif; color: var(--nd-chu-nhat, #6B5B4A); }
.nd-luoi-thang .do, .nd-luoi-thang .do small { color: var(--nd-mau2, #9B1B1E); }
.nd-luoi-thang .nay { outline: 2px solid var(--nd-mau, #6E1012); }
.nd-bang { width: 100%; border-collapse: collapse; margin: 6px 0 14px; background: #fff; border-radius: 12px; overflow: hidden; }
.nd-bang th, .nd-bang td { text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--nd-vien, #E2D3B0); font-size: 15.5px; }
.nd-bang th { background: var(--nd-mau, #6E1012); color: #FBF0DA; font-weight: 600; }
.nd-y p + p { margin-top: 10px; }
