/* ============ FONT ============ */
@font-face {
  font-family: "Google Sans Flex";
  src: url("google_sans_flex/googlesansflex-variablefont_grad,rond,opsz,slnt,wdth,wght.ttf") format("truetype");
  font-weight: 100 900;
  font-stretch: 75% 125%;
  font-display: swap;
}

/* ============ A11Y / SEO ============ */
.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;
}

/* ============ VARIABLES ============ */
:root {
  --green: #2f7d32;          /* primary brand green */
  --green-deep: #006600;     /* headings */
  --green-dark: #245d27;     /* footer bottom bar */
  --green-lime: #53a100;     /* nav active / accents */
  --green-lime2: #8fd14f;
  --green-light: #cfecac;    /* section bg */
  --green-soft: #e6f4d2;     /* cards */
  --blue: #5bb4e5;
  --pink: #f17075;
  --orange: #f3a420;
  --yellow: #a1ca3a;
  --gray: #606161;
  --ink: #1f2421;
  --muted: #6b7280;
  --line: #e7ebe4;
  --hero1: #c9c1f2;
  --hero2: #aab6f4;
  --hero3: #c7e0f7;
  --radius: 18px;
  --shadow: 0 10px 30px rgba(31, 71, 35, .10);
  --shadow-lg: 0 18px 50px rgba(31, 71, 35, .16);
  --maxw: 1700px;
  --font: "Google Sans Flex", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* ============ RESET ============ */
* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
/* Tắt lớp phủ xám/đen khi chạm nút, ảnh, link trên mobile (iOS/Android) */
a, button, img, input, textarea, select, label, [role="button"], .swatch, .prod-card {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
}
body {
  font-family: var(--font);
  color: var(--ink);
  background: #fff;
  line-height: 1.55;
  overflow-x: clip;
  max-width: 100%;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
ul { list-style: none; }
.mobile-only { display: none; }

.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.green-title {
  color: var(--green-deep);
  font-weight: 800;
  letter-spacing: -.01em;
}

/* ============ TOP BAR ============ */
.topbar {
  background: var(--green);
  color: #eaf6e9;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: sticky;
  top: 0;
  z-index: 101;
  overflow: hidden;
  transition: transform .3s ease;
}
.topbar .tb-arrow {
  display: none;
  color: #cfeac9;
  font-size: 20px;
  padding: 0 14px;
  height: 100%;
  align-items: center;
  justify-content: center;
}
.topbar .tb-track {
  position: relative;
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.topbar .tb-track span {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  flex-shrink: 0;
  animation: tbslide 9s infinite;
}
@keyframes tbslide {
  0%, 28% { transform: translateY(0); }
  33%, 61% { transform: translateY(-100%); }
  66%, 94% { transform: translateY(-200%); }
  100% { transform: translateY(-300%); }
}

/* ============ HEADER ============ */
.header {
  position: sticky;
  top: 38px;
  z-index: 100;
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
  transition: box-shadow .3s, background .3s, transform .3s ease, opacity .3s ease;
  will-change: transform, opacity;
}
.header .container {
  max-width: 100%;
  padding: 0 40px;
}
.header.scrolled { box-shadow: 0 6px 20px rgba(0,0,0,.06); }
body.sticky-product-active .topbar {
  transform: translateY(-100%);
}
body.sticky-product-active .header {
  transform: translateY(-150px);
  opacity: 0;
  pointer-events: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.header .inner {
  height: 72px;
  display: flex;
  align-items: center;
  gap: 18px;
}
.logo { display: flex; align-items: center; }
.logo img { height: 30px; }
.nav { display: flex; gap: 34px; margin: 0 auto; }
.nav a {
  font-weight: 700;
  font-size: 15px;
  letter-spacing: .02em;
  position: relative;
  padding: 6px 0;
  color: #2b2f2c;
  transition: color .2s;
}
.nav a.active { color: var(--green-lime); }
.nav a::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 0; height: 2px;
  background: var(--green-lime);
  transition: width .25s ease;
}
.nav a:hover { color: var(--green-lime); }
.nav a:hover::after { width: 100%; }

/* ===== Mega menu (desktop nav dropdowns) ===== */
.nav { align-items: stretch; }
.nav-item { display: flex; align-items: center; height: 72px; position: static; }
.nav-item > a { display: inline-flex; align-items: center; }

.mega {
  position: absolute; top: 100%; left: 0; right: 0;
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: none; border-bottom: 1px solid var(--line);
  border-radius: 0;
  box-shadow: 0 30px 50px rgba(0,0,0,.16);
  opacity: 0; visibility: hidden; transform: translateY(-12px);
  transition: opacity .26s ease, transform .3s cubic-bezier(.4,.9,.3,1), visibility .26s;
  z-index: 90; overflow: hidden;
}
.nav-item.has-mega:hover .mega,
.nav-item.has-mega:focus-within .mega { opacity: 1; visibility: visible; transform: translateY(0); }

.mega-inner {
  max-width: 1040px; margin: 0 auto;
  padding: 30px 34px 24px;
  display: grid; grid-template-columns: 1fr 1fr 1.5fr; gap: 34px;
}
.mega-col h4 {
  display: flex; align-items: center; gap: 7px;
  font-size: 12.5px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase;
  color: var(--green-deep); margin-bottom: 12px; padding-bottom: 11px;
  border-bottom: 1px solid var(--line);
}
.mega-col h4 svg { width: 13px; height: 13px; color: var(--green-lime); }
.mega-col a.ml {
  display: block; padding: 8px 0 8px 0; font-size: 14.5px; font-weight: 600;
  color: #3d453e; position: relative; transition: color .18s, padding-left .18s;
}
.mega-col a.ml::before {
  content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%) scale(0);
  width: 5px; height: 5px; border-radius: 50%; background: var(--green-lime); transition: transform .18s;
}
.mega-col a.ml:hover { color: var(--green-deep); padding-left: 13px; }
.mega-col a.ml:hover::before { transform: translateY(-50%) scale(1); }
.mega-col a.ml .mn { display: block; font-size: 12px; font-weight: 500; color: var(--muted); margin-top: 1px; }

.mega-promo { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.mega-card {
  position: relative; border-radius: 16px; overflow: hidden; min-height: 176px;
  display: flex; align-items: flex-end; text-decoration: none;
  box-shadow: 0 10px 24px rgba(0,0,0,.14);
}
.mega-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.mega-card:hover img { transform: scale(1.06); }
.mega-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 34%, rgba(20,40,20,.8) 100%); }
.mega-card-body { position: relative; z-index: 2; padding: 15px 16px; }
.mega-card-kicker { display: block; font-size: 10px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; color: #dff2c8; margin-bottom: 4px; }
.mega-card-title { display: block; color: #fff; font-size: 16.5px; font-weight: 800; line-height: 1.15; }
.mega-card-cta { display: inline-flex; margin-top: 8px; font-size: 11.5px; font-weight: 800; color: #fff; text-transform: uppercase; letter-spacing: .4px; border-bottom: 1.5px solid var(--green-lime2); padding-bottom: 2px; }

.mega-foot {
  grid-column: 1 / -1; margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line);
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.mega-foot .lbl { font-size: 11.5px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; color: var(--muted); margin-right: 2px; }
.mega-foot a {
  font-size: 13.5px; font-weight: 700; color: #3d453e; padding: 7px 15px;
  border: 1.5px solid var(--line); border-radius: 999px; transition: color .18s, background .18s, border-color .18s;
}
.mega-foot a:hover { color: #fff; background: var(--green); border-color: var(--green); }
.mega-foot a::after { display: none; }

.mega-backdrop {
  position: fixed; left: 0; right: 0; bottom: 0; top: var(--mega-top, 111px);
  background: rgba(12,18,12,.6);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  opacity: 0; visibility: hidden; transition: opacity .28s, visibility .28s;
  z-index: 80; pointer-events: none;
}
body.mega-open .mega-backdrop { opacity: 1; visibility: visible; }

.header-icons { display: flex; align-items: center; gap: 18px; }
.icon-btn {
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border-radius: 50%;
  color: #2b2f2c;
  transition: background .2s, transform .2s, color .2s;
}
.icon-btn:hover { background: var(--green-soft); color: var(--green); transform: translateY(-2px); }
.icon-btn svg { width: 22px; height: 22px; }
.hamburger { display: none; }

/* ============ HERO ============ */
.hero {
  position: relative;
  background: linear-gradient(120deg, var(--hero1) 0%, var(--hero2) 45%, var(--hero3) 100%);
  overflow: hidden;
  min-height: 460px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-slides {
  position: relative;
  width: 100%;
  z-index: 2;
}
.hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .8s ease;
}
.hero-slide:first-child { position: relative; }
.hero-slide.active { opacity: 1; z-index: 1; }
.hero-slide a { display: block; }
.hero-banner {
  width: 100%;
  max-width: 100%;
  height: 100%;
  margin: 0 auto;
  display: block;
  object-fit: cover;
  position: relative;
  z-index: 2;
}
.hero-slide:first-child .hero-banner { height: auto; }
.hero-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 16px;
  z-index: 3;
  display: flex;
  justify-content: center;
  gap: 8px;
}
.hero-dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255,255,255,.55);
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.hero-dots span.active {
  background: #fff;
  transform: scale(1.2);
}

/* ============ X LOADER (đang tải sản phẩm) ============ */
.x-loader {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 80px 0;
}
.x-loader .xl-mark {
  position: relative;
  width: 84px;
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* vòng tròn loading quay quanh logo */
.x-loader .xl-mark::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 4px solid var(--green-soft, #e6f4d2);
  border-top-color: var(--green, #2f7d32);
  animation: xlSpin .9s linear infinite;
}
.x-loader svg {
  width: 46px;
  height: 46px;
  animation: xlBeat 1.3s ease-in-out infinite;
}
.x-loader .xl-arm {
  fill: var(--green, #2f7d32);
}
@keyframes xlSpin { to { transform: rotate(360deg); } }
@keyframes xlBeat {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.18); }
}
.x-loader .xl-text {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .3px;
  color: var(--green, #2f7d32);
}
.x-loader .xl-text::after {
  content: "";
  animation: xlDots 1.4s steps(1, end) infinite;
}
@keyframes xlDots {
  0% { content: ""; }
  25% { content: "."; }
  50% { content: ".."; }
  75% { content: "..."; }
}
/* lớp phủ loading toàn màn hình khi bấm vào sản phẩm */
.page-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, .94);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease, visibility .2s ease;
}
.page-loader.show { opacity: 1; visibility: visible; }
.page-loader .x-loader { padding: 0; }
@keyframes heroFloat {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
/* decorative floating dots */
.hero .spark {
  position: absolute;
  z-index: 1;
  border-radius: 50%;
  filter: blur(1px);
  opacity: .7;
  animation: floaty 7s ease-in-out infinite;
}
.hero .spark.s1 { width: 16px; height: 16px; background: #fff; top: 22%; left: 12%; }
.hero .spark.s2 { width: 10px; height: 10px; background: #fde68a; top: 30%; left: 30%; animation-delay: 1.5s; }
.hero .spark.s3 { width: 14px; height: 14px; background: #fff; top: 18%; right: 16%; animation-delay: 2.5s; }
.hero .spark.s4 { width: 9px; height: 9px; background: #f9a8d4; top: 60%; right: 10%; animation-delay: .8s; }
@keyframes floaty {
  0%,100% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-18px) translateX(8px); }
}

/* ============ SECTION HELPERS ============ */
section { position: relative; }
.section-pad { padding: 70px 0; }
.center { text-align: center; }
h2.section-h {
  font-size: 30px;
  font-weight: 800;
  color: var(--green-deep);
  text-align: center;
}
.section-sub {
  text-align: center;
  color: var(--muted);
  margin-top: 10px;
  font-size: 15px;
}

/* ============ FOOTLAB ============ */
.footlab { padding: 80px 0 70px; background: #fff; }
.footlab .container { max-width: 1800px; }
.footlab h2 { font-size: 30px; }
.footlab-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0;
  align-items: center;
  margin: 40px auto 0;
  max-width: 1800px;
  container-type: inline-size;
}
.fl-col { display: flex; flex-direction: column; gap: 56px; position: relative; }
.fl-col.left { text-align: left; align-items: flex-start; }
.fl-col.right { text-align: left; align-items: flex-end; }

@media (min-width: 1081px) {
  .footlab-grid {
    align-items: stretch;
  }
  .footlab .fl-col {
    position: relative;
  }
  .footlab .sole-wrapper {
    width: clamp(420px, 38vw, 720px);
  }
  .footlab .fl-feature {
    position: absolute;
    width: 100%;
    max-width: 300px;
  }
  .footlab .fl-feature .fl-ic {
    width: 86px;
    height: 72px;
    margin-bottom: 12px;
  }
  .footlab .fl-feature img {
    height: 68px;
  }
  .footlab .fl-feature h4 {
    font-size: 19px;
    margin-bottom: 6px;
  }
  .footlab .fl-feature p {
    font-size: 14px;
    line-height: 1.5;
  }
}
.fl-feature { max-width: 290px; position: relative; }
.fl-feature .fl-ic {
  width: 70px; height: 58px;
  margin-bottom: 10px;
  display: flex;
  align-items: flex-end;
}
.fl-col.left .fl-ic { margin-left: 0; }
.fl-feature img { height: 54px; width: auto; object-fit: contain; }
.fl-feature h4 { color: var(--green-deep); font-size: 17px; font-weight: 700; margin-bottom: 4px; }
.fl-feature p { color: var(--muted); font-size: 14px; }

/* dashed connector lines toward the sole are drawn dynamically using SVG and JS */

/* Sole markers */
.sole-marker {
  position: absolute;
  border: 2px dashed #2f7d32;
  border-radius: 50%;
  pointer-events: none;
  z-index: 3;
  display: none;
}

@media (min-width: 1081px) {
  .sole-marker {
    display: block;
  }
}

.sole-marker.marker-toe {
  width: 40px;
  height: 40px;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(47, 125, 50, 0.2);
}

.sole-marker.marker-flex {
  width: 36px;
  height: 36px;
  top: 205px;
  left: 38px;
  transform: translate(-50%, -50%);
}

.fl-center { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 2; }
.sole-wrapper {
  position: relative;
  display: inline-block;
  width: 380px;
}
.sole-x-overlay {
  display: none;
}
.fl-sole { width: 100%; filter: drop-shadow(0 24px 34px rgba(0,0,0,.14)); }
.fl-feature {
  opacity: 0; transform: translateY(20px);
  transition: opacity .6s ease, transform .6s ease;
}
.fl-feature.in { opacity: 1; transform: none; }

.btn-primary {
  background: var(--green);
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  padding: 15px 54px;
  border-radius: 40px;
  display: inline-block;
  transition: transform .2s, box-shadow .2s, background .2s;
  box-shadow: 0 8px 20px rgba(47,125,50,.3);
}
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(47,125,50,.4); background: #2a722d; }
.fl-cta { text-align: center; margin-top: 50px; }

/* ============ CATEGORIES ============ */
.cats { background: var(--green-light); padding: 30px 0 35px; }
.cats .container { max-width: 1300px; }
.cats h2 { color: var(--green-deep); }
.cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 40px;
}
.cat-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow);
  transition: transform .3s, box-shadow .3s;
}
.cat-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); }
.cat-card .ph { aspect-ratio: 1/1; overflow: hidden; padding: 10px; }
.cat-card .ph img { width: 100%; height: 100%; object-fit: cover; border-radius: 12px; transition: transform .5s; }
.cat-card:hover .ph img { transform: scale(1.06); }
.cat-card .cat-foot {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 18px;
  font-weight: 700; font-size: 16px;
}
.cat-card .cat-arrow {
  width: 32px; height: 32px; border-radius: 50%;
  border: 1.6px solid #cdd5c6;
  display: grid; place-items: center;
  color: var(--green); transition: background .2s, color .2s, border-color .2s;
}
.cat-card:hover .cat-arrow { background: var(--green); color: #fff; border-color: var(--green); }

/* ============ TESTIMONIALS ============ */
.testi { padding: 70px 0; background: #f2f2f2; }
.testi-wrap { display: grid; grid-template-columns: 360px 1fr; gap: 40px; align-items: center; }
.testi-intro .badge {
  display: inline-block;
  background: var(--green);
  color: #fff;
  font-size: 13px; font-weight: 600;
  padding: 9px 20px; border-radius: 30px;
  margin-bottom: 22px;
}
.testi-intro h2 { font-size: 30px; line-height: 1.25; color: var(--green-deep); font-weight: 800; }
.testi-intro p { color: var(--muted); margin-top: 18px; font-size: 15px; }
.testi-nav { display: flex; gap: 12px; margin-top: 28px; }
.testi-nav button {
  width: 44px; height: 44px; border-radius: 50%;
  border: 1.5px solid #ccd6c4;
  display: grid; place-items: center;
  color: var(--green); transition: all .2s;
}
.testi-nav button.dark { background: var(--green); color: #fff; border-color: var(--green); }
.testi-nav button:hover { background: var(--green); color: #fff; border-color: var(--green); transform: scale(1.06); }

.testi-viewport { overflow: hidden; }
.testi-track { display: flex; gap: 24px; transition: transform .5s ease; }
.testi-card {
  flex: 0 0 calc(50% - 12px);
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 20px;
  min-height: 300px;
}
.testi-card > img { width: 100%; height: 100%; object-fit: cover; border-radius: 18px; }
.testi-body {
  padding: 26px 24px; display: flex; flex-direction: column;
  background: var(--green-soft); border-radius: 18px;
}
.testi-body .quote { font-size: 40px; line-height: .6; color: var(--green); font-weight: 900; font-family: Georgia, serif; }
.testi-body .txt { font-size: 14px; color: #2c3a2d; margin-top: 10px; }
.testi-body .more { color: var(--green); font-weight: 600; font-size: 13px; text-decoration: underline; margin-top: 6px; display: inline-block; }
.testi-body .author { font-weight: 700; margin-top: auto; padding-top: 14px; }
.testi-mini {
  display: flex; align-items: center; gap: 10px;
  background: #fff; border-radius: 12px; padding: 8px 10px; margin-top: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,.06);
}
.testi-mini img { width: 42px; height: 42px; object-fit: contain; }
.testi-mini .mini-name {
  font-size: 13px; font-weight: 600; flex: 1; min-width: 0;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  line-clamp: 2; overflow: hidden; text-overflow: ellipsis;
}
.testi-mini .mini-buy { flex-shrink: 0; }
.testi-mini .mini-buy {
  background: var(--green-lime); color: #fff; font-size: 12px; font-weight: 700;
  padding: 7px 14px; border-radius: 20px; transition: background .2s, transform .2s;
}
.testi-mini .mini-buy:hover { background: #468a00; transform: scale(1.05); }
.testi-progress { height: 4px; background: #e3ecd8; border-radius: 4px; margin-top: 26px; overflow: hidden; }
.testi-progress span { display: block; height: 100%; background: var(--green); border-radius: 4px; transition: width .4s; }

/* ============ PRODUCTS ============ */
.products { background: #fff; padding: 60px 0 70px; }
.products .container { max-width: 1800px; }
.prod-title {
  text-align: left; color: var(--green); font-weight: 800;
  font-size: 22px; margin: 0 0 24px;
}
.prod-tabs { display: flex; gap: 12px; margin-bottom: 30px; }
.prod-tabs button {
  padding: 11px 26px; border-radius: 30px; font-weight: 700; font-size: 14px;
  background: #fff; color: #3a4a39; border: 1.5px solid transparent; transition: all .2s;
}
.prod-tabs button.active { background: var(--green); color: #fff; }
.prod-tabs button:not(.active):hover { border-color: var(--green); color: var(--green); }
.prod-grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 30px;
}
.prod-pager {
  display: flex; justify-content: center; align-items: center;
  gap: 8px; margin-top: 32px; flex-wrap: wrap;
}
.prod-pager:empty { display: none; }
.pg-btn {
  min-width: 40px; height: 40px; padding: 0 12px;
  border: 1px solid var(--line); border-radius: 10px;
  background: #fff; color: var(--ink, #2c3a2d);
  font-size: 15px; font-weight: 600; cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.pg-btn:hover:not(:disabled):not(.active) {
  border-color: var(--green); color: var(--green);
}
.pg-btn.active {
  background: var(--green); border-color: var(--green); color: #fff; cursor: default;
}
.pg-btn:disabled { opacity: .4; cursor: not-allowed; }
.prod-card {
  background: #fff; border-radius: 16px; overflow: hidden;
  display: flex; flex-direction: column;
}
.prod-tag {
  position: absolute;
  top: 12px;
  left: 12px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--green-deep);
  text-transform: uppercase;
  background: var(--green-soft);
  border: none;
  padding: 4px 8px;
  border-radius: 4px;
  z-index: 2;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
.prod-thumb { position: relative; aspect-ratio: 1/1; padding: 0; background: #fff; }
.prod-thumb img { width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.prod-thumb .prod-img-hover { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: contain; opacity: 0; transition: opacity .2s ease; pointer-events: none; backface-visibility: hidden; transform: translate3d(0,0,0); will-change: opacity; }
.prod-thumb:hover .prod-img-hover { opacity: 1; }
.prod-info {
  padding: 0 0 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
.prod-info .name {
  font-size: 15px;
  font-weight: 500;
  color: #2c3a2d;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0;
  width: 100%;
}
.swatches-row { display: flex; align-items: center; gap: 4px; min-width: 0; }
.swatches {
  display: flex;
  align-items: center;
  gap: 0; /* Bỏ khoảng trống ở giữa các ảnh màu */
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
  /* Luôn chừa sẵn chỗ nút "+N" (44px) để ô màu MỌI thẻ đều
     cùng kích thước, dù thẻ đó có 2 màu hay 5+ màu (chuẩn theo thẻ có +N) */
  flex: 0 0 calc(100% - 48px);
  max-width: calc(100% - 48px);
  min-width: 0;
  padding: 2px 0;
}
.swatches::-webkit-scrollbar { display: none; }
.swatch {
  flex: 0 0 25%;
  width: auto;
  height: auto;
  aspect-ratio: 1.1 / 1; /* Làm cho ảnh to và cao hơn */
  background: #f4f4f4;
  cursor: pointer;
  position: relative;
  border: none !important;
  box-sizing: border-box;
}
.swatch::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--green);
  z-index: 2;
  transform: scaleX(0);
  opacity: 0.4;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.swatch:hover::after {
  transform: scaleX(1);
  opacity: 0.55;
}
.swatch.active::after {
  transform: scaleX(1);
  opacity: 1;
}
.swatch img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Nút "+N ›" mở rộng dải màu — kiểu pill trắng viền mảnh của XIXA */
.swatch-more { display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; color: var(--muted); flex: 0 0 44px; height: auto; aspect-ratio: 1.1 / 1; box-sizing: border-box; border: 1px solid var(--line); background: #fff; border-radius: 4px; padding: 2px 8px 0; cursor: pointer; transition: color .15s, border-color .15s, opacity .2s ease; }
.swatch-more::after { content: ' ›'; }
.swatch-more:hover { color: var(--green); border-color: var(--green); }
.m-more { display: none; }
.d-more { cursor: pointer; }
/* Nút "‹" quay lại các màu phía trước — chỉ hiện sau khi đã mở rộng (PC) */
.swatch-back { display: none; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--green); font-size: 17px; font-weight: 700; line-height: 1; padding: 0 0 1px 0; cursor: pointer; flex: 0 0 auto; box-shadow: 0 2px 6px rgba(0,0,0,.06); transition: background .15s, border-color .15s; }
.swatch-back:hover { background: var(--green-soft); border-color: var(--green); }
.swatches-row.sw-expanded .swatch-back { display: inline-flex; }
.swatches:not(.expanded) .swatch:nth-child(n+5) { display: none !important; }
.swatches:not(.expanded) { overflow-x: hidden !important; }
/* Mở rộng: dải màu trượt ngang mượt tới cuối; PC dùng nút ‹, mobile vuốt tay.
   Nút +N đã ẩn nên dải màu dàn full bề rộng thẻ (PC chỉ trừ chỗ nút ‹ = 36px) */
.swatches.expanded { overflow-x: auto !important; scroll-behavior: smooth; flex-basis: calc(100% - 36px); max-width: calc(100% - 36px); }
/* Container rộng thêm 16px khi mở rộng -> trừ lại để ô màu GIỮ NGUYÊN kích thước */
.swatches.expanded .swatch { flex-basis: 20% !important; }
.swatches.expanded ~ .d-more { display: none !important; }
.swatches-row.scrolled .swatch-more { opacity: 0; pointer-events: none; }
.prod-price-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  flex-wrap: nowrap;
}
.price-right {
  display: flex;
  align-items: center;
  gap: 6px;
}
.price-current {
  font-size: 15px;
  font-weight: 800;
  color: #1f2421;
  line-height: 1;
}
.price-discount {
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: var(--green-deep);
  border: none;
  padding: 3px 8px;
  border-radius: 999px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.price-discount.is-flash,
.pd-discount.is-flash,
.spb-discount-badge.is-flash {
  background: linear-gradient(135deg, #ff4e50, #ff8a00) !important;
}
.price-old {
  font-size: 12px;
  color: var(--muted);
  text-decoration: line-through;
  line-height: 1;
}
.prod-more-wrap { display: none; }

/* PC: tên và giá sản phẩm to hơn (tên dài tự cắt bằng dấu ...) */
@media (min-width: 1081px) {
  .prod-info .name { font-size: 18px; }
  .price-current { font-size: 19px; }
  .price-old { font-size: 14px; }
  .price-discount { font-size: 12px; }
}

/* ============ KNOWLEDGE + FAQ ============ */
.know-faq { padding: 70px 0; background: #fff; }
.kf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; }
.kf-grid > div { min-width: 0; }
.kf-head { font-size: 26px; color: var(--green-deep); font-weight: 800; margin-bottom: 28px; }
.articles { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.article { cursor: pointer; }
.article .pic { border-radius: 14px; overflow: hidden; aspect-ratio: 16/11; margin-bottom: 14px; }
.article .pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.article:hover .pic img { transform: scale(1.06); }
.article h4 { font-size: 16px; font-weight: 700; line-height: 1.4; color: #20281f; transition: color .2s; }
.article:hover h4 { color: var(--green); }

.faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 30px; }
.faq-item { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px dashed transparent; cursor: pointer; transition: transform .2s; }
.faq-item:hover { transform: translateX(4px); }
.faq-item .num { font-size: 30px; font-weight: 800; color: #d2d8cf; line-height: 1; }
.faq-item:hover .num { color: var(--green-lime); }
.faq-item .q { font-size: 15px; color: #333; }

/* ============ FOOTER ============ */
.footer {
  position: relative;
  background: var(--green);
  color: #e8f3e6;
  padding-top: 0;
  margin-top: 120px;
}
.wave {
  display: block;
  width: 100%;
  height: 120px;
  position: absolute;
  top: -119px;
  left: 0;
  pointer-events: none;
}
.footer-top { padding: 50px 0 36px; display: grid; grid-template-columns: 1.1fr 1fr 1.1fr; gap: 40px; align-items: start; }
.footer h3 { color: #fff; font-size: 22px; font-weight: 800; margin-bottom: 16px; }
.footer p { font-size: 15px; color: #c8ffae; max-width: 320px; }
.socials { display: flex; gap: 16px; margin-top: 22px; }
.socials a { width: 34px; height: 34px; display: grid; place-items: center; color: #cfe9cb; transition: transform .2s, color .2s; }
.socials a:hover { transform: translateY(-3px); color: #fff; }
.socials svg { width: 26px; height: 26px; }
.socials a img { width: auto; height: auto; max-width: 24px; max-height: 24px; }
.map-btn img { height: 24px; width: auto; }
.map-btn { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; border: 1.5px solid #c8ffae; border-radius: 30px; padding: 11px 22px; color: #c8ffae; font-weight: 600; font-size: 14px; transition: background .2s; }
.map-btn:hover { background: rgba(255,255,255,.12); }
.contact-boxes { display: flex; gap: 16px; flex-wrap: wrap; }
.contact-box { display: flex; align-items: center; gap: 14px; border: 1.5px solid #c8ffae; border-radius: 14px; padding: 14px 20px; text-decoration: none; }
a.contact-box { cursor: pointer; transition: border-color .2s, background .2s; }
a.contact-box:hover { border-color: #fff; background: rgba(255,255,255,.06); }
.contact-box .cb-ic { width: 34px; height: 34px; color: #fff; }
.contact-box .cb-ic svg { width: 34px; height: 34px; }
.contact-box .cb-ic img { width: 30px; height: 30px; }
.contact-box .big { font-size: 21px; font-weight: 800; color: #fff; }
.contact-box .small { font-size: 12px; color: #c8ffae; }
.zalo-ic { width: 34px; height: 34px; display: grid; place-items: center; }
.zalo-ic img { width: 30px; height: 30px; }

.footer-cols { border-top: 1px solid rgba(255,255,255,.18); padding: 40px 0 50px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; position: relative; }
.footer-cols h5 { font-size: 16px; font-weight: 800; letter-spacing: .04em; color: #fff; margin-bottom: 18px; }
.footer-cols li { margin-bottom: 14px; }
.footer-cols a { font-size: 15px; color: #c8ffae; transition: color .2s, padding-left .2s; }
.footer-cols a:hover { color: #fff; padding-left: 4px; }

.footer-bottom { background: var(--green-dark); }
.footer-bottom .inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 240px 22px 24px; flex-wrap: wrap; }
.footer-bottom p { font-size: 14px; color: #c8ffae; max-width: none; }
.badges { display: flex; align-items: center; gap: 14px; }
.badges .bd { background: #fff; color: #333; border-radius: 6px; padding: 6px 10px; font-size: 11px; font-weight: 700; display: flex; align-items: center; gap: 5px; }
.bd.norton { color: #f5b30b; }
.bd.dmca { color: #1a8cd8; }
.bd.bct { background: #1466b3; color: #fff; }
/* Logo Hàng Việt Nam Chất Lượng Cao — cao bằng các badge chữ bên cạnh (ảnh gốc 150×55) */
.badges .bd-hvnclc { height: 42px; width: auto; display: block; border-radius: 8px; }

.bear {
  position: absolute;
  right: 0; bottom: 0;
  width: 230px;
  z-index: 5;
  pointer-events: none;
}

/* ============ FOOTLAB INTERACTIVE DOTS & POPUP ============ */
.sole-dot {
  position: absolute;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #2e7d32;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  padding: 0;
  box-shadow: 0 2px 5px rgba(0,0,0,0.15);
}

.sole-dot::after {
  content: "";
  position: absolute;
  top: -6px;
  left: -6px;
  right: -6px;
  bottom: -6px;
  border-radius: 50%;
  background: rgba(47, 125, 50, 0.3);
  border: 1px solid rgba(47, 125, 50, 0.4);
  z-index: -1;
  animation: ringPulse 1.8s infinite ease-in-out;
  pointer-events: none;
}

@keyframes ringPulse {
  0% {
    transform: scale(0.95);
    opacity: 0.55;
  }
  50% {
    transform: scale(1.15);
    opacity: 0.95;
  }
  100% {
    transform: scale(0.95);
    opacity: 0.55;
  }
}

/* Coordinates for the 6 dots */
.dot-0 { top: 23%; left: 27%; transform: translate(-50%, -50%); }
.dot-1 { top: 52%; left: 6%; transform: translate(-50%, -50%); }
.dot-2 { top: 78%; left: 17%; transform: translate(-50%, -50%); }
.dot-3 { top: 18%; left: 72%; transform: translate(-50%, -50%); }
.dot-4 { top: 55%; left: 93%; transform: translate(-50%, -50%); }
.dot-5 { top: 82%; left: 73%; transform: translate(-50%, -50%); }

/* Popup style */
.fl-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  z-index: 300;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}
.fl-popup-overlay.open {
  opacity: 1;
  visibility: visible;
}
.fl-popup-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: calc(100% - 28px);
  max-width: 460px;
  margin: 0 auto;
  padding: 0 4px 22px;
  transform: translateY(20px);
  opacity: 0;
  transition: transform 0.35s ease, opacity 0.35s ease;
}
.fl-popup-overlay.open .fl-popup-controls {
  transform: translateY(0);
  opacity: 1;
}
.fl-popup-arrows { display: flex; gap: 14px; }
.fl-popup-nav {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green);
  line-height: 1;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
  transition: transform 0.15s ease;
}
.fl-popup-nav:active { transform: scale(0.92); }
.fl-popup-nav svg { width: 22px; height: 22px; display: block; }
.fl-popup-close { font-size: 30px; font-weight: 300; }
.fl-popup-card {
  background: #fff;
  width: calc(100% - 28px);
  max-width: 460px;
  margin: 0 auto 90px;
  border-radius: 24px;
  padding: 34px 24px 34px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
  transform: translateY(130%);
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  text-align: center;
}
.fl-popup-overlay.open .fl-popup-card {
  transform: translateY(0);
}
.fl-popup-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.fl-popup-icon img {
  max-height: 100%;
  width: auto;
}
.fl-popup-content h3 {
  color: var(--green-deep);
  font-size: 22px;
  font-weight: 800;
  margin-bottom: 10px;
}
.fl-popup-content p {
  color: var(--muted);
  font-size: 15px;
  line-height: 1.6;
  max-width: 460px;
  margin: 0 auto;
}

/* ============ SCROLL REVEAL ============ */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }

/* ============ MOBILE DRAWER ============ */
.drawer-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.5);
  opacity: 0; visibility: hidden; transition: .3s; z-index: 200;
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
.drawer-overlay.open { opacity: 1; visibility: visible; }

/* ===== XIXA Mobile Drawer (redesigned) ===== */
.drawer {
  position: fixed; top: 0; left: 0; height: 100%; width: 90%; max-width: 384px;
  background: #fff; z-index: 201; transform: translateX(-100%);
  transition: transform .38s cubic-bezier(.4,.9,.3,1);
  display: flex; flex-direction: column; overflow: hidden;
  font-family: var(--font);
}
.drawer.open { transform: none; box-shadow: 8px 0 34px rgba(0,0,0,.16); }

/* Head: logo · language pill · close */
.drawer .d-head {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px; border-bottom: 1px solid var(--line);
  background: #fff;
}
.drawer .d-logo { margin-right: auto; display: flex; }
.drawer .d-logo img { height: 30px; display: block; }
.drawer .d-lang {
  display: inline-flex; align-items: center; gap: 5px;
  border: 1.5px solid var(--line); background: #fff; color: var(--ink);
  border-radius: 999px; padding: 6px 11px; font-size: 13px; font-weight: 700;
  cursor: pointer; transition: border-color .2s, background .2s;
}
.drawer .d-lang:hover { border-color: var(--green-lime); background: #f4faee; }
.drawer .d-lang svg { width: 12px; height: 12px; opacity: .6; }
.drawer .d-close {
  width: 36px; height: 36px; border-radius: 50%; border: none;
  background: #eef3e8; color: var(--green-deep); font-size: 24px; line-height: 1;
  cursor: pointer; display: grid; place-items: center; transition: background .2s, transform .2s;
}
.drawer .d-close:hover { background: var(--green-soft); transform: rotate(90deg); }

/* Search */
.drawer .d-search {
  display: flex; align-items: center; gap: 9px;
  margin: 14px 16px 4px; padding: 0 14px; height: 46px;
  background: #f3f4f2; border: 1.5px solid transparent; border-radius: 14px;
  transition: border-color .2s, background .2s;
}
.drawer .d-search:focus-within { border-color: var(--green-lime); background: #fff; }
.drawer .d-search svg { width: 17px; height: 17px; color: var(--green); flex: none; order: 2; }
.drawer .d-search input {
  flex: 1; border: none; background: transparent; outline: none;
  font-size: 14.5px; font-weight: 500; color: var(--ink); font-family: inherit;
}
.drawer .d-search input::placeholder { color: #9aa79a; }

/* Gender tabs with sliding ink */
.drawer .d-tabs {
  position: relative; display: flex; margin: 12px 16px 0;
  border-bottom: 1px solid var(--line);
}
.drawer .d-tab {
  flex: 1; background: none; border: none; cursor: pointer;
  padding: 11px 4px; font-size: 15px; font-weight: 800; letter-spacing: .3px;
  color: #9aa79a; font-family: inherit; transition: color .25s;
}
.drawer .d-tab.active { color: var(--green-deep); }
.drawer .d-tab-ink {
  position: absolute; bottom: -1px; left: 0; width: 50%; height: 3px;
  background: var(--green); border-radius: 3px;
  transition: transform .32s cubic-bezier(.4,.9,.3,1), background .25s;
}
.drawer[data-gender="gai"] .d-tab-ink { transform: translateX(100%); background: var(--pink); }

/* Scroll area */
.drawer .d-scroll { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding-bottom: 8px; }
.drawer .d-scroll::-webkit-scrollbar { width: 5px; }
.drawer .d-scroll::-webkit-scrollbar-thumb { background: #d7e2cf; border-radius: 4px; }

/* Hero card */
.drawer .d-hero {
  display: block; position: relative; margin: 16px; height: 176px;
  border-radius: 18px; overflow: hidden; text-decoration: none;
  box-shadow: 0 12px 26px rgba(0,0,0,.14);
}
.drawer .d-hero img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.drawer .d-hero:hover img { transform: scale(1.05); }
.drawer .d-hero::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(20,40,20,.72) 100%);
}
.drawer .d-hero-body { position: absolute; left: 16px; bottom: 15px; right: 16px; z-index: 2; }
.drawer .d-hero-kicker {
  display: inline-block; font-size: 10.5px; font-weight: 800; letter-spacing: 1.4px;
  color: #dff2c8; text-transform: uppercase; margin-bottom: 4px;
}
.drawer .d-hero-title {
  display: block; color: #fff; font-size: 21px; font-weight: 900; line-height: 1.1;
  margin-bottom: 11px; text-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.drawer .d-hero-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: #fff; color: var(--green-deep); font-size: 12.5px; font-weight: 800;
  padding: 8px 15px; border-radius: 999px; text-transform: uppercase; letter-spacing: .3px;
  transition: background .2s, color .2s;
}
.drawer[data-gender="gai"] .d-hero-btn { color: #c0466b; }
.drawer .d-hero:hover .d-hero-btn { background: var(--green-lime); color: #fff; }
.drawer[data-gender="gai"] .d-hero:hover .d-hero-btn { background: var(--pink); }

/* Colored quick links */
.drawer .d-quick { margin: 4px 16px 6px; }
.drawer .d-quick-link {
  display: flex; align-items: center; gap: 11px; padding: 13px 4px;
  font-size: 15px; font-weight: 800; text-decoration: none;
  border-bottom: 1px solid var(--line);
}
.drawer .d-quick-link::before {
  content: ""; width: 8px; height: 8px; border-radius: 3px; flex: none;
  background: currentColor; box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 16%, transparent);
}
.drawer .d-quick-link .ql-tag {
  margin-left: auto; font-size: 10px; font-weight: 800; letter-spacing: .5px;
  padding: 3px 8px; border-radius: 999px; background: currentColor;
}
.drawer .d-quick-link .ql-tag span { color: #fff; }
.drawer .ql-new { color: var(--green-lime); }
.drawer .ql-sale { color: var(--pink); }
.drawer .ql-blog { color: var(--blue); }

/* Category list + accordions */
.drawer .d-menu { padding: 2px 0; }
.drawer .d-item, .drawer .d-acc-head {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  padding: 15px 16px; font-size: 15px; font-weight: 800; color: var(--ink);
  text-decoration: none; border: none; background: none; cursor: pointer;
  font-family: inherit; text-align: left; border-bottom: 1px solid var(--line);
}
.drawer .d-item:active, .drawer .d-acc-head:active { background: #f5f6f4; }
.drawer .d-item svg, .drawer .d-acc-head svg { width: 17px; height: 17px; color: #b3c0a8; transition: transform .3s, color .2s; flex: none; }
.drawer .d-acc.open .d-acc-head { color: var(--green-deep); }
.drawer .d-acc.open .d-acc-head svg { transform: rotate(180deg); color: var(--green-lime); }
.drawer .d-acc-body {
  max-height: 0; overflow: hidden; background: #f7f8f6;
  transition: max-height .34s cubic-bezier(.4,.9,.3,1);
}
.drawer .d-acc.open .d-acc-body { max-height: 260px; }
.drawer .d-acc-body a {
  display: flex; align-items: center; gap: 9px; padding: 12px 16px 12px 30px;
  font-size: 14px; font-weight: 600; color: var(--gray); text-decoration: none;
  border-bottom: 1px solid #e9efe1;
}
.drawer .d-acc-body a::before {
  content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--green-lime2); flex: none;
}
.drawer .d-acc-body a:active { color: var(--green-deep); }

/* Footer block */
.drawer .d-foot { margin: 10px 0 0; padding: 20px 16px 26px; background: var(--green-soft); }
.drawer .d-foot h5 {
  font-size: 12px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase;
  color: var(--green-deep); margin-bottom: 6px;
}
.drawer .d-foot > a {
  display: block; padding: 11px 0; font-size: 14.5px; font-weight: 600; color: #3d5238;
  text-decoration: none; border-bottom: 1px solid #d5e6c4;
}
.drawer .d-foot > a:active { color: var(--green); }
.drawer .d-social { display: flex; gap: 12px; margin-top: 16px; }
.drawer .d-social a {
  width: 38px; height: 38px; border-radius: 50%; background: #fff; display: grid; place-items: center;
  box-shadow: 0 4px 12px rgba(0,0,0,.1); transition: transform .2s;
}
.drawer .d-social a:hover { transform: translateY(-3px); }
.drawer .d-social img { width: 19px; height: 19px; }

/* ============ RESPONSIVE ============ */
@media (max-width: 1080px) {
  .footlab-grid { grid-template-columns: 1fr; }
  .fl-feature::after, .fl-feature::before { display: none; }
  .fl-col { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 28px; }
  .fl-col.left, .fl-col.right { text-align: center; align-items: center; }
  .fl-col.left .fl-ic { margin: 0 auto; }
  .fl-col .fl-ic { margin: 0 auto; }
  .fl-center { order: -1; }
  .prod-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .testi-card { grid-template-columns: 1fr; }
  .testi-card > img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
}

@media (max-width: 860px) {
  html { scroll-padding-top: 100px; }
  .topbar { height: 24px; font-size: 11px; }
  .header { top: 24px; }
  .nav { display: none; }
  .icon-btn {
    width: 32px;
    height: 32px;
  }
  .icon-btn svg {
    width: 18px;
    height: 18px;
  }
  .hamburger { display: grid; z-index: 6; }
  .header .inner { height: 48px; display: flex; align-items: center; justify-content: space-between; position: relative; padding: 0 16px; }
  .logo {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    margin: 0 !important;
    z-index: 5;
  }
  .logo img {
    height: 20px;
  }
  .header-icons { display: flex; align-items: center; gap: 8px; z-index: 6; }
  .header-icons .search {
    position: absolute;
    left: 56px;
    top: 50%;
    transform: translateY(-50%);
  }
  .topbar .tb-arrow { display: inline-flex; position: absolute; top: 0; }
  .topbar .tb-prev { left: 8px; }
  .topbar .tb-next { right: 8px; }
  .topbar .tb-track span { padding-top: 3px; }
  
  /* Hero Banner on mobile to fit screen width */
  .hero { height: auto; min-height: 0; display: block; }
  .hero-banner { width: 100%; height: 100%; object-fit: cover; }
  .hero-slide:first-child .hero-banner { height: auto; object-fit: contain; }
  /* Banner có ảnh riêng cho điện thoại -> khung tỷ lệ 3:4 */
  .hero-slide.has-mob .hero-banner { aspect-ratio: 3 / 4; height: auto; object-fit: cover; }

  /* Hide features in Footlab on mobile */
  .footlab-grid .fl-col { display: none; }
  .footlab-grid { grid-template-columns: 1fr; justify-items: center; margin-top: 24px; }
  .fl-center { width: 100%; display: flex; justify-content: center; }
  .sole-wrapper { width: 280px; }
  .fl-sole { width: 100%; }
  .sole-dot { display: flex; }

  /* Product card layout and 'Xem thêm' button */
  .prod-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .prod-thumb {
    padding: 0 !important;
  }
  .prod-thumb .prod-img-hover {
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
  }
  .prod-info {
    padding: 0 0 14px;
    gap: 6px;
    width: 100%;
  }
  .prod-info .name {
    font-size: 14.5px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    height: 2.6em;
    line-height: 1.3;
  }
  .prod-price-box {
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap;
    width: 100%;
    align-items: center;
  }
  .price-right {
    display: flex;
    align-items: center;
    gap: 3px;
  }
  .price-current {
    font-size: 13.5px;
    flex-shrink: 0;
    letter-spacing: -0.02em;
  }
  .price-discount {
    font-size: 9.5px;
    padding: 1px 3px;
    flex-shrink: 0;
    letter-spacing: -0.01em;
  }
  .price-old {
    font-size: 10.5px;
    flex-shrink: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
    letter-spacing: -0.02em;
  }
  .prod-more-wrap {
    display: flex;
    justify-content: center;
    margin-top: 24px;
  }
  .prod-more-btn {
    border: 1.5px solid #ccd6c4;
    background: #fff;
    color: var(--green-deep);
    font-weight: 700;
    font-size: 14px;
    padding: 8px 30px;
    border-radius: 20px;
  }

  /* Testimonials styling and horizontal scroll layout */
  .testi .container { padding-right: 0; }
  .testi-wrap { display: flex; flex-direction: column; gap: 24px; overflow: hidden; }
  .testi-intro {
    background: var(--green);
    color: #fff;
    padding: 24px 20px;
    border-radius: 18px;
    text-align: center;
    width: auto;
    margin-right: 16px;
  }
  .testi-intro h2 {
    color: #fff;
    font-size: 20px;
    margin-top: 8px;
  }
  .testi-intro p {
    color: #e2f0d9;
    font-size: 14px;
    margin-top: 12px;
  }
  .testi-intro .badge {
    background: rgba(255,255,255,0.18);
    color: #fff;
    margin-bottom: 0;
  }
  .testi-nav, .testi-progress { display: none; }
  .testi-viewport {
    overflow-x: auto;
    padding-bottom: 12px;
    -webkit-overflow-scrolling: touch;
    width: 100%;
  }
  .testi-viewport::-webkit-scrollbar { display: none; }
  .testi-track {
    display: flex;
    flex-direction: row;
    gap: 16px;
    transform: none !important;
    width: max-content;
    scroll-snap-type: x mandatory;
  }
  .testi-card {
    flex: 0 0 280px;
    max-width: 82vw;
    scroll-snap-align: start;
    grid-template-columns: 1fr;
  }
  .testi-card > img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }

  /* Categories horizontal scroll */
  .cats .container { padding-right: 0; }
  .cat-grid {
    display: flex;
    overflow-x: auto;
    gap: 16px;
    scroll-snap-type: x mandatory;
    padding-bottom: 12px;
    margin-top: 24px;
    -webkit-overflow-scrolling: touch;
  }
  .cat-grid::-webkit-scrollbar { display: none; }
  .cat-card {
    flex: 0 0 230px;
    scroll-snap-align: start;
  }

  /* FAQ horizontal scroll: each swipe panel = 1 full-width column of 3 rows */
  .faq-grid {
    display: grid;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-template-rows: repeat(3, auto);
    grid-auto-columns: 100%;
    gap: 0 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 4px;
    margin-top: 0;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }
  .faq-grid::-webkit-scrollbar { display: none; }
  .faq-item {
    scroll-snap-align: start;
    align-items: flex-start;
  }
  /* keep numeric order 01..06 despite interleaved desktop markup
     -> column 1: 01,02,03  column 2: 04,05,06 */
  .faq-grid .faq-item:nth-child(1) { order: 1; }
  .faq-grid .faq-item:nth-child(2) { order: 4; }
  .faq-grid .faq-item:nth-child(3) { order: 2; }
  .faq-grid .faq-item:nth-child(4) { order: 5; }
  .faq-grid .faq-item:nth-child(5) { order: 3; }
  .faq-grid .faq-item:nth-child(6) { order: 6; }

  /* Footer ordering and accordions */
  .footer-top { display: flex; flex-direction: column; gap: 24px; padding-bottom: 0; }
  .footer-top > div:nth-child(1) { order: 3; }
  .footer-top > div:nth-child(2) { order: 2; }
  .footer-top > .contact-boxes { order: 1; width: 100%; }
  .socials { margin-top: 16px; margin-bottom: 16px; }
  .contact-box {
    border: none;
    padding: 6px 0;
    width: 100%;
  }
  
  .footer-cols { grid-template-columns: 1fr; gap: 0; padding: 20px 0; }
  .footer-cols h5 {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    padding: 14px 0;
    margin-bottom: 0;
  }
  .footer-cols h5::after {
    content: "+";
    font-size: 18px;
    font-weight: 400;
  }
  .footer-cols div.active h5::after {
    content: "−";
  }
  .footer-cols ul {
    display: none;
    padding: 10px 0;
  }
  .footer-cols div.active ul {
    display: block;
  }

  .kf-grid { grid-template-columns: 1fr; gap: 40px; }
  .bear { width: 90px; opacity: .9; }
  .footer-bottom .inner { padding-right: 110px; }
  h2.section-h, .footlab h2, .testi-intro h2, .cats h2 { font-size: 22px; }
  .section-sub { font-size: 13px; margin-top: 8px; }
  .mobile-only { display: inline; }
  .footlab h2 {
    max-width: none;
    margin: 0 auto;
    line-height: 1.35;
  }
  .footlab .section-sub {
    max-width: 320px;
    margin: 8px auto 0;
    line-height: 1.45;
    font-size: 11px;
  }

  /* Articles horizontal scroll */
  .know-faq .container { padding-right: 0; }
  .know-faq .kf-grid > div:last-child { padding-right: 24px; }
  .articles {
    display: flex;
    overflow-x: auto;
    gap: 16px;
    scroll-snap-type: x mandatory;
    padding-bottom: 12px;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }
  .articles::-webkit-scrollbar { display: none; }
  .article {
    flex: 0 0 260px;
    scroll-snap-align: start;
  }
}

@media (max-width: 560px) {
  .container { padding: 0 16px; }
  .section-pad, .footlab, .cats, .testi, .products, .know-faq { padding-top: 44px; padding-bottom: 44px; }
  /* Mobile: lưới sản phẩm thành carousel vuốt ngang (2 hàng/trang), sp thứ 5 sang trang 2 */
  .prod-grid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    grid-auto-columns: calc(50% - 7px);
    gap: 14px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px;
  }
  .prod-grid > .prod-card { scroll-snap-align: start; }
  .prod-grid::-webkit-scrollbar { display: none; }
  .prod-pager { display: none !important; }
  .prod-title { font-size: 17px; margin-bottom: 18px; }
  .articles { gap: 14px; }
  .know-faq .kf-grid > div:last-child { padding-right: 16px; }
  .footer-bottom .inner { flex-direction: column; align-items: flex-start; padding: 22px 16px; }
  .contact-boxes { flex-direction: column; }

  /* Mobile swatch list optimization: maximum 3 swatches + 1 "+N" button */
  .swatches-row .d-more {
    display: none !important;
  }
  .swatches-row .m-more {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
  }
  .swatches-row {
    gap: 4px !important;
  }
  .swatches {
    flex-basis: 75% !important;
    max-width: 75% !important;
    gap: 0 !important; /* Bỏ khoảng trống ở giữa các ảnh màu */
  }
  /* Mobile giữ 3 ô màu mỗi hàng, làm to lên và sát nhau */
  .swatch {
    flex-basis: 33.333% !important;
    aspect-ratio: 1.1 / 1 !important; /* Làm cho ảnh to và cao hơn */
    border: none !important; /* Không vẽ đường viền xung quanh ảnh phân loại màu */
    box-sizing: border-box;
  }
  .swatches:not(.expanded) .swatch:nth-child(n+4) {
    display: none !important;
  }
  .swatches:not(.expanded) {
    overflow-x: hidden !important;
  }
  .swatches.expanded {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    flex-basis: 100% !important;
    max-width: 100% !important;
  }
  /* Khi mở rộng, giữ nguyên kích thước ô màu */
  .swatches.expanded .swatch {
    flex-basis: 25% !important; /* Vì không có nút +N nữa, mỗi ô màu vẫn chiếm đúng 25% chiều rộng thẻ */
  }
  /* Pill +N gọn lại thành hình tròn nhỏ xám nhạt cao cấp */
  .swatch-more {
    font-size: 10px !important;
    font-weight: 700 !important;
    flex: 0 0 18% !important;
    max-width: 18% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important; /* Tạo hình tròn hoàn hảo */
    border-radius: 50% !important; /* Bo tròn hoàn toàn */
    background: #f1f5f9 !important;
    border: none !important;
    color: #64748b !important;
    padding: 0 !important;
    min-width: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    margin-left: auto !important; /* Đẩy sát về góc phải */
  }
  .swatch-more::after {
    content: "" !important;
  }
  /* Mobile: vuốt qua lại dải màu bằng tay, không cần nút ‹ */
  .swatch-back {
    display: none !important;
  }
  /* dùng ~ vì giữa .swatches và .m-more có thể còn nút .d-more */
  .swatches.expanded ~ .m-more {
    display: none !important;
  }
  .sale-slider-track .prod-card {
    border: none !important;
  }
}

/* ============ ADD TO CART BUTTON ============ */
.add-cart-btn {
  margin-top: 12px;
  width: 100%;
  border: none;
  background: var(--green);
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  padding: 10px 0;
  border-radius: 24px;
  cursor: pointer;
  transition: background .2s, transform .15s;
}
.add-cart-btn:hover { background: var(--green-deep); transform: translateY(-1px); }
.add-cart-btn:active { transform: translateY(0); }

/* ============ CART BADGE ============ */
.icon-btn.cart { position: relative; }
.cart-badge {
  position: absolute;
  top: -4px; right: -4px;
  min-width: 18px; height: 18px;
  padding: 0 5px;
  background: #e53935;
  color: #fff;
  font-size: 11px; font-weight: 700;
  line-height: 18px;
  text-align: center;
  border-radius: 9px;
}

/* ============ CART CONTAINER & DROPDOWN ============ */
.cart-container {
  position: relative;
  display: inline-block;
}

.cart-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  width: 360px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
  padding: 16px;
  z-index: 1000;
  margin-top: 12px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  cursor: default;
}

.cart-container:hover .cart-dropdown,
.cart-dropdown.active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.cart-dropdown::before {
  content: '';
  position: absolute;
  bottom: 100%;
  right: 14px;
  border: 8px solid transparent;
  border-bottom-color: #ffffff;
}

.cd-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 12px;
  border-bottom: 1px solid #f0f0f0;
  margin-bottom: 12px;
}

.cd-subtotal {
  font-size: 13px;
  color: #555;
}

.cd-subtotal strong {
  color: var(--ink);
  font-weight: 700;
  font-size: 14px;
}

.cd-link-checkout {
  font-size: 13px;
  color: var(--green);
  font-weight: 600;
  text-decoration: none;
}

.cd-link-checkout:hover {
  text-decoration: underline;
}

.cd-items {
  max-height: 280px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 16px;
  padding-right: 4px;
}

/* Custom scrollbar for dropdown items */
.cd-items::-webkit-scrollbar {
  width: 4px;
}
.cd-items::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 4px;
}
.cd-items::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 4px;
}

.cd-item {
  display: flex;
  gap: 12px;
  position: relative;
  border-bottom: 1px solid #f7f7f7;
  padding-bottom: 12px;
}

.cd-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.cd-item-img {
  width: 56px;
  height: 56px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #eee;
  flex-shrink: 0;
  background: #fff;
}

.cd-item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cd-item-info {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.cd-item-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.35;
  padding-right: 20px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}

.cd-item-meta {
  font-size: 11px;
  color: #777;
}

.cd-item-price-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 1px;
}

.cd-item-price {
  font-size: 12px;
  font-weight: 700;
  color: var(--green-deep);
}

.cd-item-old-price {
  font-size: 11px;
  color: #999;
  text-decoration: line-through;
}

.cd-item-qty {
  font-size: 11px;
  color: #666;
}

.cd-item-remove {
  position: absolute;
  right: 0;
  top: 0;
  border: none;
  background: none;
  font-size: 18px;
  color: #ccc;
  cursor: pointer;
  transition: color 0.15s;
  line-height: 1;
  padding: 2px;
}

.cd-item-remove:hover {
  color: #ff3b30;
}

.cd-btn-checkout-now {
  display: block;
  width: 100%;
  background: var(--green);
  color: #ffffff;
  text-align: center;
  padding: 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: background 0.15s;
  text-decoration: none;
}

.cd-btn-checkout-now:hover {
  background: var(--green-dark);
}

/* ============ CHECKOUT PAGE STYLES ============ */
.checkout-container {
  padding-top: 24px;
  padding-bottom: 80px;
}

.checkout-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 32px;
  align-items: start;
}

.checkout-form-box,
.checkout-cart-box {
  background: #fff;
  border-radius: 16px;
  border: 1px solid #e7ebe4;
  padding: 24px;
}

.checkout-section-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--green-deep);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.checkout-inputs-grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.checkout-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.checkout-field {
  display: flex;
  flex-direction: column;
  position: relative;
}

.checkout-field input,
.checkout-field select,
.checkout-field textarea {
  width: 100%;
  background: #fdfdfd;
  border: 1px solid #cdd5c6;
  border-radius: 12px;
  padding: 13px 16px;
  font-size: 14px;
  color: var(--ink);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  font-family: inherit;
}

.checkout-field input:focus,
.checkout-field select:focus,
.checkout-field textarea:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(47, 125, 50, 0.08);
  background: #fff;
}

/* Payment Methods Styled Radios */
.payment-methods-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.payment-method-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1.5px solid #e7ebe4;
  border-radius: 12px;
  padding: 14px 18px;
  cursor: pointer;
  transition: border-color 0.2s, background-color 0.2s, box-shadow 0.2s;
}

.payment-method-item:hover {
  border-color: var(--green-lime2);
  background: #fafbfa;
}

.payment-method-item.active {
  border-color: var(--green);
  background: rgba(47, 125, 50, 0.03);
  box-shadow: 0 4px 12px rgba(47, 125, 50, 0.05);
}

.payment-method-left {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}

.payment-method-left input[type="radio"] {
  accent-color: var(--green);
  width: 18px;
  height: 18px;
  cursor: pointer;
}

.payment-method-left svg {
  color: var(--green);
  width: 18px;
  height: 18px;
}

.payment-method-right img {
  height: 24px;
  object-fit: contain;
}

.terms-checkbox-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  color: #555;
  cursor: pointer;
  margin-top: 10px;
}

.terms-checkbox-row input {
  accent-color: var(--green);
  margin-top: 3px;
  cursor: pointer;
}

.terms-checkbox-row a {
  color: var(--green);
  text-decoration: underline;
}

/* Right column checkout products list */
.checkout-cart-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 18px;
  border-bottom: 1px solid #f0f0f0;
  padding-bottom: 12px;
}

.checkout-cart-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  margin: 0;
}

.checkout-clear-btn {
  font-size: 13px;
  color: #ff3b30;
  background: none;
  border: none;
  cursor: pointer;
  font-weight: 600;
}

.checkout-clear-btn:hover {
  text-decoration: underline;
}

.checkout-prods-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 20px;
}

.checkout-prod-row {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  border-bottom: 1px solid #f5f5f5;
  padding-bottom: 16px;
}

.checkout-prod-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.checkout-prod-img {
  width: 68px;
  height: 68px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #e7ebe4;
  flex-shrink: 0;
  background: #fff;
}

.checkout-prod-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.checkout-prod-details {
  flex-grow: 1;
}

.checkout-prod-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.4;
  margin-bottom: 4px;
}

.checkout-prod-meta {
  font-size: 12px;
  color: #888;
  margin-bottom: 8px;
}

.checkout-prod-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.checkout-prod-remove-btn {
  background: none;
  border: none;
  color: #777;
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  cursor: pointer;
  display: flex;
  align-items: center;
  height: 28px;
  line-height: 1;
}

.checkout-prod-remove-btn:hover {
  color: #ff3b30;
}

.checkout-prod-price-box {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
  align-self: stretch;
  text-align: right;
}

.checkout-prod-price {
  font-size: 14px;
  font-weight: 700;
  color: var(--green-deep);
}

.checkout-prod-old-price {
  font-size: 11px;
  color: #aaa;
  text-decoration: line-through;
  display: block;
}

.checkout-qty-selector {
  display: flex;
  align-items: center;
  border: 1px solid #cdd5c6;
  border-radius: 6px;
  overflow: hidden;
  height: 28px;
}

.checkout-qty-selector button {
  width: 28px;
  height: 100%;
  background: #f4f6f3;
  border: none;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.15s;
}

.checkout-qty-selector button:hover {
  background-color: #e0e5dd;
}

.checkout-qty-selector span {
  width: 32px;
  text-align: center;
  font-size: 13px;
  font-weight: 600;
}

/* Promo Code Box */
.promo-code-row {
  display: flex;
  gap: 10px;
  margin: 20px 0 12px;
}

.promo-code-row input {
  flex-grow: 1;
  border: 1px solid #cdd5c6;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 13px;
}

.promo-code-btn {
  background: var(--green);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s;
}

.promo-code-btn:hover {
  background: var(--green-dark);
}

/* Account Voucher Suggestions */
.voucher-suggestions {
  margin: 0 0 16px;
}

.voucher-sugg-title {
  font-size: 11px;
  font-weight: 800;
  color: var(--green-dark);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.voucher-chip-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.voucher-chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  text-align: left;
  background: #f3fbef;
  border: 1px dashed var(--green);
  border-radius: 10px;
  padding: 8px 12px;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}

.voucher-chip:hover {
  background: #e7f6df;
}

.voucher-chip .vc-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.voucher-chip .vc-code {
  font-size: 13px;
  font-weight: 800;
  color: var(--green-dark);
  letter-spacing: 0.02em;
}

.voucher-chip .vc-desc {
  font-size: 11px;
  color: #6b7280;
}

.voucher-chip .vc-action {
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: var(--green);
  border-radius: 8px;
  padding: 5px 12px;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background 0.15s;
}

.voucher-chip:hover .vc-action {
  background: var(--green-dark);
}

.voucher-chip.is-applied {
  border-style: solid;
  border-color: #cdd5c6;
  background: #f5f7f3;
  cursor: default;
  opacity: 0.85;
}

.voucher-chip.is-applied .vc-action {
  background: #9ca3af;
}

.voucher-empty {
  font-size: 12px;
  color: #9ca3af;
  font-style: italic;
  padding: 2px 0;
}

.member-warning-box {
  background: #fffbe6;
  border: 1px solid #ffe58f;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 12px;
  color: #d46b08;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
}

.member-warning-box svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.member-warning-box a {
  font-weight: 700;
  text-decoration: underline;
}

/* Totals List */
.checkout-totals-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-top: 1px solid #f0f0f0;
  padding-top: 16px;
}

.checkout-total-row {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  color: #555;
}

.checkout-total-row.grand-total {
  font-size: 18px;
  font-weight: 800;
  color: var(--ink);
  border-top: 1px dashed #e5e5e5;
  border-bottom: 1px solid #e7ebe4;
  margin-top: 6px;
  padding-top: 16px;
  padding-bottom: 16px;
}

.checkout-total-row.grand-total span:last-child {
  color: var(--green-deep);
}

/* Checkout Trust Footer Badges */
.checkout-trust-footer {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 24px;
  padding-top: 0;
}

.trust-badge-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
}

.trust-badge-icon {
  width: 42px;
  height: 42px;
  background: var(--green-soft);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-deep);
}

.trust-badge-icon svg {
  width: 20px;
  height: 20px;
}

.trust-badge-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
}

.trust-badge-desc {
  font-size: 11px;
  color: #6b7280;
  line-height: 1.4;
}

/* Sản phẩm gợi ý trong trang thanh toán */
.checkout-suggest {
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid #e7ebe4;
}
.checkout-suggest-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 12px;
}
.checkout-suggest-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.suggest-card { display: block; text-decoration: none; min-width: 0; }
.suggest-thumb {
  aspect-ratio: 1 / 1;
  border-radius: 10px;
  overflow: hidden;
  background: #f6f7f5;
}
.suggest-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}
.suggest-card:hover .suggest-thumb img { transform: scale(1.06); }
.suggest-name {
  font-size: 12px;
  font-weight: 600;
  color: #3d453e;
  margin-top: 6px;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.suggest-card:hover .suggest-name { color: var(--green-deep); }
.suggest-price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 3px;
}
.suggest-price-current {
  font-size: 13px;
  font-weight: 800;
  color: var(--green-deep);
}
.suggest-price-old {
  font-size: 11px;
  color: #9aa39b;
  text-decoration: line-through;
  margin-left: auto; /* giá gốc nằm sát góc phải */
}
@media (max-width: 760px) {
  .checkout-suggest-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  /* Mobile chỉ hiển thị 2 sản phẩm */
  .checkout-suggest-grid .suggest-card:nth-child(n+3) { display: none; }
}

/* Sticky Bottom Bar */
.checkout-sticky-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: #ffffff;
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.08);
  padding: 16px 24px;
  z-index: 1001;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 24px;
}

.sticky-bar-left {
  display: flex;
  flex-direction: column;
  text-align: right;
}

.sticky-bar-label {
  font-size: 12px;
  color: #666;
}

.sticky-bar-val {
  font-size: 20px;
  font-weight: 800;
  color: var(--green-deep);
}

.checkout-submit-btn {
  background: var(--green);
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: 14px 36px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, opacity 0.15s, transform 0.15s;
  box-shadow: 0 4px 14px rgba(47, 125, 50, 0.25);
}

.checkout-submit-btn:hover:not(:disabled) {
  background: var(--green-dark);
  transform: translateY(-1px);
}

.checkout-submit-btn:active:not(:disabled) {
  transform: translateY(0);
}

.checkout-submit-btn:disabled {
  background: #d1d5db;
  color: #9ca3af;
  cursor: not-allowed;
  box-shadow: none;
}

/* Order Success Modal */
.success-overlay {
  position: fixed;
  inset: 0;
  background: rgba(16, 38, 20, 0.4);
  backdrop-filter: blur(8px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.success-overlay.active {
  opacity: 1;
  visibility: visible;
}

.success-card {
  background: #ffffff;
  border-radius: 24px;
  padding: 40px 32px;
  width: 90%;
  max-width: 460px;
  text-align: center;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
  transform: scale(0.9);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.success-overlay.active .success-card {
  transform: scale(1);
}

.success-icon-wrap {
  width: 72px;
  height: 72px;
  background: #e6f4d2;
  color: var(--green-deep);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 24px auto;
}

.success-icon-wrap svg {
  width: 36px;
  height: 36px;
}

.success-card h3 {
  font-size: 22px;
  color: var(--ink);
  font-weight: 800;
  margin-bottom: 12px;
}

.success-card p {
  font-size: 14px;
  color: #6b7280;
  line-height: 1.6;
  margin-bottom: 28px;
}

.success-btn-home {
  display: block;
  width: 100%;
  background: var(--green);
  color: #ffffff;
  text-align: center;
  padding: 14px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  transition: background 0.15s;
  text-decoration: none;
}

.success-btn-home:hover {
  background: var(--green-dark);
}

@media (max-width: 1024px) {
  .checkout-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .checkout-sticky-bar {
    justify-content: space-between;
    padding: 12px 20px;
  }
  .checkout-submit-btn {
    padding: 12px 28px;
  }
}

@media (max-width: 768px) {
  .checkout-row {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .checkout-trust-footer {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
}

/* ============ CONTACT FORM SECTION ============ */
.contact-section { background: var(--green-light); padding: 60px 0; }
.contact-section .green-title { color: var(--green-deep); }
.contact-form {
  max-width: 560px; margin: 28px auto 0;
  display: flex; flex-direction: column; gap: 14px;
}
.contact-form .cf-row { display: flex; gap: 14px; }
.contact-form .cf-row input { flex: 1; }
.contact-form input, .contact-form textarea {
  width: 100%; border: 1px solid #cdd5c6; border-radius: 12px;
  padding: 13px 16px; font-size: 15px; font-family: inherit; background: #fff;
}
.contact-form input:focus, .contact-form textarea:focus { outline: none; border-color: var(--green); }
.contact-form .btn-primary { align-self: center; border: none; cursor: pointer; }
.cf-status { text-align: center; font-size: 14px; margin: 4px 0 0; }
.cf-status.ok { color: var(--green-deep); font-weight: 600; }
.cf-status.err { color: #e53935; }

@media (max-width: 600px) {
  .contact-form .cf-row { flex-direction: column; }
}

/* ============================================================= */
/* ============ TRANG CHI TIẾT SẢN PHẨM (product.html) ========= */
/* ============================================================= */
.container-wide { width: 100%; max-width: 100%; margin: 0 auto; padding: 0 28px; }

.pd-page { padding-bottom: 60px; }

/* Breadcrumb */
.breadcrumb { padding: 16px 0 4px; font-size: 15px; color: var(--muted); font-weight: 500; }
.breadcrumb .container { max-width: 100%; padding: 0 28px; display: flex; align-items: center; flex-wrap: wrap; gap: 4px !important; line-height: 1; }
.breadcrumb a { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; line-height: 1; }
.breadcrumb a:hover { color: var(--green); }
.breadcrumb .bc-home { display: inline-flex; align-items: center; gap: 4px; line-height: 1; }
.breadcrumb .bc-home svg { display: block; width: 17px !important; height: 17px !important; transform: translateY(-1px) !important; }
.breadcrumb .sep { margin: 0; color: #c7ccc4; display: inline-flex; align-items: center; line-height: 1; }
.breadcrumb .cur { color: var(--ink); font-weight: 600; display: inline-flex; align-items: center; line-height: 1; }


.pd-loading { padding: 80px 0; text-align: center; color: var(--muted); font-size: 16px; }
.pd-loading a { color: var(--green); text-decoration: underline; }

/* ---- Khối trên: gallery trái + thông tin phải ---- */
.pd-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(330px, 24vw, 420px);
  gap: 56px;
  align-items: start;
  margin-top: 14px;
}

/* Gallery */
.pd-gallery-wrap { position: sticky; top: 96px; }
.pd-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pd-gcell {
  background: #f4f6f3; border-radius: 16px; overflow: hidden; aspect-ratio: 1 / 1; cursor: pointer;
}
.pd-gcell img { width: 100%; height: 100%; object-fit: cover; }
.pd-gcell-video { cursor: default; background: #000; }
.pd-gcell-video video { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-dots { display: none; }

/* Thông tin */
.pd-info { padding-top: 6px; }
.pd-brand {
  display: flex; align-items: center; gap: 8px; width: 100%;
  padding-bottom: 14px; margin-bottom: 16px;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  font-weight: 400; font-size: 18px; letter-spacing: .2px;
}
.pd-brand img { width: 22px; height: 22px; display: block; }
.pd-brand span { color: var(--ink); font-weight: 400; }
.pd-tag {
  display: inline-block; background: var(--green-soft); color: var(--green-deep);
  font-size: 12px; font-weight: 700; letter-spacing: .4px; padding: 5px 12px; border-radius: 999px; margin-bottom: 12px;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
.pd-name { font-size: 30px; line-height: 1.2; color: var(--ink); font-weight: 500; }
.pd-rating { display: flex; align-items: center; gap: 5px; margin: 10px 0 14px; cursor: pointer; }
.pd-rating:hover .pd-reviews { text-decoration: underline; }
.pd-stars { display: inline-flex; gap: 2px; align-items: center; }
.pd-rating .star { color: #d9d9d9; display: inline-flex; align-items: center; }
.pd-rating .star .star-svg { width: 18px; height: 18px; display: block; }
.pd-rating .star.on { color: var(--green); }
.pd-reviews { font-size: 14px; color: var(--ink); display: inline-flex; align-items: center; height: 18px; line-height: 1; }

.pd-price-block { margin-bottom: 22px; }
.pd-old { font-size: 16px; color: var(--muted); text-decoration: line-through; margin-bottom: 3px; }
.pd-price-row { display: flex; align-items: center; gap: 12px; }
.pd-price { font-size: 30px; font-weight: 700; color: var(--ink); line-height: 1; letter-spacing: -.5px; }
.pd-discount { background: var(--green); color: #fff; font-size: 12px; font-weight: 400; padding: 4px 10px; border-radius: 999px; line-height: 1; display: inline-flex; align-items: center; justify-content: center; }
.pd-voucher-row { margin: -10px 0 22px; }
.pd-freeship { font-size: 15px; color: var(--muted); margin-bottom: 18px; }
.pd-voucher { display: inline-block; background: var(--green-soft); color: var(--green-deep); border: 1px dashed var(--green); font-size: 13px; font-weight: 700; padding: 5px 12px; border-radius: 8px; }

.pd-field { margin-bottom: 18px; }
.pd-label { font-size: 14px; color: var(--muted); margin-bottom: 8px; }
.pd-label b { color: var(--ink); }
.pd-swatches { display: flex; gap: 12px; flex-wrap: wrap; }
.pd-swatch {
  width: 60px; height: 60px; border-radius: 0; cursor: pointer; overflow: visible;
  padding: 0; background: #f4f4f4; border: none;
  position: relative;
  transition: transform .12s;
}
.pd-swatch::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--green);
  z-index: 2;
  transform: scaleX(0);
  opacity: 0.4;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.pd-swatch:hover::after {
  transform: scaleX(1);
  opacity: 0.55;
}
.pd-swatch.active::after {
  transform: scaleX(1);
  opacity: 1;
}
.pd-swatch img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-swatch:hover { transform: translateY(-2px); }

/* CHỈ PC (>=761px): ảnh phân loại màu LUÔN 5 ảnh/hàng ở mọi độ phân giải,
   tự phóng to theo bề rộng cột, thừa thì xuống hàng 2. (Mobile <=760px giữ nguyên.) */
@media (min-width: 761px) {
  .pd-swatch {
    flex: 0 0 calc((100% - 4 * 12px) / 5);
    max-width: calc((100% - 4 * 12px) / 5);
    width: auto;
    height: auto;
    aspect-ratio: 1 / 1;
    overflow: hidden;
  }
}

.pd-size { position: relative; width: 100%; }
.pd-size-trigger {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 13px 16px; border: 1.5px solid var(--line); border-radius: 14px;
  font-family: inherit; font-size: 15px; font-weight: 600; color: var(--ink);
  background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s;
}
.pd-size-trigger:hover { border-color: var(--green-light); }
.pd-size.open .pd-size-trigger { border-color: var(--green); box-shadow: 0 0 0 3px var(--green-soft); }
.pd-size-current { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pd-size-caret { display: flex; color: var(--muted); transition: transform .2s; }
.pd-size.open .pd-size-caret { transform: rotate(180deg); color: var(--green); }

.pd-size-menu {
  position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 30;
  list-style: none; margin: 0; padding: 6px; max-height: 280px; overflow-y: auto;
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  box-shadow: 0 12px 32px rgba(20, 40, 25, .14);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .16s, transform .16s, visibility .16s;
}
.pd-size.open .pd-size-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.pd-size-opt {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 11px 14px; border-radius: 10px; cursor: pointer; transition: background .12s;
}
.pd-size-opt:hover { background: var(--green-soft); }
.pd-size-opt.active { background: var(--green-soft); }
.pd-size-lbl { font-size: 15px; font-weight: 600; color: var(--ink); }
.pd-size-opt.active .pd-size-lbl { color: var(--green-deep); }
.pd-size-desc { font-size: 13px; color: var(--muted); }
.pd-size-opt.active { position: relative; }
.pd-size-opt.active::after {
  content: '✓'; color: var(--green); font-weight: 800; font-size: 14px; margin-left: 4px;
}

.pd-buy { display: flex; gap: 12px; margin: 22px 0; }
.pd-qty {
  display: flex;
  align-items: center;
  border: none;
  border-radius: 999px;
  background: #f2f3f5;
  overflow: hidden;
  height: 50px;
}
.pd-qty button {
  width: 44px;
  height: 100%;
  font-size: 20px;
  color: #333;
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.15s;
}
.pd-qty button:hover {
  opacity: 0.6;
}
.pd-qty input {
  width: 48px;
  height: 100%;
  text-align: center;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  color: #111;
}
.pd-qty input:focus {
  outline: none;
}
.pd-add {
  flex: 1;
  border-radius: 999px;
  padding: 0 24px;
  height: 50px;
  font-size: 16px;
  font-weight: 700;
  background: var(--green);
  color: #fff;
  border: none;
  box-shadow: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.15s;
}
.pd-add:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}
.pd-add:active {
  transform: translateY(0);
}

/* Hộp xanh "Cách XIXA tạo ra sản phẩm này" */
.pd-howbox { background: var(--green-soft); border-radius: 16px; padding: 18px 20px; margin: 22px 0; }
.pd-howbox-title { font-weight: 700; color: var(--green-deep); margin-bottom: 14px; font-size: 15px; }
.pd-feats { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.pd-feat { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.pd-feat img { width: 46px; height: 46px; }
.pd-feat span { font-size: 12.5px; line-height: 1.35; color: var(--ink); }

/* Accordion chi tiết */
.pd-accordion { border-top: 1px solid var(--line); margin-top: 20px; }
.pd-acc-head {
  width: 100%; display: flex; justify-content: space-between; align-items: flex-start;
  padding: 16px 0; font-size: 17px; font-weight: 700; color: var(--ink); text-align: left;
  line-height: 1.3;
}
.pd-acc-head > span {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 8px;
  row-gap: 4px;
}
.pd-acc-ic {
  font-size: 24px;
  color: var(--green);
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  width: 24px;
  align-self: flex-start;
}
.pd-acc-body {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  padding-bottom: 0;
  transition: max-height 0.3s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.25s ease-out, padding-bottom 0.3s ease-out;
}
.pd-acc-body.open {
  max-height: 800px;
  opacity: 1;
  padding-bottom: 18px;
}
.pd-spec { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px dashed var(--line); font-size: 14.5px; }
.pd-spec span { color: var(--muted); }
.pd-spec b { font-weight: 400; }
.pd-desc { margin-top: 14px; font-size: 14.5px; line-height: 1.75; color: #3a423b; }
.pd-desc p, .pd-desc li { text-align: justify; }
.pd-desc h2 { font-size: 19px; font-weight: 800; color: var(--ink); margin: 18px 0 8px; }
.pd-desc h3 { font-size: 16px; font-weight: 700; color: var(--green-deep); margin: 16px 0 6px; }
.pd-desc p { margin: 0 0 10px; }
.pd-desc ul { margin: 0 0 12px; padding-left: 22px; list-style: disc; }
.pd-desc ol { margin: 0 0 12px; padding-left: 22px; list-style: decimal; }
.pd-desc li { margin: 4px 0; }
.pd-desc hr { border: none; border-top: 1px solid var(--line); margin: 16px 0; }
.pd-desc a { color: var(--green-deep); text-decoration: underline; }

/* Chính sách */
.pd-policies { display: flex; flex-direction: column; gap: 28px; margin-top: 28px; padding-top: 28px; border-top: 1px solid var(--line); }
.pd-policy { display: flex; align-items: flex-start; gap: 20px; }
.pd-policy-ic { width: 48px; height: 48px; flex: 0 0 48px; object-fit: contain; margin-top: 2px; }
.pd-policy-text b { display: block; font-size: 19px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.pd-policy-text p { color: var(--muted); font-size: 15px; line-height: 1.6; margin: 0; text-align: justify; }
.pd-policy-text a { color: var(--green); text-decoration: underline; }

/* ---- 3 ảnh chi tiết ---- */
.pd-details { margin-top: 56px; max-width: 100%; padding: 0; }
.pd-detimgs { --sq: min(calc(100vh - 111px), 60vw); display: flex; gap: 8px; height: var(--sq); border-radius: 0; overflow: hidden; align-items: stretch; }
.pd-detimg { position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; cursor: pointer;
  transition: flex-grow .55s cubic-bezier(.4,0,.2,1), flex-basis .55s cubic-bezier(.4,0,.2,1); }
.pd-detimg.active { flex: 0 0 var(--sq); height: 100%; }
.pd-detimg img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.4,0,.2,1); }
.pd-detimg:not(.active) img { transform: scale(1.04); }
.pd-detimg.active .pd-detimg-plus { display: none; }
.pd-detimg-plus {
  position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,.92); color: var(--ink); font-size: 24px; line-height: 1;
  display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(0,0,0,.18);
  transition: background .15s, transform .15s;
}
.pd-detimg-plus:hover { background: #fff; transform: scale(1.08); }
.pd-detimg figcaption {
  position: absolute; left: 0; bottom: 0; width: 100%; padding: 18px 20px;
  background: linear-gradient(transparent, rgba(0,0,0,.65)); color: #fff;
}
.pd-detimg figcaption b { display: block; font-size: 17px; }
.pd-detimg figcaption small { font-size: 13px; opacity: .9; }
.pd-detimg:not(.active) figcaption b { font-size: 14px; }
.pd-detimg:not(.active) figcaption small { display: none; }

/* Lightbox */
/* Lightbox toàn màn hình: 1 trang, không cuộn (stage co giãn + thanh mua hàng ở đáy) */
body.lightbox-open { overflow: hidden; }
html:has(body.lightbox-open) { overflow: hidden; }
.pd-lightbox { overscroll-behavior: contain; }
/* Nâng nút chat AI lên trên thanh thêm giỏ hàng ở đáy lightbox (không che nút mua) */
html body.lightbox-open .xb-fab,
html body.lightbox-open .xb-panel {
  transform: translateY(calc(-1 * var(--lb-foot-h, 0px) - 8px));
}
.pd-lightbox {
  position: fixed; inset: 0; background: #f3f4f2; z-index: 2000;
  display: flex; flex-direction: column;
}
.pd-lightbox[hidden] { display: none; }
.pd-lightbox-stage {
  flex: 1 1 auto; min-height: 0; position: relative;
  display: flex; align-items: center; justify-content: center; padding: 24px 90px;
}
.pd-lightbox-imgwrap { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.pd-lightbox-stage img { max-width: 100%; max-height: 100%; object-fit: contain; }
/* Nút qua lại + đóng kiểu XIXA: tròn trắng, mũi tên/X xanh */
.pd-lightbox-nav, .pd-lightbox-close {
  width: 56px; height: 56px; border-radius: 50%;
  background: #fff; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: var(--green); box-shadow: 0 6px 18px rgba(0,0,0,.16);
  transition: transform .15s ease, background .15s ease;
}
.pd-lightbox-nav:hover { background: var(--green-soft); }
.pd-lightbox-close:hover { background: var(--green-soft); transform: scale(1.06); }
.pd-lightbox-nav svg { width: 24px; height: 24px; display: block; }
.pd-lightbox-close svg { width: 24px; height: 24px; display: block; }
.pd-lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
.pd-lightbox-prev { left: 24px; }
.pd-lightbox-next { right: 24px; }
.pd-lightbox-close { position: absolute; top: 22px; right: 24px; z-index: 5; box-shadow: none; }
/* Chấm tròn (mobile) */
.pd-lightbox-dots { display: none; justify-content: center; gap: 8px; padding: 6px 0 14px; }
.pd-lightbox-dots .lb-dot { width: 8px; height: 8px; border-radius: 50%; background: #cfd6cd; cursor: pointer; transition: background .2s, width .2s; }
.pd-lightbox-dots .lb-dot.on { background: var(--green); width: 22px; border-radius: 4px; }
/* Thanh mua hàng tái dùng -> nằm tĩnh ở đáy lightbox */
.pd-lightbox-foot { width: 100%; flex: 0 0 auto; }
.pd-lightbox-foot .sticky-product-bar,
.pd-lightbox-foot .sticky-product-botbar {
  position: relative !important; transform: none !important; opacity: 1 !important; pointer-events: auto !important;
  box-shadow: none; border-top: 1.5px solid var(--line); border-bottom: none;
}

/* Toast "Đã thêm ... vào giỏ hàng" */
.cart-toast {
  position: fixed; left: 50%; bottom: 28px;
  z-index: 4000;
  display: flex; align-items: center; gap: 10px;
  max-width: min(92vw, 560px);
  padding: 14px 24px;
  background: var(--green); color: #fff;
  border-radius: 999px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.22);
  font-size: 15px; font-weight: 600; white-space: nowrap;
  opacity: 0; visibility: hidden;
  transform: translateX(-50%) translateY(20px);
  transition: opacity .3s ease, transform .3s ease, visibility .3s;
  pointer-events: none;
}
.cart-toast.show { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.cart-toast-ic { width: 20px; height: 20px; flex: 0 0 20px; color: #fff; }
.cart-toast-text { min-width: 0; overflow: hidden; }
.cart-toast-name { display: inline-block; max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; font-weight: 700; }
@media (max-width: 600px) {
  .cart-toast { bottom: 80px; max-width: 92vw; padding: 11px 18px; font-size: 13.5px; gap: 8px; }
  .cart-toast-ic { width: 18px; height: 18px; flex: 0 0 18px; }
  .cart-toast-name { max-width: 120px; }
}

/* ---- Gợi ý ---- */
.pd-suggest { margin-top: 64px; }
.pd-suggest-title { font-size: 26px; font-weight: 800; color: var(--green-deep); margin-bottom: 24px; }
.pd-suggest-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.pd-suggest-dots { display: none; }
.pd-sg-card { display: block; min-width: 0; }
.pd-sg-card .swatches-row { margin: 4px 0 6px !important; }
.pd-sg-thumb { position: relative; background: #f4f6f3; border-radius: 16px; overflow: hidden; aspect-ratio: 1 / 1; }
.pd-sg-thumb img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.pd-sg-img-hover { position: absolute; inset: 0; opacity: 0; transition: opacity .4s ease; pointer-events: none; backface-visibility: hidden; transform: translate3d(0,0,0); will-change: opacity; }
.pd-sg-thumb:hover .pd-sg-img-hover { opacity: 1; }
.pd-sg-tag { position: absolute; top: 10px; left: 10px; background: var(--green-soft); color: var(--green-deep); font-size: 10.5px; font-weight: 700; padding: 4px 8px; border-radius: 999px; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important; }
.pd-sg-sw { display: flex; align-items: center; gap: 7px; margin: 12px 0 6px; }
.pd-sg-name { font-size: 15px; font-weight: 500; color: var(--ink); margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pd-sg-price { display: flex; align-items: center; }
.pd-sg-price span { font-weight: 700; color: var(--green-deep); line-height: 1; }
.pd-sg-price-right { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.pd-sg-price-right .price-discount { color: #fff; }
.pd-sg-price-right small { font-size: 13px; color: var(--muted); text-decoration: line-through; line-height: 1; }

/* ---- Responsive ---- */
@media (max-width: 1080px) {
  .pd-top { grid-template-columns: 1fr; gap: 28px; }
  .pd-gallery-wrap { position: static; }
  .pd-suggest-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 760px) {
  .container-wide, .breadcrumb .container { padding: 0 16px; }
  /* Gallery -> vuốt ngang 1 ảnh, xem 5 ảnh còn lại */
  .pd-gallery {
    display: flex; grid-template-columns: none; gap: 0;
    overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .pd-gallery::-webkit-scrollbar { display: none; }
  .pd-gcell { flex: 0 0 100%; scroll-snap-align: center; border-radius: 14px; }
  .pd-dots { display: flex; justify-content: center; gap: 7px; margin-top: 12px; }
  .pd-dot { width: 7px; height: 7px; border-radius: 50%; background: #d3d8d1; transition: background .2s, width .2s; }
  .pd-dot.on { background: var(--green); width: 18px; border-radius: 4px; }

  .pd-name { font-size: 24px; }
  .pd-price { font-size: 24px; }
  .pd-feats { gap: 8px; }
  .pd-feat span { font-size: 11px; }

  /* 3 ảnh chi tiết -> accordion dọc: bung/co theo chiều cao (giống PC nhưng theo trục dọc) */
  .pd-detimgs { flex-direction: column; height: auto; gap: 8px; --sq: calc(100vw - 32px); border-radius: 0; }
  .pd-detimg { flex: none; height: 96px; aspect-ratio: auto; border-radius: 0;
    transition: height .55s cubic-bezier(.4,0,.2,1); }
  .pd-detimg.active { height: var(--sq); }
  .pd-detimg:not(.active) figcaption { padding: 14px 18px; }
  .pd-detimg:not(.active) figcaption small { display: none; }
  .pd-detimg:not(.active) figcaption b { font-size: 16px; }

  /* Gợi ý -> carousel ngang: 2 sản phẩm/màn hình, vuốt để xem thêm */
  .pd-suggest-grid {
    display: flex;
    grid-template-columns: none;
    gap: 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .pd-suggest-grid::-webkit-scrollbar { display: none; }
  .pd-suggest-title { font-size: 22px; }
  .pd-sg-card {
    flex: 0 0 calc((100% - 14px) / 2);
    min-width: 0;
    scroll-snap-align: none;
  }
  .pd-sg-card:nth-child(odd) { scroll-snap-align: start; }
  .pd-sg-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pd-suggest-dots { display: flex; justify-content: center; gap: 7px; margin-top: 14px; }

  .pd-lightbox-stage { padding: 16px; }
  .pd-lightbox-stage img { width: 100%; height: auto; max-height: 100%; }
  .pd-lightbox-nav { display: none; }
  .pd-lightbox-dots { display: flex; }
  .pd-lightbox-close { top: 14px; right: 14px; width: 48px; height: 48px; }

  /* Style the color selection container when moved under the gallery on mobile */
  .pd-top {
    gap: 16px !important;
  }
  .pd-field-colors {
    margin-bottom: 0 !important;
  }
  .pd-color-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 8px !important;
    width: 100% !important;
  }
  .pd-color-header .pd-label {
    margin-bottom: 0 !important;
  }
  .pd-color-header #pdDots {
    margin-top: 0 !important;
    justify-content: flex-end !important;
  }

  /* Enlarge and wrap color swatches to 4 items per row on mobile product page */
  .pd-swatches {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
  }
  .pd-swatch {
    flex: 0 0 calc((100% - 3 * 8px) / 4) !important;
    max-width: calc((100% - 3 * 8px) / 4) !important;
    width: auto !important;
    height: auto !important;
    aspect-ratio: 1.1 / 1 !important;
    border-radius: 4px !important;
    overflow: hidden !important;
  }
}

/* ---------- Size Guide Header & Link Button ---------- */
.pd-size-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
}
.pd-size-header .pd-label {
  margin-bottom: 0;
}
.size-guide-btn {
  background: transparent;
  border: none;
  color: var(--green);
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: underline;
  padding: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 0.15s ease;
  font-family: inherit;
}
.size-guide-btn:hover {
  color: var(--green-deep);
}

/* ---------- Size Guide Drawer (Sidebar) ---------- */
.size-guide-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 16, 12, 0.6);
  backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 999;
}
.size-guide-overlay.open {
  opacity: 1;
  visibility: visible;
}

.size-guide-drawer {
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  width: 100%;
  max-width: 480px;
  background: #fff;
  z-index: 1000;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1), visibility 0.35s;
  box-shadow: -6px 0 30px rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  visibility: hidden; /* ẩn khi đóng để bóng không hắt vào mép màn hình */
}
.size-guide-drawer.open {
  transform: translateX(0);
  visibility: visible;
}

.sg-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--line);
}
.sg-drawer-header h3 {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.sg-drawer-close {
  background: none;
  border: none;
  font-size: 32px;
  cursor: pointer;
  color: var(--gray);
  padding: 0;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.15s ease;
}
.sg-drawer-close:hover {
  color: var(--ink);
}

.sg-drawer-tabs {
  display: flex;
  border-bottom: 1px solid var(--line);
  background: #fdfdfd;
}
.sg-tab-btn {
  flex: 1;
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  padding: 15px 12px;
  font-size: 14px;
  font-weight: 700;
  color: var(--muted);
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: center;
}
.sg-tab-btn:hover {
  color: var(--green);
}
.sg-tab-btn.active {
  color: var(--green);
  border-bottom-color: var(--green);
  background: #fff;
}

.sg-drawer-content {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}
.sg-tab-content {
  display: none;
  animation: sg-fade-in 0.25s ease forwards;
}
.sg-tab-content.active {
  display: block;
}

@keyframes sg-fade-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Alert Box */
.sg-alert-box {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff3f3;
  border: 1px dashed #ffa39e;
  border-radius: 12px;
  padding: 14px 18px;
  margin-bottom: 24px;
}
.sg-alert-icon {
  font-size: 20px;
  flex-shrink: 0;
}
.sg-alert-box p {
  margin: 0;
  font-size: 12.5px;
  font-weight: 700;
  color: #f5222d;
  line-height: 1.45;
}

/* Table Card */
.sg-table-container {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.sg-table {
  width: 100%;
  border-collapse: collapse;
}
.sg-table th {
  background: #f3f4f6;
  color: var(--ink);
  font-size: 13.5px;
  font-weight: 700;
  padding: 12px 14px;
  text-align: center;
  letter-spacing: 0.01em;
  border-bottom: 1px solid #e5e7eb;
}
.sg-table td {
  padding: 12px 14px;
  font-size: 13.5px;
  color: var(--ink);
  text-align: center;
  border-bottom: 1px solid #edf0f5;
}
.sg-table tr:last-child td {
  border-bottom: none;
}
.sg-table tr:nth-child(even) td {
  background: #fafafa;
}
.sg-table td strong {
  font-weight: 700;
  color: var(--ink);
}

/* English Instructions Style */
.sg-measure-instructions {
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1px dashed var(--line);
}
.sg-measure-instructions h4 {
  font-size: 17px;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 6px;
  letter-spacing: -0.01em;
}
.sg-measure-instructions h5 {
  font-size: 14px;
  font-weight: 700;
  color: var(--muted);
  margin: 0 0 16px;
}
.sg-measure-instructions ol {
  padding-left: 20px;
  margin: 0 0 24px;
}
.sg-measure-instructions li {
  font-size: 13.5px;
  color: var(--gray);
  line-height: 1.6;
  margin-bottom: 10px;
}
.sg-download-btn {
  display: block;
  width: 100%;
  background: var(--ink);
  color: #fff;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  padding: 12px 16px;
  border-radius: 8px;
  text-decoration: none;
  transition: background 0.15s ease;
}
.sg-download-btn:hover {
  background: #333;
}

.sg-measure-illustration {
  border-top: 1px dashed var(--line);
  padding-top: 24px;
  text-align: center;
}
.sg-measure-img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}

.sg-full-guide-img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

@keyframes sg-backdrop-show {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes sg-backdrop-hide {
  from { opacity: 1; }
  to { opacity: 0; }
}

/* ============ SEARCH OVERLAY ============ */
.search-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(16, 38, 20, 0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  box-sizing: border-box;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.search-overlay.active {
  opacity: 1;
  visibility: visible;
}

.search-bar-container {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  max-width: 800px;
  margin-top: 40px;
  margin-bottom: 20px;
  transform: translateY(-20px);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.search-overlay.active .search-bar-container {
  transform: translateY(0);
}

.search-input-box {
  display: flex;
  align-items: center;
  background: #ffffff;
  border: 1.5px solid rgba(47, 125, 50, 0.2);
  border-radius: 9999px;
  padding: 12px 20px;
  width: 100%;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  box-sizing: border-box;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.search-input-box:focus-within {
  border-color: var(--green);
  box-shadow: 0 4px 25px rgba(47, 125, 50, 0.15);
}

.search-input-box svg {
  color: #888;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.search-input-box input {
  border: none;
  outline: none;
  width: 100%;
  font-size: 16px;
  margin-left: 12px;
  font-family: inherit;
  color: #111827;
}

.search-input-box input::placeholder {
  color: #9ca3af;
}

.search-clear-btn {
  background: none;
  border: none;
  font-size: 18px;
  color: #9ca3af;
  cursor: pointer;
  padding: 0 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.search-clear-btn:hover {
  color: #374151;
}

.search-close-btn {
  background: #ffffff;
  border: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  font-size: 20px;
  color: #374151;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s, background-color 0.2s;
}

.search-close-btn:hover {
  transform: scale(1.05);
  background-color: #f3f4f6;
}

/* Results Card */
.search-results-card {
  background: #ffffff;
  border-radius: 24px;
  width: 100%;
  max-width: 800px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
  padding: 32px;
  box-sizing: border-box;
  max-height: calc(100vh - 160px);
  overflow-y: auto;
  transform: translateY(20px);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.search-overlay.active .search-results-card {
  transform: translateY(0);
}

.search-section {
  margin-bottom: 28px;
}

.search-section:last-child {
  margin-bottom: 0;
}

.search-section-title {
  font-size: 15px;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 16px 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Tags List */
.search-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.search-tag-btn {
  background: #f3f4f6;
  border: none;
  border-radius: 9999px;
  padding: 8px 16px;
  font-size: 14px;
  color: #4b5563;
  cursor: pointer;
  transition: background-color 0.15s, color 0.15s;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

.search-tag-btn:hover {
  background: var(--green);
  color: #ffffff;
}

/* Products Grid */
.search-prods-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.search-prod-item {
  text-decoration: none;
  display: flex;
  flex-direction: column;
  color: inherit;
  transition: transform 0.2s;
}

.search-prod-item:hover {
  transform: translateY(-4px);
}

.search-prod-thumb {
  background: #f9f9f9;
  border-radius: 16px;
  aspect-ratio: 1;
  overflow: hidden;
  position: relative;
  margin-bottom: 12px;
}

.search-prod-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s;
}

.search-prod-item:hover .search-prod-thumb img {
  transform: scale(1.05);
}

.search-prod-name {
  font-size: 14px;
  font-weight: 600;
  color: #111827;
  margin-bottom: 6px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.search-prod-price {
  font-size: 14px;
  font-weight: 700;
  color: var(--green);
  display: flex;
  align-items: center;
  gap: 6px;
}

.search-prod-price del {
  font-size: 12px;
  font-weight: 400;
  color: #9ca3af;
  margin-left: auto; /* giá gốc nằm sát góc phải */
}

.search-no-results {
  color: #6b7280;
  font-size: 14px;
  padding: 10px 0;
}

.search-view-all-btn {
  display: block;
  width: 100%;
  max-width: 200px;
  margin: 24px auto 0 auto;
  background: var(--green);
  color: #ffffff;
  border: none;
  border-radius: 9999px;
  padding: 12px 24px;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.15s, transform 0.15s;
}

.search-view-all-btn:hover {
  background: var(--green-dark);
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .search-overlay {
    padding: 12px;
  }
  .search-bar-container {
    margin-top: 15px;
    gap: 8px;
  }
  .search-close-btn {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }
  .search-input-box {
    padding: 10px 16px;
  }
  .search-results-card {
    border-radius: 16px;
    padding: 20px;
    max-height: calc(100vh - 100px);
  }
  .search-prods-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .search-prod-name {
    font-size: 13px;
  }
  .search-prod-price {
    font-size: 13px;
  }
}

/* ============ CHECKOUT FOOTER CUSTOM STYLES & FIXES ============ */
.footer-about {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.footer-about .footer-logo {
  max-width: 140px;
  height: auto;
  margin-bottom: 12px;
}
.footer-contact {
  display: flex;
  flex-direction: column;
}
.footer-contact .green-title {
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  margin-bottom: 20px;
  letter-spacing: 0.05em;
}
.contact-info {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.info-item {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #d6ecd3;
  font-size: 14px;
  line-height: 1.5;
}
.info-item.address {
  align-items: flex-start;
}
.info-item img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  flex-shrink: 0;
}
.info-item.address img {
  margin-top: 2px;
}
.info-item .cb-ic,
.info-item .zalo-ic {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}
.info-item .cb-ic img,
.info-item .zalo-ic img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}
.info-item strong {
  color: #fff;
}

/* ============ CUSTOM SEARCHABLE SELECT DROPDOWNS ============ */
.custom-select-field {
  position: relative;
}
.custom-select-wrapper {
  position: relative;
  width: 100%;
}
.custom-select-wrapper.disabled {
  opacity: 0.6;
  pointer-events: none;
}
.custom-select-input {
  cursor: text;
  padding-right: 36px !important;
}
.custom-select-arrow {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  display: flex;
  align-items: center;
  color: #889380;
  transition: transform 0.2s;
}
.custom-select-wrapper.open .custom-select-arrow {
  transform: translateY(-50%) rotate(180deg);
}
.custom-select-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  width: 100%;
  background: #fff;
  border: 1px solid #cdd5c6;
  border-radius: 12px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
  max-height: 240px;
  overflow-y: auto;
  z-index: 1000;
  display: none;
}
.custom-select-wrapper.open .custom-select-dropdown {
  display: block;
}
.custom-select-option {
  padding: 11px 16px;
  font-size: 14px;
  color: var(--ink);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  text-align: left;
}
.custom-select-option:hover {
  background: #f4f7f3;
  color: var(--green);
}
.custom-select-option.selected {
  background: #e8f3e6;
  color: var(--green);
  font-weight: 600;
}
.custom-select-no-results {
  padding: 12px 16px;
  font-size: 13px;
  color: #888;
  text-align: center;
  font-style: italic;
}
/* Style the scrollbar for dropdown */
.custom-select-dropdown::-webkit-scrollbar {
  width: 6px;
}
.custom-select-dropdown::-webkit-scrollbar-track {
  background: transparent;
}
.custom-select-dropdown::-webkit-scrollbar-thumb {
  background: #cdd5c6;
  border-radius: 4px;
}
.custom-select-dropdown::-webkit-scrollbar-thumb:hover {
  background: #aab4a1;
}

/* ============ STICKY PRODUCT BAR ============ */
.sticky-product-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1005;
  height: 110px;
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1.5px solid var(--line);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s;
  will-change: transform, opacity;
}

.sticky-product-bar.active {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.spb-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  gap: 20px;
}

/* Left Section */
.spb-left {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
  flex-shrink: 0;
}

.spb-thumb-wrap {
  position: relative;
  width: 68px;
  height: 68px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: #f7f9f6;
  overflow: hidden;
  flex-shrink: 0;
}

.spb-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.3s ease;
}
.spb-thumb.fade-out {
  opacity: 0;
}
.spb-thumb.fade-in {
  opacity: 1;
}

.spb-discount-badge {
  position: static;
  background: var(--pink);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 5px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.spb-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 200px;
}

.spb-name {
  font-size: 15px;
  font-weight: 800;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}

.spb-price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
}

.spb-price {
  font-size: 16px;
  font-weight: 800;
  color: var(--green);
}

.spb-old-price {
  font-size: 13px;
  text-decoration: line-through;
  color: var(--muted);
}

.spb-stats-col {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 0 24px;
  font-size: 13px;
  white-space: nowrap;
}

.spb-stats-col::before,
.spb-center::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 38px;
  background: #e9ece4;
}

.spb-stat {
  display: flex;
  align-items: center;
  gap: 6px;
}

.spb-stat-rating {
  cursor: pointer;
}

.spb-stat-rating:hover .spb-rating-val {
  text-decoration: underline;
}

.spb-stat-rating .spb-stars {
  display: inline-flex;
  align-items: center;
}

.spb-stat-rating .spb-stars .pd-stars {
  display: inline-flex;
  align-items: center;
  gap: 1px;
}

.spb-stat-rating .star {
  display: inline-flex;
  align-items: center;
}

.spb-stat-rating .star .star-svg {
  width: 15px;
  height: 15px;
  color: #d8dcd2;
  display: block;
}

.spb-stat-rating .star.on .star-svg {
  color: var(--green);
}

.spb-rating-val {
  display: inline-flex;
  align-items: center;
  line-height: 1;
  color: var(--muted);
  font-weight: 600;
}

.spb-rating-val b {
  color: var(--ink);
  font-weight: 800;
}

.spb-stat-sold {
  color: var(--muted);
}

.spb-stat-sold b {
  color: var(--green);
  font-weight: 800;
}

/* Center Section */
.spb-center {
  position: relative;
  display: flex;
  align-items: center;
  gap: 32px;
  flex: 1;
  justify-content: flex-start;
  padding-left: 24px;
}

.spb-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.spb-label {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--muted);
}

.spb-label b {
  color: var(--ink);
}

.spb-swatches {
  display: flex;
  gap: 8px;
  max-width: 220px;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 4px 2px;
  margin: -4px 0;
}
.spb-swatches::-webkit-scrollbar {
  display: none;
}

.spb-swatch {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  min-width: 32px;
  border-radius: 50%;
  border: 1.5px solid var(--line);
  padding: 2px;
  cursor: pointer;
  background: #fff;
  transition: transform 0.2s, border-color 0.2s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

.spb-swatch img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.spb-swatch:hover {
  transform: translateY(-2px);
}

.spb-swatch.active {
  border-color: var(--green);
  box-shadow: 0 0 0 1.5px var(--green);
}

.spb-size-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.spb-size-guide-btn {
  font-size: 11.5px;
  color: var(--green-deep);
  text-decoration: underline;
  font-weight: 700;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

.spb-sizes {
  display: flex;
  gap: 6px;
}

.spb-size-opt {
  padding: 6px 12px;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  background: #fff;
  cursor: pointer;
  transition: all 0.15s;
}

.spb-size-opt:hover {
  border-color: var(--green-light);
  background: var(--green-soft);
}

.spb-size-opt.active {
  border-color: var(--green);
  background: var(--green-soft);
  color: var(--green-deep);
}

/* Right Section */
.spb-right {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
}

.spb-qty {
  display: flex;
  align-items: center;
  border: none;
  border-radius: 999px;
  background: #f2f3f5;
  overflow: hidden;
  height: 44px;
}

.spb-qty button {
  width: 36px;
  height: 100%;
  font-size: 18px;
  color: #333;
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.15s;
}

.spb-qty button:hover {
  opacity: 0.6;
}

.spb-qty input {
  width: 38px;
  height: 100%;
  text-align: center;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  color: #111;
}

.spb-qty input:focus {
  outline: none;
}

.spb-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--green);
  color: #fff;
  height: 44px;
  padding: 0 24px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 800;
  box-shadow: none;
  transition: background 0.2s, transform 0.2s;
  cursor: pointer;
  border: none;
}

.spb-add:hover {
  background: var(--green-dark);
  transform: translateY(-1px);
}

.spb-add:active {
  transform: translateY(1px);
}

/* Base Sticky Botbar Style (Hidden on Desktop) */
.sticky-product-botbar {
  display: none;
}

/* Desktop topbar scale-to-fit container (2K ratio lock) */
@media (min-width: 992px) {
  .sticky-product-bar {
    overflow: visible !important;
  }
  .spb-inner {
    width: 1650px !important;
    max-width: 1650px !important;
    min-width: 1650px !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) scale(var(--spb-scale, 1)) !important;
    transform-origin: center center !important;
    margin: 0 !important;
    padding: 0 24px !important;
    box-sizing: border-box !important;
    transition: transform 0.1s ease-out !important;
  }
}

@media (max-width: 991px) {
  .sticky-product-bar {
    display: none !important;
  }
  
  .sticky-product-botbar {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1005;
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-top: 1.5px solid var(--line);
    box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.08);
    transform: translateY(calc(100% + 24px)) scale(0.96);
    opacity: 0;
    pointer-events: none;
    /* Ẩn: hút xuống nhanh, mượt */
    transition: transform 0.38s cubic-bezier(0.55, 0.06, 0.45, 0.94), opacity 0.26s ease;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)) 16px;
    will-change: transform, opacity;
  }

  .sticky-product-botbar.active {
    transform: translateY(0) scale(1);
    opacity: 1;
    pointer-events: auto;
    /* Hiện: trượt lên có độ nảy đàn hồi nhẹ */
    transition: transform 0.55s cubic-bezier(0.22, 1.35, 0.36, 1), opacity 0.3s ease;
  }

  /* Đẩy nút chat AI lên trên thanh botbar sản phẩm khi botbar hiện */
  body.pd-botbar-active .xb-fab {
    transform: translateY(calc(-1 * var(--pd-botbar-h, 0px) - 8px));
  }
  
  .spb-bot-inner {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  
  .spb-bot-row {
    display: flex;
    align-items: center;
    width: 100%;
  }
  
  .spb-bot-row-options {
    justify-content: space-between;
  }
  
  .spb-bot-row-actions {
    gap: 10px;
  }
  
  /* Swatches Col */
  .spb-bot-swatches-col {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    max-width: 130px;
    overflow: hidden;
  }
  
  .spb-bot-swatches {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
    padding: 4px 2px;
    margin: -4px 0;
  }
  .spb-bot-swatches::-webkit-scrollbar {
    display: none;
  }
  
  .spb-bot-swatch {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    min-width: 32px;
    border-radius: 6px;
    border: 1.5px solid var(--line);
    padding: 2px;
    cursor: pointer;
    background: #fff;
    transition: border-color 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
  }
  
  .spb-bot-swatch img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
  }
  
  .spb-bot-swatch.active {
    border-color: var(--green);
    border-width: 2px;
    box-shadow: 0 0 0 1.5px var(--green);
  }
  
  /* Divider */
  .spb-bot-divider {
    border-left: 1.5px solid var(--line);
    height: 24px;
    margin: 0 12px;
    flex-shrink: 0;
  }
  
  /* Sizes Col */
  .spb-bot-sizes-col {
    flex-grow: 1;
    min-width: 0;
    overflow: hidden;
  }
  
  .spb-bot-sizes {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  
  .spb-bot-sizes::-webkit-scrollbar {
    display: none;
  }
  
  .spb-bot-size-opt {
    flex-shrink: 0;
    padding: 6px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--ink);
    background: #f7f9f6;
    cursor: pointer;
    transition: all 0.15s;
  }
  
  .spb-bot-size-opt:hover {
    border-color: var(--green-light);
    background: var(--green-soft);
  }
  
  .spb-bot-size-opt.active {
    border-color: var(--green);
    background: var(--green);
    color: #ffffff;
  }
  
  /* Actions Row */
  .spb-bot-qty {
    display: flex;
    align-items: center;
    background: #f4f6f3;
    border-radius: 20px;
    overflow: hidden;
    height: 40px;
    padding: 0 4px;
    flex-shrink: 0;
  }
  
  .spb-bot-qty button {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    font-size: 16px;
    font-weight: 700;
    color: var(--ink);
    background: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  }
  
  .spb-bot-qty button:hover {
    background: var(--green-soft);
  }
  
  .spb-bot-qty input {
    width: 34px;
    height: 100%;
    text-align: center;
    border: none;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    color: var(--ink);
    background: transparent;
  }
  
  .spb-bot-qty input:focus {
    outline: none;
  }
  
  .spb-bot-add {
    flex-grow: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--green);
    color: #fff;
    height: 40px;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 800;
    box-shadow: 0 4px 12px rgba(47, 125, 50, 0.15);
    transition: background 0.2s, transform 0.2s;
    cursor: pointer;
    border: none;
  }
  
  .spb-bot-add:hover {
    background: var(--green-dark);
  }
  
  .spb-bot-add:active {
    transform: translateY(1px);
  }
}

/* ============ XIXA CUSTOM DIALOG ============ */
.xixa-dialog-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.xixa-dialog-overlay.active {
  opacity: 1;
  visibility: visible;
}

.xixa-dialog-box {
  background: #ffffff;
  padding: 36px 28px 28px;
  border-radius: 24px;
  max-width: 420px;
  width: 90%;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
  transform: scale(0.9);
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
  position: relative;
}

.xixa-dialog-overlay.active .xixa-dialog-box {
  transform: scale(1);
}

.xixa-dialog-icon {
  width: 72px;
  height: 72px;
  background: #f0fdf4; /* Soft green */
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px auto;
  border: 1px solid var(--green-light);
}

.xixa-dialog-icon img {
  width: 36px;
  height: 36px;
}

.xixa-dialog-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 10px;
}

.xixa-dialog-desc {
  font-size: 15px;
  color: #4b5563;
  line-height: 1.55;
  margin-bottom: 28px;
}

.xixa-dialog-buttons {
  display: flex;
  gap: 12px;
  justify-content: center;
}

.xixa-dialog-btn {
  padding: 12px 28px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  border: none;
  transition: background-color 0.15s, transform 0.1s;
  min-width: 110px;
  font-family: inherit;
}

.xixa-dialog-btn:active {
  transform: scale(0.96);
}

.xixa-dialog-btn.btn-confirm {
  background: var(--green);
  color: #ffffff;
}

.xixa-dialog-btn.btn-confirm:hover {
  background: var(--green-deep);
}

.xixa-dialog-btn.btn-cancel {
  background: #f3f4f6;
  color: #4b5563;
}

.xixa-dialog-btn.btn-cancel:hover {
  background: #e5e7eb;
}

/* ===================================================================
   TRANG "SẢN PHẨM MỚI RA MẮT" (collection)
=================================================================== */
.collection { background: #fff; padding: 18px 0 0; }
.collection .container { max-width: 1700px; }

/* ===================================================================
   PAGE HERO BANNER (full-width banner + white text) — dùng cho
   trang Sản phẩm mới, Giày chân bẹt, Sale
=================================================================== */
.page-hero {
  position: relative;
  width: 100%;
  aspect-ratio: 4500 / 688;
  min-height: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: stretch;
  overflow: hidden;
}
/* Rotating slides layer (admin-managed banners) */
.page-hero-slides {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.page-hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity .8s ease;
}
.page-hero-slide.active {
  opacity: 1;
}
.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.30) 32%, rgba(0,0,0,.06) 62%, rgba(0,0,0,0) 100%);
  z-index: 1;
}
.page-hero .container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: none;
  padding: 24px 48px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
}
.page-hero-breadcrumb {
  font-size: 15px;
  font-weight: 500;
  color: rgba(255,255,255,.95);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px !important;
  line-height: 1;
}
.page-hero-breadcrumb a {
  color: rgba(255,255,255,.95);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  line-height: 1;
}
.page-hero-breadcrumb .bc-home { 
  flex-shrink: 0; 
  color: #fff;
  width: 17px !important;
  height: 17px !important;
  display: block;
  transform: translateY(-1px) !important;
}
.page-hero-breadcrumb a:hover { color: #fff; }
.page-hero-breadcrumb .sep { 
  opacity: .7; 
  display: inline-flex;
  align-items: center;
  line-height: 1;
  margin: 0;
}
.page-hero-title {
  font-size: 38px;
  font-weight: 800;
  color: #fff;
  margin: 0;
  letter-spacing: .2px;
  text-shadow: 0 2px 14px rgba(0,0,0,.38);
}

@media (max-width: 768px) {
  .page-hero {
    aspect-ratio: auto;
    min-height: 150px;
  }
  .page-hero .container {
    padding: 16px 18px;
    gap: 8px;
  }
  .page-hero-breadcrumb { font-size: 13px; }
  .page-hero-title { font-size: 24px; }
}

.col-breadcrumb {
  font-size: 15px; color: var(--muted, #6b7280); font-weight: 500;
  display: flex; align-items: center; gap: 4px !important; padding: 10px 0 18px;
  line-height: 1;
}
.col-breadcrumb a { color: var(--muted, #6b7280); text-decoration: none; display: inline-flex; align-items: center; gap: 4px; line-height: 1; }
.col-breadcrumb .bc-home { flex-shrink: 0; color: var(--ink, #1f2421); width: 17px !important; height: 17px !important; display: block; transform: translateY(-1px) !important; }
.col-breadcrumb a:hover { color: var(--green-deep); }
.col-breadcrumb .sep { opacity: .5; display: inline-flex; align-items: center; line-height: 1; margin: 0; }

.col-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap; margin-bottom: 22px;
  padding: 14px 0;
  border-top: 1px solid var(--line, #e5e7eb);
  border-bottom: 1px solid var(--line, #e5e7eb);
}
.col-title { font-size: 28px; font-weight: 800; color: var(--ink, #1f2421); margin: 0; }
.col-count { margin: 0; font-size: 14px; color: var(--muted, #6b7280); }

/* Thanh lọc kiểu tối giản (text, không viền) — trang Sản phẩm mới */
.collection .col-tools { gap: 0; align-items: center; }
.collection .col-tools .custom-select-trigger {
  border: none; background: transparent; box-shadow: none;
  height: auto; min-width: 0; width: auto; padding: 0 18px 0 0;
  font-size: 14px; font-weight: 600; color: var(--gray, #606161);
}
.collection .col-tools .custom-select-trigger:hover {
  border-color: transparent; background: transparent; color: var(--green-deep);
}
.collection .col-tools .filter-toggle-btn {
  border: none; border-left: 1.5px solid var(--line, #e5e7eb);
  background: transparent; box-shadow: none; border-radius: 0;
  padding: 0 0 0 18px; font-size: 14px; font-weight: 600;
  color: var(--gray, #606161);
}
.collection .col-tools .filter-toggle-btn:hover {
  border-color: var(--line, #e5e7eb); background: transparent;
  color: var(--green-deep); transform: none; box-shadow: none;
}
.collection .col-tools .filter-toggle-btn.active {
  background: transparent !important; color: var(--green-deep) !important;
  border-color: var(--line, #e5e7eb) !important;
}
.col-tools {
  display: flex;
  align-items: center;
  gap: 12px;
}
.col-select {
  position: relative;
}
.custom-select {
  position: relative;
  display: inline-block;
}
.custom-select-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1.5px solid var(--line, #e5e7eb);
  border-radius: 20px;
  padding: 0 16px;
  font-size: 13px;
  font-weight: 750;
  color: var(--gray, #606161);
  background: #fff;
  cursor: pointer;
  height: 38px;
  min-width: 190px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 6px rgba(0,0,0,0.02);
  width: 100%;
}
.custom-select-trigger:hover {
  border-color: var(--green-lime2);
  color: var(--green-deep);
  background-color: var(--green-soft);
}
.custom-select-trigger:focus {
  outline: none;
  border-color: var(--green);
}
.custom-select-trigger .arrow-icon {
  width: 12px;
  height: 12px;
  transition: transform 0.25s ease;
  stroke-width: 2.5px;
}
.custom-select.open .custom-select-trigger {
  border-color: var(--green);
  background-color: #fff;
}
.custom-select.open .arrow-icon {
  transform: rotate(180deg);
}
.custom-select-options {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  background: #fff;
  border: 1.5px solid var(--line, #e5e7eb);
  border-radius: 12px;
  box-shadow: var(--shadow-lg, 0 10px 30px rgba(0,0,0,0.08));
  min-width: 100%;
  width: max-content;
  overflow: hidden;
  z-index: 105;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
}
.custom-select.open .custom-select-options {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.custom-select-option {
  padding: 10px 16px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray, #606161);
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: left;
}
.custom-select-option:hover {
  background: var(--green-soft);
  color: var(--green-deep);
}
.custom-select-option.active {
  background: var(--green) !important;
  color: #fff !important;
  font-weight: 750;
}

.col-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.col-empty { grid-column: 1 / -1; text-align: center; color: var(--muted, #888); padding: 40px 0; }

/* Ô thiết kế (banner xen giữa lưới) */
.col-promo {
  position: relative; border-radius: 16px; overflow: hidden;
  display: block; aspect-ratio: 1 / 1.28; text-decoration: none; background: #eef2ee;
}
.col-promo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.col-promo:hover img { transform: scale(1.04); }
.col-promo .promo-overlay {
  position: absolute; inset: 0; padding: 22px; z-index: 2;
  display: flex; flex-direction: column; justify-content: flex-end;
  background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,.05) 55%, transparent);
  color: #fff;
}
.col-promo .promo-overlay h3 { margin: 0 0 6px; font-size: 22px; font-weight: 800; line-height: 1.2; }
.col-promo .promo-overlay p { margin: 0 0 10px; font-size: 13.5px; line-height: 1.5; opacity: .95; }
.col-promo .promo-link { font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.col-more-wrap { display: flex; justify-content: center; margin: 40px 0 10px; }
.col-more {
  border: 1px solid var(--green); background: var(--green); color: #fff;
  font-size: 15px; font-weight: 700; padding: 12px 40px; border-radius: 30px;
  cursor: pointer; transition: background .15s, color .15s;
}
.col-more:hover { background: var(--green-deep); border-color: var(--green-deep); }

/* Bài viết SEO danh mục */
.col-seo { background: #f6f7f5; margin-top: 50px; padding: 48px 0; }
.col-seo .container { max-width: 1500px; text-align: center; }
.col-seo-title { font-size: 22px; font-weight: 800; color: var(--ink, #1f2421); margin: 0 0 16px; }
.col-seo-body {
  font-size: 14px; line-height: 1.8; color: #4b5563; text-align: justify;
  max-height: 150px; overflow: hidden; position: relative; transition: max-height .3s ease;
}
.col-seo-body::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 110px;
  background: linear-gradient(to bottom, rgba(246,247,245,0), #f6f7f5);
  pointer-events: none; transition: opacity .3s ease;
}
.col-seo-body.open { max-height: none; }
.col-seo-body.open::after { opacity: 0; }
.col-seo-body table { max-width: 100%; border-collapse: collapse; text-align: left; }
.col-seo-body table th, .col-seo-body table td { border: 1px solid var(--line, #d8ddd6); padding: 8px 12px; vertical-align: top; }
.col-seo-body h2, .col-seo-body h3 { text-align: left; color: var(--ink, #1f2421); }
.col-seo-body ul { list-style: disc; padding-left: 22px; text-align: left; }
.col-seo-body ol { list-style: decimal; padding-left: 22px; text-align: left; }
.col-seo-body p { margin: 0 0 10px; }
.col-seo-body a { color: var(--green-deep); text-decoration: underline; }
.col-seo-toggle {
  position: relative; z-index: 1; margin-top: -46px;
  border: 1px solid var(--line, #d8ddd6); background: #fff;
  color: var(--green-deep); font-size: 14px; font-weight: 700;
  padding: 9px 28px; border-radius: 24px; cursor: pointer;
  transition: margin-top .3s ease;
}
.col-seo .container:has(.col-seo-body.open) .col-seo-toggle { margin-top: 18px; }
.col-seo-toggle:hover { background: var(--green-soft, #eef5ee); }

/* Sản phẩm đã xem */
.col-recent { padding: 50px 0 60px; }
.col-recent-title { font-size: 22px; font-weight: 800; color: var(--ink, #1f2421); margin: 0 0 22px; }

@media (max-width: 1024px) {
  .col-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .col-head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .col-title { font-size: 22px; }
  .col-tools { width: 100%; display: flex; gap: 10px; }
  .filter-toggle-btn { flex: 1; justify-content: center; }
  .col-select { flex: 1; width: auto; position: relative; }
  .custom-select-trigger { width: 100%; min-width: 0; }
  .col-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .col-promo { aspect-ratio: auto; height: 100%; }
  .col-promo .promo-overlay h3 { font-size: 17px; }
  .col-promo .promo-overlay p { display: none; }
  .col-seo { padding: 36px 0; }
  .col-seo-body table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

.pd-review-sec {
  background: #f8f9fa;
  padding-top: 50px;
  padding-bottom: 60px;
  margin: 50px auto 0;
}

/* Sao xanh lá cho toàn bộ khu vực đánh giá */
.pd-review-sec .star .star-svg { width: 16px; height: 16px; color: #d8dcd2; display: block; }
.pd-review-sec .star.on .star-svg { color: var(--green); }
.pd-review-sec .pd-stars { display: inline-flex; gap: 1px; }

/* --- Header tổng quan --- */
.rv-head {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 40px;
  align-items: center;
  background: #fff;
  border: 1px solid #eef0ea;
  border-radius: 16px;
  padding: 28px 32px;
}
.rv-score { display: flex; flex-direction: column; gap: 8px; }
.rv-score-num { font-size: 44px; font-weight: 800; line-height: 1; color: var(--ink); }
.rv-score-stars .star .star-svg { width: 22px; height: 22px; }
.rv-score-sub { font-size: 13px; color: var(--muted); }

.rv-fit-title { font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 12px; }
.rv-fit-row { display: grid; grid-template-columns: 70px 1fr 44px; align-items: center; gap: 12px; margin-bottom: 8px; }
.rv-fit-label { font-size: 13px; color: var(--muted); }
.rv-fit-track { height: 8px; border-radius: 6px; background: #eef0ea; overflow: hidden; }
.rv-fit-fill { display: block; height: 100%; border-radius: 6px; background: var(--green); }
.rv-fit-pct { font-size: 13px; font-weight: 700; color: var(--ink); text-align: right; }

/* --- Body: sidebar + danh sách --- */
.rv-body { display: grid; grid-template-columns: 220px 1fr; gap: 32px; margin-top: 24px; }

.rv-filter-title { font-size: 13px; font-weight: 700; color: var(--muted); margin-bottom: 14px; }
.rv-filter-opt {
  display: flex; align-items: center; gap: 8px;
  width: 100%; background: none; border: none; cursor: pointer;
  padding: 7px 0; text-align: left;
}
.rv-check {
  width: 16px; height: 16px; border: 1.5px solid #cdd2c6; border-radius: 4px;
  flex-shrink: 0; position: relative; transition: .15s;
}
.rv-filter-opt.on .rv-check { background: var(--green); border-color: var(--green); }
.rv-filter-opt.on .rv-check::after {
  content: ""; position: absolute; left: 4.5px; top: 1px; width: 4px; height: 8px;
  border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.rv-filter-all { font-size: 14px; color: var(--ink); }
.rv-filter-count { font-size: 12px; color: var(--muted); }
.rv-filter-note { font-size: 12px; color: var(--muted); line-height: 1.5; margin-top: 14px; }

.rv-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.rv-count-label { font-size: 13px; color: var(--muted); }
.rv-sort { font-size: 13px; color: var(--muted); display: inline-flex; align-items: center; gap: 8px; }
.rv-custom-select {
  position: relative;
  display: inline-block;
}
.rv-custom-select .custom-select-trigger {
  min-width: 140px;
  height: 36px;
  border-radius: 12px;
  font-weight: 600;
  border: 1.5px solid var(--line, #e5e7eb);
  box-shadow: none;
  padding: 0 14px;
}
.rv-custom-select .custom-select-trigger:hover {
  border-color: var(--green-lime2);
  color: var(--green-deep);
  background-color: var(--green-soft);
}
.rv-custom-select.open .custom-select-trigger {
  border-color: var(--green);
}
.rv-custom-select .custom-select-options {
  border-radius: 10px;
  min-width: 100%;
}

.rv-list { display: flex; flex-direction: column; gap: 0; }
.rv-loading, .rv-empty { padding: 30px 0; text-align: center; color: var(--muted); font-size: 14px; }

.rv-item { padding: 20px 0; border-bottom: 1px solid #eef0ea; position: relative; }
.rv-item:first-child { padding-top: 0; }
.rv-item-top { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.rv-item-author { font-size: 14px; font-weight: 700; color: var(--ink); }
.rv-item-date { font-size: 12px; color: var(--muted); }
.rv-source { margin-left: auto; display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; line-height: 1; color: var(--muted); }
.rv-source img { height: 16px; width: auto; display: block; transform: translateY(-2px); }
.rv-item-stars { margin-bottom: 8px; }
.rv-item-stars .star .star-svg { width: 14px; height: 14px; }
.rv-item-meta { font-size: 13px; color: var(--muted); margin-bottom: 4px; }
.rv-item-fit { font-size: 13px; color: var(--muted); margin-bottom: 8px; }
.rv-item-fit b { color: var(--ink); font-weight: 700; }
.rv-item-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.rv-tag { font-size: 12px; color: var(--green); background: var(--green-soft, #e6f4d2); border-radius: 20px; padding: 4px 12px; }
.rv-item-comment { font-size: 14px; color: var(--ink); line-height: 1.6; margin-bottom: 10px; }
.rv-item-images { display: flex; flex-wrap: wrap; gap: 8px; }
.rv-img { width: 72px; height: 72px; padding: 0; border: none; border-radius: 10px; overflow: hidden; cursor: pointer; background: #f4f5f1; }
.rv-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

.rv-pager { display: flex; align-items: center; gap: 6px; justify-content: center; margin-top: 24px; }
.rv-page-btn {
  min-width: 36px; height: 36px; padding: 0 10px; border: 1px solid #e3e6dd; border-radius: 9px;
  background: #fff; color: var(--ink); font-size: 13px; cursor: pointer; transition: .15s;
}
.rv-page-btn:hover:not(:disabled) { border-color: var(--green); color: var(--green); }
.rv-page-btn.on { background: var(--green); border-color: var(--green); color: #fff; }
.rv-page-btn:disabled { opacity: .4; cursor: default; }
.rv-page-gap { color: var(--muted); padding: 0 2px; }

@media (max-width: 860px) {
  .rv-head { grid-template-columns: 1fr; gap: 24px; padding: 22px; }
  .rv-body { grid-template-columns: 1fr; gap: 20px; }
  /* Bộ lọc xếp hạng: lưới 2 cột thẳng hàng trên mobile */
  .rv-filter { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px 14px; align-items: center; }
  .rv-filter-title { grid-column: 1 / -1; margin-bottom: 4px; }
  .rv-filter-note { grid-column: 1 / -1; margin-top: 8px; }
  .rv-filter-opt { width: 100%; padding: 6px 0; }
  .rv-toolbar { flex-wrap: wrap; gap: 10px; }
}

/* An toàn: khu vực đánh giá không bao giờ rộng hơn màn hình (tránh cuộn ngang) */
.pd-review-sec { max-width: 100%; overflow-x: hidden; }
.pd-review-sec * { min-width: 0; }
.rv-fit-row { max-width: 100%; }

/* ======================= CHỨNG NHẬN AN TOÀN ======================= */
.pd-cert-container {
  padding: 8px 0;
}
.pd-cert-main {
  display: flex;
  gap: 24px;
  align-items: center;
}
.pd-cert-shield {
  flex: 0 0 95px;
  display: flex;
  justify-content: center;
}
.pd-cert-shield img {
  width: 100%;
  max-width: 85px;
  height: auto;
}
.pd-cert-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.pd-cert-badges {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}
.pd-cert-badge-btn {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  padding: 0;
  border: 2px solid transparent;
  background: none;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pd-cert-badge-btn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.pd-cert-badge-btn:hover {
  transform: scale(1.08);
}
.pd-cert-badge-btn.active {
  transform: scale(1.08);
  box-shadow: 0 0 0 3px rgba(47, 125, 50, 0.16);
  border-color: var(--green);
}
.pd-cert-desc-box {
  background: #fff;
  border: 1px solid #eef0ea;
  border-radius: 10px;
  padding: 14px 20px;
  text-align: center;
  min-height: 80px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.pd-cert-desc-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 5px;
}
.pd-cert-desc-text {
  font-size: 12.5px;
  color: var(--muted);
  line-height: 1.45;
  margin: 0;
}

@media (max-width: 768px) {
  .pd-cert-main {
    flex-direction: column;
    gap: 20px;
  }
  .pd-cert-shield {
    flex: 0 0 auto;
    width: 80px;
  }
  .pd-cert-badges {
    justify-content: center;
    gap: 10px;
  }
  .pd-cert-badge-btn {
    width: 44px;
    height: 44px;
  }
}

/* ======================= XEM THÊM MÔ TẢ ======================= */
.pd-desc-wrapper {
  position: relative;
  transition: max-height 0.4s ease-in-out;
}
.pd-desc-wrapper.limit {
  max-height: 280px;
  overflow: hidden;
}
.pd-desc-wrapper.limit.expanded {
  max-height: none;
}
.pd-desc-gradient {
  display: none;
}
.pd-desc-wrapper.limit:not(.expanded) .pd-desc-gradient {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 80px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1) 90%);
  pointer-events: none;
}
.pd-desc-more-btn {
  display: block;
  margin: 14px auto 0;
  padding: 10px 24px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--green);
  background: #fff;
  border: 1.5px solid var(--green);
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 6px rgba(47, 125, 50, 0.08);
}
.pd-desc-more-btn:hover {
  background: var(--green-soft);
  color: var(--green-deep);
}

/* Accordion Subtext */
.pd-acc-subtext {
  font-size: 13px;
  font-weight: 400;
  color: var(--muted);
}
@media (max-width: 480px) {
  .pd-acc-subtext {
    font-size: 11.5px;
  }
}

/* ==========================================================================
   BỘ LỌC ĐA NĂNG & THÔNG MINH (MULTI-FACETED FILTER STYLES)
   ========================================================================== */

/* Nút kích hoạt bộ lọc */
.filter-toggle-btn {
  border: 1.5px solid var(--line, #e5e7eb);
  color: var(--gray, #606161);
  font-weight: 750;
  border-radius: 20px;
  padding: 8px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  height: 38px;
  font-size: 13px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.02);
}
.filter-toggle-btn:hover {
  border-color: var(--green-lime2);
  color: var(--green-deep);
  background-color: var(--green-soft);
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(47, 125, 50, 0.08);
}
.filter-toggle-btn.active {
  background: var(--green) !important;
  color: #fff !important;
  border-color: var(--green) !important;
}
.filter-toggle-btn.active:hover {
  background: var(--green-dark) !important;
  border-color: var(--green-dark) !important;
}
.filter-count-badge {
  background: var(--pink);
  color: #fff;
  font-size: 10.5px;
  font-weight: 800;
  border-radius: 10px;
  padding: 0 6px;
  height: 18px;
  line-height: 18px;
  min-width: 18px;
  text-align: center;
  display: inline-block;
  margin-left: 6px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}

/* Bảng bộ lọc */
.filter-panel {
  background: #fdfefc;
  border: 1.5px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  margin-bottom: 24px;
  box-shadow: var(--shadow);
  animation: filterSlideDown 0.35s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes filterSlideDown {
  from {
    opacity: 0;
    transform: translateY(-12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.filter-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
}

.filter-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.filter-group-title {
  font-size: 13.5px;
  font-weight: 800;
  color: var(--green-deep);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1.5px solid var(--line);
  padding-bottom: 6px;
  margin-bottom: 2px;
}

.filter-options {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Các nút lựa chọn (Chips) */
.filter-chip {
  border: 1.5px solid var(--line);
  background: #fff;
  color: var(--gray);
  font-size: 13px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 20px;
  transition: all 0.2s ease;
  text-align: left;
  display: flex;
  align-items: center;
  width: 100%;
  cursor: pointer;
  line-height: 1.25;
}
.filter-chip:hover {
  border-color: var(--green-lime2);
  color: var(--green-deep);
  background: #fafdf7;
}
.filter-chip.active {
  background: var(--green-soft) !important;
  color: var(--green) !important;
  border-color: var(--green) !important;
  font-weight: 750;
  box-shadow: inset 0 1px 2px rgba(47, 125, 50, 0.05);
}

/* Lưới size */
.size-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
}
.size-grid .filter-chip {
  justify-content: center;
  text-align: center;
  padding: 6px 0;
  border-radius: 6px;
  font-weight: 700;
  font-size: 12.5px;
}

/* Flexbox màu sắc */
.color-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.color-grid .filter-chip {
  width: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  font-size: 12.5px;
  border-radius: 20px;
}
.color-swatch-circle {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.12);
  display: inline-block;
  background-size: cover;
  background-position: center;
}

/* Thanh hiển thị bộ lọc đang hoạt động */
.active-filters-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  background: var(--green-soft);
  border-radius: 12px;
  padding: 10px 18px;
  margin-bottom: 24px;
  border: 1px solid rgba(47, 125, 50, 0.08);
}
.active-filters-label {
  font-size: 12.5px;
  font-weight: 800;
  color: var(--green-deep);
}
.active-filters-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.active-filter-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  color: var(--green-deep);
  background: #fff;
  border: 1px solid var(--green-light);
  padding: 4px 10px;
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(47, 125, 50, 0.03);
}
.active-filter-tag .remove-btn {
  font-size: 14px;
  cursor: pointer;
  color: var(--pink);
  font-weight: 800;
  line-height: 1;
  display: inline-block;
  margin-left: 2px;
  transition: color 0.15s ease;
}
.active-filter-tag .remove-btn:hover {
  color: #d32f2f;
}
.clear-all-filters-btn {
  font-size: 12px;
  font-weight: 800;
  color: var(--pink);
  border-bottom: 1.5px dashed var(--pink);
  cursor: pointer;
  transition: color 0.15s;
  margin-left: auto;
  padding-bottom: 1px;
}
.clear-all-filters-btn:hover {
  color: #d32f2f;
  border-color: #d32f2f;
}

/* Responsive cho Bộ lọc */
@media (max-width: 1200px) {
  .filter-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
  }
}

@media (max-width: 768px) {
  .filter-panel {
    padding: 16px;
  }
  .filter-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
  .size-grid {
    grid-template-columns: repeat(5, 1fr);
  }
  .active-filters-bar {
    padding: 10px 14px;
    gap: 8px;
  }
  .clear-all-filters-btn {
    margin-left: 0;
    width: 100%;
    text-align: center;
    border-bottom: none;
    background: #fff;
    border: 1px solid var(--pink);
    padding: 6px 12px;
    border-radius: 16px;
    margin-top: 4px;
  }
  .clear-all-filters-btn:hover {
    background: #fdf2f2;
  }
}

@media (max-width: 480px) {
  .filter-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .size-grid {
    grid-template-columns: repeat(6, 1fr);
  }
}

/* ============ GÓC GIA ĐÌNH (FAMILY CORNER) ============ */
.family-corner {
  padding-bottom: 20px;
}

/* Hero Banner */
.fc-hero-banner {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  height: 340px;
  margin-bottom: 40px;
  background: #eef2ee;
}
.fc-hero-banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.fc-hero-overlay {
  position: absolute;
  inset: 0;
  padding: 48px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.75) 30%, rgba(0, 0, 0, 0.3) 70%, transparent);
  color: #ffffff;
}
.fc-hero-title {
  font-size: 38px;
  font-weight: 900;
  margin-bottom: 12px;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.fc-hero-subtitle {
  font-size: 16px;
  max-width: 500px;
  line-height: 1.6;
  opacity: 0.92;
}

/* Layout Grid */
.fc-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 40px;
  align-items: start;
}

/* Section Header */
.fc-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  gap: 16px;
}
.fc-section-title {
  font-size: 24px;
  font-weight: 800;
  color: var(--green-deep);
  letter-spacing: -0.01em;
}
.fc-search-box {
  position: relative;
  display: flex;
  align-items: center;
  width: 240px;
}
.fc-search-ic {
  position: absolute;
  left: 14px;
  width: 16px;
  height: 16px;
  color: var(--muted);
  pointer-events: none;
}
.fc-search-box input {
  width: 100%;
  padding: 10px 14px 10px 38px;
  border-radius: 9999px;
  border: 1px solid var(--line);
  font-size: 13.5px;
  background: #fcfdfc;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.fc-search-box input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(47, 125, 50, 0.15);
  background: #fff;
}

/* Posts Grid */
.fc-posts-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.fc-post-card {
  background: #ffffff;
  border-radius: 16px;
  border: 1px solid var(--line);
  overflow: hidden;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s;
}
.fc-post-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 30px rgba(31, 71, 35, 0.08);
}
.fc-post-thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #f7f9f6;
  border-bottom: 1px solid var(--line);
}
.fc-post-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.fc-post-card:hover .fc-post-thumb img {
  transform: scale(1.04);
}
.fc-post-body {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.fc-post-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.fc-post-date {
  margin-bottom: 0;
}
.fc-post-author {
  font-size: inherit;
  color: inherit;
}
.fc-post-author strong {
  font-weight: 600;
}
.fc-post-views {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.fc-post-title {
  font-size: 16px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.4;
  margin-bottom: 10px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.fc-post-summary {
  font-size: 13.5px;
  color: var(--muted);
  line-height: 1.5;
  margin-bottom: 16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.fc-post-foot {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.fc-post-more {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--green);
  transition: color 0.15s;
}
.fc-post-card:hover .fc-post-more {
  color: var(--green-lime);
}

/* Sidebar Widgets */
.fc-sidebar-box {
  background: #fcfdfc;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 24px;
  margin-bottom: 24px;
}
.fc-side-title {
  font-size: 18px;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 20px;
  border-left: 4px solid var(--green);
  padding-left: 12px;
  line-height: 1.15;
}

/* Accordion FAQ */
.fc-faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.fc-faq-item {
  border-bottom: 1px solid var(--line);
  padding-bottom: 12px;
}
.fc-faq-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.fc-faq-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  text-align: left;
  padding: 8px 0;
  font-weight: 700;
  font-size: 14.5px;
  color: var(--ink);
  gap: 12px;
  cursor: pointer;
  justify-content: space-between;
}
.fc-faq-num {
  font-family: inherit;
  font-size: 14px;
  font-weight: 800;
  color: var(--green);
  background: var(--green-soft);
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  flex-shrink: 0;
}
.fc-faq-q {
  flex-grow: 1;
  line-height: 1.4;
  text-align: justify;
}
.fc-faq-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #f3f4f6;
  color: #6b7280;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  flex-shrink: 0;
}
.fc-faq-arrow svg {
  width: 12px;
  height: 12px;
  display: block;
}
.fc-faq-item.open .fc-faq-arrow {
  background: var(--green-soft);
  color: var(--green);
  transform: rotate(180deg);
}
.fc-faq-trigger:hover .fc-faq-arrow {
  background: var(--green-soft);
  color: var(--green);
}
.fc-faq-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out;
}
.fc-faq-inner {
  padding: 8px 0 8px 38px;
  font-size: 13.5px;
  line-height: 1.6;
  color: #4b5563;
  text-align: justify;
}
.fc-faq-more-btn-wrap {
  margin-top: 12px;
  display: flex;
}
.fc-faq-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--green);
  background: var(--green-soft);
  padding: 6px 14px;
  border-radius: 20px;
  text-decoration: none;
  transition: all 0.2s ease;
}
.fc-faq-more-btn:hover {
  background: var(--green);
  color: #fff;
}

/* Sidebar Vertical Promo Banner */
.fc-side-promo {
  position: relative;
  display: block;
  border-radius: 20px;
  overflow: hidden;
  aspect-ratio: 1 / 1.35;
  background: #f7f9f6;
  border: 1px solid var(--line);
}
.fc-side-promo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.fc-side-promo:hover img {
  transform: scale(1.04);
}
.fc-side-promo-overlay {
  position: absolute;
  inset: 0;
  padding: 24px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 60%, transparent);
  color: #ffffff;
}
.fc-side-promo-overlay h3 {
  font-size: 20px;
  font-weight: 800;
  margin-bottom: 6px;
  line-height: 1.25;
}
.fc-side-promo-overlay p {
  font-size: 13px;
  line-height: 1.5;
  opacity: 0.9;
}

/* Pagination */
.fc-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 40px;
  margin-bottom: 20px;
}
.fc-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 600;
  color: var(--muted);
  background: #f7f9f6;
  border: 1px solid var(--line);
  transition: all 0.2s ease;
  cursor: pointer;
  user-select: none;
}
.fc-page-btn:hover {
  background: var(--green-soft);
  color: var(--green);
  border-color: var(--green);
}
.fc-page-btn.active {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
}
.fc-page-btn.disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}
.fc-page-ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  font-size: 14px;
  font-weight: 600;
  color: var(--muted);
  user-select: none;
}
.fc-page-btn.nav-btn {
  border-radius: 20px;
  width: auto;
  padding: 0 16px;
}
.fc-sidebar-box .fc-pagination {
  margin-top: 24px;
  margin-bottom: 8px;
  gap: 6px;
}
.fc-sidebar-box .fc-page-btn {
  width: 32px;
  height: 32px;
  font-size: 13px;
}
.fc-sidebar-box .fc-page-ellipsis {
  width: 32px;
  height: 32px;
  font-size: 13px;
}
.fc-sidebar-box .fc-page-btn.nav-btn {
  padding: 0 10px;
  border-radius: 16px;
}

/* Slide Transition Animations */
.fc-posts-grid, .fc-faq-list {
  transition: opacity 0.25s ease, transform 0.25s ease;
  opacity: 1;
  transform: translateX(0);
}
.fc-posts-grid.slide-out, .fc-faq-list.slide-out {
  opacity: 0;
  transform: translateX(-20px);
}
.fc-posts-grid.slide-in, .fc-faq-list.slide-in {
  opacity: 0;
  transform: translateX(20px);
}

/* Blog detail subscription box */
.bv-subscribe-section {
  margin-top: 40px;
  margin-bottom: 20px;
}
.bv-subscribe-card {
  background: var(--green-soft);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 32px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  box-shadow: var(--shadow);
  position: relative;
  overflow: hidden;
}
.bv-subscribe-card::before {
  content: "";
  position: absolute;
  top: -50px;
  right: -50px;
  width: 150px;
  height: 150px;
  background: radial-gradient(circle, rgba(47,125,50,0.08) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.bv-subscribe-info {
  flex: 1;
  max-width: 550px;
}
.bv-subscribe-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--green-deep);
  margin-bottom: 8px;
}
.bv-subscribe-desc {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--muted);
}
.bv-subscribe-form {
  display: flex;
  gap: 12px;
  width: 100%;
  max-width: 480px;
  flex-shrink: 0;
}
.bv-subscribe-form input {
  flex: 1;
  height: 48px;
  border-radius: 24px;
  border: 1px solid var(--line);
  background: #ffffff;
  padding: 0 20px;
  font-family: inherit;
  font-size: 13.5px;
  color: var(--ink);
  transition: all 0.3s ease;
  outline: none;
}
.bv-subscribe-form input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(47, 125, 50, 0.15);
}
.bv-subscribe-btn {
  height: 48px;
  border-radius: 24px;
  background: var(--green);
  color: #ffffff;
  font-weight: 700;
  font-size: 13.5px;
  padding: 0 28px;
  transition: all 0.3s ease;
}
.bv-subscribe-btn:hover {
  background: var(--green-deep);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(47, 125, 50, 0.2);
}
.bv-subscribe-btn:active {
  transform: translateY(0);
}
.bv-subscribe-msg {
  position: absolute;
  bottom: 8px;
  right: 40px;
  font-size: 12.5px;
  font-weight: 600;
  transition: opacity 0.3s ease;
}
.bv-subscribe-msg.success {
  color: var(--green-deep);
}
.bv-subscribe-msg.error {
  color: var(--pink);
}

@media (max-width: 991px) {
  .bv-subscribe-card {
    flex-direction: column;
    align-items: stretch;
    padding: 24px;
    gap: 20px;
  }
  .bv-subscribe-info {
    max-width: 100%;
  }
  .bv-subscribe-form {
    max-width: 100%;
  }
  .bv-subscribe-msg {
    position: static;
    margin-top: 10px;
    text-align: left;
  }
}
@media (max-width: 767px) {
  .bv-subscribe-form {
    flex-direction: column;
    gap: 10px;
  }
  .bv-subscribe-form input {
    flex: none;
    width: 100%;
    height: 48px;
  }
  .bv-subscribe-btn {
    width: 100%;
  }
}

/* Success Modal Popup */
.bv-success-modal {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.bv-success-modal.active {
  opacity: 1;
  pointer-events: auto;
}
.bv-success-overlay {
  position: absolute;
  inset: 0;
  background: rgba(31, 71, 35, 0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.bv-success-box {
  position: relative;
  background: #ffffff;
  width: 90%;
  max-width: 440px;
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  padding: 40px 32px 32px 32px;
  z-index: 3002;
  text-align: center;
  transform: scale(0.9);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.bv-success-modal.active .bv-success-box {
  transform: scale(1);
}
.bv-success-close {
  position: absolute;
  top: 16px;
  right: 16px;
  font-size: 24px;
  color: var(--muted);
  cursor: pointer;
  line-height: 1;
  transition: color 0.2s;
  background: none;
  border: none;
}
.bv-success-close:hover {
  color: var(--pink);
}
.bv-success-bear-wrap {
  width: 110px;
  height: 110px;
  margin: 0 auto 20px auto;
  background: var(--green-soft);
  border-radius: 50%;
  padding: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(47, 125, 50, 0.15);
}
.bv-success-bear-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.bv-success-body h3 {
  font-size: 20px;
  font-weight: 800;
  color: var(--green-deep);
  margin-bottom: 12px;
}
.bv-success-body p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted);
  margin-bottom: 24px;
}
.bv-success-btn {
  height: 44px;
  border-radius: 22px;
  background: var(--green);
  color: #ffffff;
  font-weight: 700;
  font-size: 14px;
  padding: 0 36px;
  border: none;
  transition: all 0.3s ease;
  width: 100%;
}
.bv-success-btn:hover {
  background: var(--green-deep);
  box-shadow: 0 4px 12px rgba(47, 125, 50, 0.2);
}

/* Article Reader Lightbox */
.fc-reader-modal {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.fc-reader-modal.active {
  opacity: 1;
  pointer-events: auto;
}
.fc-reader-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.fc-reader-box {
  position: relative;
  background: #ffffff;
  width: 90%;
  max-width: 900px;
  height: 85%;
  border-radius: 24px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  transform: translateY(30px);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.fc-reader-modal.active .fc-reader-box {
  transform: translateY(0);
}
.fc-reader-close {
  position: absolute;
  top: 20px;
  right: 24px;
  font-size: 32px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  color: var(--ink);
  cursor: pointer;
  z-index: 10;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  transition: background-color 0.2s, transform 0.2s;
  border: 1px solid var(--line);
}
.fc-reader-close:hover {
  background: #fff;
  transform: scale(1.05);
}
.fc-reader-content {
  padding: 48px;
  overflow-y: auto;
  flex-grow: 1;
  scrollbar-width: thin;
}
.fc-reader-header {
  margin-bottom: 24px;
  text-align: center;
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
}
.fc-reader-date {
  font-size: 13px;
  font-weight: 700;
  color: var(--green);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: block;
  margin-bottom: 8px;
}
.fc-reader-header h1 {
  font-size: 30px;
  font-weight: 900;
  color: var(--ink);
  line-height: 1.25;
  margin-bottom: 14px;
}
.fc-reader-lead {
  font-size: 16px;
  line-height: 1.6;
  color: var(--muted);
  font-weight: 500;
}
.fc-reader-hero {
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 32px;
  max-height: 420px;
  border: 1px solid var(--line);
}
.fc-reader-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.fc-reader-body {
  font-size: 16.5px;
  line-height: 1.8;
  color: #374151;
  text-align: justify;
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
}
.fc-reader-body h2, .fc-reader-body h3 {
  color: var(--ink);
  font-weight: 800;
  margin: 28px 0 14px 0;
  text-align: left;
}
.fc-reader-body h2 { font-size: 22px; }
.fc-reader-body h3 { font-size: 19px; }
.fc-reader-body p {
  margin-bottom: 18px;
}
.fc-reader-body ul, .fc-reader-body ol {
  margin-bottom: 18px;
  padding-left: 24px;
}
.fc-reader-body ul { list-style: disc; }
.fc-reader-body ol { list-style: decimal; }
.fc-reader-body li {
  margin-bottom: 8px;
}
.fc-reader-body blockquote {
  border-left: 4px solid var(--green);
  padding: 8px 20px;
  background: var(--green-soft);
  margin: 20px 0;
  font-style: italic;
  border-radius: 0 12px 12px 0;
}

/* ============ RESPONSIVE GÓC GIA ĐÌNH ============ */
@media (max-width: 991px) {
  .fc-hero-banner {
    height: 240px;
    margin-bottom: 28px;
  }
  .fc-hero-overlay {
    padding: 24px;
  }
  .fc-hero-title {
    font-size: 26px;
    margin-bottom: 8px;
  }
  .fc-hero-subtitle {
    font-size: 13.5px;
  }
  .fc-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .fc-sidebar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  .fc-sidebar-box {
    margin-bottom: 0;
  }
  .fc-side-promo {
    aspect-ratio: auto;
    height: 100%;
  }
}

@media (max-width: 768px) {
  .fc-section-head {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .fc-search-box {
    width: 100%;
  }
  .fc-posts-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .fc-sidebar {
    grid-template-columns: 1fr;
  }
  .fc-reader-box {
    width: 95%;
    height: 90%;
  }
  .fc-reader-content {
    padding: 24px;
  }
  .fc-reader-header h1 {
    font-size: 22px;
  }
  .fc-reader-lead {
    font-size: 14px;
  }
  .fc-reader-body {
    font-size: 15px;
  }
}

/* ==========================================================================
   NEW BLOG POST LAYOUT & DETAILS
   ========================================================================== */

.bv-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 40px;
  margin-top: 24px;
  align-items: start;
}

.bv-content-col {
  min-width: 0; /* cho phép cột co lại, tránh tràn ngang khi có nội dung rộng (sản phẩm nhúng) */
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.02);
  padding: 32px;
  border: 1px solid var(--line);
}

/* Chặn mọi nội dung nhúng vượt quá chiều rộng cột bài viết */
.bv-html-content { min-width: 0; overflow-wrap: break-word; }
.bv-html-content img,
.bv-html-content table,
.bv-html-content iframe { max-width: 100%; }

.bv-title {
  font-size: 30px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.35;
  margin: 0 0 16px;
  letter-spacing: -0.02em;
}

.bv-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: center;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 24px;
}

.bv-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
  color: var(--muted);
}

.bv-meta-label {
  color: #777;
}

.bv-meta-ic {
  width: 16px;
  height: 16px;
  color: var(--muted);
}

.bv-featured-image-wrap {
  width: 100%;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 28px;
  border: 1px solid var(--line);
}

.bv-featured-image-wrap img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  max-height: 480px;
}

/* Post body HTML styling */
.bv-html-content {
  font-size: 16.5px;
  line-height: 1.75;
  color: #333333;
}

.bv-html-content p {
  margin-bottom: 18px;
  text-align: justify;
}

.bv-html-content h2 {
  font-size: 22px;
  font-weight: 800;
  color: var(--ink);
  margin: 36px 0 16px;
  padding-left: 12px;
  border-left: 4px solid var(--green);
  line-height: 1.3;
}

.bv-html-content h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--green-deep);
  margin: 28px 0 12px;
  line-height: 1.35;
}

.bv-html-content img {
  max-width: 100% !important;
  height: auto !important;
  border-radius: 12px;
  margin: 20px auto;
  display: block;
  box-shadow: 0 4px 15px rgba(0,0,0,0.04);
}

.bv-html-content figure,
.bv-html-content .wp-caption {
  max-width: 100% !important;
  width: auto !important;
  margin: 20px auto;
}

.bv-html-content figure img,
.bv-html-content .wp-caption img {
  max-width: 100% !important;
  width: 100% !important;
  height: auto !important;
  border-radius: 12px;
}

.bv-html-content figcaption,
.bv-html-content .wp-caption-text {
  text-align: center;
  font-size: 14px;
  color: var(--muted);
  margin-top: 8px;
  font-style: italic;
}

.bv-html-content blockquote {
  border-left: 4px solid var(--green-soft);
  background: var(--bg-soft);
  padding: 16px 20px;
  margin: 24px 0;
  border-radius: 0 12px 12px 0;
  font-style: italic;
  color: #555555;
}

.bv-html-content table {
  display: block;
  width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  margin: 24px 0;
  font-size: 15px;
  -webkit-overflow-scrolling: touch;
}

.bv-html-content th, .bv-html-content td {
  border: 1px solid var(--line);
  padding: 12px 16px;
  text-align: left;
}

.bv-html-content th {
  background: var(--bg-soft);
  font-weight: 700;
  color: var(--ink);
}

.bv-html-content ul, .bv-html-content ol {
  margin: 0 0 20px 24px;
}

.bv-html-content li {
  margin-bottom: 8px;
}

/* Sidebar TOC */
.bv-sidebar-col {
  position: sticky;
  top: 110px;
}

.bv-toc-card {
  background: #ffffff;
  border-radius: 16px;
  border: 1px solid var(--line);
  padding: 24px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.02);
}

.bv-toc-head {
  font-size: 16.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ink);
  margin: 0 0 16px 0;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.bv-toc-list {
  list-style: none;
  padding: 0 12px 0 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 420px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--green-soft, #e2e8df) #f7f9f4;
}

.bv-toc-list::-webkit-scrollbar {
  width: 5px;
}

.bv-toc-list::-webkit-scrollbar-track {
  background: #f7f9f4;
  border-radius: 4px;
}

.bv-toc-list::-webkit-scrollbar-thumb {
  background: var(--green-soft, #e2e8df);
  border-radius: 4px;
}

.bv-toc-list::-webkit-scrollbar-thumb:hover {
  background: var(--green, #2f7d32);
}

.bv-toc-list li a {
  display: block;
  font-size: 14px;
  color: #555555;
  text-decoration: none;
  line-height: 1.4;
  transition: color 0.2s, padding-left 0.2s;
}

.bv-toc-list li.toc-h3 {
  padding-left: 14px;
  font-size: 13px;
}

.bv-toc-list li.toc-h3 a {
  color: #777777;
}

.bv-toc-list li a:hover {
  color: var(--green);
  padding-left: 4px;
}

/* Embedded Product Card */
.embedded-product-placeholder {
  margin: 28px 0;
}

.eb-prod-card {
  display: flex;
  align-items: flex-start;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 16px;
  gap: 20px;
  box-shadow: 0 6px 24px rgba(31, 36, 33, 0.04);
  transition: transform 0.3s, box-shadow 0.3s;
  max-width: 100%;
}

.eb-prod-card:hover {
  box-shadow: 0 8px 30px rgba(0,0,0,0.05);
}

.eb-prod-img-wrap {
  position: relative;
  align-self: center; /* ảnh sản phẩm căn giữa theo chiều dọc */
  flex: 0 0 190px;
  width: 190px;
  height: 190px;
  background: var(--green-soft, #e6f4d2);
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px;
}

/* Badge "MỚI VÀ CẢI TIẾN" nằm trong ảnh sản phẩm */
.eb-badge-overlay {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}

.eb-prod-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: transform 0.3s;
}

.eb-prod-card:hover .eb-prod-img {
  transform: scale(1.05);
}

.eb-prod-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.eb-prod-meta-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.eb-prod-badge {
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  background: var(--green);
  color: #ffffff;
  padding: 4px 10px;
  border-radius: 100px;
  letter-spacing: 0.06em;
}

.eb-prod-discount {
  font-size: 11px;
  font-weight: 700;
  color: #ffffff;
  background: #d32f2f;
  padding: 3px 6px;
  border-radius: 4px;
}

.eb-prod-card .eb-prod-title {
  font-size: 18px;
  font-weight: 800;
  color: var(--ink);
  margin: 0; /* ghi đè margin tiêu đề h3 của bài viết, thu gọn khoảng trắng phía trên */
  line-height: 1.3;
}

.eb-prod-prices {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.eb-prod-price {
  font-size: 20px;
  font-weight: 800;
  color: var(--ink);
}

.eb-prod-price-old {
  font-size: 13.5px;
  text-decoration: line-through;
  color: var(--muted);
}

.eb-prod-prop {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.eb-prod-prop-label {
  font-size: 13px;
  color: #666;
  flex: 0 0 auto;
}

.eb-prod-prop-label strong {
  color: var(--ink);
  font-weight: 700;
}

.eb-prod-colors {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.eb-color-opt {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid #ffffff;
  outline: 1px solid var(--line);
  cursor: pointer;
  background-size: cover;
  background-position: center;
  transition: outline-color 0.2s, transform 0.2s;
}

.eb-color-opt:hover {
  transform: scale(1.05);
}

.eb-color-opt.active {
  outline: 2px solid var(--ink);
  outline-offset: 1px;
}

/* Chọn kích cỡ kiểu dropdown (giống trang sản phẩm) */
.eb-size-field {
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}

.eb-size-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.eb-size-header .eb-prod-prop-label {
  font-weight: 600;
  color: var(--ink);
}

.eb-size-guide {
  border: none;
  background: none;
  padding: 0;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--green);
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
  white-space: nowrap;
}

.eb-size-guide:hover {
  color: var(--green-deep);
}

/* Dropdown size trong widget nhúng (tái dùng .pd-size) */
.eb-size .pd-size-trigger {
  border-width: 1px;
  padding: 12px 16px;
  border-radius: 12px;
  font-size: 14px;
}
.eb-size .pd-size-current {
  min-width: 0;        /* cho phép cắt ellipsis, tránh tràn ngang trên mobile */
  flex: 1;
  text-align: left;
}
.eb-size .pd-size-opt {
  justify-content: space-between;
}
.eb-size .pd-size-lbl {
  font-size: 14px;
  line-height: 1.35;
}

.eb-prod-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 6px;
}

.eb-qty-selector {
  display: flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 100px;
  height: 38px;
  background: #ffffff;
  overflow: hidden;
}

.eb-qty-btn {
  width: 32px;
  height: 100%;
  border: none;
  background: none;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
}

.eb-qty-btn:hover {
  background: #f0f2f0;
}

.eb-qty-val {
  width: 28px;
  height: 100%;
  border: none;
  background: none;
  text-align: center;
  font-size: 13.5px;
  font-weight: 700;
  outline: none;
}

.eb-add-btn {
  flex: 1;
  height: 38px;
  border-radius: 100px;
  border: none;
  background: var(--green);
  color: #ffffff;
  font-weight: 700;
  font-size: 13.5px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background 0.2s;
}

.eb-add-btn:hover {
  background: var(--green-deep);
}

/* Related articles */
.bv-related-section {
  margin-top: 56px;
  border-top: 1px solid var(--line);
  padding-top: 48px;
  margin-bottom: 32px;
}

.bv-related-head {
  font-size: 22px;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 24px;
  text-align: center;
}

.bv-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.bv-related-card {
  background: #ffffff;
  border-radius: 14px;
  border: 1px solid var(--line);
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(0,0,0,0.01);
  transition: transform 0.3s, box-shadow 0.3s;
  display: flex;
  flex-direction: column;
}

.bv-related-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}

.bv-related-card-img {
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
}

.bv-related-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}

.bv-related-card:hover .bv-related-card-img img {
  transform: scale(1.04);
}

.bv-related-card-body {
  padding: 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.bv-related-card-date {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 8px;
  display: block;
}

.bv-related-card-title {
  font-size: 15.5px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.4;
  margin: 0 0 10px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  height: 44px;
}

.bv-related-card-desc {
  font-size: 13px;
  color: #666;
  line-height: 1.5;
  margin: 0 0 16px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  height: 38px;
}

.bv-related-card-footer {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  color: var(--green);
}

.bv-related-card-views {
  color: var(--muted);
  font-weight: normal;
  font-size: 12px;
}

/* RESPONSIVE MEDIA QUERIES */
@media (max-width: 1024px) {
  .bv-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .bv-sidebar-col {
    display: none;
  }
  .bv-toc-card {
    position: static;
    margin: 24px 0;
  }
  .bv-related-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .bv-content-col {
    padding: 20px;
  }
  .bv-title {
    font-size: 24px;
  }
  .eb-prod-card {
    flex-direction: column;
    align-items: stretch; /* trên mobile (cột), giãn hết chiều rộng để không tràn */
    gap: 16px;
    padding: 16px;
  }
  .eb-prod-img-wrap {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
  }
  .bv-related-grid {
    grid-template-columns: 1fr;
  }
}

/* --- Google Maps Popup Modal --- */
.map-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(8px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

.map-modal-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

.map-modal-card {
  background: #fff;
  width: 90%;
  max-width: 800px;
  height: 80%;
  max-height: 600px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
  position: relative;
  transform: translateY(30px);
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.map-modal-overlay.active .map-modal-card {
  transform: translateY(0);
}

.map-modal-header {
  padding: 16px 24px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #fff;
}

.map-modal-title {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: var(--green-deep);
}

.map-modal-close {
  background: none;
  border: none;
  font-size: 28px;
  color: var(--muted);
  cursor: pointer;
  transition: color 0.2s;
  line-height: 1;
  padding: 0;
}

.map-modal-close:hover {
  color: var(--ink);
}

.map-modal-body {
  flex-grow: 1;
  position: relative;
  background: #f4f6f3;
}

#map-canvas {
  width: 100%;
  height: 100%;
}

.map-modal-footer {
  padding: 14px 24px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: flex-end;
  background: #fff;
  gap: 12px;
}

.map-btn-direct {
  background: var(--green);
  color: #fff;
  padding: 10px 20px;
  border-radius: 30px;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background 0.2s, transform 0.2s;
}

.map-btn-direct:hover {
  background: var(--green-deep);
  transform: scale(1.02);
}

.map-btn-direct img {
  width: 16px;
  height: 16px;
  filter: brightness(0) invert(1);
}

/* ============ STYLING TRANG SALE (SHOPEE / TIKTOK STYLE BY XIXA) ============ */
.sale-page {
  padding: 24px 0 60px 0;
  background-color: #f7f9fa;
  min-height: 100vh;
}

/* 1. Countdown Flash Sale Bar */
.flash-sale-bar {
  background: linear-gradient(135deg, #ff4e50 0%, #f9d423 100%);
  color: #fff;
  border-radius: 12px;
  padding: 14px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
  box-shadow: 0 4px 15px rgba(255, 78, 80, 0.25);
  flex-wrap: wrap;
  gap: 12px;
}
.fs-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  animation: pulse-glow 1.5s infinite;
}
.fs-title svg {
  width: 20px;
  height: 20px;
  fill: #fff;
}
.fs-countdown {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  font-size: 14px;
}
.fs-countdown span {
  background: #333;
  color: #fff;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 15px;
  font-family: inherit;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
}

@keyframes pulse-glow {
  0% { transform: scale(1); filter: drop-shadow(0 0 2px rgba(255,255,255,0.6)); }
  50% { transform: scale(1.03); filter: drop-shadow(0 0 8px rgba(255,255,255,0.9)); }
  100% { transform: scale(1); filter: drop-shadow(0 0 2px rgba(255,255,255,0.6)); }
}

/* 2. Hero Carousel Banners */
.sale-hero-carousel {
  position: relative;
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 32px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.08);
  aspect-ratio: 2.8 / 1;
}
@media (max-width: 768px) {
  .sale-hero-carousel {
    aspect-ratio: 2 / 1;
  }
}
.sale-carousel-track {
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}
.sale-carousel-slide {
  min-width: 100%;
  height: 100%;
  position: relative;
}
.sale-carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.carousel-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,0.9);
  border: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  font-size: 18px;
  color: #333;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  z-index: 10;
  opacity: 0;
}
.sale-hero-carousel:hover .carousel-nav {
  opacity: 1;
}
.carousel-nav:hover {
  background: var(--green);
  color: #fff;
  transform: translateY(-50%) scale(1.1);
}
.carousel-nav.prev { left: 16px; }
.carousel-nav.next { right: 16px; }

.carousel-dots {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 10;
}
.carousel-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,0.5);
  cursor: pointer;
  transition: all 0.25s;
}
.carousel-dot.active {
  width: 24px;
  border-radius: 4px;
  background: #fff;
}

/* 3. Sale Sections */
.sale-section {
  margin-bottom: 50px;
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.03);
  border: 1px solid #f1f3f5;
}
.sale-section-banner {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 20px;
  aspect-ratio: 5 / 1;
}
@media (max-width: 768px) {
  .sale-section-banner {
    aspect-ratio: 3 / 1;
  }
}
.sale-section-banner a {
  display: block;
  width: 100%;
  height: 100%;
}
.sale-section-banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.sale-section-banner:hover img {
  transform: scale(1.025);
}

.sale-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  border-left: 4px solid var(--green);
  padding-left: 12px;
}
.sale-section-title {
  font-size: 20px;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: 0.5px;
  margin: 0;
}
.sale-section-more {
  font-size: 14px;
  color: var(--green);
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: opacity 0.2s;
}
.sale-section-more:hover {
  opacity: 0.8;
}

/* 4. Product Slider Carousel */
.sale-product-slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 4px;
}
.sale-slider-track {
  display: flex;
  gap: 20px;
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.sale-slider-track .prod-card {
  flex-shrink: 0;
  width: calc((100% - (3 * 20px)) / 4); /* default 4 cards */
  border-radius: 0;
  overflow: hidden;
  transition: all 0.3s ease;
  background: #fff;
  position: relative;
}
.sale-slider-track .prod-info {
  padding-left: 0;
  padding-right: 0;
}

@media (max-width: 1024px) {
  .sale-slider-track .prod-card {
    width: calc((100% - (2 * 20px)) / 3); /* 3 cards */
  }
}
@media (max-width: 768px) {
  .sale-slider-track .prod-card {
    width: calc((100% - (1 * 16px)) / 2); /* 2 cards */
  }
  .sale-slider-track {
    gap: 16px;
  }
  /* Chỉ trang Sale: thẻ hẹp -> cho giá xuống dòng khi thiếu chỗ,
     tránh giá cũ bị cắt lẹm ở mép thẻ (card overflow:hidden). */
  .sale-slider-track .prod-price-box {
    flex-wrap: wrap;
    row-gap: 2px;
  }
  .sale-slider-track .price-old {
    flex-shrink: 0;
    overflow: visible;
    text-overflow: clip;
  }
}

/* Navigation Arrows */
.slider-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #fff;
  color: #333;
  border: 1px solid #e9ecef;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
  transition: all 0.2s ease;
}
.slider-arrow:hover {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
}
.slider-arrow.disabled {
  opacity: 0;
  pointer-events: none;
}
.slider-arrow.prev { left: 4px; }
.slider-arrow.next { right: 4px; }

/* 5. Custom Shopee/TikTok Badge Styles inside Product Cards */
.sale-card-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background: linear-gradient(135deg, #ff4e50 0%, #f9d423 100%);
  color: #fff;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 800;
  z-index: 5;
  box-shadow: 0 2px 6px rgba(255, 78, 80, 0.3);
  text-transform: uppercase;
}
.sale-stock-bar {
  margin: 8px 0;
  position: relative;
}
.sale-stock-progress {
  width: 100%;
  height: 14px;
  background: #f3f4f6;
  border-radius: 10px;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sale-stock-fill {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  background: linear-gradient(90deg, #ff8c00, #ff4e50);
  border-radius: 10px;
  transition: width 0.5s ease;
}
.sale-stock-text {
  position: relative;
  z-index: 1;
  font-size: 9.5px;
  color: #fff;
  font-weight: bold;
  text-shadow: 0 1px 2px rgba(0,0,0,0.4);
}
.sale-buy-now-btn {
  background: var(--green);
  color: #fff;
  border: none;
  width: 100%;
  padding: 8px 12px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 10px;
}
.sale-buy-now-btn:hover {
  background: var(--green-deep);
  transform: translateY(-2px);
}

/* ==================== HOVER ACCOUNT DROPDOWN ==================== */
.account-container {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.account-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  width: 240px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  padding: 16px;
  display: none;
  z-index: 9999;
  margin-top: 8px;
  text-align: left;
}
.account-container:hover .account-dropdown,
.account-dropdown:hover {
  display: block;
}
.account-dropdown a {
  color: #475569;
  font-size: 13.5px;
  text-decoration: none;
  font-weight: 500;
  padding: 6px 0;
  display: block;
  transition: color 0.2s;
}
.account-dropdown a:hover {
  color: var(--green, #5f8a00);
}
.account-dropdown::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 0;
  right: 0;
  height: 12px;
  background: transparent;
}

/* ==================== MY ACCOUNT PAGE REDESIGN ==================== */
.acc-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 16px;
}
.acc-header h1 {
  font-size: 24px;
  font-weight: 800;
  color: #1e293b;
  margin: 0;
}
.acc-header-sub {
  font-size: 14px;
  color: #64748b;
  margin: 4px 0 0;
}
.acc-logout-btn {
  background: transparent;
  color: #ef4444;
  border: 1.5px solid #ef4444;
  padding: 8px 16px;
  border-radius: 8px;
  font-weight: 700;
  cursor: pointer;
  font-size: 13px;
  transition: all 0.2s;
}
.acc-logout-btn:hover {
  background: #fef2f2;
}
.acc-logout-mobile {
  display: none !important;
}
.acc-user-info-row {
  display: flex;
  align-items: center;
  gap: 16px;
}

.acc-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  padding: 24px;
  margin-bottom: 24px;
}
.acc-card-title {
  font-size: 16px;
  font-weight: 800;
  color: #1e293b;
  margin: 0 0 16px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.acc-grid-layout {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 24px;
}
@media (max-width: 900px) {
  .acc-grid-layout {
    grid-template-columns: 1fr;
  }
}

.acc-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 16px;
}

.acc-save-btn {
  background: #1e293b;
  color: #ffffff;
  border: none;
  padding: 12px 24px;
  border-radius: 8px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13.5px;
  transition: opacity 0.2s;
  margin-top: 20px;
}
.acc-save-btn:hover {
  opacity: 0.9;
}

/* VOUCHERS LIST */
.acc-voucher-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 380px;
  overflow-y: auto;
}
.acc-voucher-empty {
  font-size: 13.5px;
  color: #64748b;
  line-height: 1.6;
  text-align: center;
  padding: 32px 16px;
  border: 1px dashed #cbd5e1;
  border-radius: 12px;
}
.acc-voucher-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #f7f9f4;
  border: 1px solid #e2e5dd;
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 13px;
}
.acc-voucher-code {
  color: var(--green, #5f8a00);
  font-weight: 800;
  font-size: 14px;
}
.acc-voucher-limit {
  font-size: 11px;
  color: #64748b;
  margin-top: 2px;
}

/* ORDERS LIST */
.acc-order-table-wrap {
  overflow-x: auto;
}
.acc-order-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
}
.acc-order-table th,
.acc-order-table td {
  padding: 12px 16px;
  text-align: left;
  border-bottom: 1px solid #f1f5f9;
}
.acc-order-table th {
  color: #64748b;
  font-weight: 700;
  background: #f8fafc;
}
.acc-order-status-badge {
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
}
.acc-order-status-badge.new {
  background: rgba(95,138,0,0.1);
  color: var(--green, #5f8a00);
}
.acc-order-status-badge.other {
  background: #f1f5f9;
  color: #475569;
}

/* ==================== LOADING SPINNER ANIMATION ==================== */
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* ==================== CỘNG ĐỒNG BỐ MẸ ==================== */
.community-page { padding-bottom: 60px; }

.cm-hero {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  height: 260px;
  margin-bottom: 28px;
  box-shadow: 0 12px 34px rgba(47,125,50,.16);
}
.cm-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cm-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(20,60,22,.82) 0%, rgba(20,60,22,.45) 55%, rgba(20,60,22,.08) 100%);
  display: flex; flex-direction: column; justify-content: center;
  padding: 0 46px; color: #fff;
}
.cm-hero-title { font-size: 34px; font-weight: 900; margin: 0 0 10px; letter-spacing: .3px; }
.cm-hero-subtitle { font-size: 15.5px; line-height: 1.6; max-width: 560px; margin: 0; opacity: .95; }

.cm-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 40px;
  align-items: start;
}
.cm-main { min-width: 0; }

/* ----- Ô đăng bài ----- */
.cm-composer {
  background: #fff;
  border: 1px solid var(--line, #e6eae3);
  border-radius: 18px;
  padding: 18px;
  margin-bottom: 24px;
  box-shadow: 0 4px 18px rgba(20,40,20,.05);
}
.cm-composer-top { display: flex; gap: 12px; align-items: flex-start; }
.cm-avatar {
  width: 46px; height: 46px; border-radius: 50%;
  object-fit: cover; border: 1px solid #d8e2d4; background: #f4f7f2; flex-shrink: 0;
}
.cm-avatar-sm { width: 36px; height: 36px; }
.cm-post-input {
  flex: 1; border: none; outline: none; resize: none;
  font-family: inherit; font-size: 15px; line-height: 1.55; color: #223;
  background: #f4f7f2; border-radius: 14px; padding: 12px 14px; min-height: 46px;
}
.cm-post-input:focus { background: #eef4ea; box-shadow: 0 0 0 2px rgba(47,125,50,.18); }

.cm-post-preview { position: relative; margin: 12px 0 0 58px; max-width: 320px; }
.cm-post-preview img { width: 100%; border-radius: 12px; display: block; }
.cm-preview-remove {
  position: absolute; top: 8px; right: 8px; width: 28px; height: 28px;
  border-radius: 50%; border: none; background: rgba(0,0,0,.6); color: #fff;
  font-size: 20px; line-height: 1; cursor: pointer; display: grid; place-items: center;
}
.cm-composer-actions {
  display: flex; align-items: center; justify-content: space-between;
  margin: 14px 0 0 58px; gap: 12px;
}
.cm-attach-btn {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 14px; border-radius: 20px; cursor: pointer;
  background: #f0f5ec; color: var(--green, #2f7d32); font-weight: 700; font-size: 13.5px;
  border: 1px solid transparent; transition: .18s;
}
.cm-attach-btn:hover { background: #e4efdc; border-color: #cfe3c2; }
.cm-attach-btn svg { width: 18px; height: 18px; }
.cm-post-btn {
  background: var(--green, #2f7d32); color: #fff; border: none;
  padding: 10px 24px; border-radius: 22px; font-weight: 800; font-size: 14px;
  cursor: pointer; transition: .18s; white-space: nowrap;
}
.cm-post-btn:hover { background: #276b2a; transform: translateY(-1px); }
.cm-post-btn:disabled { opacity: .6; cursor: default; transform: none; }

.cm-composer.cm-admin-note, .cm-composer.cm-guest {
  display: flex; align-items: center; gap: 16px; justify-content: space-between; flex-wrap: wrap;
}
.cm-composer.cm-admin-note { border-left: 4px solid var(--green, #2f7d32); }
.cm-composer.cm-admin-note strong, .cm-composer.cm-guest strong { color: var(--green-deep, #1f5c22); font-size: 15.5px; }
.cm-composer.cm-admin-note p, .cm-composer.cm-guest p { margin: 4px 0 0; color: #55645a; font-size: 13.5px; line-height: 1.5; }
.cm-composer.cm-admin-note > div { flex: 1; min-width: 200px; }

.cm-msg { font-size: 13px; margin-top: 8px; margin-left: 58px; color: #55645a; }
.cm-msg.err { color: #d33; }
.cm-cmt-msg { margin-left: 0; }

/* ----- Bài viết ----- */
.cm-feed { display: flex; flex-direction: column; gap: 20px; }
.cm-loading, .cm-loading-sm { color: #7a8a7d; font-size: 14px; padding: 18px 4px; }
.cm-loading-sm { padding: 12px 4px; }
.cm-empty {
  position: relative; overflow: hidden;
  text-align: center; padding: 46px 20px; color: #7a8a7d;
  background: #fff; border: 1px dashed #cfe0c6; border-radius: 18px;
}
.cm-empty img {
  position: absolute; right: 0; bottom: 0;
  width: 74px; height: 74px; opacity: .85; margin: 0;
}
.cm-empty p { margin: 0; font-size: 15px; line-height: 1.6; }

.cm-post {
  background: #fff;
  border: 1px solid var(--line, #e6eae3);
  border-radius: 18px;
  padding: 18px 20px;
  box-shadow: 0 4px 18px rgba(20,40,20,.05);
}
.cm-post-head { display: flex; align-items: center; gap: 12px; }
.cm-post-meta { display: flex; flex-direction: column; line-height: 1.3; flex: 1; min-width: 0; }
.cm-post-author { font-weight: 800; color: #1e2b20; font-size: 15px; display: inline-flex; align-items: center; gap: 6px; }
.cm-post-time { font-size: 12.5px; color: #90a094; }
.cm-badge-admin {
  background: var(--green, #2f7d32); color: #fff; font-size: 10.5px; font-weight: 800;
  padding: 2px 7px; border-radius: 10px; letter-spacing: .4px; text-transform: uppercase;
}
.cm-del-post, .cm-del-comment {
  background: none; border: none; cursor: pointer; color: #b0bcb2;
  padding: 6px; border-radius: 8px; transition: .15s; flex-shrink: 0;
}
.cm-del-post svg { width: 17px; height: 17px; display: block; }
.cm-del-post:hover, .cm-del-comment:hover { color: #d33; background: #fdeceb; }
.cm-del-comment { font-size: 18px; line-height: 1; padding: 0 6px; }

.cm-post-body { margin: 12px 0 0; font-size: 15px; line-height: 1.62; color: #2a382c; white-space: normal; word-break: break-word; }
.cm-post-img { margin-top: 14px; border-radius: 14px; overflow: hidden; border: 1px solid #eef2ec; }
.cm-post-img img { width: 100%; display: block; max-height: 520px; object-fit: cover; }

.cm-post-stats {
  display: flex; gap: 16px; margin-top: 14px; padding-bottom: 10px;
  font-size: 12.5px; color: #90a094; min-height: 8px;
}
.cm-post-stats span:empty { display: none; }
.cm-comment-count { margin-left: auto; }

.cm-post-actions {
  display: flex; gap: 8px; border-top: 1px solid #f0f3ee; padding-top: 8px;
}
.cm-act {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: none; border: none; cursor: pointer; padding: 9px; border-radius: 12px;
  color: #5b6a5e; font-weight: 700; font-size: 14px; transition: .15s;
}
.cm-act:hover { background: #f2f6ee; }
.cm-act svg { width: 20px; height: 20px; }
.cm-heart { fill: none; stroke: #5b6a5e; stroke-width: 1.8px; transition: .18s; }
.cm-like-btn.liked { color: #e0245e; }
.cm-like-btn.liked .cm-heart { fill: #e0245e; stroke: #e0245e; }
.cm-comment-toggle.active { color: var(--green, #2f7d32); }

/* ----- Bình luận ----- */
.cm-comments { margin-top: 6px; border-top: 1px solid #f0f3ee; padding-top: 14px; }
.cm-comment-list { display: flex; flex-direction: column; gap: 14px; margin-bottom: 14px; }
.cm-comment { display: flex; gap: 10px; }
.cm-comment-main { flex: 1; min-width: 0; }
.cm-comment-bubble {
  background: #f4f7f2; border-radius: 14px; padding: 10px 14px; position: relative;
}
.cm-comment-admin .cm-comment-bubble { background: #eef6ea; border: 1px solid #d6e8cc; }
.cm-comment-head { display: flex; align-items: center; gap: 6px; }
.cm-comment-author { font-weight: 800; color: #1e2b20; font-size: 13.5px; display: inline-flex; align-items: center; gap: 6px; }
.cm-comment-head .cm-del-comment { margin-left: auto; }
.cm-comment-text { margin-top: 3px; font-size: 14px; line-height: 1.55; color: #2a382c; word-break: break-word; }
.cm-comment-time { font-size: 11.5px; color: #a0aea3; margin: 4px 0 0 14px; display: block; }

.cm-cmt-products { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.cm-prod {
  display: flex; gap: 12px; align-items: center; text-decoration: none;
  background: #fff; border: 1px solid #dfead7; border-radius: 12px; padding: 8px; transition: .16s;
}
.cm-prod:hover { border-color: var(--green, #2f7d32); box-shadow: 0 4px 14px rgba(47,125,50,.14); transform: translateY(-1px); }
.cm-prod img { width: 58px; height: 58px; border-radius: 10px; object-fit: cover; flex-shrink: 0; background: #f2f4f0; }
.cm-prod-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cm-prod-name { font-weight: 700; color: #1e2b20; font-size: 13.5px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cm-prod-price { font-weight: 800; color: var(--green, #2f7d32); font-size: 14px; }
.cm-prod-old { color: #a0aea3; text-decoration: line-through; font-weight: 500; font-size: 12px; margin-left: 4px; }
.cm-prod-cta { font-size: 12px; color: #e07b1a; font-weight: 700; margin-top: 1px; }

/* ----- Form bình luận ----- */
.cm-comment-form { display: flex; gap: 10px; }
.cm-comment-input-wrap { flex: 1; min-width: 0; }
.cm-comment-input {
  width: 100%; border: 1px solid #dde5d8; border-radius: 14px; padding: 10px 14px;
  font-family: inherit; font-size: 14px; line-height: 1.5; resize: none; outline: none; color: #223;
  background: #fafcf8; box-sizing: border-box;
}
.cm-comment-input:focus { border-color: var(--green, #2f7d32); background: #fff; }
.cm-comment-form-actions { display: flex; justify-content: flex-end; margin-top: 8px; }
.cm-send-comment {
  background: var(--green, #2f7d32); color: #fff; border: none;
  padding: 7px 20px; border-radius: 18px; font-weight: 800; font-size: 13.5px; cursor: pointer; transition: .16s;
}
.cm-send-comment:hover { background: #276b2a; }
.cm-send-comment:disabled { opacity: .6; cursor: default; }
.cm-comment-guest { justify-content: center; padding: 6px 0; }
.cm-clogin-btn {
  background: #f0f5ec; color: var(--green, #2f7d32); border: 1px solid #d6e5c9;
  padding: 9px 22px; border-radius: 20px; font-weight: 700; cursor: pointer; font-size: 13.5px;
}
.cm-clogin-btn:hover { background: #e4efdc; }

.cm-admin-tools { margin-top: 8px; }
.cm-attach-prod {
  display: inline-flex; align-items: center; gap: 6px;
  background: #fff; border: 1px dashed var(--green, #2f7d32); color: var(--green, #2f7d32);
  padding: 6px 14px; border-radius: 18px; font-weight: 700; font-size: 13px; cursor: pointer; transition: .15s;
}
.cm-attach-prod:hover { background: #f0f5ec; }
.cm-attach-prod svg { width: 15px; height: 15px; }
.cm-prod-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.cm-prod-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: #eef6ea; border: 1px solid #d6e8cc; border-radius: 16px; padding: 4px 6px 4px 4px; font-size: 12.5px; color: #1e2b20;
}
.cm-prod-chip img { width: 26px; height: 26px; border-radius: 8px; object-fit: cover; }
.cm-prod-chip span { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-prod-chip button { background: none; border: none; color: #7d8b80; cursor: pointer; font-size: 15px; line-height: 1; padding: 0 2px; }
.cm-prod-chip button:hover { color: #d33; }

/* ----- Sidebar ----- */
.cm-sidebar { display: flex; flex-direction: column; gap: 24px; position: sticky; top: 100px; }
.cm-side-box {
  background: #fcfdfc; border: 1px solid var(--line, #e6eae3); border-radius: 20px; padding: 22px;
}
.cm-side-title { font-size: 16px; font-weight: 800; color: var(--green-deep, #1f5c22); margin: 0 0 14px; }
.cm-rules { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.cm-rules li { position: relative; padding-left: 26px; font-size: 13.5px; line-height: 1.55; color: #4a5a4d; }
.cm-rules li::before {
  content: "✓"; position: absolute; left: 0; top: 0;
  width: 18px; height: 18px; border-radius: 50%; background: #e4efdc; color: var(--green, #2f7d32);
  font-size: 11px; font-weight: 900; display: grid; place-items: center;
}
.cm-side-promo {
  position: relative; display: block; border-radius: 20px; overflow: hidden; height: 300px; text-decoration: none;
}
.cm-side-promo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cm-side-promo-overlay {
  position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end;
  padding: 22px; color: #fff; background: linear-gradient(to top, rgba(10,40,12,.86), rgba(10,40,12,.05) 70%);
}
.cm-side-promo-overlay h3 { margin: 0 0 6px; font-size: 19px; font-weight: 900; }
.cm-side-promo-overlay p { margin: 0 0 10px; font-size: 13px; line-height: 1.5; opacity: .94; }
.cm-side-promo .promo-link { font-weight: 800; font-size: 13.5px; }

/* ----- Bộ chọn sản phẩm (admin) ----- */
.cm-picker-overlay {
  position: fixed; inset: 0; z-index: 4000; background: rgba(15,25,15,.55);
  display: grid; place-items: center; padding: 20px;
}
.cm-picker {
  background: #fff; border-radius: 18px; width: min(560px, 100%); max-height: 82vh;
  display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 24px 60px rgba(0,0,0,.3);
}
.cm-picker-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid #eef2ec; }
.cm-picker-head h3 { margin: 0; font-size: 17px; font-weight: 800; color: #1e2b20; }
.cm-picker-close { background: none; border: none; font-size: 26px; line-height: 1; color: #90a094; cursor: pointer; }
.cm-picker-close:hover { color: #d33; }
.cm-picker-search { padding: 14px 20px; border-bottom: 1px solid #f2f4f0; }
.cm-picker-search input {
  width: 100%; border: 1px solid #dde5d8; border-radius: 12px; padding: 10px 14px;
  font-family: inherit; font-size: 14px; outline: none; box-sizing: border-box;
}
.cm-picker-search input:focus { border-color: var(--green, #2f7d32); }
.cm-picker-list { overflow-y: auto; padding: 8px 12px; flex: 1; }
.cm-picker-empty { text-align: center; color: #90a094; padding: 24px; font-size: 14px; }
.cm-picker-item {
  display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 12px; cursor: pointer; transition: .12s;
}
.cm-picker-item:hover { background: #f4f7f2; }
.cm-picker-item.on { background: #eef6ea; }
.cm-picker-item input { width: 18px; height: 18px; accent-color: var(--green, #2f7d32); flex-shrink: 0; }
.cm-picker-item img { width: 46px; height: 46px; border-radius: 10px; object-fit: cover; background: #f2f4f0; flex-shrink: 0; }
.cm-picker-name { flex: 1; font-size: 13.5px; font-weight: 600; color: #1e2b20; line-height: 1.35; }
.cm-picker-price { font-size: 13px; font-weight: 800; color: var(--green, #2f7d32); white-space: nowrap; }
.cm-picker-foot { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-top: 1px solid #eef2ec; }
.cm-picker-foot span { font-size: 13px; color: #55645a; font-weight: 600; }
.cm-picker-done {
  background: var(--green, #2f7d32); color: #fff; border: none; padding: 9px 24px; border-radius: 20px; font-weight: 800; cursor: pointer;
}
.cm-picker-done:hover { background: #276b2a; }

/* ----- Responsive ----- */
@media (max-width: 900px) {
  .cm-layout { grid-template-columns: 1fr; gap: 28px; }
  .cm-sidebar { position: static; order: 2; }
  .cm-hero { height: 200px; }
  .cm-hero-overlay { padding: 0 24px; }
  .cm-hero-title { font-size: 25px; }
  .cm-hero-subtitle { font-size: 13.5px; }
}
@media (max-width: 560px) {
  .cm-composer-actions, .cm-post-preview, .cm-msg { margin-left: 0; }
  .cm-post-btn { padding: 9px 18px; }
  .cm-attach-btn span { display: none; }
}

@media (max-width: 760px) {
  .acc-header {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
    width: 100% !important;
  }
  .acc-user-info-row {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    width: 100% !important;
  }
  .acc-logout-desktop {
    display: none !important;
  }
  .acc-logout-mobile {
    display: block !important;
    width: 200px !important;
    align-self: center !important;
    padding: 10px 16px !important;
    font-size: 13.5px !important;
    border-radius: 8px !important;
    border-width: 1.5px !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }
}
/* Fix mobile responsive header padding, sticky bar alignment and lock page width on mobile view */
@media (max-width: 768px) {
  body, html {
    overflow-x: clip !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .topbar {
    position: sticky !important;
    top: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    z-index: 10000 !important;
  }
  .topbar .tb-track span {
    width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .header {
    position: sticky !important;
    top: 24px !important;
    width: 100% !important;
    max-width: 100% !important;
    z-index: 9999 !important;
  }
  /* Menu drawer phải nằm trên topbar (10000) và header (9999) ở mobile */
  .drawer-overlay {
    z-index: 10001 !important;
  }
  .drawer {
    z-index: 10002 !important;
  }
  /* Lightbox xem ảnh sản phẩm cũng phải phủ kín topbar/header ở mobile */
  .pd-lightbox {
    z-index: 10010 !important;
  }
  .header .container {
    padding: 0 16px !important;
  }
  .collection .container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 16px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }
  .fc-section-title {
    font-size: 20px !important;
  }
  .fc-search-box {
    width: 100% !important;
    max-width: 320px !important;
    margin: 0 auto 14px !important;
  }
  .fc-search-box input {
    height: 36px !important;
    padding: 8px 12px 8px 32px !important;
    font-size: 12.5px !important;
  }
  .fc-search-ic {
    left: 11px !important;
    width: 13px !important;
    height: 13px !important;
  }
  .fc-posts-grid {
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .fc-post-card {
    width: 100% !important;
    max-width: 100% !important;
    height: 108px !important;
    margin: 0 auto !important;
    flex-direction: row !important;
    align-items: stretch !important;
    padding: 10px !important;
    gap: 12px !important;
    border-radius: 14px !important;
    background: #ffffff !important;
    box-sizing: border-box !important;
  }
  .fc-post-thumb {
    width: 88px !important;
    height: 88px !important;
    aspect-ratio: 1 / 1 !important;
    flex-shrink: 0 !important;
    border-radius: 8px !important;
    border-bottom: none !important;
  }
  .fc-post-thumb img {
    border-radius: 8px !important;
  }
  .fc-post-body {
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    flex-grow: 1 !important;
    height: 88px !important;
    box-sizing: border-box !important;
  }
  .fc-post-meta {
    margin-bottom: 0 !important;
    font-size: 10px !important;
    flex-wrap: wrap !important;
    gap: 2px 6px !important;
    justify-content: flex-start !important;
  }
  .fc-post-author {
    margin-left: auto !important;
  }
  .fc-post-title {
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    margin-bottom: 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  .fc-post-summary {
    display: none !important;
  }
  .fc-post-more {
    font-size: 11px !important;
    margin-top: 0 !important;
  }
  .fc-pagination {
    gap: 6px !important;
    margin-top: 24px !important;
    margin-bottom: 16px !important;
  }
  .fc-page-btn {
    width: 32px !important;
    height: 32px !important;
    font-size: 12px !important;
  }
  .fc-page-ellipsis {
    width: 32px !important;
    height: 32px !important;
    font-size: 12px !important;
  }
  .fc-side-promo {
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
  }
  /* Breadcrumbs mobile optimization */
  .col-breadcrumb,
  .breadcrumb .container {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    overflow: hidden !important;
    font-size: 12.5px !important;
    padding: 8px 16px 12px !important;
    gap: 3px !important;
  }
  .col-breadcrumb a[href="/"],
  .breadcrumb .container a[href="/"] {
    font-size: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    text-decoration: none !important;
  }
  .col-breadcrumb .bc-home,
  .breadcrumb .container .bc-home svg {
    transform: translateY(-2px) !important;
  }
  .breadcrumb .container a[href="/"] span {
    display: none !important;
  }
  .col-breadcrumb a,
  .col-breadcrumb .sep,
  #bvBreadcrumbType,
  .breadcrumb .container a,
  .breadcrumb .container .sep {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }
  #bvBreadcrumbTitle,
  .breadcrumb .container .cur {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    flex-shrink: 1 !important;
    display: inline-block !important;
  }
}

/* Gutenberg FAQ (details / summary) styling */
details.gutenberg-faq {
  background: #f7f9f4;
  border: 1px solid var(--line, #e2e5dd);
  border-radius: 12px;
  margin-bottom: 18px;
  padding: 16px 20px;
  transition: all 0.3s ease;
}

details.gutenberg-faq[open] {
  background: #ffffff;
  border-color: var(--green);
  box-shadow: 0 4px 15px rgba(0,0,0,0.03);
}

details.gutenberg-faq summary {
  font-weight: 700;
  font-size: 14.5px;
  color: var(--ink);
  cursor: pointer;
  outline: none;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

details.gutenberg-faq summary::-webkit-details-marker {
  display: none;
}

details.gutenberg-faq summary::after {
  content: "▼";
  font-size: 11px;
  color: var(--green);
  transition: transform 0.2s ease;
}

details.gutenberg-faq[open] summary::after {
  transform: rotate(180deg);
}

.gutenberg-faq-content {
  margin-top: 14px;
  border-top: 1px dashed var(--line, #e2e5dd);
  padding-top: 14px;
  font-size: 13.5px;
  line-height: 1.6;
  color: #4b5563;
}

/* Gutenberg Box (Tip / Warning / Info) */
.gutenberg-box {
  background: #e6f9a8; /* Fresh light green background matching the photos */
  border-radius: 12px;
  padding: 20px 24px;
  margin: 24px 0;
  border: 1px solid rgba(160, 220, 100, 0.25);
  box-shadow: 0 4px 15px rgba(160, 220, 100, 0.06);
}

.gutenberg-box-title {
  font-weight: 800;
  font-size: 13.5px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #2c4d15;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.gutenberg-box p,
.gutenberg-box .wp-block-paragraph {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.6;
  color: #1e350b;
}

/* ============================================================
   MOBILE: hiệu ứng phản hồi khi CHẠM nút (thay lớp phủ đen đã tắt)
   Chỉ áp dụng cho điện thoại (<=760px). PC không đổi.
   ============================================================ */
@media (max-width: 760px) {
  /* Nút biểu tượng tròn: menu, tìm kiếm, tài khoản, giỏ hàng... */
  .icon-btn { transition: background .18s ease, color .18s ease, transform .12s ease; }
  .icon-btn:active {
    background: var(--green-soft);
    color: var(--green);
    transform: scale(0.85);
    opacity: 1;
  }
  /* Nút bấm chung / CTA / swatch / mũi tên slider / nút chat... */
  button, .btn-primary, [role="button"], .d-tab, .d-acc-head,
  .slider-arrow, .pd-swatch, .swatch, .swatch-more, .xb-fab,
  .map-btn, .d-hero-btn, .search-clear-btn, .search-close-btn,
  .sale-section-more, .bc-home, .prod-card {
    -webkit-tap-highlight-color: transparent;
    transition: transform .12s ease, opacity .12s ease;
  }
  button:active, .btn-primary:active, [role="button"]:active,
  .d-tab:active, .d-acc-head:active, .slider-arrow:active,
  .pd-swatch:active, .swatch:active, .swatch-more:active, .xb-fab:active,
  .map-btn:active, .d-hero-btn:active, .search-clear-btn:active,
  .search-close-btn:active, .sale-section-more:active, .prod-card:active {
    transform: scale(0.92);
    opacity: 0.7;
  }
}
