/* Wizard bridge: targeted overrides so Elementor wrappers match the original design. */

/* Keep reveal-animated elements visible inside the Elementor editor */
body.elementor-editor-active .reveal{opacity:1 !important;transform:none !important;}

/* Hello Elementor's theme.css constrains .site-header/.site-footer via :not() selectors (specificity 0,2,0) that beat the original styles. Restore the original full-bleed layout. */
.site-header { max-width: calc(var(--max) + 48px) !important; padding-top: 4px !important; padding-bottom: 4px !important; }
.site-footer { max-width: none !important; }

/* Logo: larger */
.brand { width: 108px !important; }

/* Elementor containers default to column; restore the original row layout for button groups. */
.hero-actions{flex-direction:row !important;flex-wrap:wrap;}

/* Elementor flex containers do not collapse margins like the original block layout; trim the duplicated spacing below section headings to match the original. */
.country-programs .program-pill-grid{margin-top:0;}
.country-process .country-step-grid{margin-top:0;}
.country-visa-card p:not(.eyebrow){margin-bottom:0;}

/* Boxed sections use .section max-width (--max); Elementor's container max-width (specificity 0,2,0) overrides it, widening their content. Restore the original boxed width. */
.country-intro, .country-requirements, .country-process { max-width: var(--max) !important; margin-left: auto !important; margin-right: auto !important; }

/* Grid layouts: styles.css applies display:grid with 2-column tracks to .about-grid, .services-layout,
   .contact — but in Elementor those are e-con wrappers with a single .e-con-inner child, so the outer
   grid puts .e-con-inner in column 1 only. Reset outer containers to block so .e-con-inner fills 100%;
   then apply the 2-column grid directly on .e-con-inner instead. */
.about-grid { display: block !important; }
.services-layout { display: block !important; }
.contact {
  display: block !important;
  background:
    radial-gradient(circle at 12% 12%, rgba(255, 255, 255, 0.9) 0 10%, transparent 30%),
    radial-gradient(circle at 78% 22%, rgba(251, 176, 59, 0.28) 0 8%, transparent 32%),
    radial-gradient(circle at 58% 72%, rgba(0, 74, 173, 0.36) 0 14%, transparent 42%),
    linear-gradient(135deg, #f9fcff 0%, #e4f3ff 28%, #b8ddff 57%, #f5e0b1 100%) !important;
  overflow: hidden !important;
}

.about-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.92fr);
  gap: 42px;
  align-items: stretch;
}
.services-layout > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  gap: 42px;
  align-items: stretch;
}
.contact > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1.05fr);
  gap: 48px;
  align-items: start;
}
@media (max-width: 1040px) {
  .about-grid > .e-con-inner,
  .services-layout > .e-con-inner,
  .contact > .e-con-inner {
    grid-template-columns: 1fr;
  }
}

/* ─── About section alignment ───────────────────────────────────────────────
   .about-grid.e-con and .about-content.e-con each carry Elementor's default
   10px horizontal padding, pushing the text 20px right of the section heading.
   Zero out horizontal padding on those two containers so content aligns to
   the same left edge as the heading widget above the grid. */
.about-grid,
.about-content {
  padding-left:  0 !important;
  padding-right: 0 !important;
}

/* ─── About photo: fill the full column height ───────────────────────────────
   The image widget inside .about-photo only renders at its intrinsic height
   (~330px) while the column stretches to match the text column (~709px).
   Cascade height:100% through every wrapper so the <img> fills the box,
   then use object-fit:cover so it crops cleanly without distortion. */
.about-photo,
.about-photo > .e-con-inner,
.about-photo .elementor-widget,
.about-photo .elementor-widget-container {
  height: 100%;
  padding: 0 !important;
}
.about-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 8px;
}

/* ─── Content width: 1240px ───────────────────────────────────────────────
   Raise the design token and Elementor's hard-coded container cap to 1240px. */
:root { --max: 1240px; }
.e-con > .e-con-inner { max-width: 1240px !important; }

/* --- Hero: buttons on one row, tighter gap to stat badges ------------- */
/* Elementor makes the inner flex container column by default; switch to row */
.hero-actions > .e-con-inner {
  flex-direction: row !important;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
/* The parent e-con-inner has gap:20px between all hero items; pull the stat
   badges widget up so the visual gap between the button row and the badges
   row is ~8px instead of 20px. */
.elementor-widget:has(.hero-badges) { margin-top: -12px !important; }

/* --- Visit-visa section: 2-column grid fix (same e-con-inner pattern) --- */
.visit-visa-inner { display: block !important; }
.visit-visa-inner > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.78fr);
  gap: 42px;
  align-items: start;
}
@media (max-width: 1040px) {
  .visit-visa-inner > .e-con-inner { grid-template-columns: 1fr; }
}

/* --- About page: 2-col grid fixes ------------------------------------ */
.about-page-hero-inner,
.about-story-grid,
.about-mission-card { display: block !important; }

.about-page-hero-inner > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1.05fr);
  gap: 54px;
  align-items: center;
}
.about-story-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
  gap: 46px;
  align-items: start;
}
.about-mission-card > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
  gap: 40px;
  align-items: center;
}
@media (max-width: 1040px) {
  .about-page-hero-inner > .e-con-inner,
  .about-story-grid > .e-con-inner,
  .about-mission-card > .e-con-inner { grid-template-columns: 1fr; }
}

/* About hero photo: fill 500px column height */
.about-page-hero-photo { padding: 0 !important; }
.about-page-hero-photo > .e-con-inner,
.about-page-hero-photo .elementor-widget,
.about-page-hero-photo .elementor-widget-container { height: 100% !important; padding: 0 !important; }
.about-page-hero-photo img { width:100%; height:100%; object-fit:cover; display:block; }
/* --- Typography: restore weights/sizes removed by Elementor reset.css ---
   reset.css forces h1-h6 { font-weight:500 } and h2 { font-size:2rem }.
   wizard_section_heading renders p.eyebrow + h2 directly inside
   .elementor-widget-container (no .section-heading wrapper), so styles.css
   rules targeting .section-heading h2 never fire. Apply them here. */

.elementor-widget-wizard_section_heading h2 {
  font-size: clamp(2rem, 3vw, 2.6rem) !important;
  font-weight: 900 !important;
  line-height: 1.04 !important;
  letter-spacing: 0 !important;
  color: var(--ink) !important;
}

/* About page hero h1 rendered by wizard_section_heading (tag=h1) */
.elementor-widget-wizard_section_heading h1,
.about-page-copy h1 { font-weight: 700 !important; }

/* Mission + CTA h2 live inside text-editor widgets */
.about-mission-card h2,
.about-cta h2 {
  font-size: clamp(2rem, 3vw, 2.6rem) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
}

/* Value cards and process steps */
.about-value-card h3,
.about-process-list h3 { font-weight: 700 !important; }
/* Service page e-con-inner grid fixes */
.service-page-hero-inner { display: block !important; }
.service-page-hero-inner > .e-con-inner { display: grid !important; grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.72fr); gap: 54px; align-items: center; }
.service-split { display: block !important; }
.service-split > .e-con-inner { display: grid !important; grid-template-columns: 0.78fr 1.22fr; gap: 48px; align-items: start; }
.service-included-layout { display: block !important; }
.service-included-layout > .e-con-inner { display: grid !important; grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr); gap: 28px; align-items: stretch; }
@media (max-width: 1040px) {
  .service-page-hero-inner > .e-con-inner,
  .service-split > .e-con-inner,
  .service-included-layout > .e-con-inner { grid-template-columns: 1fr; }
}
/* Service page typography fixes */
.service-feature-card h3, .service-step-grid h3 { font-weight: 700 !important; }
.service-included .elementor-widget-wizard_section_heading h2,
.service-included .elementor-widget-wizard_section_heading p:not(.eyebrow) { color: #f6fbff !important; }
.service-cta h2 { font-weight: 700 !important; }

/* ─── Navigation: hamburger button ──────────────────────────────────────────
   Hello Elementor button resets turn the hamburger pink/red on hover/focus.
   Restore theme colours at all interaction states. */
.menu-toggle,
.menu-toggle:hover,
.menu-toggle:focus,
.menu-toggle:active,
.menu-toggle:focus-visible {
  background: #ffffff !important;
  border-color: #d4dde8 !important;
  color: #004aad !important;
  box-shadow: none !important;
  outline: none !important;
}
.menu-toggle span:not(.sr-only) {
  background: #004aad !important;
}

@media (max-width: 1040px) {
  .site-header { overflow: visible !important; }
  /* Tighter mobile menu item spacing */
  .site-nav a { padding: 6px 0 !important; }

  /* Hidden by default on mobile; shown when parent gets .is-open via JS */
  .site-nav .nav-dropdown-menu {
    position: static !important;
    display: none !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    min-width: 0 !important;
    width: 100% !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
  }
  .site-nav .nav-dropdown.is-open .nav-dropdown-menu {
    display: block !important;
    padding: 4px 0 4px 12px !important;
  }
  .site-nav .nav-dropdown-menu a {
    display: block !important;
    padding: 5px 10px !important;
    background: transparent !important;
    transform: none !important;
    transition: color 0.15s ease !important;
  }
  .site-nav .nav-dropdown-menu a:hover {
    background: transparent !important;
    color: #004aad !important;
    transform: none !important;
  }
}
/* ─── Blogs page: hero 2-col + full-bleed sections ────────────────────────────── */
/* Ensure Elementor does not override the overflow/isolation needed for ::after circle */
.blogs-page-hero {
  overflow: hidden !important;
  isolation: isolate !important;
}
/* Zero out styles.css padding on the outer .e-con so it doesn't stack
   with bridge.css padding on the inner .e-con-inner */
.blogs-page-hero-inner { display: block !important; padding: 0 !important; }
.blogs-page-hero-inner > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.72fr);
  gap: 54px;
  align-items: center;
  padding: 96px 0 80px;
}
/* Topic panel: size to content, don't stretch to fill grid row height */
.blogs-topic-panel {
  align-self: start !important;
  height: auto !important;
}
.blogs-topic-panel > .e-con-inner { height: auto !important; }

/* Tablet */
@media (max-width: 1040px) {
  .blogs-page-hero-inner > .e-con-inner {
    grid-template-columns: 1fr;
    padding: 80px 0 56px;
    gap: 32px;
  }
  .blogs-topic-panel { max-width: 520px !important; }
}
/* Mobile */
@media (max-width: 720px) {
  .blogs-page-hero-inner > .e-con-inner {
    padding: 64px 0 48px;
    gap: 24px;
  }
  .blogs-topic-panel { max-width: 100% !important; }
}

/* Blogs topic panel (right side of hero) */
.blogs-topic-panel .elementor-widget-container { display: flex; flex-direction: column; gap: 0; }
.blogs-topic-panel .elementor-widget-text-editor > .elementor-widget-container { display: contents; }
/* Topic panel label: stored as <p class="blogs-topic-label"> so wpautop keeps it
   separate from the <strong>. Styles.css targets .blogs-topic-panel > span which
   can't reach through Elementor wrappers — apply equivalent rules here. */
.blogs-topic-label {
  color: var(--gold) !important;
  font-size: 0.82rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  margin: 0 0 10px !important;
}
/* Remove default paragraph margins inside the panel so spacing is controlled by the elements */
.blogs-topic-panel p { margin-top: 0 !important; margin-bottom: 0 !important; }
.blogs-topic-panel p + p { margin-top: 10px !important; }

/* Blog category strip: full-bleed row, overlaps hero by 32px */
.blog-category-strip {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 10px;
  align-items: center;
  width: min(1240px, calc(100% - 52px));
  margin: -32px auto 0 !important;
  position: relative;
  z-index: 2;
}
/* Prevent word-break inside category pills */
.blog-category-strip span { white-space: nowrap !important; }

/* Tablet/laptop: horizontal breathing room */
@media (max-width: 1280px) {
  .blog-category-strip { width: calc(100% - 64px) !important; }
}
/* Mobile: smaller font, equal side padding on strip */
@media (max-width: 720px) {
  .blog-category-strip {
    width: calc(100% - 36px) !important;
    margin: -20px auto 0 !important;
    padding: 14px 16px !important;
    gap: 8px;
  }
  .blog-category-strip span {
    font-size: 0.8rem !important;
    padding: 8px 10px !important;
  }
}
/* Collapse every wrapper — including the <p> wpautop adds — so spans
   are direct flex children of the strip and flex-wrap actually works */
.blog-category-strip > .e-con-inner { display: contents !important; }
.blog-category-strip .elementor-widget { display: contents !important; }
.blog-category-strip .elementor-widget-container { display: contents !important; }
.blog-category-strip .elementor-text-editor { display: contents !important; }
.blog-category-strip p { display: contents !important; }

/* ─── About page: full-bleed sections + value/process grids ───────────────── */
.about-values, .about-mission, .about-cta {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* about-cta background image (path relative to child theme directory) */
.about-cta {
  background:
    linear-gradient(90deg, rgba(3,14,31,0.88) 0%, rgba(3,14,31,0.58) 42%, rgba(3,14,31,0.12) 100%),
    url("assets/hero-flight-skyline.png") center / cover no-repeat !important;
  padding-top: 86px !important;
  padding-bottom: 86px !important;
}
.about-cta-inner { text-align: left; }

/* about-values section-heading + value grid centered */
.about-values > .e-con-inner {
  max-width: var(--max);
  margin: 0 auto;
}

/* about-mission card: 2-col grid (mission-left + mission-right) */
.about-mission-card { display: block !important; }
.about-mission-card > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
  gap: 40px;
  align-items: center;
  max-width: var(--max);
  margin: 0 auto;
  padding: 56px 24px;
  border-radius: 8px;
}
@media (max-width: 1040px) {
  .about-mission-card > .e-con-inner { grid-template-columns: 1fr; padding: 28px; }
}

/* about-cta-inner layout */
.about-cta-inner { display: block !important; }
.about-cta-inner > .e-con-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 24px;
}

/* Mission heading + text colors via Elementor widget context */
.about-mission-card .elementor-widget-wizard_section_heading h2,
.about-mission-card .elementor-widget-wizard_section_heading .eyebrow { color: #ffffff !important; }
.about-mission-card .elementor-widget-text-editor p { color: rgba(255,255,255,0.78) !important; }
.about-cta-inner .elementor-widget-wizard_section_heading h2 { color: #ffffff !important; font-size: clamp(2rem,3vw,2.6rem) !important; }
.about-cta-inner .elementor-widget-text-editor p { color: rgba(255,255,255,0.8) !important; font-size: 1.08rem !important; }

/* ── Trust strip ─────────────────────────────────────────── */
.trust-strip {
  background: var(--blue) !important;
  color: #ffffff !important;
  position: relative !important;
  z-index: 3 !important;
  margin-top: -20px !important;
  padding: 0 !important;
  max-width: var(--max) !important;
}
.trust-strip > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  padding: 18px 24px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.trust-strip .elementor-widget { display: contents !important; }
.trust-strip .elementor-widget-container { display: contents !important; }
.trust-strip-label { margin: 0 !important; font-weight: 850 !important; }
.trust-strip-pills {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  justify-content: flex-end !important;
}
.trust-strip-pills span {
  padding: 7px 11px !important;
  color: #07101f !important;
  background: var(--gold) !important;
  border-radius: 6px !important;
  font-size: 0.78rem !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}
@media (max-width: 600px) {
  .trust-strip > .e-con-inner {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
  }
  .trust-strip-pills { justify-content: flex-start !important; }
}
/* ── Reviews page layout ──────────────────────────────────────────────── */
.reviews-page-hero { display: block !important; }
.reviews-page-hero > .e-con-inner { padding: 0 !important; }
.reviews-page-hero-inner { display: block !important; padding: 0 !important; min-height: 0 !important; }
.reviews-page-hero-inner > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.72fr) !important;
  align-items: center !important;
  gap: 54px !important;
  padding: 96px 0 80px !important;
  width: min(1210px, calc(100% - 52px)) !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}
.reviews-score-card .elementor-widget-container > span {
  display: block !important;
  color: var(--gold) !important;
  font-size: 0.82rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}
.review-highlights { display: block !important; }
.review-highlights > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  width: min(1210px, calc(100% - 52px)) !important;
  margin: -58px auto 0 !important;
  position: relative !important;
  z-index: 2 !important;
  padding: 0 !important;
}
.review-highlights .elementor-widget { display: contents !important; }
.review-highlights .elementor-widget-container { display: contents !important; }
.reviews-page-section { display: block !important; }
.reviews-page-grid { display: block !important; }
.reviews-page-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
  max-width: var(--max) !important;
  margin: 0 auto !important;
}
.reviews-page-grid .elementor-widget { display: contents !important; }
.reviews-page-grid .elementor-widget-container { display: contents !important; }
.review-category-grid { display: block !important; }
.review-category-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
  max-width: var(--max) !important;
  margin: 0 auto !important;
}
.review-category-grid .elementor-widget { display: contents !important; }
.review-category-grid .elementor-widget-container { display: contents !important; }
.reviews-cta { display: block !important; }
.reviews-cta-inner { display: block !important; }

/* ── Country card hover text fix (global a:hover overrides white) ─────── */
a.country-card:hover { color: #ffffff !important; }
a.country-card:hover small { color: rgba(255,255,255,0.72) !important; }

/* ── Dark-section text colour fixes ─────────────────────── */

/* Countries (homepage) — background: #07101f */
.countries h2,
.countries .section-heading p { color: #ffffff !important; }
.countries .eyebrow { color: var(--gold) !important; }

/* Visit Visa (homepage) — dark bg image */
.visit-visa h2 { color: #ffffff !important; }
.visit-visa .eyebrow { color: var(--gold) !important; }
.visit-visa-copy p:not(.eyebrow) { color: rgba(255,255,255,0.82) !important; }

/* Country Programs (country pages) — background: #061021 */
.country-programs .section-heading h2,
.country-programs .section-heading p { color: #f6fbff !important; }
.country-programs .eyebrow { color: var(--gold) !important; }

/* Service Included (service pages) — background: #061021 */
.service-included .section-heading h2,
.service-included .section-heading p { color: #f6fbff !important; }
.service-included .eyebrow { color: var(--gold) !important; }

/* Review Categories (reviews page) — background: #061021 */
.review-categories .section-heading h2,
.review-categories .section-heading p,
.review-categories h2,
.review-categories > .e-con-inner > .elementor-widget p:not(.eyebrow) { color: #ffffff !important; }
.review-categories .eyebrow { color: var(--gold) !important; }
/* ── Homepage hero: reduce height / padding ────────────────────────────────── */
.hero.hero-flight { min-height: 480px !important; }
/* Remove outer-inner inflation - padding goes inside the hero-inner content layer */
.hero.hero-flight > .e-con-inner { padding: 0 !important; }
/* styles.css sets min-height:calc(100vh-58px) on .hero-inner - override so hero shrinks */
.hero.hero-flight .hero-inner { min-height: 0 !important; padding: 0 !important; }
/* Put breathing room on the innermost content wrapper */
.hero.hero-flight .hero-inner > .e-con-inner {
  padding-top: 52px !important;
  padding-bottom: 56px !important;
}

/* ── Contact page layout ─────────────────────────────────────────────────── */
.contact-page-hero { display: block !important; overflow: hidden !important; }
.contact-page-hero > .e-con-inner { padding: 0 !important; }
.contact-page-hero-inner { display: block !important; padding: 0 !important; min-height: 0 !important; }
.contact-page-hero-inner > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 420px) !important;
  align-items: center !important;
  gap: 60px !important;
  padding: 126px 0 88px !important;
  min-height: 620px !important;
  width: min(1210px, calc(100% - 52px)) !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}
.contact-page-hero .elementor-widget { display: contents !important; }
.contact-page-hero .elementor-widget-container { display: contents !important; }

/* contact-main: full-bleed with gradient bg, zero .e-con-inner padding */
.contact-page-main {
  display: block !important;
  position: relative !important;
  overflow: hidden !important;
  max-width: none !important;
  background:
    radial-gradient(circle at 86% 82%, rgba(251, 176, 59, 0.22) 0 8%, transparent 30%),
    radial-gradient(circle at 14% 28%, rgba(0, 74, 173, 0.18) 0 12%, transparent 38%),
    linear-gradient(135deg, #f8fbff 0%, #eef7ff 45%, #d7ecff 100%) !important;
}
.contact-page-main > .e-con-inner { padding: 0 !important; }

/* contact grid: info list (html widget) left + form (pro form widget) right */
.contact-page-grid { display: block !important; }
.contact-page-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(280px, 0.92fr) minmax(340px, 1.08fr) !important;
  align-items: start !important;
  gap: 52px !important;
  padding: 0 !important;
  margin-top: 36px !important;
}
/* Only collapse the HTML widget (info list), not the form widget */
.contact-page-grid > .e-con-inner > .elementor-widget-html { display: contents !important; }
.contact-page-grid > .e-con-inner > .elementor-widget-html > .elementor-widget-container { display: contents !important; }

/* contact location band */
.contact-location-band {
  display: block !important;
  background:
    radial-gradient(circle at 12% 0%, rgba(255, 255, 255, 0.14) 0 8%, transparent 32%),
    linear-gradient(135deg, #06192f 0%, #004aad 100%) !important;
}
.contact-location-band > .e-con-inner { padding: 0 !important; }
.contact-location-inner { display: block !important; }
.contact-location-inner > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 34px !important;
  max-width: var(--max) !important;
  margin: 0 auto !important;
  padding: 82px 24px !important;
}

/* Elementor Pro Form visual treatment: target via grid container (css_classes not applied to Pro form widget) */
.contact-page-grid .elementor-widget-form { box-shadow: 0 28px 70px rgba(0,74,173,0.13) !important; background: rgba(255,255,255,0.64) !important; backdrop-filter: blur(18px) !important; border-radius: 8px !important; padding: 28px !important; border: 1px solid rgba(0,74,173,0.18) !important; }
.contact-page-grid .elementor-form-fields-wrapper { display: flex !important; flex-direction: column !important; gap: 10px !important; padding: 0 !important; }
.contact-page-grid .elementor-field-group { display: flex !important; flex-direction: column !important; gap: 8px !important; width: 100% !important; padding: 0 !important; }
.contact-page-grid .elementor-field-label { font-size: 1rem !important; font-weight: 800 !important; color: #10233d !important; text-align: left !important; display: block !important; width: 100% !important; }
.contact-page-grid .elementor-field-type-submit .elementor-field-label { display: none !important; }
.contact-page-grid .elementor-field { width: 100% !important; border: 1px solid #d8deea !important; border-radius: 6px !important; padding: 13px 14px !important; font-size: 0.95rem !important; font-family: inherit !important; color: #06192f !important; background: rgba(255,255,255,0.72) !important; transition: border-color 0.18s, box-shadow 0.18s !important; box-sizing: border-box !important; appearance: none !important; }
.contact-page-grid .elementor-field:focus { border-color: var(--blue) !important; box-shadow: 0 0 0 4px rgba(0,74,173,0.12) !important; outline: none !important; }
/* Select wrapper keeps the same visual treatment as text inputs (border+bg from .elementor-field rule).
   Only the native <select> element inside gets its border stripped. */
.contact-page-grid .elementor-field-type-select select { border: none !important; border-radius: 0 !important; box-shadow: none !important; outline: none !important; background: transparent !important; width: 100% !important; }
.contact-page-grid .elementor-field-type-select select:focus { border: none !important; box-shadow: none !important; outline: none !important; }
.contact-page-grid .elementor-button { width: 100% !important; display: block !important; background: #fbb03b !important; color: #07101f !important; font-weight: 800 !important; border: none !important; border-radius: 8px !important; padding: 14px 24px !important; font-size: 1rem !important; cursor: pointer !important; font-family: inherit !important; text-align: center !important; transition: background 0.18s !important; }
.contact-page-grid .elementor-button:hover { background: #e09000 !important; }

/* ── Homepage contact form (Elementor Pro Form inside .contact section) ── */
.contact .elementor-widget-form { box-shadow: 0 28px 70px rgba(0,74,173,0.13) !important; background: rgba(255,255,255,0.64) !important; backdrop-filter: blur(18px) !important; border-radius: 8px !important; padding: 28px !important; border: 1px solid rgba(0,74,173,0.18) !important; }
.contact .elementor-form-fields-wrapper { display: flex !important; flex-direction: column !important; gap: 10px !important; padding: 0 !important; }
.contact .elementor-field-group { display: flex !important; flex-direction: column !important; gap: 8px !important; width: 100% !important; padding: 0 !important; }
.contact .elementor-field-label { font-size: 1rem !important; font-weight: 800 !important; color: #10233d !important; text-align: left !important; display: block !important; width: 100% !important; }
.contact .elementor-field-type-submit .elementor-field-label { display: none !important; }
.contact .elementor-field { width: 100% !important; border: 1px solid #d8deea !important; border-radius: 6px !important; padding: 13px 14px !important; font-size: 0.95rem !important; font-family: inherit !important; color: #06192f !important; background: rgba(255,255,255,0.72) !important; transition: border-color 0.18s, box-shadow 0.18s !important; box-sizing: border-box !important; appearance: none !important; }
.contact .elementor-field:focus { border-color: var(--blue) !important; box-shadow: 0 0 0 4px rgba(0,74,173,0.12) !important; outline: none !important; }
.contact .elementor-field-type-select select { border: none !important; border-radius: 0 !important; box-shadow: none !important; outline: none !important; background: transparent !important; width: 100% !important; }
.contact .elementor-field-type-select select:focus { border: none !important; box-shadow: none !important; outline: none !important; }
.contact .elementor-button { width: 100% !important; display: block !important; background: #fbb03b !important; color: #07101f !important; font-weight: 800 !important; border: none !important; border-radius: 8px !important; padding: 14px 24px !important; font-size: 1rem !important; cursor: pointer !important; font-family: inherit !important; text-align: center !important; transition: background 0.18s !important; }
.contact .elementor-button:hover { background: #e09000 !important; }