/* ==========================================================================
   Fastex Logistics - Elementor home page
   --------------------------------------------------------------------------
   Only what Elementor Free has no control for lives here. Text, colours,
   font sizes, spacing, images and links are all edited inside Elementor.

   Every rule is scoped to an .fx-* class that the imported template puts on
   its containers and widgets (Advanced > CSS Classes), so nothing here
   touches the header, footer or any other page.
   ========================================================================== */

/* The theme wraps page content in a centred flex column (left over from the
   Framer export). Let the Elementor page use the full width inside it. */
[data-framer-root] > .elementor,
.framer-Dtr6q .elementor[data-elementor-type="wp-page"] {
  width: 100%;
  align-self: stretch;
}

/* Paragraph spacing: no stray margin above the first / below the last line. */
.fx-section .elementor-widget-text-editor.elementor-widget p:first-child { margin-top: 0; }
.fx-section .elementor-widget-text-editor.elementor-widget p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   Eyebrow labels ("ABOUT US", "OUR SERVICES" ...): green slash before text
   -------------------------------------------------------------------------- */
.fx-eyebrow .elementor-heading-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.fx-eyebrow .elementor-heading-title::before {
  content: "";
  flex: none;
  width: 9px;
  height: 12px;
  background: #52bb4a;
  clip-path: polygon(45% 0, 100% 0, 55% 100%, 0 100%);
}
.fx-eyebrow--light .elementor-heading-title::before { background: #fff; }

/* --------------------------------------------------------------------------
   Hero: the background video stays pinned while the green "Who We Are"
   card scrolls up over it (same as the original Framer page).
   -------------------------------------------------------------------------- */
.elementor .e-con.fx-hero-wrap > .elementor-background-video-container {
  position: sticky;
  top: 0;
  right: auto;
  bottom: auto;
  left: auto;
  flex: none;
  width: 100%;
  height: 100vh;
  z-index: 0;
}
/* Pull the hero text up over the pinned video (only when a video is set,
   so removing the video in Elementor can never hide the hero). */
.elementor .e-con.fx-hero-wrap > .elementor-background-video-container ~ .e-con.fx-hero { margin-top: -100vh; }
.elementor .e-con.fx-hero-wrap { background-color: #000; }
.elementor .e-con.fx-hero-wrap > .e-con { z-index: 1; }
.elementor .e-con.fx-hero > .e-con-inner { flex-grow: 1; }

/* Arrow icon on "Apply to drive" / "Apply today" buttons */
.fx-btn-arrow .elementor-button-icon {
  color: #52bb4a;
  transform: rotate(45deg);
  transition: color .25s ease;
}
.fx-btn-arrow .elementor-button-icon svg { fill: currentColor; }
.fx-btn-arrow .elementor-button:hover .elementor-button-icon,
.fx-btn-arrow--light .elementor-button-icon { color: #fff; }

/* --------------------------------------------------------------------------
   "48 STATES · 24/7 ..." ticker inside the green card.
   The heading text holds the phrase twice; the animation slides it by half
   its width and loops, so it never shows a gap. If you edit the phrase,
   keep both copies identical.
   -------------------------------------------------------------------------- */
.fx-ticker { overflow: hidden; }
.fx-ticker .elementor-heading-title {
  display: inline-block;
  white-space: nowrap;
  animation: fxe-marquee 160s linear infinite;
  will-change: transform;
}
@keyframes fxe-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* --------------------------------------------------------------------------
   Service cards (whole card is a link to /services/)
   -------------------------------------------------------------------------- */
.e-con.fx-service-card { color: inherit; text-decoration: none; }
.fx-service-card .elementor-widget-image img { display: block; }

/* --------------------------------------------------------------------------
   Hiring card: green speed stripes behind the truck (decorative)
   -------------------------------------------------------------------------- */
.e-con.fx-hiring-graphic {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1658 388' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M 249.435 97 L 271.173 97 L 98.699 388 L 0 388 L 172.474 97 L 150.735 97 L 208.239 0 L 306.938 0 Z M 362.047 97 L 388.48 97 L 216.007 388 L 125.867 388 L 298.341 97 L 271.191 97 L 328.676 0 L 419.551 0 Z M 474.66 97 L 505.788 97 L 333.314 388 L 251.734 388 L 424.208 97 L 391.647 97 L 449.132 0 L 532.145 0 Z M 587.273 97 L 623.114 97 L 450.641 388 L 377.602 388 L 550.075 97 L 512.104 97 L 569.588 0 L 644.758 0 Z M 699.886 97 L 740.422 97 L 567.948 388 L 503.469 388 L 675.942 97 L 632.541 97 L 690.045 0 L 757.371 0 Z M 812.48 97 L 857.729 97 L 685.256 388 L 629.336 388 L 801.81 97 L 752.997 97 L 810.481 0 L 869.984 0 Z M 802.563 388 L 755.203 388 L 927.677 97 L 975.037 97 Z M 919.89 388 L 881.07 388 L 1053.54 97 L 1092.36 97 Z M 1006.88 388 L 985.614 388 L 1043.12 291 L 1064.37 291 Z M 1106.69 388 L 1089.59 388 L 1147.1 291 L 1164.18 291 Z M 1206.5 388 L 1193.57 388 L 1251.05 291 L 1263.99 291 Z M 1306.31 388 L 1297.55 388 L 1355.03 291 L 1363.8 291 Z M 1406.13 388 L 1401.53 388 L 1459.01 291 L 1463.63 291 Z M 1094.68 291 L 1064.42 291 L 1179.39 97 L 1209.67 97 Z M 1269.49 194 L 1250.72 194 L 1193.23 291 L 1176.3 291 L 1233.79 194 L 1247.77 194 L 1305.26 97 L 1326.98 97 Z M 1305.07 291 L 1292.25 291 L 1349.74 194 L 1362.58 194 Z M 1416.93 291 L 1408.2 291 L 1465.7 194 L 1474.42 194 Z M 1528.77 291 L 1524.17 291 L 1581.65 194 L 1586.25 194 Z M 1386.8 194 L 1373.64 194 L 1431.13 97 L 1444.29 97 Z M 1561.61 97 L 1504.11 194 L 1499.51 194 L 1556.99 97 Z M 925.094 97 L 873.453 97 L 930.938 0 L 982.598 0 Z M 1037.71 97 L 993.891 97 L 1051.39 0 L 1095.19 0 Z M 1150.32 97 L 1114.35 97 L 1171.83 0 L 1207.8 0 Z M 1262.93 97 L 1234.8 97 L 1292.29 0 L 1320.42 0 Z M 1375.55 97 L 1355.24 97 L 1412.74 0 L 1433.03 0 Z M 1488.14 97 L 1475.7 97 L 1533.18 0 L 1545.64 0 Z M 1600.75 97 L 1596.15 97 L 1653.64 0 L 1658.24 0 Z' fill='%2352bb4a' height='388px' width='1658.2400244140624px'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: min(1034px, 92%) auto;
  background-position: center calc(100% - 3px);
}
@media (max-width: 767px) {
  .e-con.fx-hiring-graphic {
    background-size: 100% auto;
    background-position: center bottom;
  }
}

/* --------------------------------------------------------------------------
   "Why choose us" rows
   -------------------------------------------------------------------------- */
.fx-why-row .elementor-icon-box-title,
.fx-why-row .elementor-icon-box-description { margin: 0; }

/* --------------------------------------------------------------------------
   "Our strong points": the four photo cards stack on top of each other
   as you scroll.
   -------------------------------------------------------------------------- */
.elementor .e-con.fx-proof-title {
  position: sticky;
  top: 100px;
  z-index: 1;
}
.elementor .e-con.fx-sticky-card {
  position: sticky;
  top: 260px;
  z-index: 2;
}
@media (max-width: 1024px) { .elementor .e-con.fx-sticky-card { top: 240px; } }
@media (max-width: 767px)  { .elementor .e-con.fx-sticky-card { top: 300px; } }

/* --------------------------------------------------------------------------
   Partner logos: white tiles scrolling sideways in a loop.
   The track holds the 7 logos twice; the animation moves it by exactly
   half its width, so the loop is seamless. To swap a logo, change it in
   both sets. Hovering pauses the scroll (handy while editing, too).
   -------------------------------------------------------------------------- */
.elementor .e-con.fx-logo-marquee { overflow: hidden; }
.elementor .e-con.fx-logo-track {
  flex-wrap: nowrap;
  width: max-content;
  max-width: none;
  animation: fxe-marquee 26s linear infinite;
}
.elementor .e-con.fx-logo-marquee:hover .fx-logo-track { animation-play-state: paused; }
.elementor .e-con.fx-logo-track > .elementor-widget.fx-logo {
  flex: none;
  width: 170px;
  max-width: none;
  height: 170px;
  margin: 0 10px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 10px;
}
.fx-logo-track .fx-logo img {
  width: auto;
  max-width: 56%;
  height: auto;
  max-height: 52px;
  object-fit: contain;
}
@media (max-width: 767px) {
  .elementor .e-con.fx-logo-track > .elementor-widget.fx-logo { width: 120px; height: 120px; }
  .fx-logo-track .fx-logo img { max-height: 38px; }
}

/* --------------------------------------------------------------------------
   FAQ accordion
   -------------------------------------------------------------------------- */
.fx-faq-acc .e-n-accordion {
  --n-accordion-item-title-space-between: 0px;
  --n-accordion-item-title-distance-from-content: 0px;
  --n-accordion-border-width: 0px;
  border-top: 1px solid rgba(82, 187, 74, .5);
}
.fx-faq-acc .e-n-accordion-item { border-bottom: 1px solid rgba(82, 187, 74, .5); }
.fx-faq-acc .e-n-accordion-item-title {
  border: 0;
  background: transparent;
  gap: 20px;
}
.fx-faq-acc .e-n-accordion-item-title-text { color: #000; }
.fx-faq-acc .e-n-accordion-item-title-icon { color: #000; }
.fx-faq-acc .e-n-accordion-item-title-icon svg { fill: currentColor; }
.fx-faq-acc .e-n-accordion-item > [role="region"] { border: 0; background: transparent; }

/* Balanced line breaks (used on the Hiring paragraph) */
.fx-balance p { text-wrap: balance; }

/* ==========================================================================
   ABOUT PAGE
   ========================================================================== */

/* "Our Story": the text column stays centred on screen while the photos
   on the left scroll past (same as the original). On phones the text comes
   first and the photos stack on top of each other as you scroll. */
.elementor .e-con.fx-story-text {
  position: sticky;
  top: 0;
}
@media (max-width: 767px) {
  .elementor .e-con.fx-story-text { position: relative; }
  .elementor .fx-story-images > .elementor-widget.fx-story-photo {
    position: sticky;
    top: 100px;
    z-index: 1;
  }
}
.fx-story-photo img { display: block; }

/* Balanced line breaks on the big "Our Story" intro */
.fx-balance-heading .elementor-heading-title { text-wrap: balance; }

/* "By the Numbers" icons (inline SVG inside an HTML widget).
   Change the colour here; to use a different icon, swap the HTML widget
   for an Elementor Icon widget. */
.fx-stat-icon { display: block; line-height: 0; color: #52bb4a; }
.fx-stat-icon svg { display: block; width: auto; height: 60px; }
.elementor .e-con > .elementor-widget.fx-stat-icon-wrap { flex: none; width: auto; }

/* Counter numbers sit flush left, like the original */
.fx-stat-number .elementor-counter { justify-content: flex-start; }
.fx-stat-number .elementor-counter-number-wrapper { justify-content: flex-start; text-align: left; }

/* "Get a Quote" line on the service cards */
.fx-service-card:hover .fx-card-link .elementor-heading-title { color: #000; }

/* Check-mark rows: balanced line breaks when a description wraps */
.fx-why-row .elementor-icon-box-description { text-wrap: balance; }

/* ==========================================================================
   SERVICES PAGE
   ========================================================================== */

/* "GET A QUOTE" buttons on the trailer cards: white arrow pointing up-right */
.fx-btn-arrow.fx-btn-arrow-up .elementor-button-icon { transform: rotate(-45deg); }

.fx-fleet-photo img,
.fx-overview-gif img { display: block; }

/* ==========================================================================
   DRIVERS PAGE
   ========================================================================== */

/* Benefit pills keep each label on one line */
.fx-pill .elementor-heading-title { white-space: nowrap; }

/* #DRIVEFASTEX scales with the screen width, like the original
   (this overrides the font size set in Elementor for this one heading) */
.fx-wordmark-type .elementor-heading-title { font-size: clamp(48px, 11.5vw, 170px); }

/* Speed stripes behind the truck */
.elementor .e-con.fx-wordmark-stage {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1658 388' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M 249.435 97 L 271.173 97 L 98.699 388 L 0 388 L 172.474 97 L 150.735 97 L 208.239 0 L 306.938 0 Z M 362.047 97 L 388.48 97 L 216.007 388 L 125.867 388 L 298.341 97 L 271.191 97 L 328.676 0 L 419.551 0 Z M 474.66 97 L 505.788 97 L 333.314 388 L 251.734 388 L 424.208 97 L 391.647 97 L 449.132 0 L 532.145 0 Z M 587.273 97 L 623.114 97 L 450.641 388 L 377.602 388 L 550.075 97 L 512.104 97 L 569.588 0 L 644.758 0 Z M 699.886 97 L 740.422 97 L 567.948 388 L 503.469 388 L 675.942 97 L 632.541 97 L 690.045 0 L 757.371 0 Z M 812.48 97 L 857.729 97 L 685.256 388 L 629.336 388 L 801.81 97 L 752.997 97 L 810.481 0 L 869.984 0 Z M 802.563 388 L 755.203 388 L 927.677 97 L 975.037 97 Z M 919.89 388 L 881.07 388 L 1053.54 97 L 1092.36 97 Z M 1006.88 388 L 985.614 388 L 1043.12 291 L 1064.37 291 Z M 1106.69 388 L 1089.59 388 L 1147.1 291 L 1164.18 291 Z M 1206.5 388 L 1193.57 388 L 1251.05 291 L 1263.99 291 Z M 1306.31 388 L 1297.55 388 L 1355.03 291 L 1363.8 291 Z M 1406.13 388 L 1401.53 388 L 1459.01 291 L 1463.63 291 Z M 1094.68 291 L 1064.42 291 L 1179.39 97 L 1209.67 97 Z M 1269.49 194 L 1250.72 194 L 1193.23 291 L 1176.3 291 L 1233.79 194 L 1247.77 194 L 1305.26 97 L 1326.98 97 Z M 1305.07 291 L 1292.25 291 L 1349.74 194 L 1362.58 194 Z M 1416.93 291 L 1408.2 291 L 1465.7 194 L 1474.42 194 Z M 1528.77 291 L 1524.17 291 L 1581.65 194 L 1586.25 194 Z M 1386.8 194 L 1373.64 194 L 1431.13 97 L 1444.29 97 Z M 1561.61 97 L 1504.11 194 L 1499.51 194 L 1556.99 97 Z M 925.094 97 L 873.453 97 L 930.938 0 L 982.598 0 Z M 1037.71 97 L 993.891 97 L 1051.39 0 L 1095.19 0 Z M 1150.32 97 L 1114.35 97 L 1171.83 0 L 1207.8 0 Z M 1262.93 97 L 1234.8 97 L 1292.29 0 L 1320.42 0 Z M 1375.55 97 L 1355.24 97 L 1412.74 0 L 1433.03 0 Z M 1488.14 97 L 1475.7 97 L 1533.18 0 L 1545.64 0 Z M 1600.75 97 L 1596.15 97 L 1653.64 0 L 1658.24 0 Z' fill='%2352bb4a' height='388px' width='1658.2400244140624px'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center calc(100% - 2px);
  background-size: auto 281px;
}
@media (max-width: 1024px) {
  .elementor .e-con.fx-wordmark-stage { background-size: 808px auto; background-position: center bottom; }
}
@media (max-width: 767px) {
  .elementor .e-con.fx-wordmark-stage { background-size: auto 75%; }
}
.fx-wordmark-truck img { display: block; }

/* Benefits / Requirements boxes */
.fx-drv-acc .e-n-accordion-item {
  background: #e2e2e2;
  border-radius: 20px;
  padding: 10px 20px;
  overflow: hidden;
}
/* Service Area pages use roomier boxes */
.fx-drv-acc.fx-drv-acc--roomy .e-n-accordion-item { padding: 12px 24px 24px; }
.fx-drv-acc .e-n-accordion-item-title { border: 0; background: transparent; gap: 24px; }
.fx-drv-acc .e-n-accordion-item-title-text,
.fx-drv-acc .e-n-accordion-item-title-icon { color: #000; }
.fx-drv-acc .e-n-accordion-item-title-icon svg { fill: currentColor; }
.fx-drv-acc .e-n-accordion-item > [role="region"] { border: 0; background: transparent; }
.fx-drv-acc ul { list-style: disc; margin: 0; padding-left: 20px; }
.fx-drv-acc .elementor-widget-text-editor p { margin: 18px 0 0; line-height: 21px; color: #8a8a8a; }

/* Quick Apply form (Contact Form 7).
   Ported from the old Drivers page. The section also carries the class
   "drivers-main-block" so the extra rules stored inside the CF7 form itself
   keep applying. */
.fx-quick-apply {
  --drv-green: #52bb4a;
  --drv-ink: #000;
  --drv-muted: #8a8a8a;
  font-family: Inter, "Inter Placeholder", sans-serif;
}
.fx-quick-apply .drv-form,
.fx-quick-apply .drv-form *,
.fx-quick-apply .drv-form *::before,
.fx-quick-apply .drv-form *::after { box-sizing: border-box; }
.fx-quick-apply .drv-form p,
.fx-quick-apply .drv-form ul,
.fx-quick-apply .drv-form li { margin: 0; padding: 0; }
.fx-quick-apply .drv-form {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #fff;
  border-radius: 20px;
  padding: 48px;
  box-shadow: 0 20px 30px rgba(0, 0, 0, .2);
}
.fx-quick-apply .drv-field { display: flex; flex-direction: column; gap: 6px; }
.fx-quick-apply .drv-field > label {
  font-size: 14px;
  line-height: 20px;
  font-weight: 700;
  color: var(--drv-ink);
}
.fx-quick-apply .drv-form input[type=text],
.fx-quick-apply .drv-form input[type=tel],
.fx-quick-apply .drv-form input[type=email],
.fx-quick-apply .drv-form select {
  width: 100%;
  height: 60px;
  padding: 20px 24px;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  background: #fff;
  font-family: inherit;
  font-size: 16px;
  line-height: 16px;
  color: var(--drv-ink);
  appearance: none;
  -webkit-appearance: none;
}
.fx-quick-apply .drv-form input::placeholder { color: #b5b5b5; }
.fx-quick-apply .drv-form input:focus,
.fx-quick-apply .drv-form select:focus { outline: none; border-color: var(--drv-green); }
.fx-quick-apply .drv-select { position: relative; }
.fx-quick-apply .drv-select::after {
  content: "";
  position: absolute;
  right: 24px;
  top: 50%;
  width: 10px;
  height: 10px;
  margin-top: -7px;
  border-right: 2px solid var(--drv-ink);
  border-bottom: 2px solid var(--drv-ink);
  transform: rotate(45deg);
  pointer-events: none;
}
.fx-quick-apply .drv-legend {
  margin-top: 12px;
  font-size: 13px;
  line-height: 18px;
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--drv-green);
}
.fx-quick-apply .drv-radios { display: flex; gap: 24px; align-items: center; }
.fx-quick-apply .drv-radios label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  line-height: 24px;
  cursor: pointer;
}
.fx-quick-apply .drv-radios input { width: 18px; height: 18px; margin: 0; accent-color: var(--drv-green); }
.fx-quick-apply .drv-rule { height: 1px; background: #e6e6e6; border: 0; margin: 12px 0; }
.fx-quick-apply .drv-consent { display: flex; flex-direction: column; gap: 8px; }
.fx-quick-apply .drv-submit {
  width: 100%;
  height: 60px;
  margin-top: 12px;
  border: 0;
  border-radius: 10px;
  background: var(--drv-green);
  color: #fff;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: filter .2s ease;
}
.fx-quick-apply .drv-submit:hover { filter: brightness(.93); }
@media (max-width: 767px) {
  .fx-quick-apply .drv-form { padding: 24px; }
}

/* "Our strong points" photo cards stack as you scroll */
.elementor .e-con.fx-drv-card { position: sticky; top: 100px; }
@media (max-width: 767px) { .elementor .e-con.fx-drv-card { top: 80px; } }

/* FAQ with solid green lines */
.fx-faq-acc.fx-faq-acc--solid .e-n-accordion { border-top-color: #52bb4a; }
.fx-faq-acc.fx-faq-acc--solid .e-n-accordion-item { border-bottom-color: #52bb4a; }

/* "Apply Now" band: stripes background and frosted panel */
.elementor .e-con.fx-drv-cta {
  background: url("../media/GCwrxaUMBEJF1AkpCKEugavEXw_width1440height300.svg") center / cover no-repeat;
}
.elementor .e-con.fx-cta-panel {
  width: auto;
  max-width: 100%;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.fx-cta-panel .elementor-heading-title { white-space: nowrap; }
.fx-btn-chev .elementor-button-icon { font-size: 11px; }
.fx-btn-chev .elementor-button-icon svg { width: 11px; height: 11px; fill: currentColor; }
@media (max-width: 767px) {
  .fx-cta-panel .elementor-heading-title { white-space: normal; }
}

/* This page has its own "Apply Now" band, so the theme's "Ready to do
   business?" band is hidden on any page that contains this section. */
body:has(.fx-hide-theme-cta) .framer-18r4ag { display: none !important; }

/* ==========================================================================
   CONTACT PAGE
   ========================================================================== */

/* Round icon badges on the department cards (inline SVG in an HTML widget) */
.fx-dept-ico {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #52bb4a;
  display: flex;
  align-items: center;
  justify-content: center;
}
.fx-dept-ico--white { background: #fff; }
.fx-dept-ico svg { display: block; overflow: visible; flex: none; }
.fx-dept-note a { color: #0099ff; text-decoration: underline; }

/* "Get directions" links */
.fx-directions .elementor-heading-title a { color: inherit; text-underline-offset: 2px; transition: color .2s ease; }
.fx-directions .elementor-heading-title a:hover { color: #52bb4a; }

/* "Send a message" scrolls here; leave room for the fixed menu bar */
#fxc-form { scroll-margin-top: 60px; }

/* Contact form (Contact Form 7). Ported from the old Contact page. */
.fx-contact-formcard {
  --fx-green: #52BB4A;
  --fx-green-hover: #48A941;
  --fx-muted: #757575;
  --fx-line: #BBBBBB;
  font-family: Inter, "Inter Placeholder", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #000;
}
.fx-contact-formcard *,
.fx-contact-formcard *::before,
.fx-contact-formcard *::after { box-sizing: border-box; }
.fx-contact-formcard p,
.fx-contact-formcard ul { margin: 0; padding: 0; }
.elementor .fx-contact-formcard :focus-visible { outline: 2px solid var(--fx-green); outline-offset: 3px; }
/* Contact Form 7 helper elements (normally hidden by CF7's own stylesheet) */
.elementor .fx-contact-formcard .hidden-fields-container { display: none; }
.elementor .fx-contact-formcard .wpcf7 form.init .wpcf7-response-output,
.elementor .fx-contact-formcard .wpcf7 form.resetting .wpcf7-response-output,
.elementor .fx-contact-formcard .wpcf7 form.submitting .wpcf7-response-output,
.elementor .fx-contact-formcard .wpcf7-response-output:empty { display: none; }
.elementor .fx-contact-formcard .screen-reader-response {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); border: 0; word-wrap: normal;
}
/* Contact Form 7 output */
.elementor .fx-contact-formcard .wpcf7,
.elementor .fx-contact-formcard form{margin:0;}
.elementor .fx-contact-formcard br{display:none;}
.elementor .fx-contact-formcard .fxc-form{display:flex;flex-direction:column;gap:10px;}
.elementor .fx-contact-formcard .fxc-form > p{margin:0;}
.elementor .fx-contact-formcard .fxc-field{display:flex;flex-direction:column;gap:10px;}
.elementor .fx-contact-formcard .fxc-field label{
  font-size:14px;line-height:1.2;font-weight:700;letter-spacing:0;text-transform:none;color:#000;
}
.elementor .fx-contact-formcard .wpcf7-form-control-wrap{display:block;position:relative;}
.elementor .fx-contact-formcard input[type="text"],
.elementor .fx-contact-formcard input[type="email"],
.elementor .fx-contact-formcard input[type="tel"],
.elementor .fx-contact-formcard input[type="url"],
.elementor .fx-contact-formcard input[type="number"],
.elementor .fx-contact-formcard select,
.elementor .fx-contact-formcard textarea{
  display:block;width:100%;height:60px;margin:0;
  padding:20px 24px;border:1px solid var(--fx-line);border-radius:10px;background:#fff;
  font-family:inherit;font-size:16px;line-height:1;color:#000;box-shadow:none;
  -webkit-appearance:none;appearance:none;outline:none;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.elementor .fx-contact-formcard textarea{height:auto;min-height:140px;line-height:1.5;resize:vertical;}
.elementor .fx-contact-formcard select{
  cursor:pointer;padding-right:52px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 24px center;
}
.elementor .fx-contact-formcard input::placeholder,
.elementor .fx-contact-formcard textarea::placeholder{color:var(--fx-line);opacity:1;}
.elementor .fx-contact-formcard input:focus,
.elementor .fx-contact-formcard select:focus,
.elementor .fx-contact-formcard textarea:focus{border-color:var(--fx-green);box-shadow:0 0 0 3px rgba(82,187,74,.2);outline:none;}
.elementor .fx-contact-formcard .wpcf7-not-valid{border-color:#D93025;}
.elementor .fx-contact-formcard .wpcf7-not-valid-tip{display:block;margin-top:6px;font-size:12px;line-height:1.3;color:#D93025;}

/* consent checkbox */
.elementor .fx-contact-formcard .fxc-consent{margin-top:22px;}
.elementor .fx-contact-formcard .fxc-consent .wpcf7-list-item{display:block;margin:0;}
.elementor .fx-contact-formcard .fxc-consent label{
  display:flex;align-items:center;gap:10px;cursor:pointer;
  font-size:12px;line-height:1.2;font-weight:400;color:#000;
}
.elementor .fx-contact-formcard .fxc-consent input[type="checkbox"]{
  -webkit-appearance:none;appearance:none;flex:0 0 18px;width:18px;height:18px;margin:0;
  border:1px solid var(--fx-line);border-radius:4px;background:#fff center/12px 12px no-repeat;cursor:pointer;
}
.elementor .fx-contact-formcard .fxc-consent input[type="checkbox"]:checked{
  border-color:var(--fx-green);background-color:var(--fx-green);
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2 5 8.6l4.6-5' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* secured note */
.elementor .fx-contact-formcard .fxc-secure{
  display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.2;color:#000;
}
.elementor .fx-contact-formcard .fxc-secure:before{
  content:"";flex:0 0 18px;height:18px;
  background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14.727' height='18' viewBox='0 0 14.727 18'%3E%3Cpath fill='%23000' d='M 7.364 0 L 14.087 1.494 C 14.461 1.577 14.727 1.909 14.727 2.293 L 14.727 10.464 C 14.727 12.105 13.907 13.638 12.541 14.548 L 7.364 18 L 2.186 14.548 C 0.821 13.638 0 12.106 0 10.465 L 0 2.293 C 0 1.909 0.266 1.577 0.641 1.494 Z M 7.364 1.676 L 1.636 2.949 L 1.636 10.464 C 1.636 11.558 2.183 12.58 3.094 13.187 L 7.364 16.034 L 11.634 13.187 C 12.544 12.58 13.091 11.558 13.091 10.465 L 13.091 2.949 L 7.364 1.677 Z M 7.364 4.909 C 8.104 4.909 8.753 5.406 8.945 6.122 C 9.137 6.837 8.824 7.592 8.183 7.963 L 8.182 11.455 L 6.545 11.455 L 6.545 7.963 C 5.904 7.592 5.591 6.837 5.783 6.122 C 5.975 5.407 6.623 4.909 7.364 4.909 Z'/%3E%3C/svg%3E") center/15px 18px no-repeat;
}

/* submit */
.elementor .fx-contact-formcard .fxc-submitrow{position:relative;margin-top:22px;display:flex;flex-direction:column;gap:12px;}
.elementor .fx-contact-formcard input[type="submit"],
.elementor .fx-contact-formcard .wpcf7-submit{
  display:block;width:100%;height:60px;margin:0;padding:0 20px;
  border:0;border-radius:10px;background:var(--fx-green);color:#fff;
  font-family:inherit;font-size:18px;line-height:1.2;font-weight:700;letter-spacing:0;text-transform:none;
  cursor:pointer;box-shadow:none;-webkit-appearance:none;appearance:none;
  transition:background-color .2s ease,opacity .2s ease;
}
.elementor .fx-contact-formcard .wpcf7-submit:hover{background:var(--fx-green-hover);transform:none;}
.elementor .fx-contact-formcard .wpcf7-submit:disabled{opacity:.55;cursor:not-allowed;}
.elementor .fx-contact-formcard .wpcf7-spinner{position:absolute;right:18px;top:18px;margin:0;background-color:rgba(255,255,255,.85);}
.elementor .fx-contact-formcard .fxc-submitnote{font-size:12px;line-height:1.4;color:var(--fx-muted);text-align:center;}
.elementor .fx-contact-formcard .wpcf7 form .wpcf7-response-output{
  margin:16px 0 0;padding:12px 16px;border-radius:10px;border:1px solid var(--fx-line);
  font-size:14px;line-height:1.45;color:#000;
}
.elementor .fx-contact-formcard .wpcf7 form.sent .wpcf7-response-output{border-color:var(--fx-green);background:rgba(82,187,74,.1);}
.elementor .fx-contact-formcard .wpcf7 form.invalid .wpcf7-response-output,
.elementor .fx-contact-formcard .wpcf7 form.unaccepted .wpcf7-response-output,
.elementor .fx-contact-formcard .wpcf7 form.payment-required .wpcf7-response-output{border-color:#E0A800;background:rgba(224,168,0,.08);}
.elementor .fx-contact-formcard .wpcf7 form.failed .wpcf7-response-output,
.elementor .fx-contact-formcard .wpcf7 form.aborted .wpcf7-response-output,
.elementor .fx-contact-formcard .wpcf7 form.spam .wpcf7-response-output{border-color:#D93025;background:rgba(217,48,37,.06);}

/* --------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .fx-ticker .elementor-heading-title,
  .elementor .e-con.fx-logo-track { animation: none; }
}
