/*
 Theme Name: Flatsome Child
 Theme URI: https://mongchocthit.com
 Description: Child theme for Flatsome, used to add custom schema and other tweaks.
 Author: mongchocthit.com
 Template: flatsome
 Version: 1.0.0
*/

/* =========================================================
   DESIGN SYSTEM — catbaoquydauhcm.com
   Palette: Navy medical blue + White + Light gray + Orange CTA
   Vibe: Clean, trustworthy, professional clinic
   ========================================================= */

:root {
  --color-primary:    #0D5FA6;   /* Navy blue — tin cậy, y khoa */
  --color-primary-dk: #094880;   /* Hover / dark variant */
  --color-primary-lt: #E8F1FA;   /* Background nhạt */
  --color-accent:     #F97316;   /* Cam — CTA nổi bật */
  --color-accent-dk:  #EA6B0D;
  --color-text:       #1A1A2E;   /* Gần đen, dễ đọc */
  --color-muted:      #5A6275;
  --color-border:     #E2E8F0;
  --color-bg-soft:    #F7F9FC;
  --color-white:      #FFFFFF;
  --radius:           8px;
  --shadow-sm:        0 2px 8px rgba(13,95,166,.10);
  --shadow-md:        0 6px 24px rgba(13,95,166,.14);
  --font-main:        'Be Vietnam Pro', 'Nunito Sans', sans-serif;
}

/* ── Body & Typography ── */
body {
  font-family: var(--font-main);
  color: var(--color-text);
  background: var(--color-white);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-main);
  color: var(--color-text);
  font-weight: 700;
  line-height: 1.3;
}

p { line-height: 1.75; color: var(--color-text); }

a { color: var(--color-primary); }
a:hover { color: var(--color-primary-dk); }

/* ── Topbar ── */
#top-bar {
  background: var(--color-primary-dk) !important;
  border-bottom: none !important;
  font-size: 13px;
  padding: 6px 0;
}
#top-bar,
#top-bar a,
#top-bar .top-bar-section li a {
  color: rgba(255,255,255,.90) !important;
}
#top-bar a:hover { color: var(--color-white) !important; opacity: 1; }

/* ── Header ── */
#header {
  background: var(--color-white) !important;
  box-shadow: var(--shadow-sm) !important;
  border-bottom: 3px solid var(--color-primary) !important;
}

/* Logo area */
#logo a, #logo img { max-height: 60px; }

/* ── Navigation ── */
.nav > li > a {
  font-weight: 600;
  font-size: 14px;
  color: var(--color-text) !important;
  letter-spacing: .3px;
  transition: color .2s;
}
.nav > li > a:hover,
.nav > li.active > a {
  color: var(--color-primary) !important;
}
.nav > li > a::after {
  content: '';
  display: block;
  height: 2px;
  background: var(--color-primary);
  transform: scaleX(0);
  transition: transform .25s;
}
.nav > li:hover > a::after,
.nav > li.active > a::after {
  transform: scaleX(1);
}

/* Dropdown */
.nav .sub-menu {
  border-top: 2px solid var(--color-primary) !important;
  border-radius: 0 0 var(--radius) var(--radius) !important;
  box-shadow: var(--shadow-md) !important;
}
.nav .sub-menu li a {
  font-size: 13.5px !important;
  color: var(--color-text) !important;
}
.nav .sub-menu li a:hover {
  color: var(--color-primary) !important;
  background: var(--color-primary-lt) !important;
}

/* ── Buttons ── */
.button,
.btn,
input[type="submit"],
button[type="submit"] {
  border-radius: var(--radius) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: .4px !important;
  transition: all .22s ease !important;
  border: none !important;
}

/* Primary button */
.button.primary,
.button:not(.secondary):not(.outline):not(.white):not(.dark),
input[type="submit"],
button[type="submit"] {
  background: var(--color-primary) !important;
  color: var(--color-white) !important;
  box-shadow: 0 3px 10px rgba(13,95,166,.30) !important;
}
.button.primary:hover,
.button:not(.secondary):not(.outline):not(.white):not(.dark):hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
  background: var(--color-primary-dk) !important;
  box-shadow: 0 5px 16px rgba(13,95,166,.40) !important;
  transform: translateY(-1px);
}

/* Accent / CTA button */
.button.accent,
.button.orange,
.ux-button.style-cta {
  background: var(--color-accent) !important;
  color: var(--color-white) !important;
  box-shadow: 0 3px 10px rgba(249,115,22,.30) !important;
}
.button.accent:hover,
.button.orange:hover {
  background: var(--color-accent-dk) !important;
  transform: translateY(-1px);
}

/* Outline button */
.button.outline {
  border: 2px solid var(--color-primary) !important;
  color: var(--color-primary) !important;
  background: transparent !important;
}
.button.outline:hover {
  background: var(--color-primary) !important;
  color: var(--color-white) !important;
}

/* ── Sections / UX Builder rows ── */
.section {
  padding-top: 60px !important;
  padding-bottom: 60px !important;
}
.section.small { padding-top: 36px !important; padding-bottom: 36px !important; }

/* Section headings */
.section h2 { font-size: clamp(22px, 3vw, 32px); margin-bottom: 12px; }
.section h2 + p, .section h3 + p { color: var(--color-muted); margin-bottom: 32px; }

/* Highlight section — dùng cho giới thiệu, lợi ích */
.section-highlight {
  background: var(--color-primary-lt) !important;
  border-left: 4px solid var(--color-primary);
}

/* Dark section */
.section-dark {
  background: var(--color-primary) !important;
}
.section-dark, .section-dark h1, .section-dark h2,
.section-dark h3, .section-dark p, .section-dark a {
  color: var(--color-white) !important;
}

/* ── Cards / Boxes ── */
.box,
.ux-box,
.col-inner,
.widget-col {
  border-radius: var(--radius) !important;
  overflow: hidden;
}

/* Card style */
.card-style,
.ux-box.style-card {
  background: var(--color-white) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 28px !important;
  transition: box-shadow .22s, transform .22s !important;
}
.card-style:hover,
.ux-box.style-card:hover {
  box-shadow: var(--shadow-md) !important;
  transform: translateY(-3px);
}

/* Icon box / feature box */
.icon-box { text-align: center; padding: 24px 16px; }
.icon-box .icon { font-size: 40px; color: var(--color-primary); margin-bottom: 14px; }
.icon-box h4 { font-size: 16px; margin-bottom: 8px; }
.icon-box p { font-size: 14px; color: var(--color-muted); }

/* ── Divider ── */
hr, .divider {
  border-color: var(--color-border) !important;
  margin: 40px 0 !important;
}

/* ── Forms ── */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
textarea,
select {
  border: 1.5px solid var(--color-border) !important;
  border-radius: var(--radius) !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  color: var(--color-text) !important;
  transition: border-color .2s, box-shadow .2s !important;
  background: var(--color-white) !important;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px rgba(13,95,166,.12) !important;
  outline: none !important;
}

/* ── Footer ── */
#footer {
  background: #0B2447 !important;
  border-top: 3px solid #0D5FA6 !important;
}
#footer,
#footer p,
#footer li,
#footer span:not(.num):not(.lbl) {
  color: rgba(255,255,255,.80) !important;
}
#footer h3, #footer h4,
#footer .widget-title,
.footer-info h4, .footer-links h4 {
  color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
  margin-bottom: 12px !important;
}
#footer a,
.footer-info a,
.footer-links a {
  color: rgba(255,255,255,.78) !important;
}
#footer a:hover,
.footer-info a:hover,
.footer-links a:hover {
  color: #ffffff !important;
}
#footer p,
.footer-info p {
  color: rgba(255,255,255,.75) !important;
  font-size: 13.5px !important;
  line-height: 1.7 !important;
}

/* Copyright bar */
.footer-copyright,
.absolute-footer {
  background: #061a36 !important;
  color: rgba(255,255,255,.55) !important;
  font-size: 12.5px !important;
  text-align: center;
  padding: 12px 0 !important;
}
.footer-copyright a { color: rgba(255,255,255,.70) !important; }

/* ── Badges / Labels ── */
.badge {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: uppercase;
}
.badge-primary { background: var(--color-primary-lt); color: var(--color-primary); }
.badge-accent  { background: #FEF3C7; color: #B45309; }
.badge-green   { background: #D1FAE5; color: #065F46; }

/* ── Mobile ── */
@media (max-width: 768px) {
  .section { padding-top: 40px !important; padding-bottom: 40px !important; }
  h1 { font-size: 26px !important; }
  h2 { font-size: 22px !important; }

  /* Mobile header */
  #mobile-menu { background: var(--color-white) !important; }
  .mobile-menu li a { color: var(--color-text) !important; font-weight: 600; }
  .mobile-menu li a:hover { color: var(--color-primary) !important; }
}

/* ── Pre-footer: Trust bar ── */
#cbqd-pre-footer { font-family: var(--font-main); }

.cbqd-trust-bar {
  background: #0D5FA6 !important;
  padding: 28px 20px !important;
}
.cbqd-trust-bar .cbqd-row {
  max-width: 1100px !important;
  margin: 0 auto !important;
  display: flex !important;
  justify-content: space-around !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 20px !important;
}
.trust-stat {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}
.trust-stat .num {
  font-size: 32px !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  line-height: 1 !important;
  display: block !important;
}
.trust-stat .lbl {
  font-size: 13px !important;
  color: rgba(255,255,255,.85) !important;
  margin-top: 4px !important;
  letter-spacing: .3px !important;
  display: block !important;
}

/* ── Pre-footer: CTA strip ── */
.cbqd-cta-strip {
  background: #E8F1FA !important;
  border-top: 1px solid #E2E8F0 !important;
  padding: 36px 20px !important;
}
.cbqd-cta-strip .cbqd-row {
  max-width: 1100px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 28px !important;
  flex-wrap: wrap !important;
}
.cta-text h3 {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #1A1A2E !important;
  margin: 0 0 6px !important;
}
.cta-text p {
  font-size: 14px !important;
  color: #5A6275 !important;
  margin: 0 !important;
}
.cta-actions {
  display: flex;
  gap: 14px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 28px;
  border-radius: var(--radius);
  font-weight: 700;
  font-size: 15px;
  text-decoration: none !important;
  transition: all .22s;
}
.cta-call {
  background: var(--color-accent);
  color: var(--color-white) !important;
  box-shadow: 0 4px 14px rgba(249,115,22,.35);
}
.cta-call:hover {
  background: var(--color-accent-dk);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(249,115,22,.45);
}
.cta-form {
  background: #ffffff !important;
  color: #0D5FA6 !important;
  border: 2px solid #0D5FA6 !important;
}
.cta-form:hover {
  background: #0D5FA6 !important;
  color: #ffffff !important;
}

@media (max-width: 900px) {
  .cbqd-cta-strip .cbqd-row { flex-direction: column; align-items: flex-start; }
  .trust-stat .num { font-size: 26px; }
  .cbqd-trust-bar .cbqd-row { justify-content: center; gap: 28px; }
}

/* ── Footer widget content ── */
.footer-links ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.footer-links li {
  padding: 4px 0 !important;
  border: none !important;
  font-size: 13.5px !important;
}
.footer-links li::before {
  content: '→ ';
  color: #F97316 !important;
  font-size: 12px;
}

/* ── Scroll behavior ── */
html { scroll-behavior: smooth; }

/* ── Selection color ── */
::selection {
  background: var(--color-primary);
  color: var(--color-white);
}

/* =========================================================
   BLOG — Magazine: featured hero + card grid
   ========================================================= */

.cbqd-mag-index { background: #f5f7fa; }

.cbqd-mag-wrap {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 16px 48px;
}

/* Category section */
.cbqd-cat-section { margin-top: 40px; }

.cbqd-cat-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: linear-gradient(90deg, var(--color-primary-lt) 0%, transparent 100%);
  border-left: 4px solid var(--color-primary);
  border-radius: 0 6px 6px 0;
  padding: 10px 16px 10px 14px;
  margin-bottom: 16px;
}
.cbqd-cat-section-title {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--color-text) !important;
  margin: 0 !important;
  display: flex;
  align-items: center;
  gap: 9px;
}
.cbqd-cat-section-title i {
  font-size: 16px;
  color: var(--color-primary);
  flex-shrink: 0;
}
.cbqd-cat-section-more {
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--color-primary) !important;
  text-decoration: none !important;
  white-space: nowrap;
  flex-shrink: 0;
  transition: color .2s;
}
.cbqd-cat-section-more:hover { color: var(--color-accent) !important; }

/* Archive title */
.cbqd-archive-title {
  padding: 24px 0 12px;
  border-bottom: 2px solid var(--color-primary);
  margin-bottom: 20px;
}
.cbqd-archive-title h1 {
  font-size: 20px !important;
  color: var(--color-primary) !important;
  margin: 0 !important;
  font-weight: 700 !important;
}

/* ── Shared category badge ── */
.cbqd-mag-cat {
  display: inline-block;
  align-self: flex-start;
  width: fit-content;
  background: var(--color-primary);
  color: #fff !important;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .7px;
  padding: 3px 10px;
  border-radius: 4px;
  text-decoration: none !important;
  line-height: 1.6;
}
.cbqd-mag-cat:hover { background: var(--color-accent) !important; color: #fff !important; }

/* ── Carousel wrapper ── */
.cbqd-hero-carousel {
  position: relative;
  margin: 24px 0 28px;
  border-radius: 14px;
  overflow: hidden;
}
.cbqd-carousel-track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.cbqd-carousel-track::-webkit-scrollbar { display: none; }
.cbqd-hero-carousel .cbqd-featured {
  flex: 0 0 100%;
  scroll-snap-align: start;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
}

/* Prev / Next buttons */
.cbqd-carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(255,255,255,.18);
  border: none;
  color: #fff;
  font-size: 32px;
  line-height: 1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(4px);
  transition: background .2s;
}
.cbqd-carousel-btn:hover { background: rgba(255,255,255,.32); }
.cbqd-carousel-prev { left: 12px; }
.cbqd-carousel-next { right: 12px; }
@media (max-width: 480px) { .cbqd-carousel-btn { display: none; } }

/* Dots */
.cbqd-carousel-dots {
  position: absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 7px;
  z-index: 10;
}
.cbqd-dot {
  width: 8px !important;
  height: 8px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  border-radius: 50% !important;
  border: none !important;
  background: rgba(255,255,255,.45) !important;
  cursor: pointer;
  padding: 0 !important;
  flex-shrink: 0;
  box-shadow: none !important;
  transition: background .2s, transform .2s;
}
.cbqd-dot.active {
  background: #fff !important;
  transform: scale(1.3);
}

/* ── Featured post ── */
.cbqd-featured {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  margin: 24px 0 28px;
  min-height: 360px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  box-shadow: 0 8px 32px rgba(0,0,0,.18);
}

.cbqd-featured-img-wrap {
  position: absolute;
  inset: 0;
  display: block;
}
.cbqd-featured-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s;
}
.cbqd-featured:hover .cbqd-featured-img { transform: scale(1.03); }

.cbqd-featured-placeholder { background: var(--color-primary); }

.cbqd-featured-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(5,20,50,.88) 0%, rgba(5,20,50,.30) 55%, transparent 100%);
}

.cbqd-featured-body {
  position: relative;
  z-index: 2;
  padding: 28px 28px 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cbqd-featured-title {
  font-size: clamp(18px, 3.5vw, 26px) !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  margin: 0 !important;
}
.cbqd-featured-title a {
  color: #fff !important;
  text-decoration: none !important;
}
.cbqd-featured-title a:hover { color: var(--color-accent) !important; }

.cbqd-featured-excerpt {
  font-size: 14px !important;
  color: rgba(255,255,255,.82) !important;
  line-height: 1.6 !important;
  margin: 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 480px) { .cbqd-featured-excerpt { display: none; } }

.cbqd-featured-cta {
  align-self: flex-start;
  background: var(--color-accent) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  padding: 9px 20px;
  border-radius: 6px;
  text-decoration: none !important;
  transition: background .2s, transform .2s;
  margin-top: 4px;
}
.cbqd-featured-cta:hover {
  background: var(--color-accent-dk) !important;
  transform: translateY(-2px);
}

/* ── Card grid (remaining posts) ── */
.cbqd-mag-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
@media (min-width: 700px) {
  .cbqd-mag-grid { grid-template-columns: repeat(3, 1fr); gap: 24px; }
}
@media (min-width: 900px) {
  .cbqd-mag-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 400px) {
  .cbqd-mag-grid { grid-template-columns: 1fr; }
}

/* Archive grid (no featured, all same size) */
.cbqd-mag-grid--archive {
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 700px) { .cbqd-mag-grid--archive { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) { .cbqd-mag-grid--archive { grid-template-columns: repeat(4, 1fr); } }

/* Card */
.cbqd-mag-card {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,.07);
  display: flex;
  flex-direction: column;
  transition: transform .2s, box-shadow .2s;
}
.cbqd-mag-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(13,95,166,.14);
}

.cbqd-mag-card-img-wrap {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--color-primary-lt);
}
.cbqd-mag-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s;
}
.cbqd-mag-card:hover .cbqd-mag-card-img { transform: scale(1.06); }

.cbqd-mag-card-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cbqd-mag-card-placeholder i { font-size: 28px; color: var(--color-primary); opacity: .2; }

.cbqd-mag-card-body {
  padding: 12px 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  flex: 1;
}

.cbqd-mag-card-title {
  font-size: 13.5px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  margin: 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}
.cbqd-mag-card-title a {
  color: var(--color-text) !important;
  text-decoration: none !important;
}
.cbqd-mag-card-title a:hover { color: var(--color-primary) !important; }

.cbqd-mag-card-excerpt {
  font-size: 12px !important;
  color: var(--color-muted) !important;
  line-height: 1.55 !important;
  margin: 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 480px) { .cbqd-mag-card-excerpt { display: none; } }

/* Pagination */
.cbqd-mag-wrap .navigation.pagination {
  padding: 36px 0 8px;
  display: flex;
  justify-content: center;
}
.cbqd-mag-wrap .nav-links { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.cbqd-mag-wrap .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--color-primary) !important;
  background: var(--color-primary-lt);
  text-decoration: none !important;
  transition: background .18s, color .18s;
}
.cbqd-mag-wrap .page-numbers.current,
.cbqd-mag-wrap .page-numbers:hover {
  background: var(--color-primary) !important;
  color: #fff !important;
}

.cbqd-no-posts { text-align: center; padding: 60px 20px; color: var(--color-muted); }
