/*
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.1.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* =====================================================================
   2000 Engineering — all site CSS in one place (Flerque).
   Style mix: Studio Dark (dark-first surfaces, two-tone headings, hairlines, one hot accent)
   + Van Muijen (numbered product index with photo preview) + client DNA: the globe-grid bg.jpg
   behind the whole site (client's must-have), logo red, the logo's chrome frame as edge, condensed caps.
   Units: em everywhere, so everything scales with the body size (Flerque Magic, section 1).
   Colours: only Elementor globals. The kit values ARE the dark theme (default); section 2 swaps to light.
   Global colour ids: primary = red (buttons), secondary = red text, text, accent = deep red (hover),
   b0a0001 background, b0a0002 surface, b0a0003 card, b0a0004 muted, b0a0005 dim (large text only),
   b0a0006 line, b0a0007 logo red (decorative), b0a0008 white (fixed), b0a0009 ink (fixed)
   Fonts: Barlow / Barlow Condensed, self-hosted, TEMPORARY until the client confirms the house font.
   ===================================================================== */

/* ---------- 1. Base, fonts + Flerque Magic (body size scales with the viewport) ---------- */
@font-face { font-family: "Barlow"; src: url(/wp-content/uploads/fonts-te/barlow-latin-400-normal.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Barlow"; src: url(/wp-content/uploads/fonts-te/barlow-latin-600-normal.woff2) format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url(/wp-content/uploads/fonts-te/barlow-condensed-latin-500-normal.woff2) format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url(/wp-content/uploads/fonts-te/barlow-condensed-latin-600-normal.woff2) format("woff2"); font-weight: 600 700; font-display: swap; }

header { width: 100% !important; }
html, body { overflow-x: clip; overflow-y: visible; position: relative; }
::selection { background: var(--e-global-color-primary) !important; color: #fff; }

body { font-size: 1.0vw !important; }
@media screen and (min-width: 1920px) { body { font-size: 20px !important; } }
@media screen and (min-width: 1101px) and (max-width: 1400px) { body { font-size: 1.2vw !important; } }
@media screen and (min-width: 768px) and (max-width: 1100px) { body { font-size: 1.8vw !important; } }
@media screen and (max-width: 767px) { body { font-size: max(15px, 3.2vw) !important; } }

body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; overscroll-behavior: none; }
html { scroll-padding-top: 9em; }
:focus-visible { outline: .125em solid var(--e-global-color-secondary); outline-offset: .2em; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }

/* ---------- 2. Light theme: same globals, lighter values (plugin sets data-theme; dark is default) ---------- */
html[data-theme="light"] body {
  --e-global-color-secondary: #B8101A;   /* 5.9:1 on background */
  --e-global-color-text: #141618;        /* 15.9:1 */
  --e-global-color-b0a0001: #EEF0F1;     /* background */
  --e-global-color-b0a0002: #E4E7E9;     /* surface */
  --e-global-color-b0a0003: #FFFFFF;     /* card */
  --e-global-color-b0a0004: #4B535A;     /* muted 6.8:1 */
  --e-global-color-b0a0005: #7B8288;     /* dim, large headings only 3.4:1 */
  --e-global-color-b0a0006: rgba(20, 22, 24, .13); /* line */
}
html[data-theme="dark"] { color-scheme: dark; }
html[data-theme="light"] { color-scheme: light; }

/* the client's globe-grid background, fixed behind the whole site */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, rgb(14 15 17 / .5) 0%, rgb(14 15 17 / .72) 45%, rgb(14 15 17 / .9) 100%),
              url(/wp-content/uploads/2026/10/2000-engineering-bg.webp) 70% 0 / cover no-repeat;
}
html[data-theme="light"] body::before {
  background: linear-gradient(180deg, rgb(238 240 241 / .8) 0%, rgb(238 240 241 / .9) 50%, rgb(238 240 241 / .95) 100%),
              url(/wp-content/uploads/2026/10/2000-engineering-bg.webp) 70% 0 / cover no-repeat;
}

/* Elementor containers in a row are 100% wide by default: .te-grow takes the remaining space instead */
.e-con.te-grow { width: auto !important; flex: 1 1 0; min-width: 0; }

/* ---------- 3. Type details ---------- */
.elementor-heading-title { text-wrap: balance; }
.elementor-heading-title em { font-style: normal; color: var(--e-global-color-secondary); }
.te-dim { color: var(--e-global-color-b0a0005); }
.te-upper .elementor-heading-title { text-transform: uppercase; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor a { font: inherit; color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.elementor-widget-text-editor a:hover { color: var(--e-global-color-text); }
/* red diamond before eyebrows (from the logo's red block) */
.te-dot .elementor-heading-title { display: flex; align-items: center; gap: .6em; }
.te-eyebrow--center .elementor-heading-title { justify-content: center; }
.te-dot .elementor-heading-title::before { content: ""; flex: none; width: .5em; height: .5em; background: var(--e-global-color-b0a0007); border-radius: .08em; rotate: 45deg; }
.te-micro .elementor-heading-title { font-size: .85em; }
.te-link a, .te-more a { text-decoration: none; border-bottom: 1px solid currentColor; }
.te-link a:hover, .te-more a:hover { border-bottom-color: transparent; }

/* ---------- 4. Header ---------- */
.te-header { background: rgb(14 15 17 / .84); backdrop-filter: blur(14px); border-bottom: 1px solid var(--e-global-color-b0a0006); transition: box-shadow .3s; }
html[data-theme="light"] .te-header { background: rgb(255 255 255 / .9); }
.te-header.elementor-sticky--effects { box-shadow: 0 1.25em 2.5em -1.25em rgb(0 0 0 / .55); }
.te-utility .elementor-icon-list-item a { text-decoration: none; }
.te-utility .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--e-global-color-text); }
.te-utility .elementor-icon-list-item::after { display: none; }
@media (max-width: 767px) { .te-utility-links .elementor-icon-list-item:nth-child(2) { display: none; } }
/* logo: the full logo with its white tagline on dark; tagline cropped off in light mode */
.te-logo img { width: 100%; aspect-ratio: 1222 / 368; object-fit: cover; object-position: top; border-radius: 0 !important; }
html[data-theme="light"] .te-logo img { aspect-ratio: 1222 / 245; }
.te-footer .te-logo img { aspect-ratio: 1222 / 368 !important; }
/* theme toggle: reset the kit's button style that hits every <button> */
.te-theme-toggle {
  display: inline-grid !important; place-items: center; width: 2.4em; height: 2.4em; padding: 0 !important;
  border: 1px solid var(--e-global-color-b0a0006) !important; border-radius: .35em !important; background: none !important; box-shadow: none !important;
  color: var(--e-global-color-text) !important; cursor: pointer;
}
.te-theme-toggle:hover { border-color: var(--e-global-color-secondary) !important; }
.te-theme-toggle svg { width: 1.1em; height: 1.1em; }
.te-theme-toggle .te-moon, html[data-theme="light"] .te-theme-toggle .te-sun { display: none; }
html[data-theme="light"] .te-theme-toggle .te-moon { display: block; }

/* menu: red underline (the logo's red bar) under hover/active items */
.te-mega-menu .e-n-menu-title { position: relative; }
.te-mega-menu .e-n-menu-title::after {
  content: ""; position: absolute; left: .75em; right: .75em; bottom: .25em; height: 2px; background: var(--e-global-color-b0a0007);
  transform: scaleX(0); transform-origin: left; transition: transform .3s cubic-bezier(.2, .7, .2, 1);
}
.te-mega-menu .e-n-menu-title:hover::after, .te-mega-menu .e-n-menu-title.e-current::after,
.te-mega-menu .e-n-menu-title[aria-expanded="true"]::after { transform: none; }
.te-mega-menu .e-n-menu-toggle { margin-left: auto; width: 3em; height: 3em; border-radius: .4em; border: 1px solid var(--e-global-color-b0a0006); place-items: center; justify-content: center; }
.te-mega-list .elementor-icon-list-item { padding: .45em 0 !important; border-bottom: 1px solid var(--e-global-color-b0a0006); }
.te-mega-list .elementor-icon-list-item::after { display: none; }
.te-mega-list a { text-decoration: none; display: flex !important; justify-content: space-between; transition: padding .25s; }
.te-mega-list a::after { content: "→"; color: var(--e-global-color-secondary); opacity: 0; transition: opacity .2s; }
.te-mega-list a:hover { padding-left: .35em; }
.te-mega-list a:hover .elementor-icon-list-text { color: var(--e-global-color-secondary); }
.te-mega-list a:hover::after { opacity: 1; }
.te-mega-help strong { color: var(--e-global-color-text); }
.te-mega-help a { color: var(--e-global-color-secondary); font-weight: 600; }
@media (max-width: 1100px) {
  .te-mega-menu .e-n-menu-wrapper { margin-top: .6em !important; padding: .4em 1em !important; background: var(--e-global-color-b0a0001) !important; border: 1px solid var(--e-global-color-b0a0006) !important; border-radius: .9em !important; box-shadow: 0 1.5em 3em -1em rgb(0 0 0 / .6) !important; }
  .te-mega-menu .e-n-menu-heading { padding: 0 !important; background: none !important; }
  .te-mega-menu .e-n-menu-item, .te-mega-menu .e-n-menu-item > .e-n-menu-title, .te-mega-menu .e-n-menu-content { margin-inline: 0 !important; inset-inline: auto !important; width: 100% !important; max-width: 100% !important; }
  .te-mega-menu .e-n-menu-item { border-bottom: 1px solid var(--e-global-color-b0a0006); }
  .te-mega-menu .e-n-menu-item:last-child { border-bottom: 0; }
  .te-mega-menu .e-n-menu-title { justify-content: space-between !important; width: 100% !important; padding: .9em .2em !important; background: none !important; }
  .te-mega-menu .e-n-menu-title::after { display: none; }
  .te-mega-menu .e-n-menu-content > .e-con { width: 100% !important; padding: 0 !important; }
  .te-mega { width: 100% !important; padding: 0 0 .75em !important; border: 0 !important; box-shadow: none !important; background: none !important; }
}

/* ---------- 5. Buttons: red block + darker arrow chip (the 2000 | ENGINEERING split of the logo) ---------- */
.elementor-button { position: relative; border: 1px solid transparent; box-shadow: 0 .75em 1.75em -1em rgb(208 18 27 / .8); transition: color .3s, background-color .3s, border-color .3s, transform .15s; }
.elementor-button:active { transform: scale(.97); }
.elementor-button-content-wrapper { align-items: center; gap: .9em; }
.elementor-button-text { white-space: nowrap; }
.elementor-button .elementor-button-icon { display: grid; place-items: center; width: 2.4em; height: 2.4em; margin-right: -.85em; border-radius: .25em; background: rgb(0 0 0 / .22); overflow: hidden; }
.elementor-button .elementor-button-icon svg { width: 1em; height: 1em; fill: currentColor !important; }
.elementor-button:hover .elementor-button-icon svg { animation: te-arrow .5s cubic-bezier(.7, 0, .2, 1); }
@keyframes te-arrow { 50% { translate: 1.6em 0; } 50.01% { translate: -1.6em 0; } }
.elementor-button:has(.elementor-button-icon) { padding-block: .3em !important; padding-right: 1.2em !important; }
/* ghost variant */
.te-btn-ghost .elementor-button { background: transparent !important; color: var(--e-global-color-text) !important; border-color: var(--e-global-color-b0a0006); box-shadow: none; }
.te-btn-ghost .elementor-button:hover { background: var(--e-global-color-accent) !important; border-color: var(--e-global-color-accent); color: #fff !important; }
.te-btn-ghost .elementor-button .elementor-button-icon { background: var(--e-global-color-b0a0006); }
/* icon buttons (slider arrows, sticky call) */
.te-scroll .elementor-icon, .te-sticky-call .elementor-icon { border-width: 1px !important; border-radius: .35em !important; transition: background-color .2s, border-color .2s; }
.te-scroll .elementor-icon:hover { background: var(--e-global-color-primary) !important; border-color: var(--e-global-color-primary) !important; color: #fff !important; }
.te-scroll .elementor-icon:hover svg { fill: #fff !important; }

/* ---------- 6. Photos: soft radius + the logo's chrome edge ---------- */
.te-photo img { width: 100%; object-fit: cover; border-radius: .9em !important; }
.te-chrome img { border: 1px solid transparent !important; background: linear-gradient(100deg, #2b2d30 0%, #8d9196 18%, #e9eaeb 32%, #6c7075 50%, #c9cbce 72%, #3a3c40 100%) border-box; background-clip: border-box; }
.te-chrome img { padding: 1px; }
.te-inset img { box-shadow: 0 1.5em 3em -1.25em rgb(0 0 0 / .7); }
.te-hero-photo img { aspect-ratio: 4 / 3.3; box-shadow: 0 1.5em 3em -1.25em rgb(0 0 0 / .6); }
.te-inset img, .te-stage-img img, .te-photo.te-chrome:not(.te-hero-photo) img { aspect-ratio: 4 / 3; }
.te-avatar img { aspect-ratio: 1; object-fit: cover; border-radius: .6em !important; }

/* ---------- 7. Hero ---------- */
.te-hero-media { position: relative; }
.te-stat { position: absolute !important; top: 1.25em; right: 1.25em; z-index: 3; box-shadow: 0 1.5em 3em -1.25em rgb(0 0 0 / .7); }
@media (max-width: 767px) { .te-stat { top: .75em; right: .75em; } }
.te-stat .elementor-heading-title { font-size: 3.2em !important; }
.te-chips .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: .5em; margin: 0 !important; }
.te-chips .elementor-icon-list-item { margin: 0 !important; inset: auto !important; padding: 0 !important; }
.te-chips .elementor-icon-list-item::after { display: none; }
.te-chips a { display: inline-block !important; padding: .5em .9em; border: 1px solid var(--e-global-color-b0a0006); border-radius: .35em; background: var(--e-global-color-b0a0002); text-decoration: none; transition: border-color .2s; }
.te-chips a::before { content: "→ "; color: var(--e-global-color-secondary); }
.te-chips a:hover { border-color: var(--e-global-color-b0a0007); }
.te-chips .elementor-icon-list-text { font-weight: 600; }

/* ---------- 8. Partner logos on white tiles (logos are made for white) ---------- */
.te-logo-tile img { height: 3.4em; width: 100%; object-fit: contain; padding: .45em .7em; background: #fff; border-radius: .4em !important; }

/* ---------- 9. Facts ---------- */
.te-facts { overflow: hidden; }
.te-fact { border-left: 1px solid var(--e-global-color-b0a0006); }
.te-fact:first-child { border-left: 0; }
@media (max-width: 1100px) {
  .te-fact:nth-child(odd) { border-left: 0; }
  .te-fact:nth-child(n+3) { border-top: 1px solid var(--e-global-color-b0a0006); }
}

/* ---------- 10. "Exclusief Benelux" badge ---------- */
.te-badge .elementor-heading-title { display: grid; gap: .15em; padding: .55em .8em; background: var(--e-global-color-primary); border-radius: .35em; text-transform: uppercase; line-height: 1; }
.te-badge small { font-size: .55em; letter-spacing: .12em; opacity: .9; }

/* ---------- 11. Product index + photo stage (pure CSS preview) ---------- */
.te-ix { position: relative; text-decoration: none; transition: background-color .25s; }
.te-ix::after { content: ""; position: absolute; left: 0; top: -1px; bottom: -1px; width: 3px; background: var(--e-global-color-b0a0007); transform: scaleY(0); transition: transform .3s cubic-bezier(.2, .7, .2, 1); }
.te-ix:hover, .te-ix:focus-visible { background: var(--e-global-color-b0a0002); }
.te-ix:hover::after, .te-ix:focus-visible::after { transform: none; }
.te-ix__no { width: 2.5em; }
.te-ix__t .elementor-heading-title { transition: color .2s, translate .3s; }
.te-ix:hover .te-ix__t .elementor-heading-title { color: var(--e-global-color-secondary); translate: .3em 0; }
.te-ix__go { opacity: .35; transition: opacity .2s, translate .3s; }
.te-ix:hover .te-ix__go { opacity: 1; translate: .3em 0; }
@media (max-width: 767px) { .te-ix__d { display: none; } }
.te-stage { position: sticky; top: 10em; }
.te-stage-photos { display: grid !important; border-radius: .9em; }
.te-stage-photos > .elementor-widget { grid-area: 1 / 1; opacity: 0; transition: opacity .3s; }
.te-stage-photos > .te-stage-img--1 { opacity: 1; }
.te-products:has(.te-ix:hover) .te-stage-img--1 { opacity: 0; }
.te-products:has(.te-ix--1:hover) .te-stage-img--1, .te-products:has(.te-ix--2:hover) .te-stage-img--2, .te-products:has(.te-ix--3:hover) .te-stage-img--3,
.te-products:has(.te-ix--4:hover) .te-stage-img--4, .te-products:has(.te-ix--5:hover) .te-stage-img--5, .te-products:has(.te-ix--6:hover) .te-stage-img--6,
.te-products:has(.te-ix--7:hover) .te-stage-img--7, .te-products:has(.te-ix--8:hover) .te-stage-img--8, .te-products:has(.te-ix--9:hover) .te-stage-img--9,
.te-products:has(.te-ix--10:hover) .te-stage-img--10, .te-products:has(.te-ix--11:hover) .te-stage-img--11, .te-products:has(.te-ix--12:hover) .te-stage-img--12,
.te-products:has(.te-ix--13:hover) .te-stage-img--13, .te-products:has(.te-ix--14:hover) .te-stage-img--14, .te-products:has(.te-ix--15:hover) .te-stage-img--15 { opacity: 1; }

/* ---------- 12. Industries band ---------- */
.te-band { border-block: 1px solid var(--e-global-color-b0a0006); }
html[data-theme="dark"] .te-band { background-color: rgb(27 29 32 / .88) !important; }
.te-sector { position: relative; isolation: isolate; border: 1px solid var(--e-global-color-b0a0006); }
.te-sector__img { position: absolute !important; inset: 0; z-index: -2; margin: 0 !important; }
.te-sector__img img { width: 100%; height: 100% !important; object-fit: cover; border-radius: 0 !important; transition: scale .8s cubic-bezier(.2, .7, .2, 1); }
.te-sector:hover .te-sector__img img { scale: 1.06; }
.te-sector::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(10 11 12 / 0) 30%, rgb(10 11 12 / .92) 100%); }
.te-sector__body .elementor-heading-title, .te-sector__body p { color: #fff; }
.te-sector__body .elementor-widget-text-editor { color: #d6d9dc !important; }
.te-sector__body p.elementor-heading-title { color: #ff7a7e !important; }
@media (min-width: 1101px) { .te-sectors > .te-sector:nth-child(even) { margin-top: 2em; } }

/* ---------- 13. Projects slider (native scroll-snap, arrows by the theme plugin) ---------- */
.te-track { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 1em !important; margin-right: calc(50% - 50vw) !important; width: auto !important; }
.te-track::-webkit-scrollbar { display: none; }
.te-project { flex: 0 0 19em !important; width: 19em !important; scroll-snap-align: start; text-decoration: none; }
.te-project:nth-child(even) { margin-top: 2.5em; }
.te-project img { aspect-ratio: 4 / 5; border: 1px solid var(--e-global-color-b0a0006); transition: filter .3s; }
.te-project:hover img { filter: brightness(1.12); }
.te-project:hover h3 { text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 767px) { .te-project { flex-basis: 75vw !important; width: 75vw !important; } }

/* ---------- 14. Process steps ---------- */
.te-step__no { width: 2.2em; text-align: center; }
.te-step__no .elementor-heading-title { color: transparent !important; -webkit-text-stroke: 1px var(--e-global-color-b0a0005); font-size: 3em !important; transition: color .3s; }
.te-step:hover .te-step__no .elementor-heading-title { color: var(--e-global-color-b0a0007) !important; -webkit-text-stroke-color: var(--e-global-color-b0a0007); }
@media (min-width: 1101px) { .te-sticky-col { position: sticky; top: 10em; } }

/* ---------- 15. Reference quote card overlapping the photo ---------- */
.te-quote { position: relative; z-index: 2; box-shadow: 0 1.5em 3em -1.25em rgb(0 0 0 / .6); }
.te-quote::after { content: "“"; position: absolute; right: .3em; top: -.35em; font: 600 8em/1 "Barlow Condensed", sans-serif; color: var(--e-global-color-b0a0007); }
@media (min-width: 1101px) { .te-quote { margin-left: -5em; } }
@media (max-width: 1100px) { .te-quote { margin-top: -3em; margin-inline: 1em; width: auto !important; } }

/* ---------- 16. Offer: Gravity Forms (form class te-gf, rendered with theme="gravity-theme") ---------- */
.te-offer { position: relative; }
.te-offer::after { content: ""; position: absolute; right: 0; top: 10%; width: 40em; height: 40em; z-index: -1; background: radial-gradient(closest-side, rgb(208 18 27 / .2), transparent); pointer-events: none; }
.te-gf-wrap .gform_wrapper.gravity-theme { margin: 0; font: inherit; color: var(--e-global-color-text); }
.te-gf-wrap .gform_wrapper.gravity-theme .gform_fields { row-gap: 1.1em; column-gap: 1em; }
.te-gf-wrap .gform_wrapper.gravity-theme .gfield_label { margin-bottom: .4em; font-size: .95em; font-weight: 600; color: var(--e-global-color-text); }
.te-gf-wrap .gfield_required, .te-gf-wrap .gform_required_legend { display: none !important; }
.te-gf-wrap .gform_wrapper.gravity-theme input[type="text"], .te-gf-wrap .gform_wrapper.gravity-theme input[type="email"],
.te-gf-wrap .gform_wrapper.gravity-theme input[type="tel"], .te-gf-wrap .gform_wrapper.gravity-theme select, .te-gf-wrap .gform_wrapper.gravity-theme textarea {
  width: 100%; padding: .8em .9em; border: 1px solid var(--e-global-color-b0a0006); border-radius: .4em;
  background: var(--e-global-color-b0a0001); color: var(--e-global-color-text); font: inherit; font-size: 1em; line-height: 1.5; box-shadow: none;
}
.te-gf-wrap .gform_wrapper.gravity-theme select { appearance: auto; }
.te-gf-wrap .gform_wrapper.gravity-theme textarea { height: 7em; min-height: 7em; }
.te-gf-wrap .gform_wrapper.gravity-theme ::placeholder { color: var(--e-global-color-b0a0005); opacity: 1; }
.te-gf-wrap .gform_wrapper.gravity-theme :is(input, select, textarea):focus-visible { border-color: transparent; outline: .125em solid var(--e-global-color-secondary); outline-offset: 0; }
.te-gf-wrap .gform_wrapper.gravity-theme .gform_footer { margin: .4em 0 0; padding: 0; }
.te-gf-wrap .gform_wrapper.gravity-theme .gform_button {
  min-height: 3.4em; padding: .3em 4em .3em 1.3em; border: 0; border-radius: .4em; cursor: pointer;
  background: var(--e-global-color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Crect width='40' height='40' rx='4' fill='%23000' fill-opacity='.22'/%3E%3Cpath d='M12 20h15M22 14l6 6-6 6' fill='none' stroke='%23fff' stroke-width='2.4'/%3E%3C/svg%3E") right .3em center / 2.6em no-repeat;
  color: #fff; font: 600 1.05em/1 "Barlow Condensed", sans-serif; letter-spacing: .06em; text-transform: uppercase;
  box-shadow: 0 .75em 1.75em -1em rgb(208 18 27 / .8); transition: background-color .3s, transform .15s;
}
.te-gf-wrap .gform_wrapper.gravity-theme .gform_button:hover { background-color: var(--e-global-color-accent); }
.te-gf-wrap .gform_wrapper.gravity-theme .gform_button:active { transform: scale(.97); }
.te-gf-wrap .gform_wrapper.gravity-theme .gfield_error :is(input, textarea, select) { border-color: var(--e-global-color-secondary); border-width: .125em; }
.te-gf-wrap .gform_wrapper.gravity-theme .validation_message { margin-top: .35em; padding: 0; border: 0; background: none; font-size: .875em; font-weight: 600; color: var(--e-global-color-secondary); }
.te-gf-wrap .gform_validation_errors { border-radius: .4em; }
.te-gf-confirm { padding: 1.5em; border-radius: .6em; border-left: .25em solid var(--e-global-color-b0a0007); background: var(--e-global-color-b0a0002); color: var(--e-global-color-text); }
.te-gf-confirm__title { margin: 0 0 .35em; font: 600 1.6em/1 "Barlow Condensed", sans-serif; text-transform: uppercase; }
.te-gf-confirm p:last-child { margin: 0; }
.te-chrome-box a { text-decoration: none !important; }

/* ---------- 17. News cards ---------- */
.te-post { text-decoration: none; transition: translate .3s, border-color .2s; }
.te-post:hover { translate: 0 -.25em; border-color: var(--e-global-color-b0a0005) !important; }
.te-post__img img { aspect-ratio: 16 / 10; background: #fff; }
.te-post > .elementor-widget:not(.te-post__img) { padding-inline: .5em; }

/* ---------- 18. Footer (always dark) + sticky mobile CTA ---------- */
.te-footer {
  --e-global-color-text: #F1F2F2; --e-global-color-secondary: #FF5A5F; --e-global-color-b0a0004: #AEB4B9;
  --e-global-color-b0a0005: #7D848A; --e-global-color-b0a0006: rgba(255, 255, 255, .12);
  position: relative; border-top: 0 !important;
}
.te-footer::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(100deg, #2b2d30 0%, #8d9196 18%, #e9eaeb 32%, #6c7075 50%, #c9cbce 72%, #3a3c40 100%); }
.te-footer-links a { text-decoration: none; }
.te-footer-links a:hover .elementor-icon-list-text { color: var(--e-global-color-text); text-decoration: underline; }
.te-address a { text-decoration: none !important; }
.te-credit a { color: var(--e-global-color-text) !important; }
.te-sticky { position: fixed !important; left: .75em; right: .75em; bottom: .75em; z-index: 90; width: auto !important; }
.te-sticky-cta .elementor-button { width: 100%; justify-content: space-between; }
.te-sticky-cta .elementor-button-content-wrapper { justify-content: space-between; width: 100%; }
.te-sticky-call .elementor-icon { border-color: var(--e-global-color-b0a0006) !important; }
@media (max-width: 1100px) { body { padding-bottom: 4.5em; } }
.elementor-editor-active .te-sticky { position: static !important; }

/* ---------- 19. Motion: .te-reveal fades up (never above the fold: LCP) ---------- */
@media (prefers-reduced-motion: no-preference) {
  .te-js .te-reveal { opacity: 0; translate: 0 1.5em; transition: opacity .8s, translate .8s cubic-bezier(.2, .7, .2, 1); }
  .te-js .te-reveal.is-in { opacity: 1; translate: 0 0; }
}
.elementor-editor-active .te-reveal { opacity: 1 !important; translate: none !important; }
