/* LHRP: CSS không thuộc global class của Bricks. Sinh tự động bởi make_final.py từ LHRP-bricks-ready/index.html.
   Gồm: đưa mặc định Bricks về mặc định trình duyệt (R22), luật nền (R1), .brxe-container (R15), class do JS sinh (R3),
   class chỉ nằm trong chữ inline hoặc trên thẻ <svg> (R16), @keyframes và prefers-reduced-motion (R6),
   phần bù thuộc tính Bricks không lưu được (lhrp-bu.css, nếu có). Không chỉnh tay, chạy lại make_final.py. */
/* ---- 0. Đưa mặc định của Bricks (@layer bricks) về mặc định trình duyệt, như khi xem Artifact (R22).
   :where() có độ ưu tiên 0 và CSS này không nằm trong layer, nên nó thắng @layer bricks nhưng thua mọi luật nền
   và mọi class LHRP / class Bricks; chỉnh trong builder vẫn có hiệu lực. ---- */
:where(html){font-size:revert;line-height:revert}
:where(*){border-color:revert}
:where([class*=brxe-]){max-width:revert}
:where(span[class*=brxe-]){width:revert}
:where(svg){min-width:revert;min-height:revert}
:where(.brxe-section,.brxe-container,.brxe-block){display:revert;align-items:revert;flex-direction:revert;flex-wrap:revert;margin-left:revert;margin-right:revert;width:revert}
:where(.brxe-text-link,.brxe-button,.bricks-button){display:revert;align-items:revert;justify-content:revert;gap:revert;letter-spacing:revert;padding:revert;text-align:revert;border-width:revert}
:where(button,input){font-family:revert;font-size:revert;line-height:revert;margin:revert;overflow:revert;text-transform:revert;-webkit-appearance:revert;border:revert;cursor:revert;outline:revert;padding:revert;text-align:revert}
:where(input:not([type=submit])){border-style:revert;border-width:revert;box-shadow:revert;color:revert;line-height:revert;padding:revert;transition:revert;width:revert}
:where(a){border-color:revert;color:revert;cursor:revert;text-decoration:revert}
:where(h1,h2,h3,h4,h5,h6){margin:revert;text-rendering:revert;font-size:revert;line-height:revert}
:where(p){margin-block:revert}
:where(img){height:revert;max-width:revert;outline:revert;vertical-align:revert;border-style:revert}
:where(figure){margin:revert}
/* ---- 0b. sinh tự động từ CSS của Bricks ---- */
:where(html){-webkit-text-size-adjust:revert;text-size-adjust:revert;line-height:revert}
:where(body){margin:revert}
:where(article,aside,figcaption,figure,footer,header,main,nav,section){display:revert}
:where(figure){margin:revert}
:where(hr){box-sizing:revert;height:revert;overflow:revert}
:where(abbr[title]){border-bottom:revert;text-decoration:revert;text-decoration:revert}
:where(code,kbd,samp){font-family:revert;font-size:revert}
:where(dfn){font-style:revert}
:where(mark){background-color:revert;color:revert}
:where(small){font-size:revert}
:where(sub,sup){font-size:revert;line-height:revert;position:revert;vertical-align:revert}
:where(sub){bottom:revert}
:where(sup){top:revert}
:where(audio,video){display:revert}
:where(audio:not([controls])){display:revert;height:revert}
:where(img){border-style:revert}
:where(button,input,optgroup,select,textarea){font-family:revert;font-size:revert;line-height:revert;margin:revert}
:where(button,input){overflow:revert}
:where(button,select){text-transform:revert}
:where([type=reset],[type=submit],button,html [type=button]){-webkit-appearance:revert}
:where([type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring){outline:revert}
:where(fieldset){padding:revert}
:where(legend){box-sizing:revert;color:revert;display:revert;max-width:revert;padding:revert;white-space:revert}
:where(progress){display:revert;vertical-align:revert}
:where(textarea){overflow:revert}
:where([type=checkbox],[type=radio]){box-sizing:revert;padding:revert}
:where([type=search]){-webkit-appearance:revert;outline-offset:revert}
:where(details,menu){display:revert}
:where(summary){display:revert}
:where(canvas){display:revert}
:where([hidden],template){display:revert}
:where(.brxe-section){align-items:revert;display:revert;flex-direction:revert;margin-left:revert;margin-right:revert;width:revert}
:where(.brxe-container){align-items:revert;display:revert;flex-direction:revert;margin-left:revert;margin-right:revert;width:revert}
:where(.brxe-block){align-items:revert;display:revert;flex-direction:revert;width:revert}
:where([class*=brxe-]){max-width:revert}
:where(svg:not([width])){min-width:revert}
:where(svg:not([height])){min-height:revert}
:where(html){font-size:revert}
:where(*,:after,:before,html){box-sizing:revert}
:where(:after,:before){outline:revert}
:where(*){border-color:revert}
:where(body){-webkit-font-smoothing:revert;-moz-osx-font-smoothing:revert;background-color:revert;background-position:revert;color:revert;font-family:revert;font-size:revert;line-height:revert;transition:revert;transition:revert}
:where(:where(a)){border-color:revert;color:revert;cursor:revert;text-decoration:revert}
:where(h1,h2,h3,h4,h5,h6){margin:revert;text-rendering:revert}
:where(h1 a,h2 a,h3 a,h4 a,h5 a,h6 a){color:revert}
:where(h1){font-size:revert}
:where(h1,h2){line-height:revert}
:where(h2){font-size:revert}
:where(h3){font-size:revert}
:where(h3,h4){line-height:revert}
:where(h4){font-size:revert}
:where(h5){font-size:revert}
:where(h5,h6){line-height:revert}
:where(h6){font-size:revert}
:where(:where(p)){margin-block:revert}
:where(:where(p:last-of-type)){margin-block-end:revert}
:where(:where(p:last-of-type)+h1,:where(p:last-of-type)+h2,:where(p:last-of-type)+h3,:where(p:last-of-type)+h4,:where(p:last-of-type)+h5,:where(p:last-of-type)+h6){margin-block:revert}
:where(figcaption){color:revert;font-size:revert;margin:revert;text-align:revert}
:where(img){height:revert;max-width:revert;outline:revert;vertical-align:revert}
:where(audio,iframe){max-width:revert}
:where(button){border:revert;cursor:revert;outline:revert;padding:revert}
:where(blockquote){border-left-style:revert;border-left-width:revert;font-family:revert;font-size:revert;margin:revert;padding:revert;position:revert}
:where(blockquote cite){display:revert;font-size:revert;font-style:revert;margin-top:revert;opacity:revert;text-transform:revert}
:where(hr){border:revert;border-top:revert;margin:revert}
:where(pre){background-color:revert;color:revert;font-family:revert;font-size:revert;margin:revert;padding:revert;white-space:revert}
:where(table){width:revert}
:where(table[class*=brxe-]){display:revert}
:where(label){color:revert;display:revert;font-weight:revert;margin-bottom:revert}
:where(button,input,optgroup,select,textarea){font-family:revert;text-align:revert}
:where(input:not([type=submit]),select,textarea){border-style:revert;border-width:revert;box-shadow:revert;color:revert;font-size:revert;line-height:revert;outline:revert;padding:revert;transition:revert;width:revert}
:where(input[type=range]){border:revert;height:revert;line-height:revert;padding:revert}
:where(input[type=button],input[type=checkbox],input[type=radio]){width:revert}
:where(input[type=checkbox],input[type=radio],input[type=submit],select){cursor:revert}
:where(select){-webkit-appearance:revert;appearance:revert;background-color:revert;background-image:revert;background-position:revert;background-repeat:revert;background-size:revert;border-radius:revert}
:where(textarea){height:revert;line-height:revert;min-height:revert;padding:revert}
:where(.bricks-button){align-items:revert;border-width:revert;display:revert;gap:revert;justify-content:revert;letter-spacing:revert;padding:revert;text-align:revert}
:where(.brxe-button){width:revert}
:where(.brxe-text-link){gap:revert}
:where(.brxe-text-link){align-items:revert;display:revert}
/* ---- 0c. reset mà khung Artifact có sẵn nhưng bản thiết kế chưa tự khai (R1) ---- */
body{margin:0}
/* ---- 0d. header ở Template Bricks (R27): Bricks bọc <header id="brx-header">, nên sticky phải đặt ở lớp bọc.
   Không dùng tùy chọn "Sticky header" của Bricks: nó đặt z-index 998, đè popup (85) và lightbox (95). ---- */
#brx-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50}
/* ---- 1. site ---- */
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--space-xs))}
body{background-color:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-m);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0;font-family:var(--font-body);line-height:var(--leading-tight);text-wrap:balance;color:var(--color-teal-deep)}
h1{font-size:var(--text-3xl);font-weight:var(--weight-bold)}
h2{font-size:var(--text-2xl);font-weight:var(--weight-bold)}
h3{font-size:var(--text-xl);font-weight:var(--weight-bold)}
h4{font-size:var(--text-s);font-weight:var(--weight-bold)}
p{margin-top:0;margin-bottom:0}
ul,ol{margin-top:0;margin-bottom:0;padding-left:0}
a{color:var(--color-teal);text-decoration-thickness:1px;text-underline-offset:2px}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background-color:var(--color-surface)}
.brxe-container{display:block;width:100%;max-width:var(--container-max);margin-left:auto;margin-right:auto;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}
.lh-badge--noxh{background-color:color-mix(in srgb,var(--color-gold) 18%,transparent);color:var(--color-gold)}
.lh-dot--NOXH{background-color:var(--color-gold)}
.lh-footer__link{color:var(--color-gold-light)}
.lh-tip{position:fixed;z-index:70;pointer-events:none;background-color:var(--color-surface);color:var(--color-ink);border:1px solid var(--color-line);border-radius:var(--radius-m);box-shadow:var(--shadow-m);padding:var(--space-s) var(--space-m);width:280px;font-size:var(--text-s);display:grid;gap:var(--space-2xs)}
.lh-tip__code{font-size:22px;font-weight:var(--weight-bold);color:var(--color-teal-deep);line-height:1}
.lh-tip__row{display:flex;justify-content:space-between;gap:var(--space-s)}
.lh-tip__key{color:var(--color-ink-2)}
.lh-tip__price{font-size:var(--text-l);font-weight:var(--weight-bold)}
.lh-modal{position:fixed;inset:0;z-index:85;display:grid;place-items:center;padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));background-color:var(--color-overlay)}
.lh-modal__box{width:min(760px,100%);max-height:calc(100vh - 24px);display:flex;flex-direction:column;background-color:var(--color-bg);border-radius:18px;box-shadow:var(--shadow-l);overflow:hidden}
.lh-modal__head{display:flex;align-items:center;gap:var(--space-s);padding:var(--space-s) 18px;border-bottom:1px solid var(--color-line);background-color:var(--color-surface)}
.lh-modal__title{font-size:26px;font-weight:var(--weight-bold);color:var(--color-teal-deep);line-height:1.1}
.lh-modal__close{margin-left:auto;border:1px solid var(--color-line);background-color:var(--color-bg);width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:18px;flex:none}
.lh-modal__body{overflow-y:auto;padding:var(--space-m) 18px 22px;display:grid;gap:var(--space-s)}
.lh-prices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:var(--space-s)}
.lh-prices__item{background-color:var(--color-surface-2);border-radius:10px;padding:10px var(--space-s);display:grid}
.lh-prices__val{font-size:var(--text-l);font-weight:var(--weight-bold)}
.lh-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.lh-field{display:grid;gap:var(--space-3xs);font-size:var(--text-xs);color:var(--color-ink-2);font-weight:var(--weight-semibold)}
.lh-input{background-color:var(--color-surface);border:1px solid var(--color-line);border-radius:10px;padding:9px 12px;width:100%;font-size:14px;color:var(--color-ink);font-weight:var(--weight-regular)}
.lh-input:focus{outline:2px solid color-mix(in srgb,var(--color-teal) 45%,transparent);border-color:var(--color-teal)}
.lh-options{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2xs);margin-bottom:var(--space-s)}
.lh-options--two{grid-template-columns:repeat(2,1fr)}
.lh-options__btn{border:1px solid var(--color-line);background-color:var(--color-bg);border-radius:10px;padding:var(--space-xs) var(--space-3xs);cursor:pointer;font-size:var(--text-xs);line-height:1.25;color:var(--color-ink-2)}
.lh-options__name{display:block;font-size:var(--text-s);color:var(--color-ink);font-weight:var(--weight-bold)}
.lh-options__btn[aria-pressed="true"]{border-color:var(--color-teal);background-color:color-mix(in srgb,var(--color-teal) 12%,var(--color-surface));color:var(--color-ink)}
.lh-table{width:100%;border-collapse:collapse;font-size:var(--text-s)}
.lh-table th{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-2);font-weight:var(--weight-bold);text-align:left;padding:var(--space-2xs);border-bottom:1px solid var(--color-line)}
.lh-table td{padding:7px var(--space-2xs);border-bottom:1px solid var(--color-line);vertical-align:top}
.lh-table .lh-r{text-align:right}
.lh-row--sub td{color:var(--color-ink-2);font-size:var(--text-xs);border-bottom-style:dashed}
.lh-row--total td{font-weight:var(--weight-bold);border-bottom:0;border-top:2px solid var(--color-teal)}
.lh-row--past td{background-color:color-mix(in srgb,var(--color-gold) 12%,transparent)}
.lh-total{display:flex;justify-content:space-between;align-items:baseline;gap:10px;background-color:var(--color-teal-deep);color:var(--color-bg);border-radius:10px;padding:var(--space-s) 14px;margin-top:10px}
.lh-total__val{font-size:19px;font-weight:var(--weight-bold)}
.lh-callout{border:1px solid color-mix(in srgb,var(--color-est) 40%,transparent);background-color:color-mix(in srgb,var(--color-est) 8%,var(--color-surface));border-radius:var(--radius-m);padding:var(--space-s) 14px;font-size:var(--text-s);display:grid;gap:var(--space-xs)}
.lh-callout--ok{border-color:color-mix(in srgb,var(--color-ok) 45%,transparent);background-color:color-mix(in srgb,var(--color-ok) 9%,var(--color-surface))}
.lh-callout__phone{font-size:18px;font-weight:var(--weight-bold);color:var(--color-teal-deep);user-select:all}
.lh-callout__pre{white-space:pre-wrap;font-family:var(--font-body);font-size:var(--text-s);background-color:var(--color-surface);border:1px dashed var(--color-line);border-radius:10px;padding:10px var(--space-s);margin:0}
.lh-pill-tabs{display:flex;gap:var(--space-2xs);flex-wrap:wrap}
.lh-pill-tabs__btn{border:1px solid var(--color-line);background-color:var(--color-bg);border-radius:var(--radius-pill);padding:var(--space-2xs) 14px;font-weight:var(--weight-bold);font-size:var(--text-s);cursor:pointer;color:var(--color-ink-2)}
.lh-pill-tabs__btn[aria-selected="true"]{background-color:var(--color-teal);border-color:var(--color-teal);color:var(--color-white)}
.lh-render{border-radius:var(--radius-l);overflow:hidden;background-color:var(--color-surface-2);cursor:zoom-in;border:0;padding:0;width:100%}
.lh-render__img{width:100%}
.lh-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.lh-plans__btn{border:1px solid var(--color-line);background-color:var(--color-white);border-radius:var(--radius-m);padding:var(--space-xs);cursor:zoom-in;display:grid;gap:var(--space-2xs);color:var(--color-on-gold);font-weight:var(--weight-bold);font-size:var(--text-xs)}
.lh-plans__img{width:100%;height:260px;object-fit:contain}
.lh-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xs)}
.lh-thumbs__btn{border:0;padding:0;border-radius:10px;overflow:hidden;position:relative;cursor:zoom-in;background-color:var(--color-surface-2)}
.lh-thumbs__img{width:100%;aspect-ratio:4/3;object-fit:cover}
.lh-apt{display:grid;grid-template-columns:200px 1fr;gap:var(--space-m);align-items:start}
.lh-apt>*{min-width:0}
.lh-apt__fig{margin:0;border:1px solid var(--color-line);border-radius:var(--radius-m);background-color:var(--color-white);padding:var(--space-xs);cursor:zoom-in}
.lh-apt__cap{font-size:var(--text-2xs);color:var(--color-ink-2);text-align:center;margin-top:var(--space-3xs)}
.lh-mframe{margin-bottom:var(--space-s)}
.lh-mframe__tabs{display:flex;gap:var(--space-2xs);margin-bottom:var(--space-xs)}
.lh-mframe__tab{border:1px solid var(--color-line);background-color:var(--color-bg);border-radius:var(--radius-pill);padding:5px 12px;font-size:var(--text-xs);font-weight:var(--weight-bold);cursor:pointer;color:var(--color-ink-2)}
.lh-mframe__tab[aria-selected="true"]{background-color:var(--color-teal);border-color:var(--color-teal);color:var(--color-white)}
.lh-mframe__count{font-weight:var(--weight-regular);opacity:.8}
.lh-mframe__view{position:relative;border-radius:var(--radius-m);overflow:hidden;background-color:var(--color-white);aspect-ratio:16/10;max-height:380px;width:100%}
.lh-mframe__open{display:block;width:100%;height:100%;border:0;padding:0;background-color:transparent;cursor:zoom-in}
.lh-mframe__img{width:100%;height:100%;object-fit:cover;object-position:center}
.lh-mframe__img--contain{object-fit:contain;padding:var(--space-xs)}
.lh-mframe__nav{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:0;background-color:var(--color-glass);color:var(--color-on-gold);font-size:20px;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.lh-mframe__nav--prev{left:var(--space-xs)}
.lh-mframe__nav--next{right:var(--space-xs)}
.lh-umedia__desc{margin-bottom:var(--space-s)}
.lh-form{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-s)}
.lh-form__full{grid-column:1/-1}
.lh-form__check{display:flex;gap:10px;align-items:flex-start;font-weight:var(--weight-regular);font-size:var(--text-s);color:var(--color-ink)}
.lh-form__checkbox{width:18px;height:18px;margin-top:2px;accent-color:var(--color-teal);flex:none}
.lh-form__error{color:var(--color-danger);font-size:var(--text-s);font-weight:var(--weight-semibold)}
.lh-lightbox{position:fixed;inset:0;z-index:95;background-color:var(--color-lightbox);display:grid;grid-template-rows:auto 1fr auto;color:var(--color-white);padding:max(10px,env(safe-area-inset-top,0px)) max(10px,env(safe-area-inset-right,0px)) max(10px,env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-left,0px))}
.lh-lightbox__top{display:flex;align-items:center;gap:10px;padding:var(--space-3xs) var(--space-2xs);font-size:var(--text-s)}
.lh-lightbox__close{margin-left:auto;background-color:var(--color-white);color:var(--color-ink);border:0;border-radius:10px;width:40px;height:40px;font-size:20px;cursor:pointer}
.lh-lightbox__view{position:relative;min-height:0;display:grid}
.lh-lightbox__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;min-height:0}
.lh-lightbox__slide{flex:0 0 100%;scroll-snap-align:center;margin:0;display:grid;place-items:center;min-height:0;padding:var(--space-2xs)}
.lh-lightbox__img{max-width:100%;max-height:calc(100vh - 190px);width:auto;object-fit:contain;border-radius:var(--space-2xs);background-color:var(--color-surface-2)}
.lh-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background-color:var(--color-glass);color:var(--color-ink);font-size:22px;cursor:pointer;z-index:2}
.lh-lightbox__nav--prev{left:var(--space-2xs)}
.lh-lightbox__nav--next{right:var(--space-2xs)}
.lh-lightbox__thumbs{display:flex;gap:var(--space-2xs);overflow-x:auto;padding:var(--space-xs) var(--space-3xs)}
.lh-lightbox__thumb{flex:none;border:2px solid transparent;border-radius:var(--space-2xs);padding:0;background-color:transparent;cursor:pointer;opacity:.6}
.lh-lightbox__thumb--on{border-color:var(--color-gold-light);opacity:1}
.lh-lightbox__timg{width:76px;height:52px;object-fit:cover;border-radius:var(--space-3xs)}
.lh-toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background-color:var(--color-ink);color:var(--color-bg);padding:9px var(--space-m);border-radius:var(--radius-pill);font-size:var(--text-s);z-index:99}
@media (max-width:767px){
  .lh-form{grid-template-columns:1fr}
  .lh-apt{grid-template-columns:1fr}
  .lh-apt__fig{max-width:260px;margin-left:auto;margin-right:auto}
}
@media (max-width:478px){
  .lh-options{grid-template-columns:repeat(2,1fr)}
  .lh-thumbs{grid-template-columns:repeat(2,1fr)}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
/* ---- 2. page ---- */
.lh-hero__accent{font-style:normal;color:var(--color-gold-light)}
.lh-slider__dot{width:9px;height:9px;padding:0;border-radius:var(--radius-pill);border:0;background-color:rgba(255,255,255,.55);cursor:pointer;transition:width .3s}
.lh-slider__dot--on{width:26px;background-color:var(--color-gold-light)}
.lh-vmap__lines{position:absolute;inset:0;width:100%;height:100%}
.lh-vmap__lines path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.lh-vmap__glow path{stroke:rgba(255,255,255,.85);stroke-width:7}
.lh-vmap__run path{stroke:var(--color-map-route);stroke-width:3.6;stroke-dasharray:9 7;animation:lh-run 1.6s linear infinite}
@keyframes lh-run{to{stroke-dashoffset:-32}}
.lh-amap__hot--on{border-color:var(--color-gold-light);background-color:rgba(232,201,138,.18)}
@keyframes lh-pulse{0%{box-shadow:0 0 0 0 rgba(232,201,138,.7)}70%{box-shadow:0 0 0 10px rgba(232,201,138,0)}100%{box-shadow:0 0 0 0 rgba(232,201,138,0)}}
.lh-acard{position:absolute;z-index:5;width:300px;background-color:var(--color-surface);color:var(--color-ink);border-radius:var(--radius-l);box-shadow:var(--shadow-m);overflow:hidden;font-size:var(--text-s)}
.lh-acard__photos{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:2px;height:150px}
.lh-acard__photos--one{grid-template-columns:1fr}
.lh-acard__photos--two{grid-template-columns:1fr 1fr;grid-template-rows:1fr}
.lh-acard__img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.lh-acard__photos .lh-acard__img:first-child{grid-row:span 2}
.lh-acard__photos--two .lh-acard__img:first-child{grid-row:auto}
.lh-acard__body{padding:var(--space-s) 14px;display:grid;gap:var(--space-3xs)}
.lh-acard__name{font-size:var(--text-m);color:var(--color-teal-deep);font-weight:var(--weight-bold)}
.lh-products:not(.lh-products--open) .lh-card--extra{display:none}
.lh-card__price{color:var(--color-teal-deep);font-weight:var(--weight-bold)}
.lh-card__pnote{display:block;font-size:var(--text-2xs);line-height:1.35;color:var(--color-ink-2);margin-top:2px}
.lh-cbx__opt{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:7px 10px;border-radius:9px;cursor:pointer;font-size:var(--text-s);color:var(--color-ink)}
.lh-cbx__code{font-size:14px;min-width:62px;font-weight:var(--weight-bold)}
.lh-cbx__meta{color:var(--color-ink-2);font-size:var(--text-xs)}
.lh-cbx__opt--on,.lh-cbx__opt:hover{background-color:var(--color-surface-2)}
.lh-cbx__grp{display:block;font-size:var(--text-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-gold);font-weight:var(--weight-bold);padding:var(--space-xs) 10px var(--space-3xs)}
.lh-plan-shell__loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--color-ink-2);font-size:var(--text-s)}
.lh-stage__svg{position:absolute;inset:0}
.lh-lot{fill:transparent;stroke:transparent;stroke-width:3;cursor:pointer;transition:fill .12s}
.lh-lot:hover,.lh-lot--hl{fill:rgba(15,156,143,.35);stroke:var(--color-teal-deep);stroke-width:5}
.lh-lot--sel{fill:rgba(232,201,138,.55);stroke:var(--color-gold);stroke-width:7}
.lh-lot--dim{fill:rgba(20,30,28,.55)}
.lh-lot--cart{stroke:var(--color-sale);stroke-width:5;fill:rgba(255,255,255,.3)}
.lh-plan-shell--cart .lh-lot--cart{stroke-width:7;fill:rgba(255,255,255,.42)}
.lh-lot--cart:hover,.lh-lot--cart.lh-lot--hl{fill:rgba(227,38,47,.28);stroke:var(--color-sale)}
.lh-fcap__name{font-size:var(--text-l);color:var(--color-teal-deep);font-weight:var(--weight-bold)}
.lh-fcap__meta{font-size:var(--text-xs);color:var(--color-ink-2)}
.lh-apt-label{pointer-events:none}
.lh-apt-label__bg{fill:var(--color-white)}
.lh-apt-label__txt{fill:var(--color-sale);font-family:Arial,sans-serif;font-weight:700;font-size:24px}
.lh-apt-rect{fill:transparent;stroke:transparent;stroke-width:3;cursor:pointer;transition:fill .12s}
.lh-apt-rect:hover{fill:rgba(15,156,143,.35);stroke:var(--color-teal-deep);stroke-width:5}
.lh-apt-rect--sel{fill:rgba(232,201,138,.55);stroke:var(--color-gold);stroke-width:7}
@media (max-width:767px){
  .lh-products:not(.lh-products--open) .lh-card--mextra{display:none}
}
/* bảng do JS sinh dùng .lh-table; bảng tĩnh đã đổi sang .lh-ptable */
/* ---- 3. phần bù: thuộc tính Bricks bỏ khi nhập (sinh bởi tim_bu.py) ---- */
.lh-badge{gap:5px}
.lh-btn{gap:var(--space-xs)}
.lh-contact__badge{gap:var(--space-xs)}
.lh-ftabs__num{justify-items:center}
.lh-gallery__img{aspect-ratio:4/3}
.lh-ntypes__img{aspect-ratio:16/10}
.lh-routes__num{justify-items:center}
.lh-ftabs__num.lh-ftabs__num.lh-ftabs__num{align-items:center}
.lh-routes__num.lh-routes__num.lh-routes__num{align-items:center}
