/* lotuz.vn — trang WP (mọi trang trừ trang chủ v2). Design system chỉ phủ header/menu/footer (chrome.css);
   thân trang giữ nguyên theme thebe cũ: khung, lưới, font, cỡ chữ, màu. Ở đây chỉ thêm góc vuông, neo cuộn chừa header, nút chat.
   Trang chủ nạp site.css thay cho file này. */

:root{color-scheme:normal}
html{scroll-padding-top:calc(var(--hh) + var(--sp-4))}

/* Chat FAB (lotuz-chat-fab.php): cùng kiểu trang chủ */
html .lzchat-fab{width:56px;height:56px;border:1px solid var(--gold);background:var(--gold-tint);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:none}
html .lzchat-fab:hover{background:var(--gold-tint-2);transform:none;box-shadow:none}
html .lzchat-fab svg{fill:var(--gold)}
html .lzchat-fab::after{border:1px solid var(--gold)}
html .lzchat-dot{background:var(--gold);border:2px solid var(--ink)}
html .lzchat-panel{background:var(--stone);border:1px solid var(--line);box-shadow:none}
html .lzchat-item:hover,html .lzchat-item:focus-visible{background:var(--slate)}
html .lzchat-item:focus-visible{box-shadow:inset 1px 0 0 var(--gold)}
html .lzchat-tx b{color:var(--paper);font-weight:500}
html .lzchat-tx span,html .lzchat-ar{color:var(--mute)}
html .lzchat-zalo,html .lzchat-wa{background:var(--slate);border:1px solid var(--line)}
html .lzchat-ic svg{fill:var(--paper)}
@media (max-width:767px){html .lzchat-fab{width:48px;height:48px}}

/* Góc vuông tuyệt đối. Plugin cũ có luật radius !important tới (1,1,3) (#ez-toc-container …), nên dùng 2 :not(#id) để đạt (2,0,0).
   Allowlist: chấm tải trang của theme */
:not(#lz-sq):not(#lz-sq2),:not(#lz-sq):not(#lz-sq2)::before,:not(#lz-sq):not(#lz-sq2)::after{border-radius:0!important}
.loader-icon i:not(#lz-sq):not(#lz-sq2),.pic-loader i:not(#lz-sq):not(#lz-sq2){border-radius:50%!important}

/* Lưới chung (29/10): mọi trang WP dùng một cột --wcol (1160 = khung hero trang dịch vụ), breadcrumb bám mép trái cột,
   bỏ khoảng trống JS theme chèn (inline margin-top = cao header cũ 104px) và padding đầu của từng loại trang.
   Inline style không !important nên margin-top!important ở đây thắng. Font, màu, cỡ chữ thân trang vẫn của theme. */
:root{--wcol:min(1160px,100% - var(--gx) - var(--gxr));--wpad:calc((100% - var(--wcol)) / 2);--sp-top:32px}
@media (max-width:767px){:root{--sp-top:24px}}

body.lz-ds .lotuz-breadcrumbs{padding-left:var(--wpad);padding-right:var(--wpad)}

/* Khung ngoài của từng loại trang về cột chung */
body.lz-ds .default-template-page,body.lz-ds .single-inner,body.lz-ds .archive-list{width:var(--wcol)!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important;margin-top:var(--sp-top)!important;padding-left:0;padding-right:0}
body.lz-ds.m-mode.single .single-inner{margin-top:var(--sp-top)!important}
body.lz-ds .default-template-page>.wrap{padding:0}
/* Theme (.m-mode) và lotuz-mobile-readability ép padding 16–30px !important trên mobile: đưa về 0 để chữ chạm mép cột */
body.lz-ds .default-template-page,body.lz-ds .single-inner .text-area,body.lz-ds .single-main-intro,body.lz-ds .single-inner .single-main-content{padding-left:0!important;padding-right:0!important}
body.lz-ds .default-template-page{padding-top:0!important}
body.lz-ds .single-main-intro,body.lz-ds .single-inner .text-area,body.lz-ds .single-footer{max-width:none;padding-left:0;padding-right:0}
body.lz-ds .single-main-intro{margin-top:0;padding-top:0}
body.lz-ds .single-header+.single-main-intro{margin-top:var(--sp-6)}
/* Bài viết: khối media/bảng tràn cột, đoạn chữ giữ độ dài dòng dễ đọc */
body.lz-ds .single-inner .text-area>:is(p,ul,ol,blockquote,h2,h3,h4,h5){max-width:75ch}

/* Trang dịch vụ (.lsv): hộp hero = cột, các section chữ tràn hết cột */
body.lz-ds .lsv-hero{padding-left:var(--sp-6);padding-right:var(--sp-6)}
body.lz-ds .lsv-in,body.lz-ds .lsv .lsv-narrow{max-width:none;padding-left:0;padding-right:0}
body.lz-ds .lsv .lsv-p{max-width:75ch}
/* Theme đặt .default-template-page li{margin-left:15px}: list của .lsv (không bullet) thụt khỏi mép chữ; trang .lsv không bọc (vr-360-bds) vốn bằng 0 */
body.lz-ds .lsv li{margin-left:0}
/* Trang dịch vụ không bọc trong .default-template-page (vr-360-bds): đưa cả .lsv về cột */
body.lz-ds .main-content>.lsv{width:var(--wcol);margin:var(--sp-top) auto 0}
/* Mặt bằng tổng thể (.mbtt): .wrap có padding 40/20px riêng làm chữ thụt khỏi breadcrumb; dải .band có nền nên giữ padding trong */
body.lz-ds .mbtt .sec:not(.band)>.wrap{padding-left:0!important;padding-right:0!important;max-width:none}
body.lz-ds .mbtt>section.sec:first-of-type{padding-top:0!important}
body.lz-ds .mbtt .vfig{max-width:none;margin-left:0;margin-right:0}
/* Khung "Dịch vụ liên quan" (lotuz-internal-links) giới hạn 1100px, lệch 30px so với cột */
body.lz-ds .lzil{max-width:none}

/* Blog / lưu trữ / tìm kiếm: bù padding 15px của item để mép ảnh trùng mép cột */
body.lz-ds .archive-list .blog-main>.wrap{margin-left:-15px;margin-right:-15px}
/* Tiêu đề nằm trong .wrap mà isotope xếp thẻ absolute từ đỉnh: đưa tiêu đề vào padding-top (isotope cộng padding của khung), một dòng để chiều cao cố định */
body.lz-ds .archive-list .blog-main>.wrap:has(>.lz-archive-title){padding-top:calc(1.15 * clamp(28px,3vw,40px) + 12px)!important}
body.lz-ds .archive-list .blog-main>.wrap>.lz-archive-title{position:absolute;top:0;left:15px;right:15px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.lz-ds .archive-list>.pt-widget-list{margin-top:0}
body.lz-ds.search .title-group{padding-top:var(--sp-top);padding-bottom:0;width:var(--wcol);margin-inline:auto}

/* Dự án + danh mục: lưới ảnh = cột (+15px mỗi bên cho padding item), tiêu đề serif bám mép trái lưới */
body.lz-ds .pic-list.grid-list{width:calc(var(--wcol) + 30px)!important;padding-left:0!important;padding-right:0!important;max-width:none;margin-left:auto!important;margin-right:auto!important;margin-top:var(--sp-5)!important}
body.lz-ds .pic-list .filter{left:0;padding-left:0;margin-left:15px;margin-right:15px}
body.lz-ds .pic-list .filter-ctrl{flex-wrap:wrap}
/* Chế độ mobile của theme (.m-mode trên body, ≤1023px) đổi padding item thành 10px !important */
body.lz-ds.m-mode .pic-list.grid-list{width:calc(var(--wcol) + 20px)!important}
body.lz-ds.m-mode .pic-list .filter{margin-left:10px;margin-right:10px}
body.lz-ds .wrap:has(>.lz-archive-title):not(.blog-main>.wrap){width:var(--wcol);margin-inline:auto;padding:0}
body.lz-ds .lz-archive-title{font-family:var(--display)!important;font-weight:300;font-size:clamp(28px,3vw,40px);line-height:1.15;letter-spacing:0;text-align:left;color:var(--paper);margin:var(--sp-top) 0 0;padding:0;border:0;text-wrap:balance}
body.lz-ds .lz-archive-title::first-letter{color:inherit}

/* 404: bố cục căn giữa của theme, chỉ bỏ khoảng trống đầu */
body.lz-ds.error404 .lz404{padding-top:var(--sp-top);align-items:flex-start}
body.lz-ds.error404 .lz404-desc{margin-inline:auto}
@media (min-width:600px){body.lz-ds.error404 .lz404-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
body.lz-ds.search .title-group .text,body.lz-ds.search .title-group.no-bg .text{margin:0;padding:0!important;max-width:none;width:auto}
/* Trang tìm kiếm in 2 H1: tiêu đề tiếng Anh của theme ("146 Results for") và .lz-archive-title tiếng Việt; giữ cái sau */
body.lz-ds.search .main-content:has(.lz-archive-title)>.title-group{display:none}
body.lz-ds.search .title-group h1{margin-top:0}
