/* Thầy Phong Vũ – Xem tuổi vợ chồng. Dùng lại .tpv-tv__* (tu-vi.css), .tpv-xnv-* (xnv.css) + lớp riêng .tpv-tvc-*. */
.tpv-tvc[hidden] { display: none; }
.tpv-tvc dl, .tpv-tvc dd { text-transform: none; } /* Flatsome đặt dl { text-transform: uppercase } toàn site */
html.tpv-js .tpv-tvc [data-tvc-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); }
html.tpv-js .tpv-tvc [data-tvc-reveal].is-in { opacity: 1; transform: none; }

.tpv-tvc-opt { font-family: inherit; font-weight: 400; font-size: .78rem; color: var(--tpv-muted, #b3a7d6); letter-spacing: 0; }

/* hai người */
.tpv-tvc-persons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 0 14px; }
.tpv-tvc-person { padding: 14px 16px; border-radius: 16px; background: var(--tv-card); border: 1px solid var(--tv-line-soft); border-top: 3px solid var(--tv-line); }
.tpv-tvc-person.is-chong { border-top-color: #8fb8ff; } .tpv-tvc-person.is-vo { border-top-color: #ffa8d2; }
.tpv-tvc-person__head { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.tpv-tvc-person__who { font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--tv-gold); }
.tpv-tvc-person__head strong { font-family: var(--tv-serif); font-size: 1.1rem; color: var(--tv-gold-2); }
.tpv-tvc-person .tpv-tv__info > div.is-full { grid-column: 1 / -1; }
.tpv-tvc-person .tpv-tv__info { grid-template-columns: 1fr; }

/* năm cưới / sinh con */
.tpv-tvc-years { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 10px 0 14px; }
.tpv-tvc-years--con { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tpv-tvc-year { --c: var(--xnv-normal); display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; border-radius: 14px; background: var(--tv-card); border: 1px solid var(--tv-line-soft); border-top: 3px solid var(--c); }
.tpv-tvc-year.is-tot { --c: var(--xnv-good); } .tpv-tvc-year.is-binh { --c: var(--xnv-normal); } .tpv-tvc-year.is-xau { --c: var(--xnv-bad); }
.tpv-tvc-year__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.tpv-tvc-year__head strong { font-family: var(--tv-serif); font-size: 1.25rem; color: var(--tv-gold-2); }
.tpv-tvc-year__head span { font-size: .78rem; color: var(--tv-muted); }
.tpv-tvc-year__score { display: flex; align-items: baseline; gap: 2px 6px; color: var(--c); }
.tpv-tvc-year__score b { font-family: var(--tv-serif); font-size: 1.4rem; line-height: 1; }
.tpv-tvc-year__score small { font-size: .7rem; color: var(--tv-muted); }
.tpv-tvc-year__score em { font-style: normal; font-size: .82rem; font-weight: 700; margin-left: auto; }
.tpv-tvc-year__age { font-size: .74rem; color: var(--tv-muted); }
.tpv-tvc-year__list { margin: 2px 0 0; padding-left: 16px; font-size: .78rem; line-height: 1.45; color: var(--tv-muted); }
.tpv-tvc-year__list li { margin: 2px 0; }
.tpv-tvc-year__list li.is-tot { color: var(--xnv-good); }
.tpv-tvc-year__list li.is-nang { color: var(--xnv-worst); font-weight: 700; }
.tpv-tvc-year__list li.is-nhe { color: var(--xnv-bad); }
.tpv-tvc-cta { margin: 6px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }

/* hướng */
.tpv-tvc-huong { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 10px; }
.tpv-tvc-huong__p { padding: 10px 14px; border-radius: 12px; background: rgba(255,255,255,.03); border: 1px solid var(--tv-line-soft); border-left-width: 3px; }
.tpv-tvc-huong__p.is-chong { border-left-color: #8fb8ff; } .tpv-tvc-huong__p.is-vo { border-left-color: #ffa8d2; }
.tpv-tvc-huong__p h4 { margin: 0 0 6px; }
.tpv-tvc-huong__p ul { margin: 0; padding-left: 18px; font-size: .9rem; line-height: 1.6; }
.tpv-tvc-huong__p b { color: var(--tv-gold-2); }

/* hoá giải */
.tpv-tvc-hoagiai { border-left: 4px solid var(--xnv-bad); }
.tpv-tvc-hoagiai__list { margin: 0; padding-left: 20px; line-height: 1.65; }
.tpv-tvc-hoagiai__list li { margin-bottom: 8px; }
.tpv-tvc-hoagiai__list strong { color: var(--tv-gold-2); }

@media (max-width: 900px) {
	.tpv-tvc-years--con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpv-tvc-years { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
	.tpv-tvc-persons, .tpv-tvc-huong { grid-template-columns: 1fr; }
	.tpv-tvc-years, .tpv-tvc-years--con { grid-template-columns: 1fr; }
	.tpv-tvc-cta .tpv-xnv-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	html.tpv-js .tpv-tvc [data-tvc-reveal] { opacity: 1; transform: none; transition: none; }
}
@media print {
	html.tpv-js .tpv-tvc [data-tvc-reveal] { opacity: 1 !important; transform: none !important; }
}
