/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
 */

/* =====================================================================
   TOTAL TECHNIC — Premium MRO design system (FAZ-2)
   Navy-based, MOE-blue secondary, red used only as a sparing accent.
   ===================================================================== */

:root {
  --tt-navy:   #040349;  /* Total Navy — primary brand */
  --tt-navy-2: #102136;  /* carbon ink */
  --tt-moe:    #355f91;  /* MOE blue — secondary */
  --tt-moe-2:  #24417c;
  --tt-red:    #355f91;  /* (was Total Red) — remapped to MOE blue: site is now 100% blue/gray/white, no red */
  --tt-paper:  #f6f7f9;  /* off-white page background */
  --tt-paper-2:#eceef1;
  --tt-rule:   #d8dde4;  /* hairline rule */
  --tt-ink:    #0f1626;
  --tt-mute:   #5b6675;
}

/* Tame the big red blocks: Blocksy palette colour-2 (red) -> navy.
   This flips the full-width red CTA / "Our Commitment" sections to navy
   in one move, since they are bound to this palette token. Red is then
   re-introduced only where it belongs (AOG, see below). */
:root,
body {
  --theme-palette-color-2: #040349;
  --paletteColor2: #040349;
}

/* Also neutralize Blocksy palette colour-1 (used for menu/link accents) to navy */
:root, body { --theme-palette-color-1: #040349; --paletteColor1: #040349; }

/* Kill any remaining theme reds: active/hover menu items + breadcrumbs -> navy */
.current-menu-item > .ct-menu-link,
.current_page_item > .ct-menu-link,
.current-menu-ancestor > .ct-menu-link,
.ct-menu-link:hover, .ct-menu-link:focus,
.ct-breadcrumbs [aria-current],
.ct-breadcrumbs .ct-active,
.entry-meta a:hover, .ct-header-account:hover {
  color: var(--tt-navy) !important;
}

/* Smart Slider 3: buttons & active bullets -> navy (no red) */
.n2-ss-button-container a, .n2-ss-button, [class*="n2-ss-button"],
.n2-ss-control-bullet-active b, .nextend-bullet-active {
  background-color: var(--tt-navy) !important;
  color: #fff !important;
  border-color: var(--tt-navy) !important;
}

/* ---- Base canvas: off-white instead of pure white ---- */
body { background-color: var(--tt-paper); color: var(--tt-ink); }

/* ---- Premium/technical: flatten rounded corners to 0-2px ---- */
.elementor-button, .ct-button, .wp-block-button__link,
button, input[type="text"], input[type="email"], input[type="tel"],
input[type="search"], input[type="submit"], select, textarea,
.eael-call-to-action, .eael-cta-button, .cta-button,
.nf-field-element input, .nf-field-element textarea,
.tablepress, .ct-card, .wpdt-c, .elementor-widget-image img,
.search-field, .ct-header-trigger {
  border-radius: 2px !important;
}

/* ---- Buttons: navy as default, white text; consistent weight ---- */
.elementor-button, .cta-button, .eael-cta-button, .wp-block-button__link {
  background-color: var(--tt-navy);
  color: #fff;
  font-weight: 600;
  letter-spacing: .02em;
  transition: background-color .18s ease, transform .18s ease;
}
.elementor-button:hover, .cta-button:hover,
.eael-cta-button:hover, .wp-block-button__link:hover {
  background-color: #24417c;
  color: #fff;
}

/* ---- Soft buttons (Lufthansa style): light gray fill, navy text, navy on hover ---- */
.ct-header-cta .ct-button,
.tt-aog, a[href^="tel:"].ct-button, .aog-cta, .elementor-button.tt-critical {
  background-color: #f3f3f3 !important;
  color: var(--tt-navy) !important;
}
.ct-header-cta .ct-button:hover,
.tt-aog:hover, .aog-cta:hover, .elementor-button.tt-critical:hover {
  background-color: var(--tt-navy) !important;
  color: #fff !important;
}

/* ---- Headings: navy, tighter ---- */
h1, h2, h3, .elementor-heading-title { color: var(--tt-navy); letter-spacing: -.01em; }

/* ---- Links / hover ---- */
a { color: var(--tt-moe); }
a:hover { color: var(--tt-navy); }

/* ---- Tables (TablePress C-Ratings + generic): navy header, MOE rules ---- */
.tablepress thead th,
.tablepress tfoot th {
  background-color: var(--tt-navy);
  color: #fff;
  border-color: var(--tt-moe);
  font-weight: 600;
}
.tablepress tbody td { border-color: var(--tt-rule); color: var(--tt-ink); }
.tablepress tbody tr:nth-child(odd) td { background-color: #fff; }
.tablepress tbody tr:nth-child(even) td { background-color: var(--tt-paper-2); }
.tablepress tbody tr:hover td { background-color: #eaf0f7; }

/* ---- Forms (Ninja Forms / generic inputs): clean technical fields ---- */
.nf-field-element input, .nf-field-element textarea, .nf-field-element select,
input[type="text"], input[type="email"], input[type="tel"],
input[type="search"], select, textarea {
  border: 1px solid #e3e6ea !important;
  background: #f3f3f3 !important;
  color: var(--tt-navy) !important;
}
.nf-field-element input:focus, .nf-field-element textarea:focus,
input:focus, textarea:focus, select:focus {
  border-color: var(--tt-moe) !important;
  box-shadow: 0 0 0 2px rgba(53,95,145,.18) !important;
  outline: none;
}
/* Hide Ninja Forms' bare "Notice: JavaScript is required for this content."
   fallback. It only renders when JS is disabled; the mail/phone/address block
   is already shown above every contact form, so JS-off visitors keep a path. */
.ninja-forms-noscript-message { display: none !important; }

/* ---- Thin red accent rule for section tops (used sparingly) ---- */
.tt-accent-top { border-top: 3px solid var(--tt-red); }

/* ---- Footer: keep navy, tidy rules ---- */
.ct-footer { background-color: var(--tt-navy); }
.ct-footer a { color: #c9d3e2; }
.ct-footer a:hover { color: #fff; }

/* ---- Approval credentials: 3 floating cards -> one ruled editorial strip ---- */
/* collapse the grid gap so the three cells form a single continuous panel */
.e-con.e-grid:has(> .elementor-widget-eael-cta-box),
.e-con.e-grid:has(.elementor-widget-eael-cta-box) { gap: 0 !important; }

.elementor-widget-eael-cta-box .eael-call-to-action.cta-basic.bg-lite {
  background: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 22px 30px !important;
  height: 100%;
}
/* hairline divider between cells (skip the first) */
.elementor-widget-eael-cta-box + .elementor-widget-eael-cta-box .eael-call-to-action.bg-lite {
  border-left: 1px solid var(--tt-rule) !important;
}
.eael-call-to-action .eael-cta-heading {
  color: var(--tt-navy) !important;
  font-size: 1.02rem !important;
  margin-bottom: .35rem !important;
  letter-spacing: .01em;
}
.eael-call-to-action p {
  color: var(--tt-mute) !important;
  font-size: .82rem !important;
  line-height: 1.5;
}
.eael-call-to-action .cta-button {
  background: transparent !important;
  color: var(--tt-moe) !important;
  padding: 0 !important;
  border: 0 !important;
  font-weight: 600 !important;
  font-size: .76rem !important;
  letter-spacing: .03em;
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.eael-call-to-action .cta-button:hover { color: var(--tt-navy) !important; }

/* ---- Front-page hero action bar (frames the video hero) ---- */
.tt-hero-bar {
  background: var(--tt-navy);
  border-bottom: 1px solid var(--tt-moe);
  padding: 40px 0 36px;
}
.tt-hero-inner { max-width: 1240px; margin: 0 auto; padding: 0 28px; }
.tt-hero-kicker {
  font-family: "JetBrains Mono", ui-monospace, "Courier New", monospace;
  text-transform: uppercase; letter-spacing: .08em;
  font-size: .72rem; color: #9ec0ea; margin: 0 0 12px;
}
.tt-hero-title {
  color: #fff !important; font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 2.35rem); line-height: 1.12;
  letter-spacing: -.01em; margin: 0 0 22px; max-width: 22ch;
}
.tt-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.tt-hero-actions .tt-act {
  display: inline-block; padding: 11px 20px; border-radius: 2px;
  border: 1px solid rgba(255,255,255,.32); color: #fff; background: transparent;
  font-size: .8rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  text-decoration: none; transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.tt-hero-actions .tt-act:hover { background: rgba(255,255,255,.12); color: #fff; }
.tt-hero-actions .tt-act-primary { background: #fff; color: var(--tt-navy); border-color: #fff; }
.tt-hero-actions .tt-act-primary:hover { background: #e6ebf2; color: var(--tt-navy); }
.tt-hero-actions .tt-act-aog { background: #f3f3f3; border-color: #f3f3f3; color: var(--tt-navy); }
.tt-hero-actions .tt-act-aog:hover { background: var(--tt-navy); border-color: var(--tt-navy); color: #fff; }
@media (max-width: 640px){ .tt-hero-actions .tt-act { flex: 1 1 calc(50% - 12px); text-align: center; } }

/* ---- Lightweight premium slider (Smart Slider replacement) ---- */
.tt-premium-slider {
  position: relative;
  background: var(--tt-navy);
  border-bottom: 1px solid var(--tt-rule);
  overflow: hidden;
}
.tt-premium-slider__stage {
  position: relative;
  min-height: clamp(360px, 44vw, 620px);
  background: var(--tt-navy);
}
.tt-premium-slider__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .5s ease;
}
.tt-premium-slider__slide.is-active {
  opacity: 1;
  pointer-events: auto;
  z-index: 1;
}
.tt-premium-slider__slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(4, 3, 73, .38);
}
.tt-premium-slider__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tt-premium-slider__copy {
  position: absolute;
  z-index: 2;
  left: max(28px, calc((100vw - 1240px) / 2 + 28px));
  bottom: clamp(34px, 6vw, 76px);
  width: min(560px, calc(100% - 56px));
  color: #fff;
}
.tt-premium-slider__kicker {
  font-family: "JetBrains Mono", ui-monospace, "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: .72rem;
  color: #b8cbe4;
  margin: 0 0 12px;
}
.tt-premium-slider__copy h2 {
  color: #fff !important;
  font-size: clamp(1.65rem, 3vw, 3rem);
  line-height: 1.04;
  max-width: 16ch;
  margin: 0 0 16px;
  font-weight: 700;
}
.tt-premium-slider__copy p:not(.tt-premium-slider__kicker) {
  color: #eef3f8;
  font-size: clamp(.95rem, 1.1vw, 1.08rem);
  line-height: 1.55;
  max-width: 46ch;
  margin: 0 0 22px;
}
.tt-premium-slider__copy a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 20px;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 2px;
  color: #fff;
  background: transparent;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  text-decoration: none;
}
.tt-premium-slider__copy a:hover {
  background: #fff;
  color: var(--tt-navy);
}
.tt-premium-slider__controls {
  position: absolute;
  z-index: 3;
  right: max(24px, calc((100vw - 1240px) / 2 + 28px));
  bottom: 28px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.tt-premium-slider__arrow,
.tt-premium-slider__dots button {
  border: 1px solid rgba(255,255,255,.5);
  background: rgba(4,3,73,.72);
  color: #fff;
  border-radius: 2px !important;
  cursor: pointer;
}
.tt-premium-slider__arrow {
  width: 38px;
  height: 38px;
  font-size: 28px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.tt-premium-slider__dots {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tt-premium-slider__dots button {
  width: 10px;
  height: 10px;
  padding: 0;
}
.tt-premium-slider__arrow:hover,
.tt-premium-slider__dots button.is-active {
  background: #fff;
  color: var(--tt-navy);
}
@media (max-width: 760px) {
  .tt-premium-slider__stage { min-height: 520px; }
  .tt-premium-slider__copy {
    left: 22px;
    bottom: 86px;
    width: calc(100% - 44px);
  }
  .tt-premium-slider__copy h2 { max-width: 18ch; }
  .tt-premium-slider__controls {
    left: 22px;
    right: auto;
    bottom: 26px;
  }
}

/* =====================================================================
   Lufthansa minimal pass — flatten + typography + breathing room
   ===================================================================== */
/* Flatten: drop decorative shadows for a clean, restrained surface */
.elementor-widget, .elementor-element, .ct-card, .ct-box, .ekit-wid-con,
.eael-call-to-action, .elementor-button, .wp-block-button__link,
.elementor-widget-image img, .tablepress, .elementskit-card,
.elementor-cta, .ct-image-container, .nf-form-cont {
  box-shadow: none !important;
}

/* Typography: cleaner hierarchy via weight + comfortable rhythm */
body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  line-height: 1.65;
}
p { line-height: 1.7; }
h1, h2, h3, h4, .elementor-heading-title { letter-spacing: -.015em; line-height: 1.18; }
h2, .elementor-heading-title.elementor-size-default { font-weight: 700; }

/* Breathing room: gentle vertical rhythm between stacked elements */
.elementor-widget-heading { margin-bottom: .15em; }
.elementor-widget:not(:last-child) { margin-bottom: 8px; }

/* ---- Homepage: hide the inline hero video section (moved to a launch pop-up) ---- */
.elementor-page-565 .elementor-element-5c70d0f,
.elementor-page-565 .elementor-element-934275b { display: none !important; }

/* ---- Homepage (565): generous Lufthansa-style vertical rhythm ---- */
.elementor-page-565 .elementor-top-section > .elementor-container,
.elementor-page-565 .e-con.e-parent {
  padding-top: 38px !important;
  padding-bottom: 38px !important;
}
/* Old Smart Slider fallback: render filter removes it; CSS keeps it hidden if Elementor bypasses the filter. */
.elementor-page-565 .elementor-element-a202bbf.e-con.e-parent {
  display: none !important;
}
/* section headings on the homepage: larger, airier */
.elementor-page-565 .elementor-widget-heading .elementor-heading-title {
  font-size: clamp(1.5rem, 2.2vw, 2.1rem);
  margin-bottom: .15em;
}
/* news / services tiles: tighter internal text, more gap handled by Elementor */
.elementor-page-565 .elementor-widget-image img { width: 100%; }

/* ---- Video pop-up (Antalya Aksu Opening Ceremony) ---- */
.tt-modal[hidden] { display: none; }
.tt-modal {
  position: fixed; inset: 0; z-index: 100000;
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
.tt-modal-overlay { position: absolute; inset: 0; background: rgba(4,3,73,.78); }
.tt-modal-box {
  position: relative; background: #fff; max-width: 940px; width: 100%;
  border-radius: 2px; overflow: hidden; box-shadow: 0 24px 70px rgba(4,3,73,.45);
}
.tt-modal-head { padding: 22px 30px 16px; border-bottom: 1px solid var(--tt-rule); }
.tt-modal-kicker {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  text-transform: uppercase; letter-spacing: .12em; font-size: .68rem;
  color: var(--tt-moe); margin: 0 0 8px;
}
.tt-modal-title { margin: 0; color: var(--tt-navy); font-size: 1.22rem; line-height: 1.28; font-weight: 700; }
/* Guarantee a sized 16:9 video plane even before metadata loads — otherwise
   the visual pane can collapse and audio starts while video stays "stuck". */
.tt-modal-video { background: #000; aspect-ratio: 16 / 9; max-height: 68vh; overflow: hidden; }
.tt-modal-video video { display: block; width: 100%; height: 100%; object-fit: contain; }
.tt-modal-close {
  position: absolute; top: 10px; right: 12px; z-index: 2;
  width: 36px; height: 36px; border: 0; border-radius: 2px; cursor: pointer;
  background: rgba(255,255,255,.92); color: var(--tt-navy); font-size: 22px; line-height: 1;
}
.tt-modal-close:hover { background: #fff; }
@media (max-width: 600px){ .tt-modal-title { font-size: 1.02rem; } }

/* ---- Footer: persistent credentials line (mono, technical) ---- */
.ct-footer [data-row="bottom"] .ct-footer-copyright::before {
  content: "EASA Part-145 · EASA.145.0530      FAA · 6TVY457C      SHGM · TR.145.086";
  display: block;
  font-family: "JetBrains Mono", ui-monospace, "Courier New", monospace;
  font-size: .72rem;
  letter-spacing: .04em;
  color: #9ec0ea;
  margin-bottom: 10px;
}

/* =====================================================================
   Premium polish — font, header search, dropdown, table header
   ===================================================================== */

/* Premium typography: Sora (headings) + Inter (body / UI) */
body, button, input, select, textarea, .ct-menu-link,
.elementor-widget-text-editor, .elementor-widget-heading, p, li {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
h1, h2, h3, h4, h5, h6,
.elementor-heading-title, .tt-hero-title, .tt-modal-title,
.tt-premium-slider__copy h2 {
  font-family: 'Sora', 'Inter', system-ui, sans-serif !important;
}

/* Header search bar is styled authoritatively in the "Header compaction"
   section at the end of this file (it must beat an inline <style> printed
   inside the search widget, so it lives with the other top-row overrides). */

/* Top-level nav (light header): navy, NO red; subtle hover */
.ct-menu-link { color: var(--tt-navy) !important; }
.ct-menu-link:hover,
.current-menu-item > .ct-menu-link,
.current-menu-ancestor > .ct-menu-link { color: var(--tt-moe) !important; }

/* Dropdown submenu (dark bg): readable light text, amber (#fec107) on hover */
.sub-menu .ct-menu-link { color: #e7ecf3 !important; }
.sub-menu .ct-menu-link:hover,
.sub-menu .current-menu-item > .ct-menu-link,
.sub-menu .current_page_item > .ct-menu-link { color: #fec107 !important; }

/* Table header text: readable amber (#fec107) on the navy header row */
.tablepress thead th, .tablepress thead th *,
.tablepress tfoot th, table thead th, .wpdt-c table thead th {
  color: #fec107 !important;
}

/* =====================================================================
   Header compaction + slider legibility (2026-05-29)
   1) shrink top navy bar  2) shrink white nav row a bit
   3) shrink blue hero bar a bit  4) make slider text readable
   ===================================================================== */

/* 1) Top navy bar — the widget prints its OWN inline <style> giving the input
   52px and the button 32px (mismatched -> the SEARCH button looked oversized).
   These rules are the single source of truth: 0,3,0 specificity + !important
   beats both that inline <style> and any earlier child rules, so input and
   button are identical height, aligned, and the bar stays compact. */
.ct-header [data-row*="top"] .tt-header-search-wrap { padding: 4px 0 !important; }
.ct-header [data-row*="top"] .tt-header-search-form {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
}
.ct-header [data-row*="top"] .tt-header-search-input,
.ct-header [data-row*="top"] .tt-header-search-button {
  height: 42px !important;
  min-height: 42px !important;
  box-sizing: border-box !important;
  border-radius: 4px !important;
  margin: 0 !important;
  line-height: 40px !important;
  font-size: 13px !important;
  vertical-align: middle !important;
}
.ct-header [data-row*="top"] .tt-header-search-input {
  width: 260px !important;
  padding: 0 16px !important;
  border: 1px solid rgba(255,255,255,.55) !important;
  background: rgba(255,255,255,.12) !important;
  color: #fff !important;
}
.ct-header [data-row*="top"] .tt-header-search-input::placeholder {
  color: rgba(255,255,255,.85) !important;
}
.ct-header [data-row*="top"] .tt-header-search-button {
  padding: 0 26px !important;
  border: 1px solid #fff !important;
  background: #fff !important;
  color: var(--tt-navy) !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  cursor: pointer !important;
}
.ct-header [data-row*="top"] .tt-header-search-button:hover {
  background: #e6ebf2 !important;
  border-color: #e6ebf2 !important;
  color: var(--tt-navy) !important;
}

/* 2) Middle white nav row — 100px -> 70px; logo scaled to fit (60 -> 44). */
[data-header*="type-1"] .ct-header [data-row*="middle"] { --height: 70px !important; }
[data-header*="type-1"] .ct-header [data-id="logo"] .site-logo-container {
  --logo-max-height: 44px !important;
}

/* 3) Blue hero action bar — trim vertical padding and tighten inner rhythm. */
.tt-hero-bar { padding: 22px 0 20px; }
.tt-hero-kicker { margin-bottom: 8px; }
.tt-hero-title { margin-bottom: 14px; }

/* 4) Slider legibility — replace the flat 38% wash with a directional scrim
   (strong at the bottom-left where the copy sits, clear at the top-right) and
   add soft text-shadows so light text holds up over bright workshop photos. */
.tt-premium-slider__slide::after {
  background:
    linear-gradient(100deg, rgba(4,3,73,.86) 0%, rgba(4,3,73,.52) 34%, rgba(4,3,73,.14) 66%, rgba(4,3,73,0) 100%),
    linear-gradient(to top, rgba(4,3,73,.6) 0%, rgba(4,3,73,0) 52%);
}
.tt-premium-slider__kicker {
  color: #e6eefa;
  text-shadow: 0 1px 10px rgba(0,0,0,.55);
}
.tt-premium-slider__copy h2 { text-shadow: 0 2px 18px rgba(0,0,0,.5); }
.tt-premium-slider__copy p:not(.tt-premium-slider__kicker) {
  color: #f3f7fc;
  text-shadow: 0 1px 12px rgba(0,0,0,.45);
}

/* =====================================================================
   Readability fixes — footer links + authority credential links
   ===================================================================== */
/* The top-nav rule (.ct-menu-link -> navy) leaked into the footer/off-canvas
   (navy text on navy = invisible). Force light text on these dark surfaces. */
.ct-footer .ct-menu-link,
.ct-footer a { color: #d6deea !important; }
.ct-footer .ct-menu-link:hover,
.ct-footer a:hover { color: #ffffff !important; }
.ct-footer, .ct-footer p,
.ct-footer .ct-footer-copyright,
.ct-footer [data-column="copyright"] { color: #c4cee0 !important; }
.ct-footer [data-row="bottom"] .ct-footer-copyright::before { color: #cdd9ec !important; }

/* off-canvas (mobile) menu is on a dark background too */
.ct-offcanvas .ct-menu-link,
[class*="offcanvas"] .ct-menu-link { color: #e7ecf3 !important; }

/* Authority credential links (EASA/FAA/DGCA WEBSITE) on white cards: readable navy + bold */
.eael-call-to-action .cta-button {
  color: var(--tt-navy) !important;
  font-weight: 700 !important;
  font-size: .82rem !important;
}
.eael-call-to-action .cta-button:hover { color: var(--tt-moe) !important; }

/* =====================================================================
   Approvals slider — uniform square logos + approval-number caption
   Scoped to the homepage (565) ElementsKit Client Logo widget #9b0054b.
   1) every logo auto-fits a uniform square stage (object-fit:contain), so
      logos no longer need manual squaring in Photoshop;
   2) each item's "Client Name" text is surfaced as a caption under the logo
      — type the authority's approval number there.
   (Selectors include .elementskit-clients-slider to outweigh the plugin's
    base rules, e.g. .single-client min-height/flex-row/display:block.)
   ===================================================================== */
.elementor-element-9b0054b .elementskit-clients-slider .single-client {
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  overflow: visible;
  padding: 18px;
  box-sizing: border-box;
  border: 1px solid var(--tt-rule);
  border-radius: 2px;
}
/* keep the square intact when a slide is wrapped in a link */
.elementor-element-9b0054b .elementskit-clients-slider .single-client > a {
  display: block;
  width: 100%;
}
/* square logo stage: centered, never cropped, whatever the source ratio */
.elementor-element-9b0054b .elementskit-clients-slider .single-client .content-image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1 / 1;
  padding: 8%;
  box-sizing: border-box;
}
.elementor-element-9b0054b .elementskit-clients-slider .single-client .content-image img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
/* approval-number caption, pulled from each item's "Client Name" field */
.elementor-element-9b0054b .elementskit-clients-slider .single-client::after {
  content: attr(title);
  display: block;
  width: 100%;
  min-height: 2.4em;
  text-align: center;
  font-family: "JetBrains Mono", ui-monospace, "Courier New", monospace;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.3;
  color: var(--tt-navy);
}

/* =====================================================================
   Contact forms (Ninja Forms 1-4 on the four CONTACT pages)
   — fix the border overflow + apply the clean stacked field format.
   ROOT CAUSE of the spill: the Elementor card wrapping each form has
   padding-left:0 / padding-right:10px while NF inputs render width:100%
   WITHOUT border-box, so each input's own padding pushed it past the
   right border. Fix = force border-box + 100% widths, then inset the
   card and standardise the fields. Scoped via .nf-form-cont, which only
   exists on these 4 contact pages.
   ===================================================================== */

/* 1) containment — neutralise the spill regardless of theme box-sizing */
.nf-form-cont, .nf-form-cont *, .nf-form-cont *::before, .nf-form-cont *::after {
  box-sizing: border-box;
}
.nf-form-cont { width: 100%; max-width: 100%; }

/* 2) give the card real inset so the heading + fields breathe inside the
      border (the 4 cards have different element IDs -> match structurally) */
.e-con:has(> .elementor-widget-shortcode .nf-form-cont) {
  padding: 16px 26px 28px !important;
}

/* 3) fields: full-width gray blocks, comfortable height, 2px corners
      (background/border/focus already come from the global form rules) */
.nf-form-cont .nf-field-element input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
.nf-form-cont .nf-field-element select,
.nf-form-cont .nf-field-element textarea {
  width: 100%;
  max-width: 100%;
  height: 50px;
  padding: 0 16px;
  font-size: 15px;
  line-height: 1.4;
}
.nf-form-cont .nf-field-element textarea {
  height: auto;
  min-height: 140px;
  padding: 14px 16px;
}

/* 4) labels above each field: navy, semibold, clear gap */
.nf-form-cont .nf-field-label label,
.nf-form-cont .nf-field-label .nf-label-span {
  font-weight: 600;
  color: var(--tt-navy);
  font-size: 14px;
  letter-spacing: .01em;
}
.nf-form-cont .label-above .nf-field-label { margin-bottom: 8px; }

/* 5) even vertical rhythm between fields */
.nf-form-cont .nf-field-container { margin-bottom: 18px; }

/* 6) submit: proper navy CTA (beats the generic gray input fill) */
.nf-form-cont .nf-field-element input[type=submit],
.nf-form-cont input[type=submit] {
  width: auto;
  min-width: 170px;
  height: 48px;
  padding: 0 30px;
  background: var(--tt-navy) !important;
  color: #fff !important;
  border: 0 !important;
  font-weight: 600;
  letter-spacing: .03em;
  cursor: pointer;
}
.nf-form-cont input[type=submit]:hover { background: #24417c !important; }

/* =====================================================================
   Contact pages (1038/2300/2314/2331) — flatten every white background
   fill to the page gray (#f6f7f9) so the layout is one uniform surface.
   White sources: (a) container background OVERLAYS d59aa50 (side-nav
   panel) + 0d75148 (page-header block), both #FFFFFF @ opacity 1;
   (b) the eael CTA "bg-lite" boxes (Mail info etc.), forced white by a
   global homepage rule above — overridden PAGE-SCOPED so the homepage
   credential strip stays white; (c) the INACTIVE side-nav buttons (the
   current-page button keeps its navy fill as the active marker).
   ===================================================================== */
:is(.elementor-page-1038, .elementor-page-2300, .elementor-page-2314, .elementor-page-2331) .elementor-element-d59aa50::before,
:is(.elementor-page-1038, .elementor-page-2300, .elementor-page-2314, .elementor-page-2331) .elementor-element-0d75148::before {
  background-color: var(--tt-paper) !important;
}
:is(.elementor-page-1038, .elementor-page-2300, .elementor-page-2314, .elementor-page-2331) .elementor-widget-eael-cta-box .eael-call-to-action.cta-basic.bg-lite,
:is(.elementor-page-1038, .elementor-page-2300, .elementor-page-2314, .elementor-page-2331) .elementor-widget-eael-cta-box .eael-call-to-action.bg-lite:after {
  background: var(--tt-paper) !important;
}
/* inactive side-nav buttons -> gray; the active page's button stays navy.
   (button IDs are shared across the 4 duplicated pages; on each page the
    three NON-current buttons carry the white fill.) */
.elementor-page-1038 :is(.elementor-element-8b7c381, .elementor-element-34d8a88, .elementor-element-2337eab) .eael-creative-button,
.elementor-page-2300 :is(.elementor-element-b821e74, .elementor-element-34d8a88, .elementor-element-2337eab) .eael-creative-button,
.elementor-page-2314 :is(.elementor-element-b821e74, .elementor-element-8b7c381, .elementor-element-2337eab) .eael-creative-button,
.elementor-page-2331 :is(.elementor-element-b821e74, .elementor-element-8b7c381, .elementor-element-34d8a88) .eael-creative-button {
  background-color: var(--tt-paper) !important;
  color: var(--tt-navy) !important;
}

/* Credential-card links (EASA/FAA/DGCA "Website" + Mail-info "Contact")
   -> outlined navy buttons (navy border + navy text) that fill navy on hover.
   These eael "bg-lite" cards recur site-wide (~17 pages); the global
   .cta-button rule above rendered them as faint underlined text that didn't
   read as clickable. Styled GLOBALLY so every instance matches. (The larger
   .elementor-button CTAs in the same "Learn More" strip — SEE AUTHORITY
   APPROVALS / REQUEST RFQ — are untouched.) */
.eael-call-to-action.cta-basic.bg-lite .cta-button {
  display: inline-block;
  background: transparent !important;
  color: var(--tt-navy) !important;
  padding: 10px 24px !important;
  border: 1px solid var(--tt-navy) !important;
  border-radius: 2px !important;
  font-weight: 600 !important;
  font-size: .76rem !important;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: background-color .18s ease, color .18s ease;
}
.eael-call-to-action.cta-basic.bg-lite .cta-button:hover {
  background: var(--tt-navy) !important;
  color: #fff !important;
}

/* =====================================================================
   FAZ-2.1 final pass: cinematic hero + editorial homepage sections
   ===================================================================== */

body, button, input, select, textarea, .ct-menu-link,
.elementor-widget-text-editor, .elementor-widget-heading, p, li {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
}
h1, h2, h3, h4, h5, h6,
.elementor-heading-title, .tt-hero-title, .tt-modal-title {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
}

.tt-hero-bar { display: none !important; }

.tt-cinematic-hero {
  isolation: isolate;
  background: var(--tt-navy);
  border-bottom: 1px solid var(--tt-rule);
}
.tt-cinematic-hero .tt-premium-slider__stage {
  min-height: clamp(560px, calc(100vh - 190px), 760px);
}
.tt-cinematic-hero .tt-premium-slider__slide::after {
  background:
    linear-gradient(90deg, rgba(4,3,73,.9) 0%, rgba(4,3,73,.62) 38%, rgba(4,3,73,.18) 68%, rgba(4,3,73,.02) 100%),
    linear-gradient(to top, rgba(4,3,73,.56) 0%, rgba(4,3,73,0) 56%);
}
.tt-cinematic-hero__content {
  position: absolute;
  z-index: 4;
  left: max(28px, calc((100vw - 1240px) / 2 + 28px));
  top: 50%;
  transform: translateY(-50%);
  width: min(680px, calc(100% - 56px));
  color: #fff;
}
.tt-cinematic-hero .tt-hero-kicker {
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Courier New", monospace;
  color: #d6e3f4;
  font-size: .72rem;
  letter-spacing: .1em;
  margin: 0 0 16px;
  text-transform: uppercase;
}
.tt-cinematic-hero .tt-hero-title {
  color: #fff !important;
  max-width: 15ch;
  margin: 0 0 20px;
  font-size: clamp(2.1rem, 5vw, 4.9rem);
  line-height: .98;
  font-weight: 650;
  letter-spacing: 0;
}
.tt-hero-lede {
  max-width: 54ch;
  margin: 0 0 30px;
  color: #edf3fa;
  font-size: clamp(1rem, 1.25vw, 1.18rem);
  line-height: 1.58;
}
.tt-cinematic-hero .tt-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.tt-cinematic-hero .tt-act {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 11px 19px;
  border: 1px solid rgba(255,255,255,.46);
  border-radius: 2px;
  color: #fff;
  background: transparent;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .045em;
  text-decoration: none;
  text-transform: uppercase;
}
.tt-cinematic-hero .tt-act:hover {
  background: rgba(255,255,255,.12);
  color: #fff;
}
.tt-cinematic-hero .tt-act-primary,
.tt-cinematic-hero .tt-act-aog {
  background: #fff;
  border-color: #fff;
  color: var(--tt-navy);
}
.tt-cinematic-hero .tt-act-primary:hover,
.tt-cinematic-hero .tt-act-aog:hover {
  background: #e7edf5;
  border-color: #e7edf5;
  color: var(--tt-navy);
}
.tt-premium-slider__caption {
  position: absolute;
  z-index: 3;
  right: max(28px, calc((100vw - 1240px) / 2 + 28px));
  bottom: 82px;
  width: min(360px, calc(100% - 56px));
  padding-left: 18px;
  border-left: 1px solid rgba(255,255,255,.45);
  color: #fff;
}
.tt-premium-slider__caption .tt-premium-slider__kicker {
  margin: 0 0 9px;
  color: #cbd9ec;
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Courier New", monospace;
  font-size: .68rem;
  letter-spacing: .1em;
  text-shadow: none;
}
.tt-premium-slider__caption strong {
  display: block;
  margin: 0 0 10px;
  color: #fff;
  font-size: clamp(1.08rem, 1.35vw, 1.34rem);
  line-height: 1.18;
  font-weight: 650;
}
.tt-premium-slider__caption span {
  display: block;
  margin: 0 0 15px;
  color: #edf3fa;
  font-size: .92rem;
  line-height: 1.5;
}
.tt-premium-slider__caption a {
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-transform: uppercase;
}
.tt-cinematic-hero .tt-premium-slider__controls {
  right: max(28px, calc((100vw - 1240px) / 2 + 28px));
  bottom: 28px;
}
.tt-cinematic-hero .tt-premium-slider__arrow,
.tt-cinematic-hero .tt-premium-slider__dots button {
  background: rgba(4,3,73,.38);
  border-color: rgba(255,255,255,.48);
  box-shadow: none !important;
}

.elementor-page-565 .elementor-element-38cfaf57 {
  background: #fff !important;
  border-bottom: 1px solid var(--tt-rule);
}
.elementor-page-565 .elementor-element-38cfaf57.e-con.e-parent {
  padding-top: clamp(64px, 8vw, 108px) !important;
  padding-bottom: clamp(64px, 8vw, 108px) !important;
}
.elementor-page-565 .elementor-element-38cfaf57 .elementor-heading-title,
.elementor-page-565 .elementor-element-bf0a677 .elementor-heading-title,
.elementor-page-565 .elementor-element-faeacb7 .elementor-heading-title,
.elementor-page-565 .elementor-element-0eb781a .elementor-heading-title {
  color: var(--tt-navy) !important;
  font-size: clamp(1.9rem, 3.4vw, 3.25rem) !important;
  line-height: 1.05 !important;
  font-weight: 650 !important;
  letter-spacing: 0 !important;
}
.elementor-page-565 .elementor-element-9b0054b .elementskit-clients-slider .single-client {
  background: #fff !important;
  border: 1px solid var(--tt-rule) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 22px 18px !important;
}
.elementor-page-565 .elementor-element-9b0054b .elementskit-clients-slider .swiper-navigation-button {
  background: #fff !important;
  border: 1px solid var(--tt-rule) !important;
  border-radius: 0 !important;
  color: var(--tt-navy) !important;
}

.elementor-page-565 .elementor-element-b3895f5 {
  margin-top: clamp(62px, 8vw, 116px) !important;
}
.elementor-page-565 .elementor-element-ae88503 {
  gap: 0 !important;
  border-top: 1px solid var(--tt-rule);
  border-bottom: 1px solid var(--tt-rule);
}
.elementor-page-565 :is(.elementor-element-a2b1380, .elementor-element-739c4ec, .elementor-element-72250b4) {
  border: 0 !important;
  border-radius: 0 !important;
  border-right: 1px solid var(--tt-rule) !important;
  background: #fff !important;
  padding: 0 28px 34px !important;
  transition: background-color .16s ease;
}
.elementor-page-565 :is(.elementor-element-a2b1380, .elementor-element-739c4ec, .elementor-element-72250b4):hover {
  background: #f8fafc !important;
}
.elementor-page-565 .elementor-element-72250b4 {
  border-right: 0 !important;
}
.elementor-page-565 :is(.elementor-element-aa941d4, .elementor-element-1a1e01d, .elementor-element-4288bc2) img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 0 !important;
  margin-bottom: 22px;
}
.elementor-page-565 :is(.elementor-element-ce29cf8, .elementor-element-083750c, .elementor-element-7cfcaa9) .elementor-heading-title {
  color: var(--tt-navy) !important;
  font-size: clamp(1.2rem, 1.45vw, 1.44rem) !important;
  line-height: 1.22 !important;
  font-weight: 650 !important;
}
.elementor-page-565 :is(.elementor-element-92bf2fe, .elementor-element-f30527c, .elementor-element-f290b39) {
  color: var(--tt-mute) !important;
  font-size: .96rem !important;
  line-height: 1.66 !important;
}
.elementor-page-565 :is(.elementor-element-81d4c9b, .elementor-element-22ec93b, .elementor-element-1085753) .elementor-button {
  background: transparent !important;
  color: var(--tt-moe) !important;
  padding: 0 !important;
  border: 0 !important;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.elementor-page-565 .elementor-element-b91ed74 {
  background: #fff !important;
  background-image: none !important;
  border-top: 1px solid var(--tt-rule);
}
.elementor-page-565 .elementor-element-b91ed74:not(.elementor-motion-effects-element-type-background),
.elementor-page-565 .elementor-element-b91ed74 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background: #fff !important;
  background-image: none !important;
}
.elementor-page-565 .elementor-element-8758675 {
  background: #fff !important;
  border-radius: 0 !important;
  border-top: 1px solid var(--tt-rule);
  border-bottom: 1px solid var(--tt-rule);
  padding: clamp(52px, 7vw, 86px) 28px !important;
}
.elementor-page-565 .elementor-element-8758675:not(.elementor-motion-effects-element-type-background),
.elementor-page-565 .elementor-element-8758675 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background: #fff !important;
}
.elementor-page-565 .elementor-element-8758675 .elementor-heading-title {
  color: var(--tt-navy) !important;
}
.elementor-page-565 .elementor-element-a99a9f1 {
  gap: 0 !important;
  border: 1px solid var(--tt-rule);
}
.elementor-page-565 .elementor-element-a99a9f1 .elementor-widget-eael-cta-box .eael-call-to-action.cta-basic.bg-lite {
  border-left: 1px solid var(--tt-rule) !important;
  padding: 28px 30px !important;
}
.elementor-page-565 .elementor-element-a99a9f1 .elementor-widget-eael-cta-box:first-child .eael-call-to-action.cta-basic.bg-lite {
  border-left: 0 !important;
}

@media (max-width: 900px) {
  .tt-cinematic-hero .tt-premium-slider__stage {
    min-height: 680px;
  }
  .tt-cinematic-hero__content {
    top: 72px;
    bottom: auto;
    transform: none;
  }
  .tt-cinematic-hero .tt-hero-title {
    max-width: 12ch;
    font-size: clamp(2rem, 11vw, 3.65rem);
  }
  .tt-hero-lede {
    max-width: 38ch;
  }
  .tt-premium-slider__caption {
    left: 24px;
    right: 24px;
    bottom: 86px;
    width: auto;
  }
  .tt-cinematic-hero .tt-premium-slider__controls {
    left: 24px;
    right: auto;
    bottom: 28px;
  }
  .tt-cinematic-hero .tt-act {
    flex: 1 1 calc(50% - 10px);
    min-width: 0;
    padding-inline: 10px;
    font-size: .7rem;
    text-align: center;
  }
  .elementor-page-565 .elementor-element-ae88503 {
    border: 0;
  }
  .elementor-page-565 :is(.elementor-element-a2b1380, .elementor-element-739c4ec, .elementor-element-72250b4) {
    border: 1px solid var(--tt-rule) !important;
    margin-bottom: 18px;
    padding: 0 18px 28px !important;
  }
  .elementor-page-565 .elementor-element-a99a9f1 {
    border: 0;
  }
  .elementor-page-565 .elementor-element-a99a9f1 .elementor-widget-eael-cta-box .eael-call-to-action.cta-basic.bg-lite {
    border: 1px solid var(--tt-rule) !important;
    margin-bottom: 14px;
  }
}


@media (prefers-reduced-motion: reduce) {
  .tt-premium-slider__slide {
    transition: none !important;
  }
}

/* =====================================================================
   MOBILE PASS — 2026-05-31
   ===================================================================== */
@media (max-width: 768px) {
  /* Hide noisy top search bar on phones — hamburger covers it */
  .ct-header [data-row*="top"] .tt-header-search-wrap,
  .ct-header [data-row*="top"] {
    display: none !important;
  }

  /* Home hero: stack navy message ABOVE the slider on mobile (flex order) */
  .tt-cinematic-hero .tt-premium-slider__stage {
    display: flex !important;
    flex-direction: column !important;
    min-height: auto !important;
    position: relative;
  }
  .tt-cinematic-hero__content {
    position: relative !important;
    inset: auto !important;
    order: 1 !important;
    background: var(--tt-navy) !important;
    padding: 28px 22px 30px !important;
    width: 100% !important;
    max-width: 100% !important;
    z-index: 5;
  }
  .tt-premium-slider__slide {
    position: relative !important;
    inset: auto !important;
    height: 280px !important;
    order: 2 !important;
  }
  .tt-premium-slider__slide:not(.is-active) { display: none !important; }
  .tt-premium-slider__slide.is-active { opacity: 1 !important; pointer-events: auto !important; }
  .tt-premium-slider__controls { order: 3 !important; position: relative !important; bottom: auto !important; right: auto !important; padding: 14px 18px; }
  .tt-premium-slider__copy { position: absolute !important; left: 18px !important; right: 18px !important; bottom: 16px !important; width: auto !important; }
  .tt-hero-title {
    font-size: clamp(1.35rem, 6vw, 1.85rem) !important;
    margin-bottom: 16px !important;
  }
  .tt-hero-kicker { font-size: .62rem !important; letter-spacing: .08em !important; }
  .tt-hero-actions { gap: 6px !important; flex-wrap: wrap !important; }
  .tt-hero-actions .tt-act {
    flex: 1 1 calc(50% - 6px) !important;
    min-width: 0 !important;
    text-align: center !important;
    font-size: .62rem !important;
    padding: 10px 4px !important;
    letter-spacing: .02em !important;
    box-sizing: border-box !important;
    overflow-wrap: anywhere !important;
  }

  /* Interior hero white cards: stop horizontal overflow */
  .elementor-page-1668 .elementor-element-b48476d,
  .elementor-page-1727 .elementor-element-b48476d,
  .elementor-page-1732 .elementor-element-b48476d,
  .elementor-page-2572 .elementor-element-b48476d,
  .elementor-page-2608 .elementor-element-b48476d,
  .elementor-page-1901 .elementor-element-b48476d,
  .elementor-page-2094 .elementor-element-b48476d,
  .elementor-page-1941 .elementor-element-b48476d,
  .elementor-page-2447 .elementor-element-b48476d {
    width: calc(100% - 24px) !important;
    margin: 0 12px !important;
    padding: 24px 20px !important;
    box-sizing: border-box !important;
  }
  .elementor-page-2447 h1,
  .elementor-page-1941 h1 {
    font-size: clamp(1.5rem, 6vw, 2rem) !important;
    line-height: 1.15 !important;
    word-wrap: break-word;
  }

  /* Hard mobile overflow lock — viewport width is the absolute ceiling */
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    width: 100vw !important;
  }
  .elementor-section, .elementor-container, .e-con, .e-con-boxed, .e-con-full,
  .elementor-widget, .elementor-widget-container, .elementor-widget-wrap,
  .elementor-top-section, .elementor-row, .elementor-column,
  .elementor-element {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  /* Inline-style widths set by Elementor (e.g. 1180px) get capped */
  [style*="width"] { max-width: 100% !important; }
  /* Tighten side padding on Elementor sections so nothing pushes past edge */
  .elementor-page-2447 .e-con.e-parent,
  .elementor-page-2447 .e-con-boxed,
  .elementor-page-2447 .e-con-full {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  /* Hero text caption on slider — wrap and pad clear of edges */
  .tt-premium-slider__copy h2,
  .tt-premium-slider__copy p {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto;
  }
  .tt-premium-slider__copy h2 { font-size: 1rem !important; line-height: 1.3 !important; }
  .tt-premium-slider__copy p { font-size: .82rem !important; line-height: 1.45 !important; }

  /* All headings on all pages wrap cleanly + safe size cap */
  .elementor-widget-heading .elementor-heading-title,
  h1.elementor-heading-title,
  h2.elementor-heading-title,
  h3.elementor-heading-title {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto;
    max-width: 100%;
  }
  body h1.elementor-heading-title { font-size: clamp(1.4rem, 6vw, 1.95rem) !important; line-height: 1.18 !important; }
  body h2.elementor-heading-title { font-size: clamp(1.15rem, 5vw, 1.55rem) !important; line-height: 1.22 !important; }
  body p, body .elementor-widget-text-editor p, body li {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* Certificate cards: long titles wrap, smaller icon */
  .elementor-page-1941 .elementor-widget-icon-box .elementor-icon-box-title,
  .elementor-page-1941 .elementor-widget-icon-box .elementor-icon-box-title a {
    white-space: normal !important;
    word-wrap: break-word !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
  }
  .elementor-page-1941 .elementor-widget-icon-box .elementor-icon-box-wrapper {
    align-items: center !important;
    gap: 12px !important;
  }
  .elementor-page-1941 .elementor-widget-icon-box .elementor-icon {
    font-size: 32px !important;
  }

  /* Contact map fallback: ensure iframe gets a real height */
  .elementor-widget-google_maps iframe,
  .elementor-widget-shortcode iframe[src*="google.com/maps"] {
    width: 100% !important;
    min-height: 240px !important;
  }

  /* Address text wraps within its container */
  .elementor-page-1038 .elementor-widget-text-editor,
  .elementor-page-1038 .elementor-widget-text-editor p {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }
}

/* Smaller phones (<400px) — extra padding trim */
@media (max-width: 400px) {
  .tt-cinematic-hero__content { padding: 22px 16px 24px !important; }
  .tt-hero-actions .tt-act { font-size: .62rem !important; padding: 10px 4px !important; }
}

/* =====================================================================
   FACILITY / SERVICE pages — premium navy hero (Lufthansa editorial)
   The 9 interior pages were duplicated from the same template, so they all
   share the SAME inner element IDs (b24655f outer, 1b88c9a/657070c/98d9719
   inner, 3ff157b heading). One rule block covers all 9: facilities (Atatürk
   #1668, Antalya #1727, Istanbul #1732, Aksu #2572, Gazipaşa #2608) and
   services (MRO #1036, Component #1879, Line #1901, NDT #2094).
   The box-shadow + clip-path trick extends the navy background full-width
   even when the container itself is content-width constrained.
   ===================================================================== */
/* Outer container: full-width navy panel */
.elementor-element-b24655f {
  background-color: var(--tt-navy) !important;
  background-image: none !important;
  box-shadow: 0 0 0 100vmax var(--tt-navy);
  clip-path: inset(0 -100vmax);
  padding-top: clamp(56px, 7vw, 96px) !important;
  padding-bottom: clamp(56px, 7vw, 96px) !important;
  position: relative;
  border-bottom: 1px solid var(--tt-moe);
}
/* Inner containers: kill any classic/gradient bg so the outer navy shows through */
.elementor-element-b24655f .e-con,
.elementor-element-1b88c9a,
.elementor-element-657070c,
.elementor-element-98d9719 {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}
/* H1 white — beat h1/.elementor-heading-title cascades */
.elementor-element-b24655f h1,
.elementor-element-b24655f h1.elementor-heading-title,
.elementor-element-b24655f .elementor-heading-title,
.elementor-element-3ff157b .elementor-heading-title {
  color: #fff !important;
  letter-spacing: -.015em !important;
}
/* Subtitle (uses Blocksy palette `color_36` span — override that too) */
.elementor-element-b24655f p,
.elementor-element-b24655f .elementor-widget-text-editor,
.elementor-element-b24655f .elementor-widget-text-editor p,
.elementor-element-b24655f .elementor-widget-text-editor span,
.elementor-element-b24655f [class*="color_"],
.elementor-element-b24655f li {
  color: #c9d3e2 !important;
}
.elementor-element-b24655f strong,
.elementor-element-b24655f b {
  color: #fff !important;
}
/* Breadcrumb on navy */
.elementor-element-b24655f .ct-breadcrumbs,
.elementor-element-b24655f .ct-breadcrumbs a,
.elementor-element-b24655f .ct-breadcrumbs span {
  color: #9ec0ea !important;
}
.elementor-element-b24655f .ct-breadcrumbs .last-item,
.elementor-element-b24655f .ct-breadcrumbs [aria-current] {
  color: #fff !important;
}
.elementor-element-b24655f .ct-breadcrumbs svg.ct-separator {
  color: #5d7da8 !important;
}

/* =====================================================================
   Header Refactor Phase 1 — remove Blocksy device overlap/duplicates
   ===================================================================== */

/* Blocksy prints separate desktop/mobile header trees. Make the breakpoint
   explicit so custom CSS cannot accidentally reveal both at the same time. */
@media (min-width: 1000px) {
  #header.ct-header [data-device="desktop"] {
    display: block !important;
  }
  #header.ct-header [data-device="mobile"] {
    display: none !important;
  }
}

@media (max-width: 999px) {
  #header.ct-header [data-device="desktop"] {
    display: none !important;
  }
  #header.ct-header [data-device="mobile"] {
    display: block !important;
  }
}

/* The capability search/top utility row is useful on desktop but becomes noisy
   and can overlap the mobile header. Keep the mobile header to logo + menu. */
@media (max-width: 1024px) {
  #header.ct-header [data-row="top"],
  #header.ct-header [data-row*="top"] {
    display: none !important;
  }
}

/* Desktop utility row: compact, centered, and prevented from pushing the nav. */
@media (min-width: 1025px) {
  #header.ct-header [data-row="top"] .ct-container,
  #header.ct-header [data-row*="top"] .ct-container {
    min-height: 56px !important;
  }

  #header.ct-header [data-row="top"] [data-column="middle"],
  #header.ct-header [data-row*="top"] [data-column="middle"] {
    min-width: 0;
  }

  #header.ct-header [data-row="top"] .tt-header-search-form,
  #header.ct-header [data-row*="top"] .tt-header-search-form {
    max-width: min(100%, 520px);
  }

  #header.ct-header [data-row="top"] .tt-header-search-input,
  #header.ct-header [data-row*="top"] .tt-header-search-input {
    width: clamp(220px, 20vw, 320px) !important;
  }
}

/* Main nav row: keep logo/menu/CTA aligned and avoid row growth on sticky. */
#header.ct-header [data-row="middle"],
#header.ct-header [data-row*="middle"] {
  border-bottom: 1px solid var(--tt-rule) !important;
}

#header.ct-header [data-row="middle"] .ct-container,
#header.ct-header [data-row*="middle"] .ct-container {
  min-height: 70px !important;
}

#header.ct-header [data-id="logo"] .site-logo-container {
  --logo-max-height: 44px !important;
}

#header.ct-header .ct-sticky-container {
  z-index: 50;
}
