/*
Theme Name: Site Rebuild
Theme URI: https://www.onestartoffices.com
Author: OneStart
Description: Custom WordPress theme rebuilt from the live OneStart Offices site. Visual CSS comes from the original Maxbizz + Elementor 3.6 / Elementor Pro 3.1 assets.
Version: 0.4.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: site-rebuild
*/

/* Kit fallbacks if elementor-kit.css is missing. */
:root,
.elementor-kit-6297 {
  --e-global-color-primary: #FF7F50;
  --e-global-color-secondary: #333333;
  --e-global-color-text: #333333;
  --e-global-color-accent: #61CE70;
}

.site-main {
  margin: 0;
  padding: 0;
}

.site-main > .entry-content,
.site-main > article.entry {
  margin: 0;
  padding: 0;
}

.site-main .entry-header,
.site-main .entry-thumbnail {
  display: none;
}

/* Desktop mega-menu: keep flyouts on top, wide enough, and show 3rd-level.
   Elementor Pro hides EVERY .elementor-nav-menu--dropdown at ≥1025px and
   relies on its (unlicensed) widget JS + SmartMenus to reopen them. */
@media (min-width: 1025px) {
  .header-desktop,
  .header-desktop .elementor,
  .header-desktop .elementor-section,
  .header-desktop .elementor-container,
  .header-desktop .elementor-column,
  .header-desktop .elementor-widget-wrap,
  .header-desktop .elementor-widget-nav-menu,
  .header-desktop .elementor-widget-container,
  .header-desktop .elementor-nav-menu--main {
    overflow: visible !important;
  }

  .elementor-nav-menu--main .elementor-nav-menu--dropdown,
  .elementor-nav-menu--main .sub-menu {
    z-index: 9999;
    min-width: max-content;
    width: max-content;
    white-space: nowrap;
    overflow: visible !important;
  }

  .elementor-nav-menu--dropdown a,
  .elementor-nav-menu--dropdown .elementor-item,
  .elementor-nav-menu--dropdown .elementor-sub-item {
    white-space: nowrap;
    padding-right: 28px;
    padding-left: 18px;
  }

  .elementor-nav-menu--layout-horizontal .elementor-nav-menu > .menu-item:hover > .elementor-nav-menu--dropdown,
  .elementor-nav-menu--layout-horizontal .elementor-nav-menu > .menu-item:hover > ul,
  .elementor-nav-menu--layout-horizontal .elementor-nav-menu > .menu-item:focus-within > .elementor-nav-menu--dropdown,
  .elementor-nav-menu--layout-horizontal .elementor-nav-menu > .menu-item:focus-within > ul {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .elementor-nav-menu--main .sub-menu .menu-item-has-children,
  .elementor-nav-menu--main .elementor-nav-menu--dropdown .menu-item-has-children {
    position: relative;
  }

  .elementor-nav-menu--main .sub-menu .sub-menu,
  .elementor-nav-menu--main .elementor-nav-menu--dropdown .elementor-nav-menu--dropdown {
    display: none;
    position: absolute;
    left: 100%;
    right: auto;
    top: 0;
    margin: 0;
    z-index: 10001;
  }

  .elementor-nav-menu--main .sub-menu .menu-item-has-children:hover > .sub-menu,
  .elementor-nav-menu--main .sub-menu .menu-item-has-children:focus-within > .sub-menu,
  .elementor-nav-menu--main .elementor-nav-menu--dropdown .menu-item-has-children:hover > .elementor-nav-menu--dropdown,
  .elementor-nav-menu--main .elementor-nav-menu--dropdown .menu-item-has-children:focus-within > .elementor-nav-menu--dropdown,
  .elementor-nav-menu--main .sub-menu .menu-item-has-children.is-submenu-open > .sub-menu,
  .elementor-nav-menu--main .elementor-nav-menu--dropdown .menu-item-has-children.is-submenu-open > .elementor-nav-menu--dropdown {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .elementor-nav-menu--main .sub-menu.os-flyout-left > .menu-item-has-children > .sub-menu,
  .elementor-nav-menu--main .sub-menu.os-flyout-left > .menu-item-has-children > .elementor-nav-menu--dropdown,
  .elementor-nav-menu--main .elementor-nav-menu--dropdown.os-flyout-left > .menu-item-has-children > .sub-menu,
  .elementor-nav-menu--main .elementor-nav-menu--dropdown.os-flyout-left > .menu-item-has-children > .elementor-nav-menu--dropdown {
    left: auto !important;
    right: 100% !important;
  }
}

/* Slides: show the first banner even before JS starts. */
.elementor-slides-wrapper .swiper-wrapper {
  display: block;
}

.elementor-slides-wrapper .swiper-slide {
  display: none;
}

.elementor-slides-wrapper .swiper-slide:first-child,
.elementor-slides-wrapper .swiper-slide-active {
  display: block;
}

/* Green WhatsApp / Call Us buttons — kit accent. */
.elementor-widget-button .elementor-button,
.elementor-button {
  background-color: var(--e-global-color-accent, #61CE70);
}

/* Enquiry form fields must stay visible without WPForms modern-var JS. */
.wpforms-field input[type="text"],
.wpforms-field input[type="email"],
.wpforms-field input[type="tel"],
.wpforms-field input[type="number"],
.wpforms-field input[type="url"],
.wpforms-field select,
.wpforms-field textarea,
.wpforms-field input[type="search"],
.os-news-sidebar .search-field {
  border: 1px solid #c7c7c7 !important;
  background: #fff !important;
  color: #333 !important;
  min-height: 43px;
  padding: 8px 14px !important;
  width: 100%;
  opacity: 1 !important;
  visibility: visible !important;
  box-shadow: none;
}

.wpforms-field textarea {
  min-height: 120px;
}

/* Keep WPForms Modern custom boxes. Forcing native appearance +
   position:static made :before/:after paint on the fieldset (over the
   “請選擇查詢的服務” heading) and stay synced with 其他 / Others. */
.wpforms-field input[type="checkbox"],
.wpforms-field input[type="radio"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  position: relative !important;
  display: inline-block !important;
  margin-right: 8px;
  background: none;
  accent-color: #ff9934;
}

.wpforms-field-label,
.wpforms-field-label-inline {
  color: #333;
}

html {
  overflow-x: hidden;
}

body {
  overflow-x: hidden;
}

/* Shared inner layout when the theme generates chrome.
   Live inner pages use a full-width 12% / 75.333% / 12% Elementor row. */
.os-inner-layout {
  display: grid;
  grid-template-columns: minmax(140px, 12%) minmax(0, 1fr) minmax(0, 12%);
  column-gap: 20px;
  row-gap: 0;
  align-items: start;
  max-width: none;
  margin: 0;
  padding: 50px 10px 10px;
}

/* Dump-classic: fill .os-inner-main only when a top section has one column
   (accordion already trimmed). Keep multi-column rows (About Us members box). */
body.os-dump-classic-body .os-inner-main > .elementor .elementor-top-section > .elementor-container > .elementor-top-column:only-child {
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
}

body.os-dump-classic-body .os-inner-main > .elementor > .elementor-section-full_width > .elementor-container,
body.os-dump-classic-body .os-inner-main > .elementor .elementor-top-section.elementor-section-boxed > .elementor-container {
  max-width: none !important;
  width: 100%;
}

body.os-dump-classic-body .os-inner-main > .elementor > .elementor-section-full_width > .elementor-container:has(> .elementor-column:only-child),
body.os-dump-classic-body .os-inner-main > .elementor .elementor-top-section.elementor-section-boxed > .elementor-container:has(> .elementor-column:only-child) {
  display: block;
}

body.os-dump-classic-body .os-inner-main > .elementor .elementor-inner-section.elementor-section-boxed > .elementor-container {
  max-width: none !important;
  width: 100%;
}

/* Zero leftover dump column pad so Macau fills .os-inner-main.
   Do not target .os-more-services: Elementor card gaps are this padding.
   Do not zero padding on multi-column rows (About Us members box). */
body.os-dump-classic-body .os-inner-main > .elementor .elementor-top-section > .elementor-container > .elementor-top-column:only-child > .elementor-widget-wrap.elementor-element-populated {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Keep the same 50px banner-to-chrome gap as other inner pages (.os-inner-layout).
   Extra dump padding on the middle column only was pushing body copy below the
   left nav / news rail — zero that, do not remove the shared layout padding. */
body.os-flush-inner-top.os-dump-classic-body .os-inner-main > .elementor > .elementor-section.elementor-top-section {
  padding-top: 0 !important;
}
body.os-flush-inner-top.os-dump-classic-body .os-inner-main > .elementor > .elementor-section.elementor-top-section:first-of-type .elementor-element-populated {
  padding-top: 0 !important;
}
body.os-flush-inner-top.os-dump-classic-body .os-inner-main > .elementor > .elementor-section.elementor-top-section:first-of-type .elementor-heading-title {
  margin-top: 0 !important;
}

.os-news-layout .os-inner-layout,
body.os-news-layout .os-inner-layout {
  grid-template-columns: minmax(0, 4fr) minmax(180px, 1fr);
}

.os-left-nav {
  background: transparent !important;
  align-self: start;
  height: auto;
}

/* Grey sits on the menu panel (heading + accordion) and follows its height. */
.os-left-nav-panel {
  background: #f8f8f8 !important;
  display: block;
  width: 100%;
  height: auto !important;
  max-height: none;
}

.wpb_category_n_menu_accordion {
  background: transparent !important;
  height: auto !important;
}

.os-left-nav-panel .wpb_category_n_menu_accordion > ul > li > a {
  font-size: 15px;
  line-height: 20px;
}

.os-left-nav-panel .wpb_category_n_menu_accordion ul ul li a,
.os-left-nav-panel .wpb_wmca_accordion_wrapper_theme_transparent ul ul li a {
  font-size: 14px !important;
  line-height: 20px !important;
  padding: 14px 22px !important;
}

.os-left-nav .wpb_wmca_accordion_wrapper_theme_transparent > ul > li li:hover > a,
.os-left-nav .wpb_wmca_accordion_wrapper_theme_transparent > ul > li li.current-menu-item > a,
.os-left-nav .wpb_wmca_accordion_wrapper_theme_transparent li.current_page_item > a,
.os-left-nav-panel .wpb_category_n_menu_accordion ul li.current-menu-item > a,
.os-left-nav-panel .wpb_category_n_menu_accordion ul li.current_page_item > a,
.wpb_category_n_menu_accordion > ul > li.current-menu-item > a,
.wpb_category_n_menu_accordion > ul > li.current_page_item > a,
.wpb_category_n_menu_accordion li.current-menu-item > a,
.wpb_category_n_menu_accordion li.current_page_item > a {
  border-color: #ff9934 !important;
  background-color: #ff9934 !important;
  color: #fff !important;
}

@media (min-width: 768px) {
  .elementor-column:has(.os-left-nav-panel),
  .elementor-column:has(.wpb_category_n_menu_accordion) {
    background-color: transparent !important;
    align-self: flex-start !important;
    height: auto !important;
    min-height: 0 !important;
  }

  .elementor-column:has(.os-left-nav-panel) > .elementor-widget-wrap,
  .elementor-column:has(.wpb_category_n_menu_accordion) > .elementor-widget-wrap {
    background: transparent !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: flex-start;
    align-items: flex-start;
  }

  body:not(.os-news-layout) .elementor-column:has(.os-news-sidebar),
  body:not(.os-news-layout) .elementor-column:has(.elementor-widget-sidebar) {
    width: 12% !important;
    max-width: 12% !important;
    flex: 0 0 12% !important;
  }

  /* Macau capture overlay: news rail nested in the article column.
     Dump-classic already sits inside .os-inner-main — do not shrink it. */
  body:not(.os-dump-classic-body):not(.os-news-layout) .elementor-column:has(.os-news-sidebar):has(.elementor-inner-section),
  body:not(.os-dump-classic-body):not(.os-news-layout) .elementor-column:has(.elementor-widget-sidebar):has(.elementor-inner-section),
  body:not(.os-dump-classic-body) .elementor-2281 .elementor-element-6b92063,
  body:not(.os-dump-classic-body) .elementor-4193 .elementor-element-6b92063,
  body:not(.os-dump-classic-body) .elementor-4287 .elementor-element-6b92063 {
    width: 75.333% !important;
    max-width: 75.333% !important;
    flex: 0 0 75.333% !important;
  }

  /* VO application: keep the form column wide even if the promo rail
     is temporarily nested, and stop the 88/12 pair from wrapping. */
  body:not(.os-news-layout) .elementor-column:has(.os-vo-app),
  body:not(.os-news-layout) .elementor-column:has(.payment-container) {
    width: auto !important;
    max-width: none !important;
    flex: 1 1 auto !important;
  }

  .elementor-11150 > .elementor-section > .elementor-container {
    flex-wrap: nowrap;
    align-items: flex-start;
  }

  .elementor-11150 .elementor-element-ed841d5 {
    width: auto !important;
    max-width: none !important;
    flex: 1 1 auto !important;
  }

  .elementor-11150 .elementor-element-a4f9c72 {
    width: 12% !important;
    max-width: 12% !important;
    flex: 0 0 12% !important;
  }
}

/* Apply section stays full theme width like other service pages.
   Only the form itself is width-capped and left-aligned. */
.elementor-11150 .elementor-element-e263e6e {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

.os-vo-app.payment-container {
  max-width: 600px;
  width: 100%;
  margin-left: 0;
  margin-right: auto;
}

/* HK company EN apply: 750px matches the live English form so
   option labels stay on one line without filling the column. */
.os-cf-app.os-cf-lang-en.os-vo-app.payment-container {
  max-width: 750px;
}

/* Online payment form (not VO apply): wide enough for the PayMe URL. */
.elementor-shortcode .payment-container:not(.os-vo-app) {
  max-width: 560px;
}

.elementor-shortcode .payment-container:not(.os-vo-app) a[href*="qr.payme.hsbc"] {
  white-space: nowrap;
}

.elementor-shortcode .os-op-app .payment-method {
  display: flex !important;
  align-items: flex-start !important;
}

.os-op-intro > div + div {
  margin-top: 0.35em;
}

.elementor-shortcode .os-op-app .payment-method > input[type="radio"] {
  margin-top: 3px;
  align-self: flex-start;
}

.elementor-shortcode .payment-container .os-pay-fps-code {
  font-weight: inherit;
  margin-left: 0;
}

@media (max-width: 767px) {
  .elementor-11150 > .elementor-section > .elementor-container {
    flex-wrap: wrap;
  }

  .elementor-11150 .elementor-element-ed841d5,
  .elementor-11150 .elementor-element-a4f9c72 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
  }

  .elementor-11150 .elementor-element-e263e6e {
    padding-left: 12px;
    padding-right: 12px;
  }

  .os-vo-app.payment-container {
    max-width: 100% !important;
    padding-left: 0;
    padding-right: 0;
  }
}

/* News article + related rail: keep stacked below desktop. Elementor’s tablet
   50/50 and our 80/20 both squeeze related cards into unreadably thin cells. */
@media (max-width: 1024px) {
  body.os-news-layout .os-inner-layout {
    grid-template-columns: 1fr;
  }

  body.os-news-layout .site-main .elementor-top-section > .elementor-container {
    flex-wrap: wrap;
  }

  body.os-news-layout .site-main .elementor-top-section > .elementor-container > .elementor-col-50,
  body.os-news-layout .site-main .elementor-top-column.elementor-col-50 {
    width: 100% !important;
    max-width: none !important;
    flex: 0 0 100% !important;
  }
}

@media (min-width: 1025px) {
  /* News listing + detail: first 50% column is article, last is the rail.
     Related posts also use .elementor-posts-container, so do not key off that. */
  body.os-news-layout .site-main .elementor-container > .elementor-col-50:first-child {
    width: 80% !important;
    max-width: 80% !important;
    flex: 0 0 80% !important;
    min-width: 0;
  }

  body.os-news-layout .site-main .elementor-container > .elementor-col-50:last-child,
  body.os-news-layout .site-main .elementor-top-column.elementor-col-50:has(.os-news-sidebar),
  body.os-news-layout .site-main .elementor-top-column.elementor-col-50:has(.elementor-widget-sidebar),
  body.os-news-layout .site-main .elementor-top-column.elementor-col-50:has(.widget_search),
  body.os-news-layout .site-main .elementor-top-column.elementor-col-50:has(.search-form),
  body.os-news-layout .site-main .elementor-top-column.elementor-col-50:has(.elementor-search-form),
  body.os-news-layout .site-main .elementor-column:has(.os-news-sidebar),
  body.os-news-layout .site-main .elementor-column:has(.elementor-widget-sidebar) {
    width: 20% !important;
    max-width: 20% !important;
    flex: 0 0 20% !important;
    min-width: 0;
  }
}

/* Related posts in the news rail stay one card wide at every breakpoint. */
body.os-news-layout .site-main .elementor-top-column.elementor-col-50:last-child .elementor-posts-container,
body.os-news-layout .site-main .elementor-column:has(.search-form) .elementor-posts-container,
body.os-news-layout .site-main .elementor-column:has(.elementor-widget-sidebar) .elementor-posts-container {
  grid-template-columns: minmax(0, 1fr) !important;
}

.wpb_category_n_menu_accordion li.current-menu-ancestor > ul,
.wpb_category_n_menu_accordion li.current-menu-parent > ul,
.wpb_category_n_menu_accordion li.wpb-submenu-indicator-minus > ul {
  display: block;
}

.elementor-widget-video .elementor-wrapper,
.elementor-fit-aspect-ratio {
  position: relative;
  width: 100%;
}

.elementor-aspect-ratio-169 .elementor-fit-aspect-ratio {
  padding-bottom: 56.25%;
}

.elementor-widget-video .elementor-video,
.elementor-widget-video iframe.elementor-video-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.os-inner-main {
  min-width: 0;
  container-type: inline-size;
  container-name: os-inner-main;
}

.os-inner-main > .os-more-services {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.os-serviced-office-faq {
  margin-bottom: 50px;
}

.os-serviced-office-faq .elementor-widget-heading {
  text-align: center;
}

.os-serviced-office-faq .elementor-widget-heading .elementor-heading-title {
  color: var(--e-global-color-secondary);
  font-size: 26px;
  line-height: 1.4em;
}

.os-serviced-office-faq .elementor-widget-toggle .elementor-toggle-title,
.os-serviced-office-faq .elementor-widget-toggle .elementor-toggle-icon {
  color: #000;
}

.os-serviced-office-faq .elementor-widget-toggle .elementor-toggle-icon svg {
  fill: #000;
}

.os-serviced-office-faq .elementor-widget-toggle .elementor-tab-title.elementor-active a,
.os-serviced-office-faq .elementor-widget-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon {
  color: #ff9934;
}

.os-serviced-office-faq .elementor-toggle-title,
.os-serviced-office-faq .elementor-tab-content {
  font-size: 16px;
  line-height: 1.4em;
}

.os-inner-main > .os-more-services .elementor,
.os-inner-main > .os-more-services .elementor-section-full_width,
.os-inner-main > .os-more-services .elementor-container {
  width: 100%;
  max-width: 100% !important;
}

.os-news-sidebar,
.elementor-widget-sidebar {
  align-self: start;
  height: auto;
  padding: 15px;
  background: #f8f8f8;
}

/* Captured pages already wrap the sidebar in .elementor-widget-sidebar.
   Do not stack a second 15px pad or the Apple Storage image shrinks. */
.elementor-widget-sidebar > .elementor-widget-container > .os-news-sidebar,
.elementor-widget-sidebar .os-news-sidebar {
  padding: 0;
  background: transparent;
}

.os-news-sidebar .textwidget,
.elementor-widget-sidebar .textwidget,
.os-news-sidebar .textwidget p,
.elementor-widget-sidebar .textwidget p,
.os-news-sidebar .textwidget a,
.elementor-widget-sidebar .textwidget a {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

.os-news-sidebar .textwidget img,
.elementor-widget-sidebar .textwidget img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  display: block;
  margin: 0 !important;
}

.os-news-sidebar .widget-title,
.elementor-widget-sidebar .widget-title {
  font-size: 18px;
  margin-top: 30px;
  color: #ff9934;
  border-bottom: 1px solid #ff9934;
  padding-bottom: 10px;
}

.os-news-sidebar .widget:first-child .widget-title,
.elementor-widget-sidebar .widget:first-child .widget-title {
  margin-top: 0;
}

.os-news-sidebar .recent-news li,
.recent-news li {
  margin-bottom: 10px !important;
  list-style: none;
}

.os-news-sidebar .recent-news .thumb img,
.recent-news .thumb img {
  display: none;
}

.os-news-sidebar .recent-news .entry-header,
.recent-news .entry-header {
  display: flex;
  flex-direction: column-reverse;
}

.os-news-sidebar .recent-news .post-on,
.recent-news .entry-header .post-on {
  font-weight: 300;
  display: inline-block;
  padding: 3px;
  background: #ff9934;
  max-width: 140px;
  color: #fff;
  font-size: 12px;
  margin-bottom: 5px;
}

.os-featured-image {
  margin: 0 0 20px;
}

.os-featured-image img {
  width: 100%;
  height: auto;
}

.page-header {
  position: relative;
  height: 260px;
  background-size: cover;
  background-position: center;
}

.page-header .page-title {
  display: inline-block;
  background: #FF9934;
  padding: 10px 30px;
  color: #fff !important;
  font-size: 28px !important;
}

@media (max-width: 1024px) {
  .os-inner-layout {
    grid-template-columns: 1fr;
  }

  .os-left-nav,
  .hide-on-mobile {
    display: none;
  }
}

/* Language switcher: CPEL sizes the open list with max-height: calc(100% * var(--langs)).
   That percentage is relative to the toggle-sized nav, so the list stays ~0px tall. */
.header-desktop,
.header-mobile,
#site-header,
.cpel-switcher--layout-dropdown,
.cpel-switcher--layout-dropdown .elementor-widget-container,
.cpel-switcher--layout-dropdown .cpel-switcher__nav {
  overflow: visible !important;
}

.cpel-switcher--layout-dropdown .elementor-widget-container {
  text-align: right;
}

.cpel-switcher--layout-dropdown .cpel-switcher__nav {
  display: inline-block;
  width: auto;
  position: relative;
  z-index: 10050;
}

.cpel-switcher--layout-dropdown .cpel-switcher__list {
  left: 0 !important;
  right: auto !important;
  align-items: stretch !important;
  min-width: 100%;
  width: max-content;
}

.cpel-switcher--layout-dropdown .cpel-switcher__toggle--on + .cpel-switcher__list,
.cpel-switcher--layout-dropdown .cpel-switcher__nav:hover .cpel-switcher__list {
  max-height: 240px !important;
  overflow: visible !important;
  z-index: 10051;
}

.cpel-switcher--layout-dropdown .cpel-switcher__list .cpel-switcher__lang a {
  background: #fff;
  min-width: 0;
  text-align: left;
}

.os-nav-heading > a,
a.os-nav-heading {
  cursor: default;
  pointer-events: auto;
}

.elementor-toggle .elementor-tab-content,
.elementor-accordion .elementor-tab-content {
  display: none;
}

.elementor-toggle .elementor-tab-title.elementor-active + .elementor-tab-content,
.elementor-accordion .elementor-tab-title.elementor-active + .elementor-tab-content,
.elementor-toggle .elementor-tab-content.elementor-active,
.elementor-accordion .elementor-tab-content.elementor-active {
  display: block;
}

/* Elementor classic posts: padding-bottom aspect box + in-flow img stacked. */
.elementor-posts-container .elementor-post,
.elementor-posts-container .elementor-grid-item {
  min-width: 0;
  max-width: 100%;
}

.elementor-posts-container .elementor-post__thumbnail {
  position: relative;
  overflow: hidden;
  padding-bottom: 100%;
  height: 0;
}

.elementor-posts-container .elementor-post__thumbnail img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
}

.elementor-posts-container .elementor-post__thumbnail__link {
  margin-bottom: 12px;
}

.elementor-nav-menu--main .sub-menu > .menu-item-has-children > a::after {
  content: none;
}

.elementor-element-e8b623e.elementor-inner-section > .elementor-container,
.elementor-element-28488e4.elementor-inner-section > .elementor-container,
.elementor-element-e8b623e > .elementor-container,
.elementor-element-28488e4 > .elementor-container {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  width: 100%;
}

.elementor-element-e8b623e.elementor-inner-section > .elementor-container > .elementor-column,
.elementor-element-28488e4.elementor-inner-section > .elementor-container > .elementor-column,
.elementor-element-e8b623e > .elementor-container > .elementor-column,
.elementor-element-28488e4 > .elementor-container > .elementor-column {
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
  min-width: 0 !important;
}

.elementor-element-28488e4 .elementor-element-ac2e36e {
  visibility: hidden;
  pointer-events: none;
}

.elementor-element-e8b623e .elementor-image-box-img,
.elementor-element-28488e4 .elementor-image-box-img {
  width: 100%;
}

.elementor-element-e8b623e .elementor-image-box-img img,
.elementor-element-28488e4 .elementor-image-box-img img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 770 / 545;
  object-fit: cover;
  display: block;
}

.elementor-tabs .elementor-tab-content:not(.elementor-active),
.elementor-tabs .elementor-tab-content[hidden] {
  display: none !important;
}

.elementor-tabs .elementor-tab-content.elementor-active {
  display: block !important;
}

#site-footer .os-footer-nav-col .elementor-widget-heading,
#site-footer .os-footer-nav-col .elementor-heading-title {
  text-align: center;
}

#site-footer .os-footer-nav-col .elementor-heading-title {
  font-family: "Roboto", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.6em;
}

#site-footer .os-footer-nav-col .elementor-heading-title a {
  color: inherit;
  text-decoration: none;
  font-size: inherit;
  font-weight: inherit;
}

#site-footer .os-footer-nav-col .elementor-icon-list-item > a,
#site-footer .os-footer-nav-col .elementor-icon-list-text {
  font-family: "Roboto", sans-serif;
  font-size: 15px;
  font-weight: 400;
}

.form-container .wpforms-submit,
.wpforms-submit-container .wpforms-submit,
button.wpforms-submit {
  color: #ffffff !important;
}

#site-footer .os-footer-nav-col .os-footer-extra-heading > .elementor-widget-container {
  margin: 19.5px 0 0;
}

.wpform-custom-verify-container #wpform-captcha-img,
.wpform-custom-verify-container img.wpform-captcha-img {
  width: 140px;
  height: 30px;
  cursor: pointer;
  display: inline-block;
  background: #f8f8f8;
}

#site-footer .os-footer-nav-col {
  flex: 1 1 0;
  min-width: 110px;
  width: auto !important;
  max-width: none !important;
}

#site-footer .elementor-element-99754f0 > .elementor-container,
#site-footer .elementor-element-234473f > .elementor-container,
#site-footer .elementor-element-cdf9bb2 > .elementor-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
}

.mmenu-wrapper .mobile_mainmenu li.menu-item-has-children {
  position: relative;
}

.mmenu-wrapper .mobile_mainmenu li.menu-item-has-children > .arrow {
  color: #fff;
  position: absolute;
  display: block;
  right: 0;
  top: 0;
  cursor: pointer;
  width: 34px;
  height: auto;
  padding: 7px 12px 7px 0;
  line-height: inherit;
  text-align: right;
  box-sizing: border-box;
  z-index: 2;
}

body.mmenu-active {
  overflow: hidden;
}

#mmenu-toggle,
.mmenu-toggle,
#mmenu-toggle button,
.mmenu-toggle button {
  cursor: pointer;
}

.wpform-custom-verify-container .verify-main-inner-container {
  display: flex;
  align-items: center;
}

.wpform-custom-verify-container .verify-main-inner-container #wpform-captcha_code,
.wpform-custom-verify-container .verify-main-inner-container .wpform-captcha-code-input {
  width: 140px;
  height: 30px;
  margin-left: 20px;
}

.icon-box-grid .icon-box .icon-main i {
  color: #fe8423;
}

/* Imported About Us overlay widget sits in the middle column; hide it.
   The banner logo is printed on .page-header to match Contact Us. */
body.os-about-us .elementor-element-9c02869.elementor-absolute {
  display: none !important;
}

/* About Us members box: fixed width beside the story; full width when stacked. */
.elementor-element-a1e5b53 > .elementor-container {
  display: flex !important;
  flex-wrap: nowrap;
  align-items: flex-start;
}
.elementor-element-4113e8f {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: none !important;
}
body.lang-zh-hk .elementor-element-2c0c0d6,
body.lang-zh-cn .elementor-element-2c0c0d6 {
  flex: 0 0 270px !important;
  width: 270px !important;
  max-width: 270px !important;
}
body.lang-en .elementor-element-2c0c0d6 {
  flex: 0 0 330px !important;
  width: 330px !important;
  max-width: 330px !important;
}
.elementor-element-2c0c0d6 > .elementor-widget-wrap,
.elementor-element-2c0c0d6 .elementor-widget-container {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}
.elementor-element-2c0c0d6 .elementor-icon-list-icon {
  display: none;
}
.elementor-element-2c0c0d6 .elementor-icon-list-item,
.elementor-element-2c0c0d6 .elementor-icon-list-text {
  white-space: normal;
}
.elementor-element-2c0c0d6 .elementor-icon-list-text::before {
  content: "- ";
}
@media only screen and (max-width: 1024px) {
  .elementor-element-a1e5b53 > .elementor-container {
    flex-wrap: wrap;
  }
  .elementor-element-4113e8f,
  .elementor-element-2c0c0d6,
  body.lang-zh-hk .elementor-element-2c0c0d6,
  body.lang-zh-cn .elementor-element-2c0c0d6,
  body.lang-en .elementor-element-2c0c0d6 {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* EN terms-policy dump boxed the main section; TC/SC are full width. */
.elementor-11340 .elementor-element-54042683 > .elementor-container {
  max-width: none !important;
  width: 100%;
}
@media only screen and (max-width: 1024px) {
  body:not(.home) .page-header {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: none !important;
  }

  .elementor-element-9c02869.elementor-absolute {
    display: none !important;
  }
}

/* WPForms modern honeypot (field 4) must stay off-screen like live. */
.wpforms-form .wpforms-field[data-field-id="4"],
.wpforms-form [id$="-field_4-container"],
.wpforms-field-hp,
#wpforms-1822-field_4-container,
#wpforms-10911-field_4-container,
#wpforms-10915-field_4-container,
#wpforms-0-field_4-container {
  position: absolute !important;
  overflow: hidden !important;
  display: inline !important;
  height: 1px !important;
  width: 1px !important;
  z-index: -1000 !important;
  padding: 0 !important;
  clip: rect(0, 0, 0, 0);
}

.wpforms-form .wpforms-field[data-field-id="4"] input,
.wpforms-form [id$="-field_4-container"] input {
  visibility: hidden;
}

/* Enquiry / Contact Us: in-place success box (replaces the form, no reload). */
.wpforms-confirmation-container-full,
.wpforms-confirmation-container,
div[id^="wpforms-confirmation-"] {
  background: #dff6e2;
  border: 1px solid #3d9a4a;
  color: #1a1a1a;
  padding: 14px 18px;
  margin: 0 0 1em;
  box-sizing: border-box;
}

.wpforms-confirmation-container-full p,
.wpforms-confirmation-container p,
div[id^="wpforms-confirmation-"] p {
  margin: 0;
}

.os-header-logo {
  width: auto;
  max-width: 165px;
  height: auto;
  max-height: 75px;
}

/* Imbee chat launcher: keep it above header/footer chrome on every language. */
#_IMBEE_WEB_WIDGET,
#os-imbee-widget,
iframe[src*="imbee.io"],
[id*="imbee"],
[class*="imbee-"] {
  z-index: 2147483000 !important;
  pointer-events: auto;
}

/* Company-formation dumps: wide comparison tables and inner grids. */
.table-container,
.table-responsive,
.os-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}

.table-container table,
table.pricing-table {
  width: 100%;
  border-collapse: collapse;
}

table.pricing-table th,
table.pricing-table td {
  border: 1px solid #ff9934;
  padding: 8px 10px;
  vertical-align: top;
  background: #fff;
}

table.pricing-table thead td,
table.pricing-table thead th {
  background: #ff9934;
  color: #fff;
  text-align: center;
  font-weight: 600;
}

.elementor-inner-section > .elementor-container {
  max-width: 100%;
}

.elementor-inner-column img {
  max-width: 100%;
  height: auto;
}

.elementor-widget-shortcode > .elementor-widget-container {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100%;
}

/* Macau CF: fifth benefit is a 100% inner column; keep it on the left
   50% track like the rows above. Stack full-width on mobile. */
@media (min-width: 768px) {
  .elementor-element-daee34e > .elementor-container {
    justify-content: flex-start;
  }

  .elementor-element-daee34e .elementor-element-9a26642 {
    width: 50% !important;
    max-width: 50% !important;
    flex: 0 0 50% !important;
  }
}

/* Macau CF: space FAQ from 服務包括, and the orange summary blocks apart. */
.elementor-element-9499fde,
.elementor-element-7318d2e,
.elementor-element-520fdd8,
.elementor-element-7e40243 {
  margin-top: 40px;
}
