﻿/**
 * === homepage.css - Front-page shared styles ===
 *
 * Mo ta: CSS rieng cho front-page.php, chi duoc load khi is_front_page().
 *        Bao gồm layout homepage wrapper, hero support styles, section Quick Info,
 *        reveal animation, và glass card utilities.
 *
 * Flow:
 *   1. Homepage wrapper + shared section utilities
 *   2. Reveal animation (opacity + translateY) + prefers-reduced-motion override
 *   3. Hero support styles and shared buttons
 *   4. Section Quick Info: chips, link chips, icon styles
 *   5. Responsive overrides (tablet 768px, mobile 480px)
 */

/* ==========================================================================
   1. HOMEPAGE WRAPPER + SHARED SECTION UTILITIES
   ========================================================================== */

.homepage {
  width: 100%;
}

.homepage .container {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--gutter-desktop);
}

.homepage .section-hospital-intro > .container {
  width: 100vw;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

.homepage .section-hospital-intro .hospital-history {
  padding-inline: clamp(48px, 3.4vw, 72px);
}

.homepage .section--contact-hub > .section-contact-map {
  padding-block: 0;
  margin-block-end: 0;
  background: #ffffff;
}

.homepage .section--contact-hub > .section-contact-map > .section-contact-map__header-container {
  padding-block: clamp(24px, 3vw, 40px) 0;
}

.homepage .section--contact-hub > .section-contact-map > .section-contact-map__header-container,
.homepage .section--contact-hub > .section-contact-map > .section-contact-map__inner {
  background: #ffffff;
}

.homepage .section--contact-hub > .section-contact-map .section-header,
.homepage .section--contact-hub > .section-contact-map .section-description,
.homepage .section--contact-hub > .section-contact-map .map-frame-wrapper,
.homepage .section--contact-hub > .section-contact-map .section-contact-map__inner {
  margin-bottom: 0;
}

.homepage .section--contact-hub > .section-contact-map .map-frame-wrapper {
  border-bottom: 0;
  border-radius: 0;
}

.section-header {
  text-align: center;
  margin-bottom: var(--section-gap);
}

.section-eyebrow {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-medical-600);
  margin-bottom: 8px;
}

.section-title {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: var(--weight-bold);
  color: var(--color-ink-950);
  line-height: var(--leading-heading);
  margin-bottom: 12px;
}

.section-description {
  font-family: var(--font-body);
  font-size: var(--text-md);
  color: var(--color-ink-700);
  line-height: var(--leading-body);
  max-width: 560px;
  margin-inline: auto;
  margin-bottom: 20px;
}

.section-action-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  color: var(--color-medical-600);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color var(--motion-fast) var(--ease-standard),
              color var(--motion-fast) var(--ease-standard);
}

.section-action-link:hover,
.section-action-link:focus-visible {
  color: var(--color-medical-800);
  border-bottom-color: var(--color-medical-600);
}

/* ==========================================================================
   2. REVEAL ANIMATION
   ========================================================================== */

.reveal {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity var(--motion-slow) var(--ease-standard),
              transform var(--motion-slow) var(--ease-standard);
}

.reveal.is-revealed {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ==========================================================================
   4. SECTION 02 â€” QUICK ACTIONS
   ========================================================================== */

/* ==========================================================================
   5. SECTION 03 â€” QUICK INFO
   ========================================================================== */

.section-quick-info {
  padding-block: var(--section-padding-y-sm);
  background-color: var(--color-surface-warm);
  border-top: 0;
}

.info-chips-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.info-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: var(--radius-md);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--color-ink-700);
  line-height: var(--leading-tight);
  box-shadow: var(--shadow-soft);
}

.info-chip--link {
  text-decoration: none;
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--ease-standard),
              color var(--motion-fast) var(--ease-standard);
}

.info-chip--link:hover {
  border-color: var(--color-medical-600);
  color: var(--color-medical-800);
}

.info-chip--link:hover .info-chip-icon {
  color: var(--color-medical-600);
}

.info-chip--link:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.info-chip-icon {
  color: var(--color-primary-800);
  display: flex;
  align-items: center;
  flex-shrink: 0;
  transition: color var(--motion-fast) var(--ease-standard);
}

.info-chip-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 280px;
}

/* ==========================================================================
   6. RESPONSIVE â€” TABLET (â‰¤ 1024px)
   ========================================================================== */

@media (max-width: 1024px) {
  .homepage .container {
    padding-inline: var(--gutter-tablet);
  }

}

/* ==========================================================================
   7. RESPONSIVE â€” TABLET SMALL / MOBILE (â‰¤ 768px)
   ========================================================================== */

@media (max-width: 768px) {
  .homepage .container {
    padding-inline: var(--gutter-mobile);
  }

  /* Quick info: wrap chips, allow 2-col */
  .info-chips-list {
    justify-content: flex-start;
  }

  .info-chip-label {
    max-width: 200px;
  }
}

/* ==========================================================================
   8. RESPONSIVE â€” MOBILE SMALL (â‰¤ 480px)
   ========================================================================== */

@media (max-width: 480px) {
  .info-chips-list {
    flex-direction: column;
    align-items: stretch;
  }

  .info-chip {
    width: 100%;
  }

  .info-chip-label {
    max-width: none;
    white-space: normal;
  }
}

/* ==========================================================================
   9. SCREEN-READER UTILITY
   ========================================================================== */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}


/* ==========================================================================
   11. GLASS BG DECORATION â€” .has-glass-decoration helper
   ========================================================================== */

/**
 * === .has-glass-decoration ===
 *
 * MÃ´ táº£: Lá»›p helper táº¡o ná»n blob decoration (mÃ u blur) cho cÃ¡c section
 *        Ä‘á»ƒ tÄƒng chiá»u sÃ¢u vÃ  showcase glass effect.
 *
 * Flow:
 *   1. Section nháº­n position: relative + isolation: isolate + overflow: hidden
 *   2. ::before vÃ  ::after táº¡o 2 blob hÃ¬nh trÃ²n blur phÃ­a sau
 *   3. Children (container) giá»¯ z-index 1 Ä‘á»ƒ ná»•i trÃªn decoration
 *   4. Mobile: giáº£m blur vÃ  opacity Ä‘á»ƒ tá»‘i Æ°u hiá»‡u nÄƒng
 */

.has-glass-decoration {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.has-glass-decoration::before,
.has-glass-decoration::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.4;
  pointer-events: none;
  z-index: 0;
}

.has-glass-decoration > .container,
.has-glass-decoration > * {
  position: relative;
  z-index: 1;
}

@media (max-width: 768px) {
  .has-glass-decoration::before,
  .has-glass-decoration::after {
    filter: blur(50px);
    opacity: 0.3;
  }
}


/* ==========================================================================
   13. SECTION INTRO â€” Min-height viewport + background decoration
   ========================================================================== */

.section--intro {
  position: relative;
  min-height: calc(100vh - var(--sticky-header-height, 140px));
  min-height: calc(100svh - var(--sticky-header-height, 140px));
  display: flex;
  align-items: center;
  padding: clamp(48px, 8vh, 96px) 0;
  overflow: hidden;
}

.section--intro > .container {
  position: relative;
  z-index: 2;
  width: 100%;
}

/* --- Decoration layer --- */

.section--intro__decor {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.section--intro__decor-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(50px);
  opacity: 0.5;
}

.section--intro__decor-orb--1 {
  width: 380px;
  height: 380px;
  top: -80px;
  left: -100px;
  background: radial-gradient(circle at 40% 40%, rgba(212, 232, 220, 0.45), rgba(212, 232, 220, 0.10) 60%, transparent 85%);
  animation: bvyhct-intro-orb-float 18s ease-in-out infinite;
}

.section--intro__decor-orb--2 {
  width: 320px;
  height: 320px;
  bottom: -60px;
  right: -80px;
  background: radial-gradient(circle at 40% 40%, rgba(46, 125, 92, 0.30), rgba(46, 125, 92, 0.08) 65%, transparent 90%);
  animation: bvyhct-intro-orb-float 22s ease-in-out infinite reverse;
  animation-delay: -7s;
}

/* SVG dot pattern decoration â€” gÃ³c trÃªn-pháº£i */
.section--intro__decor-dots {
  position: absolute;
  top: 8%;
  right: 6%;
  width: 160px;
  height: 160px;
  color: rgba(46, 125, 92, 0.35);
  opacity: 0.7;
}

@keyframes bvyhct-intro-orb-float {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%      { transform: translate(20px, -15px) scale(1.06); }
}

@media (prefers-reduced-motion: reduce) {
  .section--intro__decor-orb { animation: none; }
}

@media (max-width: 768px) {
  .section--intro {
    min-height: auto;
    padding: 48px 0;
  }
  .section--intro__decor-orb--1 { width: 240px; height: 240px; }
  .section--intro__decor-orb--2 { width: 220px; height: 220px; }
  .section--intro__decor-dots { width: 100px; height: 100px; top: 4%; right: 4%; }
}

/* ==========================================================================
   14. SECTION VALUES â€” Min-height + BG decoration (leaves) + hover effects
   ========================================================================== */

.section--values {
  position: relative;
  min-height: calc(100vh - var(--sticky-header-height, 140px));
  min-height: calc(100svh - var(--sticky-header-height, 140px));
  display: flex;
  align-items: center;
  padding: clamp(48px, 8vh, 96px) 0;
  overflow: hidden;
}

.section--values > .container {
  position: relative;
  z-index: 2;
  width: 100%;
}

/* === BG decoration: 2 orbs + 3 floating leaves === */

.section--values__decor {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.section--values__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
}
.section--values__orb--1 {
  width: 420px; height: 420px;
  top: -100px; right: -120px;
  background: radial-gradient(circle, rgba(212, 232, 220, 0.32), transparent 70%);
  animation: bvyhct-values-orb 24s ease-in-out infinite;
}
.section--values__orb--2 {
  width: 360px; height: 360px;
  bottom: -80px; left: -100px;
  background: radial-gradient(circle, rgba(46, 125, 92, 0.25), transparent 70%);
  animation: bvyhct-values-orb 28s ease-in-out infinite reverse;
  animation-delay: -10s;
}

/* === 3 motifs YHCT: hoa sen + máº¡ch nhá»‹p + lÃ¡ thuá»‘c === */

.section--values__motif {
  position: absolute;
  pointer-events: none;
}

/* Hoa sen â€” top-left, Ä‘áº¡i diá»‡n Y Ä‘á»©c (thanh tá»‹nh) */
.section--values__motif--lotus {
  top: 6%;
  left: 4%;
  width: 96px;
  height: 96px;
  color: rgba(46, 125, 92, 0.28);
  animation: bvyhct-values-lotus-bloom 6s ease-in-out infinite;
  transform-origin: center 75%;
}

/* Máº¡ch nhá»‹p â€” top-right hoáº·c giá»¯a, Ä‘áº¡i diá»‡n Y thuáº­t (sá»©c khá»e) */
.section--values__motif--pulse {
  top: 16%;
  right: 6%;
  width: 180px;
  height: 60px;
  color: rgba(46, 125, 92, 0.45);
  stroke-dasharray: 320;
  stroke-dashoffset: 320;
  animation: bvyhct-values-pulse-draw 4s ease-in-out infinite;
}

/* LÃ¡ thuá»‘c nam â€” bottom-mid, Ä‘áº¡i diá»‡n Y lÃ½ (tháº£o dÆ°á»£c) */
.section--values__motif--herb {
  bottom: 8%;
  left: 50%;
  width: 88px;
  height: 88px;
  color: rgba(27, 77, 62, 0.30);
  transform: translateX(-50%) rotate(-8deg);
  animation: bvyhct-values-herb-sway 7s ease-in-out infinite;
  transform-origin: center bottom;
}

@keyframes bvyhct-values-orb {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%      { transform: translate(15px, -10px) scale(1.04); }
}

/* Hoa sen breathing â€” ná»Ÿ ra co láº¡i nháº¹ nhÃ ng */
@keyframes bvyhct-values-lotus-bloom {
  0%, 100% { transform: scale(1) rotate(0deg);    opacity: 0.65; }
  50%      { transform: scale(1.08) rotate(2deg); opacity: 1; }
}

/* Máº¡ch nhá»‹p â€” váº½ Ä‘Æ°á»ng dash cháº¡y theo, láº·p láº¡i nhÆ° nhá»‹p tim */
@keyframes bvyhct-values-pulse-draw {
  0%   { stroke-dashoffset: 320; opacity: 0.3; }
  50%  { stroke-dashoffset: 0;   opacity: 1; }
  100% { stroke-dashoffset: -320; opacity: 0.3; }
}

/* LÃ¡ thuá»‘c Ä‘ung Ä‘Æ°a nhÆ° cÃ³ giÃ³ nháº¹ */
@keyframes bvyhct-values-herb-sway {
  0%, 100% { transform: translateX(-50%) rotate(-8deg); }
  50%      { transform: translateX(-50%) rotate(6deg); }
}

/* === Card hover effect: BG â†’ gradient lime, content â†’ white === */

.values-card {
  cursor: default;
}

.values-card:hover {
  background: linear-gradient(135deg, var(--color-brand-primary) 0%, var(--color-brand-secondary) 60%, var(--color-brand-soft) 100%);
  border-color: transparent;
  transform: translateY(-6px) scale(1.02);
  box-shadow: 0 20px 40px rgba(27, 77, 62, 0.30);
}

.values-card:hover::before { opacity: 0; }

.values-card:hover .values-card__title { color: #ffffff; }
.values-card:hover .values-card__desc  { color: rgba(255, 255, 255, 0.95); }

.values-card:hover .values-card__icon-wrap {
  background: rgba(255, 255, 255, 0.18);
  box-shadow: 0 6px 16px rgba(27, 77, 62, 0.25);
  transform: rotate(-8deg) scale(1.08);
}

.values-card__icon-wrap {
  transition: background 0.35s ease, transform 0.35s ease, box-shadow 0.35s ease;
}
.values-card__title,
.values-card__desc {
  transition: color 0.35s ease;
}

@media (prefers-reduced-motion: reduce) {
  .section--values__orb,
  .section--values__motif { animation: none; }
  .section--values__motif--pulse { stroke-dashoffset: 0; opacity: 0.5; }
  .values-card:hover { transform: none; }
  .values-card:hover .values-card__icon-wrap { transform: none; }
}

@media (max-width: 768px) {
  .section--values {
    min-height: auto;
    padding: 48px 0;
  }
  .section--values__orb--1 { width: 240px; height: 240px; }
  .section--values__orb--2 { width: 220px; height: 220px; }
  .section--values__motif--lotus { width: 60px; height: 60px; }
  .section--values__motif--pulse { width: 120px; height: 40px; top: 12%; }
  .section--values__motif--herb  { width: 56px; height: 56px; bottom: 6%; }
}

/* --- Text hierarchy: Lead + Body + Highlights --- */

.intro-lead {
  font-size: var(--text-h4);
  line-height: var(--lh-snug);
  color: var(--color-ink-strong);
  font-weight: var(--weight-medium);
  margin: 0 0 16px;
}
.intro-lead strong {
  color: var(--color-brand-primary);
  font-weight: var(--weight-bold);
}

.intro-body {
  font-size: var(--text-body);
  line-height: var(--lh-body);
  color: var(--color-ink-700);
  margin: 0 0 28px;
}
.intro-body em { color: var(--color-brand-primary); font-style: normal; font-weight: 600; }

/* Highlights as feature list with icon + title + description */
.intro-highlights {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.intro-highlights__item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 12px 14px;
  background: rgba(212, 232, 220, 0.06);
  border: 1px solid rgba(46, 125, 92, 0.10);
  border-radius: 10px;
  transition: background 0.2s ease, transform 0.2s ease;
}
.intro-highlights__item:hover {
  background: rgba(212, 232, 220, 0.14);
  transform: translateX(4px);
}

.intro-highlights__icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--color-brand-secondary), var(--color-brand-primary));
  color: #fff;
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(27, 77, 62, 0.18);
}

.intro-highlights__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.intro-highlights__title {
  font-size: var(--text-body);
  font-weight: var(--weight-bold);
  color: var(--color-primary-900);
  line-height: var(--lh-heading);
}

.intro-highlights__desc {
  font-size: var(--text-small);
  line-height: var(--lh-snug);
  color: var(--color-ink-500);
}

/* Hide bullet dot cÅ© náº¿u cÃ²n */
.intro-highlights__dot { display: none; }

/* ==========================================================================
   15. SECTION HISTORY â€” Timeline elegant + BG motifs + hover effects
   ========================================================================== */

.section--history {
  position: relative;
  min-height: calc(100vh - var(--sticky-header-height, 140px));
  min-height: calc(100svh - var(--sticky-header-height, 140px));
  display: flex;
  align-items: center;
  padding: clamp(48px, 8vh, 96px) 0;
  overflow: hidden;
}

.section--history > .container {
  position: relative;
  z-index: 2;
  width: 100%;
}

/* === BG decoration === */

.section--history__decor {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.section--history__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
}
.section--history__orb--1 {
  width: 400px; height: 400px;
  top: -100px; left: -100px;
  background: radial-gradient(circle, rgba(212, 232, 220, 0.25), transparent 70%);
  animation: bvyhct-history-orb 26s ease-in-out infinite;
}
.section--history__orb--2 {
  width: 360px; height: 360px;
  bottom: -80px; right: -80px;
  background: radial-gradient(circle, rgba(46, 125, 92, 0.20), transparent 70%);
  animation: bvyhct-history-orb 30s ease-in-out infinite reverse;
  animation-delay: -10s;
}

/* SÃ¡ch cá»• â€” top-right, tri thá»©c lá»‹ch sá»­ */
.section--history__motif--book {
  position: absolute;
  top: 8%;
  right: 5%;
  width: 110px;
  height: 110px;
  color: rgba(27, 77, 62, 0.28);
  animation: bvyhct-history-book-page 5s ease-in-out infinite;
  transform-origin: left center;
}

/* La bÃ n niÃªn Ä‘áº¡i â€” bottom-left, dÃ²ng cháº£y thá»i gian */
.section--history__motif--compass {
  position: absolute;
  bottom: 10%;
  left: 4%;
  width: 100px;
  height: 100px;
  color: rgba(46, 125, 92, 0.32);
  animation: bvyhct-history-compass-spin 30s linear infinite;
}

@keyframes bvyhct-history-orb {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%      { transform: translate(20px, -15px) scale(1.05); }
}

/* Trang sÃ¡ch láº­t nháº¹ */
@keyframes bvyhct-history-book-page {
  0%, 100% { transform: rotate(0deg) scale(1); opacity: 0.6; }
  50%      { transform: rotate(-3deg) scale(1.03); opacity: 1; }
}

/* La bÃ n xoay cháº­m nhÆ° Ä‘á»“ng há»“ thá»i gian */
@keyframes bvyhct-history-compass-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* === Timeline VERTICAL â€” CÃ¢y tháº³ng, content trá»±c tiáº¿p trÃªn BG === */

.timeline.js-timeline {
  position: relative;
  display: flex !important;
  flex-direction: column !important;
  gap: 56px !important;
  max-width: 760px;
  margin: 0 auto;
  padding: 32px 0 !important;
  overflow: visible !important;
  scroll-snap-type: none !important;
}

/* ÄÆ°á»ng dá»c trung tÃ¢m (cháº¡y á»Ÿ giá»¯a) */
.timeline.js-timeline .timeline__track {
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: 50% !important;
  right: auto !important;
  width: 2px !important;
  height: auto !important;
  background: rgba(46, 125, 92, 0.20) !important;
  transform: translateX(-50%);
  border-radius: 2px;
}

/* Progress fill cháº¡y tá»« trÃªn xuá»‘ng */
.timeline.js-timeline .timeline__progress {
  width: 2px !important;
  height: 0%;
  background: linear-gradient(180deg, var(--color-brand-soft) 0%, var(--color-brand-secondary) 50%, var(--color-brand-primary) 100%) !important;
  transition: height 0.5s ease-out;
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 2px;
}

/* Items grid 2-cá»™t: trÃ¡i â€” dot â€” pháº£i, alternate */
.timeline.js-timeline .timeline__item {
  position: relative;
  flex: none !important;
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr 56px 1fr;
  align-items: center;
  gap: 0;
  padding: 0 !important;
  scroll-snap-align: none !important;
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

/* Reveal in */
.timeline.js-timeline .timeline__item.reveal.is-revealed,
.timeline.js-timeline .timeline__item--visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* Stagger delay */
.timeline.js-timeline .timeline__item[data-reveal-index="0"] { transition-delay: 0ms; }
.timeline.js-timeline .timeline__item[data-reveal-index="1"] { transition-delay: 150ms; }
.timeline.js-timeline .timeline__item[data-reveal-index="2"] { transition-delay: 300ms; }
.timeline.js-timeline .timeline__item[data-reveal-index="3"] { transition-delay: 450ms; }
.timeline.js-timeline .timeline__item[data-reveal-index="4"] { transition-delay: 600ms; }

/* Dot trung tÃ¢m */
.timeline.js-timeline .timeline__dot {
  grid-column: 2;
  justify-self: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-brand-secondary), var(--color-brand-primary));
  border: 4px solid #ffffff;
  box-shadow: 0 0 0 3px rgba(46, 125, 92, 0.20), 0 4px 12px rgba(27, 77, 62, 0.25);
  margin: 0 !important;
  position: relative;
  z-index: 2;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  animation: bvyhct-timeline-dot-pulse 3s ease-in-out infinite;
}

.timeline.js-timeline .timeline__item:hover .timeline__dot {
  transform: scale(1.4);
  box-shadow: 0 0 0 8px rgba(46, 125, 92, 0.25), 0 8px 20px rgba(27, 77, 62, 0.35);
  animation-play-state: paused;
}

/* Stagger dot pulse delay riÃªng */
.timeline.js-timeline .timeline__item[data-reveal-index="0"] .timeline__dot { animation-delay: 0s; }
.timeline.js-timeline .timeline__item[data-reveal-index="1"] .timeline__dot { animation-delay: -0.6s; }
.timeline.js-timeline .timeline__item[data-reveal-index="2"] .timeline__dot { animation-delay: -1.2s; }
.timeline.js-timeline .timeline__item[data-reveal-index="3"] .timeline__dot { animation-delay: -1.8s; }
.timeline.js-timeline .timeline__item[data-reveal-index="4"] .timeline__dot { animation-delay: -2.4s; }

@keyframes bvyhct-timeline-dot-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(46, 125, 92, 0.20), 0 4px 12px rgba(27, 77, 62, 0.25); }
  50%      { box-shadow: 0 0 0 10px rgba(46, 125, 92, 0), 0 4px 12px rgba(27, 77, 62, 0.25); }
}

/* Content KHÃ”NG cÃ³ card â€” text tháº³ng lÃªn BG */
.timeline.js-timeline .timeline__content {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 24px !important;
  width: auto !important;
  text-align: left;
}

/* Alternate sides: odd â†’ left col, even â†’ right col */
.timeline.js-timeline .timeline__item:nth-child(odd) .timeline__content {
  grid-column: 1;
  text-align: right;
  padding-right: 32px !important;
  padding-left: 0 !important;
}
.timeline.js-timeline .timeline__item:nth-child(even) .timeline__content {
  grid-column: 3;
  text-align: left;
  padding-left: 32px !important;
  padding-right: 0 !important;
}

/* Slide-in tá»« trÃ¡i/pháº£i tÆ°Æ¡ng á»©ng */
.timeline.js-timeline .timeline__item:nth-child(odd) { transform: translate(-40px, 40px); }
.timeline.js-timeline .timeline__item:nth-child(even) { transform: translate(40px, 40px); }
.timeline.js-timeline .timeline__item.reveal.is-revealed,
.timeline.js-timeline .timeline__item--visible { transform: translate(0, 0) !important; }

/* Year badge â€” pill */
.timeline.js-timeline .timeline__year {
  display: inline-block !important;
  background: linear-gradient(135deg, var(--color-primary-600), var(--color-primary-800)) !important;
  color: var(--color-surface) !important;
  font-size: var(--text-small) !important;
  font-weight: var(--weight-bold) !important;
  padding: 4px 16px !important;
  border-radius: var(--radius-full) !important;
  letter-spacing: var(--tracking-button);
  box-shadow: var(--shadow-md);
  margin-block-end: 10px !important;
}

.timeline.js-timeline .timeline__title {
  font-size: var(--text-h3) !important;
  font-weight: var(--weight-bold) !important;
  color: var(--color-primary-900) !important;
  line-height: var(--lh-heading);
  margin: 0 0 8px !important;
}

.timeline.js-timeline .timeline__excerpt {
  font-size: var(--text-small) !important;
  color: var(--color-ink-700) !important;
  line-height: var(--lh-body) !important;
  margin: 0;
}

/* Mobile: stack 1 column, dot bÃªn trÃ¡i, content bÃªn pháº£i */
@media (max-width: 768px) {
  .timeline.js-timeline {
    gap: 36px !important;
    max-width: 100%;
  }
  .timeline.js-timeline .timeline__track,
  .timeline.js-timeline .timeline__progress {
    left: 20px !important;
    transform: none;
  }
  .timeline.js-timeline .timeline__item,
  .timeline.js-timeline .timeline__item:nth-child(odd),
  .timeline.js-timeline .timeline__item:nth-child(even) {
    grid-template-columns: 40px 1fr;
    transform: translate(40px, 0) !important;
  }
  .timeline.js-timeline .timeline__item.reveal.is-revealed,
  .timeline.js-timeline .timeline__item--visible {
    transform: translate(0, 0) !important;
  }
  .timeline.js-timeline .timeline__dot {
    grid-column: 1;
    justify-self: center;
  }
  .timeline.js-timeline .timeline__item:nth-child(odd) .timeline__content,
  .timeline.js-timeline .timeline__item:nth-child(even) .timeline__content {
    grid-column: 2;
    text-align: left;
    padding: 0 0 0 16px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .section--history__orb,
  .section--history__motif--book,
  .section--history__motif--compass { animation: none; }
  .timeline__item:hover .timeline__content { transform: none; }
}

@media (max-width: 768px) {
  .section--history {
    min-height: auto;
    padding: 48px 0;
  }
  .section--history__orb--1 { width: 240px; height: 240px; }
  .section--history__orb--2 { width: 220px; height: 220px; }
  .section--history__motif--book { width: 70px; height: 70px; }
  .section--history__motif--compass { width: 64px; height: 64px; }
}

/* ==========================================================================
   16. SECTION TREATMENT GROUPS â€” Alternating rows + YHCT decoration
   ========================================================================== */

.section--treatment-groups {
  position: relative;
  min-height: calc(100vh - var(--sticky-header-height, 140px));
  min-height: calc(100svh - var(--sticky-header-height, 140px));
  display: flex;
  align-items: center;
  padding: clamp(48px, 8vh, 96px) 0;
  overflow: hidden;
}

.section--treatment-groups > .container {
  position: relative;
  z-index: 2;
  width: 100%;
}

/* === BG decoration === */

.section--treatment__decor {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.section--treatment__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
}
.section--treatment__orb--1 {
  width: 380px; height: 380px;
  top: -80px; right: -100px;
  background: radial-gradient(circle, rgba(212, 232, 220, 0.28), transparent 70%);
  animation: bvyhct-treatment-orb 26s ease-in-out infinite;
}
.section--treatment__orb--2 {
  width: 340px; height: 340px;
  bottom: -80px; left: -80px;
  background: radial-gradient(circle, rgba(46, 125, 92, 0.22), transparent 70%);
  animation: bvyhct-treatment-orb 30s ease-in-out infinite reverse;
  animation-delay: -8s;
}

/* Kim chÃ¢m cá»©u â€” top-left */
.section--treatment__motif--needle {
  position: absolute;
  top: 6%;
  left: 4%;
  width: 110px;
  height: 110px;
  color: rgba(27, 77, 62, 0.30);
  animation: bvyhct-treatment-needle-tap 4s ease-in-out infinite;
  transform-origin: top left;
}

/* 3 lÃ¡ tháº£o dÆ°á»£c â€” bottom-right */
.section--treatment__motif--herb3 {
  position: absolute;
  bottom: 8%;
  right: 6%;
  width: 110px;
  height: 110px;
  color: rgba(46, 125, 92, 0.35);
  animation: bvyhct-treatment-herb-sway 6s ease-in-out infinite;
  transform-origin: bottom center;
}

@keyframes bvyhct-treatment-orb {
  0%, 100% { transform: translate(0,0) scale(1); }
  50%      { transform: translate(20px,-15px) scale(1.05); }
}

/* Kim chÃ¢m gÃµ nhá»‹p â€” nhÆ° massage acupuncture */
@keyframes bvyhct-treatment-needle-tap {
  0%, 100% { transform: rotate(0deg) scale(1); }
  20%      { transform: rotate(-3deg) scale(1.04); }
  40%      { transform: rotate(2deg) scale(1.02); }
}

/* LÃ¡ tháº£o dÆ°á»£c Ä‘ung Ä‘Æ°a */
@keyframes bvyhct-treatment-herb-sway {
  0%, 100% { transform: rotate(-4deg); }
  50%      { transform: rotate(4deg); }
}

/* === Treatment rows: alternating layout vá»›i animation === */

.treatment-rows {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.treatment-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}

.treatment-row--reverse .treatment-row__media { order: 2; }

.treatment-row__media {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, var(--color-canvas), var(--color-brand-soft));
  box-shadow: 0 10px 30px rgba(27, 77, 62, 0.12);
}

.treatment-row__img,
.treatment-row__img-placeholder {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.treatment-row:hover .treatment-row__img { transform: scale(1.05); }

.treatment-row__img-placeholder {
  background: linear-gradient(135deg, var(--color-brand-soft), var(--color-brand-secondary));
  position: relative;
}
.treatment-row__img-placeholder::after {
  content: 'ðŸŒ¿';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: var(--text-hero-h1);
  opacity: 0.6;
}

.treatment-row__content {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.treatment-row__badge {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  background: linear-gradient(135deg, var(--color-primary-600), var(--color-primary-800));
  color: var(--color-surface);
  font-size: var(--text-micro);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-md);
}

.treatment-row__title {
  font-family: var(--font-heading);
  font-size: var(--text-h2);
  font-weight: var(--weight-bold);
  color: var(--color-primary-900);
  margin: 0;
  line-height: var(--lh-heading);
}

.treatment-row__excerpt {
  font-size: var(--text-body);
  line-height: var(--lh-body);
  color: var(--color-ink-700);
  margin: 0;
}

.treatment-row__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 8px;
}

@media (prefers-reduced-motion: reduce) {
  .section--treatment__orb,
  .section--treatment__motif--needle,
  .section--treatment__motif--herb3 { animation: none; }
}

@media (max-width: 768px) {
  .section--treatment-groups {
    min-height: auto;
    padding: 48px 0;
  }
  .treatment-row {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .treatment-row--reverse .treatment-row__media { order: 0; }
  .section--treatment__orb--1 { width: 240px; height: 240px; }
  .section--treatment__orb--2 { width: 220px; height: 220px; }
  .section--treatment__motif--needle { width: 70px; height: 70px; }
  .section--treatment__motif--herb3 { width: 70px; height: 70px; }
}

/* Final homepage guard for the active hero arch layout. */
#section-hero.section-01-hero--arch .hero-nav {
  position: relative !important;
  z-index: 30 !important;
}

#section-hero.section-01-hero--arch .hero-arch-layout {
  position: relative !important;
  z-index: 3 !important;
}

#section-hero.section-01-hero--arch .hero-arch-content {
  position: relative !important;
  z-index: 4 !important;
  width: min(560px, 39vw) !important;
  max-width: 560px !important;
  transform: translateY(clamp(-112px, -8vh, -72px)) !important;
}

#section-hero.section-01-hero--arch .hero-h1 {
  color: #fff !important;
  font-size: clamp(46px, 3.35vw, 66px) !important;
  line-height: 1.26 !important;
  letter-spacing: -0.032em !important;
}

#section-hero.section-01-hero--arch .hero-h1 span {
  color: #fff !important;
  white-space: nowrap !important;
}

#section-hero.section-01-hero--arch .hero-h1 span:nth-child(1) {
  margin-left: 0 !important;
  text-align: left !important;
}

#section-hero.section-01-hero--arch .hero-h1 span:nth-child(2) {
  margin-left: clamp(28px, 4.7vw, 90px) !important;
  text-align: left !important;
}

#section-hero.section-01-hero--arch .hero-h1 span:nth-child(3) {
  margin-left: clamp(76px, 9vw, 172px) !important;
  text-align: left !important;
}

#section-hero.section-01-hero--arch .hero-intro {
  max-width: 430px !important;
  color: rgba(255, 255, 255, 0.86) !important;
  font-size: clamp(16px, 1.05vw, 20px) !important;
  line-height: 1.55 !important;
}

#section-hero.section-01-hero--arch .hero-arch-visual,
#section-hero.section-01-hero--arch .hero-arch {
  position: relative !important;
  z-index: 1 !important;
}

#section-hero.section-01-hero--arch .hero-arch {
  transform: translateY(clamp(-42px, -3.5vh, -24px)) !important;
}
