/* ===================================================================
   Asia Pro Traders — Blog & UI Components
   Derived from hkproclean.com brand tokens
   Stripped of: WooCommerce, mini-cart, product grids, SleekFlow, checkout
   ===================================================================

   TABLE OF CONTENTS
   1.  Brand Tokens (CSS variables)
   2.  Base / Reset
   2b. Layout — Container & Page Wrapper
   3.  Typography — H1, H2, body text
   4.  Buttons
   5.  Forms & Focus
   6.  Alerts / Notice Boxes
   7.  Elementor Accordion (dark skin)
   8.  Blog Post Grid (archive)
   9.  Blog Post Single (content)
   10. Header Navigation
   11. Language Switcher (GTranslate flags)
   12. Contact Slider
   13. Global Cursor
   14. Responsive
   15. Landing Page — Hero + Territory Cards
   16. Popup Form
   17. GTranslate — Float Switcher Skin
   18. Mission Statement Page
   =================================================================== */


/* ===================================================================
   1. BRAND TOKENS
   =================================================================== */
:root {
  --apt-blue:        #87CEEB;
  --apt-black:       #000;
  --apt-white:       #FFF;
  --apt-text:        #e3e3e3;
  --apt-muted:       rgba(255,255,255,0.75);
  --apt-border:      #EEE;
  --apt-border-dim:  rgba(255,255,255,0.18);

  --apt-btn-bg:      #87CEEB;
  --apt-btn-text:    #000;
  --apt-btn-border:  #EEE;
  --apt-btn-radius:  5px;
  --apt-btn-font:    "Montserrat", sans-serif;
  --apt-btn-weight:  900;
  --apt-btn-size:    15px;
  --apt-btn-pad:     12px 24px;

  --apt-wrap-max:      1200px;
  --apt-wrap-vw:       90vw;
  --apt-wrap:          min(var(--apt-wrap-max), var(--apt-wrap-vw));
  --apt-gutter:        clamp(16px, 2vw, 28px);
  --apt-header-height: 80px;
  --apt-bar-pad-x:     clamp(16px, 2.5vw, 32px);
  --apt-page-pad-y:    clamp(32px, 6vh, 96px);
  --apt-page-top:      clamp(40px, 9vh, 120px);

  --apt-box-radius:  5px;
  --apt-box-border:  #87CEEB;
  --apt-box-text:    #e9eef1;
  --apt-box-bg:      rgba(135,206,235,0.10);
  --apt-box-link:    #87CEEB;
  --apt-box-success: #45c47b;
  --apt-box-error:   #ff6666;
  --apt-box-info:    #87CEEB;
}


/* ===================================================================
   2. BASE / RESET
   =================================================================== */
body, .site, .site-main, #content, .content-area, .entry-content { background: #000 !important; }
h1.entry-title, h2 { margin-left: 0 !important; padding-left: 0 !important; }
html { scroll-behavior: smooth; }


/* ===================================================================
   2b. LAYOUT
   =================================================================== */
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con-inner,
.elementor-container {
  max-width: var(--apt-wrap-max) !important;
  width:     var(--apt-wrap-vw)  !important;
  margin-left: auto !important; margin-right: auto !important;
  padding-left: var(--apt-bar-pad-x) !important; padding-right: var(--apt-bar-pad-x) !important;
  box-sizing: border-box !important;
}

.elementor-location-main .elementor-section,
.elementor-location-main .e-con { padding-top: var(--apt-page-pad-y) !important; padding-bottom: var(--apt-page-pad-y) !important; }

.elementor-location-header .elementor-section,
.elementor-location-header .e-con,
.elementor-location-footer .elementor-section,
.elementor-location-footer .e-con { padding-top: revert !important; padding-bottom: revert !important; }


/* ===================================================================
   3. TYPOGRAPHY
   =================================================================== */
h1, .elementor-heading-title.elementor-size-xl, .elementor-heading-title.elementor-size-xxl { font-family: "Montserrat", sans-serif !important; font-weight: 900 !important; text-transform: uppercase !important; letter-spacing: 0.02em !important; color: var(--apt-white) !important; line-height: 1.06 !important; }
h2, .elementor-heading-title.elementor-size-large { font-family: "Montserrat", sans-serif !important; font-weight: 800 !important; text-transform: uppercase !important; letter-spacing: 0.02em !important; color: var(--apt-white) !important; line-height: 1.2 !important; scroll-margin-top: 120px; }
h3, .elementor-heading-title.elementor-size-medium { font-family: "Montserrat", sans-serif !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.01em !important; color: var(--apt-white) !important; }
p, .elementor-text-editor, .elementor-widget-text-editor p { font-family: "Montserrat", sans-serif !important; font-weight: 400 !important; font-size: 16px !important; line-height: 1.6 !important; color: var(--apt-text) !important; }

.apt-accent { color: var(--apt-blue) !important; }
a { color: var(--apt-blue); text-decoration: none; transition: color 0.2s ease; }
a:hover { color: var(--apt-white); text-decoration: underline; text-underline-offset: 3px; }


/* ===================================================================
   4. BUTTONS
   =================================================================== */
body:not(.wp-admin) a.button,
body:not(.wp-admin) button,
body:not(.wp-admin) input[type="button"],
body:not(.wp-admin) input[type="submit"],
body:not(.wp-admin) .wp-element-button,
body:not(.wp-admin) .wp-block-button__link,
body:not(.wp-admin) .elementor-button,
body:not(.wp-admin) .elementor-button-link {
  font-family: var(--apt-btn-font) !important; font-weight: var(--apt-btn-weight) !important; font-size: var(--apt-btn-size) !important;
  line-height: 1.2 !important; padding: var(--apt-btn-pad) !important; text-transform: uppercase !important;
  background: var(--apt-btn-bg) !important; color: var(--apt-btn-text) !important;
  border: 2px solid var(--apt-btn-border) !important; border-radius: var(--apt-btn-radius) !important;
  min-height: 48px !important; height: auto !important; display: inline-flex !important;
  align-items: center !important; justify-content: center !important; box-sizing: border-box !important;
  text-shadow: none !important; box-shadow: none !important; cursor: pointer;
  transition: background 0.18s, color 0.18s, border-color 0.18s, transform 0.05s !important;
}
body:not(.wp-admin) .elementor-button .elementor-button-text,
body:not(.wp-admin) .elementor-button span { color: var(--apt-btn-text) !important; }

body:not(.wp-admin) a.button:hover, body:not(.wp-admin) button:hover,
body:not(.wp-admin) input[type="button"]:hover, body:not(.wp-admin) input[type="submit"]:hover,
body:not(.wp-admin) .wp-element-button:hover, body:not(.wp-admin) .wp-block-button__link:hover,
body:not(.wp-admin) .elementor-button:hover, body:not(.wp-admin) a.button:focus,
body:not(.wp-admin) button:focus, body:not(.wp-admin) input[type="button"]:focus,
body:not(.wp-admin) input[type="submit"]:focus, body:not(.wp-admin) .elementor-button:focus {
  background: #000 !important; color: #fff !important; border-color: var(--apt-btn-border) !important; outline: none !important; text-decoration: none !important;
}
body:not(.wp-admin) .elementor-button:hover .elementor-button-text,
body:not(.wp-admin) .elementor-button:hover span,
body:not(.wp-admin) .elementor-button:focus .elementor-button-text,
body:not(.wp-admin) .elementor-button:focus span { color: #fff !important; }

body:not(.wp-admin) .button.disabled, body:not(.wp-admin) .button:disabled,
body:not(.wp-admin) button:disabled, body:not(.wp-admin) input[type="submit"]:disabled { opacity: 0.55 !important; cursor: not-allowed !important; filter: grayscale(10%); }

#whatsapp.elementor-widget-button .elementor-button { background-color: #25D366 !important; border-color: #25D366 !important; color: #FFF !important; }
#whatsapp.elementor-widget-button .elementor-button:hover, #whatsapp.elementor-widget-button .elementor-button:focus { background-color: #128C7E !important; border-color: #128C7E !important; color: #FFF !important; }
#whatsapp.elementor-widget-button .elementor-button:active { background-color: #075E54 !important; border-color: #075E54 !important; }
#whatsapp .elementor-button-text { color: inherit !important; }


/* ===================================================================
   5. FORMS & FOCUS
   =================================================================== */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="url"], input[type="search"], select {
  height: 48px !important; line-height: normal !important; border: 1px solid #CCC !important;
  border-radius: 5px !important; background: #FFF !important; color: #000 !important;
  font-family: "Montserrat", sans-serif !important; font-weight: 500 !important;
  padding: 0 16px !important; box-sizing: border-box !important; transition: all 0.3s ease !important;
}
textarea { border: 1px solid #CCC !important; border-radius: 5px !important; background: #FFF !important; color: #000 !important; font-family: "Montserrat", sans-serif !important; font-weight: 500 !important; padding: 16px !important; min-height: 120px !important; transition: all 0.3s ease !important; }
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="url"]:focus, input[type="search"]:focus, textarea:focus, select:focus { outline: none !important; border-color: #87CEEB !important; background: #FFF !important; box-shadow: 0 0 0 3px rgba(135,206,235,0.25) !important; }
input[type="checkbox"]:focus, input[type="radio"]:focus { outline: none !important; box-shadow: 0 0 6px 2px rgba(135,206,235,0.7) !important; }
input::placeholder, textarea::placeholder { color: #666 !important; opacity: 1; }

.apt-form .elementor-field-group { margin-bottom: 14px !important; }
.apt-form .elementor-field-label { color: #fff !important; font-family: "Montserrat",sans-serif !important; font-weight: 900 !important; margin-bottom: 8px !important; }
.apt-form .elementor-field-textual { background: #fff !important; color: #000 !important; border: 1px solid rgba(255,255,255,0.85) !important; border-radius: 5px !important; font-family: "Montserrat",sans-serif !important; font-weight: 400 !important; font-size: 14px !important; padding: 12px 14px !important; min-height: 48px !important; box-shadow: none !important; }
.apt-form textarea.elementor-field-textual { min-height: 120px !important; padding: 14px !important; }
.apt-form .elementor-field-textual::placeholder { color: rgba(0,0,0,0.55) !important; opacity: 1 !important; }
.apt-form .elementor-field-textual:focus { outline: none !important; border-color: #87CEEB !important; box-shadow: 0 0 0 3px rgba(135,206,235,0.25) !important; }
.apt-form .elementor-button { background: #87CEEB !important; color: #000 !important; border: 1px solid rgba(255,255,255,0.45) !important; border-radius: 5px !important; font-family: "Montserrat",sans-serif !important; font-weight: 900 !important; text-transform: uppercase !important; letter-spacing: 0.02em !important; padding: 12px 18px !important; min-height: 48px !important; box-shadow: none !important; }
.apt-form .elementor-button:hover, .apt-form .elementor-button:focus { background: #000 !important; color: #fff !important; border-color: #87CEEB !important; outline: none !important; }


/* ===================================================================
   6. ALERTS / NOTICE BOXES
   =================================================================== */
.elementor-alert { background: var(--apt-box-bg) !important; color: var(--apt-box-text) !important; border: 2px solid var(--apt-box-border) !important; border-radius: var(--apt-box-radius) !important; padding: 14px 16px !important; }
.elementor-alert--success { border-color: var(--apt-box-success) !important; }
.elementor-alert--danger  { border-color: var(--apt-box-error)   !important; }
.elementor-alert--warning { border-color: #e6b800               !important; }
.elementor-alert--info    { border-color: var(--apt-box-info)    !important; }
.apt-notice { background: var(--apt-box-bg); color: var(--apt-box-text); border: 2px solid var(--apt-box-border); border-radius: var(--apt-box-radius); padding: 14px 16px; margin: 16px 0; }
.apt-notice--success { border-color: var(--apt-box-success); }
.apt-notice--error   { border-color: var(--apt-box-error);   }
.apt-notice--info    { border-color: var(--apt-box-info);    }


/* ===================================================================
   7. ELEMENTOR ACCORDION — Dark Skin
   =================================================================== */
details.e-n-accordion-item { background-color: #000 !important; border: 1px solid #EEE !important; border-radius: 5px !important; margin-bottom: 20px !important; overflow: hidden !important; box-sizing: border-box !important; transition: all 0.3s ease !important; }
details.e-n-accordion-item:not([open]) { height: auto !important; padding-bottom: 0 !important; }
summary.e-n-accordion-item-title { background-color: transparent !important; color: #FFF !important; padding: 20px 25px !important; font-family: "Montserrat", sans-serif !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.02em; cursor: pointer !important; transition: background-color 0.3s ease, color 0.3s ease !important; outline: none !important; list-style: none !important; }
summary.e-n-accordion-item-title::-webkit-details-marker { display: none; }
details.e-n-accordion-item[open] > summary.e-n-accordion-item-title, summary.e-n-accordion-item-title:hover { color: #87CEEB !important; background-color: rgba(135,206,235,0.1) !important; }
.e-n-accordion-item-title-icon, .e-n-accordion-item-title-icon svg { color: #87CEEB !important; fill: #87CEEB !important; }
details.e-n-accordion-item > div[role="region"] { background-color: #000 !important; border-top: 1px solid rgba(255,255,255,0.15) !important; color: #e3e3e3 !important; padding: 20px 25px !important; font-size: 15px !important; line-height: 1.6 !important; }
details.e-n-accordion-item > div[role="region"] p { margin-bottom: 0 !important; }

.apt-back-to-top { text-align: right; display: block; width: 100%; margin-top: 10px; margin-bottom: 40px; }
.apt-back-to-top a, .apt-back-to-top i { color: #87CEEB !important; font-size: 14px; font-weight: 700; text-transform: uppercase; text-decoration: none; transition: all 0.3s ease; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.apt-back-to-top a:hover { color: #FFF !important; transform: translateY(-3px); }
#faq-top { scroll-margin-top: 120px; }
[id^="faq-"]::before { content: none !important; display: none !important; height: 0 !important; margin-top: 0 !important; }
[id^="faq-"] { scroll-margin-top: 140px; }


/* ===================================================================
   8. BLOG POST GRID (Archive / loop)
   Mirrors hkproclean exactly — layout only, card skin via Elementor.
   We only override what the theme incorrectly overrides: backgrounds,
   text colours, and we hide the injected avatar (white band) and badge.
   =================================================================== */

/* Equal-height text column + pinned Read More — identical to hkproclean */
.elementor-posts .elementor-post__text { display: flex; flex-direction: column; height: 100%; padding: 16px !important; background: #000 !important; }
.elementor-posts .elementor-post__title { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; -webkit-line-clamp: 2; margin-bottom: 12px; }
.elementor-posts .elementor-post__excerpt { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; -webkit-line-clamp: 3; margin-bottom: 16px; }
.elementor-posts .elementor-post__read-more { margin-top: auto; align-self: flex-start; }

/* Text colours — theme may set these dark on a light card background */
.elementor-posts .elementor-post__title a { color: #87CEEB !important; font-family: "Montserrat", sans-serif !important; font-weight: 900 !important; text-transform: uppercase !important; text-decoration: none !important; }
.elementor-posts .elementor-post__title a:hover { color: #fff !important; }
.elementor-posts .elementor-post__excerpt p { color: #e3e3e3 !important; font-size: 14px !important; }
.elementor-posts .elementor-post__read-more { color: #87CEEB !important; font-family: "Montserrat", sans-serif !important; font-weight: 900 !important; text-transform: uppercase !important; font-size: 13px !important; }
.elementor-posts .elementor-post__read-more:hover { color: #fff !important; }
.elementor-posts .elementor-post__meta-data,
.elementor-posts .elementor-post__meta-data a { font-family: "Montserrat", sans-serif !important; font-weight: 600 !important; font-size: 13px !important; color: rgba(255,255,255,0.45) !important; }

/* Card black background — ensures theme light skin doesn't bleed through */
.elementor-posts .elementor-post__card { background: #000 !important; overflow: hidden !important; }

/* Hide avatar (causes white band between image and text) and category badge */
.elementor-posts .elementor-post__badge  { display: none !important; }


/* ===================================================================
   9. BLOG POST SINGLE (content area)
   =================================================================== */
.elementor-widget-theme-post-content p, .entry-content p { font-family: "Montserrat", sans-serif !important; font-weight: 400 !important; font-size: 16px !important; line-height: 1.65 !important; color: var(--apt-text) !important; margin-bottom: 1.2em !important; }
.elementor-widget-theme-post-content h2, .entry-content h2 { color: #fff !important; font-family: "Montserrat", sans-serif !important; font-weight: 800 !important; text-transform: uppercase !important; margin-top: 1.6em !important; margin-bottom: 0.6em !important; }
.elementor-widget-theme-post-content h3, .entry-content h3 { color: var(--apt-blue) !important; font-family: "Montserrat", sans-serif !important; font-weight: 700 !important; text-transform: uppercase !important; margin-top: 1.4em !important; margin-bottom: 0.5em !important; }
.entry-content blockquote { border-left: 4px solid var(--apt-blue) !important; padding-left: 20px !important; margin: 24px 0 !important; color: var(--apt-muted) !important; font-style: italic !important; }
.entry-content img, .elementor-widget-theme-post-content img { border-radius: 5px; max-width: 100%; height: auto; }
.elementor-widget-theme-post-featured-image img { border-radius: 5px; width: 100%; height: auto; }


/* ===================================================================
   10. HEADER NAVIGATION
   =================================================================== */
.elementor-location-header .elementor-nav-menu .elementor-item { color: #FFF !important; text-decoration: none !important; font-family: 'Montserrat', sans-serif !important; font-weight: 900 !important; text-transform: uppercase !important; letter-spacing: 0.02em !important; }
.elementor-location-header .elementor-nav-menu .elementor-item:hover,
.elementor-location-header .elementor-nav-menu .current-menu-item > .elementor-item { color: #87CEEB !important; }
.elementor-location-header .elementor-nav-menu a.elementor-item:hover { background: transparent !important; }

.elementor-location-header nav .menu-cta > a.elementor-item { display: inline-flex !important; align-items: center !important; justify-content: center !important; padding: var(--apt-btn-pad) !important; border: 2px solid var(--apt-btn-border) !important; border-radius: var(--apt-btn-radius) !important; background: var(--apt-btn-bg) !important; color: var(--apt-btn-text) !important; text-transform: uppercase !important; font-family: var(--apt-btn-font) !important; font-weight: var(--apt-btn-weight) !important; font-size: var(--apt-btn-size) !important; letter-spacing: 0.02em !important; text-decoration: none !important; box-shadow: none !important; transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease !important; transform: none !important; }
.elementor-location-header nav .menu-cta > a.elementor-item:hover { background: #000 !important; color: #FFF !important; border-color: #87CEEB !important; transform: none !important; }

.elementor-location-header .elementor-nav-menu .sub-arrow,
.elementor-location-header .eicon-caret-down { display: none !important; }

@media (min-width: 1025px) {
  .elementor-location-header .elementor-nav-menu .menu-item-has-children { position: static !important; }
  .elementor-location-header .elementor-nav-menu .menu-item-has-children > .elementor-nav-menu--dropdown { position: absolute !important; left: 0 !important; right: 0 !important; top: calc(100% + 10px) !important; width: 100% !important; margin: 0 !important; padding: 14px 24px !important; background: #666 !important; border: 0 !important; box-shadow: none !important; display: none; gap: 22px; justify-content: flex-start; align-items: center; z-index: 9999 !important; }
  .elementor-location-header .elementor-nav-menu .menu-item-has-children:hover > .elementor-nav-menu--dropdown { display: flex !important; }
  .elementor-location-header .elementor-nav-menu--dropdown .menu-item > a { display: inline-flex !important; align-items: center !important; gap: 10px !important; padding: 8px 10px !important; background: transparent !important; border: 0 !important; color: #FFF !important; font-family: "Montserrat", sans-serif !important; font-weight: 900 !important; font-size: 14px !important; text-transform: uppercase !important; letter-spacing: 0.02em; }
  .elementor-location-header .elementor-nav-menu--dropdown .menu-item > a:hover { color: #87CEEB !important; }
  .elementor-location-header .elementor-nav-menu .menu-item-has-children > .elementor-nav-menu--dropdown::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; pointer-events: auto; background: transparent; }
  .elementor-location-header .elementor-nav-menu .menu-item-has-children > .elementor-nav-menu--dropdown { transform: translateY(6px); }
}


/* ===================================================================
   11. LANGUAGE SWITCHER — GTranslate Flags
   =================================================================== */
.gtranslate_wrapper, #gt_float_wrapper { display: none !important; }

.apt-flag-toggle { display: inline-flex !important; align-items: center !important; gap: 12px !important; background: #222 !important; border-radius: 5px !important; padding: 0 14px !important; min-height: 48px !important; }
.apt-flag-btn { display: flex !important; align-items: center !important; justify-content: center !important; transition: transform 0.2s ease, opacity 0.2s ease !important; }
.apt-flag-btn img { width: 24px !important; height: auto !important; border-radius: 3px !important; display: block !important; }
.apt-flag-btn:hover { transform: translateY(-2px) !important; opacity: 0.8 !important; }
.apt-flag-divider { width: 1px !important; height: 20px !important; background: rgba(255,255,255,0.3) !important; }


/* ===================================================================
   12. CONTACT SLIDER
   =================================================================== */
.pc-contact-slider { --pc-icon-size: 260px; --pc-icon-gap: 24px; --pc-desc-gap: 0px; }
.pc-contact-slider .elementor-slides-wrapper { padding: 0 !important; }
.pc-contact-slider .swiper-slide-inner { padding: 0 !important; }
.pc-contact-slider .swiper-slide-inner, .pc-contact-slider .swiper-slide-inner * { box-sizing: border-box !important; }
.pc-contact-slider .elementor-slide-heading, .pc-contact-slider .elementor-slide-description, .pc-contact-slider .elementor-slide-button { font-family: "Montserrat", sans-serif !important; }
.pc-contact-slider .swiper-slide:before, .pc-contact-slider .swiper-slide:after, .pc-contact-slider .elementor-background-overlay { display: none !important; opacity: 0 !important; }
.pc-contact-slider .swiper-slide-inner { display: block !important; }
.pc-contact-slider .swiper-slide-contents { position: relative !important; z-index: 2 !important; width: 100% !important; max-width: 90% !important; margin: 0 auto !important; text-align: center !important; }
.pc-contact-slider .swiper-slide-bg { position: absolute !important; left: 50% !important; top: 45% !important; transform: translate(-50%,-50%) !important; width: var(--pc-icon-size) !important; height: var(--pc-icon-size) !important; background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important; opacity: 1 !important; pointer-events: none !important; z-index: 1 !important; }
.pc-contact-slider .elementor-slide-heading { margin: 0 !important; padding-top: 0 !important; padding-bottom: calc(var(--pc-icon-size) + var(--pc-icon-gap)) !important; font-size: 35px !important; font-weight: 900 !important; text-transform: uppercase !important; line-height: 1 !important; letter-spacing: 0.02em !important; }
.pc-contact-slider .elementor-slide-description { margin: 0 auto !important; max-width: 90% !important; font-size: 16px !important; font-weight: 500 !important; line-height: 1.45 !important; }
.pc-contact-slider .swiper-slide-inner .elementor-slide-description:not(:last-child), .pc-contact-slider .swiper-slide-inner .elementor-slide-heading:not(:last-child) { margin-bottom: 0 !important; }
.pc-contact-slider .elementor-swiper-button, .pc-contact-slider .elementor-swiper-button-prev, .pc-contact-slider .elementor-swiper-button-next { background: transparent !important; box-shadow: none !important; border: 0 !important; width: auto !important; height: auto !important; padding: 0 !important; }
.pc-contact-slider .elementor-swiper-button:before, .pc-contact-slider .elementor-swiper-button:after, .pc-contact-slider .elementor-swiper-button-prev:before, .pc-contact-slider .elementor-swiper-button-next:after { display: none !important; content: none !important; }
.elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child), .elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child) { margin-bottom: 100px !important; }


/* ===================================================================
   13. GLOBAL CURSOR
   =================================================================== */
a, a:hover, a:focus, a:visited, button, input[type="submit"], input[type="button"], input[type="reset"] { cursor: pointer !important; }
label, select, input[type="radio"], input[type="checkbox"] { cursor: pointer !important; }
.elementor-item, .menu-item { cursor: pointer !important; }
[role="button"], [role="link"], [onclick] { cursor: pointer !important; }
.elementor-location-header .elementor-nav-menu li,
.elementor-location-header .elementor-nav-menu a,
.elementor-location-header .elementor-nav-menu .elementor-item,
.elementor-location-header .menu-cta a { cursor: pointer !important; }


/* ===================================================================
   14. RESPONSIVE
   =================================================================== */
@media (max-width: 768px) {
  .pc-contact-slider { --pc-icon-size: 240px; --pc-icon-gap: 18px; }
  .pc-contact-slider .swiper-slide-contents { width: 100% !important; max-width: 100% !important; padding: 0 16px !important; }
  .pc-contact-slider .swiper-slide-bg { top: 46% !important; }
  .pc-contact-slider .elementor-slide-heading { font-size: 34px !important; }
  .pc-contact-slider .elementor-slide-description { max-width: 100% !important; }
}

@media (max-width: 767px) {
  p, .elementor-text-editor, .elementor-widget-text-editor p { font-size: 15px !important; }
  h1, .elementor-heading-title.elementor-size-xl { font-size: clamp(26px, 6vw, 42px) !important; }
  h2, .elementor-heading-title.elementor-size-large { font-size: clamp(20px, 5vw, 32px) !important; }
}


/* ===================================================================
   15. LANDING PAGE — Hero + Territory Cards
   =================================================================== */
body.elementor-page .apt-landing-wrap { min-height: 100vh; }
body.elementor-page.elementor-page-18 { background: #000 !important; }
body.elementor-page.elementor-page-18 #content { background: #000 !important; }

.apt-landing-wrap { background: #000; padding: 72px 18px 64px; }
.apt-landing { max-width: 1160px; margin: 0 auto; color: #fff; }

.apt-hero { text-align: center; margin: 0 0 44px 0; }
.apt-badges { display: flex; justify-content: center; gap: 5px; margin: 40px 0 24px 0; flex-wrap: wrap; }
.apt-badge { width: 240px; height: 240px; border-radius: 999px; overflow: hidden; border: 0; background: transparent; display: flex; align-items: center; justify-content: center; }
.apt-badge img { width: 100%; height: 100%; object-fit: contain; }

.apt-h1 { margin: 0 0 12px 0; font-family: "Montserrat", sans-serif; font-weight: 900; text-transform: uppercase; letter-spacing: .5px; line-height: 1; font-size: 60px; color: #fff; }
.apt-brandline { margin: 0 0 10px 0; font-family: "Montserrat", sans-serif; font-weight: 900; text-transform: uppercase; letter-spacing: 0.02em; line-height: 1; font-size: clamp(26px, 3vw, 44px); }
.apt-brandline .apt-brand-accent { color: #87CEEB; }
.apt-brandline .apt-brand-main { color: #fff; }
.apt-brandline span { line-height: 1.6 !important; display: inline-block; }

.apt-site { margin: 0; font-family: "Montserrat", sans-serif; font-weight: 700; letter-spacing: 0.02em; font-size: clamp(14px, 1.2vw, 18px); opacity: 0.95; }
.apt-site a { color: inherit; text-decoration: none; }
.apt-site a:hover { text-decoration: underline; text-underline-offset: 3px; }

.apt-grid { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); }

.apt-card { position: relative; background: #000; border: 1px solid rgba(255,255,255,0.38); border-radius: 22px; overflow: hidden; padding: 18px; min-height: 220px; display: flex; flex-direction: column; justify-content: flex-end; }
.apt-card-bg { position: absolute; inset: 0; pointer-events: none; display: flex; align-items: center; justify-content: center; z-index: 0; opacity: 1 !important; padding: clamp(22px, 2.6vw, 44px); box-sizing: border-box; }
.apt-map { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; object-position: center center; padding: 0; opacity: 1 !important; display: block; }
#mapthai { transform: rotate(90deg); transform-origin: center; }

.apt-card-badge { position: absolute; top: 14px; left: 50%; transform: translateX(-50%); width: 44px; height: 44px; border-radius: 999px; overflow: hidden; border: 0; background: rgba(0,0,0,0.35); display: flex; align-items: center; justify-content: center; z-index: 3; }
.apt-card-badge img { width: 100%; height: 100%; object-fit: contain; }

.apt-card-body { position: relative; z-index: 2; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; width: 100%; gap: 6px; }
.apt-card-body .apt-live-title, .apt-card-body .apt-open-title { width: 100%; }
.apt-card-body .apt-bottom-slot { width: 100%; }

.apt-live-title, .apt-open-title { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0; min-height: 10px; width: 100%; }
.apt-bottom-slot { margin-top: 10px; min-height: 22px; display: flex; align-items: center; justify-content: center; width: 100%; }

.apt-flag { width: 26px; height: 18px; border-radius: 0; overflow: hidden; border: 0; flex: 0 0 auto; }
.apt-flag img { width: 100%; height: 100%; object-fit: cover; }

.apt-live-name, .apt-open-name, p.apt-live-name, p.apt-open-name { font-family: "Montserrat", sans-serif !important; font-weight: 900 !important; text-transform: uppercase !important; letter-spacing: 0.02em !important; font-size: 18px !important; color: #fff !important; line-height: 1 !important; margin: 0 !important; display: inline-block !important; }

.apt-live-meta { display: flex !important; justify-content: center !important; gap: 14px !important; margin: 10px 0 0 0 !important; padding: 0 !important; min-height: 22px !important; align-items: center !important; flex-wrap: nowrap !important; width: 100% !important; }
.apt-live-meta a { display: inline-flex; align-items: center; gap: 6px; font-family: "Montserrat", sans-serif; font-weight: 600; font-size: 14px; color: #fff; text-decoration: none; opacity: 0.9; white-space: nowrap; max-width: 48%; overflow: hidden; text-overflow: ellipsis; }
.apt-live-meta a span { white-space: nowrap; }
.apt-live-meta a:hover { text-decoration: underline; text-underline-offset: 3px; opacity: 1; }
.apt-meta-icon { width: 14px; height: 14px; display: inline-block; }
.apt-meta-icon img { width: 14px; height: 14px; object-fit: contain; display: block; }

.apt-open-label, p.apt-open-label { margin: 0 !important; font-family: "Montserrat", sans-serif !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.08em !important; font-size: 11px !important; color: rgba(255,255,255,0.85) !important; line-height: 1 !important; padding-bottom: 18px !important; text-align: center !important; width: 100% !important; }
.apt-muted { opacity: 0.8; min-height: 22px; display: flex; align-items: center; justify-content: center; margin: 10px 0 0 0; }

.apt-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 6px 12px; margin: 20px 0 0 0 !important; width: auto; max-width: 180px; border-radius: 5px; border: 1px solid rgba(255,255,255,0.45); background: #87CEEB; color: #000; font-family: "Montserrat", sans-serif; font-weight: 900; text-transform: uppercase; letter-spacing: 0.02em; font-size: 12px; text-decoration: none; }
.apt-btn:hover, .apt-btn:focus { background: #000; color: #fff; border-color: #87CEEB; outline: none; }

@media (max-width: 1100px) { .apt-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) {
  .apt-landing-wrap { padding: 52px 14px 48px; }
  .apt-grid { grid-template-columns: 1fr; }
  .apt-card { min-height: 160px; }
  .apt-badges { flex-wrap: nowrap; gap: 2px; width: 85%; margin-left: auto; margin-right: auto; }
  .apt-badge { width: clamp(60px, 26vw, 120px); height: clamp(60px, 26vw, 120px); flex-shrink: 0; }
  .apt-h1 { font-size: clamp(28px, 6vw, 48px) !important; }
}


/* ===================================================================
   16. POPUP FORM
   =================================================================== */
.apt-popup .elementor-popup-modal .dialog-widget-content { background: #000 !important; border: 1px solid rgba(255,255,255,0.65) !important; border-radius: 12px !important; }
.apt-popup .elementor-popup-modal .dialog-close-button { color: #fff !important; }
.apt-popup .elementor-popup-modal .dialog-close-button svg { fill: #fff !important; }
.apt-popup .elementor-field-group { margin-bottom: 14px !important; }
.apt-popup .elementor-field-label { color: #fff !important; font-family: "Montserrat", sans-serif !important; font-weight: 900 !important; text-transform: none !important; letter-spacing: 0.01em !important; margin-bottom: 8px !important; }
.apt-popup .elementor-field-textual { background: #fff !important; color: #000 !important; border: 1px solid rgba(255,255,255,0.85) !important; border-radius: 5px !important; font-family: "Montserrat", sans-serif !important; font-weight: 400 !important; font-size: 14px !important; padding: 12px 14px !important; min-height: 48px !important; box-shadow: none !important; }
.apt-popup textarea.elementor-field-textual { min-height: 120px !important; padding: 14px !important; }
.apt-popup .elementor-field-textual::placeholder { color: rgba(0,0,0,0.55) !important; opacity: 1 !important; }
.apt-popup .elementor-field-textual:focus { outline: none !important; border-color: #87CEEB !important; box-shadow: 0 0 0 3px rgba(135,206,235,0.25) !important; }
.apt-popup .elementor-button { border-radius: 5px !important; }

#elementor-popup-modal-32 .dialog-widget-content { background: #000 !important; border: 1px solid rgba(255,255,255,0.65) !important; border-radius: 12px !important; }
#elementor-popup-modal-32 .dialog-close-button { color: #fff !important; }
#elementor-popup-modal-32 .dialog-close-button svg { fill: #fff !important; }
#elementor-popup-modal-32 .elementor-field-group { margin-bottom: 14px !important; }
#elementor-popup-modal-32 .elementor-field-label { color: #fff !important; font-family: "Montserrat", sans-serif !important; font-weight: 900 !important; margin-bottom: 8px !important; }
#elementor-popup-modal-32 .elementor-field-textual { background: #fff !important; color: #000 !important; border: 1px solid rgba(255,255,255,0.85) !important; border-radius: 5px !important; font-family: "Montserrat", sans-serif !important; font-weight: 400 !important; font-size: 14px !important; padding: 12px 14px !important; min-height: 48px !important; box-shadow: none !important; }
#elementor-popup-modal-32 textarea.elementor-field-textual { min-height: 120px !important; padding: 14px !important; }
#elementor-popup-modal-32 .elementor-field-textual::placeholder { color: rgba(0,0,0,0.55) !important; opacity: 1 !important; }
#elementor-popup-modal-32 .elementor-field-textual:focus { outline: none !important; border-color: #87CEEB !important; box-shadow: 0 0 0 3px rgba(135,206,235,0.25) !important; }
#elementor-popup-modal-32 .elementor-button { background: #87CEEB !important; color: #000 !important; border: 1px solid rgba(255,255,255,0.45) !important; border-radius: 5px !important; font-family: "Montserrat", sans-serif !important; font-weight: 900 !important; text-transform: uppercase !important; letter-spacing: 0.02em !important; padding: 12px 18px !important; min-height: 48px !important; }
#elementor-popup-modal-32 .elementor-button:hover, #elementor-popup-modal-32 .elementor-button:focus { background: #000 !important; color: #fff !important; border-color: #87CEEB !important; outline: none !important; }


/* ===================================================================
   17. GTRANSLATE — Float Switcher Skin
   =================================================================== */
.gt_float_switcher { font-family: "Montserrat", sans-serif !important; background: transparent !important; box-shadow: none !important; border: 0 !important; border-radius: 5px !important; }
.gt_float_switcher .gt-current-lang { display: inline-flex !important; align-items: center !important; gap: 8px !important; background: #222 !important; color: #fff !important; border: 0px solid rgba(255,255,255,0.65) !important; border-radius: 0 !important; padding: 10px 12px !important; min-height: 48px !important; box-shadow: none !important; }
.gt_float_switcher .gt-selected { position: relative !important; z-index: 888 !important; background: #222 !important; cursor: pointer !important; text-transform: uppercase !important; overflow: hidden !important; text-align: right !important; border-radius: 0 !important; box-shadow: none !important; border: 0 !important; }
.gt_float_switcher.notranslate { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
#gt_float_wrapper { background: transparent !important; }
.gt_float_switcher .gt-current-lang img { width: 18px !important; height: 18px !important; border-radius: 3px !important; }
.gt_float_switcher .gt-current-lang .gt-lang-code { color: #fff !important; font-weight: 900 !important; letter-spacing: 0.02em !important; text-transform: uppercase !important; font-size: 12px !important; line-height: 1 !important; }
.gt_float_switcher .gt_float_switcher-arrow { border-top-color: #fff !important; opacity: 0.9 !important; }
.gt_float_switcher .gt-current-lang:hover { border-color: #87CEEB !important; }
.gt_float_switcher .gt_options { background: #000 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; outline: 0 !important; max-height: 60vh !important; overflow: auto !important; }
.gt_float_switcher .gt_options.gt-open { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.gt_float_switcher .gt_options a { display: flex !important; align-items: center !important; gap: 10px !important; padding: 12px 14px !important; border-radius: 0 !important; color: #fff !important; text-decoration: none !important; font-family: "Montserrat", sans-serif !important; font-weight: 800 !important; font-size: 12px !important; letter-spacing: 0.02em !important; text-transform: uppercase !important; width: 100% !important; border: 0 !important; }
.gt_float_switcher .gt_options a img { width: 18px !important; height: 18px !important; border-radius: 3px !important; }
.gt_float_switcher .gt_options a:hover { background: rgba(135,206,235,0.12) !important; color: #87CEEB !important; }
.gt_float_switcher .gt_options a.gt-current { background: rgba(135,206,235,0.12) !important; border: 0 !important; color: #87CEEB !important; }
.gt_float_switcher .gt_options::-webkit-scrollbar { width: 10px !important; }
.gt_float_switcher .gt_options::-webkit-scrollbar-track { background: #000 !important; }
.gt_float_switcher .gt_options::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.25) !important; border-radius: 5px !important; }
.gt_float_switcher .gt_options::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.35) !important; }

.gtranslate_wrapper { font-family: "Montserrat", sans-serif !important; }
.gtranslate_wrapper .goog-te-gadget { color: #fff !important; font-family: "Montserrat", sans-serif !important; }
.gtranslate_wrapper .goog-te-gadget a { color: #87CEEB !important; text-decoration: none !important; }
.gtranslate_wrapper .goog-te-gadget a:hover { text-decoration: underline !important; text-underline-offset: 3px !important; }
.gtranslate_wrapper select.goog-te-combo, #google_translate_element2 select.goog-te-combo, select.goog-te-combo { -webkit-appearance: none !important; -moz-appearance: none !important; appearance: none !important; background: #222 !important; color: #fff !important; border: 0px solid rgba(255,255,255,0.65) !important; border-radius: 5px !important; font-family: "Montserrat", sans-serif !important; font-weight: 700 !important; letter-spacing: 0.02em !important; text-transform: uppercase !important; font-size: 12px !important; min-height: 48px !important; height: 48px !important; line-height: 46px !important; padding: 0 42px 0 14px !important; box-shadow: none !important; }
.gtranslate_wrapper select.goog-te-combo:focus, select.goog-te-combo:focus { outline: none !important; border-color: #87CEEB !important; box-shadow: 0 0 0 3px rgba(135,206,235,0.25) !important; }
.gtranslate_wrapper select.goog-te-combo:hover, select.goog-te-combo:hover { border-color: #87CEEB !important; }


/* ===================================================================
   18. MISSION STATEMENT PAGE
   =================================================================== */
.apt-mission-wrap { background: #000; padding: 80px 18px; min-height: 100vh; }
.apt-mission-container { max-width: 1240px; margin: 0 auto; color: #fff; }
.apt-page-title { text-align: center; margin: 0 0 60px 0; font-family: "Montserrat", sans-serif; font-weight: 900; text-transform: uppercase; letter-spacing: 0.02em; font-size: clamp(32px, 4vw, 48px); color: #87CEEB; }
.apt-mission-row { display: flex; align-items: center; gap: 60px; margin-bottom: 80px; }
.apt-mission-row:nth-child(even) { flex-direction: row-reverse; }
.apt-mission-row:last-child { margin-bottom: 0; }
.apt-mission-image { flex: 1; border-radius: 22px; overflow: hidden; border: 1px solid rgba(255,255,255,0.2); display: flex; }
.apt-mission-image img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; display: block; }
.apt-mission-content { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.apt-mission-h2 { font-family: "Montserrat", sans-serif; font-weight: 800; text-transform: uppercase; letter-spacing: 0.02em; font-size: clamp(20px, 2.5vw, 28px); color: #fff; margin: 0 0 20px 0; line-height: 1.2; }
.apt-mission-p { font-family: "Montserrat", sans-serif; font-weight: 400; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,0.85); margin: 0; }

@media (max-width: 991px) { .apt-mission-row { gap: 40px; margin-bottom: 60px; } }
@media (max-width: 767px) {
  .apt-mission-wrap { padding: 52px 14px 48px; }
  .apt-mission-row, .apt-mission-row:nth-child(even) { flex-direction: column; gap: 24px; text-align: center; }
  .apt-mission-image img { aspect-ratio: 16/9; }
}