/*
Theme Name: Phan Phong TV
Theme URI: https://www.facebook.com/phanphongofficial
Author: Phan Phong TV
Author URI: https://www.facebook.com/phanphongofficial
Description: Theme WordPress chính thức cho thương hiệu mỹ phẩm Phan Phong TV — thiết kế hiện đại, bộ nhận diện Navy–Teal–Mint–Peach, có trải nghiệm mobile riêng biệt (thanh hành động đáy, carousel sản phẩm, mục lục accordion) và Custom Post Type Sản phẩm để quản lý ngay trong trang quản trị.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: phanphong-tv
*/

/* ============================================================
   PHAN PHONG TV — Design System
   Tông màu: Navy → Teal → Mint → Peach (bộ nhận diện thương hiệu)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500&family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap');

:root{
  /* --- Bộ nhận diện gốc --- */
  --navy:      #001C44;
  --teal-deep: #0C5776;
  --teal:      #2D99AE;
  --mint:      #BCFEFE;
  --peach:     #F8DAD0;

  /* --- Dẫn xuất từ bộ gốc --- */
  --bg:        #F6FBFB;   /* nền trang, sắc mint pha trắng */
  --surface:   #FFFFFF;
  --surface-2: #EFF8F7;
  --ink:       var(--navy);
  --ink-soft:  #3E5B72;   /* text phụ, navy pha teal */
  --line:      #D8E6E6;
  --peach-line:#EFC9BC;

  --gradient-ribbon: linear-gradient(120deg, var(--teal) 0%, var(--teal-deep) 55%, var(--navy) 100%);
  --gradient-soft:   linear-gradient(160deg, var(--mint) 0%, var(--bg) 70%);
  --gradient-peach:  linear-gradient(135deg, #FCEAE2 0%, var(--peach) 100%);

  /* --- Typography --- */
  --font-display: 'Fraunces', 'Times New Roman', serif;
  --font-body: 'Be Vietnam Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* --- Layout --- */
  --container: 1180px;
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 10px;
  --shadow-card: 0 12px 32px -16px rgba(0,28,68,0.18);
  --shadow-soft: 0 4px 18px -10px rgba(0,28,68,0.12);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ overflow-x:hidden; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p,figure{ margin:0; }
button{ font:inherit; cursor:pointer; border:none; background:none; }
table{ border-collapse:collapse; width:100%; }

:focus-visible{
  outline:2px solid var(--teal-deep);
  outline-offset:3px;
  border-radius:4px;
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

/* ---------- Typography scale ---------- */
h1,h2,h3,.font-display{ font-family:var(--font-display); color:var(--navy); font-weight:600; letter-spacing:-0.01em; }
h1{ font-size:clamp(2.4rem, 4.6vw, 3.8rem); line-height:1.08; font-weight:600; }
h2{ font-size:clamp(1.9rem, 3.2vw, 2.6rem); line-height:1.15; }
h3{ font-size:1.35rem; line-height:1.3; font-weight:600; }
.lede{ font-size:1.1rem; color:var(--ink-soft); }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-family:var(--font-body);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--teal-deep);
}
.eyebrow::before{
  content:"";
  width:22px; height:2px;
  border-radius:2px;
  background:var(--gradient-ribbon);
  display:inline-block;
}

.muted{ color:var(--ink-soft); }

/* ---------- Layout helpers ---------- */
.container{ max-width:var(--container); margin-inline:auto; padding-inline:24px; }
.section{ padding-block:clamp(56px,8vw,104px); }
.section-tight{ padding-block:clamp(40px,6vw,64px); }
.stack{ display:flex; flex-direction:column; }
.center{ text-align:center; }
.section-head{ max-width:640px; margin-bottom:2.75rem; }
.section-head.center{ margin-inline:auto; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.85rem 1.9rem;
  border-radius:999px;
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.01em;
  transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease;
  white-space:nowrap;
}
.btn-primary{
  background:var(--teal);
  color:#fff;
  box-shadow:0 10px 24px -10px rgba(45,153,174,.55);
}
.btn-primary:hover{ background:var(--teal-deep); transform:translateY(-2px); box-shadow:0 14px 28px -10px rgba(12,87,118,.5); }
.btn-outline{
  border:1.5px solid var(--navy);
  color:var(--navy);
  background:transparent;
}
.btn-outline:hover{ background:var(--navy); color:#fff; transform:translateY(-2px); }
.btn-ghost{
  color:var(--teal-deep);
  padding:.4rem 0;
  font-weight:700;
  border-bottom:1.5px solid var(--teal);
  border-radius:0;
}
.btn-ghost:hover{ color:var(--navy); border-color:var(--navy); }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.5; cursor:not-allowed; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(246,251,251,0.88);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  padding-block:14px;
}
.brand{ display:flex; align-items:center; gap:.65rem; }
.brand-logo{ height:150px; width:auto; display:block; }
.brand-plaque{
  display:inline-flex; align-items:center; justify-content:center;
  background:#fff; border-radius:14px; padding:.5rem .9rem;
  flex:none;
}
.footer-brand .brand-plaque .brand-logo{ height:auto; width:130px; }
.mobile-nav-head .brand-logo{ height:32px; }
.split-panel .brand-plaque{
  padding:1.4rem 1.9rem;
  border-radius:22px;
  box-shadow:0 20px 40px -18px rgba(0,0,0,.35);
}
.split-panel .brand-plaque .brand-logo{ height:auto; width:min(46vw, 190px); }

.nav-desktop{ display:flex; align-items:center; gap:2.1rem; }
.nav-desktop a{
  font-size:.92rem; font-weight:600; color:var(--ink);
  position:relative; padding-block:4px;
}
.nav-desktop a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px;
  background:var(--gradient-ribbon); transform:scaleX(0); transform-origin:left;
  transition:transform .25s ease;
}
.nav-desktop a:hover::after, .nav-desktop a[aria-current="page"]::after{ transform:scaleX(1); }
.nav-desktop a[aria-current="page"]{ color:var(--teal-deep); }

.header-actions{ display:flex; align-items:center; gap:1rem; }
.nav-toggle{ display:none; }

@media (max-width:920px){
  .nav-desktop{ display:none; }
  .header-actions .btn-primary{ padding:.65rem 1.2rem; font-size:.85rem; }
  .site-header .brand-logo{ height:90px; }
}
@media (max-width:600px){
  .site-header .brand-logo{ height:70px; }
}
@media (max-width:560px){
  .header-actions .btn-primary{ display:none; }
  .brand-sub{ display:none; }
}

/* ---------- Breadcrumb / page hero (nội dung pages) ---------- */
.page-hero{
  background:var(--gradient-soft);
  padding-block:clamp(48px,7vw,84px) clamp(36px,5vw,56px);
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden;
}
.page-hero::before{
  content:"";
  position:absolute; right:-80px; top:-80px;
  width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(45,153,174,.18), transparent 70%);
}
.breadcrumb{
  display:flex; gap:.4rem; align-items:center;
  font-size:.82rem; color:var(--ink-soft); margin-bottom:1rem;
}
.breadcrumb a{ color:var(--teal-deep); font-weight:600; }
.breadcrumb span{ opacity:.5; }
.page-hero h1{ max-width:820px; }
.page-hero .lede{ max-width:640px; margin-top:.85rem; }

/* ---------- Ribbon divider (chữ ký thị giác) ---------- */
.ribbon-divider{
  height:34px;
  width:100%;
  display:block;
}
.ribbon-divider svg{ width:100%; height:100%; }

/* ---------- Hero (trang chủ) ---------- */
.hero{ position:relative; overflow:hidden; padding-block:clamp(48px,7vw,72px) clamp(64px,9vw,96px); }
.hero-grid{
  display:grid; grid-template-columns:1.05fr .95fr;
  gap:clamp(2rem,5vw,4rem); align-items:center;
}
.hero-copy h1{ margin-top:1rem; }
.hero-copy .lede{ margin-top:1.25rem; max-width:480px; }
.hero-actions{ display:flex; gap:1rem; margin-top:2.2rem; flex-wrap:wrap; }
.hero-trust{
  margin-top:2.75rem; display:flex; gap:1.8rem; flex-wrap:wrap;
}
.hero-trust li{ display:flex; align-items:center; gap:.55rem; font-size:.85rem; font-weight:600; color:var(--ink-soft); }
.hero-trust li svg{ width:18px; height:18px; color:var(--teal); flex:none; }
@media (max-width:700px){
  .hero-trust{ flex-wrap:nowrap; overflow-x:auto; padding-bottom:.2rem; margin-inline:-24px; padding-inline:24px; scrollbar-width:none; }
  .hero-trust::-webkit-scrollbar{ display:none; }
  .hero-trust li{ flex:none; white-space:nowrap; }
}

.hero-art{ position:relative; display:flex; align-items:center; justify-content:center; }
.hero-art-ring{
  position:absolute; inset:6% ;
  border:1.5px dashed var(--peach-line);
  border-radius:50%;
}
.hero-art-panel{
  position:relative;
  width:100%; aspect-ratio:1/1; max-width:440px;
  border-radius:50% 50% 46% 46% / 55% 55% 45% 45%;
  background:var(--gradient-peach);
  display:flex; align-items:flex-end; justify-content:center;
  box-shadow:var(--shadow-card);
  overflow:hidden;
}
.hero-bottles{ display:flex; align-items:flex-end; gap:14px; padding-bottom:8%; }
.hero-badge{
  position:absolute; left:-6%; bottom:6%;
  width:104px; height:104px; border-radius:50%;
  background:var(--gradient-ribbon);
  color:#fff; display:flex; align-items:center; justify-content:center;
  text-align:center; font-family:var(--font-display); font-weight:600; font-size:.85rem;
  line-height:1.2; box-shadow:0 14px 30px -12px rgba(0,28,68,.45);
  transform:rotate(-8deg);
}

@media (max-width:860px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-art{ order:-1; max-width:320px; margin-inline:auto; }
  .hero-copy .lede{ max-width:none; }
}

/* ---------- Trust bar ---------- */
.trust-bar{
  background:var(--navy);
  color:#fff;
}
.trust-bar .container{
  display:flex; flex-wrap:wrap; gap:1.5rem 2.5rem;
  justify-content:space-between; align-items:center;
  padding-block:1.3rem;
}
.trust-bar li{ display:flex; align-items:center; gap:.6rem; font-size:.85rem; font-weight:600; }
.trust-bar li svg{ width:20px; height:20px; color:var(--mint); flex:none; }
@media (max-width:760px){
  .trust-bar .container{ flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; gap:1.8rem; scrollbar-width:none; }
  .trust-bar .container::-webkit-scrollbar{ display:none; }
  .trust-bar li{ flex:none; white-space:nowrap; }
}

/* ---------- Values / cards ---------- */
.value-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem; }
.value-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:2.1rem 1.9rem;
  box-shadow:var(--shadow-soft);
}
.value-mark{
  width:52px; height:52px; border-radius:16px;
  background:var(--gradient-peach);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:1.15rem; color:var(--teal-deep);
  margin-bottom:1.3rem;
}
.value-card h3{ margin-bottom:.6rem; }
.value-card p{ color:var(--ink-soft); font-size:.95rem; }

@media (max-width:860px){ .value-grid{ grid-template-columns:1fr; } }

/* ---------- Product grid ---------- */
.product-toolbar{
  display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem; flex-wrap:wrap;
}
.product-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem;
  margin-top:2.5rem;
}
.product-card{
  background:var(--surface);
  border-radius:var(--radius-lg);
  border:1px solid var(--line);
  overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform .3s ease, box-shadow .3s ease;
}
.product-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-card); }
.product-media{
  aspect-ratio:1/1;
  background:var(--gradient-soft);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.product-media.p2{ background:var(--gradient-peach); }
.product-media.p3{ background:linear-gradient(160deg,#E7F6F5,var(--bg)); }
.product-media svg{ width:46%; height:46%; }
.product-media img{ width:100%; height:100%; object-fit:cover; }
.product-tag{
  position:absolute; top:12px; left:12px;
  background:rgba(255,255,255,.85);
  color:var(--teal-deep);
  font-size:.68rem; font-weight:700; letter-spacing:.04em;
  padding:.3rem .65rem; border-radius:999px;
}
.product-body{ padding:1.35rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.product-cat{ font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--teal); }
.product-body h3{ font-size:1.05rem; }
.product-desc{ font-size:.85rem; color:var(--ink-soft); flex:1; }
.product-price{ font-weight:700; color:var(--navy); font-family:var(--font-display); font-size:1.1rem; }
.product-price .old{ font-weight:500; font-size:.85rem; color:var(--ink-soft); text-decoration:line-through; margin-left:.4rem; }
.product-cta{ margin-top:.4rem; }

@media (max-width:980px){ .product-grid{ grid-template-columns:repeat(2,1fr); } }

/* Mobile: carousel vuốt ngang thay vì xếp chồng dọc — trải nghiệm duyệt sản phẩm kiểu app di động */
@media (max-width:640px){
  .product-grid{
    display:flex;
    grid-template-columns:none;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    gap:1rem;
    margin-inline:-24px;
    padding:.2rem 24px 10px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .product-grid::-webkit-scrollbar{ display:none; }
  .product-card{ flex:0 0 76%; scroll-snap-align:start; }
}

/* ---------- Steps (quy trình) ---------- */
.steps{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2rem;
  position:relative;
}
.step{ text-align:center; position:relative; }
.step-badge{
  width:88px; height:88px; margin-inline:auto 1.3rem;
  border-radius:50%;
  background:var(--surface);
  border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  position:relative;
  box-shadow:var(--shadow-soft);
}
.step-badge svg{ width:34px; height:34px; color:var(--teal-deep); }
.step-num{
  position:absolute; top:-8px; right:-8px;
  width:26px; height:26px; border-radius:50%;
  background:var(--gradient-ribbon); color:#fff;
  font-size:.72rem; font-weight:700;
  display:flex; align-items:center; justify-content:center;
}
.step h3{ font-size:1.05rem; margin-bottom:.4rem; }
.step p{ font-size:.88rem; color:var(--ink-soft); }
.step-connector{
  display:none;
}
@media (min-width:760px){
  .steps{ position:relative; }
  .steps::before{
    content:"";
    position:absolute; top:44px; left:16%; right:16%; height:2px;
    background-image:linear-gradient(90deg, var(--teal) 0, var(--teal) 6px, transparent 6px, transparent 14px);
    background-size:14px 2px; background-repeat:repeat-x;
    opacity:.7;
  }
}
@media (max-width:760px){
  .steps{ grid-template-columns:1fr; gap:2.5rem; }
  .steps::before{
    content:"";
    position:absolute; left:50%; top:44px; bottom:44px; width:2px; transform:translateX(-1px);
    background-image:linear-gradient(180deg, var(--teal) 0, var(--teal) 6px, transparent 6px, transparent 14px);
    background-size:2px 14px; background-repeat:repeat-y;
    opacity:.6;
  }
}

/* ---------- About teaser split ---------- */
.split{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,5vw,4.5rem);
  align-items:center;
}
.split-panel{
  border-radius:var(--radius-lg);
  background:var(--gradient-ribbon);
  aspect-ratio:4/5;
  position:relative;
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-card);
}
.split-panel .monogram{ width:38%; opacity:.9; }
.split-quote{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:1.3rem; color:var(--navy); line-height:1.5;
  border-left:3px solid var(--teal); padding-left:1.2rem; margin-block:1.5rem;
}
@media (max-width:860px){ .split{ grid-template-columns:1fr; } .split-panel{ order:-1; max-width:320px; margin-inline:auto; } }

/* ---------- CTA banner ---------- */
.cta-banner{
  background:var(--gradient-ribbon);
  border-radius:var(--radius-lg);
  padding:clamp(2.2rem,5vw,3.5rem);
  color:#fff;
  display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
  position:relative; overflow:hidden;
}
.cta-banner::after{
  content:""; position:absolute; right:-40px; bottom:-60px; width:220px; height:220px; border-radius:50%;
  background:rgba(255,255,255,.08);
}
.cta-banner h2{ color:#fff; font-size:clamp(1.6rem,3vw,2.1rem); }
.cta-banner p{ color:rgba(255,255,255,.82); margin-top:.5rem; max-width:420px; }
.cta-banner .btn-primary{ background:#fff; color:var(--navy); box-shadow:none; }
.cta-banner .btn-primary:hover{ background:var(--peach); color:var(--navy); }

/* ---------- Content pages (policy) ---------- */
.doc{ display:grid; grid-template-columns:240px 1fr; gap:3.5rem; align-items:flex-start; }
.doc-toc{
  position:sticky; top:96px;
  border-left:2px solid var(--line);
  padding-left:1.2rem;
  display:flex; flex-direction:column; gap:.7rem;
}
.doc-toc span{ font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.3rem; }
.doc-toc a{ font-size:.88rem; color:var(--ink-soft); font-weight:600; }
.doc-toc a:hover, .doc-toc a.active{ color:var(--teal-deep); }
.doc-body h2{ margin-top:2.6rem; margin-bottom:1rem; font-size:1.5rem; }
.doc-body h2:first-child{ margin-top:0; }
.doc-body h3{ margin-top:1.6rem; margin-bottom:.6rem; color:var(--teal-deep); font-size:1.1rem; }
.doc-body p{ margin-bottom:1rem; color:var(--ink-soft); }
.doc-body strong{ color:var(--ink); }
.doc-body ul, .doc-body ol{ margin-bottom:1.1rem; padding-left:1.3rem; color:var(--ink-soft); }
.doc-body ul{ list-style:disc; }
.doc-body ol{ list-style:decimal; }
.doc-body li{ margin-bottom:.5rem; }
.doc-body li::marker{ color:var(--teal); }
.doc-body blockquote{
  margin:1.6rem 0; padding:1.1rem 1.4rem;
  background:var(--surface-2);
  border-left:3px solid var(--teal);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  color:var(--ink-soft); font-size:.92rem;
}
.doc-body .callout{
  margin:1.6rem 0; padding:1.2rem 1.4rem;
  background:var(--gradient-peach);
  border-radius:var(--radius-md);
  font-size:.92rem; color:var(--navy);
}
.doc-table{ margin-bottom:1.4rem; border-radius:var(--radius-md); border:1px solid var(--line); overflow-x:auto; -webkit-overflow-scrolling:touch; }
.doc-table table{ font-size:.9rem; min-width:480px; }
.doc-table th, .doc-table td{ padding:.85rem 1rem; text-align:left; border-bottom:1px solid var(--line); }
.doc-table th{ background:var(--navy); color:#fff; font-weight:600; }
.doc-table tr:last-child td{ border-bottom:none; }
.doc-table tr:nth-child(even) td{ background:var(--surface-2); }
.doc-hr{ border:none; border-top:1px solid var(--line); margin:2.6rem 0; }
.doc-contact-card{
  margin-top:2.6rem; padding:1.8rem;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
}
.doc-contact-card dl{ display:grid; grid-template-columns:auto 1fr; gap:.5rem 1rem; margin-top:1rem; font-size:.92rem; }
.doc-contact-card dt{ font-weight:700; color:var(--teal-deep); }
.doc-contact-card dd{ margin:0; color:var(--ink-soft); }

@media (max-width:900px){ .doc{ grid-template-columns:1fr; } .doc-toc{ position:static; display:none; } }

/* Mục lục dạng accordion — thay thế sidebar trên mobile, không chỉ đơn giản là ẩn đi */
.toc-mobile{ display:none; }
@media (max-width:900px){
  .toc-mobile{
    display:block; margin-bottom:2rem;
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md);
    overflow:hidden;
  }
  .toc-mobile summary{
    list-style:none; cursor:pointer; -webkit-tap-highlight-color:transparent;
    display:flex; align-items:center; justify-content:space-between; gap:.75rem;
    padding:1rem 1.2rem;
    font-weight:700; font-size:.92rem; color:var(--navy);
  }
  .toc-mobile summary::-webkit-details-marker{ display:none; }
  .toc-mobile-chev{ width:18px; height:18px; flex:none; color:var(--teal-deep); transition:transform .25s ease; }
  .toc-mobile[open] .toc-mobile-chev{ transform:rotate(180deg); }
  .toc-mobile nav{ display:flex; flex-direction:column; padding:0 1.2rem 1rem; }
  .toc-mobile nav a{ padding:.6rem 0; font-size:.88rem; color:var(--ink-soft); font-weight:600; border-top:1px solid var(--line); }
  .toc-mobile nav a:first-child{ border-top:none; }
}

/* ---------- Contact / payment page specific ---------- */
.info-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; }
.info-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:1.4rem 1.5rem; display:flex; gap:1rem; align-items:flex-start;
}
.info-card svg{ width:26px; height:26px; color:var(--teal-deep); flex:none; margin-top:.15rem; }
.info-card h4{ font-size:.95rem; margin-bottom:.2rem; font-weight:700; }
.info-card p{ font-size:.88rem; color:var(--ink-soft); margin:0; }
.info-card a{ color:var(--teal-deep); font-weight:600; }
@media (max-width:640px){ .info-grid{ grid-template-columns:1fr; } }

/* ---------- Biến thể sản phẩm (dung tích) ---------- */
.price-from{ font-size:.7em; font-weight:500; color:var(--ink-soft); margin-right:.2rem; }
.variant-list{ display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1rem; }
.variant-pill{
  padding:.55rem 1.15rem; border-radius:999px;
  border:1.5px solid var(--line); background:var(--surface);
  font-weight:700; font-size:.9rem; color:var(--ink-soft);
  cursor:pointer; transition:all .2s ease;
}
.variant-pill:hover{ border-color:var(--teal); color:var(--teal-deep); }
.variant-pill.active{ background:var(--navy); border-color:var(--navy); color:#fff; }

.pay-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.8rem; }
.pay-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.9rem; }
.pay-card .pay-icon{
  width:46px; height:46px; border-radius:14px; background:var(--gradient-peach);
  display:flex; align-items:center; justify-content:center; margin-bottom:1rem;
}
.pay-card .pay-icon svg{ width:22px; height:22px; color:var(--teal-deep); }
@media (max-width:760px){ .pay-grid{ grid-template-columns:1fr; } }

/* ---------- Footer ---------- */
.site-footer{ background:var(--navy); color:rgba(255,255,255,.78); }
.footer-top{
  padding-block:clamp(48px,7vw,72px) 2.5rem;
  display:grid; grid-template-columns:1.3fr 1fr 1fr 1.1fr; gap:2.5rem;
}
.footer-brand p{ margin-top:1rem; font-size:.88rem; max-width:280px; color:rgba(255,255,255,.65); }
.footer-social{ display:flex; gap:.7rem; margin-top:1.4rem; }
.footer-social a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.25);
  display:flex; align-items:center; justify-content:center; transition:background .25s ease;
}
.footer-social a:hover{ background:rgba(255,255,255,.12); }
.footer-social svg{ width:17px; height:17px; }
.footer-col h4{ color:#fff; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:1.1rem; }
.footer-col ul{ display:flex; flex-direction:column; gap:.7rem; }
.footer-col a{ font-size:.9rem; color:rgba(255,255,255,.72); }
.footer-col a:hover{ color:#fff; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.14);
  padding-block:1.4rem;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
  font-size:.8rem; color:rgba(255,255,255,.55);
}
@media (max-width:900px){ .footer-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-top{ grid-template-columns:1fr; } }

/* ---------- Mobile nav ---------- */
.mobile-nav{
  display:none;
  position:fixed; inset:0; z-index:60;
  background:var(--bg);
  padding:20px 24px;
  flex-direction:column;
  overflow-y:auto;
}
.mobile-nav.open{ display:flex; }
.mobile-nav-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:2rem; }
.mobile-nav a{ font-family:var(--font-display); font-size:1.6rem; padding:.6rem 0; border-bottom:1px solid var(--line); color:var(--navy); }
.nav-toggle{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
}
@media (max-width:920px){ .nav-toggle{ display:flex; } }

/* ---------- Thanh hành động cố định đáy màn hình (chỉ mobile) ---------- */
.mobile-cta-bar{
  display:none;
  position:fixed; left:0; right:0; bottom:0; z-index:55;
  background:#fff;
  border-top:1px solid var(--line);
  padding:.65rem .9rem calc(.65rem + env(safe-area-inset-bottom));
  gap:.7rem;
  box-shadow:0 -10px 26px -14px rgba(0,28,68,.22);
}
.mobile-cta-btn{
  flex:1;
  display:flex; align-items:center; justify-content:center; gap:.4rem;
  padding:.85rem 1rem;
  border-radius:999px;
  font-weight:700; font-size:.92rem;
}
.mobile-cta-call{ border:1.5px solid var(--navy); color:var(--navy); }
.mobile-cta-call svg{ width:17px; height:17px; }
.mobile-cta-order{ background:var(--teal); color:#fff; }
@media (max-width:760px){
  .mobile-cta-bar{ display:flex; }
  body{ padding-bottom:calc(74px + env(safe-area-inset-bottom)); }
}

/* ---------- WordPress core: alignment & bổ trợ the_content ---------- */
.alignleft{ float:left; margin:.3rem 1.5rem 1rem 0; }
.alignright{ float:right; margin:.3rem 0 1rem 1.5rem; }
.aligncenter{ display:block; margin:1.2rem auto; }
.wp-caption{ max-width:100%; }
.wp-caption-text{ font-size:.82rem; color:var(--ink-soft); margin-top:.4rem; }
.screen-reader-text{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
