/* lp-home.css — Trang chủ bán hàng "/" + trang đích "/tiktok" + nút Zalo trang SP (FE, 19/10/2026; vòng 2 20/10: giá combo, quà đơn đầu, checkout quà, chính sách khi ẩn đánh giá).
   Spec: design/trang-chu-ban-hang/SPEC.md. Nạp SAU lp.css; chỉ dùng token --lp-* của lp.css (không thêm màu thương hiệu mới).
   Tiền tố: .lp-door / .lp-hotel-mini (hero), .lp-combo, .lp-gift, .lp-month, .lp-review, .lp-policies, .lp-tt-* (trang /tiktok).
   Chuyển động: chỉ transform/opacity, đường cong --lp-ease; tắt khi prefers-reduced-motion. */
:root{--lp-bezel:rgba(62,31,20,.05);--lp-shadow-warm:0 18px 40px -20px rgba(62,31,20,.35)}

/* ==================== 1. Hero: 2 lối vào lớn ==================== */
.lp-hero-doors{min-width:0}
.lp-doors{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.lp-main .lp-door{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:148px;padding:14px;border-radius:var(--lp-r-l);text-decoration:none;isolation:isolate;overflow:hidden;transition:transform .45s var(--lp-ease),box-shadow .45s var(--lp-ease)}
.lp-door.is-shop{background:var(--lp-brown);color:#fff;box-shadow:var(--lp-shadow-warm)}
.lp-door.is-spa{background:var(--lp-cream-2);color:var(--lp-brown);box-shadow:inset 0 0 0 1px rgba(62,31,20,.06)}
.lp-door-k{font:700 11px/1.3 var(--lp-f-body);letter-spacing:.12em;text-transform:uppercase}
.lp-door.is-shop .lp-door-k{color:#f3dcc0}
.lp-door.is-spa .lp-door-k{color:var(--lp-orange-d)}
.lp-door-t{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font:700 19px/1.15 var(--lp-f-head);letter-spacing:-.01em;text-wrap:balance}
.lp-door.is-shop .lp-door-t{color:#fff}
.lp-door.is-spa .lp-door-t{color:var(--lp-ink)}
.lp-door-p{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;min-height:22px}
.lp-door-p:empty{display:none}
.lp-door .lp-hmenu-tag{font-size:12px;padding:2px 8px}
.lp-door.is-shop .lp-hmenu-per{color:#f3dcc0;font-size:12px}
.lp-door .lp-price,.lp-door .lp-price.is-end{align-items:flex-start;gap:1px}
.lp-door .lp-price>strong{font:700 19px/1.1 var(--lp-f-body);color:var(--lp-orange-d)}
.lp-door .lp-price>strong small{font:500 12px/1 var(--lp-f-body);color:var(--lp-muted)}
.lp-door .lp-hmenu-sub,.lp-door .lp-price .lp-hmenu-sub{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:0 5px;white-space:normal;font-size:12px;line-height:1.3}
.lp-door .lp-hmenu-end>[aria-hidden]{display:inline}
.lp-door-gift{display:inline-flex;align-items:flex-start;gap:6px;font:600 12.5px/1.35 var(--lp-f-body);color:var(--lp-yellow);text-wrap:balance}
.lp-door-gift[hidden]{display:none}
.lp-door-gift .lp-ic-svg{flex:none;width:16px;height:16px;margin-top:1px}
.lp-door-go{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:4px;font:700 14px/1.2 var(--lp-f-body)}
.lp-door.is-shop .lp-door-go{color:var(--lp-yellow)}
.lp-door.is-spa .lp-door-go{color:var(--lp-orange-d)}
.lp-door-go i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;transition:transform .45s var(--lp-ease)}
.lp-door.is-shop .lp-door-go i{background:rgba(239,180,68,.16)}
.lp-door.is-spa .lp-door-go i{background:#fff}
.lp-door-go .lp-ic-svg{width:16px;height:16px;stroke-width:2}
.lp-door:hover{transform:translateY(-2px)}
.lp-door.is-shop:hover{box-shadow:0 24px 46px -20px rgba(62,31,20,.5)}
.lp-door.is-spa:hover{box-shadow:inset 0 0 0 1px rgba(62,31,20,.1),0 18px 36px -22px rgba(62,31,20,.4)}
.lp-door:hover .lp-door-go i{transform:translateX(3px) scale(1.05)}
.lp-door:active{transform:scale(.98)}
.lp-main .lp-door:focus-visible{outline:2px solid var(--lp-orange);outline-offset:3px}
@media (min-width:768px){
  .lp-doors{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px}
  .lp-main .lp-door{min-height:180px;padding:20px 20px 18px;gap:8px}
  .lp-door-t{font-size:24px}
  .lp-door .lp-price>strong{font-size:22px}
}
.lp-main .lp-hotel-mini{display:flex;align-items:center;gap:10px;min-height:44px;margin-top:8px;padding:0 2px;font:500 14px/1.4 var(--lp-f-body);color:var(--lp-ink-2);text-decoration:none}
.lp-hotel-mini>.lp-ic-svg{width:18px;height:18px;color:var(--lp-orange)}
.lp-hotel-mini b{font-weight:700;color:var(--lp-ink)}
.lp-hotel-mini .lp-price,.lp-hotel-mini .lp-price.is-stack{display:inline-flex;flex-direction:row;align-items:baseline;gap:0 4px}
.lp-hotel-mini .lp-price>strong{font:700 14px/1.4 var(--lp-f-body);color:var(--lp-ink)}
.lp-hotel-mini .lp-price>strong small{font:500 14px/1 var(--lp-f-body);color:var(--lp-ink-2)}
.lp-hotel-mini .lp-hmenu-per{display:none} /* lp-quote.js ghi "mỗi ngày" → gọn thành "/ngày" cho dòng vừa 1 hàng ở 390px */
.lp-hotel-mini [data-hmenu-price] .lp-price>strong::after{content:"/ngày";font-weight:500;color:var(--lp-ink-2)}
.lp-hotel-mini-go{width:16px!important;height:16px!important;margin-left:auto;color:var(--lp-orange-d);transition:transform .45s var(--lp-ease)}
.lp-hotel-mini:hover>span{text-decoration:underline;text-underline-offset:3px}
.lp-hotel-mini:hover .lp-hotel-mini-go{transform:translateX(3px)}

/* Lưới hero: <1024 một cột theo DOM (chữ → 2 lối vào → Pet Hotel → tin cậy → ô báo giá → gợi ý Zalo); ≥1024 ô báo giá cột phải như v3 */
@media (max-width:1023px){.lp-hero-v4 .lp-hfacts{margin-top:2px}}
@media (min-width:1024px){
  .lp-hero-v4 .lp-hero-grid{grid-template-columns:minmax(0,1fr) clamp(380px,36vw,440px);grid-template-areas:"copy book" "doors book" "facts book" "ask book" ". book";grid-template-rows:auto auto auto auto 1fr}
  .lp-hero-v4 .lp-hero-doors{grid-area:doors;margin-top:24px}
  .lp-hero-v4 .lp-hfacts{grid-area:facts;margin-top:20px}
  .lp-hero-v4 .lp-hask{grid-area:ask;margin-top:12px}
}
/* Vòng sáng quanh ô báo giá khi bấm thẻ "Đặt lịch spa" (máy tính: ô đã hiện sẵn bên phải) */
.lp-hero-v4 .lp-booker-col{position:relative}
.lp-booker-col.is-flash::after{content:"";position:absolute;inset:-5px;border-radius:28px;box-shadow:0 0 0 3px var(--lp-orange);pointer-events:none;animation:lp-flash 1.2s var(--lp-ease) both}
@keyframes lp-flash{0%{opacity:0;transform:scale(.985)}25%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}

/* ==================== 2. Quà đơn đầu (bật theo /api/site-config) — vỏ ngoài vàng + lõi kem ==================== */
.lp-gift-sec{padding:20px 0 0}
.lp-gift-sec[hidden]{display:none}
.lp-gift{padding:6px;border-radius:26px;background:rgba(239,180,68,.22)}
.lp-gift-in{display:grid;grid-template-columns:84px minmax(0,1fr);gap:14px 16px;align-items:start;padding:16px;border-radius:20px;background:var(--lp-yellow-l);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 0 0 1px rgba(239,180,68,.35)}
.lp-gift-img{position:relative;display:block;width:84px;height:84px;padding:4px;border-radius:18px;background:#fff;box-shadow:0 10px 22px -16px rgba(62,31,20,.55)}
.lp-gift-img img{display:block;width:100%;height:100%;border-radius:14px;object-fit:contain}
.lp-gift-img b{position:absolute;right:-8px;bottom:-6px;min-width:34px;height:26px;padding:0 8px;border-radius:var(--lp-r-pill);background:var(--lp-orange);color:#fff;font:700 13px/26px var(--lp-f-body);text-align:center;box-shadow:0 0 0 3px var(--lp-yellow-l)}
.lp-gift-k{display:inline-block;margin:0 0 6px!important;padding:3px 10px;border-radius:var(--lp-r-pill);background:rgba(180,83,42,.1);color:var(--lp-orange-d);font:700 10.5px/1.4 var(--lp-f-body);letter-spacing:.12em;text-transform:uppercase}
.lp-main .lp-gift h2{font:700 20px/1.22 var(--lp-f-head);letter-spacing:-.01em;text-wrap:balance}
.lp-gift-t>p:not(.lp-gift-k){margin-top:6px;font-size:14px;line-height:1.5;color:var(--lp-ink-2)}
.lp-gift-cta{grid-column:1/-1;gap:10px;border-radius:var(--lp-r-pill)!important;transition:background .3s var(--lp-ease),transform .3s var(--lp-ease)}
.lp-gift-cta i{display:grid;place-items:center;width:28px;height:28px;margin-right:-10px;border-radius:50%;background:rgba(255,255,255,.18);transition:transform .45s var(--lp-ease)}
.lp-gift-cta .lp-ic-svg{width:15px;height:15px;stroke-width:2}
.lp-gift-cta:hover i{transform:translateX(3px) scale(1.05)}
.lp-gift-cta:active{transform:scale(.98)}
.lp-gift.is-tt .lp-gift-in{grid-template-columns:72px minmax(0,1fr)}
.lp-gift.is-tt .lp-gift-img{width:72px;height:72px}
.lp-main .lp-gift.is-tt h2{font-size:18px}
@media (min-width:768px){.lp-gift-in{grid-template-columns:84px minmax(0,1fr) auto;align-items:center;padding:18px 22px}.lp-gift-cta{grid-column:auto;padding:0 22px}.lp-main .lp-gift h2{font-size:22px}.lp-gift.is-tt .lp-gift-in{grid-template-columns:72px minmax(0,1fr)}.lp-gift.is-tt .lp-gift-cta{grid-column:1/-1}}
.lp-tt-gift{color:var(--lp-orange-d)!important;font-weight:600}

/* ==================== 3. Combo tháng cho mèo (giá động từ /api/products; không có SP → chỉ nút Zalo) ==================== */
.lp-main h2#combo-h,.lp-main h2#ban-chay-h{text-wrap:balance}
.lp-combos{position:relative;list-style:none;margin:0 calc(-1*var(--lp-gutter));padding:4px var(--lp-gutter) 10px;display:grid;grid-auto-flow:column;grid-auto-columns:86%;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--lp-gutter);scrollbar-width:none}
.lp-combos::-webkit-scrollbar{display:none}
.lp-combos:empty{min-height:560px}
.lp-combo{min-width:0;scroll-snap-align:start;display:flex;padding:6px;border-radius:24px;background:var(--lp-bezel)}
.lp-combo.is-pick{order:-1;background:rgba(180,83,42,.12)}
.lp-combo-in{position:relative;display:flex;flex-direction:column;width:100%;padding:18px 18px 16px;border-radius:18px;background:#fff;box-shadow:0 1px 2px rgba(62,31,20,.06)}
.lp-combo.is-pick .lp-combo-in{box-shadow:inset 0 0 0 2px var(--lp-orange)}
.lp-combo-badge{align-self:flex-start;margin:-4px 0 8px;padding:3px 10px;border-radius:var(--lp-r-pill);background:var(--lp-orange);color:#fff;font:700 11px/1.4 var(--lp-f-body);letter-spacing:.06em;text-transform:uppercase}
.lp-main .lp-combo h3{font:700 22px/1.2 var(--lp-f-head);letter-spacing:-.01em}
.lp-combo-sub{margin-top:4px!important;font-size:13px;color:var(--lp-muted)}
.lp-combo-thumbs{display:flex;gap:8px;margin:14px 0 12px}
.lp-combo-thumbs span{display:block;width:64px;height:64px;border-radius:12px;background:var(--lp-well,#f5ece0);padding:3px}
.lp-combo-thumbs img{display:block;width:100%;height:100%;object-fit:contain;border-radius:9px;background:#fff}
.lp-combo-items{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.lp-combo-items li{position:relative;padding-left:20px;font-size:15px;line-height:1.4;color:var(--lp-ink-2)}
.lp-combo-items li::before{content:"";position:absolute;left:2px;top:.5em;width:8px;height:8px;border-radius:50%;background:var(--lp-yellow)}
/* 23/10: ảnh combo là poster vuông có chữ → khung vuông theo ảnh, hiện trọn (trước: cao 132px + img height:100% không xác định → img giữ 320px, bị cắt còn dải đáy) */
.lp-combo-shot{position:relative;aspect-ratio:1/1;margin:14px 0 12px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1px var(--lp-line);overflow:hidden}
.lp-combo-shot img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
/* Giá: số combo lớn + "Mua lẻ" gạch + "Tiết kiệm 3%" tách 3 phần, có khoảng thở */
.lp-combo-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;min-height:66px;margin:16px 0 14px;padding-top:14px;border-top:1px dashed var(--lp-line-2)}
.lp-combo-now{font:700 28px/1.1 var(--lp-f-body);letter-spacing:-.02em;color:var(--lp-orange-d);font-variant-numeric:tabular-nums}
.lp-combo-now small{font:500 13px/1 var(--lp-f-body);color:var(--lp-muted)}
.lp-combo-was{font-size:13px;color:var(--lp-muted)}
.lp-combo-was s{color:var(--lp-muted);font-variant-numeric:tabular-nums}
.lp-combo-save{flex-basis:100%;align-self:flex-start;max-width:max-content;padding:3px 10px;border-radius:var(--lp-r-pill);background:var(--lp-ok-l);color:var(--lp-ok);font:700 12.5px/1.4 var(--lp-f-body)}
.lp-combo-price.is-note{min-height:0;align-items:center}
.lp-combo-note{font-size:13px;color:var(--lp-muted)}
.lp-combo-now+.lp-combo-note{flex-basis:100%} /* BUG-10: combo chưa rẻ hơn mua lẻ hôm nay → dòng phụ dưới giá, không gạch giá */
.lp-combo-skel{display:block;width:62%;height:30px;border-radius:8px;background:var(--lp-cream);animation:lp-pulse 1.4s var(--lp-ease) infinite alternate}
.lp-combo-ctas{display:grid;gap:8px;margin-top:auto}
.lp-combo-buy{gap:10px;min-height:48px;border-radius:var(--lp-r-pill)!important;transition:background .3s var(--lp-ease),transform .3s var(--lp-ease)}
.lp-combo-buy[hidden]{display:none}
.lp-combo-buy i{display:grid;place-items:center;width:28px;height:28px;margin-right:-10px;border-radius:50%;background:rgba(255,255,255,.18);transition:transform .45s var(--lp-ease)}
.lp-combo-buy .lp-ic-svg{width:15px;height:15px;stroke-width:2}
.lp-combo-buy:hover i{transform:translateX(3px) scale(1.05)}
.lp-combo-buy:active,.lp-combo-cta:active{transform:scale(.98)}
.lp-combo-cta{width:100%;min-height:48px;transition:background .3s var(--lp-ease),border-color .3s var(--lp-ease),transform .3s var(--lp-ease)}
.lp-combo.has-buy .lp-combo-cta{min-height:44px;border-radius:var(--lp-r-pill);font-size:14px}
.lp-combo-cta:hover{border-color:var(--lp-zalo);background:#eef4fe}
.lp-combos-foot{margin:6px 0 0!important;font-size:13px;color:var(--lp-muted)}
.lp-combos-hint{margin:2px 0 0;font-size:13px;color:var(--lp-muted);text-align:right}
@media (min-width:768px){
  .lp-combos{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;overflow:visible;margin:0;padding:0}
  .lp-combo.is-pick{order:0}
  .lp-combos-hint{display:none}
  .lp-combos-foot{margin-top:14px!important}
}

/* ==================== 4. Lưới SP nổi bật (#product-grid[data-featured]) ==================== */
body.lp .lp-featured #product-grid[data-featured] .product-bottom{flex-direction:column;align-items:stretch;gap:10px}
body.lp .lp-products .add-product.is-text{width:100%;height:44px;font:700 14px/1 var(--lp-f-body);letter-spacing:0;border-radius:var(--lp-r-s);transition:background .3s var(--lp-ease),transform .3s var(--lp-ease)}
body.lp .lp-products .add-product.is-text:active{transform:scale(.98)}
body.lp .lp-featured .card-quantity{align-self:stretch;justify-content:space-between}
.price-from{font:500 12px/1 var(--lp-f-body);color:var(--lp-muted)}
.lp-skel{border-radius:var(--lp-r);background:linear-gradient(180deg,var(--lp-cream) 0 62%,#fff 62% 100%);box-shadow:inset 0 0 0 1px var(--lp-line);aspect-ratio:.66;animation:lp-pulse 1.4s var(--lp-ease) infinite alternate}
.lp-skel.is-wide{display:none}
@keyframes lp-pulse{from{opacity:1}to{opacity:.55}}
@media (min-width:768px){.lp-skel.is-wide{display:block}}
.lp-grid-msg{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 14px;padding:28px 12px;border-radius:var(--lp-r);background:#fff;box-shadow:inset 0 0 0 1px var(--lp-line);text-align:center}
.lp-grid-msg p{width:100%;font-weight:600;color:var(--lp-ink)}
.lp-featured-foot{margin:16px 0 0!important;font-size:14px;line-height:1.5;color:var(--lp-ink-2)}
.lp-featured-foot a{color:var(--lp-orange-d);font-weight:700;text-decoration:none;white-space:nowrap}
.lp-featured-foot a:hover{text-decoration:underline}

/* ==================== 5. Gói tháng spa (5 gói A–E, có giá "từ" + bảng theo cân, 22/10) — vỏ ngoài + lõi nâu ==================== */
.lp-month-sec{padding-top:0} /* khối SP ngay trên cùng nền, đã có đệm đáy → không cộng đôi khoảng trắng */
.lp-month{padding:6px;border-radius:30px;background:rgba(62,31,20,.06)}
.lp-month-in{display:grid;gap:22px;padding:26px 20px 22px;border-radius:24px;background:var(--lp-brown);color:var(--lp-cream);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 24px 48px -28px rgba(62,31,20,.6)}
.lp-month-k{display:inline-block;margin:0 0 12px!important;padding:4px 10px;border-radius:var(--lp-r-pill);background:rgba(239,180,68,.16);color:var(--lp-yellow);font:700 11px/1.4 var(--lp-f-body);letter-spacing:.08em;text-transform:uppercase}
.lp-main .lp-month h2{color:#fff;text-wrap:balance}
.lp-month-lead{margin-top:10px!important;color:rgba(248,241,230,.86);max-width:46ch}
.lp-month-deal{display:flex;gap:8px;align-items:flex-start;margin-top:14px!important;font-weight:600;font-size:14px;color:var(--lp-yellow)}
.lp-month-deal[hidden]{display:none}
.lp-month-deal .lp-ic-svg{width:18px;height:18px;margin-top:1px}
.lp-month-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.lp-month-cta .lp-btn{flex:1 1 200px}
.lp-btn-zalo.is-solid{background:var(--lp-zalo);border-color:var(--lp-zalo);color:#fff!important}
.lp-btn-zalo.is-solid:hover{background:#0a4fb8}
.lp-month-alt{background:transparent;border-color:rgba(248,241,230,.4);color:var(--lp-cream)!important}
.lp-month-alt:hover{border-color:var(--lp-cream);background:rgba(255,255,255,.06)}
.lp-month-plans{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:plan}
.lp-month-plans li{display:grid;gap:4px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.lp-month-plans li.is-pick{box-shadow:inset 0 0 0 1.5px var(--lp-yellow);background:rgba(239,180,68,.08)}
.lp-month-plans b{display:flex;align-items:center;gap:8px;font:700 18px/1.25 var(--lp-f-head);color:#fff}
.lp-month-plans em{font:700 10px/1.4 var(--lp-f-body);font-style:normal;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:var(--lp-r-pill);background:var(--lp-yellow);color:var(--lp-brown-2)}
.lp-month-plans span{font-size:14px;line-height:1.45;color:rgba(248,241,230,.8)}
@media (min-width:900px){.lp-month-in{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:36px;align-items:center;padding:40px 40px 36px}}
/* 22/10: giá gói. Câu chung "Chó từ…, mèo từ…", chữ cái gói, hàng giá chó/mèo tách rõ, ghi chú cân nặng */
.lp-main .lp-month-from{margin-top:10px;font:600 19px/1.35 var(--lp-f-head);color:#fff;text-wrap:balance}
.lp-month-from>span{white-space:nowrap}
.lp-month-from b{color:var(--lp-yellow);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.lp-main .lp-month-note{margin-top:12px;font-size:13px;line-height:1.45;color:rgba(248,241,230,.7)}
.lp-month-plans b>i{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;border-radius:8px;background:rgba(255,255,255,.1);font:700 13px/1 var(--lp-f-body);font-style:normal;color:var(--lp-yellow)}
.lp-month-plans li.is-pick b>i{background:var(--lp-yellow);color:var(--lp-brown-2)}
.lp-month-plans em.is-soft{background:rgba(255,255,255,.12);color:var(--lp-cream)}
.lp-month-plans b{flex-wrap:wrap;row-gap:4px}.lp-month-plans em{white-space:nowrap}
.lp-main .lp-month-pr{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:6px}
.lp-month-plans .lp-month-pr span{font-size:13px;color:rgba(248,241,230,.72)}
.lp-month-pr strong{margin-left:2px;font:700 16px/1.3 var(--lp-f-body);color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
/* Bảng đủ theo cân (thu gọn). Máy tính/tablet: bảng thường. <640px: mỗi hàng cân → tiêu đề + lưới 2 cột "A 249.000đ" */
.lp-month-more{border-radius:16px;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.lp-month-more summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 16px;font-weight:700;font-size:15px;color:#fff;border-radius:16px}
.lp-month-more summary::-webkit-details-marker{display:none}
.lp-month-more summary::after{content:"";flex:none;width:9px;height:9px;margin-right:4px;border-right:2px solid var(--lp-yellow);border-bottom:2px solid var(--lp-yellow);transform:rotate(45deg) translateY(-2px);transition:transform .2s var(--lp-ease)}
.lp-month-more[open] summary::after{transform:rotate(225deg) translateY(-2px)}
.lp-month-more summary:hover{background:rgba(255,255,255,.04)}
body.lp .lp-month-more summary:focus-visible{outline:2px solid var(--lp-yellow);outline-offset:2px}
.lp-month-tables{display:grid;gap:18px;align-items:start;padding:4px 16px 0}
table.lp-month-t{width:100%;border-collapse:collapse;font-size:14px;color:var(--lp-cream)}
.lp-month-t caption{caption-side:top;text-align:left;padding:0 0 8px;font:700 12px/1.4 var(--lp-f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--lp-yellow)}
.lp-month-t th,.lp-month-t td{padding:9px 8px;text-align:right;border-bottom:1px solid rgba(255,255,255,.1);vertical-align:bottom}
.lp-month-t thead th{font:600 12px/1.3 var(--lp-f-body);color:rgba(248,241,230,.7)}
.lp-month-t th:first-child{text-align:left;padding-left:0}
.lp-month-t tbody th{font-weight:600;color:#fff;white-space:nowrap}
.lp-month-t td{font-variant-numeric:tabular-nums;white-space:nowrap}
.lp-month-t td:last-child,.lp-month-t th:last-child{padding-right:0}
.lp-main .lp-month-tnote{padding:12px 16px 14px;font-size:13px;line-height:1.45;color:rgba(248,241,230,.7)}
@media (max-width:639px){
  .lp-month-tables{padding:2px 12px 0}
  .lp-main .lp-month-tnote{padding:12px 12px 14px}
  .lp-month-t thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .lp-month-t tbody,.lp-month-t tr{display:block}
  .lp-month-t tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1)}
  .lp-month-t tbody th,.lp-month-t td{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:3px 0;border:0}
  .lp-month-t tbody th{grid-column:1/-1;padding-bottom:4px;font-size:13px}
  .lp-month-t td::before{content:attr(data-l);font-weight:700;font-size:12px;color:var(--lp-yellow)}
}
@media (min-width:900px){.lp-month-more{grid-column:1/-1}.lp-month-tables{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}}

/* ==================== 6. Khách nói gì + 4 chính sách ==================== */
.lp-review{display:grid;gap:24px;align-items:center}
.lp-review-shot{margin:0;padding:6px;border-radius:24px;background:var(--lp-bezel);justify-self:center;width:100%;max-width:420px}
.lp-review-shot img{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 1px 2px rgba(62,31,20,.08)}
.lp-review-q{margin:0}
.lp-main .lp-review-q p{font:700 22px/1.25 var(--lp-f-head);letter-spacing:-.01em;color:var(--lp-ink)}
.lp-review-p{margin-top:10px!important;color:var(--lp-ink-2);max-width:48ch}
.lp-policies{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lp-policies li{display:flex;min-width:0}
.lp-main .lp-policies a{display:flex;gap:10px;align-items:flex-start;width:100%;min-height:64px;padding:12px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1px var(--lp-line);text-decoration:none;color:var(--lp-ink-2);font-size:13px;line-height:1.4;transition:transform .4s var(--lp-ease),box-shadow .4s var(--lp-ease)}
.lp-policies a:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--lp-line-2),0 14px 28px -20px rgba(62,31,20,.4)}
.lp-policies b{display:block;font:700 15px/1.3 var(--lp-f-body);color:var(--lp-ink)}
.lp-policies .lp-ic-svg{color:var(--lp-orange);width:20px;height:20px;margin-top:1px}
[data-lp-review][hidden]{display:none!important}
.lp-review-head{margin-bottom:0}
.lp-main .lp-review-head h2{text-wrap:balance}
.lp-review-quote{margin-top:18px}
@media (min-width:768px){.lp-review:not(.is-solo){grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px}.lp-main .lp-review-q p{font-size:30px}}
@media (min-width:1024px){.lp-policies{grid-template-columns:repeat(4,minmax(0,1fr))}.lp-policies a{flex-direction:column;gap:8px}}

/* ==================== 7. Dock: Zalo · Giỏ hàng (số) · Đặt lịch spa ==================== */
.lp-dock-ic{position:relative;display:inline-flex}
.lp-dock-ic>b{position:absolute;top:-6px;right:-11px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--lp-orange);color:#fff;font:700 11px/18px var(--lp-f-body);text-align:center;font-variant-numeric:tabular-nums}
.lp-dock [data-cart-count][data-zero],.lp-tt-cart [data-cart-count][data-zero]{display:none}
@media (max-width:767px){.lp-dock.is-2{grid-template-columns:1fr 1.7fr}}

/* ==================== 8. Trang SP: nút "Đặt qua Zalo" dưới hàng Thêm vào giỏ ==================== */
body.lp .lp-pdp-zalo{display:flex;width:100%;min-height:44px;margin-top:10px}

/* ==================== 9. Trang /tiktok ==================== */
.lp-tt-wrap{width:min(560px,100% - 2*var(--lp-gutter));margin-inline:auto}
.lp-tt-head{position:sticky;top:0;z-index:20;background:rgba(255,253,249,.92);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--lp-line)}
.lp-tt-head-in{display:flex;align-items:center;justify-content:space-between;gap:12px;height:60px}
.lp-tt-head-act{display:flex;align-items:center;gap:8px}
.lp-tt-head .lp-btn-zalo{background:var(--lp-zalo);border-color:var(--lp-zalo);color:#fff!important}
.lp-tt-cart{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--lp-r-s);color:var(--lp-ink);box-shadow:inset 0 0 0 1.5px var(--lp-line-2)}
.lp-tt-cart>b{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--lp-orange);color:#fff;font:700 11px/18px var(--lp-f-body);text-align:center}
.lp-tt-main{padding:20px 0 36px}
.lp-tt-sec{margin-top:32px}
.lp-main .lp-tt-sec>h2,.lp-main .lp-tt-h2{font:700 24px/1.2 var(--lp-f-head);letter-spacing:-.01em;margin-bottom:14px;text-wrap:balance}
.lp-tt-hi{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center;padding:6px;border-radius:28px;background:var(--lp-bezel)}
.lp-tt-hi-in{display:contents}
.lp-tt-hi img{width:96px;height:96px;border-radius:50%;border:3px solid #fff;box-shadow:0 10px 24px -12px rgba(62,31,20,.5);margin:12px 0 12px 12px;object-fit:cover}
.lp-tt-hi-t{padding:14px 14px 14px 0}
.lp-main .lp-tt-hi h1{font:700 28px/1.12 var(--lp-f-head)}
.lp-tt-hi p{margin-top:6px!important;font-size:15px;line-height:1.5;color:var(--lp-ink-2)}
.lp-tt-choices{display:grid;gap:10px}
.lp-main .lp-tt-choice{display:grid;grid-template-columns:72px minmax(0,1fr) 28px;gap:14px;align-items:center;min-height:96px;padding:10px 12px 10px 10px;border-radius:20px;background:#fff;box-shadow:inset 0 0 0 1px var(--lp-line),0 1px 2px rgba(62,31,20,.05);text-decoration:none;color:var(--lp-ink);transition:transform .45s var(--lp-ease),box-shadow .45s var(--lp-ease)}
.lp-tt-choice.is-spa{box-shadow:inset 0 0 0 2px var(--lp-orange),0 16px 32px -22px rgba(180,83,42,.6);background:var(--lp-orange-l)}
.lp-tt-choice img{width:72px;height:72px;border-radius:14px;object-fit:cover;background:var(--lp-cream)}
.lp-tt-choice-t{display:grid;gap:3px;min-width:0}
.lp-tt-choice-t>b{font:700 18px/1.25 var(--lp-f-head);letter-spacing:-.005em}
.lp-tt-choice-t>small{font-size:13px;line-height:1.4;color:var(--lp-muted)}
.lp-tt-choice-t>small[hidden]{display:none}
.lp-tt-choice .lp-price,.lp-tt-choice .lp-price.is-stack{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:0 6px}
.lp-tt-choice .lp-price>strong{font:700 16px/1.25 var(--lp-f-body)}
.lp-tt-choice .lp-price>strong small{font:500 12px/1 var(--lp-f-body);color:var(--lp-muted)}
.lp-tt-choice .lp-hmenu-sub{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:0 5px;white-space:normal;font-size:12px}
.lp-tt-choice .lp-hmenu-end>[aria-hidden]{display:inline}
.lp-tt-go{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--lp-cream);color:var(--lp-orange-d);transition:transform .45s var(--lp-ease)}
.lp-tt-go .lp-ic-svg{width:16px;height:16px;stroke-width:2}
.lp-tt-choice:hover{transform:translateY(-2px)}
.lp-tt-choice:hover .lp-tt-go{transform:translateX(3px) scale(1.05)}
.lp-tt-choice:active{transform:scale(.98)}
.lp-main .lp-tt-choice:focus-visible{outline:2px solid var(--lp-orange);outline-offset:3px}
.lp-tt-strip{position:relative;list-style:none;margin:0 calc(-1*var(--lp-gutter));padding:2px var(--lp-gutter) 8px;display:grid;grid-auto-flow:column;grid-auto-columns:140px;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--lp-gutter);scrollbar-width:none}
.lp-tt-strip::-webkit-scrollbar{display:none}
.lp-tt-strip>li{min-width:0;scroll-snap-align:start;display:flex}
.lp-tt-strip>li.lp-strip-msg{grid-column:1/-1;display:block;padding:16px;border-radius:var(--lp-r);background:#fff;box-shadow:inset 0 0 0 1px var(--lp-line);font-size:14px;color:var(--lp-ink-2);width:calc(100vw - 2*var(--lp-gutter));max-width:560px}
.lp-strip-msg a,.lp-strip-msg button{color:var(--lp-orange-d);font-weight:700;background:none;border:0;padding:0;font-size:inherit;cursor:pointer;text-decoration:underline}
.lp-main .lp-strip-card{position:relative;display:flex;flex-direction:column;width:100%;border-radius:16px;background:#fff;box-shadow:inset 0 0 0 1px var(--lp-line);overflow:hidden;text-decoration:none;color:var(--lp-ink);transition:transform .45s var(--lp-ease)}
.lp-strip-card:hover{transform:translateY(-2px)}
.lp-strip-img{display:block;aspect-ratio:1;background:#fff;border-bottom:1px solid var(--lp-line)}
.lp-strip-img img{width:100%;height:100%;object-fit:contain;display:block}
.lp-strip-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px;margin:8px 10px 4px;font:600 13px/1.4 var(--lp-f-body)}
.lp-strip-card .lp-price{margin:auto 10px 10px}
.lp-strip-card .lp-price>strong{font-size:15px}
.lp-strip-card .lp-price>strong small{font:500 11px/1 var(--lp-f-body);color:var(--lp-muted)}
.lp-strip-card .lp-price>s{font-size:12px}
.lp-tt-strip .lp-skel{width:140px;aspect-ratio:.62}
.lp-tt-reels{list-style:none;margin:0 calc(-1*var(--lp-gutter));padding:2px var(--lp-gutter) 10px;display:grid;grid-auto-flow:column;grid-auto-columns:120px;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--lp-gutter);scrollbar-width:none}
.lp-tt-reels::-webkit-scrollbar{display:none}
.lp-tt-reels>li{scroll-snap-align:start;min-width:0}
.lp-tt-reels .lp-reel{width:120px;border-radius:14px;box-shadow:0 10px 18px -12px rgba(20,8,4,.55)}
.lp-tt-reels .lp-reel-play{width:40px;height:40px;margin:-20px 0 0 -20px}
.lp-tt-reels .lp-reel-play svg{width:16px;height:16px}
.lp-tt-reels .lp-reel-txt{padding:8px 8px 10px}
.lp-tt-reels .lp-reel-txt small{font-size:10px;margin-bottom:4px}
.lp-tt-reels .lp-reel-txt b{font-size:13px}
.lp-tt-zalo{padding:6px;border-radius:28px;background:var(--lp-bezel)}
.lp-tt-zalo-in{padding:22px 20px 20px;border-radius:22px;background:var(--lp-brown);color:var(--lp-cream)}
.lp-main .lp-tt-zalo h2{font:700 24px/1.2 var(--lp-f-head);color:#fff}
.lp-tt-zalo p{margin-top:8px!important;color:rgba(248,241,230,.86);font-size:15px}
.lp-tt-zalo .lp-btn{width:100%;margin-top:16px;min-height:52px}
.lp-tt-facts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lp-tt-facts li{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1px var(--lp-line);font-size:13px;line-height:1.4;color:var(--lp-ink-2)}
.lp-tt-facts b{display:block;font:700 14px/1.3 var(--lp-f-body);color:var(--lp-ink)}
.lp-tt-facts .lp-ic-svg{color:var(--lp-orange);width:18px;height:18px;margin-top:1px}
@media (min-width:768px){.lp-tt-main{padding:36px 0 56px}.lp-main .lp-tt-hi h1{font-size:34px}.lp-tt-strip,.lp-tt-reels{margin:0;padding-inline:0}.lp-tt-strip>li.lp-strip-msg{width:auto}}

/* ==================== 10. Checkout: dòng quà đơn đầu (app.js, khi /api/gift/first-order trả eligible) ==================== */
.checkout-gift{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center;margin-top:10px;padding:10px 12px;border-radius:14px;background:var(--lp-ok-l);box-shadow:inset 0 0 0 1px rgba(47,122,69,.22);animation:lp-gift-in .5s var(--lp-ease) both}
.checkout-gift[hidden]{display:none}
.checkout-gift img{width:48px;height:48px;border-radius:10px;background:#fff;object-fit:contain;padding:2px}
.checkout-gift b{display:block;font:700 15px/1.3 var(--lp-f-body,inherit);color:var(--lp-ok)}
.checkout-gift small{display:block;margin-top:2px;font-size:12.5px;line-height:1.4;color:var(--lp-ink-2)}
.checkout-gift.is-done{margin:10px 0 4px}
@keyframes lp-gift-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* BUG-11 (vòng 3): thiếu tiền để nhận quà → dòng gợi ý màu vàng (không phải "đã được tặng" màu xanh) */
.checkout-gift.is-hint{background:var(--lp-yellow-l);box-shadow:inset 0 0 0 1px rgba(239,180,68,.5)}
.checkout-gift.is-hint b{color:var(--lp-orange-d)}

/* ==================== 11. Đánh giá Google Maps (vòng 3, lp-home.js vẽ từ LP_SITE.googleReviews) ==================== */
.lp-gr[hidden],.lp-gr-mini[hidden]{display:none!important}
.lp-gr{margin-top:22px;padding:6px;border-radius:24px;background:var(--lp-bezel)}
.lp-gr-in{padding:18px;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 1px rgba(62,31,20,.06),inset 0 1px 0 rgba(255,255,255,.8)}
.lp-gr-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.lp-gr-stars{display:inline-flex;gap:2px;color:var(--lp-yellow)}
.lp-gr-star{width:18px;height:18px;fill:currentColor}
.lp-main .lp-gr-badge{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:0 5px;margin:0;padding:5px 12px;border-radius:var(--lp-r-pill);background:var(--lp-cream);font:500 13px/1.4 var(--lp-f-body);color:var(--lp-ink-2)}
.lp-gr-score{font-weight:700;color:var(--lp-ink);font-variant-numeric:tabular-nums}
.lp-gr-score>span[aria-hidden]{margin-left:1px;color:var(--lp-yellow)}
.lp-gr-quotes{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:14px}
.lp-gr-q{margin:0;padding-left:14px;box-shadow:inset 3px 0 0 var(--lp-yellow)}
.lp-gr-q blockquote{margin:0}
.lp-main .lp-gr-q p{font:600 17px/1.4 var(--lp-f-head);letter-spacing:-.005em;color:var(--lp-ink);text-wrap:pretty}
.lp-gr-q figcaption{margin-top:6px;font-size:13px;line-height:1.4;color:var(--lp-muted)}
.lp-gr-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.lp-main .lp-gr-actions .lp-btn{flex:1 1 210px;min-height:48px;border-radius:var(--lp-r-pill);white-space:normal;text-align:center;transition:background .3s var(--lp-ease),border-color .3s var(--lp-ease),transform .3s var(--lp-ease)}
.lp-gr-actions .lp-ic-svg{flex:none;width:18px;height:18px}
.lp-gr-actions .lp-btn:active{transform:scale(.98)}
@media (min-width:768px){.lp-gr-in{padding:22px}.lp-gr-quotes{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.lp-main .lp-gr-actions .lp-gr-go{flex:1.6 1 auto;white-space:nowrap}.lp-main .lp-gr-actions .lp-gr-write{flex:1 1 auto}}
/* /tiktok: dạng gọn (huy hiệu + link) */
.lp-main .lp-gr-mini{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:10px;padding:12px 14px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1px var(--lp-line);text-decoration:none;color:var(--lp-ink-2);transition:transform .4s var(--lp-ease),box-shadow .4s var(--lp-ease)}
.lp-gr-mini:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--lp-line-2),0 14px 28px -20px rgba(62,31,20,.4)}
.lp-gr-mini:focus-visible{outline:2px solid var(--lp-orange);outline-offset:3px}
.lp-gr-mini .lp-gr-star{width:15px;height:15px}
.lp-gr-mini-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.lp-gr-mini-t b{font:500 14px/1.35 var(--lp-f-body);color:var(--lp-ink-2)}
.lp-gr-mini-t small{font:600 13px/1.35 var(--lp-f-body);color:var(--lp-orange-d)}

@media (prefers-reduced-motion:reduce){
  .checkout-gift,.lp-combo-skel{animation:none}
  .lp-gift-cta,.lp-gift-cta i,.lp-combo-buy,.lp-combo-buy i,.lp-combo-cta{transition:none}
  .lp-gift-cta:hover i,.lp-combo-buy:hover i,.lp-gift-cta:active,.lp-combo-buy:active,.lp-combo-cta:active{transform:none}
  .lp-door,.lp-door-go i,.lp-hotel-mini-go,.lp-policies a,.lp-tt-choice,.lp-tt-go,.lp-strip-card,body.lp .lp-products .add-product.is-text{transition:none}
  .lp-door:hover,.lp-door:active,.lp-door:hover .lp-door-go i,.lp-policies a:hover,.lp-tt-choice:hover,.lp-tt-choice:active,.lp-tt-choice:hover .lp-tt-go,.lp-strip-card:hover{transform:none}
  .lp-gr-mini,.lp-gr-actions .lp-btn{transition:none}
  .lp-gr-mini:hover,.lp-gr-actions .lp-btn:active{transform:none}
  .lp-booker-col.is-flash::after{display:none}
  .lp-skel{animation:none}
}
