/* Zaptro Trading: site stylesheet (loaded by mu-plugins/zaptro-site.php). Colours from the logo. */

:root {
  --zt-navy: #1F3657;
  --zt-navy-dark: #10213A;
  --zt-navy-deep: #0C1A2E;
  --zt-orange: #F07A1A;
  --zt-orange-dark: #D9650C;
  --zt-ink: #1C2533;
  --zt-muted: #5A6577;
  --zt-soft: #F4F6F9;
  --zt-line: #E3E7ED;
  /* fonts as on the reference site: Montserrat headings, Mulish text, Hind buttons, Itim labels */
  --zt-head: 'Montserrat', system-ui, sans-serif;
  --zt-body: 'Mulish', system-ui, sans-serif;
  --zt-btn: 'Hind', system-ui, sans-serif;
  --zt-label: 'Itim', 'Mulish', system-ui, sans-serif;
  --zt-header-bg: #0A1422;
  --zt-ease: cubic-bezier(.22, 1, .36, 1);
  --zt-head-h: 78px;
}

html { scroll-behavior: smooth; scroll-padding-top: var(--zt-head-h); }
html, body { overflow-x: clip; }
body { margin: 0; background: #fff; color: var(--zt-ink); font-family: var(--zt-body); font-size: 16px; line-height: 1.65; }
body .elementor-widget-text-editor, body input, body select, body textarea, body button { font-family: var(--zt-body); }
body .elementor-button { font-family: var(--zt-btn); }
body .elementor-heading-title { font-family: var(--zt-head); }
img { max-width: 100%; height: auto; }
.zt-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- shared ---------- */

.e-con.zt-sec { --padding-top: 100px; --padding-bottom: 100px; --padding-left: 24px; --padding-right: 24px; }
.zt-sec .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

.zt-kicker {
  display: inline-flex; align-items: center; gap: 10px; margin: 0 0 14px;
  font-family: var(--zt-label); font-size: 16px; font-weight: 400; letter-spacing: 2px; text-transform: uppercase;
  color: var(--zt-orange-dark);
}
/* small hexagon before the label, from the logo shape */
.zt-kicker::before {
  content: ""; width: 12px; height: 13px; flex: 0 0 auto; background: var(--zt-orange);
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.zt-h1 .elementor-heading-title {
  font-size: clamp(38px, 5.2vw, 76px); font-weight: 700; line-height: 1.12; letter-spacing: -.1px; color: #fff; margin: 0 0 26px;
}
.zt-h2 .elementor-heading-title {
  font-size: clamp(28px, 3.1vw, 43px); font-weight: 700; line-height: 1.2; letter-spacing: -.1px; color: var(--zt-navy); margin: 0 0 18px;
}
.zt-copy p { font-size: 17px; line-height: 1.75; color: var(--zt-muted); margin: 0 0 14px; }
.zt-lead p { font-size: 19px; line-height: 1.7; color: #E6EBF2; margin: 0; }

/* buttons: Hind, letter-spaced, square corners as on the reference */
.zt-btn .elementor-button {
  font-family: var(--zt-btn); font-size: 15px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; line-height: 1;
  padding: 20px 26px 18px; border-radius: 2px; border: 2px solid transparent;
  transition: background-color .25s var(--zt-ease), color .25s var(--zt-ease), border-color .25s var(--zt-ease), transform .25s var(--zt-ease), box-shadow .25s var(--zt-ease);
}
.zt-btn .elementor-button:hover, .zt-btn .elementor-button:focus-visible { transform: translateY(-2px); }
.zt-btn-orange .elementor-button { background-color: var(--zt-orange); border-color: var(--zt-orange); color: #fff; }
.zt-btn-orange .elementor-button:hover, .zt-btn-orange .elementor-button:focus-visible { background-color: var(--zt-orange-dark); border-color: var(--zt-orange-dark); color: #fff; box-shadow: 0 10px 22px rgba(240,122,26,.3); }
.zt-btn-ghost .elementor-button { background-color: transparent; border-color: rgba(255,255,255,.5); color: #fff; }
.zt-btn-ghost .elementor-button:hover, .zt-btn-ghost .elementor-button:focus-visible { background-color: #fff; border-color: #fff; color: var(--zt-navy); }
.zt-btn-dark .elementor-button { background-color: var(--zt-navy-dark); border-color: var(--zt-navy-dark); color: #fff; }
.zt-btn-dark .elementor-button:hover, .zt-btn-dark .elementor-button:focus-visible { background-color: #fff; border-color: #fff; color: var(--zt-navy-dark); }
.zt-btn-navy .elementor-button { background-color: var(--zt-navy); border-color: var(--zt-navy); color: #fff; }
.zt-btn-navy .elementor-button:hover, .zt-btn-navy .elementor-button:focus-visible { background-color: var(--zt-navy-dark); border-color: var(--zt-navy-dark); color: #fff; box-shadow: 0 10px 22px rgba(16,33,58,.25); }

/* ---------- header (first container of the page) ---------- */

/* Dark bar as in the reference: logo left, uppercase menu centred, call button right. */
.e-con.zt-header {
  position: sticky; top: 0; z-index: 100;
  --padding-top: 0px; --padding-bottom: 0px; --padding-left: 24px; --padding-right: 24px;
  background: var(--zt-header-bg);
  transition: box-shadow .3s var(--zt-ease);
}
body.admin-bar .e-con.zt-header { top: 32px; }
.e-con.zt-header.is-scrolled { box-shadow: 0 8px 26px rgba(0,0,0,.3); }
.zt-header .elementor-widget-html { width: 100%; }
.zt-bar { position: relative; display: flex; align-items: center; gap: 28px; min-height: var(--zt-head-h); }
.zt-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; flex: 0 0 auto; }
/* the mark's navy needs a light ground on the dark bar */
.zt-brand-mark { display: inline-flex; background: #fff; border-radius: 8px; padding: 6px 7px; }
.zt-brand-mark img { display: block; width: auto; height: 40px; }
.zt-brand-txt { display: flex; flex-direction: column; line-height: 1; }
.zt-brand-1 { font-family: var(--zt-head); font-size: 22px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #fff; }
.zt-brand-2 { font-family: var(--zt-head); font-size: 10.5px; font-weight: 600; letter-spacing: .5em; text-transform: uppercase; color: #AEB9CB; margin-top: 5px; }
.zt-nav { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; gap: 34px; }
.zt-nav a {
  font-family: var(--zt-body); font-size: 16px; font-weight: 600; text-transform: uppercase; color: #fff; text-decoration: none; padding: 8px 0;
  transition: color .25s var(--zt-ease);
}
.zt-nav a:hover, .zt-nav a:focus-visible, .zt-nav a.is-active { color: var(--zt-orange); }
.zt-head-cta {
  flex: 0 0 auto; font-family: var(--zt-btn); font-size: 15px; font-weight: 600; letter-spacing: 2px; line-height: 1;
  color: #fff; text-decoration: none; white-space: nowrap;
  background: var(--zt-orange); padding: 22px 26px 20px; border-radius: 2px;
  transition: background-color .25s var(--zt-ease), transform .25s var(--zt-ease);
}
.zt-head-cta:hover, .zt-head-cta:focus-visible { background: var(--zt-orange-dark); color: #fff; transform: translateY(-1px); }

/* menu button: hidden on desktop. Prefixed to outrank Hello Elementor's button hover colours. */
.zt-bar .zt-menu-btn {
  display: none; width: 46px; height: 46px; padding: 0; border: 1px solid rgba(255,255,255,.25); border-radius: 4px;
  background: transparent; color: #fff; cursor: pointer; align-items: center; justify-content: center;
}
.zt-bar .zt-menu-btn:hover, .zt-bar .zt-menu-btn:focus { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.4); }
.zt-bar .zt-menu-btn:focus-visible { outline: 2px solid var(--zt-orange); outline-offset: 2px; }
.zt-menu-ico, .zt-menu-ico::before, .zt-menu-ico::after {
  display: block; width: 20px; height: 2px; background: currentColor; border-radius: 2px; position: relative;
  transition: transform .25s var(--zt-ease), background-color .25s var(--zt-ease);
}
.zt-menu-ico::before, .zt-menu-ico::after { content: ""; position: absolute; left: 0; }
.zt-menu-ico::before { top: -6px; }
.zt-menu-ico::after { top: 6px; }
.zt-bar.is-open .zt-menu-ico { background: transparent; }
.zt-bar.is-open .zt-menu-ico::before { transform: translateY(6px) rotate(45deg); }
.zt-bar.is-open .zt-menu-ico::after { transform: translateY(-6px) rotate(-45deg); }

/* ---------- hero ---------- */

/* Full screen banner, centred text over the sliding photos (Elementor background slideshow). */
.e-con.zt-hero {
  --padding-top: 110px; --padding-bottom: 130px;
  min-height: max(560px, min(calc(100vh - var(--zt-head-h)), 900px));
  justify-content: center; background-color: var(--zt-navy-deep);
}
.e-con.zt-hero > .e-con-inner { justify-content: center; align-items: center; }
/* Elementor appends the slideshow after the content, so set the layers explicitly:
   photos 0, dark overlay (::before) 1, text 2 */
.e-con.zt-hero > .elementor-background-slideshow { z-index: 0; }
.e-con.zt-hero::before { z-index: 1; }
.e-con.zt-hero-text { position: relative; z-index: 2; max-width: 1240px; margin: 0 auto; text-align: center; align-items: center; }
.zt-hero .zt-kicker { color: #F5A35F; justify-content: center; }
.zt-hero .zt-kicker::before { display: none; }
.zt-hero .zt-h1 .elementor-heading-title { text-shadow: 0 2px 18px rgba(0,0,0,.25); }
.zt-hero .zt-lead p { max-width: 860px; margin: 0 auto; font-size: 19px; }
.zt-btns { margin-top: 40px; }
.e-con.zt-hero .zt-btns { justify-content: center; }
/* thin orange arrow line along the bottom edge, from the logo */
.e-con.zt-hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; z-index: 2;
  background: linear-gradient(90deg, var(--zt-navy) 0, var(--zt-navy) 40%, var(--zt-orange) 100%);
}

/* ---------- three areas strip ---------- */

.e-con.zt-areas { --padding-top: 0px; --padding-bottom: 40px; background: var(--zt-soft); }
.e-con.zt-area-grid { margin-top: -56px; position: relative; z-index: 3; }
.e-con.zt-area {
  --padding-top: 34px; --padding-bottom: 34px; --padding-left: 30px; --padding-right: 30px;
  background: #fff; border-radius: 10px; box-shadow: 0 18px 44px rgba(16,33,58,.10);
  border-top: 3px solid var(--zt-orange);
  transition: transform .35s var(--zt-ease), box-shadow .35s var(--zt-ease);
}
.e-con.zt-area:hover { transform: translateY(-5px); box-shadow: 0 24px 50px rgba(16,33,58,.15); }
.zt-area-icon { margin-bottom: 16px; }
.zt-area-icon .elementor-icon { font-size: 30px; color: var(--zt-orange); }
.zt-area-icon .elementor-icon i, .zt-area-icon .elementor-icon svg { color: var(--zt-orange); fill: var(--zt-orange); width: 30px; height: 30px; }
.zt-area-title .elementor-heading-title { font-size: 20px; font-weight: 700; color: var(--zt-navy); margin: 0 0 8px; }
.zt-area-text p { font-size: 15.5px; line-height: 1.65; color: var(--zt-muted); margin: 0; }

/* ---------- about (all rules scoped to .zt-ab) ---------- */
/* Layout after the user's reference: framed photo, three overlapping cards on its left, text right.
   Palette from the logo: brand navy ground, burnt orange cards (the logo arrow, deepened), warm gold
   accents (the hero label colour). */

.e-con.zt-ab {
  --zt-ab-gold: #F5A35F;
  --zt-ab-card: #9A3F0B;
  --padding-top: 110px; --padding-bottom: 110px;
  /* solid colour first: Elementor's lazy-load hides background images until the section is in view */
  background-color: #172E4D;
  background-image: linear-gradient(135deg, var(--zt-navy) 0%, #172E4D 55%, var(--zt-navy-dark) 100%);
}
.e-con.zt-ab-row { align-items: center; }

/* composition: cards (left, on top) overlap the photo; thin gold frame behind the photo */
.e-con.zt-ab-comp { position: relative; isolation: isolate; align-items: flex-start; padding: 0 0 46px; }
.e-con.zt-ab-comp::after {
  content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 36%; right: 0;
  border: 1px solid rgba(245,163,95,.55); pointer-events: none;
}
.e-con.zt-ab-comp > .zt-ab-img { order: 2; flex: 0 0 55%; width: 55%; margin: 46px 0 0 -3%; position: relative; z-index: 1; }
.zt-ab-img img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; box-shadow: 0 26px 60px rgba(0,0,0,.35); }
.elementor .elementor-element.e-con.zt-ab-cards { order: 1; --width: 48%; flex: 0 0 48%; margin-top: 110px; position: relative; z-index: 2; gap: 22px; }

.elementor .elementor-element.e-con.zt-ab-card {
  --padding-top: 30px; --padding-bottom: 30px; --padding-left: 24px; --padding-right: 24px;
  gap: 16px; align-items: flex-start;
  background: linear-gradient(160deg, #A9480F 0%, var(--zt-ab-card) 100%);
  box-shadow: 0 18px 40px rgba(0,0,0,.28);
  transition: transform .35s var(--zt-ease), box-shadow .35s var(--zt-ease);
}
.e-con.zt-ab-card:hover { transform: translateX(6px); box-shadow: 0 22px 46px rgba(0,0,0,.34); }
.zt-ab-ico-w { flex: 0 0 auto; width: auto; }
.zt-ab-ico { display: block; color: var(--zt-ab-gold); line-height: 0; }
.zt-ab-ico svg { width: 46px; height: 46px; }
.elementor .elementor-element.e-con.zt-ab-card-body { --width: auto; flex: 1 1 auto; padding-top: 8px; }
.zt-ab-card-title .elementor-heading-title { font-size: 21px; font-weight: 700; line-height: 1.2; color: #fff; margin: 0 0 8px; }
.zt-ab-card-text p { font-size: 15.5px; line-height: 1.6; color: #FBE7D7; margin: 0; }

/* text column */
.zt-ab .zt-kicker { color: var(--zt-ab-gold); }
.zt-ab .zt-kicker::before { background: var(--zt-ab-gold); }
.zt-ab .zt-h2 .elementor-heading-title { font-size: clamp(32px, 3.6vw, 56px); line-height: 1.15; color: #fff; margin-bottom: 26px; }
.zt-ab .zt-copy p { font-size: 17.5px; line-height: 1.8; color: #D3DCEA; margin: 0; }
.zt-ab-list {
  list-style: none; margin: 30px 0 38px; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px 28px;
}
.zt-ab-list li { display: flex; align-items: center; gap: 14px; font-family: var(--zt-head); font-size: 16.5px; font-weight: 500; line-height: 1.35; color: #F2F5F9; }
/* small red-orange ring with a dot, after the reference */
.zt-ab-list li::before {
  content: ""; flex: 0 0 auto; width: 16px; height: 16px; border-radius: 50%; box-sizing: border-box;
  border: 2px solid var(--zt-orange); background: radial-gradient(circle, var(--zt-orange) 0 3px, transparent 3.5px);
}

/* uniforms photo: offset orange frame behind it (isolate keeps z-index -1 above the section ground) */
.zt-uni-img { margin: 0; position: relative; isolation: isolate; }
.zt-uni-img img {
  display: block; width: 100%; height: auto; aspect-ratio: 5 / 6; object-fit: cover; border-radius: 12px;
  box-shadow: 0 24px 54px rgba(16,33,58,.18);
}
.zt-uni-img::before {
  content: ""; position: absolute; inset: 22px 22px -22px -22px; border: 3px solid var(--zt-orange); border-radius: 12px; z-index: -1;
}
.zt-uni-img .elementor-widget-container { position: relative; z-index: 1; }
.e-con.zt-uni-media { padding-bottom: 22px; }

/* ---------- capabilities ---------- */

.e-con.zt-caps { background: #fff; }
.elementor .e-con.e-grid.zt-cap-grid { align-items: stretch; }
.e-con.zt-cap-intro { grid-column: span 2; --padding-top: 0px; --padding-bottom: 12px; --padding-left: 0px; --padding-right: 24px; justify-content: center; }
.e-con.zt-cap {
  --padding-top: 28px; --padding-bottom: 26px; --padding-left: 24px; --padding-right: 24px;
  background: #fff; border: 1px solid var(--zt-line); border-radius: 10px; position: relative; overflow: hidden;
  transition: transform .35s var(--zt-ease), box-shadow .35s var(--zt-ease), border-color .35s var(--zt-ease), background-color .35s var(--zt-ease);
}
.zt-cap-icon { margin-bottom: 18px; }
.zt-cap-icon .elementor-icon {
  width: 54px; height: 54px; display: inline-flex; align-items: center; justify-content: center; font-size: 22px;
  background: var(--zt-soft); color: var(--zt-navy);
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  transition: background-color .35s var(--zt-ease), color .35s var(--zt-ease);
}
.zt-cap-icon .elementor-icon i, .zt-cap-icon .elementor-icon svg { color: inherit; fill: currentColor; width: 22px; height: 22px; }
.zt-cap-title .elementor-heading-title { font-size: 16.5px; font-weight: 700; line-height: 1.35; color: var(--zt-navy); margin: 0; }
.e-con.zt-cap:hover { transform: translateY(-5px); border-color: transparent; background-color: var(--zt-navy); box-shadow: 0 20px 44px rgba(16,33,58,.2); }
.zt-cap:hover .zt-cap-icon .elementor-icon { background: var(--zt-orange); color: #fff; }
.zt-cap:hover .zt-cap-title .elementor-heading-title { color: #fff; }

/* ---------- uniforms ---------- */

.e-con.zt-uni { background: var(--zt-soft); }
.zt-uni-list {
  list-style: none; margin: 8px 0 32px; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px;
}
/* English on top, Arabic under it */
.zt-uni-list li {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
  padding: 11px 0 11px 16px; border-bottom: 1px solid #D9DFE8; position: relative;
}
.zt-uni-list li::before {
  content: ""; position: absolute; left: 0; top: 19px; width: 6px; height: 7px; background: var(--zt-orange);
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.zt-uni-en { font-family: var(--zt-head); font-size: 15px; font-weight: 600; color: var(--zt-navy); }
.zt-uni-ar { font-family: 'Noto Sans Arabic', var(--zt-body); font-size: 14.5px; color: var(--zt-muted); }

/* ---------- why choose us ---------- */

.e-con.zt-why { background: var(--zt-navy-dark); }
.e-con.zt-head-center { text-align: center; margin-bottom: 48px; }
.zt-why .zt-h2 .elementor-heading-title { color: #fff; }
.zt-why .zt-kicker { color: #FFB27A; }
.e-con.zt-why-card {
  --padding-top: 30px; --padding-bottom: 30px; --padding-left: 28px; --padding-right: 28px;
  position: relative; border-radius: 10px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
  transition: transform .35s var(--zt-ease), background-color .35s var(--zt-ease), border-color .35s var(--zt-ease);
}
.e-con.zt-why-card:hover { transform: translateY(-5px); background: rgba(255,255,255,.08); border-color: rgba(240,122,26,.6); }
.zt-why-num { position: absolute; top: 22px; right: 24px; font-family: var(--zt-head); font-size: 34px; font-weight: 800; line-height: 1; color: rgba(255,255,255,.08); }
.zt-why-card .elementor-widget-html { position: static; }
.zt-why-icon { margin-bottom: 20px; }
.zt-why-icon .elementor-icon { font-size: 28px; color: var(--zt-orange); }
.zt-why-icon .elementor-icon i, .zt-why-icon .elementor-icon svg { color: var(--zt-orange); fill: var(--zt-orange); width: 28px; height: 28px; }
.zt-why-title .elementor-heading-title { font-size: 18px; font-weight: 700; line-height: 1.35; color: #fff; margin: 0; }
.zt-why-card:not(.zt-why-cta) .zt-why-title .elementor-heading-title { padding-right: 36px; } /* clear of the number */
.e-con.zt-why-cta { background: var(--zt-orange); border-color: var(--zt-orange); justify-content: center; gap: 18px; }
.e-con.zt-why-cta:hover { background: var(--zt-orange); border-color: var(--zt-orange); }
.zt-why-cta .zt-why-title .elementor-heading-title { font-size: 20px; }
.zt-why-cta .zt-btn-orange .elementor-button { background: #fff; border-color: #fff; color: var(--zt-orange-dark); }
.zt-why-cta .zt-btn-orange .elementor-button:hover, .zt-why-cta .zt-btn-orange .elementor-button:focus-visible { background: var(--zt-navy-dark); border-color: var(--zt-navy-dark); color: #fff; box-shadow: none; }

/* ---------- mission and vision ---------- */

.e-con.zt-mv { background: #fff; }
.e-con.zt-mv-card {
  --padding-top: 44px; --padding-bottom: 44px; --padding-left: 40px; --padding-right: 40px;
  background: var(--zt-soft); border-radius: 12px; border-left: 4px solid var(--zt-orange);
  transition: transform .35s var(--zt-ease), box-shadow .35s var(--zt-ease);
}
.e-con.zt-mv-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(16,33,58,.10); }
.zt-mv-icon { margin-bottom: 18px; }
.zt-mv-icon .elementor-icon { font-size: 32px; color: var(--zt-navy); }
.zt-mv-icon .elementor-icon i, .zt-mv-icon .elementor-icon svg { color: var(--zt-navy); fill: var(--zt-navy); width: 32px; height: 32px; }
.zt-mv-title .elementor-heading-title { font-size: 26px; font-weight: 800; color: var(--zt-navy); margin: 0 0 12px; }
.zt-mv-text p { font-size: 17px; line-height: 1.75; color: var(--zt-muted); margin: 0; }

/* ---------- call to action ---------- */

.e-con.zt-cta { --padding-top: 80px; --padding-bottom: 80px; }
.zt-cta .zt-h2 .elementor-heading-title { color: #fff; margin-bottom: 10px; }
.zt-cta .zt-kicker { color: #FFB27A; }
.zt-cta .zt-copy p { color: #D3DCEA; }
.e-con.zt-cta-btn { align-items: flex-end; }

/* ---------- contact ---------- */

.e-con.zt-contact { background: var(--zt-soft); }
.e-con.zt-contact-row { align-items: flex-start; }
.zt-ci { list-style: none; margin: 30px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.zt-ci li {
  display: flex; align-items: center; gap: 16px; padding: 16px 18px; background: #fff; border-radius: 10px;
  border: 1px solid var(--zt-line); font-size: 16px; color: var(--zt-ink);
  transition: border-color .25s var(--zt-ease), transform .25s var(--zt-ease);
}
.zt-ci li:hover { border-color: var(--zt-orange); transform: translateX(4px); }
.zt-ci li > span:last-child { display: flex; flex-direction: column; }
.zt-ci-ico {
  width: 46px; height: 46px; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 8px; background: var(--zt-navy); color: #fff; font-size: 18px;
}
.zt-ci-label { font-family: var(--zt-head); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--zt-orange-dark); margin-bottom: 2px; }
.zt-ci a { color: var(--zt-ink); text-decoration: none; font-weight: 600; }
.zt-ci a:hover { color: var(--zt-orange-dark); }

.e-con.zt-contact-form { background: #fff; border-radius: 12px; box-shadow: 0 20px 50px rgba(16,33,58,.08); }
/* the column's own zero padding is element CSS (.elementor-N .elementor-element.elementor-element-id), so outrank it */
.elementor .elementor-element.e-con.zt-contact-form { --padding-top: 40px; --padding-bottom: 40px; --padding-left: 40px; --padding-right: 40px; }
.zt-form-title .elementor-heading-title { font-size: 24px; font-weight: 800; color: var(--zt-navy); margin: 0 0 22px; }
.zt-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.zt-f { display: flex; flex-direction: column; gap: 7px; }
.zt-f-full { grid-column: 1 / -1; }
.zt-f label { font-family: var(--zt-head); font-size: 13px; font-weight: 700; color: var(--zt-navy); }
.zt-form .wpcf7-form-control-wrap { display: block; }
.zt-form input:not([type=submit]), .zt-form select, .zt-form textarea {
  width: 100%; box-sizing: border-box; font-family: var(--zt-body); font-size: 15px; color: var(--zt-ink); background: #fff;
  border: 1px solid #CDD4DF; border-radius: 6px; padding: 13px 14px;
}
.zt-form input:focus, .zt-form select:focus, .zt-form textarea:focus { outline: 2px solid var(--zt-orange); outline-offset: 0; border-color: var(--zt-orange); }
.zt-form textarea { min-height: 130px; resize: vertical; }
.zt-form .zt-submit {
  font-family: var(--zt-btn); font-size: 15px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; cursor: pointer;
  background: var(--zt-orange); color: #fff; border: 0; border-radius: 2px; padding: 19px 34px 17px;
  transition: background-color .25s var(--zt-ease), transform .25s var(--zt-ease);
}
.zt-form .zt-submit:hover, .zt-form .zt-submit:focus { background: var(--zt-orange-dark); color: #fff; transform: translateY(-2px); }
.zt-contact-form .wpcf7-response-output { margin: 18px 0 0; border-radius: 6px; font-size: 14px; }
.zt-contact-form .wpcf7-not-valid-tip { font-size: 13px; margin-top: 4px; }

/* ---------- footer (last container of the page) ---------- */

.e-con.zt-footer { background: var(--zt-navy-deep); color: #AEB9CB; --padding-top: 70px; --padding-bottom: 28px; --padding-left: 24px; --padding-right: 24px; }
.zt-foot { display: grid; grid-template-columns: 1.5fr 1fr 1.2fr 1.2fr; gap: 40px; }
.zt-brand-light .zt-brand-1 { color: #fff; }
.zt-brand-light .zt-brand-2 { color: #AEB9CB; }
.zt-foot-mark { display: inline-flex; background: #fff; border-radius: 8px; padding: 6px; }
.zt-foot-mark img { height: 40px; width: auto; }
.zt-foot-brand p { font-size: 15px; line-height: 1.7; margin: 18px 0 0; max-width: 320px; }
.zt-foot-h { font-family: var(--zt-head); font-size: 15px; font-weight: 700; color: #fff; margin: 6px 0 16px; }
.zt-foot ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 15px; }
.zt-foot a { color: #AEB9CB; text-decoration: none; transition: color .2s; }
.zt-foot a:hover, .zt-foot a:focus-visible { color: var(--zt-orange); }
.zt-copy-line { margin: 48px 0 0; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); font-size: 13.5px; color: #8391A8; }

/* ---------- floating WhatsApp (printed by zaptro-site.php) ---------- */

.zt-wa {
  position: fixed; right: 22px; bottom: 22px; z-index: 200;
  width: 58px; height: 58px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: #25D366; color: #fff; font-size: 30px; text-decoration: none; box-shadow: 0 10px 26px rgba(0,0,0,.22);
  transition: transform .25s var(--zt-ease);
}
.zt-wa:hover, .zt-wa:focus-visible { transform: scale(1.07); color: #fff; }
.zt-wa::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
  animation: zt-pulse 2.4s ease-out infinite;
}
@keyframes zt-pulse { 0% { box-shadow: 0 0 0 0 rgba(37,211,102,.5); } 70%, 100% { box-shadow: 0 0 0 16px rgba(37,211,102,0); } }

/* ---------- scroll reveal (script in zaptro-site.php; keep selectors in step) ---------- */

html.zt-js .zt-hero-text, html.zt-js .zt-ab-media, html.zt-js .zt-ab-text, html.zt-js .zt-uni-text, html.zt-js .zt-uni-media,
html.zt-js .zt-head-center, html.zt-js .zt-cta-row, html.zt-js .zt-contact-info, html.zt-js .zt-contact-form,
html.zt-js .zt-area, html.zt-js .zt-cap-grid > .e-con, html.zt-js .zt-why-card, html.zt-js .zt-mv-card {
  opacity: 0; transform: translateY(26px);
  transition: opacity .7s var(--zt-ease), transform .8s var(--zt-ease), box-shadow .35s var(--zt-ease), background-color .35s var(--zt-ease), border-color .35s var(--zt-ease);
}
html.zt-js .zt-ab-media, html.zt-js .zt-uni-text { transform: translateX(-30px); }
html.zt-js .zt-ab-text, html.zt-js .zt-uni-media { transform: translateX(30px); }
html.zt-js .is-in, html.zt-js.zt-shown .zt-hero-text, html.zt-js.zt-shown .zt-ab-media, html.zt-js.zt-shown .zt-ab-text,
html.zt-js.zt-shown .zt-uni-text, html.zt-js.zt-shown .zt-uni-media, html.zt-js.zt-shown .zt-head-center, html.zt-js.zt-shown .zt-cta-row,
html.zt-js.zt-shown .zt-contact-info, html.zt-js.zt-shown .zt-contact-form, html.zt-js.zt-shown .zt-area,
html.zt-js.zt-shown .zt-cap-grid > .e-con, html.zt-js.zt-shown .zt-why-card, html.zt-js.zt-shown .zt-mv-card {
  opacity: 1; transform: none;
}
/* hover lifts still apply after the reveal */
html.zt-js .e-con.zt-area.is-in:hover, html.zt-js .e-con.zt-cap.is-in:hover, html.zt-js .e-con.zt-why-card.is-in:hover { transform: translateY(-5px); }
html.zt-js .e-con.zt-mv-card.is-in:hover { transform: translateY(-4px); }
html.zt-js .e-con.zt-why-cta.is-in:hover { transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .e-con.zt-area:hover, .e-con.zt-cap:hover, .e-con.zt-why-card:hover, .e-con.zt-mv-card:hover, .zt-ci li:hover { transform: none; }
}

/* ---------- tablet ---------- */

@media (max-width: 1024px) {
  :root { --zt-head-h: 70px; }
  .e-con.zt-sec { --padding-top: 76px; --padding-bottom: 76px; }
  .zt-bar { gap: 14px; }
  .zt-bar .zt-menu-btn { display: inline-flex; }
  .zt-brand { margin-right: auto; }
  .zt-nav {
    display: none; position: absolute; top: 100%; left: -24px; right: -24px;
    flex-direction: column; align-items: stretch; gap: 0; padding: 4px 24px 16px;
    background: var(--zt-header-bg); border-top: 1px solid rgba(255,255,255,.08); box-shadow: 0 18px 30px rgba(0,0,0,.3);
  }
  .zt-bar.is-open .zt-nav { display: flex; }
  .zt-nav a { padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,.08); font-size: 15px; }
  .zt-nav a:last-child { border-bottom: 0; }
  .zt-head-cta { padding: 16px 20px 14px; font-size: 14px; }
  .zt-brand-mark img { height: 36px; }
  .e-con.zt-hero { min-height: 620px; --padding-top: 96px; --padding-bottom: 120px; }
  .e-con.zt-cap-intro { grid-column: 1 / -1; --padding-right: 0px; }
  .elementor .e-con.e-grid.zt-why-grid { grid-template-columns: repeat(2, 1fr); }
  .e-con.zt-uni-media { max-width: 560px; }
  .zt-uni-img img { aspect-ratio: 4 / 3; }
  /* about: columns stack; the composition keeps its overlap at a smaller scale */
  .e-con.zt-ab { --padding-top: 84px; --padding-bottom: 84px; }
  .e-con.zt-ab-media { max-width: 700px; margin: 0 auto; }
  .elementor .elementor-element.e-con.zt-ab-cards { margin-top: 90px; gap: 18px; }
  .elementor .elementor-element.e-con.zt-ab-card { --padding-top: 26px; --padding-bottom: 26px; --padding-left: 22px; --padding-right: 22px; gap: 14px; }
  .zt-ab-ico svg { width: 42px; height: 42px; }
  .zt-ab-card-title .elementor-heading-title { font-size: 19px; }
  .zt-ab-card-text p { font-size: 15px; }
  /* uniforms: text first, photo after, on stacked layouts */
  .e-con.zt-uni-row { flex-direction: column; }
  .e-con.zt-cta-btn { align-items: flex-start; }
  .zt-foot { grid-template-columns: 1fr 1fr; }
}

/* ---------- phone ---------- */

@media (max-width: 767px) {
  :root { --zt-head-h: 64px; }
  body { font-size: 15px; }
  .e-con.zt-sec { --padding-top: 60px; --padding-bottom: 60px; --padding-left: 16px; --padding-right: 16px; }
  .e-con.zt-header { --padding-left: 16px; --padding-right: 16px; }
  .zt-nav { left: -16px; right: -16px; padding: 6px 16px 14px; }
  .zt-head-cta { display: none; }
  .zt-brand-mark { padding: 5px 6px; }
  .zt-brand-mark img { height: 32px; }
  .zt-brand-1 { font-size: 19px; }
  .zt-brand-2 { font-size: 9.5px; letter-spacing: .42em; }
  .e-con.zt-hero { min-height: calc(100svh - var(--zt-head-h)); --padding-top: 64px; --padding-bottom: 100px; }
  .zt-hero .zt-kicker { font-size: 14px; letter-spacing: 1.5px; }
  .zt-h1 .elementor-heading-title { font-size: 34px; }
  .zt-hero .zt-lead p { font-size: 16px; }
  .zt-h2 .elementor-heading-title { font-size: 26px; }
  .zt-lead p { font-size: 16.5px; }
  .zt-copy p, .zt-mv-text p { font-size: 15.5px; }
  .zt-btn .elementor-button { width: 100%; justify-content: center; }
  .e-con.zt-areas { --padding-bottom: 20px; }
  .e-con.zt-area-grid { margin-top: -44px; }
  .zt-uni-img::before { inset: 14px 14px -14px -10px; }
  /* about: photo full width inside the frame, cards stacked below and rising over its lower edge */
  .e-con.zt-ab { --padding-top: 60px; --padding-bottom: 64px; }
  .e-con.zt-ab-comp { padding: 14px 14px 18px; }
  .e-con.zt-ab-comp::after { left: 0; }
  .e-con.zt-ab-comp > .zt-ab-img { order: 1; flex: 0 0 auto; width: 100%; margin: 0; }
  .zt-ab-img img { aspect-ratio: 4 / 3.2; }
  .elementor .elementor-element.e-con.zt-ab-cards { order: 2; --width: auto; flex: 0 0 auto; width: auto; margin: -56px 12px 0; gap: 14px; }
  .elementor .elementor-element.e-con.zt-ab-card { --padding-top: 22px; --padding-bottom: 22px; --padding-left: 18px; --padding-right: 18px; }
  .zt-ab-ico svg { width: 38px; height: 38px; }
  .zt-ab-card-title .elementor-heading-title { font-size: 18px; margin-bottom: 6px; }
  .zt-ab .zt-h2 .elementor-heading-title { font-size: 29px; margin-bottom: 18px; }
  .zt-ab .zt-copy p { font-size: 15.5px; line-height: 1.75; }
  .zt-ab-list { margin: 24px 0 30px; gap: 13px 18px; }
  .zt-ab-list li { font-size: 15px; gap: 11px; }
  .e-con.zt-cap { --padding-top: 20px; --padding-bottom: 18px; --padding-left: 16px; --padding-right: 16px; }
  .zt-cap-icon { margin-bottom: 12px; }
  .zt-cap-icon .elementor-icon { width: 44px; height: 44px; font-size: 18px; }
  .zt-cap-title .elementor-heading-title { font-size: 14.5px; }
  .zt-uni-list { grid-template-columns: 1fr; }
  .elementor .e-con.e-grid.zt-why-grid { grid-template-columns: 1fr; }
  .e-con.zt-head-center { margin-bottom: 32px; }
  .e-con.zt-mv-card { --padding-top: 32px; --padding-bottom: 32px; --padding-left: 24px; --padding-right: 24px; }
  .e-con.zt-cta { --padding-top: 60px; --padding-bottom: 60px; }
  .elementor .elementor-element.e-con.zt-contact-form { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 20px; --padding-right: 20px; }
  .zt-form { grid-template-columns: 1fr; }
  .zt-foot { grid-template-columns: 1fr; gap: 30px; }
  .zt-wa { right: 16px; bottom: 16px; width: 52px; height: 52px; font-size: 27px; }
}

/* about highlights: one column on narrow phones */
@media (max-width: 440px) {
  .zt-ab-list { grid-template-columns: 1fr; }
}
