/* Sua nho khi chay trong WordPress + Elementor — nap SAU CUNG tren moi trang. */

/* >>> SINH TU DONG: khoang cach section (scripts/build-wp-fixes.py) */
main :where(.elementor-widget-container,.elementor-widget)>section{padding-top:var(--sec-pad)!important;padding-bottom:var(--sec-pad)!important}
main :where(.elementor-widget-container,.elementor-widget)>section.hero-bg-todaytv{padding-top:0!important;padding-bottom:var(--sec-pad)!important}
main :where(.elementor-widget-container,.elementor-widget)>section.film-hero{padding-top:0!important;padding-bottom:0!important}
main :where(.elementor-widget-container,.elementor-widget)>section.catalog{padding-top:0!important;padding-bottom:var(--sec-pad)!important}
main :where(.elementor-widget-container,.elementor-widget)>section.hero{padding-top:var(--sec-pad)!important;padding-bottom:calc(var(--sec-pad)*.55)!important}
main :where(.elementor-widget-container,.elementor-widget)>section.content,
main :where(.elementor-widget-container,.elementor-widget)>section.guide{padding-top:12px!important;padding-bottom:var(--sec-pad)!important}
body:where(.page-aihub) :where(.elementor-widget-container,.elementor-widget)>section.sec{padding-top:var(--sec-pad);padding-bottom:var(--sec-pad)}
body:where(.page-aihub) :where(.elementor-widget-container,.elementor-widget)>section.hero{padding-top:calc(var(--sec-pad)*1.5);padding-bottom:var(--sec-pad)}
.todaytv-footer figure img.footer-logo{width:220px;height:auto;filter:drop-shadow(0 12px 30px rgba(var(--brand-rgb),.24))} /* tu home.css */
@media (max-width:767px){.todaytv-footer figure img.footer-logo{width:180px}} /* tu home.css */
:where(.elementor>.e-con:nth-child(even)) .sec:nth-child(n)::after{content:none} /* tu ai-hub.css */
body.page-aihub :where(.elementor>.e-con:nth-child(even)) .sec:nth-child(n){background:var(--paper-2)!important} /* tu ai-hub.css */
/* <<< HET PHAN SINH TU DONG */

/* 2) Phần tử dò thiết bị của Elementor (vốn ẩn bằng position:absolute) bị rule
   "body > :not(#three-light-bg):not(script){position:relative}" của home.css ép hiện,
   chiếm ~22px dưới chân trang chủ. */
body > #elementor-device-mode{position:absolute!important}

/* 3) Container Elementor là flexbox: ảnh lazy-load CHƯA tải được tính cao 0 khi tính chiều cao
   container, nhưng vẽ theo tỉ lệ width/height → khối tràn ra ngoài container, khối sau chồng lên
   (đo được: container 64px chứa khối 154px), rồi trang nhảy khi ảnh tải xong. Bản tĩnh không dùng
   flex nên không bị. Container chỉ chứa 1 widget TodayTV thì không cần flex → dùng block. */
.e-con:has(> .elementor-widget[data-widget_type^="todaytv_"]),
.e-con:has(> .e-con-inner > .elementor-widget[data-widget_type^="todaytv_"]) > .e-con-inner{display:block}
/* 3b) Rule trên (không layer) thắng rule "Ẩn trên Mobile/Tablet/Desktop" của Elementor (đang ở layer thấp)
   → cài đặt Nâng cao > Responsive > Ẩn không còn tác dụng. Đặt lại đúng mốc màn hình của Elementor. */
@media (max-width:767px){.elementor .e-con.elementor-hidden-mobile{display:none}}
@media (min-width:768px) and (max-width:1024px){.elementor .e-con.elementor-hidden-tablet{display:none}}
@media (min-width:1025px){.elementor .e-con.elementor-hidden-desktop{display:none}}

/* 4) Contact Form 7 trong khung form của giao diện (.contact-form):
   - CF7 bọc mỗi ô nhập trong span.wpcf7-form-control-wrap → rule nhãn gốc ".contact-form label span"
     (chữ nhỏ, đậm, cách dưới 6px) áp nhầm, làm chữ gõ vào bị đậm và ô lệch 6px. Trả về trung tính.
   - Báo lỗi từng ô: chữ đỏ sáng, đủ tương phản trên nền form tối và sáng.
   - Spinner của CF7 chen vào hàng nút (flex) làm nút xê dịch → ẩn, thay bằng làm mờ nút khi đang gửi.
   (:not(#tt) chỉ để tăng độ ưu tiên: trang Giới thiệu có rule nhãn "...label span{font-size:13px!important}".) */
.contact-form label span.wpcf7-form-control-wrap:not(#tt){display:block!important;margin:0!important;color:inherit!important;font-size:inherit!important;font-weight:inherit!important}
.contact-form label span.wpcf7-not-valid-tip:not(#tt){display:block!important;margin:6px 0 0!important;color:#ff7a66!important;font-size:12px!important;font-weight:600!important}
.contact-form .wpcf7-spinner{display:none}
.contact-form .wpcf7-form.submitting .wpcf7-submit{opacity:.6;cursor:progress}
.contact-form .wpcf7-form .wpcf7-response-output{margin:16px 0 0;padding:10px 14px;border-radius:12px;font-size:14px}

/* 5) Contact Form 7 trong form AI Hub (.qform):
   - Span bọc của CF7 là con trực tiếp của <label> nên dính rule nhãn ".qform label>span" (khối, chữ nhỏ,
     cách dưới 6px). display:contents → ô nhập (và ô tick cam kết) nằm thẳng trong label như bản tĩnh.
   - Báo lỗi từng ô + spinner như mục 4. */
.qform label>span.wpcf7-form-control-wrap,
.qform .qcheck .wpcf7-acceptance,
.qform .qcheck .wpcf7-list-item{display:contents}
.qform .wpcf7-not-valid-tip{display:block;margin:6px 0 0;color:#ff7a66;font-size:12px;font-weight:600}
.qform .qcheck{position:relative}
.qform .qcheck .wpcf7-not-valid-tip{position:absolute;left:0;top:100%;margin-top:4px}
.qform .wpcf7-spinner{display:none}
.qform.submitting .wpcf7-submit{opacity:.6;cursor:progress}
.qform .wpcf7-response-output{margin:16px 0 0!important;padding:10px 14px!important;border-radius:12px;font-size:14px}

/* 6) Cuộn trang chủ. Bản tĩnh index-8.html cuộn bằng cuộn GỐC của trình duyệt: <body data-native-scroll="true">
   làm main.js không bật Lenis (theme in cờ này qua 'attrs' của kiểu trang home). CSS nền Elementor lại có
   "@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}" (bản tĩnh trang chủ KHÔNG có)
   → trả về auto cho trang chủ (và mọi trang có Lenis) như bản tĩnh. Trang con giữ cuộn mượt như inner-pages.css. */
html.lenis,
html:has(> body.page-home){scroll-behavior:auto!important}

/* 7) Khi đăng nhập có thanh admin WordPress (cao 32px; ≤782px: 46px; ≤600px: thanh admin cuộn theo trang).
   - Trang chủ: rule "body > *:not(#three-light-bg):not(script){position:relative;z-index:1}" của home.css
     làm thanh admin mất cố định (trôi theo trang, bị header che) → trả lại như WordPress gốc.
   - Header dính/cố định của mọi kiểu trang (top:0) bị thanh admin che → đẩy xuống đúng chiều cao.
     Header chi tiết phim là absolute (tính từ đầu trang) nên ≤600px vẫn phải chừa 46px. */
body > #wpadminbar{position:fixed!important;z-index:99999!important}
body.admin-bar > header.header,
body.admin-bar .site-header,
body.admin-bar.page-aihub > header{top:32px!important}
@media screen and (max-width:782px){
  body.admin-bar > header.header,
  body.admin-bar .site-header,
  body.admin-bar.page-aihub > header{top:46px!important}
}
@media screen and (max-width:600px){
  body > #wpadminbar{position:absolute!important}
  body.admin-bar > header.header,
  body.admin-bar .site-header,
  body.admin-bar.page-aihub > header{top:0!important}
  body.admin-bar.page-film-detail .site-header{top:46px!important}
  /* Trang Phim: header cố định → giữ thanh admin cố định để không che logo/nút menu ở đầu trang */
  body.admin-bar.page-films > #wpadminbar{position:fixed!important}
  body.admin-bar.page-films .film-header{top:46px!important}
}

/* 8) Hộp thoại Elementor gắn thẳng vào <body> (Finder Ctrl/Cmd+E khi đăng nhập, lightbox ảnh, Style Guide
   trong editor) bị rule "body > *:not(#three-light-bg):not(script){position:relative;z-index:1}" của home.css
   ép relative → nằm sau footer, trang nhảy xuống cuối. Trả lại giá trị gốc của Elementor. */
body > .dialog-type-lightbox:not(#tt){position:fixed;z-index:9999}
body > #elementor-finder__modal:not(#tt){z-index:99999}
@media (max-width:1024px){body.admin-bar > .dialog-type-lightbox:not(#tt){position:sticky}}
