:root{
  --ink:#1c1d21;
  --muted:#767b80;
  --line:#e8e6e3;
  --soft:#f7f6f4;
  --cream:#f8efe2;
  --red:#c62a17;
  --orange:var(--red);
  --orange-dark:#a12111;
  --dark:#1a1c20;
  --white:#fff;
  --shadow:0 18px 44px rgba(20,20,20,.10);
  --shadow-sm:0 8px 22px rgba(20,20,20,.07);
  --radius:16px;
  --radius-sm:10px;
  --radius-lg:22px;
}
*{box-sizing:border-box}
.tsf-trap{position:absolute;left:-9999px;top:-9999px;height:0;overflow:hidden}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Be Vietnam Pro",system-ui,sans-serif;color:var(--ink);background:#fff;line-height:1.55}
img{width:100%;display:block;object-fit:cover}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
.container{width:min(1240px,calc(100% - 32px));margin:auto}

/* Topbar */
.topbar{background:#fff;color:var(--muted);font-size:12.5px;border-bottom:1px solid var(--line)}
.topbar-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.topbar-left{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.topbar span,.topbar a{display:flex;align-items:center;gap:7px}
.topbar-right{display:flex;align-items:center;gap:18px}
.topbar a:hover{color:var(--orange)}
.topbar-icon{color:var(--muted);font-size:14px}
.topbar-icon:hover{color:var(--orange)}

.badge{position:absolute;right:-4px;top:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--red);color:#fff;font-size:10px;display:grid;place-items:center;border:2px solid #fff}
.action{width:44px;height:44px;border:1px solid var(--line);border-radius:12px;display:grid;place-items:center;background:#fff;position:relative;cursor:pointer;color:var(--ink)}
.action:hover{border-color:var(--orange);color:var(--orange)}

/* Header */
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.header-main{min-height:88px;display:grid;grid-template-columns:230px 1fr auto;align-items:center;gap:28px}
.brand-wordmark{display:inline-flex;align-items:baseline;gap:.18em;font-weight:900;line-height:1;color:var(--ink);letter-spacing:0}
.brand-wordmark__find{color:var(--red)}
.brand-wordmark__sofa{color:var(--ink)}
.brand-wordmark__domain{margin-left:.02em;color:var(--ink);font-weight:800}
.logo{display:flex;flex-direction:column;gap:3px;font-size:30px;font-weight:900;color:var(--ink);letter-spacing:0}
.logo .brand-wordmark{font-size:1em}
.logo small{display:block;font-size:11.5px;color:var(--muted);font-weight:500;letter-spacing:0}
.search{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--soft);overflow:hidden;height:52px}
.search select,.search input{border:0;background:transparent;outline:none;height:100%}
.search select{padding:0 14px;border-right:1px solid var(--line);color:var(--muted);max-width:180px}
.search input{flex:1;padding:0 16px;min-width:120px}
.search button{width:54px;height:42px;margin-right:5px;border:0;border-radius:8px;background:var(--orange);color:#fff;cursor:pointer;font-size:15px}
.search button:hover{background:var(--orange-dark)}
.actions{display:flex;align-items:center;gap:18px}
.actions-link{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.actions-link i{font-size:20px;color:var(--ink)}
.actions-link b{display:block;color:var(--ink);font-weight:700}
.btn-sell{display:flex;align-items:center;gap:10px;background:var(--dark);color:#fff;border-radius:var(--radius-sm);padding:9px 16px}
.btn-sell i{font-size:18px}
.btn-sell b{display:block;font-size:13px;font-weight:700}
.btn-sell small{display:block;font-size:10.5px;color:#b7bcc2}
.mobile-menu-toggle{display:none;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 14px;border:0;border-radius:12px;background:var(--dark);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 8px 18px rgba(17,24,39,.12)}
.mobile-menu-toggle i{font-size:17px}
.mobile-menu-panel{display:none}

/* Nav */
.nav{border-top:1px solid var(--line);background:#fff}
.nav-inner{height:54px;display:flex;align-items:center;gap:22px;font-size:13.5px;font-weight:600;overflow:visible;scrollbar-width:none}
.nav-inner::-webkit-scrollbar{display:none}
.nav-inner .category-menu{flex-shrink:0}
.nav-inner ul{display:flex;align-items:center;gap:20px;list-style:none;margin:0;padding:0;flex-shrink:0}
.nav-inner ul li{flex-shrink:0}
.nav a{white-space:nowrap}
.nav a:hover{color:var(--orange)}
.nav .hot{color:var(--red);flex-shrink:0}
.category-menu{position:relative;width:270px;display:block}
.category-menu::after{content:"";position:absolute;top:100%;left:0;width:100%;height:8px;display:none}
.category-menu[open]::after,.category-menu:hover::after,.category-menu.is-hover-open::after{display:block}
.category-menu>summary{list-style:none}
.category-menu>summary::-webkit-details-marker{display:none}
.category-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:var(--orange);color:#fff;padding:11px 18px;border-radius:var(--radius-sm);white-space:nowrap;border:0;cursor:pointer;font:inherit;font-weight:600;font-size:14px}
.category-trigger:hover{background:var(--orange-dark)}
.category-trigger span{display:flex;align-items:center;gap:10px}
.category-trigger .chev{font-size:11px;transition:transform .2s}
.category-menu[open] .category-trigger .chev,.category-menu:hover .category-trigger .chev,.category-menu.is-hover-open .category-trigger .chev{transform:rotate(180deg)}
.category-menu-panel{position:absolute;top:100%;left:0;z-index:90;width:100%;box-shadow:var(--shadow);display:none;margin-top:4px}
.category-menu[open] .category-menu-panel,.category-menu:hover .category-menu-panel,.category-menu.is-hover-open .category-menu-panel{display:block}
.ts-home-pinned-menu .nav .category-menu:hover .category-menu-panel{display:none}
.ts-home-pinned-menu .nav .category-menu:hover .category-trigger .chev{transform:none}
.new-badge{background:var(--red);color:#fff;font-size:9px;font-weight:800;padding:2px 6px;border-radius:999px;margin-left:5px;vertical-align:2px}
.nav-inner .menu-new > a::after{content:"New";display:inline-block;background:var(--red);color:#fff;font-size:9px;font-weight:800;padding:2px 6px;border-radius:999px;margin-left:6px;vertical-align:2px}

/* Dropdown cho cac muc menu chinh co con (Thuong hieu & Nha ban, Cam nang,
   Dich vu & Bang gia) - WordPress tu sinh <ul class="sub-menu"> long ben
   trong, chi can CSS :hover, khong can JS. Dat do dac hieu cao hon
   ".nav-inner ul" (dang set display:flex cho toan bo ul) de ghi de dung. */
.nav-inner .menu-item-has-children{position:relative}
.nav-inner .menu-item-has-children:after{content:"";position:absolute;left:0;right:0;top:100%;height:14px}
.nav-inner .menu-item-has-children > a{display:flex;align-items:center;gap:6px}
.nav-inner .menu-item-has-children > a:after{content:"\f078";font-family:"Font Awesome 6 Free";font-weight:900;font-size:8px;color:var(--muted)}
.nav-inner .sub-menu{display:none;position:absolute;top:calc(100% + 8px);left:0;z-index:60;min-width:230px;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);
  padding:8px;list-style:none}
.nav-inner .menu-item-has-children:hover .sub-menu,
.nav-inner .menu-item-has-children:focus-within .sub-menu{display:block}
.nav-inner .sub-menu li{width:100%}
.nav-inner .sub-menu a{display:block;padding:9px 14px;font-size:13px;font-weight:600;color:var(--ink);
  border-radius:8px;white-space:nowrap}
.nav-inner .sub-menu a:hover{background:var(--soft);color:var(--orange)}
@media(max-width:1100px){.nav-inner .sub-menu{min-width:200px}}

/* Home top: sidebar + hero */
.home-top{display:grid;grid-template-columns:270px 1fr;gap:20px;padding:24px 0 0}
.sidebar-cats{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:10px;height:max-content}
.sidebar-cats a{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:12px;font-size:13.5px;font-weight:600;color:var(--ink)}
.sidebar-cats a:hover{background:var(--soft);color:var(--orange)}
.sidebar-cats .cat-ico{width:32px;height:32px;border-radius:9px;background:var(--soft);color:var(--orange);display:grid;place-items:center;font-size:13px;flex:none}
.sidebar-cats .chev{margin-left:auto;color:var(--muted);font-size:11px}
.sidebar-cats .view-all-cats{color:var(--orange);border-top:1px solid var(--line);margin-top:6px;padding-top:14px}

.mobile-menu-panel[aria-hidden=false]{display:block}
.mobile-menu-panel{position:fixed;top:72px;left:0;right:0;z-index:49;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line);box-shadow:0 18px 38px rgba(17,24,39,.12);max-height:calc(100vh - 86px);overflow:auto;padding:12px 0 18px}
.mobile-menu-panel__inner{display:grid;gap:12px}
.mobile-menu-cats{padding:10px;border-radius:18px}
.mobile-menu-links{display:grid;gap:8px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:12px}
.mobile-menu-links ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.mobile-menu-links a{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:9px 12px;border-radius:12px;font-weight:800;color:var(--ink)}
.mobile-menu-links a:hover{background:var(--soft);color:var(--orange)}
.mobile-menu-links .sub-menu{display:none}
.mobile-menu-links__hot,.mobile-menu-links__sell{color:var(--orange)!important;background:#fff4ec}

.hero{border-radius:var(--radius-lg);overflow:hidden;position:relative;isolation:isolate;min-height:420px;background-position:right center;background-size:cover;padding:48px;color:var(--ink);display:flex;flex-direction:column;justify-content:center}
.hero > *{position:relative;z-index:1}
.hero h1{max-width:620px;font-size:40px;line-height:1.16;margin:0 0 14px;letter-spacing:0;color:var(--ink)}
.hero-title-main,.hero-title-sub{display:block}
.hero-title-sub{margin-top:6px;color:var(--orange-dark)}
.hero-rotator{display:inline-flex;align-items:center;min-width:260px;white-space:nowrap}
.hero-rotator [data-hero-word]{display:inline-block}
.hero-rotator:after{content:"";width:2px;height:.92em;margin-left:5px;background:currentColor;animation:hero-caret .9s steps(1) infinite}
@keyframes hero-caret{50%{opacity:0}}
.hero p{max-width:480px;color:#565b5f;line-height:1.8;font-size:15px;margin:0 0 26px}
.hero .btn-cta{align-self:flex-start}

.btn{min-height:48px;padding:0 22px;border-radius:var(--radius-sm);border:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;cursor:pointer}
.btn-lime{background:var(--orange);color:#fff}
.btn-lime:hover{background:var(--orange-dark)}
.btn-light{background:#fff;color:var(--ink)}

/* Icon strip */
.icon-strip{margin:22px auto 0;display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}
.icon-strip-item{padding:20px 18px;display:flex;align-items:center;gap:12px;border-right:1px solid var(--line);text-align:left}
.icon-strip-item:last-child{border-right:0}
.icon-strip-icon{width:40px;height:40px;border-radius:12px;background:#fdf0e4;color:var(--orange);display:grid;place-items:center;font-size:17px;flex:none}
.icon-strip b{display:block;font-size:13px}
.icon-strip small{color:var(--muted);font-size:11.5px}

/* Sections generic */
section{padding:70px 0}
.hero-section{padding:0}
.soft-section{background:var(--soft)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}
.section-kicker{color:var(--orange);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1.6px}
.section-title{font-size:30px;letter-spacing:-.5px;margin:8px 0 0;line-height:1.2}
.section-desc{color:var(--muted);max-width:600px;line-height:1.7;margin:8px 0 0}
.view-all{font-size:14px;font-weight:700;color:var(--orange);display:inline-flex;align-items:center;gap:9px;white-space:nowrap}

/* Need grid (Tim sofa theo nhu cau) */
.need-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.need-card{position:relative;border-radius:var(--radius);overflow:hidden;min-height:190px}
.need-card img{height:100%;position:absolute;inset:0}
.need-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,10,10,.78))}
.need-content{position:absolute;left:16px;right:16px;bottom:14px;color:#fff}
.need-content b{display:block;font-size:15px}
.need-content span{font-size:11.5px;color:#e4e4e4}
.need-card--author{background:var(--soft);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;text-align:center;padding:20px}
.need-card--author .need-content{position:static;color:var(--ink)}
.need-card--author .need-content span{color:var(--muted)}

/* Material grid (Chat lieu) */
.material-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.material-card{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:var(--radius);padding:14px;background:#fff;transition:.2s}
.material-card:hover{box-shadow:var(--shadow-sm);border-color:transparent}
.material-thumb{width:70px;height:70px;border-radius:12px;flex:none;display:grid;place-items:center;color:#fff;font-size:20px;opacity:.96;overflow:hidden}
.material-thumb-img img{width:100%;height:100%;object-fit:cover}
.material-card b{display:block;font-size:14px}
.material-card span{font-size:11.5px;color:var(--muted)}

/* Product tabs + grid */
.section-head-tabs{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.section-head-tabs .tabs{justify-self:center}
.section-head-tabs .view-all{justify-self:end}
.tabs{display:flex;gap:26px}
.tab{padding:0 0 12px;font-size:14px;font-weight:700;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}
.tab.is-active{color:var(--ink);border-color:var(--orange)}
.product-grid,.post-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.product-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;transition:.2s;position:relative;display:flex;flex-direction:column;height:100%}
.product-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.product-media{position:relative;background:var(--soft);display:block;flex:none}
.product-media img{height:200px}
.product-tags{position:absolute;left:10px;top:10px;display:flex;gap:6px}
.tag{padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;background:#fff}
.tag.sale{background:var(--red);color:#fff}
.wishlist{position:absolute;right:10px;top:10px;width:32px;height:32px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:var(--shadow-sm)}
.product-info{padding:15px;display:flex;flex-direction:column;flex:1}
.brand{font-size:10px;font-weight:800;color:var(--orange);text-transform:uppercase;letter-spacing:.6px}
.product-name{font-size:14px;line-height:1.5;margin:6px 0 10px;min-height:42px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-desc{font-size:12.5px;line-height:1.5;color:var(--muted);margin:0 0 10px;min-height:38px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.price-row{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.price b,.price-sale{font-size:17px;font-weight:800;color:var(--red)}
.price del,.price-old{display:block;font-size:11px;color:#9ba49f;text-decoration:line-through}
.price-sale--contact{font-size:12.5px;line-height:1.3;display:block;max-width:130px}
.card-actions{display:flex;gap:6px;margin-top:auto;padding-top:10px}
.card-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:8px 4px;border-radius:9px;background:var(--soft);color:var(--ink);font-size:11px;font-weight:700;border:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:.15s}
.card-action-btn i{font-size:12px}
.card-action-btn svg{width:14px;height:14px;flex-shrink:0}
.card-action-btn:hover{border-color:var(--orange);color:var(--orange)}
.card-action-btn--zalo{background:#0068ff;border-color:#0068ff;color:#fff}
.card-action-btn--zalo:hover{background:#0054cc;border-color:#0054cc;color:#fff}
.card-action-btn--tiktok{background:#0a0a0a;border-color:#0a0a0a;color:#fff}
.card-action-btn--tiktok:hover{background:#000;border-color:#000;color:#25f4ee}
.card-action-btn--tiktok.is-inactive{cursor:default}
.card-action-btn--tiktok.is-inactive:hover{background:#0a0a0a;border-color:#0a0a0a;color:#fff}

/* Brand strip */
.brand-feature-section{position:relative;background:#fff;padding:42px 0 44px;overflow:hidden}
.brand-feature-section:before{display:none}
.brand-feature-section .container{position:relative}
.brand-feature-section .section-head{align-items:end;margin-bottom:20px}
.brand-feature-section .section-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#fff4ec;border:1px solid #ffe0cd;color:var(--orange)}
.brand-feature-section .section-kicker:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(242,121,10,.12)}
.brand-feature-section .view-all{padding:10px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 24px rgba(17,24,39,.06)}
.brand-feature-section .view-all:hover{border-color:#ffd8c0;box-shadow:0 14px 30px rgba(198,42,23,.1);transform:translateY(-1px)}
.brand-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.brand-card{position:relative;min-height:92px;border:1px solid rgba(225,222,216,.9);border-radius:16px;display:flex;align-items:center;justify-content:flex-start;gap:12px;text-align:left;background:#fff;font-weight:800;font-size:15px;color:#3f474c;padding:16px 18px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,color .18s ease;box-shadow:0 8px 18px rgba(17,24,39,.04);overflow:hidden}
.brand-card:before{content:"";position:absolute;inset:auto -18px -28px auto;width:72px;height:72px;border-radius:50%;background:var(--brand-soft,#fff0e7)}
.brand-card:after{content:"\f061";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;right:16px;bottom:14px;color:#e4b49a;font-size:12px;opacity:0;transform:translateX(-4px);transition:.18s ease}
.brand-card__logo{position:relative;z-index:1;width:46px;height:46px;border-radius:15px;background:linear-gradient(135deg,var(--brand-a,#f04438),var(--brand-b,#fb923c));color:#fff;display:grid;place-items:center;flex:none;font-size:18px;font-weight:900;box-shadow:0 12px 24px var(--brand-shadow,rgba(239,68,68,.22))}
.brand-card__logo img{width:100%;height:100%;object-fit:contain;padding:7px;background:#fff;border-radius:inherit}
.brand-card__name{position:relative;z-index:1;line-height:1.25}
.brand-card--tone-1{--brand-a:#ef4444;--brand-b:#f97316;--brand-soft:rgba(239,68,68,.1);--brand-shadow:rgba(239,68,68,.23)}
.brand-card--tone-2{--brand-a:#0ea5e9;--brand-b:#2563eb;--brand-soft:rgba(37,99,235,.1);--brand-shadow:rgba(37,99,235,.22)}
.brand-card--tone-3{--brand-a:#22c55e;--brand-b:#14b8a6;--brand-soft:rgba(20,184,166,.1);--brand-shadow:rgba(20,184,166,.22)}
.brand-card--tone-4{--brand-a:#a855f7;--brand-b:#6366f1;--brand-soft:rgba(168,85,247,.1);--brand-shadow:rgba(99,102,241,.2)}
.brand-card--tone-5{--brand-a:#f59e0b;--brand-b:#ea580c;--brand-soft:rgba(245,158,11,.12);--brand-shadow:rgba(245,158,11,.22)}
.brand-card--tone-6{--brand-a:#ec4899;--brand-b:#e11d48;--brand-soft:rgba(236,72,153,.1);--brand-shadow:rgba(236,72,153,.2)}
.brand-card:hover{border-color:var(--brand-b,#ffc8a8);color:var(--brand-b,var(--orange));transform:translateY(-4px);box-shadow:0 18px 38px var(--brand-shadow,rgba(198,42,23,.12))}
.brand-card:hover:after{opacity:1;transform:translateX(0)}
.brand-note{display:inline-flex;align-items:center;gap:6px;color:var(--muted);margin:14px 0 0;line-height:1.5;padding:10px 14px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 18px rgba(17,24,39,.035)}
.brand-note:before{content:"\f05a";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--orange)}

/* Danh ba nha ban /shop/ + danh ba thuong hieu /thuong-hieu/ (lop dung chung) */
.hub-hero{position:relative;overflow:hidden;background-position:center right;background-size:cover;padding:60px 0 72px}
.hub-hero__icon{position:absolute;top:-44px;right:-10px;font-size:210px;line-height:1;color:rgba(198,42,23,.045);pointer-events:none;transform:rotate(-8deg);z-index:0}
.hub-hero .container{position:relative;z-index:1}
.hub-hero__desc{max-width:560px;color:var(--muted);font-size:15.5px;line-height:1.65;margin:12px 0 26px}
.hub-hero__stats{display:flex;gap:14px;flex-wrap:wrap}
.hub-hero__stat{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:13px 20px 13px 15px;box-shadow:var(--shadow-sm);transition:.2s}
.hub-hero__stat:hover{border-color:var(--orange);box-shadow:var(--shadow)}
.hub-hero__stat-icon{width:38px;height:38px;border-radius:11px;background:#fdf0e4;color:var(--orange);display:grid;place-items:center;font-size:15px;flex:none}
.hub-hero__stat strong{display:block;font-size:21px;color:var(--ink);line-height:1.15}
.hub-hero__stat span{font-size:11.5px;color:var(--muted)}

.directory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.directory-card{position:relative;display:block;padding:24px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-sm);transition:.25s;overflow:hidden}
.directory-card:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--orange),var(--red));transform:scaleX(0);transform-origin:left;transition:transform .25s}
.directory-card:hover{border-color:transparent;box-shadow:var(--shadow);transform:translateY(-4px)}
.directory-card:hover:before{transform:scaleX(1)}
.directory-card__top{display:flex;align-items:flex-start;gap:14px;margin-bottom:6px}
.directory-card__top img{width:52px;height:52px;border-radius:14px;object-fit:cover;flex:none;box-shadow:0 6px 14px rgba(0,0,0,.12)}
.directory-card__icon{width:52px;height:52px;border-radius:14px;background:var(--soft);color:var(--muted);display:grid;place-items:center;font-size:20px;flex:none}
.directory-card__top strong{display:block;font-size:16.5px;color:var(--ink);margin-bottom:7px;line-height:1.3}
.directory-card__badges{display:flex;flex-wrap:wrap;gap:6px}
.directory-card__verified{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;color:#1e6b2c;background:#eaf6ec;padding:3px 9px;border-radius:999px}
.directory-card__unverified{display:inline-flex;align-items:center;font-size:11px;font-weight:700;color:var(--muted);background:var(--soft);padding:3px 9px;border-radius:999px}
.directory-card__meta{font-size:13px;color:var(--muted);margin:12px 0 0}
.directory-card__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.directory-card__stat{font-size:12.5px;color:var(--muted);font-weight:700;margin:0}
.directory-card__cta{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;color:var(--orange);white-space:nowrap}
.directory-card__cta i{font-size:11px;transition:transform .2s}
.directory-card:hover .directory-card__cta i{transform:translateX(3px)}
.brand-note a{color:var(--orange);font-weight:700}

/* Avatar chu cai dau + badge phan khuc cho the thuong hieu (khong co logo
   that nen dung monogram mau theo phan khuc thay vi anh gia/placeholder) */
.directory-card__avatar{width:52px;height:52px;border-radius:14px;flex:none;display:grid;place-items:center;
  font-size:19px;font-weight:800;color:#fff;box-shadow:0 6px 14px rgba(0,0,0,.14);transition:transform .25s;
  background:linear-gradient(150deg,var(--orange),var(--orange-dark))}
.directory-card:hover .directory-card__avatar{transform:scale(1.06) rotate(-3deg)}
.directory-card__avatar--luxury{background:linear-gradient(150deg,#2b2d33,#111214)}
.directory-card__avatar--cao-cap{background:linear-gradient(150deg,var(--red),#8a1c0f)}
.directory-card__avatar--trung-cap{background:linear-gradient(150deg,var(--orange),var(--orange-dark))}
.directory-card__avatar--pho-thong{background:linear-gradient(150deg,#8a9088,#5c625a)}
.directory-card__tier{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;text-transform:uppercase;
  letter-spacing:.5px;padding:3px 9px;border-radius:999px;background:var(--soft);color:var(--muted)}
.directory-card__tier:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.directory-card__tier--luxury{background:#1c1d21;color:#f0dcb8}
.directory-card__tier--cao-cap{background:#fdf0e4;color:var(--orange-dark)}
.directory-card__tier--trung-cap{background:#eef3ea;color:#4a6a3a}
.directory-card__tier--pho-thong{background:var(--soft);color:#5c625a}

.brand-hub-group{margin-bottom:36px}
.brand-hub-group:last-child{margin-bottom:0}
.brand-hub-group__title{display:flex;align-items:center;gap:10px;margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:19px}
.brand-hub-group__dot{width:10px;height:10px;border-radius:50%;flex:none;box-shadow:0 0 0 4px rgba(0,0,0,.05)}
.brand-hub-group__dot--pho-thong{background:#8a9088}
.brand-hub-group__dot--trung-cap{background:var(--orange)}
.brand-hub-group__dot--cao-cap{background:var(--red)}
.brand-hub-group__dot--luxury{background:#1c1d21}
.brand-hub-group__dot--khac{background:#c7cbc7}
.brand-hub-group__title small{font-size:12.5px;font-weight:600;color:var(--muted)}

@media(max-width:800px){
  .hub-hero__icon{display:none}
}

/* CTA duo banners */
.cta-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.cta-card{border-radius:var(--radius-lg);padding:38px;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:20px;overflow:hidden}
.cta-card.dark{background:var(--dark);color:#fff}
.cta-card.cream{background:var(--cream);color:var(--ink)}
.cta-card h3{font-size:24px;line-height:1.25;margin:8px 0 14px}
.cta-list{display:grid;gap:8px;margin:0 0 20px;font-size:13px}
.cta-list div{display:flex;gap:9px;align-items:center}
.cta-card.dark .cta-list i{color:var(--orange)}
.cta-card.cream .cta-list i{color:var(--red)}
.cta-card img{width:100%;height:220px;object-fit:cover;border-radius:16px}
.cta-mini{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 18px;font-size:12px}
.cta-mini div{display:flex;gap:8px;align-items:center;color:var(--ink)}
.cta-mini i{color:var(--red)}

/* Style gallery (Cam hung khong gian) */
.style-gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.style-card{position:relative;border-radius:var(--radius);overflow:hidden;min-height:150px}
.style-card img{height:100%;position:absolute;inset:0}
.style-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,10,10,.75))}
.style-card span{position:absolute;left:12px;right:12px;bottom:12px;color:#fff;font-size:13px;font-weight:700}

/* Editorial trust section (giu lai chinh sach khong bia du lieu) */
.commitment-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.commitment-card{border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;background:#fff;transition:.25s;position:relative;overflow:hidden}
.commitment-card:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--orange),var(--red));transform:scaleX(0);transform-origin:left;transition:transform .25s}
.commitment-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:transparent}
.commitment-card:hover:before{transform:scaleX(1)}
.commitment-icon{width:46px;height:46px;border-radius:13px;background:#fdf0e4;color:var(--orange);display:grid;place-items:center;font-size:18px;margin-bottom:16px}
.commitment-card b{display:block;font-size:16px;margin-bottom:8px}
.commitment-card p{font-size:13.5px;line-height:1.8;color:#4d5257;margin:0 0 18px}
.commitment-link{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;color:var(--orange)}
.commitment-link i{font-size:11px;transition:transform .2s}
.commitment-card:hover .commitment-link i{transform:translateX(3px)}

/* Bottom trust strip */
.trust-strip{margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);gap:1px;border:1px solid var(--line);border-radius:var(--radius);background:var(--line);overflow:hidden}
.trust-strip-item{padding:24px 18px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;text-align:center;background:#fff}
.trust-strip-item:last-child{border-right:0}
.trust-strip-icon{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,#fff1e8,#f7f4ef);color:var(--orange);display:grid;place-items:center;font-size:22px;flex:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 10px 22px rgba(198,42,23,.08)}
.trust-strip b{display:block;font-size:14px;line-height:1.35}
.trust-strip small{color:var(--muted);font-size:12px;line-height:1.55}

/* Footer */
footer{margin-top:0;background:var(--dark);color:#c7cbd0;padding:56px 0 22px}
footer>.container{width:min(1440px,88%)}
.footer-grid{display:grid;grid-template-columns:minmax(260px,1.15fr) max-content max-content minmax(330px,1.35fr);gap:clamp(20px,1.6vw,28px);align-items:start}
footer .brand-wordmark__sofa{color:#fff}
footer .brand-wordmark__domain{color:#fff}
.footer-logo small{color:#9096a0}
.footer-brand p{font-size:13px;line-height:1.8;color:#9096a0;max-width:340px}
.footer-title{font-size:14px;color:#fff;margin:0 0 16px}
.footer-links,.footer-links ul{display:grid;gap:11px;font-size:13px;color:#9096a0;list-style:none;margin:0;padding:0}
.footer-links a:hover{color:#fff}
.footer-brand-contact{display:grid;gap:10px;margin-top:18px;font-size:13px;color:#aeb4bd}
.footer-brand-contact a,.footer-brand-contact__item{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:9px;width:fit-content;max-width:100%;line-height:1.55}
.footer-brand-contact i{color:var(--orange);margin-top:3px;text-align:center}
.footer-brand-contact a:hover{color:#fff}
.socials{display:flex;gap:10px;margin-top:18px}
.socials a{width:36px;height:36px;border-radius:10px;background:#26282e;display:grid;place-items:center}
.socials a:hover{background:var(--orange)}
.newsletter-box{min-width:0;background:#26282e;border-radius:var(--radius);padding:20px 22px}
.newsletter-box p{font-size:12.5px;color:#9096a0;margin:0 0 12px;line-height:1.7}
.newsletter-form{display:flex;flex-wrap:wrap;background:#f3f2f0;padding:3px;border-radius:var(--radius-sm);width:100%}
.newsletter-form input{border:0;outline:none;flex:1;min-height:44px;padding:0 12px;min-width:0;background:transparent;font-size:13px}
.newsletter-form button{width:48px;min-height:44px;border:0;background:var(--orange);color:#fff;border-radius:8px;padding:0;font-weight:700}
.newsletter-form button:disabled{opacity:.65;cursor:wait}
.newsletter-message{display:block;flex:0 0 100%;margin:10px 6px 2px;color:#5f6670;font-size:12px;line-height:1.45}
.newsletter-message:empty{display:none}
.footer-bottom{border-top:1px solid #2c2f36;margin-top:38px;padding-top:20px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;color:#767b80;font-size:12px}
.footer-bottom a{color:#9096a0}
.footer-bottom a:hover{color:#fff}
.footer-legal{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px 0}
.footer-legal a{display:inline-flex;align-items:center;white-space:nowrap}
.footer-legal a:not(:last-child):after{content:"";width:1px;height:12px;background:#3b3f47;margin:0 12px}

/* Mobile nav / floating contact */
.mobile-nav{display:none}

/* Popup "Nhan bao gia tot nhat" - gan san voi 1 san pham + shop dang tin */
.price-request-modal{position:fixed;inset:0;z-index:90;background:rgba(20,20,20,.54);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;padding:20px}
.price-request-modal[aria-hidden=false]{display:flex}
.price-request-modal__panel{position:relative;width:min(560px,100%);max-height:90vh;overflow:auto;background:linear-gradient(180deg,#fff 0%,#fff 68%,#fffaf5 100%);border:1px solid rgba(255,255,255,.72);border-radius:28px;padding:34px 38px 32px;box-shadow:0 26px 70px rgba(17,24,39,.28)}
.price-request-modal__head{display:flex;gap:16px;align-items:flex-start;padding-right:44px}
.price-request-modal__icon{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#fff1e8,#ffe2d4);color:var(--orange);display:grid;place-items:center;box-shadow:0 12px 24px rgba(198,42,23,.14);flex:none}
.price-request-modal__panel h2{margin:0 0 8px;font-size:26px;line-height:1.2;letter-spacing:0}
.price-request-modal__product{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.price-request-modal__product strong{color:var(--ink)}
.price-request-modal__perks{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 18px}
.price-request-modal__perks span{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:#fff7f0;border:1px solid #ffe1cf;color:#9a3b23;font-size:12.5px;font-weight:700}
.price-request-modal__perks i{font-size:11px;color:var(--orange)}
.price-request-modal__close{position:absolute;top:18px;right:18px;border:0;background:#f6f3ef;width:40px;height:40px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;color:var(--muted);transition:.18s ease}
.price-request-modal__close:hover{background:#efe9e3;color:var(--ink);transform:rotate(90deg)}
.price-request-form{padding:20px;border-radius:22px;background:rgba(255,255,255,.72);border:1px solid var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.price-request-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.price-request-form label{display:grid;gap:7px;margin:0 0 12px;color:#4d5652;font-size:13px;font-weight:700}
.price-request-form input,.price-request-form select,.price-request-form textarea{width:100%;border:1px solid #e1ded8;border-radius:14px;padding:13px 14px;background:#fff;color:var(--ink);font:inherit;font-size:14px;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.price-request-form input:focus,.price-request-form select:focus,.price-request-form textarea:focus{border-color:#f2790a;box-shadow:0 0 0 4px rgba(242,121,10,.12);background:#fffdfb}
.price-request-form textarea{resize:vertical;min-height:86px}
.price-request-modal__privacy{display:flex;align-items:center;gap:8px;margin:2px 0 14px;color:var(--muted);font-size:12.5px;line-height:1.5}
.price-request-modal__privacy i{color:var(--orange)}
.price-request-form .btn-lime{width:100%;min-height:54px;border-radius:16px;background:linear-gradient(135deg,#e9361f,#b92215);box-shadow:0 12px 26px rgba(198,42,23,.22);font-size:15px;transition:transform .16s ease,box-shadow .16s ease}
.price-request-form .btn-lime:hover{background:linear-gradient(135deg,#f0442b,#c92a1a);box-shadow:0 16px 32px rgba(198,42,23,.28);transform:translateY(-1px)}
.price-request-form .form-message{min-height:18px}
.floating-contact{position:fixed;right:18px;bottom:18px;z-index:71;display:flex;flex-direction:column;gap:12px}
.floating-contact__btn{position:relative;isolation:isolate;min-width:150px;min-height:56px;display:flex;align-items:center;justify-content:center;gap:10px;color:#fff;font-weight:800;font-size:14px;
  border-radius:18px;padding:0 20px;overflow:hidden;box-shadow:0 16px 34px rgba(17,24,39,.18);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.floating-contact__btn:before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.36) 42%,transparent 70%);transform:translateX(-130%) skewX(-18deg);transition:transform .55s ease;z-index:-1}
.floating-contact__btn:after{content:"";position:absolute;inset:-7px;border-radius:24px;background:inherit;filter:blur(18px);opacity:.26;z-index:-2}
.floating-contact__btn:hover{transform:translateY(-3px) scale(1.015);box-shadow:0 22px 42px rgba(17,24,39,.24);filter:saturate(1.08)}
.floating-contact__btn:hover:before{transform:translateX(130%) skewX(-18deg)}
.floating-contact__btn i,.floating-contact__btn svg{position:relative;z-index:1;flex:none}
.floating-contact__btn i{font-size:16px}
.floating-contact__btn--call{background:linear-gradient(135deg,#ef3b24,#c72516 56%,#a91d12);animation:floating-call-pulse 2.8s ease-in-out infinite}
.floating-contact__btn--zalo{background:linear-gradient(135deg,#1682ff,#0068ff 58%,#004fd0)}
@keyframes floating-call-pulse{0%,100%{box-shadow:0 16px 34px rgba(198,42,23,.2),0 0 0 0 rgba(198,42,23,.18)}50%{box-shadow:0 18px 38px rgba(198,42,23,.25),0 0 0 8px rgba(198,42,23,0)}}
.cookie-notice{position:fixed;left:0;right:0;bottom:0;z-index:70;background:#1b1b1b;color:#fff;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;padding:14px 20px}
.cookie-notice[hidden]{display:none}
.cookie-notice p{margin:0;font-size:13.5px;max-width:640px;color:rgba(255,255,255,.88)}
.cookie-notice p a{color:#fff;text-decoration:underline}
.cookie-notice .btn{flex:none;padding:9px 18px;font-size:13px}
@media(max-width:600px){.cookie-notice{padding:14px 16px 86px}.cookie-notice p{font-size:12.5px}}

/* Shop / detail / contact / checkout pages (retint, structure unchanged) */
.archive-hero,.page-hero,.product-detail{background:var(--soft);padding:52px 0}
.content-narrow{max-width:820px}

/* Cac lop dung chung cho trang danh muc/bien tap (single.php, taxonomy-ts_*.php,
   trang tinh...) - truoc day cac class nay hoan toan chua co CSS rieng nen
   nhieu trang nhin rat tho so (breadcrumb/chip/prose deu la text mac dinh). */
.eyebrow{color:var(--orange);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1.6px;margin:0 0 8px}
.ts-breadcrumb{font-size:12.5px;color:var(--muted);margin-bottom:16px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ts-breadcrumb a{color:var(--muted)}
.ts-breadcrumb a:hover{color:var(--orange)}
.ts-breadcrumb .sep{color:#c8c6c2}
.ts-breadcrumb [aria-current]{color:var(--ink);font-weight:700}

.cat-hero{background:linear-gradient(180deg,#fff,var(--soft))}
.cat-hero__stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.cat-hero__stat{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--ink);
  background:#fff;border:1px solid var(--line);padding:9px 15px;border-radius:999px;box-shadow:var(--shadow-sm)}
.cat-hero__stat i{color:var(--orange)}
.cat-hero__lead{color:var(--muted);font-size:15.5px;line-height:1.7;max-width:640px;margin:10px 0 0}

/* Hero /hoi-dap/ - phong cach rieng cho chu de hoi dap: watermark dau hoi mo
   phia sau + chip so lieu duoc ve nhu bong thoai (khong dung anh, chi CSS/icon).
   Chi anh huong trong pham vi .qa-hero, khong doi cat-hero o cac trang khac. */
.qa-hero{position:relative;overflow:hidden}
.qa-hero__icon{position:absolute;top:-52px;right:-16px;font-size:230px;line-height:1;
  color:rgba(198,42,23,.05);pointer-events:none;transform:rotate(8deg);z-index:0}
.qa-hero .container{position:relative;z-index:1}
.qa-hero .eyebrow{display:inline-flex;align-items:center;gap:7px;background:#fdf0e4;
  color:var(--orange-dark);padding:6px 14px;border-radius:999px;font-size:11.5px}
.qa-hero .cat-hero__stat{position:relative;border-radius:16px 16px 16px 4px}
.qa-hero .cat-hero__stat:after{content:"";position:absolute;left:16px;bottom:-6px;width:0;height:0;
  border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #fff;
  filter:drop-shadow(0 1.5px 0 var(--line))}
@media(max-width:800px){.qa-hero__icon{font-size:150px;top:-24px}}

/* Hero cho cac trang hub kien thuc con lai (/bang-gia/, /dich-vu/, /khac-phuc/...)
   - cung co che voi .qa-hero (watermark icon mo + eyebrow dang badge + chip
   bong thoai) nhung moi trang 1 mau nhan dien rieng de khong bi giong het
   nhau. Dung ".topic-hero--{mau}" de chon mau, khong can lam lai CSS moi lan. */
.topic-hero{position:relative;overflow:hidden}
.topic-hero__icon{position:absolute;top:-52px;right:-16px;font-size:230px;line-height:1;
  pointer-events:none;transform:rotate(8deg);z-index:0}
.topic-hero .container{position:relative;z-index:1}
.topic-hero .eyebrow{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:999px;font-size:11.5px}
.topic-hero .cat-hero__stat{position:relative;border-radius:16px 16px 16px 4px}
.topic-hero .cat-hero__stat:after{content:"";position:absolute;left:16px;bottom:-6px;width:0;height:0;
  border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #fff;
  filter:drop-shadow(0 1.5px 0 var(--line))}
@media(max-width:800px){.topic-hero__icon{font-size:150px;top:-24px}}

.topic-hero--gold .topic-hero__icon{color:rgba(180,134,11,.07)}
.topic-hero--gold .eyebrow{background:#fbf1da;color:#8a6519}
.topic-hero--teal .topic-hero__icon{color:rgba(11,107,121,.07)}
.topic-hero--teal .eyebrow{background:#e2f1f2;color:#0b6b79}
.topic-hero--amber .topic-hero__icon{color:rgba(180,95,6,.07)}
.topic-hero--amber .eyebrow{background:#fdf0e4;color:#a1690a}

/* Hero danh muc san pham (/sofa/, /phu-kien/, /thuong-hieu/) - nen toi + icon
   watermark rieng cho tung danh muc, tach biet ro voi cac hero pha trang/xam
   nhat cua trang bien tap (cat-hero) va vung mau trung/header phia tren.
   Dung chung .cat-hero cho breadcrumb/stats/lead, chi doi mau sac o day. */
.catalog-hero{position:relative;overflow:hidden;background:var(--dark);color:#fff}
.catalog-hero--image{background-color:var(--dark);background-size:cover;background-position:center right}
.catalog-hero--image:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(26,28,32,.96) 0%,rgba(26,28,32,.88) 34%,rgba(26,28,32,.50) 62%,rgba(26,28,32,.18) 100%);z-index:0}
.catalog-hero--image .catalog-hero__icon{display:none}
.catalog-hero--image .qa-hero__icon,.catalog-hero--image .topic-hero__icon{display:none}
.catalog-hero__icon{position:absolute;top:-46px;right:-14px;font-size:250px;line-height:1;
  color:rgba(255,255,255,.045);pointer-events:none;transform:rotate(-6deg);z-index:0}
.catalog-hero .container{position:relative;z-index:1}
.catalog-hero .ts-breadcrumb,.catalog-hero .ts-breadcrumb a{color:#9096a0}
.catalog-hero .ts-breadcrumb a:hover{color:#fff}
.catalog-hero .ts-breadcrumb .sep{color:#42454d}
.catalog-hero .ts-breadcrumb [aria-current]{color:#fff}
.catalog-hero .eyebrow{color:var(--orange)}
.catalog-hero h1{color:#fff}
.catalog-hero .cat-hero__lead{color:#b7bcc2}
.catalog-hero .container > p:not(.eyebrow):not(.cat-hero__lead){color:#b7bcc2;line-height:1.7;max-width:640px;margin:10px 0 0}
.catalog-hero .brand-wordmark{color:#fff}
.catalog-hero .brand-wordmark__find{color:#f04438;text-shadow:0 1px 10px rgba(0,0,0,.25)}
.catalog-hero .brand-wordmark__sofa,
.catalog-hero .brand-wordmark__domain{color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.28)}
.catalog-hero .cat-hero__stat{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#fff}
.catalog-hero .cat-hero__stat i{color:var(--orange)}
.catalog-hero .view-all{color:#fff;border-bottom:1px solid rgba(255,255,255,.3)}
.catalog-hero .view-all:hover{border-color:#fff}
.catalog-hero .hub-hero__desc{color:#b7bcc2}
.catalog-hero .hub-hero__stat{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}
.catalog-hero .hub-hero__stat:hover{border-color:var(--orange)}
.catalog-hero .hub-hero__stat-icon{background:rgba(255,255,255,.1)}
.catalog-hero .hub-hero__stat strong{color:#fff}
.catalog-hero .hub-hero__stat span{color:#9096a0}

/* Noi dung bien tap dai dat ngay duoi luoi san pham (trong cung cot voi luoi,
   khong dung chung khung voi sidebar bo loc) - clamp bang CSS thuan (input
   checkbox + sibling selector), KHONG dung JS va KHONG xoa noi dung khoi HTML
   nen van duoc Google index day du, chi an bot bang chieu cao truoc khi bam
   "Xem them". */
.content-collapse{position:relative}
.content-collapse__body{max-height:480px;overflow:hidden;position:relative}
.content-collapse__body:after{content:"";position:absolute;left:0;right:0;bottom:0;height:110px;
  background:linear-gradient(180deg,rgba(255,255,255,0),#fff);pointer-events:none}
.content-collapse__btn{display:flex;width:fit-content;align-items:center;gap:9px;margin:18px auto 0;
  padding:13px 24px;border:1px solid rgba(198,42,23,.14);border-radius:999px;
  font-weight:800;font-size:13.5px;color:#fff;cursor:pointer;background:linear-gradient(135deg,#f0442b 0%,#d72d1b 48%,#b92315 100%);
  box-shadow:0 12px 24px rgba(198,42,23,.16),inset 0 1px 0 rgba(255,255,255,.22);transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.content-collapse__btn i{transition:transform .16s ease}
.content-collapse__btn:hover{background:linear-gradient(135deg,#f0442b,#c42818);transform:translateY(-2px);box-shadow:0 18px 36px rgba(198,42,23,.24)}
.content-collapse__btn:hover i{transform:translateY(2px)}
.content-collapse__toggle:checked ~ .content-collapse__body{max-height:none}
.content-collapse__toggle:checked ~ .content-collapse__body:after{display:none}
.content-collapse__toggle:checked ~ .content-collapse__btn{display:none}
.home-content-section{padding:30px 0 42px}
.home-content-collapse .content-collapse__body{max-height:255px}
.home-content-collapse .content-collapse__body:after{height:128px;background:linear-gradient(180deg,rgba(250,248,245,0),rgba(250,248,245,.9) 58%,var(--soft) 100%)}
.home-content-collapse .content-collapse__btn{margin-top:10px}

/* Cac "chuong" doc them (kien thuc, FAQ) dat chung cot voi luoi san pham tren
   /sofa/ - ke phan cach + khoang cach ro rang de khong dinh lien vao luoi. */
.shop-layout__reading,.shop-layout__faq{margin-top:44px;padding-top:32px;border-top:1px solid var(--line)}
.shop-layout__reading .section-head,.shop-layout__faq .section-head{margin-bottom:20px}
@media(max-width:800px){.catalog-hero__icon{display:none}}

/* Section ngay sau hero danh muc (vd "Loc theo:") thuong chi co 1 dong chip -
   giam padding mac dinh 70px de tranh khoang trong lon truoc phan noi dung chinh. */
.cat-hero + section{padding-top:26px}
.ts-page-updated{margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}

/* Muc luc Sofa Wiki (page-wiki.php) - nhom that theo _ts_kg_parent */
.wiki-index{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.wiki-index__group{position:relative;border:1px solid var(--line);border-radius:var(--radius);padding:24px 22px;
  background:#fff;overflow:hidden;transition:transform .2s,box-shadow .2s}
.wiki-index__group:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--orange),var(--red));transform:scaleX(0);transform-origin:left;transition:transform .25s}
.wiki-index__group:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.wiki-index__group:hover:before{transform:scaleX(1)}
.wiki-index__group h3{margin:0 0 14px;font-size:16px;display:flex;align-items:center;gap:8px}
.wiki-index__count{font-size:11.5px;font-weight:700;color:var(--muted);background:var(--soft);padding:2px 9px;border-radius:999px}
.wiki-index__terms{display:flex;flex-wrap:wrap;gap:8px}
.wiki-index__terms a{font-size:13px;font-weight:600;padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:var(--soft);transition:.15s}
.wiki-index__terms a:hover{border-color:var(--orange);color:var(--orange);background:#fff;transform:translateY(-1px)}

@media(max-width:800px){
  .wiki-index{grid-template-columns:1fr}
}

/* Trang bai viet bien tap (single.php - dung cho toan bo namespace ts_*) */
.premium-hero{position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--cream) 0%,#fff 55%,var(--soft) 100%)}
.premium-hero__icon{position:absolute;top:-46px;right:-10px;font-size:220px;line-height:1;
  color:rgba(198,42,23,.05);pointer-events:none;transform:rotate(-8deg)}
.premium-hero .eyebrow{display:inline-flex;align-items:center;gap:8px;position:relative;z-index:1}
.premium-hero h1{position:relative;z-index:1;max-width:820px}
.article-lede-card{position:relative;z-index:1;display:flex;gap:14px;align-items:flex-start;
  background:#fff;border:1px solid var(--line);border-left:4px solid var(--orange);
  border-radius:var(--radius-sm);padding:18px 20px;margin-top:20px;box-shadow:var(--shadow-sm);max-width:720px}
.article-lede-card__badge{flex:none;width:30px;height:30px;border-radius:50%;background:#fdf0e4;
  color:var(--orange);display:grid;place-items:center;font-size:14px;margin-top:1px}
.article-lede-card p{margin:0;color:var(--ink);font-size:15.5px;line-height:1.7;font-weight:500}
.article-meta{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.article-meta span{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;
  color:var(--ink);background:#fff;border:1px solid var(--line);padding:7px 14px;border-radius:999px}
.article-meta span i{color:var(--orange);font-size:12px}
.article-meta a{color:var(--ink)}
.article-meta a:hover{color:var(--orange)}
.ts-pillar-link{margin-top:32px;padding-top:20px;border-top:1px solid var(--line)}
.ts-pillar-link a{font-weight:700;color:var(--orange)}
.ts-pillar-link a:hover{text-decoration:underline}

@media(max-width:800px){
  .premium-hero__icon{font-size:140px;top:-20px}
  .article-lede-card{padding:15px 16px}
}

.ts-subnav-label{font-size:12.5px;color:var(--muted);font-weight:700;margin:0 0 10px}
.ts-subnav{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0}
.ts-subnav-wrap{margin-bottom:24px}
.ts-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;
  font-size:13px;font-weight:600;background:#fff;transition:border-color .15s,color .15s,background .15s}
.ts-chip:hover{border-color:var(--orange);color:var(--orange);background:var(--soft)}
.ts-chip span{font-size:11px;color:var(--muted);opacity:.85}
.ts-chip.is-active{background:var(--orange);border-color:var(--orange);color:#fff}
.ts-chip.is-active span{color:#fff;opacity:.85}
.ts-chip.is-active:hover{background:var(--orange-dark);border-color:var(--orange-dark);color:#fff}

/* Hero danh muc con /sofa/{loai}/ - cung ho catalog-hero (nen toi) nhung gon
   hon, khong co icon nen lon, de phan biet cap con voi trang goc /sofa/. */
.catalog-hero--sub{padding:44px 0 52px}
.catalog-hero--sub .catalog-hero__icon{display:none}

.ts-article{line-height:1.8;font-size:15.5px;color:var(--ink)}
.ts-article h2{font-size:22px;margin:32px 0 14px;line-height:1.3}
.ts-article h3{font-size:18px;margin:26px 0 10px}
.ts-article p{margin:0 0 16px;color:#3a3d42}
.ts-article ul,.ts-article ol{margin:0 0 16px;padding-left:22px;color:#3a3d42}
.ts-article li{margin-bottom:6px}
.ts-article p,
.ts-article li,
.content-main p,
.content-main li,
.seo-block p,
.seo-block li,
.article-body.content-narrow p,
.shop-faq details p{
  text-align:justify;
  text-align-last:left;
  text-justify:inter-word;
  overflow-wrap:break-word;
}
.ts-article h1,.ts-article h2,.ts-article h3,.ts-article h4,
.content-main h1,.content-main h2,.content-main h3,.content-main h4,
.seo-block h1,.seo-block h2,.seo-block h3,.seo-block h4,
.article-body.content-narrow h1,.article-body.content-narrow h2,.article-body.content-narrow h3,.article-body.content-narrow h4{
  text-align:left;
}
.ts-article a{color:var(--orange);text-decoration:underline}
.ts-article img{border-radius:var(--radius);margin:16px 0}
.ts-article table{width:100%;border-collapse:collapse;margin:0 0 20px;font-size:14px}
.ts-article table th,.ts-article table td{padding:10px 14px;border:1px solid var(--line);text-align:left}
.ts-article table th{background:var(--soft)}

.ts-section-title{font-size:24px;margin:0 0 20px;letter-spacing:-.3px}

.ts-factbox{width:100%;border-collapse:collapse;margin-bottom:24px;font-size:14px}
.ts-factbox th{text-align:left;color:var(--muted);font-weight:600;padding:10px 16px 10px 0;white-space:nowrap;vertical-align:top;width:180px}
.ts-factbox td{padding:10px 0;border-bottom:1px solid var(--line)}
.ts-factbox tr:first-child th,.ts-factbox tr:first-child td{border-top:1px solid var(--line);padding-top:14px}
.ts-factbox tr:last-child td{border-bottom:0}

/* Cau hoi thuong gap (FAQ accordion) - dung chung cho trang shop/danh muc/
   thuong hieu/phu kien. Dung the <details>/<summary> co san, khong can JS. */
.shop-faq{display:flex;flex-direction:column;gap:12px;max-width:820px;margin:0 auto}
.shop-faq details{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:2px 22px;box-shadow:var(--shadow-sm)}
.shop-faq summary{cursor:pointer;list-style:none;display:flex;align-items:center;
  justify-content:space-between;gap:16px;padding:18px 0;font-weight:800;font-size:15.5px}
.shop-faq summary::-webkit-details-marker{display:none}
.shop-faq summary .shop-faq__chevron{flex:none;font-size:13px;color:var(--muted);transition:transform .2s ease}
.shop-faq details[open] summary{border-bottom:1px solid var(--line)}
.shop-faq details[open] summary .shop-faq__chevron{transform:rotate(180deg)}
.shop-faq details p{color:var(--muted);padding:16px 0 20px;margin:0;line-height:1.7}

.ts-note{color:var(--muted)}
.ts-unverified{background:#fff6ea;border:1px solid #f3dfb8;color:#8a6519;padding:10px 16px;border-radius:var(--radius-sm);font-size:13px;display:inline-block;margin-top:12px}

@media(max-width:800px){
  .cat-hero__stats{gap:8px}
  .cat-hero__stat{font-size:12px;padding:7px 12px}
}
.shop-layout{display:grid;grid-template-columns:260px 1fr;gap:24px}
.filters{border:1px solid var(--line);border-radius:var(--radius);padding:22px;height:max-content;position:sticky;top:160px;background:#fff}
.filter-group{padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.filter-group:last-child{border-bottom:0;margin-bottom:0}
.filter-group h4{margin:0 0 14px;font-size:14px}
.check{display:flex;align-items:center;justify-content:space-between;margin:11px 0;font-size:13px;color:#4f5c55}
.check label{display:flex;gap:9px;align-items:center}
.check span{font-size:11px;color:#9ca59f}
.filter-cat-link{display:flex;align-items:center;justify-content:space-between;padding:9px 2px;font-size:13px;font-weight:600;color:var(--ink)}
.filter-cat-link:hover{color:var(--orange)}
.filter-cat-link i{font-size:10px;color:var(--muted)}
.filter-cat-link.is-active{color:var(--orange)}
.filter-cat-link.is-active i{color:var(--orange)}

/* Trang thai "chua co san pham that" - dung cho cac danh muc/nhom con chua
   duoc dang hang (vd /phu-kien/{nhom}/) - thay vi 1 dong chu xam don le. */
.empty-state{text-align:center;padding:52px 32px;border:1px dashed var(--line);
  border-radius:var(--radius-lg);background:var(--soft)}
.empty-state__icon{width:56px;height:56px;border-radius:50%;background:#fff;color:var(--muted);
  display:grid;place-items:center;font-size:22px;margin:0 auto 16px;box-shadow:var(--shadow-sm)}
.empty-state h3{margin:0 0 8px;font-size:17px;color:var(--ink)}
.empty-state p{color:var(--muted);font-size:13.5px;line-height:1.7;max-width:460px;margin:0 auto 22px}
.empty-state__actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

.search-hero,.error-hero{background:linear-gradient(135deg,#fff 0%,#fff7f2 54%,#f7f4ef 100%)}
.search-page-form{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:center;max-width:860px;margin-top:22px}
.search-page-form input{width:100%;height:52px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:0 18px;font:inherit;box-shadow:0 12px 30px rgba(17,24,39,.06);outline:none}
.search-page-form input:focus{border-color:#efb19f;box-shadow:0 0 0 4px rgba(210,39,24,.09),0 14px 32px rgba(17,24,39,.08)}
.search-page-form .btn{min-height:52px;border-radius:16px;padding:0 20px;box-shadow:0 10px 24px rgba(17,24,39,.08)}
.pagination-wrap{margin-top:26px}
.pagination-wrap .nav-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.pagination-wrap .page-numbers{min-width:38px;height:38px;border:1px solid var(--line);border-radius:12px;display:inline-grid;place-items:center;padding:0 12px;background:#fff;color:var(--ink);font-weight:700}
.pagination-wrap .page-numbers.current,.pagination-wrap .page-numbers:hover{background:var(--orange);border-color:var(--orange);color:#fff}
.error-hero{padding:70px 0}
.error-hero__inner{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:38px;align-items:center}
.error-card{border:1px solid rgba(210,39,24,.14);border-radius:24px;background:rgba(255,255,255,.82);padding:26px;box-shadow:0 24px 60px rgba(17,24,39,.12);backdrop-filter:blur(10px)}
.error-card__code{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 16px;border-radius:999px;background:#fdf0e4;color:var(--orange);font-weight:900;margin-bottom:12px}
.error-card h2{margin:0 0 16px;font-size:22px}
.error-card a{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line);font-weight:800;color:var(--ink)}
.error-card a:hover{color:var(--orange)}
.error-card i{width:34px;height:34px;border-radius:12px;background:#fdf0e4;color:var(--orange);display:grid;place-items:center}

/* The dan dau /bang-gia/ - giai thich ngay tu dau vi sao khong co so cu the
   (dung chinh sach "lien he de co gia tot" toan site), dan sang CTA lien he
   thay vi de khach hut hang vi tim khong ra bang so. */
.price-lead-box{max-width:none;text-align:center}
.price-lead-box .side-box__icon{margin:0 auto 16px}
.price-lead-box p{margin:0 auto 18px;max-width:560px;text-align:left}
.price-lead-box .btn{width:fit-content;margin:0 auto;min-height:42px;padding:0 20px;font-size:13.5px}

/* Bang gia tham khao (khoang gia that hoac khao sat thi truong). GOC CUA LOI
   "de trong": mu-plugins/timsofa-architecture.php bom CSS rieng cho MOI
   trang singular voi rule ".content-narrow table{display:block;overflow-x:
   auto}" (danh cho bang van xuoi dai, tranh tran ngang tren mobile) - nhung
   no lam bang nay MAT hoan toan thuat toan chia cot cua CSS table (display
   khong con la "table" nua) nen cot khong chia het duoc chieu rong, de lai
   khoang trong "chet". Phai ep lai display:table + do rong cot qua
   <colgroup> trong HTML (cach duy nhat dang tin cay voi table-layout:fixed). */
.price-ref-table{display:table !important;width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;
  margin:18px 0 8px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.price-ref-table tbody{display:table-row-group}
.price-ref-table tr{display:table-row}
.price-ref-table th,.price-ref-table td{display:table-cell}
.price-ref-table th,.price-ref-table td{padding:13px 16px;text-align:left;font-size:13.5px;border-bottom:1px solid var(--line)}
.price-ref-table th{background:var(--soft);font-weight:800;font-size:11.5px;text-transform:uppercase;
  letter-spacing:.3px;color:var(--muted)}
.price-ref-table td{color:var(--ink)}
.price-ref-table tbody tr:nth-child(even){background:var(--soft)}
.price-ref-table tbody tr:last-child th,.price-ref-table tbody tr:last-child td{border-bottom:0}
.price-ref-table td:last-child{font-weight:700;color:var(--orange-dark)}
.price-ref-table__pct{color:var(--muted);font-weight:400;margin-left:4px}
.price-ref-table-note{margin:14px 0 0;font-size:12.5px;color:var(--muted)}

/* Fix: mu-plugins/timsofa-architecture.php bom mot khoi CSS rieng vao
   wp_head cho MOI trang singular (page/post) voi rule ".content-narrow a,
   .ts-article a{color:#0b6b4f}" danh cho link van xuoi trong bai - nhung no
   cung khop luon the <a class="btn ...">, lam nut bam bi doi mau sai bat cu
   dau dat trong .content-narrow/.ts-article tren 1 trang "page" (khong xay
   ra tren trang taxonomy vi mu-plugin chi bom cho is_singular()). Tang do
   dac hieu de cac nut giu dung mau rieng cua tung bien the. */
.content-narrow a.btn-lime,.ts-article a.btn-lime{color:#fff}
.content-narrow a.btn-soft,.ts-article a.btn-soft{color:var(--ink)}
.content-narrow a.btn-light,.ts-article a.btn-light{color:var(--ink)}
.content-narrow a.btn-zalo,.ts-article a.btn-zalo{color:#fff}

/* Hero ho so thuong hieu /thuong-hieu/{slug}/ - avatar chu cai dau + ten,
   dat canh nhau thay vi H1 don doc nhu truoc. */
.brand-profile-head{display:flex;align-items:center;gap:16px;margin-top:6px}
.brand-profile-head__avatar{width:60px;height:60px;font-size:22px;box-shadow:0 8px 20px rgba(0,0,0,.35)}
.brand-profile-head .eyebrow{margin-bottom:4px}
.brand-profile-head h1{margin:0}
.filters input[type=search],.lead-form input,.lead-form textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;background:#fff}
.reset-link{margin-top:12px}
.load-more-wrap{text-align:center;margin-top:28px}
.load-more-wrap .btn{min-width:220px}
.load-more-wrap .btn:disabled{opacity:.6;cursor:wait}
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.toolbar span{font-size:13px;color:var(--muted)}
.toolbar select{padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}
.detail-grid,.contact-grid,.checkout-grid,.content-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:30px}
.detail-media{display:flex;flex-direction:column;gap:10px;align-self:stretch}
.detail-zoom{width:100%;height:100%;padding:0;border:0;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);display:block;overflow:hidden;cursor:zoom-in}
.detail-image{flex:none;min-height:0;width:100%;height:100%;object-fit:contain;background:#fff;display:block;transform-origin:50% 50%;transition:transform .22s ease}
.detail-zoom:hover .detail-image{transform:scale(1.8)}
.image-lightbox{position:fixed;inset:0;z-index:100;background:rgba(10,10,10,.86);display:none;align-items:center;justify-content:center;padding:28px;backdrop-filter:blur(4px)}
.image-lightbox[aria-hidden=false]{display:flex}
.image-lightbox img{width:auto;height:auto;max-width:min(96vw,1600px);max-height:92vh;object-fit:contain;border-radius:18px;box-shadow:0 28px 70px rgba(0,0,0,.45)}
.image-lightbox__close{position:absolute;top:18px;right:18px;width:44px;height:44px;border:0;border-radius:999px;background:rgba(255,255,255,.92);color:var(--ink);font-size:28px;line-height:1;cursor:pointer;box-shadow:0 12px 32px rgba(0,0,0,.24)}
.image-lightbox__close:hover{background:#fff}
.detail-info,.contact-box,.lead-form,.checkout-cart,.seo-block{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:#fff;box-shadow:var(--shadow-sm)}
.contact-box p{display:flex;align-items:baseline;gap:10px;margin:0 0 14px}
.contact-box p:last-child{margin-bottom:0}
.contact-box p i{flex:none;width:16px;text-align:center;color:var(--orange);font-size:14px}
.contact-channel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.contact-channel-list li{display:flex;align-items:baseline;gap:10px}
.contact-channel-list li i{flex:none;width:16px;text-align:center;color:var(--orange);font-size:14px}
.contact-channel-list li strong{margin-right:4px}
.detail-info{border-radius:var(--radius-lg);padding:28px 34px;box-shadow:var(--shadow)}
.product-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.product-meta a{font-size:11.5px;font-weight:800;color:var(--orange);background:#fdf0e4;padding:5px 12px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px}
.detail-info h1{font-size:34px;line-height:1.15;letter-spacing:-.5px;margin:8px 0 12px}
.lead{color:var(--muted);line-height:1.7;font-size:15px}
.product-price.big{margin:16px 0 18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.product-price.big .price-sale{font-size:30px}
.product-price.big .price-old{font-size:14px;margin-top:4px}

/* Gia dang CTA "Lien he de co gia tot" - danh vao tam ly khach, khuyen khich bam lien he */
.price-cta{text-align:center}
.price-cta__badge{position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--red),var(--orange-dark));color:#fff;font:inherit;font-size:16px;font-weight:800;overflow:hidden;box-shadow:0 8px 20px rgba(198,42,23,.35);animation:price-cta-pulse 2.2s ease-in-out infinite;cursor:pointer}
.price-cta__badge i{font-size:14px}
.price-cta__badge:hover{transform:translateY(-2px)}
.price-cta__badge:after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);animation:price-cta-shine 2.6s ease-in-out infinite}
@keyframes price-cta-pulse{0%,100%{box-shadow:0 8px 20px rgba(198,42,23,.35)}50%{box-shadow:0 8px 26px rgba(198,42,23,.55),0 0 0 6px rgba(198,42,23,.09)}}
@keyframes price-cta-shine{0%{left:-60%}55%{left:130%}100%{left:130%}}
.price-cta__hint{margin:10px 0 0;font-size:12.5px;color:var(--muted)}
.spec-list{display:grid;gap:0;margin:0 0 18px}
.spec-list div{display:grid;grid-template-columns:150px 1fr;padding:13px 0;border-bottom:1px solid var(--line)}
.spec-list div:last-child{border-bottom:0}
.spec-list dt{font-weight:700;color:var(--muted);font-size:13.5px}
.spec-list dd{margin:0;font-weight:600;font-size:13.5px}
.spec-source{color:#9ba49f}
.spec-source a{color:var(--orange);font-weight:700}
.detail-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.detail-actions .btn{flex:1;min-width:160px;min-height:56px;border-radius:16px;font-size:15.5px;box-shadow:0 10px 24px rgba(17,24,39,.08);transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}
.detail-actions .btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(17,24,39,.13)}
.btn-zalo{background:linear-gradient(135deg,#1477ff,#0060e8);color:#fff}
.btn-zalo:hover{background:linear-gradient(135deg,#2884ff,#0057d3)}
.btn-soft{background:linear-gradient(180deg,#fff,#f7f4ef);color:var(--ink);border:1px solid #ded8cf}
.btn-soft:hover{background:#fff;border-color:#d2c9bd}
.form-message{font-weight:800;color:var(--orange)}

/* Side box (Phu hop voi) */
.side-box{border:1px solid var(--line);border-radius:var(--radius);padding:28px;background:linear-gradient(150deg,#fff,var(--soft));box-shadow:var(--shadow-sm);height:max-content}
.side-box__icon{width:44px;height:44px;border-radius:13px;background:#fdf0e4;color:var(--orange);display:grid;place-items:center;font-size:18px;margin-bottom:14px}
.side-box h3{margin:0 0 10px;font-size:17px}
.side-box p{color:var(--muted);line-height:1.7;font-size:14px;margin:0}
.product-page-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:32px;align-items:start}
.product-page-main{display:grid;gap:40px;min-width:0}
.product-page-sidebar{display:grid;gap:20px;position:sticky;top:104px}
.content-main h2{font-size:24px;margin:0 0 16px}
.content-main{line-height:1.8;color:#3d4440}
.product-spec-section{margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}
.product-spec-section .spec-list{margin-bottom:12px}
.product-page-main #comments{margin:0}

/* Audience panel (nguoi mua / cua hang) */
.audience-panel{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.audience-panel__col{position:relative;display:flex;gap:16px;padding:26px;border-radius:var(--radius);background:linear-gradient(150deg,#fff,var(--cream));border:1px solid var(--line);border-left:4px solid var(--orange);box-shadow:var(--shadow-sm)}
.audience-panel__icon{width:46px;height:46px;border-radius:13px;background:#fdf0e4;color:var(--orange);display:grid;place-items:center;font-size:19px;flex:none;box-shadow:0 6px 14px rgba(242,121,10,.18)}
.audience-panel__icon--accent{background:var(--orange);color:#fff;box-shadow:0 6px 14px rgba(0,0,0,.3)}
.audience-panel__col--highlight{background:var(--dark);border-color:transparent;border-left-color:transparent;color:#fff}
.audience-panel__col--highlight > div{padding-right:56px}
.audience-panel__kicker{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.audience-panel__col--highlight .audience-panel__kicker{color:#e7c9a8}
.audience-panel__free-badge{position:absolute;top:16px;right:16px;padding:5px 15px;border-radius:999px;background:linear-gradient(135deg,var(--orange),#ff9a4d);color:#fff;font-size:11px;font-weight:800;letter-spacing:.4px;overflow:hidden;box-shadow:0 6px 16px rgba(242,121,10,.45)}
.audience-panel__free-badge:after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-20deg);animation:audience-shine 2.6s ease-in-out infinite}
@keyframes audience-shine{0%{left:-60%}55%{left:130%}100%{left:130%}}
.audience-panel__text{margin:0;font-size:13.5px;line-height:1.7;color:var(--muted)}
.audience-panel__col--highlight .audience-panel__text{color:#cfd2d6}
.audience-panel__link{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:13px;font-weight:800;color:var(--orange)}
.audience-panel__col--highlight .audience-panel__link{color:#fff}

/* Shop box (ho so gian hang dang san pham) */
.shop-box{display:grid;grid-template-columns:64px 1fr;gap:18px;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}
.shop-box__avatar{width:64px;height:64px;border-radius:16px;background:var(--dark);color:#fff;display:grid;place-items:center;font-size:22px}
.shop-box__label{margin:0 0 4px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--orange)}
.shop-box__name{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:19px;font-weight:800;color:var(--ink)}
.shop-box__verified{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:#1a8a4a}
.shop-box__meta{margin:6px 0 0;color:var(--muted);font-size:13px}
.shop-box__desc{margin:10px 0 0;color:var(--muted);font-size:13.5px;line-height:1.7}
.shop-box__link{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:13px;font-weight:800;color:var(--orange)}

/* Related products - dang thu gon cho sidebar */
.related-sidebar{border:1px solid var(--line);border-radius:var(--radius);padding:20px;background:#fff;box-shadow:var(--shadow-sm)}
.related-sidebar__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.related-sidebar__head h3{margin:0;font-size:16px}
.related-sidebar__head a{font-size:12px;font-weight:700;color:var(--orange)}
.related-mini{display:grid;grid-template-columns:68px 1fr;gap:14px;align-items:center;padding:12px;margin-bottom:10px;
  border:1px solid var(--line);border-radius:var(--radius-sm);transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease}
.related-mini:last-child{margin-bottom:0}
.related-mini:hover{box-shadow:var(--shadow-sm);border-color:transparent;transform:translateY(-2px)}
.related-mini img{width:68px;height:62px;border-radius:10px;object-fit:cover}
.related-mini b{display:block;font-size:13.5px;line-height:1.4;font-weight:700;margin-bottom:6px}
.related-mini:hover b{color:var(--orange)}
.related-mini__price{display:inline-flex;font-size:11.5px;font-weight:700;color:var(--red);background:#fdf0e4;padding:4px 9px;border-radius:999px}
.related-mini__price .price-old{display:none}

/* Review / rating (dua tren comment WordPress that) */
.comments-area{padding-top:6px}
.review-summary{display:grid;grid-template-columns:1fr 1.35fr 1.1fr;gap:26px;align-items:center;margin-bottom:30px;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}
.review-summary__label{font-weight:800;margin-bottom:12px}
.review-summary__stars{display:flex;gap:4px;margin-bottom:10px;color:#dfe1de;font-size:22px}
.review-summary__stars .is-filled{color:#f1a72d}
.review-summary__average strong{font-size:20px}
.review-summary__average span{color:var(--muted)}
.review-summary__bars{display:grid;gap:8px}
.review-bar{display:grid;grid-template-columns:14px 14px 1fr 22px;gap:8px;align-items:center;font-size:12.5px}
.review-bar__star{color:#c7cbc7}
.review-bar__track{height:8px;border-radius:999px;background:var(--soft);overflow:hidden}
.review-bar__track i{display:block;height:100%;background:linear-gradient(90deg,var(--orange),#f1a72d)}
.review-summary__cta strong{display:block;margin-bottom:6px}
.review-summary__cta p{margin:0 0 14px;color:var(--muted);font-size:13px}
.comments-title{font-size:20px;font-weight:800;margin:0 0 6px}
.comments-subtitle{margin:0 0 20px;color:var(--muted);font-size:13.5px}
.no-reviews{text-align:center;color:var(--muted);padding:24px;border:1px dashed var(--line);border-radius:var(--radius);margin:0 0 24px}
.review-comment-list{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:12px}
.review-comment__body{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.review-comment__avatar img{border-radius:50%}
.review-comment__top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.review-comment__stars{color:#f1a72d;letter-spacing:1px;font-size:13px}
.review-comment time{display:block;margin:3px 0 8px;color:var(--muted);font-size:11.5px}
.review-comment__text{color:#42504b;line-height:1.7;font-size:13.5px}
.comment-form{display:grid;gap:14px;border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:var(--soft);width:100%}
.comment-form p{margin:0;width:100%}
.comment-form-rating>span:first-child{display:block;margin:0 0 8px;font-weight:800;font-size:13.5px}
.rating-input{display:inline-flex;flex-direction:row-reverse;gap:4px;font-size:26px}
.rating-input input{position:absolute;opacity:0;pointer-events:none}
.rating-input label{color:#dfe1de;cursor:pointer;transition:.15s}
.rating-input input:checked~label,.rating-input label:hover,.rating-input label:hover~label{color:#f1a72d}
.comment-form-author,.comment-form-email{display:grid;gap:6px;font-size:13px;font-weight:700}
.comment-form input[type=text],.comment-form input[type=email],.comment-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;background:#fff;font-size:14px}
.comment-form-comment textarea{min-height:96px;resize:vertical;transition:min-height .2s ease}
.comment-form .comment-form-cookies-consent{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}
.comment-form .form-submit{margin:0}

/* Thu gon form danh gia: chi hien o nhap, mo rong cac truong con lai khi bam vao */
.comments-area--compact .comment-form-rating,
.comments-area--compact .comment-form-author,
.comments-area--compact .comment-form-email,
.comments-area--compact .comment-form-cookies-consent,
.comments-area--compact .form-submit,
.comments-area--compact .logged-in-as{display:none}
.comments-area--compact.is-expanded .comment-form-rating,
.comments-area--compact.is-expanded .comment-form-author,
.comments-area--compact.is-expanded .comment-form-email,
.comments-area--compact.is-expanded .comment-form-cookies-consent,
.comments-area--compact.is-expanded .form-submit,
.comments-area--compact.is-expanded .logged-in-as{display:block}
.comments-area--compact.is-expanded .comment-form-comment textarea{min-height:120px}
.comment-form .form-submit input{min-height:48px;padding:0 26px;border-radius:var(--radius-sm);border:0;background:var(--orange);color:#fff;font-weight:700;cursor:pointer}
.comment-form .form-submit input:hover{background:var(--orange-dark)}
.comment-form .comment-reply-title{font-size:19px;font-weight:800;margin:0 0 4px;display:block}
.comment-form .logged-in-as{font-size:13px;color:var(--muted)}

@media(max-width:1280px){
  footer>.container{width:min(1120px,calc(100% - 48px))}
  .footer-grid{grid-template-columns:1.15fr 1fr;gap:32px 40px}
  .newsletter-box{grid-column:auto}
}
@media(max-width:1100px){
  footer>.container{width:min(1240px,calc(100% - 32px))}
  .header-main{grid-template-columns:190px 1fr}
  .actions-link{display:none}
  .home-top{grid-template-columns:1fr}
  .home-top > .sidebar-cats{display:none}
  .icon-strip{grid-template-columns:repeat(3,1fr)}
  .icon-strip-item:nth-child(3){border-right:0}
  .need-grid{grid-template-columns:repeat(3,1fr)}
  .material-grid{grid-template-columns:repeat(3,1fr)}
  .product-grid,.post-grid{grid-template-columns:repeat(3,1fr)}
  .brand-strip{grid-template-columns:repeat(4,1fr)}
  .cta-duo{grid-template-columns:1fr}
  .style-gallery{grid-template-columns:repeat(3,1fr)}
  .commitment-grid{grid-template-columns:1fr 1fr}
  .trust-strip{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1.2fr 1fr}
  .newsletter-box{grid-column:auto}
  .directory-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:800px){
  .topbar,.nav{display:none}
  .header-main{grid-template-columns:1fr auto;min-height:72px}
  .search{display:none}
  .btn-sell{display:none}
  .mobile-menu-toggle{display:inline-flex}
  .actions{gap:8px}
  .hero{padding:32px 22px;min-height:380px}
  .hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(250,248,245,.9) 0%,rgba(250,248,245,.76) 55%,rgba(250,248,245,.44) 100%);z-index:0}
  .hero h1{font-size:28px}
  .hero-rotator{min-width:190px}
  .icon-strip{grid-template-columns:repeat(2,1fr)}
  .icon-strip-item:nth-child(3){border-right:1px solid var(--line)}
  .icon-strip-item:nth-child(2n){border-right:0}
  .need-grid{grid-template-columns:repeat(2,1fr)}
  .material-grid{grid-template-columns:repeat(2,1fr)}
  .product-grid,.post-grid{grid-template-columns:repeat(2,1fr)}
  .brand-strip{grid-template-columns:repeat(3,1fr)}
  .style-gallery{grid-template-columns:repeat(2,1fr)}
  .commitment-grid{grid-template-columns:1fr}
  .trust-strip{grid-template-columns:repeat(2,1fr)}
  .shop-layout{grid-template-columns:1fr}
  .filters{position:static}
  .detail-grid,.contact-grid,.checkout-grid,.content-grid{grid-template-columns:1fr}
  .detail-media{display:block}
  .detail-zoom{height:auto}
  .detail-image{flex:none;height:auto}
  .audience-panel{grid-template-columns:1fr}
  .shop-box{grid-template-columns:52px 1fr}
  .product-page-layout{grid-template-columns:1fr}
  .product-page-sidebar{position:static}
  .review-summary{grid-template-columns:1fr}
  .search-page-form{grid-template-columns:1fr}
  .search-page-form .btn{width:100%}
  .error-hero__inner{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .newsletter-box{grid-column:auto}
  .mobile-nav{display:flex;position:fixed;z-index:60;bottom:12px;left:12px;right:12px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:10px 14px;justify-content:space-around}
  .mobile-nav a{font-size:10px;color:var(--muted);text-align:center}
  .mobile-nav i{display:block;font-size:17px;margin-bottom:4px}
  .floating-contact{display:none}
  .card-actions{display:grid;grid-template-columns:1fr;gap:7px}
  .card-actions .card-action-btn:first-child{display:none}
  .card-action-btn{min-height:36px;padding:8px 10px;border-radius:11px;font-size:11.5px}
  .card-action-btn svg{width:13px;height:13px}
  .price-request-modal__panel{width:min(620px,100%);padding:28px}
  .ts-article p,
  .ts-article li,
  .content-main p,
  .content-main li,
  .seo-block p,
  .seo-block li,
  .article-body.content-narrow p,
  .shop-faq details p{
    text-align:left;
  }
}
@media(max-width:520px){
  .container{width:min(100% - 22px,1240px)}
  section{padding:52px 0}
  .icon-strip{grid-template-columns:1fr 1fr}
  .need-grid{grid-template-columns:1fr 1fr}
  .material-grid{grid-template-columns:1fr}
  .product-grid,.post-grid{grid-template-columns:1fr 1fr;gap:10px}
  .product-media img{height:150px}
  .product-info{padding:12px}
  .product-name{font-size:12.5px}
  .product-desc{font-size:11.5px;min-height:34px}
  .card-actions{padding-top:8px}
  .brand-strip{grid-template-columns:repeat(2,1fr)}
  .style-gallery{grid-template-columns:1fr 1fr}
  .directory-grid{grid-template-columns:1fr}
  .cta-card{grid-template-columns:1fr;padding:26px}
  .cta-card img{display:none}
  .section-title{font-size:24px}
  .section-head{align-items:flex-start;display:block}
  .brand-feature-section{padding:34px 0 36px}
  .brand-feature-section .section-head{margin-bottom:16px}
  .brand-feature-section .view-all{margin-top:14px}
  .brand-card{min-height:76px;border-radius:14px;font-size:13px;padding:12px;gap:9px}
  .brand-card__logo{width:38px;height:38px;border-radius:12px;font-size:15px}
  .brand-note{display:flex;align-items:flex-start;font-size:13px;line-height:1.65;text-align:left;width:100%;padding:12px}
  .brand-note .brand-wordmark{white-space:nowrap}
  .trust-strip{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr}
  .newsletter-box{grid-column:auto}
  .footer-bottom{flex-direction:column;gap:10px}
  .footer-legal{justify-content:flex-start}
  .detail-image{height:auto}
  .price-request-modal{padding:12px}
  .price-request-modal__panel{border-radius:22px;padding:24px 18px}
  .price-request-modal__head{gap:12px;padding-right:36px}
  .price-request-modal__icon{width:42px;height:42px;border-radius:14px}
  .price-request-modal__panel h2{font-size:22px}
  .price-request-form{padding:14px;border-radius:18px}
  .price-request-form__grid{grid-template-columns:1fr;gap:0}
}
