/* Reset + typography + layout cơ bản */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: clip; transition: background var(--dur); }
body {
  margin: 0; font-family: var(--f-body); font-size: var(--fs-md); line-height: var(--lh-body);
  color: var(--c-text); background: var(--c-ivory); -webkit-font-smoothing: antialiased;
}
img, video, svg, iframe { max-width: 100%; display: block; }
img { height: auto; }
a { color: var(--c-gold-ink); text-decoration: none; transition: color var(--dur); }
a:hover { color: var(--c-ink); }
h1, h2, h3, h4 { font-family: var(--f-display); color: var(--c-ink); line-height: var(--lh-tight); margin: 0 0 var(--space-3); font-weight: 600; letter-spacing: 0; }
h3, h4 { font-weight: 600; }
h1 { font-size: var(--fs-4xl); } h2 { font-size: var(--fs-3xl); } h3 { font-size: var(--fs-xl); } h4 { font-size: var(--fs-lg); }
p { margin: 0 0 var(--space-3); }
ul, ol { padding-left: 1.3em; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 3px; border-radius: 4px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
::selection { background: var(--c-gold-pale); color: var(--c-ink); }

.container { width: min(var(--container), 100% - 2 * var(--gutter)); margin-inline: auto; }
.container--narrow { width: min(820px, 100% - 2 * var(--gutter)); margin-inline: auto; }
.section { padding-block: var(--section-y); position: relative; overflow: clip; }
.section--white { background: var(--c-white); }
.section--sand  { background: var(--c-sand); }
.section--ink   { background: var(--c-ink); color: rgba(255,255,255,.82); }
.section--ink h2, .section--ink h3 { color: #fff; }
.section--tight { padding-block: calc(var(--section-y) * .55); }

.grid { display: grid; gap: var(--space-4); }
.grid--2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.grid--3 { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
.grid--4 { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }

/* Nội dung bài viết (từ trình soạn thảo) */
.prose { max-width: 720px; font-size: var(--fs-lg); line-height: 1.85; }
.prose p { margin-bottom: 1.3em; }
.prose img { border-radius: var(--radius); margin-block: var(--space-5); }
.prose h2 { font-size: var(--fs-2xl); margin-top: var(--space-6); }
.prose h3 { margin-top: var(--space-5); }
.prose blockquote { border-left: 3px solid var(--c-gold); margin: var(--space-5) 0; padding: var(--space-2) var(--space-4); font-family: var(--f-accent); font-size: 1.45rem; font-style: italic; color: var(--c-ink); }
.prose a { text-decoration: underline; text-underline-offset: 3px; }
.prose--full { max-width: none; }
.post-title { font-size: var(--fs-3xl); max-width: 900px; }
@media (max-width: 700px) { .post-title { font-size: var(--fs-3xl); } }
.prose--full img { width: 100%; }

/* Hiệu ứng xuất hiện khi cuộn (JS thêm .is-in) */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-in { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: .1s; } .reveal[data-delay="2"] { transition-delay: .2s; } .reveal[data-delay="3"] { transition-delay: .3s; } .reveal[data-delay="4"] { transition-delay: .4s; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } * { animation: none !important; } }

/* Mobile: ưu tiên canh giữa */
@media (max-width: 900px) {
  .m-intro .container > div:last-child, .m-intro .section-head--left { text-align: center; margin-inline: auto; }
  .m-intro .section-head--left .eyebrow::after { content: ""; width: 28px; height: 1.5px; background: var(--c-gold); }
  .m-intro__values li { flex-direction: column; align-items: center; text-align: center; }
  .m-intro__values li > div { text-align: center; }
  .m-intro__values i { width: 48px; margin-inline: auto; align-self: center; }
  .m-intro__values li > div, .m-intro__values b, .m-intro__values small { display: block; width: 100%; text-align: center; }
  .m-intro .link-more { margin-inline: auto; }
}
@media (max-width: 800px) {
  .m-contact .container > div:first-child, .m-contact .section-head--left { text-align: center; margin-inline: auto; }
  .m-contact .section-head--left .eyebrow::after { content: ""; width: 28px; height: 1.5px; background: var(--c-gold); }
  .m-contact__list { justify-items: center; }
  .m-contact__list li { flex-direction: column; align-items: center; justify-content: center; text-align: center; }
  .m-contact__list li > div { text-align: center; width: 100%; }
  .m-contact__list i { margin-inline: auto; flex-basis: auto; width: 44px; }
}
@media (max-width: 700px) {
  .section-head, .section-head--left { text-align: center; margin-inline: auto; }
  .section-head--left .eyebrow::after { content: ""; width: 28px; height: 1.5px; background: var(--c-gold); }
  .m-hero .container > div:first-child, .m-intro .container > div:last-child, .m-cta__box, .m-contact .container > div:first-child, .m-facebook, .m-map { text-align: center; }
  .m-hero__actions, .m-hero__trust, .m-cta__actions, .m-intro__values li, .m-contact__list li { justify-content: center; }
  .m-cta__actions { align-items: center; }
  .m-intro__values li, .m-contact__list li { flex-direction: column; align-items: center; }
  .m-hero__lead { margin-inline: auto; }
  .site-footer .container > div { text-align: center; }
  .site-footer__brand img { margin-inline: auto; } .site-footer__brand p { margin-inline: auto; } .site-footer__social { justify-content: center; }
  .site-footer__bottom { justify-content: center; text-align: center; }
  .page-head, .breadcrumb { text-align: center; }
  .btn { width: 100%; max-width: 360px; }
  .m-programs__card { text-align: center; } .m-programs__icon { margin-inline: auto; }
  .m-hero__float { position: static; margin: var(--space-3) auto 0; width: max-content; animation: none; }
  .m-hero__visual { display: flex; flex-direction: column; }
  .m-hero__ring { display: none; }
}
