:root{
  --ls-primary:#22311C; --ls-primary-soft:#33482A;
  --ls-accent:#F2B10B; --ls-accent-hover:#D39A05;
  --ls-accent-2:#7A9A3E;
  --ls-bg:#FBF6E9; --ls-card:#FFFFFF;
  --ls-text:#1A1A16; --ls-text-soft:#5C5C52;
  --ls-text-on-dark:#FFFFFF; --ls-border:#E7DFC6;
  --ls-danger:#C0392B;
  --ls-shadow:0 8px 24px rgba(34,49,28,.09);
  --ls-font-display:'Playfair Display',Georgia,serif;
  --ls-font-body:'Be Vietnam Pro','Open Sans','Helvetica Neue',Arial,sans-serif;
  --ls-radius:10px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--ls-bg);color:var(--ls-text);font-family:var(--ls-font-body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-family:var(--ls-font-display);color:var(--ls-primary);margin:0 0 .6em;line-height:1.2;font-weight:600;letter-spacing:-.01em}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}
h2{font-size:clamp(1.8rem,3.5vw,2.6rem)}
h3{font-size:clamp(1.3rem,2.5vw,1.7rem)}
p{margin:0 0 1em}
a{color:var(--ls-accent);text-decoration:none;transition:color .2s}
a:hover{color:var(--ls-accent-hover)}
img{max-width:100%;height:auto;display:block}
.ls-container{max-width:1200px;margin:0 auto;padding:0 24px}
.ls-header{background:rgba(44,24,16,.95);backdrop-filter:saturate(140%) blur(8px);color:var(--ls-text-on-dark);position:sticky;top:0;z-index:50;padding:14px 0;border-bottom:1px solid rgba(212,175,55,.2)}
.ls-header .ls-container{display:flex;align-items:center;justify-content:space-between;gap:20px}
.ls-logo{font-family:var(--ls-font-display);font-size:1.6rem;font-weight:700;color:var(--ls-accent);letter-spacing:.04em}
.ls-logo .sub{font-family:var(--ls-font-body);font-size:.7rem;font-weight:400;color:var(--ls-bg);letter-spacing:.2em;text-transform:uppercase;display:block;margin-top:-4px}
.ls-nav{display:flex;gap:22px;flex-wrap:wrap}
.ls-nav a{color:var(--ls-text-on-dark);font-size:.92rem;font-weight:500;letter-spacing:.02em;position:relative;padding:6px 0}
.ls-nav a:hover{color:var(--ls-accent)}
.ls-nav a.active{color:var(--ls-accent)}
.ls-nav a.active::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--ls-accent)}
.ls-cta-btn{display:inline-block;background:var(--ls-accent);color:var(--ls-primary)!important;padding:12px 26px;border-radius:var(--ls-radius);font-weight:600;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;border:none;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}
.ls-cta-btn:hover{background:var(--ls-accent-hover);color:var(--ls-primary)!important;transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.22)}
.ls-cta-btn.ghost{background:transparent;color:var(--ls-accent)!important;border:1.5px solid var(--ls-accent)}
.ls-cta-btn.ghost:hover{background:var(--ls-accent);color:var(--ls-primary)!important}
.ls-hero{position:relative;min-height:80vh;display:flex;align-items:center;background:linear-gradient(rgba(44,24,16,.7),rgba(44,24,16,.85)),url('/assets/img/lau-ga-sau-rieng-hero.webp') center/cover no-repeat;color:var(--ls-text-on-dark);text-align:center;padding:60px 0}
.ls-hero h1{color:var(--ls-text-on-dark);margin-bottom:18px}
.ls-hero .eyebrow{color:var(--ls-accent);text-transform:uppercase;letter-spacing:.3em;font-size:.85rem;margin-bottom:18px}
.ls-hero p.lead{font-size:1.15rem;max-width:720px;margin:0 auto 32px;opacity:.92}
.ls-hero .ls-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.ls-section{padding:80px 0}
.ls-section.alt{background:#FFFFFF}
.ls-section h2{text-align:center;margin-bottom:14px}
.ls-section .section-eyebrow{text-align:center;color:var(--ls-accent);text-transform:uppercase;letter-spacing:.3em;font-size:.8rem;margin-bottom:14px;font-weight:600}
.ls-section .section-intro{text-align:center;max-width:680px;margin:0 auto 48px;color:var(--ls-text-soft)}
.ls-menu-card .ls-cta-btn{font-size:.82rem;padding:9px 18px}
.ls-vip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.ls-vip-card{background:var(--ls-card);border-radius:var(--ls-radius);overflow:hidden;box-shadow:var(--ls-shadow);transition:transform .3s;border-top:3px solid var(--ls-accent)}
.ls-vip-card:hover{transform:translateY(-6px)}
.ls-vip-card img{width:100%;height:200px;object-fit:cover}
.ls-vip-card .body{padding:22px}
.ls-vip-card h3{margin-bottom:6px;font-size:1.25rem}
.ls-vip-card .vip-meta{color:var(--ls-accent);font-weight:600;font-size:.9rem;margin-bottom:10px}
.ls-vip-card .desc{font-size:.9rem;color:var(--ls-text-soft);margin:0 0 14px}
.ls-vip-card ul{margin:0 0 16px;padding-left:18px;font-size:.88rem;color:var(--ls-text-soft)}
.ls-testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.ls-test-card{background:var(--ls-card);padding:30px;border-radius:var(--ls-radius);box-shadow:var(--ls-shadow);position:relative}
.ls-test-card::before{content:'\201C';position:absolute;top:-10px;left:18px;font-size:5rem;color:var(--ls-accent);font-family:var(--ls-font-display);line-height:1}
.ls-test-card .stars{color:var(--ls-accent);margin-bottom:10px}
.ls-test-card p{font-style:italic;color:var(--ls-text-soft);margin-bottom:18px}
.ls-test-card .author{font-weight:600;color:var(--ls-primary);font-size:.95rem}
.ls-test-card .author .role{display:block;font-weight:400;color:var(--ls-text-soft);font-size:.85rem;font-style:normal}
.ls-footer{background:var(--ls-primary);color:var(--ls-text-on-dark);padding:60px 0 28px;border-top:3px solid var(--ls-accent)}
.ls-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}
@media (max-width:768px){.ls-footer-grid{grid-template-columns:1fr 1fr}}
.ls-footer h4{color:var(--ls-accent);font-size:1.05rem;margin-bottom:18px}
.ls-footer a{color:rgba(255,255,255,.8);display:block;margin-bottom:8px;font-size:.92rem}
.ls-footer a:hover{color:var(--ls-accent)}
.ls-footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:42px;padding-top:24px;text-align:center;font-size:.85rem;color:rgba(255,255,255,.6)}
/* Sticky mobile bar */
.ls-sticky-mobile{position:fixed;left:0;right:0;bottom:0;background:rgba(44,24,16,.97);display:none;justify-content:space-around;padding:10px 0;z-index:100;border-top:2px solid var(--ls-accent);backdrop-filter:blur(8px)}
@media (max-width:860px){.ls-nav{display:none}
.ls-hero{min-height:68vh;padding:40px 0}
.ls-sticky-mobile{display:flex}
body{padding-bottom:62px}}
/* Menu category list (no prices) */

/* Tag/badge */
.ls-badge{display:inline-block;background:var(--ls-accent);color:var(--ls-primary);padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.05em}
/* Quick booking strip on homepage */
.ls-quick-booking .ls-cta-btn{padding:13px 28px;white-space:nowrap}
@media (max-width:760px){.ls-quick-booking .ls-cta-btn{width:100%}}
/* Per-room VIP cards with image */

/* FAQ details/summary styling */
.ls-faq-list details[open] summary span:last-child{transform:rotate(45deg)}
.ls-faq-list details summary span:last-child{transition:transform .2s}
.ls-faq-list summary::-webkit-details-marker{display:none}
/* ============ v2.2 — Social + Footer redesign ============ */

/* Social row */
.ls-social-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* WeChat modal */

/* Footer redesign */
.ls-footer{background:linear-gradient(180deg,var(--ls-primary) 0%,#1a0e07 100%);color:var(--ls-text-on-dark);padding:0 0 24px;border-top:3px solid var(--ls-accent);margin-top:60px}
.ls-footer-top{background:rgba(212,175,55,.08);padding:50px 0;border-bottom:1px solid rgba(212,175,55,.15);text-align:center}
.ls-footer-cta h3{color:var(--ls-text-on-dark);font-size:clamp(1.4rem,3vw,2rem);margin:0 0 8px}
.ls-footer-cta p{color:rgba(255,255,255,.85);max-width:600px;margin:0 auto 24px;font-style:italic}
.ls-footer-cta-buttons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.ls-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1.1fr 1.2fr;gap:50px;padding:54px 0 32px}
@media (max-width:980px){.ls-footer-grid{grid-template-columns:1fr 1fr;gap:36px}}
@media (max-width:560px){.ls-footer-grid{grid-template-columns:1fr;gap:30px}}
.ls-footer-brand .ls-logo{color:var(--ls-accent);font-family:var(--ls-font-display);font-size:1.7rem;font-weight:700;display:block;letter-spacing:.04em}
.ls-footer-brand .ls-logo .sub{display:block;font-size:.72rem;font-family:var(--ls-font-body);font-weight:400;color:var(--ls-bg);letter-spacing:.18em;text-transform:uppercase;margin-top:-2px}
.ls-footer h4{color:var(--ls-accent);font-size:1rem;margin:0 0 16px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.ls-footer a{color:rgba(255,255,255,.82);display:block;margin-bottom:10px;font-size:.92rem;transition:color .2s}
.ls-footer a:hover{color:var(--ls-accent)}
.ls-footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:22px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.85rem;color:rgba(255,255,255,.6)}
/* Khach doan layout v2 */

/* VIP rooms inside khach-doan */
.ls-kd-vip-card .ls-cta-btn{font-size:.8rem;padding:8px 16px;width:100%;text-align:center}
/* Lead form khach doan */
@media (max-width:640px){.ls-kd-lead-form .ls-form-grid,.ls-kd-lead-form .ls-form-grid-3{grid-template-columns:1fr}}
/* Process steps khach doan */

/* v2.3 — additional social hovers */

/* v2.4 — Affiliate program */
@media(max-width:640px){.ls-aff-stats{grid-template-columns:repeat(2,1fr)}}
/* v2.5 — Du lịch PQ footer hub */

/* Du lịch hub page */

/* v2.6 — Language switcher */
.ls-header-right{display:flex;align-items:center;gap:14px}
@media (max-width:860px){.ls-header-right .ls-cta-btn{display:none}}
/* RTL support for Arabic */
html[lang="ar"] body,html[dir="rtl"] body{direction:rtl;text-align:right}
/* v2.7 — Language switcher CLEAN DROPDOWN (override v2.6) */
.ls-header-right{display:flex;align-items:center;gap:12px}
/* dropdown — HIDDEN by default */
@keyframes gnLangIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@media (max-width:860px){.ls-header-right .ls-cta-btn{display:none}}
/* RTL for Arabic */
html[dir="rtl"] body,body.rtl{direction:rtl;text-align:right}
html[dir="rtl"] .ls-section .section-intro,html[dir="rtl"] .ls-hero{text-align:center}
/* v2.8 — Center social row + icon render safety + footer cleanup */
.ls-footer-brand .ls-social-row{justify-content:flex-start}
.ls-social-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* dropdown z-index safety so it appears above everything */

/* ============================================================
   v3.0 FINAL OVERRIDE — wins over any stale appended cruft
   ============================================================ */
/* Social icons: force perfect centering inside the circle */
.ls-social-row{display:flex !important;flex-wrap:wrap;gap:10px;align-items:center}
/* Language dropdown: single source of truth — hidden unless .open */

/* ============================================================
   Floating chat launcher (multi-channel concierge)
   ============================================================ */
@keyframes gnChatIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
/* ============================================================
   v3.1 — AI chat thread inside floating panel
   ============================================================ */
@media(max-width:480px){.ls-chat-panel{width:calc(100vw - 24px);right:12px}.ls-chat-log{height:46vh}}
/* ==========================================================================
   GANH NGON REDESIGN 2026 — BEGIN
   Nguồn: Figma ceZVIWXV9aScMlrHaT7msc
   Lớp này nối vào cuối style.css của theme. Chỉ đè kiểu dáng, không đổi
   cấu trúc HTML — mọi URL, wp-admin, đa ngôn ngữ, bài viết giữ nguyên.
   HOÀN TÁC: xoá toàn bộ khối giữa BEGIN và END, hoặc tải lại
   legacy base
   ========================================================================== */

/* Be Vietnam Pro nạp qua wp_enqueue_style trong functions.php — @import đặt sau
   các rule khác là không hợp lệ và bị trình duyệt bỏ qua. */

:root{
  /* nền ấm hơn, bớt xám so với var(--ls-bg) */
  --ls-bg:#FAF7F0;
  --ls-sand:#F2EBDD;
  --ls-card:#FFFFFF;

  /* chữ — mọi giá trị đều đạt WCAG AA trên nền kem */
  --ls-text:#1F1710;        /* 15,8:1 */
  --ls-text-soft:#5A4B3E;   /*  7,4:1 */
  --ls-text-mute:#6E5D4E;   /*  5,4:1 — sàn thấp nhất */

  /* vàng: var(--ls-accent) chỉ đạt 1,9:1 trên nền sáng nên KHÔNG dùng làm màu chữ.
     Chữ vàng trên nền sáng dùng --ls-gold-text (5,4:1). */
  --ls-gold-text:#7A5A12;
  --ls-accent-hover:#7A5A12;

  --ls-border:#E3D9C8;
  --ls-border-strong:#C9B79E;
  --ls-line-dark:#54392A;

  --ls-ok:#1E7A4C; --ls-ok-bg:#E4F2EA;
  --ls-warn:#B45309; --ls-warn-bg:#FCEEDC;
  --ls-err:#B42318; --ls-err-bg:#FBE9E7;
  --ls-gold-bg:#F6EBD2;

  /* Be Vietnam Pro vẽ riêng cho dấu tiếng Việt — dấu không đè nhau ở 12–14px */
  --ls-font-body:"Be Vietnam Pro","Open Sans","Helvetica Neue",Arial,sans-serif;
  --ls-radius:12px;
  --ls-shadow:0 8px 28px rgba(44,24,16,.14);
}
body{background:var(--ls-bg);color:var(--ls-text);font-family:var(--ls-font-body);line-height:1.65}
/* ---------- chữ: tương phản mạnh hơn, khoảng thở rộng hơn ---------- */
h1{font-size:clamp(2.2rem,5.2vw,4.2rem);line-height:1.12;letter-spacing:-.015em}
h2{font-size:clamp(1.8rem,3.6vw,2.55rem);line-height:1.18}
h3{font-size:clamp(1.25rem,2.2vw,1.55rem);line-height:1.3}
/* Màu chữ đoạn văn CHỈ áp trong vùng nền sáng. Không đụng tới hero, chân trang
   hay bất kỳ khối nền tối nào — ở đó chữ phải giữ màu sáng của theme. */
.ls-section p,.ls-content p,.ls-about p,.ls-menu-card p,.ls-faq-list p{color:var(--ls-text-soft)}
/* Vàng var(--ls-accent) trên nền sáng chỉ đạt 2,1:1 — dưới chuẩn 4,5:1, đọc rất khó.
   Theme dùng a{color:var(--ls-accent)}
nên đổi thẳng biến: mặc định là vàng đậm
   #7A5A12 (5,4:1) cho nền sáng, rồi trả lại vàng sáng bên trong các khối nền tối. */
:root{--ls-accent:#7A5A12}
.ls-header,.ls-footer,.ls-hero,.ls-page-hero,.ls-kd-hero,.ls-aff-hero,
.ls-dlpq-hero,.ls-footer-dlpq,.ls-footer-cta,.ls-reservation,
.ls-section a:hover,.ls-content a:hover{color:#5E440D}
.ls-header a,.ls-footer a,.ls-hero a,[class*="hero"] a,.ls-cta-btn{color:inherit}
/* ---------- vùng bấm: bản cũ có link cao 19–24px, dưới chuẩn 44px ---------- */
@media (pointer:coarse){
  /* Phần tử khối: nâng chiều cao thật lên 44px. */
  button,[role="button"],input[type="submit"],summary,.ls-cta-btn,.ls-lang-item{
    min-height:44px;display:inline-flex;align-items:center;justify-content:center
  }
  /* Link chữ nằm trong dòng: KHÔNG đổi display (sẽ phá bố cục logo và lưới).
     Padding dọc trên phần tử inline vẫn mở rộng vùng chạm mà không đẩy dòng. */
  a{padding-block:12px}
  .ls-nav a,.ls-footer a,.ls-footer li a{padding-block:13px}
  /* trả lại nguyên trạng cho link bọc ảnh, logo và link phủ kín thẻ */
  .ls-logo,.ls-logo a,.ls-menu-card>a,.ls-kd-vip-card>a,.ls-dlpq-card>a{padding-block:0}
}
/* ---------- nav ---------- */
.ls-header{background:var(--ls-primary);border-bottom:1px solid rgba(212,175,55,.22);padding:16px 0}
.ls-nav a{font-weight:500;letter-spacing:.005em;padding:8px 2px;border-bottom:2px solid transparent}
.ls-nav a:hover,.ls-nav a[aria-current="page"]{border-bottom-color:var(--ls-accent)}
.ls-logo{letter-spacing:.04em}
/* ---------- hero ---------- */
.ls-hero,.ls-page-hero,.ls-kd-hero,.ls-aff-hero,.ls-dlpq-hero{
  padding-block:clamp(64px,9vw,104px);
}
.ls-hero h1,.ls-page-hero h1{letter-spacing:-.02em}
/* chỉ vàng mảnh phía trên eyebrow — chi tiết làm trang trông cao cấp hơn */
.ls-hero .ls-container>:first-child::before,
.ls-page-hero .ls-container>:first-child::before,
.ls-aff-eyebrow::before{
  content:"";display:block;width:56px;height:1px;background:var(--ls-accent);margin:0 auto 18px;
}
.ls-page-hero .ls-container,.ls-hero .ls-container{text-align:center}
/* ---------- mục nội dung: nhiều khoảng thở hơn ---------- */
.ls-section{padding-block:clamp(56px,7vw,88px)}
/* KHÔNG sơn nền xen kẽ bằng :nth-of-type — một số mục vốn có nền tối và chữ
   trắng, sơn đè nền sáng lên là chữ trắng trên nền sáng, mất hẳn nội dung. */

/* ---------- thẻ ---------- */

.ls-menu-card,.ls-kd-vip-card,.ls-kd-svc,.ls-badge,.ls-content .card{
  border:1px solid var(--ls-border);border-radius:16px;background:var(--ls-card);
  transition:transform .18s ease,box-shadow .18s ease
}
/* thẻ trong dải nền tối: chỉ chỉnh viền và hiệu ứng, giữ nguyên nền của theme */

/* ---------- nút ---------- */
.ls-cta-btn,.ls-quick-form button,button[type="submit"],input[type="submit"]{
  border-radius:999px;font-weight:600;letter-spacing:.01em;
  padding:14px 30px;min-height:48px;border:1.5px solid transparent;
  transition:transform .15s ease,box-shadow .15s ease
}
.ls-cta-btn:hover,button[type="submit"]:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.22)}
/* ---------- ô nhập ---------- */
input,select,textarea{
  font-family:var(--ls-font-body);font-size:16px;      /* 16px chặn iOS tự phóng to */
  border:1px solid var(--ls-border-strong);border-radius:10px;
  padding:12px 14px;min-height:48px;background:#fff;color:var(--ls-text)
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:#B8932E;box-shadow:0 0 0 3px rgba(212,175,55,.28)
}
label{font-weight:500;color:var(--ls-text)}
:focus-visible{outline:3px solid var(--ls-accent);outline-offset:3px;border-radius:4px}
/* ---------- ảnh: 9/10 ảnh Unsplash hiện không tải được.
   Cho nền kem để chỗ trống trông có chủ ý thay vì icon ảnh vỡ. ---------- */
img{background:var(--ls-sand);border-radius:10px}
.ls-logo img,.ls-footer img,img[src*="qr"]{background:none}
/* ---------- FAQ ---------- */
.ls-faq-list details{border-bottom:1px solid var(--ls-border);padding:18px 4px}
.ls-faq-list summary{font-weight:600;font-size:1.05rem;cursor:pointer;min-height:44px;display:flex;align-items:center;gap:16px;justify-content:space-between}
/* ---------- chân trang ---------- */
.ls-footer{background:#1A0E07}
.ls-footer h4,.ls-footer-brand b{color:var(--ls-accent);letter-spacing:.06em}
.ls-footer a{color:#C9B79E}
.ls-footer a:hover{color:#F5EEE2;text-decoration:underline}
.ls-footer-bottom{border-top:1px solid var(--ls-line-dark);color:#8E7A63}
/* ---------- trạng thái ---------- */

/* ---------- widget chat không được che nút đặt bàn trên mobile ---------- */
@media (max-width:760px){
}
/* ---------- không cuộn ngang ---------- */
html,body{overflow-x:clip}
.ls-container{width:min(1200px,100% - 32px);margin-inline:auto;padding-inline:0}
/* ==========================================================================
   SỬA LỖI MOBILE — theo kết quả soi từng trang trên site thật
   ========================================================================== */
@media (max-width:760px){

  /* /khach-doan-tiec-rieng/ tràn ngang 9px: nút "NHẬN TƯ VẤN & BÁO GIÁ" và
     vài nút trong thẻ phòng rộng hơn khung cha nên đẩy tài liệu ra 399px. */
  .ls-kd-lead-form button,.ls-kd-lead button,.ls-kd-vip-card a,.ls-kd-vip-card button,
  .ls-cta-btn,.ls-quick-form button,button[type="submit"]{
    max-width:100%;white-space:normal;word-break:break-word
  }
  .ls-kd-vip-grid,.ls-kd-services,.ls-dlpq-grid,.ls-menu-grid,.ls-form-row{
    grid-template-columns:1fr !important
  }

  /* Cột nội dung bị bó còn 274px vì padding 42px lồng nhau. */
  .ls-content article,.ls-content .ls-container{padding-left:16px;padding-right:16px}

  /* /dat-ban/ ô chọn "Giờ" bị bóp còn 14px ngang, không bấm được.
     Cho mỗi trường chiếm trọn một dòng thay vì chia ba cột trên màn hẹp. */
  select,input,textarea{max-width:100%;min-width:0}
  label{overflow-wrap:anywhere}

  /* Thanh dính đáy cao 103px + nút chat che mất nội dung cuối trang. */
  body{padding-bottom:120px}
}
/* Thẻ danh mục trang chủ bo tròn thành hình elip vì border-radius nhận % .
   Ép về bo góc cố định cho khớp với cùng nội dung đó ở trang Thực đơn. */
.ls-menu-cats .ls-menu-card,.ls-menu-grid .ls-menu-card,
.ls-customer-types>*,.ls-badge{border-radius:16px}
/* Liên kết chỉ có mũi tên "→" không có nhãn, vùng bấm 14×18px. */

/* ==========================================================================
   SỬA 3 LỖI GIAO DIỆN — theo báo cáo soi từng trang
   ========================================================================== */

/* 1. MENU MOBILE. Theme ẩn .ls-nav ở <=860px mà không có nút hamburger thay thế,
   nên trên điện thoại không vào được trang nào ngoài thanh dính đáy. Thêm nút
   ba gạch, bấm là menu xổ xuống. Nút do JS bơm vào (polish-fixes), CSS lo dáng. */
@media (max-width:860px){
  .ls-nav-toggle{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;margin-left:auto;
    background:none;border:0;cursor:pointer;color:var(--ls-text-on-dark,#F5EEE2)
  }
  .ls-nav-toggle span::before,.ls-nav-toggle span::after{
    content:"";position:absolute;left:0;width:22px;height:2px;background:currentColor
  }
  /* menu xổ: hiện lại .ls-nav khi thân có class mở */
  body.ls-nav-open .ls-nav{
    display:flex!important;flex-direction:column;gap:0;
    position:fixed;left:0;right:0;top:var(--ls-nav-h,64px);z-index:70;
    background:var(--ls-primary);padding:8px 16px 20px;border-top:1px solid rgba(212,175,55,.22);
    max-height:calc(100vh - var(--ls-nav-h,64px));overflow-y:auto
  }
  body.ls-nav-open .ls-nav a{display:block;padding:14px 4px;min-height:44px;border-bottom:1px solid rgba(212,175,55,.12)}
  body.ls-nav-open .ls-nav .ls-cta-btn{display:inline-flex!important;margin-top:12px}
}
/* 2. TƯƠNG PHẢN THANH DÍNH ĐÁY. Nhãn "Đặt bàn" dùng --ls-accent = #7A5A12 (vàng
   đậm) trên nền tối var(--ls-primary) chỉ đạt 2.45:1. Trên nền TỐI phải dùng vàng SÁNG. */
/* Nhãn chữ trên thanh dính đáy: vàng SÁNG var(--ls-accent) (7,4:1 trên nền tối), không
   để vàng đậm #7A5A12 (2,45:1). Chỉ nhắm chữ, không đụng icon tròn có màu riêng. */
.ls-sticky-item,.ls-sticky-item span,.ls-sticky-mobile a,.ls-sticky-mobile a span,
.ls-sticky-item svg,.ls-sticky-mobile svg,[class*="sticky"] svg{color:inherit}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}
html{scroll-behavior:auto}}
/* GANH NGON REDESIGN 2026 — END */

/* ==========================================================================
   TRANG ĐỐI TÁC — /doi-tac/
   ========================================================================== */

/* page.php in sẵn hero có <h1>. Trang này có hero riêng nên ẩn hero mặc định,
   tránh hai tiêu đề lớn chồng nhau. <h1> vẫn còn trong DOM cho SEO. */
.ls-partner-page .ls-page-hero .ls-container{position:absolute;width:1px;height:1px;
  overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.gnp{--w:1160px;font-family:var(--ls-font-body);color:var(--ls-text)}
.gnp *{box-sizing:border-box}
.gnp h2,.gnp h3,.gnp h4{font-family:var(--ls-font-display);color:var(--ls-text);margin:0;line-height:1.2}
.gnp p{margin:0;color:var(--ls-text-soft);line-height:1.7}
.gnp-rule{display:block;width:56px;height:1px;background:var(--ls-accent);margin:0 auto 16px}
.gnp-eyebrow{font:600 12px/1.5 var(--ls-font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ls-gold-text);margin:0 0 4px}
.gnp-eyebrow--gold{color:var(--ls-accent)}
.gnp-sub{max-width:720px;margin-inline:auto;font-size:17px}
.gnp-note{max-width:820px;margin:28px auto 0;text-align:center;font-size:14px;color:var(--ls-text-mute)}
.gnp-note--left{text-align:left;margin-inline:0;max-width:none}
/* ---- hero ---- */
.gnp-hero{background:var(--ls-primary);color:#F5EEE2;text-align:center;
  padding:clamp(56px,7vw,88px) 24px;border-radius:20px;margin-bottom:8px}
.gnp-hero h2{color:#fff;font-size:clamp(30px,4.6vw,52px);line-height:1.15;margin-bottom:16px}
.gnp-hero .gnp-lead{color:#E8DCC9;max-width:760px;margin:0 auto;font-size:clamp(15px,1.5vw,18px)}
.gnp-hero .gnp-eyebrow{color:var(--ls-accent)}
/* ---- section ---- */
.gnp-sec{padding:clamp(48px,6vw,80px) 0}
.gnp-sec--sand{background:var(--ls-sand);border-radius:20px;padding-inline:clamp(20px,3vw,40px);margin-block:8px}
.gnp-head{text-align:center;margin-bottom:36px}
.gnp-head h3{font-size:clamp(26px,3.4vw,40px);margin-bottom:10px}
/* ---- grid ---- */
.gnp-grid{display:grid;gap:20px}
.gnp-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.gnp-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.gnp-card{background:#fff;border:1px solid var(--ls-border);border-radius:16px;padding:24px;
  display:flex;flex-direction:column;gap:10px;transition:transform .18s ease,box-shadow .18s ease}
.gnp-card:hover{transform:translateY(-3px);box-shadow:var(--ls-shadow)}
.gnp-card h4{font-size:19px}
.gnp-card p{font-size:14px}
.gnp-num{font:600 32px/1 var(--ls-font-display);color:var(--ls-accent)}
/* ---- bậc hoa hồng ---- */
.gnp-tier{background:#fff;border:1px solid var(--ls-border);border-radius:16px;padding:28px;
  display:flex;flex-direction:column;gap:8px}
.gnp-tier--hot{background:var(--ls-primary);border:2px solid var(--ls-accent)}
.gnp-tier--hot h4,.gnp-tier--hot .gnp-pct{color:#fff}
.gnp-tier--hot p{color:#E8DCC9}
.gnp-tier--hot .gnp-eyebrow,.gnp-tier--hot .gnp-range{color:var(--ls-accent)}
.gnp-pct{font:600 clamp(40px,5vw,54px)/1.05 var(--ls-font-display);color:var(--ls-text)}
.gnp-range{font-weight:600;font-size:17px;color:var(--ls-gold-text)}
.gnp-tier p{font-size:14px}
/* ---- ví dụ tính ---- */
.gnp-example{background:#fff;border:1px solid var(--ls-border);border-radius:16px;
  padding:28px;margin-top:20px}
.gnp-example h4{font-size:20px;margin-bottom:4px}
.gnp-example .gnp-sub{margin:0 0 16px;max-width:none;font-size:14px}
.gnp-ladder{display:flex;border-radius:12px;overflow:hidden;min-width:0}
.gnp-ladder div{padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.gnp-ladder div:nth-child(1){background:#F6EBD2}
.gnp-ladder div:nth-child(2){background:#EFE0BE}
.gnp-ladder div:nth-child(3){background:var(--ls-accent)}
.gnp-ladder span{font-size:13px;color:var(--ls-text-soft)}
.gnp-ladder b{font-size:16px;color:var(--ls-gold-text)}
.gnp-total{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  border-top:1px solid var(--ls-border);margin-top:16px;padding-top:14px}
.gnp-total span{font-weight:600}
.gnp-total b{font-size:19px;color:var(--ls-gold-text)}
/* ---- thưởng ---- */
.gnp-bonus{display:flex;align-items:center;gap:32px;flex-wrap:wrap;
  background:var(--ls-primary);border:2px solid var(--ls-accent);border-radius:16px;padding:28px 32px;margin-top:20px}
.gnp-bonus>div{flex:1 1 420px}
.gnp-bonus h4{color:#fff;font-size:clamp(20px,2.4vw,28px);margin-bottom:8px}
.gnp-bonus p{color:#E8DCC9;font-size:15px}
.gnp-bonusbadge{background:var(--ls-accent);border-radius:14px;padding:20px 30px;text-align:center;flex:0 0 auto}
.gnp-bonusbadge b{display:block;font:600 clamp(34px,4vw,50px)/1.05 var(--ls-font-display);color:var(--ls-primary)}
.gnp-bonusbadge small{font:600 10px/1.5 var(--ls-font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--ls-primary)}
/* ---- vật phẩm ---- */
.gnp-card--kit{align-items:center;text-align:center}
.gnp-qr{width:96px;height:96px;background:#fff;border:2px solid #1F1710;border-radius:8px;
  display:grid;place-items:center;padding:8px}
.gnp-qr i{display:block;width:100%;height:100%;background:#1F1710;border-radius:3px}
.gnp-rules{background:#F6EBD2;border:1px solid var(--ls-accent);border-radius:16px;padding:22px 26px;margin-top:20px}
.gnp-rules ul{margin:8px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.gnp-rules li{color:var(--ls-text-soft);font-size:14px;line-height:1.7}
/* ---- nhóm đối tác ---- */
.gnp-who>div{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.gnp-pill{font:500 11px/1.4 var(--ls-font-body);background:var(--ls-sand);color:var(--ls-text-mute);
  padding:5px 11px;border-radius:999px;white-space:nowrap}
/* ---- cổng đối tác ---- */
.gnp-portal{background:#fff;border:1px solid var(--ls-border);border-radius:18px;padding:24px}
.gnp-demo{font:500 12px/1.5 var(--ls-font-body);color:var(--ls-warn);background:var(--ls-warn-bg);
  border:1px solid var(--ls-warn);border-radius:8px;padding:8px 12px;margin:0 0 16px}
.gnp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
.gnp-kpis>div{background:var(--ls-bg);border:1px solid var(--ls-border);border-radius:12px;padding:16px}
.gnp-kpis .is-gold{background:#F6EBD2;border-color:var(--ls-accent)}
.gnp-kpis span{display:block;font:600 10px/1.5 var(--ls-font-body);letter-spacing:.05em;
  text-transform:uppercase;color:var(--ls-gold-text)}
.gnp-kpis b{display:block;font:700 clamp(18px,2vw,24px)/1.25 var(--ls-font-body);color:var(--ls-text);margin:4px 0 2px}
.gnp-kpis small{font-size:12px;color:var(--ls-text-soft)}
.gnp-tablewrap{overflow-x:auto;border:1px solid var(--ls-border);border-radius:12px}
.gnp-portal table{border-collapse:collapse;width:100%;min-width:720px}
.gnp-portal th{background:var(--ls-sand);text-align:left;padding:10px 16px;white-space:nowrap;
  font:600 10px/1.5 var(--ls-font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--ls-gold-text)}
.gnp-portal td{padding:12px 16px;border-top:1px solid #F0E7D8;font-size:13px;
  color:var(--ls-text-soft);white-space:nowrap}
.gnp-portal tfoot td{background:var(--ls-bg);font-weight:600;color:var(--ls-text)}
.gnp-tag{font:600 11px/1.4 var(--ls-font-body);padding:4px 10px;border-radius:999px;display:inline-block}
.gnp-tag.is-ok{background:#E4F2EA;color:#1E7A4C}
.gnp-tag.is-warn{background:#FCEEDC;color:#B45309}
/* ---- split + form ---- */
.gnp-split{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:start}
.gnp-split .gnp-rule{margin-inline:0}
.gnp-split .gnp-sub{margin-inline:0;text-align:left}
.gnp-split h3{font-size:clamp(26px,3.2vw,38px);margin-bottom:12px}
.gnp-facts{margin:20px 0 0}
.gnp-facts dt{font-weight:600;color:var(--ls-text);margin-top:14px}
.gnp-facts dd{margin:4px 0 0;color:var(--ls-text-soft);font-size:14px;line-height:1.7}
.gnp-form{background:#fff;border:1px solid var(--ls-border);border-radius:18px;padding:28px;
  display:flex;flex-direction:column;gap:14px}
.gnp-form h4{font-size:24px;margin-bottom:2px}
.gnp-form label{display:flex;flex-direction:column;gap:6px;font:500 13px/1.4 var(--ls-font-body);color:var(--ls-text)}
.gnp-form input,.gnp-form select,.gnp-form textarea{
  font:400 16px/1.4 var(--ls-font-body);color:var(--ls-text);background:var(--ls-bg);
  border:1px solid var(--ls-border-strong);border-radius:10px;padding:12px 14px;min-height:48px;width:100%}
.gnp-form textarea{min-height:84px;resize:vertical}
.gnp-form input:focus,.gnp-form select:focus,.gnp-form textarea:focus{
  outline:none;border-color:#B8932E;box-shadow:0 0 0 3px rgba(212,175,55,.28)}
.gnp-form input:invalid:not(:placeholder-shown){border-color:#B42318}
.gnp-row{display:flex;gap:14px;flex-wrap:wrap}
.gnp-row>label{flex:1 1 200px}
.gnp-fine{font-size:13px;color:var(--ls-text-mute);text-align:center}
/* ---- nút ---- */
.gnp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;
  padding:14px 30px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;
  font:600 16px/1.2 var(--ls-font-body);text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease}
.gnp-btn:hover{transform:translateY(-1px)}
.gnp-btn--gold{background:var(--ls-accent);color:var(--ls-primary)}
.gnp-btn--gold:hover{box-shadow:0 6px 18px rgba(212,175,55,.35);color:var(--ls-primary)}
.gnp-btn--ghost{border-color:#C9B79E;color:#F5EEE2;background:transparent}
.gnp-sec .gnp-btn--ghost{border-color:#B8932E;color:var(--ls-gold-text)}
.gnp-btn--block{width:100%}
.gnp-cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:22px}
/* ---- faq ---- */
.gnp-faq{max-width:880px;margin-inline:auto}
.gnp-faq details{background:#fff;border:1px solid var(--ls-border);border-radius:12px;
  padding:16px 20px;margin-bottom:10px}
.gnp-faq summary{font-weight:600;cursor:pointer;list-style:none;display:flex;
  justify-content:space-between;gap:16px;align-items:center;min-height:32px}
.gnp-faq summary::-webkit-details-marker{display:none}
.gnp-faq summary::after{content:"+";color:var(--ls-gold-text);font-size:22px;line-height:1}
.gnp-faq details[open] summary::after{content:"−"}
.gnp-faq p{margin-top:10px;font-size:15px}
/* ---- chốt ---- */
.gnp-final{background:var(--ls-primary);color:#F5EEE2;text-align:center;border-radius:20px;
  padding:clamp(48px,6vw,72px) 24px;margin-top:8px}
.gnp-final h3{color:#fff;font-size:clamp(26px,3.4vw,38px);margin-bottom:12px}
.gnp-final p{color:#E8DCC9;max-width:660px;margin-inline:auto}
/* ---- responsive ---- */
@media (max-width:1024px){
  .gnp-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gnp-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gnp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gnp-split{grid-template-columns:1fr;gap:28px}
  .gnp-split--rev>form{order:2}
}
@media (max-width:700px){.gnp-grid--4,.gnp-grid--3{grid-template-columns:1fr}
.gnp-kpis{grid-template-columns:1fr}
.gnp-ladder{flex-direction:column}
.gnp-ladder div{flex:1 1 auto !important}
.gnp-bonus{padding:22px}
.gnp-form{padding:20px}
.gnp-sec--sand{border-radius:14px;padding-inline:16px}
.gnp-hero,.gnp-final{border-radius:14px}
.gnp-who>div{flex-direction:column;gap:6px}}
/* ==========================================================================
   THẺ VOUCHER — dùng trên /voucher/ và trong email
   ========================================================================== */

.voucher{display:flex;border-radius:16px;overflow:hidden;border:1.5px solid var(--ls-accent);
  background:var(--ls-primary,var(--ls-primary));color:var(--ls-text-on-dark,#F5EEE2);align-items:stretch}
.voucher__l{padding:22px 20px;display:flex;flex-direction:column;gap:7px;flex:1;min-width:0}
.voucher__l .amt{font:600 clamp(28px,6vw,42px)/1.1 var(--ls-font-display,Georgia,serif);color:#fff}
.voucher__l small{font-size:12px;color:#C9B79E;line-height:1.5}
.voucher__code{align-self:flex-start;font:600 12px/1.4 var(--ls-font-body,sans-serif);letter-spacing:.03em;
  background:#54392A;color:var(--ls-accent);padding:5px 10px;border-radius:6px}
.voucher__r{border-left:1.5px dashed var(--ls-accent);padding:20px 18px;display:grid;place-items:center;flex:0 0 auto}
.voucher .qr{width:96px;height:96px;background:#fff;border-radius:8px;padding:6px}
.voucher .qr img{display:block;width:100%;height:100%;background:none}
/* biến thể chưa thanh toán — phải nhìn là biết ngay, không được giống thẻ đã trả tiền */
.voucher--unpaid{background:#fff;color:var(--ls-text,#1F1710);border:2px dashed #B45309;flex-direction:column}
.voucher--unpaid .band{background:#B45309;color:#fff;padding:9px 14px;text-align:center;
  font:700 11px/1.4 var(--ls-font-body,sans-serif);letter-spacing:.03em}
.voucher--unpaid .inner{display:flex;align-items:center;width:100%}
.voucher--unpaid .amt{color:var(--ls-text,#1F1710)}
.voucher--unpaid .voucher__l small{color:var(--ls-text-mute,#6E5D4E)}
.voucher--unpaid .voucher__code{background:var(--ls-sand,#F2EBDD);color:var(--ls-gold-text,#7A5A12)}
.voucher--unpaid .voucher__r{border-left:1.5px dashed var(--ls-border-strong,#C9B79E)}
@media (max-width:520px){.voucher,.voucher--unpaid .inner{flex-direction:column}
.voucher__r{border-left:0;border-top:1.5px dashed var(--ls-accent);width:100%}
.voucher--unpaid .voucher__r{border-top-color:var(--ls-border-strong,#C9B79E)}}
/* nhãn chọn mệnh giá trên /voucher/ */
.gnp-form label:has(input[type="radio"]){transition:border-color .15s ease,background .15s ease}
.gnp-form label:has(input[type="radio"]:checked){border-color:var(--ls-accent);background:var(--ls-gold-bg,#F6EBD2)}
/* GN 14/09: bong bong chat khong de mep the tren man nho; chua cho tren thanh duoi */
@media(max-width:480px){.ls-chat-fab{right:12px;width:52px;height:52px}.ls-content{padding-bottom:104px}}
/* GN 14/09: anh mon trong the nhom mon */
/* ============ LAU SAU RIENG — components ============ */
.ls-topbar{background:var(--ls-primary-soft);color:#fff;font-size:.86rem;padding:7px 0}
.ls-topbar .ls-container{display:flex;gap:18px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.ls-topbar a{color:var(--ls-accent);font-weight:600}
.ls-topbar .tb-note{opacity:.9}
.ls-badge{display:inline-block;background:rgba(242,177,11,.16);color:#8a6100;border:1px solid rgba(242,177,11,.5);
  padding:4px 11px;border-radius:999px;font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.ls-badge.green{background:rgba(122,154,62,.15);color:#4c631f;border-color:rgba(122,154,62,.45)}
.ls-badge.hot{background:rgba(192,57,43,.12);color:#9b2d21;border-color:rgba(192,57,43,.4)}
/* product grid + price */
.ls-prod-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:26px}
.ls-prod{background:var(--ls-card);border-radius:var(--ls-radius);overflow:hidden;box-shadow:var(--ls-shadow);
  display:flex;flex-direction:column;border:1px solid var(--ls-border);transition:transform .25s,box-shadow .25s}
.ls-prod:hover{transform:translateY(-5px);box-shadow:0 14px 34px rgba(34,49,28,.16)}
.ls-prod .thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:#eee}
.ls-prod .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ls-prod:hover .thumb img{transform:scale(1.05)}
.ls-prod .thumb .flag{position:absolute;top:12px;left:12px;background:var(--ls-accent);color:var(--ls-primary);
  font-size:.72rem;font-weight:800;padding:5px 11px;border-radius:999px;letter-spacing:.04em;text-transform:uppercase}
.ls-prod .body{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1}
.ls-prod h3{font-size:1.18rem;margin-bottom:6px}
.ls-prod h3 a{color:var(--ls-primary)}
.ls-prod h3 a:hover{color:var(--ls-accent-hover)}
.ls-prod .serve{font-size:.84rem;color:var(--ls-text-soft);margin:0 0 10px;font-weight:600}
.ls-prod .desc{font-size:.92rem;color:var(--ls-text-soft);margin:0 0 16px;flex:1}
.ls-price{display:flex;align-items:baseline;gap:9px;margin-bottom:14px;flex-wrap:wrap}
.ls-price .now{font-family:var(--ls-font-display);font-size:1.6rem;font-weight:700;color:var(--ls-danger);line-height:1}
.ls-price .was{font-size:.95rem;color:var(--ls-text-soft);text-decoration:line-through}
.ls-price .unit{font-size:.8rem;color:var(--ls-text-soft)}
.ls-prod .btn-row{display:flex;gap:9px;flex-wrap:wrap}
.ls-prod .btn-row .ls-cta-btn{font-size:.82rem;padding:10px 16px;flex:1;text-align:center;white-space:nowrap}
/* steps */
.ls-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:22px;counter-reset:st}
.ls-step{background:var(--ls-card);border:1px solid var(--ls-border);border-radius:var(--ls-radius);padding:26px 22px;position:relative}
.ls-step::before{counter-increment:st;content:counter(st);position:absolute;top:-16px;left:22px;width:36px;height:36px;
  border-radius:50%;background:var(--ls-accent);color:var(--ls-primary);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:1.05rem}
.ls-step h3{font-size:1.06rem;margin:10px 0 7px}
.ls-step p{font-size:.9rem;color:var(--ls-text-soft);margin:0}
/* value props */
.ls-props{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:20px}
.ls-prop{background:var(--ls-card);border:1px solid var(--ls-border);border-left:4px solid var(--ls-accent);
  border-radius:var(--ls-radius);padding:22px}
.ls-prop .ico{font-size:1.7rem;line-height:1;margin-bottom:10px}
.ls-prop h3{font-size:1.02rem;margin-bottom:6px}
.ls-prop p{font-size:.89rem;color:var(--ls-text-soft);margin:0}
/* order form */
.ls-order-wrap{display:grid;grid-template-columns:1.25fr .9fr;gap:30px;align-items:start}
@media(max-width:900px){.ls-order-wrap{grid-template-columns:1fr}}
.ls-form-card{background:var(--ls-card);border:1px solid var(--ls-border);border-radius:var(--ls-radius);
  padding:28px;box-shadow:var(--ls-shadow)}
.ls-form-card h3{margin-bottom:6px}
.ls-field{margin-bottom:16px}
.ls-field label{display:block;font-size:.87rem;font-weight:600;color:var(--ls-primary);margin-bottom:6px}
.ls-field label .req{color:var(--ls-danger)}
.ls-field input,.ls-field select,.ls-field textarea{width:100%;padding:12px 14px;border:1px solid var(--ls-border);
  border-radius:8px;font-family:inherit;font-size:.96rem;background:#fff;color:var(--ls-text)}
.ls-field input:focus,.ls-field select:focus,.ls-field textarea:focus{outline:none;border-color:var(--ls-accent);
  box-shadow:0 0 0 3px rgba(242,177,11,.2)}
.ls-field .hint{font-size:.79rem;color:var(--ls-text-soft);margin-top:5px}
.ls-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.ls-grid2{grid-template-columns:1fr}}
.ls-linebox{border:1px solid var(--ls-border);border-radius:8px;padding:6px 0;background:#fffdf6}
.ls-line{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--ls-border)}
.ls-line:last-child{border-bottom:none}
.ls-line .nm{flex:1;font-size:.9rem;font-weight:600;color:var(--ls-primary);line-height:1.3}
.ls-line .pr{font-size:.86rem;color:var(--ls-danger);font-weight:700;white-space:nowrap}
.ls-line .qty{display:flex;align-items:center;gap:0;border:1px solid var(--ls-border);border-radius:7px;overflow:hidden;background:#fff}
.ls-line .qty button{width:30px;height:32px;border:none;background:#f4eedd;color:var(--ls-primary);font-size:1.05rem;
  font-weight:700;cursor:pointer;line-height:1}
.ls-line .qty button:hover{background:var(--ls-accent)}
.ls-line .qty input{width:42px;height:32px;border:none;text-align:center;font-weight:700;font-size:.92rem;padding:0;
  -moz-appearance:textfield}
.ls-line .qty input::-webkit-outer-spin-button,.ls-line .qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ls-total{display:flex;justify-content:space-between;align-items:baseline;padding:16px 4px 4px;
  border-top:2px solid var(--ls-primary);margin-top:10px}
.ls-total .lbl{font-weight:700;color:var(--ls-primary)}
.ls-total .amt{font-family:var(--ls-font-display);font-size:1.75rem;font-weight:700;color:var(--ls-danger);line-height:1}
.ls-form-note{font-size:.82rem;color:var(--ls-text-soft);margin-top:12px}
.ls-alert{padding:14px 16px;border-radius:8px;font-size:.92rem;margin-bottom:18px;display:none}
.ls-alert.ok{background:#eaf5e2;border:1px solid #9cc07a;color:#33581c;display:block}
.ls-alert.err{background:#fdecea;border:1px solid #e3a49c;color:#8e2a1e;display:block}
.ls-btn-block{width:100%;text-align:center;padding:16px;font-size:1rem}
/* aside summary */
.ls-aside{background:var(--ls-primary);color:#fff;border-radius:var(--ls-radius);padding:26px;position:sticky;top:96px}
.ls-aside h3{color:#fff;font-size:1.15rem}
.ls-aside ul{list-style:none;margin:0 0 18px;padding:0}
.ls-aside li{padding:9px 0 9px 26px;position:relative;font-size:.91rem;border-bottom:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.9)}
.ls-aside li:last-child{border-bottom:none}
.ls-aside li::before{content:'\2713';position:absolute;left:0;color:var(--ls-accent);font-weight:800}
.ls-aside .big-tel{display:block;font-family:var(--ls-font-display);font-size:1.75rem;color:var(--ls-accent);
  font-weight:700;margin:4px 0 2px;letter-spacing:.01em}
.ls-aside .tel-sub{font-size:.82rem;color:rgba(255,255,255,.72);margin-bottom:16px}
/* zone table */
.ls-zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.ls-zone{background:var(--ls-card);border:1px solid var(--ls-border);border-radius:var(--ls-radius);padding:20px}
.ls-zone h3{font-size:1.02rem;margin-bottom:4px}
.ls-zone .fee{color:var(--ls-accent-2);font-weight:700;font-size:.9rem;margin-bottom:8px}
.ls-zone p{font-size:.87rem;color:var(--ls-text-soft);margin:0}
.ls-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.ls-table{width:100%;border-collapse:collapse;background:var(--ls-card);font-size:.93rem;min-width:520px}
table.ls-table th,table.ls-table td{padding:13px 15px;border-bottom:1px solid var(--ls-border);text-align:left;vertical-align:top}
table.ls-table th{background:var(--ls-primary);color:#fff;font-weight:600;font-size:.88rem;letter-spacing:.02em}
table.ls-table tbody tr:nth-child(even){background:#fdfaf1}
table.ls-table td.num{text-align:right;white-space:nowrap;font-weight:700;color:var(--ls-danger)}
/* article */
.ls-article{max-width:790px;margin:0 auto}
.ls-article h2{text-align:left;font-size:clamp(1.5rem,3vw,2rem);margin-top:2em}
.ls-article h3{font-size:1.22rem;margin-top:1.6em}
.ls-article ul,.ls-article ol{padding-left:24px;color:var(--ls-text-soft)}
.ls-article li{margin-bottom:.5em}
.ls-article .lede{font-size:1.1rem;color:var(--ls-text-soft);border-left:4px solid var(--ls-accent);padding-left:18px;margin-bottom:26px}
.ls-article figure{margin:26px 0}
.ls-article figcaption{font-size:.84rem;color:var(--ls-text-soft);text-align:center;margin-top:8px}
.ls-meta{font-size:.84rem;color:var(--ls-text-soft);margin-bottom:22px}
.ls-post-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(275px,1fr));gap:22px}
.ls-post{background:var(--ls-card);border:1px solid var(--ls-border);border-radius:var(--ls-radius);padding:22px;
  display:flex;flex-direction:column}
.ls-post h3{font-size:1.06rem;margin-bottom:8px}
.ls-post h3 a{color:var(--ls-primary)}
.ls-post h3 a:hover{color:var(--ls-accent-hover)}
.ls-post p{font-size:.89rem;color:var(--ls-text-soft);flex:1;margin-bottom:12px}
.ls-post .rm{font-size:.86rem;font-weight:700}
/* breadcrumb */
.ls-crumb{background:#fff;border-bottom:1px solid var(--ls-border);padding:12px 0;font-size:.84rem;color:var(--ls-text-soft)}
.ls-crumb a{color:var(--ls-text-soft)}
.ls-crumb a:hover{color:var(--ls-accent-hover)}
.ls-crumb .sep{margin:0 8px;opacity:.5}
/* page hero (inner) */
.ls-phero{background:linear-gradient(rgba(34,49,28,.82),rgba(34,49,28,.9)),url('/assets/img/lau-ga-sau-rieng.webp') center/cover no-repeat;
  color:#fff;padding:64px 0 58px;text-align:center}
.ls-phero h1{color:#fff;font-size:clamp(1.9rem,4vw,2.9rem);margin-bottom:12px}
.ls-phero p{max-width:720px;margin:0 auto;color:rgba(255,255,255,.9);font-size:1.03rem}
.ls-phero .eyebrow{color:var(--ls-accent);text-transform:uppercase;letter-spacing:.28em;font-size:.78rem;
  font-weight:700;margin-bottom:14px}
/* product detail */
.ls-pd{display:grid;grid-template-columns:1.05fr 1fr;gap:38px;align-items:start}
@media(max-width:900px){.ls-pd{grid-template-columns:1fr}}
.ls-pd .gal img{border-radius:var(--ls-radius);box-shadow:var(--ls-shadow);width:100%}
.ls-pd .gal .sub{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:10px}
.ls-pd .gal .sub img{border-radius:8px;aspect-ratio:1;object-fit:cover}
.ls-pd .info h1{font-size:clamp(1.7rem,3.4vw,2.5rem);margin-bottom:10px}
.ls-pd .info .ls-price .now{font-size:2.1rem}
.ls-spec{list-style:none;padding:0;margin:18px 0 22px;border-top:1px solid var(--ls-border)}
.ls-spec li{display:flex;gap:14px;padding:11px 2px;border-bottom:1px solid var(--ls-border);font-size:.92rem}
.ls-spec li b{min-width:132px;color:var(--ls-primary);font-weight:600}
.ls-spec li span{color:var(--ls-text-soft)}
/* sticky mobile bar */
.ls-sticky-mobile{display:none}
@media(max-width:860px){.ls-sticky-mobile{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;background:var(--ls-primary);
    border-top:2px solid var(--ls-accent);box-shadow:0 -4px 18px rgba(0,0,0,.25)}
.ls-sticky-mobile a{flex:1;padding:13px 4px;text-align:center;color:#fff;font-size:.78rem;font-weight:700;
    border-right:1px solid rgba(255,255,255,.12);line-height:1.25}
.ls-sticky-mobile a:last-child{border-right:none}
.ls-sticky-mobile a.main{background:var(--ls-accent);color:var(--ls-primary)}
.ls-sticky-mobile a .i{display:block;font-size:1.12rem;margin-bottom:2px}
body{padding-bottom:62px}}
/* mobile nav */
.ls-navtoggle{display:none;background:none;border:1.5px solid var(--ls-accent);color:var(--ls-accent);
  border-radius:7px;padding:7px 11px;font-size:1.1rem;cursor:pointer;line-height:1}
@media(max-width:1000px){.ls-navtoggle{display:block}
.ls-nav{display:none;width:100%;flex-direction:column;gap:0;order:3;border-top:1px solid rgba(242,177,11,.2);margin-top:12px;padding-top:6px}
.ls-nav.open{display:flex}
.ls-nav a{padding:11px 2px;border-bottom:1px solid rgba(255,255,255,.08);width:100%}
.ls-header .ls-container{flex-wrap:wrap}}
/* floating contact */
.ls-float{position:fixed;right:16px;bottom:78px;z-index:55;display:flex;flex-direction:column;gap:10px}
@media(min-width:861px){.ls-float{bottom:22px}}
.ls-float a{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:1.25rem;font-weight:800;color:#fff;box-shadow:0 5px 16px rgba(0,0,0,.28);text-decoration:none}
.ls-float a.zalo{background:#0068FF;font-size:.78rem;letter-spacing:.02em}
.ls-float a.tel{background:var(--ls-accent-2)}
.ls-faq-list details{background:var(--ls-card);border:1px solid var(--ls-border);border-radius:var(--ls-radius);
  padding:0;margin-bottom:12px;overflow:hidden}
.ls-faq-list summary{padding:17px 20px;font-weight:600;color:var(--ls-primary);cursor:pointer;font-size:1rem;
  list-style:none;display:flex;justify-content:space-between;gap:14px;align-items:center}
.ls-faq-list summary::-webkit-details-marker{display:none}
.ls-faq-list summary::after{content:'+';color:var(--ls-accent);font-size:1.4rem;font-weight:700;line-height:1}
.ls-faq-list details[open] summary::after{content:'\2212'}
.ls-faq-list .ans{padding:0 20px 18px;color:var(--ls-text-soft);font-size:.93rem}
.ls-faq-list .ans p:last-child{margin-bottom:0}
.ls-cta-band{background:linear-gradient(135deg,var(--ls-primary),var(--ls-primary-soft));color:#fff;text-align:center;padding:62px 0}
.ls-cta-band h2{color:#fff}
.ls-cta-band p{color:rgba(255,255,255,.88);max-width:660px;margin:0 auto 26px}
.ls-cta-band .ls-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.ls-note{background:#fffbe9;border:1px solid #f0dc9a;border-left:4px solid var(--ls-accent);
  border-radius:8px;padding:16px 18px;font-size:.9rem;color:#6b5412}
.ls-note strong{color:#5a4508}
.ls-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px;text-align:center}
.ls-kpi .k{background:var(--ls-card);border:1px solid var(--ls-border);border-radius:var(--ls-radius);padding:22px 14px}
.ls-kpi .k b{display:block;font-family:var(--ls-font-display);font-size:2rem;color:var(--ls-accent-hover);line-height:1}
.ls-kpi .k span{font-size:.84rem;color:var(--ls-text-soft);display:block;margin-top:6px}

@media(max-width:860px){
  .ls-float{display:none}
}
.ls-sticky-mobile a.main{background:var(--ls-accent);color:var(--ls-primary)}

/* honeypot: present for bots, never shown to or focusable by a person */
.ls-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* lookup result card */
.ls-result{background:var(--ls-card);border:1px solid var(--ls-border);border-left:4px solid var(--ls-accent-2);
  border-radius:var(--ls-radius);padding:24px;margin-top:20px;box-shadow:var(--ls-shadow)}
.ls-result h3{margin-bottom:4px}
.ls-result .st{display:inline-block;background:var(--ls-primary);color:var(--ls-accent);
  padding:5px 13px;border-radius:999px;font-size:.82rem;font-weight:700;margin-bottom:12px}
.ls-result .det{color:var(--ls-text-soft);font-size:.93rem}
.ls-result ul{list-style:none;padding:0;margin:16px 0}
.ls-result li{display:flex;justify-content:space-between;gap:14px;padding:8px 0;
  border-bottom:1px solid var(--ls-border);font-size:.92rem}
.ls-result li:last-child{border-bottom:none}

/* printable wholesale sheet */
.ls-sheet{background:#fff;border:1px solid var(--ls-border);border-radius:var(--ls-radius);
  padding:36px;box-shadow:var(--ls-shadow);max-width:900px;margin:0 auto}
.ls-sheet-head{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
  padding-bottom:20px;border-bottom:3px solid var(--ls-accent);margin-bottom:8px}
.ls-sheet h2{text-align:left;font-size:1.22rem;margin:30px 0 12px;padding-bottom:6px;
  border-bottom:1px solid var(--ls-border)}
.ls-sheet table.ls-table{min-width:auto;font-size:.9rem}
.ls-sheet-note{font-size:.84rem;color:var(--ls-text-soft);margin:10px 0 0}
.ls-sheet-foot{margin-top:34px;padding-top:18px;border-top:1px solid var(--ls-border);
  font-size:.82rem;color:var(--ls-text-soft)}
.ls-sheet-foot p{margin:0 0 6px}

@media print{
  .ls-topbar,.ls-header,.ls-crumb,.ls-footer,.ls-legal,.ls-float,
  .ls-sticky-mobile,.ls-print-actions,.ls-cta-band{display:none!important}
  body{background:#fff;padding-bottom:0}
  .ls-section{padding:0!important}
  .ls-sheet{border:none;box-shadow:none;padding:0;max-width:none}
  .ls-sheet h2{page-break-after:avoid}
  table.ls-table{page-break-inside:avoid}
  table.ls-table th{background:#22311C!important;color:#fff!important;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  a[href]::after{content:""}
}

/* ---- multi-channel contact widget ---- */
.ls-chat-fab{position:fixed;right:16px;bottom:78px;z-index:58;width:58px;height:58px;border-radius:50%;
  border:none;cursor:pointer;background:var(--ls-accent);color:var(--ls-primary);
  box-shadow:0 6px 20px rgba(34,49,28,.34);display:flex;align-items:center;justify-content:center;
  transition:transform .2s}
.ls-chat-fab:hover{transform:scale(1.06)}
@media(min-width:861px){.ls-chat-fab{bottom:22px}}
.ls-chat-dot{position:absolute;top:4px;right:6px;width:11px;height:11px;border-radius:50%;
  background:#C0392B;border:2px solid var(--ls-accent)}
.ls-chat-panel{position:fixed;right:16px;bottom:146px;z-index:59;width:min(320px,calc(100vw - 32px));
  background:var(--ls-card);border:1px solid var(--ls-border);border-radius:14px;
  box-shadow:0 18px 50px rgba(34,49,28,.3);overflow:hidden}
.ls-chat-panel[hidden]{display:none!important}
@media(min-width:861px){.ls-chat-panel{bottom:90px}}
.ls-chat-head{background:var(--ls-primary);color:#fff;padding:15px 18px;display:flex;
  justify-content:space-between;align-items:center;gap:12px}
.ls-chat-head strong{display:block;font-size:.97rem}
.ls-chat-head span{font-size:.78rem;color:rgba(255,255,255,.72)}
.ls-chat-close{background:none;border:none;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;padding:0 2px}
.ls-chat-body{padding:16px 18px 18px}
.ls-chat-body>p{font-size:.86rem;color:var(--ls-text-soft);margin:0 0 14px}
.ls-chat-ch{display:block;padding:11px 14px;border-radius:9px;margin-bottom:9px;
  border:1px solid var(--ls-border);text-decoration:none;transition:border-color .2s,background .2s}
.ls-chat-ch:hover{border-color:var(--ls-accent);background:#fffdf4}
.ls-chat-ch b{display:block;font-size:.92rem;color:var(--ls-primary)}
.ls-chat-ch span{display:block;font-size:.78rem;color:var(--ls-text-soft);margin-top:1px}
.ls-chat-ch.tel b{color:var(--ls-accent-2)}
.ls-chat-ch.zalo b{color:#0068FF}
.ls-chat-ch.order b{color:var(--ls-accent-hover)}

/* Tiêu đề trong thẻ form/aside: là h2 cho đúng thứ bậc heading,
   nhưng giữ cỡ chữ như h3 để bố cục không đổi. */
.ls-card-title{font-size:1.2rem;margin:0 0 6px;text-align:left;line-height:1.3}
.ls-aside .ls-card-title{color:#fff;font-size:1.15rem}
.ls-section .ls-card-title{text-align:left}
