/* =====================================================================
   FlatDock™ — brand + component styles
   Palette: Primary Blue #0B42BE · Marine Steel #32658B · Gunmetal #3A414A
            Dark Steel #59636E · Brushed Silver #CCD1D6 · White · Black
   ===================================================================== */
:root {
  --fd-blue: #0B42BE;
  --fd-steel: #32658B;
  --fd-gun: #3A414A;
  --fd-dsteel: #59636E;
  --fd-silver: #CCD1D6;
  --fd-white: #FFFFFF;
  --fd-black: #000000;
  --fd-tint: #F1F3F5;            /* brushed silver at low strength, light panels */
  --fd-line-dark: rgba(204, 209, 214, .16);
  --fd-line-light: rgba(58, 65, 74, .16);
  --fd-display: 'Noto Sans Display', 'Noto Sans', 'Arial Narrow', sans-serif;
  --fd-sans: 'Noto Sans', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --fd-gutter: clamp(20px, 4vw, 40px);
  --fd-max: 1240px;
  --fd-cut: 14px;
}

html { scroll-behavior: smooth; }
html.fd-nav-locked { overflow: hidden; }
body {
  font-family: var(--fd-sans);
  color: var(--fd-gun);
  background: var(--fd-black);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.fd-main { display: block; background: var(--fd-white); }
a { color: var(--fd-blue); }
:focus-visible { outline: 2px solid var(--fd-blue); outline-offset: 3px; }
.fd-dark :focus-visible, .fd-blue :focus-visible, .fd-site-header :focus-visible, .fd-site-footer :focus-visible { outline-color: var(--fd-white); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { clip: auto; width: auto; height: auto; z-index: 1000; top: 8px; left: 8px; padding: 12px 18px; background: var(--fd-white); color: var(--fd-black); }

/* ---------- Elementor container normalisation inside FlatDock layouts ---------- */
.fd-sec, .fd-header, .fd-footer { --widgets-spacing: 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px; }
.fd-sec .e-con, .fd-header .e-con, .fd-footer .e-con {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --margin-top: 0px; --margin-bottom: 0px;
}
.fd-sec .elementor-widget, .fd-header .elementor-widget, .fd-footer .elementor-widget { margin-bottom: 0 !important; }
.fd-sec .elementor-widget-container p:last-child, .fd-footer .elementor-widget-container p:last-child, .fd-header .elementor-widget-container p:last-child { margin-bottom: 0; }

body .e-con.fd-sec {
  --padding-top: clamp(72px, 9vw, 128px);
  --padding-bottom: clamp(72px, 9vw, 128px);
  --padding-left: var(--fd-gutter);
  --padding-right: var(--fd-gutter);
  --content-width: var(--fd-max);
  position: relative;
}
body .e-con.fd-sec > .e-con-inner { gap: clamp(36px, 4.5vw, 56px); }

/* ---------- Section fields ---------- */
.fd-dark  { background-color: var(--fd-black); color: var(--fd-silver); }
.fd-light { background-color: var(--fd-white); color: var(--fd-gun); }
.fd-silver{ background-color: var(--fd-tint); color: var(--fd-gun); }
.fd-blue  { background-color: var(--fd-blue); color: var(--fd-white); }
.fd-steel { background-color: var(--fd-steel); color: var(--fd-white); }

/* technical grid on dark fields */
.fd-dark.fd-hero, .fd-dark.fd-page-hero {
  background-image:
    linear-gradient(var(--fd-line-dark) 1px, transparent 1px),
    linear-gradient(90deg, var(--fd-line-dark) 1px, transparent 1px);
  background-size: 80px 80px;
  background-position: -1px -1px;
}
.fd-dark.fd-hero::before, .fd-dark.fd-page-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.86) 45%, rgba(0,0,0,.55) 100%);
}
.fd-dark.fd-hero > .e-con-inner, .fd-dark.fd-page-hero > .e-con-inner { position: relative; z-index: 1; }

/* ---------- Typography ---------- */
.fd-display .elementor-heading-title,
.fd-h1 .elementor-heading-title,
.fd-h2 .elementor-heading-title,
.fd-h3 .elementor-heading-title,
.fd-card-num .elementor-heading-title {
  font-family: var(--fd-display);
  font-stretch: 62.5%;
  font-weight: 900;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: -.005em;
  line-height: .92;
  margin: 0;
}
.fd-display .elementor-heading-title { font-size: clamp(60px, 8.4vw, 128px); color: var(--fd-white); }
.fd-h1 .elementor-heading-title      { font-size: clamp(50px, 6.6vw, 100px); color: var(--fd-white); }
.fd-h2 .elementor-heading-title      { font-size: clamp(40px, 4.8vw, 72px); color: var(--fd-blue); }
.fd-h3 .elementor-heading-title      { font-size: clamp(34px, 3.6vw, 54px); color: var(--fd-white); }
.fd-dark .fd-h2 .elementor-heading-title, .fd-blue .fd-h2 .elementor-heading-title { color: var(--fd-white); }
.fd-blue-t { color: var(--fd-blue); }
.fd-blue .fd-blue-t { color: var(--fd-white); }

.fd-label .elementor-heading-title {
  font-family: var(--fd-sans); font-size: 12px; font-weight: 700; letter-spacing: .24em;
  text-transform: uppercase; line-height: 1.4; color: var(--fd-steel); margin: 0;
  display: flex; align-items: center; gap: 14px;
}
.fd-label .elementor-heading-title::before {
  content: ""; width: 36px; height: 3px; background: var(--fd-blue); flex: none;
  clip-path: polygon(0 0, 100% 0, calc(100% - 3px) 100%, 0 100%);
}
.fd-dark .fd-label .elementor-heading-title, .fd-blue .fd-label .elementor-heading-title { color: var(--fd-silver); }
.fd-blue .fd-label .elementor-heading-title::before { background: var(--fd-white); }

.fd-intro, .fd-hero-sub { font-size: clamp(17px, 1.35vw, 20px); line-height: 1.6; max-width: 62ch; }
.fd-intro p, .fd-hero-sub p { margin: 0; }
.fd-dark .fd-intro, .fd-dark .fd-hero-sub { color: var(--fd-silver); }
.fd-hero-sub { color: var(--fd-white) !important; max-width: 34ch; }
.fd-blue .fd-intro { color: var(--fd-white); }
.fd-head { gap: 18px !important; max-width: 900px; }
.fd-note { font-size: 15px; margin: 0; }
.fd-note a { font-weight: 700; text-decoration: none; }

/* ---------- Graphic devices ---------- */
.fd-rule, .fd-hero-rule {
  height: 4px; width: min(280px, 60%); background: var(--fd-blue);
  clip-path: polygon(0 0, 100% 0, calc(100% - 4px) 100%, 0 100%);
}
.fd-fins { display: inline-flex; flex-direction: column; gap: 5px; }
.fd-fins i { display: block; height: 6px; background: var(--fd-blue); transform: skewX(-38deg); }
.fd-fins i:nth-child(1) { width: 52px; }
.fd-fins i:nth-child(2) { width: 42px; margin-left: 5px; }
.fd-fins i:nth-child(3) { width: 32px; margin-left: 10px; }
.fd-blue .fd-fins i { background: var(--fd-white); }

/* ---------- Buttons ---------- */
.fd-btns { flex-direction: row !important; flex-wrap: wrap; gap: 14px !important; align-items: center; }
.fd-btn .elementor-button, .fd-header-cta .elementor-button {
  font-family: var(--fd-sans); font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  background: var(--fd-blue); color: var(--fd-white); border: 1px solid var(--fd-blue); border-radius: 0;
  padding: 19px 30px; line-height: 1;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--fd-cut)), calc(100% - var(--fd-cut)) 100%, 0 100%);
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.fd-btn .elementor-button:hover, .fd-btn .elementor-button:focus-visible,
.fd-header-cta .elementor-button:hover { background: var(--fd-steel); border-color: var(--fd-steel); color: var(--fd-white); }
.fd-btn-outline .elementor-button { background: transparent; border-color: var(--fd-silver); clip-path: none; }
.fd-btn-outline .elementor-button:hover { background: var(--fd-white); border-color: var(--fd-white); color: var(--fd-black); }
.fd-btn-outline-dark .elementor-button { background: transparent; color: var(--fd-black); border-color: var(--fd-black); clip-path: none; }
.fd-btn-outline-dark .elementor-button:hover { background: var(--fd-black); color: var(--fd-white); border-color: var(--fd-black); }
.fd-btn-white .elementor-button { background: var(--fd-white); color: var(--fd-blue); border-color: var(--fd-white); }
.fd-btn-white .elementor-button:hover { background: var(--fd-black); border-color: var(--fd-black); color: var(--fd-white); }
.fd-btn-sm .elementor-button { padding: 15px 22px; font-size: 12px; --fd-cut: 10px; }

.fd-link .elementor-button {
  background: none; border: 0; padding: 0; border-radius: 0; color: var(--fd-blue);
  font-family: var(--fd-sans); font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  border-bottom: 2px solid currentColor; padding-bottom: 6px;
}
.fd-link .elementor-button:hover { color: var(--fd-steel); background: none; }
.fd-link-light .elementor-button { color: var(--fd-white); }
.fd-link-light .elementor-button:hover { color: var(--fd-silver); }

/* ---------- Grids + cards ---------- */
body .fd-grid { display: grid !important; gap: 20px !important; width: 100%; }
.fd-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fd-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fd-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

body .fd-sec .e-con.fd-card {
  --padding-top: 30px; --padding-right: 28px; --padding-bottom: 32px; --padding-left: 28px;
  gap: 14px !important; justify-content: flex-start;
  background: var(--fd-white); border: 1px solid var(--fd-line-light); position: relative;
  transition: border-color .2s ease, transform .2s ease;
}
body .fd-sec .e-con.fd-card::before {
  content: ""; position: absolute; left: -1px; top: -1px; height: 4px; width: 56px; background: var(--fd-blue);
  clip-path: polygon(0 0, 100% 0, calc(100% - 4px) 100%, 0 100%); transition: width .25s ease;
}
body .fd-sec .e-con.fd-card:hover::before { width: calc(100% + 2px); clip-path: none; }
.fd-silver .fd-card { border-color: transparent !important; }
.fd-dark .e-con.fd-card { background: rgba(58, 65, 74, .32) !important; border-color: var(--fd-line-dark) !important; }
.fd-card-title .elementor-heading-title {
  font-family: var(--fd-sans); font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--fd-blue); line-height: 1.35; margin: 0;
}
.fd-dark .fd-card-title .elementor-heading-title { color: var(--fd-white); }
.fd-card-body { font-size: 15.5px; line-height: 1.6; color: var(--fd-gun); }
.fd-card-body p { margin: 0; }
.fd-dark .fd-card-body { color: var(--fd-silver); }
.fd-card .fd-link { margin-top: auto !important; padding-top: 8px; }
.fd-card-num .elementor-heading-title { font-size: 56px; color: var(--fd-steel); line-height: .9; }
.fd-steps .fd-card { border-top: 0 !important; }

/* family cards */
.fd-fam::before { background: var(--fd-silver) !important; }
.fd-fam-spot::before { background: var(--fd-white) !important; }
.fd-fam-form::before { background: var(--fd-silver) !important; }
.fd-fam-deck::before { background: var(--fd-dsteel) !important; }
.fd-fam-dock::before { background: var(--fd-blue) !important; }

/* ---------- Header ---------- */
.fd-site-header, .elementor-location-header { position: sticky; top: 0; z-index: 100; }
body.admin-bar .fd-site-header, body.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .fd-site-header, body.admin-bar .elementor-location-header { top: 0; } }
.e-con.fd-header { background: var(--fd-black); border-bottom: 1px solid var(--fd-line-dark); --padding-left: 0px; --padding-right: 0px; }
.e-con.fd-topbar {
  --content-width: var(--fd-max); --padding-left: var(--fd-gutter); --padding-right: var(--fd-gutter);
  justify-content: space-between !important; align-items: center; padding-top: 8px !important; padding-bottom: 8px !important;
  border-bottom: 1px solid var(--fd-line-dark);
}
.fd-topbar > .e-con-inner { flex-direction: row !important; justify-content: space-between !important; align-items: center; }
.fd-topbar p { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--fd-silver); }
.fd-topbar a { color: var(--fd-white); text-decoration: none; }
.fd-topbar a:hover { color: var(--fd-silver); text-decoration: underline; }
.e-con.fd-header-bar { --content-width: var(--fd-max); --padding-left: var(--fd-gutter); --padding-right: var(--fd-gutter); }
.fd-header-bar > .e-con-inner { flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between !important; gap: 28px !important; padding-top: 14px; padding-bottom: 14px; transition: padding .2s ease; }
.fd-header-bar > .e-con-inner > .elementor-widget { align-self: center !important; }
.is-scrolled .fd-header-bar > .e-con-inner { padding-top: 10px; padding-bottom: 10px; }
.is-scrolled .fd-logo-full { display: none; }
.is-scrolled .fd-logo-mark { display: block; }
.fd-logo img { display: block; height: auto; }
.fd-logo-full img { width: 330px; max-width: none; }  /* full lockup minimum 325px */
.fd-logo-mark { display: none; }
.fd-logo-mark img { width: 168px; }
.fd-nav-wrap { flex: 1 1 auto !important; display: flex; justify-content: flex-end; margin-right: 8px; }
.fd-nav-wrap .elementor-widget-container, .fd-nav-wrap .elementor-shortcode { display: flex; justify-content: flex-end; width: 100%; }
.fd-nav { display: flex; align-items: center; }
.fd-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: clamp(18px, 2.6vw, 38px); }
.fd-menu a {
  display: block; padding: 12px 0; position: relative; text-decoration: none;
  font-size: 12.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--fd-white);
}
.fd-menu a::after { content: ""; position: absolute; left: 0; bottom: 4px; height: 3px; width: 0; background: var(--fd-blue); transition: width .2s ease; }
.fd-menu a:hover::after, .fd-menu .current-menu-item > a::after, .fd-menu .current_page_item > a::after { width: 100%; }
.fd-nav-toggle, .fd-nav-quote, .fd-nav-parent { display: none; }

@media (max-width: 1180px) {
  .fd-logo-full { display: none; }
  .fd-logo-mark { display: block; }
}
@media (max-width: 1024px) {
  .fd-nav-toggle {
    display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; width: 46px; height: 46px; padding: 0 11px;
    background: transparent; border: 1px solid var(--fd-dsteel); border-radius: 0; cursor: pointer;
  }
  .fd-nav-toggle i { display: block; height: 2px; background: var(--fd-white); transition: transform .2s ease, opacity .2s ease; }
  .fd-nav.is-open .fd-nav-toggle i:nth-child(2) { transform: translateY(7px) rotate(45deg); }
  .fd-nav.is-open .fd-nav-toggle i:nth-child(3) { opacity: 0; }
  .fd-nav.is-open .fd-nav-toggle i:nth-child(4) { transform: translateY(-7px) rotate(-45deg); }
  .fd-nav-panel {
    position: fixed; left: 0; right: 0; top: var(--fd-header-h, 112px); bottom: 0; background: var(--fd-black);
    padding: 28px var(--fd-gutter) 40px; display: flex; flex-direction: column; gap: 24px; overflow-y: auto;
    transform: translateX(100%); visibility: hidden; transition: transform .25s ease, visibility .25s;
    border-top: 1px solid var(--fd-line-dark);
  }
  .fd-nav.is-open .fd-nav-panel { transform: none; visibility: visible; }
  .fd-menu { flex-direction: column; gap: 0; }
  .fd-menu a { font-family: var(--fd-display); font-stretch: 62.5%; font-style: italic; font-weight: 900; font-size: 40px; letter-spacing: 0; padding: 14px 0; border-bottom: 1px solid var(--fd-line-dark); }
  .fd-menu a::after { display: none; }
  .fd-nav-quote { display: block; text-align: center; background: var(--fd-blue); color: var(--fd-white); padding: 18px; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-decoration: none; }
  .fd-nav-parent { display: block; color: var(--fd-silver); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; }
}
@media (max-width: 767px) {
  .fd-header-cta { display: none; }
  .fd-topbar-back { display: none; }
  .fd-topbar p { font-size: 10px; letter-spacing: .14em; }
  .fd-logo-mark img { width: 150px; }
}

/* ---------- Home hero ---------- */
.fd-hero > .e-con-inner {
  display: grid !important; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center;
  gap: clamp(32px, 5vw, 72px) !important; min-height: min(72vh, 700px);
}
body .e-con.fd-hero { --padding-top: clamp(56px, 7vw, 96px); --padding-bottom: clamp(56px, 7vw, 96px); }
.fd-hero-copy { gap: 26px !important; }
.fd-hero-media { position: relative; }
.fd-hero-img img, .fd-proof-img img {
  display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 4.2;
  clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%);
  filter: saturate(.88) contrast(1.04);
}
.fd-hero-media .elementor-widget-html { position: absolute !important; right: 0; bottom: 0; }
.fd-hero-tag {
  display: flex; gap: 18px; align-items: center; padding: 18px 22px; background: rgba(0, 0, 0, .82);
  border-top: 3px solid var(--fd-blue); border-left: 1px solid var(--fd-steel);
  font-size: 11px; font-weight: 700; letter-spacing: .22em; line-height: 1.7; color: var(--fd-white);
}

/* strip */
body .e-con.fd-strip-sec { --padding-top: 0px; --padding-bottom: 0px; }
.fd-strip { list-style: none; margin: 0; padding: 20px 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 28px; }
.fd-strip li { font-size: 12px; font-weight: 700; letter-spacing: .26em; color: var(--fd-white); display: flex; align-items: center; gap: 28px; }
.fd-strip li + li::before { content: ""; width: 14px; height: 3px; background: var(--fd-white); opacity: .5; transform: skewX(-38deg); margin-left: -14px; }

/* ---------- Page hero (interior) ---------- */
body .e-con.fd-page-hero { --padding-top: clamp(80px, 10vw, 140px); --padding-bottom: clamp(64px, 8vw, 104px); }
.fd-page-hero > .e-con-inner { gap: 34px !important; }
.fd-page-hero-copy { gap: 24px !important; max-width: 980px; }
.fd-page-hero .elementor-widget-html { display: flex; align-items: center; gap: 22px; }
.fd-page-hero .fd-hero-rule { flex: 1 1 auto; width: auto; max-width: 520px; height: 3px; background: linear-gradient(90deg, var(--fd-blue), var(--fd-steel)); }
.fd-page-hero .fd-hero-sub { max-width: 60ch; color: var(--fd-silver) !important; }

/* ---------- Project proof ---------- */
.fd-proof { display: grid !important; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 64px) !important; align-items: stretch; }
.fd-proof-copy { gap: 22px !important; justify-content: center; }
.fd-proof-img img { aspect-ratio: 1 / 1; clip-path: polygon(0 0, 100% 0, 86% 100%, 0 100%); }
.fd-spec { margin: 0; display: grid; border-top: 1px solid var(--fd-line-dark); }
.fd-spec > div { display: grid; grid-template-columns: minmax(130px, 34%) 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--fd-line-dark); }
.fd-spec dt { font-size: 11px; font-weight: 700; letter-spacing: .2em; color: var(--fd-silver); text-transform: uppercase; padding-top: 3px; }
.fd-spec dd { margin: 0; color: var(--fd-white); font-size: 15.5px; line-height: 1.5; }
.fd-light .fd-spec, .fd-silver .fd-spec, .fd-light .fd-spec > div, .fd-silver .fd-spec > div { border-color: var(--fd-line-light); }
.fd-light .fd-spec dt, .fd-silver .fd-spec dt { color: var(--fd-steel); }
.fd-light .fd-spec dd, .fd-silver .fd-spec dd { color: var(--fd-black); }
.fd-cs { gap: 6px !important; padding-left: 18px !important; border-left: 3px solid var(--fd-steel); }
.fd-mini .elementor-heading-title { font-size: 11px; font-weight: 700; letter-spacing: .22em; color: var(--fd-white); margin: 0; }
.fd-cs p { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--fd-silver); }
.fd-proof-light .fd-h3 .elementor-heading-title, .fd-proof-light .fd-mini .elementor-heading-title { color: var(--fd-black); }
.fd-proof-light .fd-cs p { color: var(--fd-gun); }
.fd-proof-light .fd-link-light .elementor-button { color: var(--fd-blue); }

/* ---------- Brand statement ---------- */
body .e-con.fd-statement-sec { --padding-top: clamp(80px, 10vw, 140px); --padding-bottom: clamp(80px, 10vw, 140px); overflow: hidden; }
.fd-statement-sec::after {
  content: ""; position: absolute; right: -6%; top: 50%; width: 46%; height: 140%; transform: translateY(-50%) skewX(-24deg);
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.06)); pointer-events: none;
}
.fd-statement-inner { gap: 26px !important; position: relative; z-index: 1; }
.fd-statement .elementor-heading-title { color: var(--fd-white) !important; font-size: clamp(56px, 9vw, 140px); }

/* ---------- CTA band ---------- */
body .e-con.fd-cta { --padding-top: clamp(64px, 8vw, 104px); --padding-bottom: clamp(64px, 8vw, 104px); }
.fd-cta-inner { gap: 22px !important; }

/* ---------- Contact + form ---------- */
.fd-contact { display: grid !important; grid-template-columns: minmax(0, .9fr) minmax(0, 1.25fr); gap: clamp(32px, 5vw, 72px) !important; align-items: start; }
.fd-contact-copy { gap: 22px !important; }
@media (min-width: 1025px) { .fd-contact-copy { position: sticky; top: 150px; } }
.fd-contact-list { list-style: none; margin: 10px 0 0; padding: 0; border-top: 1px solid var(--fd-line-dark); }
.fd-contact-list li { display: grid; grid-template-columns: 96px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--fd-line-dark); color: var(--fd-white); font-size: 15.5px; }
.fd-contact-list span { font-size: 11px; font-weight: 700; letter-spacing: .22em; color: var(--fd-silver); padding-top: 3px; }
.fd-contact-list a { color: var(--fd-white); text-decoration: none; word-break: break-word; }
.fd-contact-list a:hover { color: var(--fd-silver); text-decoration: underline; }
body .fd-sec .e-con.fd-form-wrap {
  --padding-top: clamp(24px, 3vw, 40px); --padding-right: clamp(20px, 3vw, 40px); --padding-bottom: clamp(24px, 3vw, 40px); --padding-left: clamp(20px, 3vw, 40px);
  background: rgba(58, 65, 74, .35); border: 1px solid var(--fd-steel); border-top: 4px solid var(--fd-blue);
}
.fd-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 18px; }
.fd-field { display: flex; flex-direction: column; gap: 8px; }
.fd-field-wide, .fd-form-legal, .fd-form-submit { grid-column: 1 / -1; }
.fd-field label, .fd-form-pro .elementor-field-label {
  font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--fd-silver);
}
.fd-req, .fd-form-pro .elementor-mark-required .elementor-field-label::after { color: #7FA3C7; }
.fd-field input, .fd-field select, .fd-field textarea,
.fd-form-pro .elementor-field-group .elementor-field, .fd-form-pro .elementor-field-group select {
  width: 100%; background: var(--fd-black) !important; color: var(--fd-white) !important;
  border: 1px solid var(--fd-dsteel) !important; border-radius: 0 !important; padding: 13px 14px !important;
  font-family: var(--fd-sans); font-size: 16px; line-height: 1.4; min-height: 50px;
}
.fd-field select, .fd-form-pro select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #CCD1D6 50%), linear-gradient(135deg, #CCD1D6 50%, transparent 50%) !important; background-position: calc(100% - 20px) 22px, calc(100% - 15px) 22px !important; background-size: 5px 5px, 5px 5px !important; background-repeat: no-repeat !important; }
.fd-field input:focus, .fd-field select:focus, .fd-field textarea:focus,
.fd-form-pro .elementor-field:focus { border-color: var(--fd-blue) !important; outline: 2px solid var(--fd-blue); outline-offset: 0; }
.fd-form-legal { margin: 2px 0 0; font-size: 13px; color: var(--fd-silver); }
.fd-form-legal a { color: var(--fd-white); }
.fd-form-submit, .fd-form-pro .elementor-button[type="submit"] {
  background: var(--fd-blue) !important; color: var(--fd-white) !important; border: 0 !important; border-radius: 0 !important;
  padding: 20px 28px !important; font-family: var(--fd-sans); font-size: 13px !important; font-weight: 700 !important; letter-spacing: .16em !important;
  text-transform: uppercase; cursor: pointer; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%);
  transition: background-color .2s ease;
}
.fd-form-submit:hover, .fd-form-pro .elementor-button[type="submit"]:hover { background: var(--fd-steel) !important; }
.fd-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fd-form-pro .elementor-form-fields-wrapper { margin: 0 -9px; }
.fd-form-pro .elementor-field-group { padding: 0 9px; margin-bottom: 18px; }

/* ---------- FAQ ---------- */
.fd-faq { border-top: 1px solid var(--fd-line-light); max-width: 960px; }
.fd-faq details { border-bottom: 1px solid var(--fd-line-light); }
.fd-faq summary {
  list-style: none; cursor: pointer; padding: 22px 48px 22px 0; position: relative;
  font-size: 17px; font-weight: 700; color: var(--fd-black);
}
.fd-faq summary::-webkit-details-marker { display: none; }
.fd-faq summary::after { content: "+"; position: absolute; right: 6px; top: 16px; font-size: 28px; font-weight: 400; color: var(--fd-blue); }
.fd-faq details[open] summary::after { content: "–"; }
.fd-faq details p { margin: 0 0 22px; max-width: 70ch; line-height: 1.65; }

/* ---------- About ---------- */
.fd-about-split { display: grid !important; grid-template-columns: 1.2fr 1fr; gap: 48px !important; align-items: center; }
.fd-about-copy { gap: 22px !important; }
body .e-con.fd-about-logo-wrap { background: var(--fd-black); --padding-top: 64px; --padding-bottom: 64px; --padding-left: 40px; --padding-right: 40px; align-items: center; justify-content: center; }
.fd-about-logo img { width: 360px; max-width: 100%; height: auto; }

/* ---------- Legal ---------- */
.fd-legal-wrap { max-width: 820px; gap: 20px !important; }
.fd-legal h2 { font-family: var(--fd-display); font-stretch: 62.5%; font-style: italic; font-weight: 900; text-transform: uppercase; font-size: clamp(44px, 5vw, 68px); color: var(--fd-blue); line-height: .95; margin: 0 0 12px; }
.fd-legal h3 { font-size: 15px; letter-spacing: .14em; text-transform: uppercase; color: var(--fd-black); margin: 32px 0 8px; }
.fd-legal p { line-height: 1.7; }

/* ---------- Footer ---------- */
.e-con.fd-footer { background: var(--fd-black); border-top: 4px solid var(--fd-blue); }
.e-con.fd-footer-inner { --content-width: var(--fd-max); --padding-top: 64px; --padding-bottom: 32px; --padding-left: var(--fd-gutter); --padding-right: var(--fd-gutter); }
.fd-footer-inner > .e-con-inner { gap: 40px !important; }
.fd-foot-grid { display: grid !important; grid-template-columns: 1.6fr 1fr 1fr 1.1fr; gap: 40px !important; }
.fd-foot-brand { gap: 22px !important; }
.fd-foot-logo img { width: 340px; max-width: 100%; height: auto; }
.fd-foot-about { color: var(--fd-silver); font-size: 15px; line-height: 1.65; max-width: 44ch; }
.fd-foot-col { gap: 16px !important; }
.fd-foot-h .elementor-heading-title { font-size: 11px; font-weight: 700; letter-spacing: .24em; color: var(--fd-white); margin: 0; }
.fd-foot-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; color: var(--fd-silver); font-size: 15px; line-height: 1.5; }
.fd-foot-links a { color: var(--fd-silver); text-decoration: none; word-break: break-word; }
.fd-foot-links a:hover { color: var(--fd-white); text-decoration: underline; }
.fd-foot-rule { display: flex; align-items: center; gap: 18px; }
.fd-foot-rule::after { content: ""; flex: 1; height: 1px; background: var(--fd-line-dark); }
.fd-foot-legal { border-top: 1px solid var(--fd-line-dark); padding-top: 22px; }
.fd-foot-legal p { margin: 0; font-size: 12.5px; color: rgba(204, 209, 214, .8); line-height: 1.6; }
.fd-foot-legal a { color: var(--fd-white); text-decoration: none; }
.fd-foot-legal a:hover { text-decoration: underline; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .fd-grid-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fd-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fd-foot-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1024px) {
  .fd-hero > .e-con-inner { grid-template-columns: 1fr; min-height: 0; }
  .fd-hero-img img { aspect-ratio: 16 / 11; clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%); }
  .fd-proof, .fd-contact, .fd-about-split { grid-template-columns: 1fr; }
  .fd-proof-img img { aspect-ratio: 16 / 11; clip-path: polygon(0 0, 100% 0, 92% 100%, 0 100%); }
}
@media (max-width: 767px) {
  .fd-grid-3, .fd-grid-4, .fd-grid-5 { grid-template-columns: 1fr; }
  .fd-who { grid-template-columns: 1fr 1fr; }
  .fd-form { grid-template-columns: 1fr; }
  .fd-spec > div { grid-template-columns: 1fr; gap: 4px; }
  .fd-foot-grid { grid-template-columns: 1fr; gap: 32px !important; }
  .fd-strip { justify-content: flex-start; }
  .fd-strip li + li::before { display: none; }
  .fd-hero-tag { display: none; }
  .fd-contact-list li { grid-template-columns: 1fr; gap: 4px; }
  .fd-btns .elementor-widget-button, .fd-btns .elementor-button { width: 100%; text-align: center; justify-content: center; }
}
@media (max-width: 480px) {
  .fd-who { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; scroll-behavior: auto !important; }
}

/* links on dark fields */
.fd-dark .fd-link .elementor-button { color: var(--fd-white); }
.fd-dark .fd-link .elementor-button:hover { color: var(--fd-silver); }
