/* Sky Frequency 2026 rebrand accents.
   Brand orange #F28707 is sampled from the 2026 logo's "NETWORKS" wordmark
   (its gradient averages to this value) — every orange on the site must use
   this one hex. Applied to calls-to-action site-wide. Navy (#192546) and
   blue remain; blue is still present in the logo mark. */

/* Elementor CTA buttons (CONTACT US, LET'S TALK, Read More buttons).
   The mirrored theme CSS leaves some of these (Read More) unpadded, so a
   background alone reads as highlighted text — force full pill styling. */
.elementor-button,
.elementor-button-link {
  background-color: #F28707 !important;
  display: inline-block;
  padding: 12px 26px !important;
  border-radius: 999px !important;
  border: none !important;
  color: #fff !important;
  text-decoration: none !important;
  line-height: 1.2;
}
.elementor-button:hover,
.elementor-button-link:hover {
  background-color: #d97506 !important;
}

/* Salesforce lead-form submit buttons */
.sf_form input[type="submit"] {
  background-color: #F28707 !important;
  border-color: #F28707 !important;
}
.sf_form input[type="submit"]:hover {
  background-color: #d97506 !important;
  border-color: #d97506 !important;
}

/* Top-bar social icons (Facebook / Instagram / TikTok) + phone link */
.sf-topbar {
  display: inline-flex !important;
  align-items: center;
  gap: 16px;
}
.sf-topbar .sf-soc { display: inline-flex; color: #fff; line-height: 1; }
.sf-topbar .sf-soc:hover { color: #F28707; }
.sf-topbar .sf-soc svg { width: 21px; height: 21px; fill: currentColor; display: block; }
.sf-topbar .sf-phone { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.sf-topbar .sf-phone .sf-phone-ic { width: 22px; height: 22px; fill: #7befb2; display: block; }

/* Contact page: social icon row above the text + form (TikTok · Facebook · Instagram).
   The section has 120px built-in top padding; the negative margin cancels it so
   the row's own symmetric padding centers the icons exactly between the hero
   and the text/form below. */
.sf-contact-social {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 44px;
  margin-top: -120px;
  padding: 64px 20px;
}
.sf-contact-social a { display: inline-flex; color: #192546; }
.sf-contact-social a:hover { color: #F28707; }
.sf-contact-social svg { width: 84px; height: 84px; fill: currentColor; display: block; }
@media (max-width: 921px) {
  /* mobile: the section has no built-in top padding, so no offset to cancel */
  .sf-contact-social { gap: 30px; margin-top: 0; padding: 40px 20px; }
  .sf-contact-social svg { width: 64px; height: 64px; }
}

/* ---- Services carousel (home) & testimonial slider (about) ----
   Slides are absolutely stacked; sf-widgets.js sets the viewport height and
   rotates slides. Real browsers animate (slide + fade); the JS also snaps
   final inline styles on a timer so environments without transitions still
   land in the correct end state. */
/* home: the client-logo column keeps a legacy 78.9% width from the old
   two-column layout (post-4.css) but nothing centers it — do that here */
.elementor-4 .elementor-element.elementor-element-58303d41 { margin: 0 auto; }

.sf-svc-carousel { max-width: 1140px; margin: 0 auto; padding: 64px 20px 40px; }
.sf-svc-viewport { position: relative; overflow: hidden; }
.sf-svc-slide {
  position: absolute; inset: 0 0 auto 0;
  display: flex; align-items: center; gap: 54px;
  opacity: 0; transform: translateX(64px);
  transition: opacity .55s ease, transform .55s ease;
  pointer-events: none;
}
.sf-svc-slide.from-left { transform: translateX(-64px); }
.sf-svc-slide.is-active { opacity: 1; transform: none; pointer-events: auto; }
.sf-svc-slide.is-leaving { opacity: 0; transform: translateX(-64px); }
.sf-svc-slide.is-leaving-r { opacity: 0; transform: translateX(64px); }

/* prev/next arrows (injected by sf-widgets.js) */
.sf-svc-carousel { position: relative; }
.sf-rot-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  box-sizing: border-box !important;
  width: 46px !important; height: 46px !important;
  padding: 0 !important; min-width: 0 !important;
  border-radius: 50% !important; border: none !important; cursor: pointer;
  background: #192546 !important; color: #fff !important; font-size: 17px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 14px rgba(25, 37, 70, .25);
  z-index: 5;
}
.sf-rot-arrow:hover { background: #F28707 !important; }
.sf-rot-prev { left: -58px; }
.sf-rot-next { right: -58px; }
/* below ~1280 there's no room outside the container; drop arrows to the bottom
   corners instead of overlapping the slide content */
@media (max-width: 1279px) {
  .sf-rot-arrow { width: 38px !important; height: 38px !important; font-size: 14px; top: auto; bottom: 26px; transform: none; }
  .sf-rot-prev { left: 12px; }
  .sf-rot-next { right: 12px; }
}
.sf-svc-text { flex: 1 1 55%; }
.sf-svc-text h2 { color: #192546; font-size: 30px; line-height: 1.2; margin: 0 0 18px; }
.sf-svc-text p { color: #4b4f58; font-size: 16px; line-height: 1.55; margin: 0 0 16px; max-width: 560px; }
.sf-svc-text .elementor-button { margin-top: 6px; }
.sf-svc-img { flex: 1 1 45%; display: flex; justify-content: center; }
.sf-svc-img img { max-width: min(440px, 100%); height: auto; }
.sf-svc-img img[src$=".jpg"] {
  border-radius: 12px;
  box-shadow: 14px 14px 0 rgba(242, 135, 7, .28), 0 8px 24px rgba(25, 37, 70, .14);
}
.sf-svc-dots { display: flex; justify-content: center; gap: 10px; padding-top: 34px; }
.sf-svc-dots button {
  width: 11px; height: 11px; border-radius: 50%; border: none; padding: 0;
  background: #ccd4e2; cursor: pointer;
}
.sf-svc-dots button.is-on { background: #F28707; }
@media (max-width: 921px) {
  .sf-svc-carousel { padding: 40px 18px 32px; }
  .sf-svc-slide { flex-direction: column; gap: 26px; text-align: center; }
  .sf-svc-text p { margin-left: auto; margin-right: auto; }
  .sf-svc-img img { max-width: min(320px, 100%); }
  .sf-svc-img img[src$=".jpg"] { box-shadow: 9px 9px 0 rgba(242, 135, 7, .28), 0 8px 24px rgba(25, 37, 70, .14); }
}

/* ---- About: testimonial slider (placeholder content until client sends real ones) ---- */
.sf-tsl { max-width: 860px; margin: 0 auto; padding: 30px 20px 72px; text-align: center; position: relative; }
.sf-tsl h2 { color: #192546; font-size: 34px; margin: 42px 0 8px; }
.sf-tsl-rule { width: 64px; height: 4px; background: #F28707; border-radius: 2px; margin: 0 auto 38px; }
.sf-tsl-viewport { position: relative; overflow: hidden; }
.sf-tsl-slide {
  position: absolute; inset: 0 0 auto 0;
  opacity: 0; transform: translateX(64px);
  transition: opacity .55s ease, transform .55s ease;
  pointer-events: none;
  padding: 0 8px;
}
.sf-tsl-slide.is-active { opacity: 1; transform: none; pointer-events: auto; }
.sf-tsl-slide.is-leaving { opacity: 0; transform: translateX(-64px); }
.sf-tsl-stars { color: #F28707; font-size: 22px; letter-spacing: 4px; margin-bottom: 14px; }
.sf-tsl-quote { color: #35405e; font-size: 19px; line-height: 1.6; font-style: italic; margin: 0 auto 24px; max-width: 720px; }
.sf-tsl-who { display: flex; align-items: center; justify-content: center; gap: 13px; }
.sf-tsl-avatar {
  width: 52px; height: 52px; border-radius: 50%;
  background: #192546; color: #fff; font-weight: 700; font-size: 18px;
  display: inline-flex; align-items: center; justify-content: center;
}
.sf-tsl-name { text-align: left; display: inline-block; }
.sf-tsl-name b { display: block; color: #192546; font-size: 16px; }
.sf-tsl-name span { display: block; color: #5a6b8c; font-size: 13px; margin-top: 2px; }
.sf-tsl-dots { display: flex; justify-content: center; gap: 10px; padding-top: 30px; }
.sf-tsl-dots button {
  width: 11px; height: 11px; border-radius: 50%; border: none; padding: 0;
  background: #ccd4e2; cursor: pointer;
}
.sf-tsl-dots button.is-on { background: #F28707; }
@media (max-width: 921px) {
  .sf-tsl h2 { font-size: 26px; }
  .sf-tsl-quote { font-size: 16.5px; }
}

/* ---- Global footer CTA card (replaces the old 3-column footer contact strip).
   Semi-transparent card centered over the green tech background so the image
   shows through; contacts stacked under the LET'S TALK button. ---- */
.sf-footer-cta {
  position: relative;
  background: url("/wp-content/uploads/2019/09/pic09-free-img.jpg") center/cover no-repeat;
  padding: 0 20px;
  margin: 34px 0;
  display: flex;
  justify-content: center;
}
.sf-footer-cta::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(200deg, #040428 0%, #57aa6e 100%);
  opacity: .82;
}
.sf-footer-cta-card {
  position: relative; z-index: 1;
  background: #fff;
  max-width: 790px; width: 100%;
  text-align: center;
  padding: 40px 48px 36px;
  margin: -34px 0;   /* card pokes above and below the green band */
  border: 1px solid rgba(255, 255, 255, .65);
  box-shadow: 0 10px 30px rgba(4, 4, 40, .35), 0 2px 8px rgba(4, 4, 40, .22);
}
.sf-footer-cta-card h3 { color: #192546; font-size: 30px; margin: 0 0 8px; }
.sf-fc-sub { color: #4b4f58; font-size: 16px; margin: 0 0 6px; }
.sf-fc-contacts {
  margin-top: 22px;
  padding-top: 24px;
  border-top: 1px solid rgba(25, 37, 70, .18);
  display: flex; flex-direction: row; justify-content: center;
  gap: 56px; flex-wrap: wrap;
}
.sf-fc-item span { display: block; color: #5a6b8c; font-size: 13px; letter-spacing: .3px; margin-bottom: 2px; }
.sf-fc-item a {
  color: #192546 !important; font-weight: 700; font-size: 19px;
  text-decoration: underline; text-underline-offset: 3px;
}
.sf-fc-item a:hover { color: #F28707 !important; }
.sf-footer-cta-card .sf-fc-btn {
  margin-top: 24px;
  padding: 12px 27px !important;
  font-size: 18px;
  letter-spacing: 1px;
}
@media (max-width: 921px) {
  .sf-footer-cta { padding: 0 16px; margin: 24px 0; }
  .sf-footer-cta-card { padding: 30px 22px 28px; margin: -24px 0; }
  .sf-footer-cta-card h3 { font-size: 25px; }
  .sf-fc-contacts { flex-direction: column; gap: 16px; }
  .sf-fc-item a { font-size: 17px; }
}

/* Services dropdown: show labels as typed (title case). The forced uppercase
   made typed capitals render at a different optical size than transformed
   lowercase on some systems ("big S" effect) — and the new long service names
   read better in title case anyway. */
.main-header-menu .sub-menu .menu-link {
  text-transform: none !important;
  font-variant: normal !important;
  font-variant-caps: normal !important;
  font-size: 12.5px !important;
  letter-spacing: .3px;
}

/* ---- Site font: replace Oxygen with a well-hinted system stack ----
   Oxygen's round letters (S, O, C, G) carry optical overshoot that Windows
   rasterizes a pixel taller at UI sizes, making S's look oversized in caps
   ("LET'S TALK", the nav). Segoe UI/Roboto/Arial are metrically similar and
   render cleanly. Icon fonts (.fa/.fas) are untouched - their own rules win
   over inheritance. */
body, h1, h2, h3, h4, h5, h6,
.main-header-menu .menu-link, .menu-toggle,
.elementor-button, .elementor-button-text,
.elementor-heading-title,
.uael-infobox-title, .uael-infobox-title-prefix, .uael-infobox-text,
input, select, textarea, .sf_form,
.sf-hero-cta {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

/* Mobile menu call button (defined in mobile-menu.js) */
#sfmenu-panel .sfmenu-call {
  background: #F28707 !important;
}

/* Header logo sizing: the 2026 lockup is wider than the old SVG.
   High-specificity + !important to beat Astra's customizer width. */
#masthead .site-logo-img .custom-logo-link img,
.site-logo-img img.custom-logo {
  max-width: 230px !important;
  height: auto !important;
}
@media (max-width: 921px) {
  #masthead .site-logo-img .custom-logo-link img,
  .site-logo-img img.custom-logo { max-width: 170px !important; }
}

/* ---- 2026 refresh: compact header ---- */
.ast-above-header { padding-top: 8px !important; }

/* ---- 2026 refresh: compact hero sections (the city-background banners) ----
   Elementor gave every hero 400px top / 120px bottom padding; pull content up.
   The header overlays the hero (transparent header), so keep enough clearance. */
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child,
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child,
[data-elementor-type="wp-page"] > .elementor-top-section:first-child,
[data-elementor-type="wp-page"] > .elementor-section:first-child {
  padding-top: 150px !important;
  padding-bottom: 56px !important;
  min-height: 0 !important;
}
@media (max-width: 921px) {
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child,
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child,
  [data-elementor-type="wp-page"] > .elementor-top-section:first-child,
  [data-elementor-type="wp-page"] > .elementor-section:first-child {
    padding-top: 140px !important;   /* clear the 129px absolute mobile header */
    padding-bottom: 36px !important;
  }
}

/* ---- 2026 refresh: page titles ----
   Drop the dated underline everywhere; tighten line-height. Desktop size comes
   down from 85px; mobile keeps the clamp from mobile-fix.css (this sheet loads
   later, so the desktop size must stay inside the min-width query). */
.uael-infobox-title,
.uael-infobox-title-prefix,
.uael-infobox-title a {
  text-decoration: none !important;
}
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child .uael-infobox-title,
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child .uael-infobox-title-prefix,
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child .uael-infobox-title,
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child .uael-infobox-title-prefix,
[data-elementor-type="wp-page"] > .elementor-top-section:first-child .uael-infobox-title,
[data-elementor-type="wp-page"] > .elementor-top-section:first-child .uael-infobox-title-prefix,
[data-elementor-type="wp-page"] > .elementor-section:first-child .uael-infobox-title,
[data-elementor-type="wp-page"] > .elementor-section:first-child .uael-infobox-title-prefix {
  line-height: 1.12 !important;
  font-weight: 700 !important;
  letter-spacing: -0.5px;
}
@media (min-width: 922px) {
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child .uael-infobox-title,
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child .uael-infobox-title-prefix,
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child .uael-infobox-title,
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child .uael-infobox-title-prefix,
  [data-elementor-type="wp-page"] > .elementor-top-section:first-child .uael-infobox-title,
  [data-elementor-type="wp-page"] > .elementor-top-section:first-child .uael-infobox-title-prefix,
  [data-elementor-type="wp-page"] > .elementor-section:first-child .uael-infobox-title,
  [data-elementor-type="wp-page"] > .elementor-section:first-child .uael-infobox-title-prefix {
    font-size: 62px !important;
  }
}

/* ---- 2026 refresh: single-column heroes ----
   The old "title left, white CTA card right" pattern read as dated and made
   heroes tall. Hide every hero column except the first; the title/subtext
   column takes the full width (capped for readability) and mobile-menu.js
   adds an inline CTA button. */
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child > .elementor-container > .elementor-column:not(:first-child),
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child > .elementor-container > .elementor-column:not(:first-child),
[data-elementor-type="wp-page"] > .elementor-top-section:first-child > .elementor-container > .elementor-column:not(:first-child),
[data-elementor-type="wp-page"] > .elementor-section:first-child > .elementor-container > .elementor-column:not(:first-child) {
  display: none !important;
}
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child > .elementor-container > .elementor-column:first-child,
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child > .elementor-container > .elementor-column:first-child,
[data-elementor-type="wp-page"] > .elementor-top-section:first-child > .elementor-container > .elementor-column:first-child,
[data-elementor-type="wp-page"] > .elementor-section:first-child > .elementor-container > .elementor-column:first-child {
  width: 100% !important;
  max-width: 900px;
}

/* hero text: nudge in from the left edge on desktop */
@media (min-width: 922px) {
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child > .elementor-container > .elementor-column:first-child,
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child > .elementor-container > .elementor-column:first-child,
  [data-elementor-type="wp-page"] > .elementor-top-section:first-child > .elementor-container > .elementor-column:first-child,
  [data-elementor-type="wp-page"] > .elementor-section:first-child > .elementor-container > .elementor-column:first-child {
    padding-left: 190px !important;
  }
}

/* hero inner-section columns squeezed the home title into mid-word breaks;
   stack them full-width inside heroes and never break words in titles */
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child .elementor-inner-section > .elementor-container > .elementor-column,
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child .elementor-inner-section > .elementor-container > .elementor-column,
[data-elementor-type="wp-page"] > .elementor-top-section:first-child .elementor-inner-section > .elementor-container > .elementor-column,
[data-elementor-type="wp-page"] > .elementor-section:first-child .elementor-inner-section > .elementor-container > .elementor-column {
  width: 100% !important;
}
/* Home hero: the title's inner section has an EMPTY second flex column that
   forces the title into half width (flex shrinks both 100% columns to 50%). */
.elementor-element-252417f { display: none !important; }
.uael-infobox-title,
.uael-infobox-title-prefix {
  overflow-wrap: normal !important;
  word-break: normal !important;
}

/* Two stacked body paragraphs (an infobox blurb directly followed by a
   text-editor paragraph) stacked their widget margin (20px) on top of the
   paragraph margin (24px) = 44px, reading as two blank lines. Drop the widget
   margin so only the paragraph's own margin remains — one blank line. */
.elementor-widget-uael-infobox:has(+ .elementor-widget-text-editor) {
  margin-bottom: 0 !important;
}

/* hero spacer widgets: dead vertical air from the old layout */
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child .elementor-widget-spacer,
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child .elementor-widget-spacer,
[data-elementor-type="wp-page"] > .elementor-top-section:first-child .elementor-widget-spacer,
[data-elementor-type="wp-page"] > .elementor-section:first-child .elementor-widget-spacer {
  display: none !important;
}

/* hero subtext: larger, calmer */
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child .uael-infobox-text,
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child .uael-infobox-text,
[data-elementor-type="wp-page"] > .elementor-top-section:first-child .uael-infobox-text,
[data-elementor-type="wp-page"] > .elementor-section:first-child .uael-infobox-text {
  font-size: 18px !important;
  line-height: 1.65 !important;
  max-width: 620px;
  opacity: .94;
  text-wrap: pretty;   /* avoid single-word orphan lines */
}
/* home hero: trim bottom padding */
body.page-id-4 [data-elementor-post-type="page"] > .elementor-section:first-child {
  padding-bottom: 24px !important;
}
/* home hero: balance the short paragraph into even lines */
body.page-id-4 [data-elementor-post-type="page"] > .elementor-section:first-child .uael-infobox-text p {
  text-wrap: balance;
}

/* hero CTA button (element injected by mobile-menu.js) */
.sf-hero-cta {
  display: inline-block;
  margin-top: 26px;
  background: #F28707;
  color: #fff !important;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: .4px;
  text-transform: uppercase;
  text-decoration: none !important;
  padding: 15px 34px;
  border-radius: 6px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .3);
  transition: none;
}
.sf-hero-cta:hover { background: #d97506; color: #fff; }

/* ---- nav: Services submenu arrow (Astra icon font is missing; the empty
        glyph rendered as a small square). Draw it with a unicode caret. ---- */
/* ---- service pages: standard content-image size ----
   Section photos previously rendered at full column width (~620px); the
   client wants roughly half that as the default. Icons live inside UAEL
   infoboxes, not image widgets, so they are unaffected. */
[data-elementor-type="wp-page"] .elementor-widget-image .elementor-widget-container img,
[data-elementor-type="wp-post"][data-elementor-post-type="page"] .elementor-widget-image .elementor-widget-container img {
  max-width: min(460px, 100%) !important;
  height: auto !important;
}
/* photo polish to match the About page cards -- photos only; transparent
   PNG graphics would show an ugly rectangular shadow box */
[data-elementor-type="wp-page"] .elementor-widget-image .elementor-widget-container img[src$=".jpg"],
[data-elementor-type="wp-post"][data-elementor-post-type="page"] .elementor-widget-image .elementor-widget-container img[src$=".jpg"] {
  border-radius: 12px;
  /* brand-orange offset block reads as the photo's "shadow" */
  box-shadow: 14px 14px 0 rgba(242, 135, 7, .28), 0 8px 24px rgba(25, 37, 70, .14);
}
@media (max-width: 921px) {
  [data-elementor-type="wp-page"] .elementor-widget-image .elementor-widget-container img[src$=".jpg"],
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] .elementor-widget-image .elementor-widget-container img[src$=".jpg"] {
    box-shadow: 9px 9px 0 rgba(242, 135, 7, .28), 0 8px 24px rgba(25, 37, 70, .14);
  }
}

/* ---- service pages: hero CTA sits right-aligned beside the title ----
   (wp-page wrappers are exactly the /services pages; home/about/contact are
   wp-post wrappers and keep the CTA under the text or omit it) */
[data-elementor-type="wp-page"] > .elementor-section:first-child > .elementor-container,
[data-elementor-type="wp-page"] > .elementor-top-section:first-child > .elementor-container,
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child > .elementor-container,
[data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child > .elementor-container {
  position: relative;
}
@media (min-width: 922px) {
  /* Elementor positions columns/widget-wraps; neutralize inside the hero so
     the CTA's absolute offsets resolve against the container, then pin the
     CTA to the content edge (~under the nav). */
  [data-elementor-type="wp-page"] > .elementor-section:first-child > .elementor-container > .elementor-column:first-child,
  [data-elementor-type="wp-page"] > .elementor-section:first-child > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
  [data-elementor-type="wp-page"] > .elementor-top-section:first-child > .elementor-container > .elementor-column:first-child,
  [data-elementor-type="wp-page"] > .elementor-top-section:first-child > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child > .elementor-container > .elementor-column:first-child,
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap {
    position: static !important;
  }
  [data-elementor-type="wp-page"] > .elementor-section:first-child .sf-hero-cta,
  [data-elementor-type="wp-page"] > .elementor-top-section:first-child .sf-hero-cta,
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-section:first-child .sf-hero-cta,
  [data-elementor-type="wp-post"][data-elementor-post-type="page"] > .elementor-top-section:first-child .sf-hero-cta {
    position: absolute;
    right: max(24px, calc((100% - 1140px) / 2 + 10px));
    top: 8px;
    margin-top: 0;
  }
}

/* ---- contact page: tighter lead form (~20% smaller) ---- */
body.page-id-688 form.sf_form_light {
  max-width: 540px;
}
body.page-id-688 form.sf_form_light input[type="text"],
body.page-id-688 form.sf_form_light textarea {
  padding: 8px 10px !important;
  font-size: 14px !important;
}
body.page-id-688 form.sf_form_light label,
body.page-id-688 form.sf_form_light b {
  font-size: 14px;
}

/* Astra renders the dropdown indicator as ::after on the link, using its icon
   font (missing from the mirror -> tofu square). Swap in a unicode caret. */
.main-header-menu .menu-item-has-children > .menu-link::after {
  content: "\25BE" !important;      /* ▾ */
  font-family: inherit !important;
  font-size: 12px !important;
  line-height: 1;
  margin-left: 5px;
  vertical-align: middle;
}
.ast-icon.icon-arrow { background: none !important; }
.ast-icon.icon-arrow svg { display: none !important; }
