/* ==========================================================================
   JTL Elementor Widgets — shared design tokens
   Colour-matched to the JTL mockup via pixel sampling (topbar/hero/footer
   navy ~#06172b, button gold ~#c9971f). Mirrors
   /jtl-security-theme/style.css :root tokens.
   ========================================================================== */
:root{
  --jtl-navy: #071c36;        /* official brand primary — Navy Blue */
  --jtl-navy-2: #0f2c50;      /* hover / lighter navy accents (derived) */
  --jtl-navy-soft: #163a68;
  --jtl-gold: #d49a1e;        /* official brand secondary — Gold */
  --jtl-gold-2: #e6b13f;      /* hover / lighter gold (derived) */
  --jtl-ink: #222222;         /* official brand text — Dark Gray */
  --jtl-muted: #667085;
  --jtl-line: #e8eaef;
  --jtl-bg-soft: #f8f9fb;     /* official brand background */
  --jtl-white: #ffffff;
  --jtl-radius: 10px;
  --jtl-shadow: 0 10px 30px rgba(7,28,54,0.09);
  --jtl-font-head: 'Poppins', sans-serif;
  --jtl-font-body: 'Inter', sans-serif;
}

.jtl-w{ font-family: var(--jtl-font-body); color: var(--jtl-ink); }
.jtl-w *{ box-sizing: border-box; }
.jtl-w h1,.jtl-w h2,.jtl-w h3,.jtl-w h4{ font-family: var(--jtl-font-head); color: var(--jtl-navy); margin:0 0 .5em; line-height:1.2; }
.jtl-container{ max-width:1320px; margin:0 auto; padding:0 24px; }

/* Elementor's Site Settings → Layout → "Space Between Widgets" kit
   setting adds a default margin under every widget on the page. Each JTL
   widget now exposes its own "Section Spacing" style controls (see each
   widget's Style tab) which take precedence via Elementor's normal
   per-element specificity — no !important needed, which would otherwise
   block those controls from working. This is just a soft zero-baseline
   for the moment before a control value has been explicitly saved. */
.elementor-widget-jtl-topbar,
.elementor-widget-jtl-header,
.elementor-widget-jtl-hero,
.elementor-widget-jtl-trust-badges,
.elementor-widget-jtl-about,
.elementor-widget-jtl-services-grid,
.elementor-widget-jtl-industries,
.elementor-widget-jtl-projects,
.elementor-widget-jtl-clients-testimonial,
.elementor-widget-jtl-contact,
.elementor-widget-jtl-footer{
  margin-top:0; margin-bottom:0;
}
.elementor-widget-jtl-topbar > .elementor-widget-container,
.elementor-widget-jtl-header > .elementor-widget-container,
.elementor-widget-jtl-hero > .elementor-widget-container,
.elementor-widget-jtl-trust-badges > .elementor-widget-container,
.elementor-widget-jtl-about > .elementor-widget-container,
.elementor-widget-jtl-services-grid > .elementor-widget-container,
.elementor-widget-jtl-industries > .elementor-widget-container,
.elementor-widget-jtl-projects > .elementor-widget-container,
.elementor-widget-jtl-clients-testimonial > .elementor-widget-container,
.elementor-widget-jtl-contact > .elementor-widget-container,
.elementor-widget-jtl-footer > .elementor-widget-container{
  margin:0; padding:0;
}

/* Breaks a section out of whatever max-width container Elementor / the
   theme wraps it in (a "boxed" page-builder container, a themed content
   wrapper, etc.) so it always spans the true viewport edge-to-edge,
   regardless of the page's own layout settings. Used on every section
   that's meant to be full-bleed per the mockup: Topbar, Header, Hero,
   Industries, Footer. */
.jtl-full-bleed{
  position:relative;
  left:50%;
  right:50%;
  width:100vw;
  max-width:100vw;
  margin-left:-50vw;
  margin-right:-50vw;
}
/* 100vw can include the scrollbar's own width in some browsers, which
   would otherwise show as a few stray pixels of horizontal scroll once a
   full-bleed section is on the page. */
body:has(.jtl-full-bleed){ overflow-x:hidden; }
.jtl-eyebrow{ color: var(--jtl-gold); font-weight:700; letter-spacing:.12em; text-transform:uppercase; font-size:13px; display:block; margin-bottom:10px; }
.jtl-btn{
  display:inline-flex; align-items:center; gap:8px; font-family: var(--jtl-font-head);
  font-weight:600; font-size:14px; padding:15px 28px; border-radius:6px; border:2px solid transparent;
  cursor:pointer; transition:all .2s ease; text-transform:uppercase; letter-spacing:.03em;
}
.jtl-btn-gold{ background: var(--jtl-gold); color:#1a1400; }
.jtl-btn-gold:hover{ background: var(--jtl-gold-2); transform:translateY(-2px); color:#1a1400; }
.jtl-btn-outline{ background:transparent; border-color:rgba(255,255,255,.7); color:#fff; }
.jtl-btn-outline:hover{ background:rgba(255,255,255,.1); border-color:#fff; color:#fff; }
.jtl-btn-navy{ background: var(--jtl-navy); color:#fff; }
.jtl-btn-navy:hover{ background: var(--jtl-navy-2); color:#fff; }

/* ---------- Topbar ---------- */
.jtl-topbar{ background: var(--jtl-navy); color:#b9c4d4; font-size:13px; }
.jtl-topbar .jtl-container{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; padding-top:9px; padding-bottom:9px; gap:10px; }
.jtl-topbar-left{ display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.jtl-topbar-item{ display:flex; align-items:center; gap:8px; color:#b9c4d4; }
.jtl-topbar-item i{ color: var(--jtl-gold); font-size:12px; }
.jtl-topbar-item.jtl-hotline{ color: var(--jtl-gold-2); font-weight:600; }
.jtl-topbar-right{ display:flex; align-items:center; gap:12px; }
.jtl-topbar-right a{ color:#b9c4d4; width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; transition:.2s; font-size:12px; }
.jtl-topbar-right a:hover{ background: var(--jtl-gold); color: var(--jtl-navy); }

/* ---------- Header ---------- */
.jtl-header{ background:#fff; position:relative; z-index:100; }
.jtl-header.jtl-sticky{ position:sticky; top:0; }
.jtl-header-inner{ display:flex; align-items:center; justify-content:space-between; padding:16px 24px; gap:24px; }
.jtl-logo{ display:flex; align-items:center; gap:12px; font-family: var(--jtl-font-head); font-weight:800; font-size:19px; color: var(--jtl-navy); }
.jtl-logo img{ height:50px !important; width:auto !important; max-width:none !important; max-height:none !important; }
.jtl-logo-text small{ display:block; font-family: var(--jtl-font-body); font-weight:600; font-size:10px; letter-spacing:.14em; color: var(--jtl-muted); text-transform:uppercase; margin-top:2px; }
.jtl-nav-menu{ display:flex; align-items:center; gap:32px; list-style:none; margin:0; padding:0; }
.jtl-nav-cta-item{ margin-left:auto; }
.jtl-nav-cta-item a::after{ display:none; }
.jtl-nav-menu li{ position:relative; }
.jtl-nav-menu a{
  font-family: var(--jtl-font-head); font-weight:600; font-size:13.5px; letter-spacing:.02em;
  text-transform:uppercase; color: var(--jtl-navy); padding:8px 0; display:inline-block; position:relative;
}
.jtl-nav-menu a::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background: var(--jtl-gold); transition:.2s; }
.jtl-nav-menu a:hover::after, .jtl-nav-menu li.current a::after{ width:100%; }
.jtl-nav-menu li.current a{ color: var(--jtl-gold); }
.jtl-header-cta{ display:flex; align-items:center; gap:16px; }
.jtl-nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.jtl-nav-toggle span{ width:24px; height:2px; background: var(--jtl-navy); }

/* ---------- Page Header (inner-page hero / breadcrumb) ---------- */
.jtl-page-header-overlay{ background:linear-gradient(90deg, rgba(7,28,54,.93) 0%, rgba(7,28,54,.82) 60%, rgba(7,28,54,.7) 100%); }
.jtl-page-header-inner{ padding:28px 24px; text-align:left; width:100%; }
.jtl-page-header-title{ color:#fff; font-size:38px; margin-bottom:10px; }
.jtl-page-header-subtitle{ color:#c3cddc; font-size:15.5px; max-width:600px; margin-bottom:16px; }
.jtl-breadcrumb{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:13px; }
.jtl-breadcrumb a{ color:#c3cddc; transition:.2s; }
.jtl-breadcrumb a:hover{ color:var(--jtl-gold); }
.jtl-breadcrumb-sep{ color:#5c6c85; font-size:10px; }
.jtl-breadcrumb-current{ color:var(--jtl-gold); font-weight:600; }

/* ---------- Hero ---------- */
.jtl-hero{ position:relative; min-height:420px; background: var(--jtl-navy); color:#fff; overflow:hidden; }
.jtl-hero-bg-img{
  position:absolute; top:0; left:0; width:100%; height:100%;
  object-fit:cover; object-position:center; z-index:0; display:block; margin:0;
}
.jtl-hero-overlay{
  --jtl-hero-overlay-alpha: 0.9;
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(
    90deg,
    rgba(7,28,54, calc(var(--jtl-hero-overlay-alpha) * 1))   0%,
    rgba(7,28,54, calc(var(--jtl-hero-overlay-alpha) * 0.9)) 32%,
    rgba(7,28,54, calc(var(--jtl-hero-overlay-alpha) * 0.46)) 62%,
    rgba(7,28,54, calc(var(--jtl-hero-overlay-alpha) * 0.12)) 100%
  );
}
.jtl-hero-inner{ position:relative; z-index:2; display:grid; grid-template-columns:1.55fr .65fr; gap:40px; padding:72px 24px 76px; max-width:1320px; margin:0 auto; align-items:start; }
.jtl-hero-title{ font-size:52px; font-weight:800; color:#fff; margin-bottom:22px; letter-spacing:-.01em; }
.jtl-hero-title .jtl-accent{ color: var(--jtl-gold); }
.jtl-hero-desc{ font-size:17px; line-height:1.7; color:#c3cddc; max-width:520px; margin-bottom:34px; }
.jtl-hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }

/* Stats form their own distinct column on the right, separated with a
   left border + padding so it reads as a separate panel, not just
   loose items floating next to the headline. */
.jtl-hero-stats-col{ border-left:1px solid rgba(255,255,255,.16); padding-left:36px; }
.jtl-hero-stats{ display:flex; flex-direction:column; gap:26px; padding-top:6px; }
.jtl-hero-stat{ display:flex; align-items:center; gap:16px; }
.jtl-hero-stat i{ font-size:24px; color: var(--jtl-gold); width:30px; text-align:center; flex:none; }
.jtl-hero-stat b{ display:block; font-family:var(--jtl-font-head); font-weight:700; font-size:26px; color:#fff; line-height:1.1; }
.jtl-hero-stat span{ font-size:12.5px; color:#9fadc2; }

/* ---------- Quote Banner ---------- */
.jtl-quote-banner-overlay{ background: rgba(7,28,54,.72); }
.jtl-quote-banner-inner{ text-align:center; max-width:980px; margin:0 auto; padding:60px 24px; }
.jtl-quote-mark-lg{ display:block; font-size:64px; line-height:1; color: var(--jtl-gold); font-family:Georgia,serif; margin-bottom:14px; }
.jtl-quote-heading{ color:#fff; }
.jtl-quote-heading.jtl-rich-text p{ font-size:34px; font-weight:700; line-height:1.35; margin-bottom:0; font-family: var(--jtl-font-head); }
.jtl-quote-subheading{ color:#c3cddc; margin-top:20px; }
.jtl-quote-subheading.jtl-rich-text p{ font-size:16px; line-height:1.7; margin-bottom:0; }

/* ---------- Trust badges strip ---------- */
.jtl-trustbar{ background:#fff; box-shadow:var(--jtl-shadow); border-radius:var(--jtl-radius); margin:-46px auto 0; position:relative; z-index:5; padding:28px 20px; max-width:1320px; }
.jtl-trustbar-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:10px; text-align:center; }
.jtl-trustbar-item{ display:flex; flex-direction:column; align-items:center; gap:11px; padding:0 10px; border-right:1px solid var(--jtl-line); }
.jtl-trustbar-item:last-child{ border-right:0; }
.jtl-trustbar-item i{ font-size:25px; color: var(--jtl-navy); }
.jtl-trustbar-item span{ font-size:12.5px; font-weight:600; color: var(--jtl-ink); }

/* ---------- About ---------- */
.jtl-about{ padding:68px 0; background:#fff; }
.jtl-about-grid{ display:grid; grid-template-columns: var(--jtl-img-col, .9fr) 1.1fr; gap:64px; align-items:stretch; }
.jtl-about-grid-r{ display:grid; grid-template-columns: 1.1fr var(--jtl-img-col, .9fr); gap:64px; align-items:stretch; }
.jtl-about-img{ position:relative; border-radius:var(--jtl-radius); overflow:hidden; box-shadow:var(--jtl-shadow); height:100%; min-height:340px; }
.jtl-about-img img{ position:absolute !important; top:0; left:0; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; display:block; margin:0; }
.jtl-about-title{ font-size:34px; margin-bottom:18px; }
.jtl-about-desc{ color: var(--jtl-muted); line-height:1.75; margin-bottom:34px; }
.jtl-rich-text p{ margin:0 0 16px; }
.jtl-rich-text p:last-child{ margin-bottom:0; }
.jtl-rich-text strong, .jtl-rich-text b{ color: var(--jtl-ink); font-weight:700; }
.jtl-rich-text em, .jtl-rich-text i{ font-style:italic; }
.jtl-rich-text a{ color: var(--jtl-gold); text-decoration:underline; }
.jtl-rich-text ul, .jtl-rich-text ol{ margin:0 0 16px; padding-left:22px; }
.jtl-rich-text ul{ list-style:disc; }
.jtl-rich-text ol{ list-style:decimal; }
.jtl-rich-text li{ margin-bottom:8px; line-height:1.6; }
.jtl-rich-text li::marker{ color: var(--jtl-gold); }
.jtl-rich-text h1, .jtl-rich-text h2, .jtl-rich-text h3, .jtl-rich-text h4{ color: var(--jtl-navy); margin:0 0 12px; }
.jtl-about-pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-bottom:32px; }
.jtl-pillar i{ font-size:22px; color: var(--jtl-gold); margin-bottom:12px; display:block; }
.jtl-pillar h4{ font-size:15.5px; margin-bottom:8px; }
.jtl-pillar p{ font-size:13.5px; color: var(--jtl-muted); line-height:1.6; margin:0; }

/* ---------- Team ---------- */
.jtl-team{ padding:68px 0; background: var(--jtl-white); }
.jtl-team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.jtl-team-card{ background:#fff; border:1px solid var(--jtl-line); border-radius:var(--jtl-radius); overflow:hidden; box-shadow:var(--jtl-shadow); text-align:center; transition:.25s; }
.jtl-team-card:hover{ transform:translateY(-6px); }
.jtl-team-photo{ position:relative; height:240px; background:var(--jtl-navy); overflow:hidden; }
.jtl-team-photo img{ position:absolute !important; top:0; left:0; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; display:block; margin:0; }
.jtl-team-body{ padding:22px 18px; }
.jtl-team-name{ font-size:16px; margin-bottom:4px; }
.jtl-team-role{ display:block; font-size:12px; font-weight:700; color:var(--jtl-gold); text-transform:uppercase; letter-spacing:.05em; margin-bottom:12px; }
.jtl-team-bio{ font-size:13.5px; color:var(--jtl-muted); line-height:1.6; margin-bottom:14px; }
.jtl-team-social{ display:flex; justify-content:center; gap:10px; }
.jtl-team-social a{
  width:32px; height:32px; border-radius:50%; background:var(--jtl-bg-soft); color:var(--jtl-navy);
  display:flex; align-items:center; justify-content:center; font-size:13px; transition:.2s;
}
.jtl-team-social a:hover{ background:var(--jtl-navy); color:#fff; }

/* ---------- Org Chart ---------- */
.jtl-orgchart{ padding:68px 0; background: var(--jtl-white); }
.jtl-org-tree{ display:flex; flex-direction:column; align-items:center; }
.jtl-org-row{ position:relative; display:flex; justify-content:center; flex-wrap:wrap; gap:56px; }
.jtl-org-row:not(:first-child){ margin-top:64px; }
/* Horizontal bar above every row except the first, spanning that row's
   own width — since every row is centered within the same container,
   this lines up with the single centered box in the row above it. */
.jtl-org-row:not(:first-child)::before{
  content:""; position:absolute; top:-32px; left:0; right:0; height:1px; background:var(--jtl-line);
}
/* Short vertical stem from each card up to that horizontal bar */
.jtl-org-row:not(:first-child) .jtl-org-card::before{
  content:""; position:absolute; top:-32px; left:50%; width:1px; height:32px; background:var(--jtl-line); transform:translateX(-50%);
}
/* Short vertical stem down from a row's card(s) toward the row below */
.jtl-org-row-has-next::after{
  content:""; position:absolute; bottom:-64px; left:50%; width:1px; height:32px; background:var(--jtl-line); transform:translateX(-50%); z-index:1;
}
.jtl-org-card{ position:relative; width:220px; text-align:center; }
.jtl-org-card-no-photo{ padding-top:6px; }
.jtl-org-photo{
  position:relative; width:96px; height:96px; margin:0 auto 12px; border-radius:50%; overflow:hidden;
  border:3px solid #fff; box-shadow:var(--jtl-shadow); background:var(--jtl-navy);
}
.jtl-org-name{ font-size:14px; margin-bottom:2px; line-height:1.3; }
.jtl-org-role{ display:block; font-size:11px; font-weight:700; color:var(--jtl-gold); text-transform:uppercase; letter-spacing:.04em; }

/* ---------- Services grid ---------- */
.jtl-services{ padding:68px 0; background: var(--jtl-white); }
.jtl-section-head{ text-align:center; max-width:640px; margin:0 auto 34px; }
.jtl-section-head h2{ font-size:30px; text-transform:uppercase; letter-spacing:.04em; }
.jtl-section-head p{ color: var(--jtl-muted); margin-top:10px; }
.jtl-services-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.jtl-service-card{ position:relative; background:#fff; border:1px solid var(--jtl-line); border-radius:var(--jtl-radius); overflow:hidden; box-shadow:var(--jtl-shadow); transition:.25s; }
.jtl-service-card:hover{ transform:translateY(-6px); }
.jtl-service-media{ position:relative; height:150px; background:var(--jtl-navy); overflow:hidden; }
.jtl-service-media img{ position:absolute !important; top:0; left:0; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; display:block; margin:0; }
.jtl-service-icon{ position:absolute; left:18px; top:126px; z-index:3; width:46px; height:46px; border-radius:50%; background: var(--jtl-navy); color: var(--jtl-gold); display:flex; align-items:center; justify-content:center; font-size:18px; border:3px solid #fff; }
.jtl-service-body{ padding:32px 20px 22px; }
.jtl-service-body h4{ font-size:16px; margin-bottom:8px; }
.jtl-service-body p{ font-size:13.5px; color: var(--jtl-muted); line-height:1.6; margin-bottom:12px; }
.jtl-service-link{ font-size:12.5px; font-weight:700; color: var(--jtl-gold); text-transform:uppercase; letter-spacing:.03em; }
.jtl-service-link i{ margin-left:4px; }

/* ---------- Industries ---------- */
.jtl-industries{ background: var(--jtl-navy); padding:36px 0; }
.jtl-industries-title{ text-align:center; color:#fff; font-size:14px; letter-spacing:.18em; text-transform:uppercase; margin-bottom:32px; font-family:var(--jtl-font-head); font-weight:600; }
.jtl-industries-grid{ display:grid; grid-template-columns:repeat(8,1fr); gap:0; }
.jtl-industry-item{ display:flex; flex-direction:column; align-items:center; gap:12px; color:#fff; text-align:center; padding:0 12px; border-right:1px solid rgba(255,255,255,.14); }
.jtl-industry-item:last-child{ border-right:0; }
.jtl-industry-item i{ font-size:28px; color: var(--jtl-gold); }
.jtl-industry-item span{ font-size:13px; font-weight:600; }

/* ---------- Featured projects ---------- */
.jtl-projects{ padding:68px 0; background:#fff; }
.jtl-projects-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:34px; flex-wrap:wrap; gap:14px; }
.jtl-projects-head h2{ font-size:26px; margin:0; text-transform:uppercase; letter-spacing:.03em; }
.jtl-projects-head a{ font-size:13px; font-weight:700; color: var(--jtl-gold); text-transform:uppercase; letter-spacing:.03em; }
.jtl-projects-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.jtl-project-card{ border-radius:var(--jtl-radius); overflow:hidden; box-shadow:var(--jtl-shadow); border:1px solid var(--jtl-line); }
.jtl-project-media{ position:relative; height:160px; background:var(--jtl-navy); overflow:hidden; }
.jtl-project-media img{ position:absolute !important; top:0; left:0; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; display:block; margin:0; }
.jtl-project-body{ padding:18px; }
.jtl-project-body h4{ font-size:16px; margin-bottom:6px; }
.jtl-project-body .jtl-tag{ font-size:13px; color: var(--jtl-ink); font-weight:600; display:block; }
.jtl-project-body .jtl-loc{ font-size:12.5px; color: var(--jtl-muted); }

/* ---------- News & Events ---------- */
.jtl-news{ padding:68px 0; background: var(--jtl-white); }
.jtl-news-tabs{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:38px; }
.jtl-news-tab{
  font-family:var(--jtl-font-head); font-weight:600; font-size:13px; letter-spacing:.02em;
  padding:10px 20px; border-radius:999px; border:1px solid var(--jtl-line); background:#fff;
  color:var(--jtl-muted); cursor:pointer; transition:.2s; text-transform:uppercase;
}
.jtl-news-tab:hover{ border-color:var(--jtl-gold); color:var(--jtl-navy); }
.jtl-news-tab.is-active{ background:var(--jtl-navy); border-color:var(--jtl-navy); color:#fff; }
.jtl-news-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.jtl-news-card{ background:#fff; border:1px solid var(--jtl-line); border-radius:var(--jtl-radius); overflow:hidden; box-shadow:var(--jtl-shadow); transition:.25s; }
.jtl-news-card:hover{ transform:translateY(-6px); }
.jtl-news-card.is-hidden{ display:none; }
.jtl-news-media{ position:relative; display:block; height:170px; overflow:hidden; }
.jtl-news-media img{ position:absolute !important; top:0; left:0; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; display:block; margin:0; }
.jtl-news-body{ padding:20px; }
.jtl-news-date{ font-size:12px; font-weight:600; color:var(--jtl-gold); text-transform:uppercase; letter-spacing:.04em; display:block; margin-bottom:8px; }
.jtl-news-title{ font-size:16.5px; margin-bottom:10px; line-height:1.35; }
.jtl-news-title a{ color:var(--jtl-navy); transition:.2s; }
.jtl-news-title a:hover{ color:var(--jtl-gold); }
.jtl-news-excerpt{ font-size:13.5px; color:var(--jtl-muted); line-height:1.6; margin-bottom:14px; }
.jtl-news-link{ display:inline-flex; }
.jtl-news-empty{ text-align:center; color:var(--jtl-muted); padding:40px 0; }

/* ---------- Clients & testimonial ---------- */
.jtl-clients{ padding:56px 0; background: var(--jtl-bg-soft); }
.jtl-clients-grid{ display:grid; grid-template-columns:1.2fr .9fr; gap:50px; align-items:start; }
.jtl-clients h3, .jtl-clients-quote h3{ font-size:14px; letter-spacing:.14em; text-transform:uppercase; margin-bottom:26px; }
.jtl-logos{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.jtl-logo-item{ background:#fff; border-radius:10px; padding:20px; display:flex; align-items:center; justify-content:center; box-shadow:var(--jtl-shadow); height:130px; }
.jtl-logo-item img{ max-height:78px !important; max-width:85% !important; width:auto !important; height:auto !important; object-fit:contain !important; }
.jtl-clients-quote{ background:#fff; border-radius:var(--jtl-radius); padding:32px; box-shadow:var(--jtl-shadow); position:relative; }
.jtl-quote-mark{ font-size:44px; color: var(--jtl-gold); font-family:Georgia,serif; line-height:1; }
.jtl-stars{ color: var(--jtl-gold); margin:10px 0 16px; font-size:15px; }
.jtl-quote-text{ font-size:16px; line-height:1.7; color: var(--jtl-ink); margin-bottom:18px; }
.jtl-quote-author{ border-left:3px solid var(--jtl-gold); padding-left:14px; }
.jtl-quote-author b{ display:block; font-size:14px; }
.jtl-quote-author span{ font-size:12.5px; color: var(--jtl-muted); }

/* ---------- Testimonial carousel ---------- */
.jtl-testimonial-carousel{ position:relative; }
.jtl-testimonial-track{ position:relative; padding:0 40px; }
.jtl-testimonial-slide .jtl-quote-mark{ display:block; }
.jtl-testimonial-arrow{
  position:absolute; top:38px;
  width:34px; height:34px; border-radius:50%; border:1px solid var(--jtl-line);
  background:#fff; color:var(--jtl-navy); display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:var(--jtl-shadow); font-size:12px; transition:.2s; z-index:2;
}
.jtl-testimonial-arrow:hover{ background:var(--jtl-navy); color:#fff; }
.jtl-testimonial-prev{ left:0; }
.jtl-testimonial-next{ right:0; }
.jtl-testimonial-slide{ display:none; opacity:0; }
.jtl-testimonial-slide.is-active{ display:block; opacity:1; }
.jtl-testimonial-dots{ display:flex; gap:8px; justify-content:center; margin-top:22px; }
.jtl-testimonial-dot{
  width:9px; height:9px; border-radius:50%; border:0; padding:0; background:var(--jtl-line); cursor:pointer; transition:.2s;
}
.jtl-testimonial-dot.is-active{ background:var(--jtl-gold); width:22px; border-radius:5px; }

/* ---------- Contact ---------- */
.jtl-contact{ padding:64px 0; background:#fff; }
.jtl-contact-grid{ display:grid; grid-template-columns:.5fr .5fr 1fr; gap:40px; }
.jtl-map-embed{ border-radius:var(--jtl-radius); overflow:hidden; height:100%; min-height:280px; box-shadow:var(--jtl-shadow); }
.jtl-map-embed iframe{ width:100%; height:100%; border:0; min-height:280px; }
.jtl-contact-info h3{ font-size:19px; margin-bottom:20px; text-transform:uppercase; letter-spacing:.03em; }
.jtl-info-row{ display:flex; gap:14px; margin-bottom:20px; align-items:flex-start; }
.jtl-info-row i{ width:36px; height:36px; border-radius:50%; background: var(--jtl-bg-soft); color: var(--jtl-gold); display:flex; align-items:center; justify-content:center; flex:none; }
.jtl-info-row div b{ display:block; font-size:14px; margin-bottom:2px; }
.jtl-info-row div span{ font-size:13.5px; color: var(--jtl-muted); line-height:1.5; }
.jtl-contact-form{ background: var(--jtl-bg-soft); border-radius:var(--jtl-radius); padding:30px; }
.jtl-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.jtl-form-grid .full{ grid-column:1/-1; }
.jtl-contact-form input, .jtl-contact-form select, .jtl-contact-form textarea{
  width:100%; padding:13px 14px; border:1px solid var(--jtl-line); border-radius:6px; font-family:var(--jtl-font-body);
  font-size:14px; background:#fff; color:var(--jtl-ink);
}
.jtl-contact-form textarea{ min-height:110px; resize:vertical; }
.jtl-contact-form button{ margin-top:16px; width:100%; justify-content:center; }

/* ---------- CTA Banner ---------- */
.jtl-cta-banner{ background: var(--jtl-navy); padding:70px 0; }
.jtl-cta-inner{ text-align:center; max-width:720px; margin:0 auto; }
.jtl-cta-eyebrow{ display:inline-block; }
.jtl-cta-heading{ color:#fff; font-size:32px; margin-bottom:14px; }
.jtl-cta-desc{ color:#c3cddc; font-size:16px; line-height:1.7; margin-bottom:30px; }
.jtl-cta-actions{ display:flex; justify-content:center; gap:16px; flex-wrap:wrap; }

/* ---------- Careers ---------- */
.jtl-careers{ padding:68px 0; background: var(--jtl-white); }
.jtl-careers-list{ display:flex; flex-direction:column; gap:18px; }
.jtl-career-card{
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  background:#fff; border:1px solid var(--jtl-line); border-radius:var(--jtl-radius); padding:26px 28px; box-shadow:var(--jtl-shadow); transition:.2s;
}
.jtl-career-card:hover{ border-color:var(--jtl-gold); }
.jtl-career-info{ flex:1; min-width:260px; }
.jtl-career-title{ font-size:18px; margin-bottom:8px; }
.jtl-career-meta{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:10px; }
.jtl-career-meta span{ font-size:12.5px; color:var(--jtl-muted); font-weight:600; }
.jtl-career-meta i{ color:var(--jtl-gold); margin-right:5px; }
.jtl-career-desc{ font-size:13.5px; color:var(--jtl-muted); line-height:1.6; margin:0; max-width:640px; }
.jtl-career-apply{ flex:none; white-space:nowrap; }

/* ---------- Feature Cards ---------- */
.jtl-feature-cards{ padding:68px 0; background: var(--jtl-bg-soft); }
.jtl-kicker-badge{
  display:inline-block; background: var(--jtl-gold); color:#1a1400; font-family:var(--jtl-font-head); font-weight:700;
  font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; padding:8px 16px; border-radius:6px; margin-bottom:16px;
}
.jtl-feature-cards-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.jtl-feature-card{
  background:#fff; border:1px solid var(--jtl-line); border-radius:14px; overflow:hidden;
  box-shadow:var(--jtl-shadow); display:flex; flex-direction:column; transition:.25s;
}
.jtl-feature-card:hover{ transform:translateY(-6px); border-color:var(--jtl-gold); }
.jtl-feature-card-head{ background: var(--jtl-navy); padding:26px 26px 22px; }
.jtl-feature-card-head-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.jtl-feature-label{ font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color: var(--jtl-gold); }
.jtl-feature-badge{
  background: var(--jtl-gold); color:#1a1400; font-size:10.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  padding:5px 11px; border-radius:5px; white-space:nowrap;
}
.jtl-feature-title{ color:#fff; font-size:21px; margin-bottom:10px; letter-spacing:.01em; }
.jtl-feature-desc{ color:#c3cddc; font-size:13.5px; line-height:1.65; margin:0; }
.jtl-feature-card-body{ padding:24px 26px 28px; display:flex; flex-direction:column; flex:1; }
.jtl-feature-checklist{ list-style:none; margin:0 0 22px; padding:0; }
.jtl-feature-checklist li{ display:flex; align-items:flex-start; gap:10px; margin-bottom:12px; font-size:13.5px; color:var(--jtl-ink); line-height:1.55; }
.jtl-feature-checklist li i{ color: var(--jtl-gold); font-size:12px; margin-top:4px; flex:none; }
.jtl-feature-tags-label{ display:block; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--jtl-muted); margin-bottom:10px; }
.jtl-feature-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.jtl-feature-tag{
  background: var(--jtl-bg-soft); border:1px solid var(--jtl-line); color:var(--jtl-navy); font-size:12px; font-weight:600;
  padding:6px 12px; border-radius:6px;
}
.jtl-feature-btn{ margin-top:auto; justify-content:center; width:100%; }

/* ---------- Footer ---------- */
.jtl-footer{ background: var(--jtl-navy); color:#a9b6c9; padding:64px 0 0; }
.jtl-footer-grid{ display:flex; flex-wrap:wrap; gap:30px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.1); }
.jtl-footer-brand-col{ flex:1.6 1 260px; min-width:220px; }
.jtl-footer-col{ flex:1 1 140px; min-width:130px; }
.jtl-footer-brand{ display:flex; align-items:flex-start; gap:12px; }
.jtl-footer-brand img{ height:50px !important; width:auto !important; max-width:none !important; max-height:none !important; }
.jtl-footer-brand-col p{ font-size:13.5px; line-height:1.7; margin-top:14px; color:#8fa0b8; }
.jtl-footer-brand-extra{ margin-top:18px; }
.jtl-footer h5{ color:#fff; font-family:var(--jtl-font-head); font-size:13.5px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:18px; font-weight:600; }
.jtl-footer-col-image{ display:inline-block; }
.jtl-footer-col-html{ font-size:13.5px; line-height:1.7; color:#a9b6c9; }
.jtl-footer-col-html a{ color: var(--jtl-gold); }
.jtl-footer ul{ list-style:none; margin:0; padding:0; }
.jtl-footer ul li{ margin-bottom:10px; }
.jtl-footer ul a{ color:#a9b6c9; font-size:13.5px; transition:.2s; }
.jtl-footer ul a:hover{ color: var(--jtl-gold); }
.jtl-footer-hotline{ font-family:var(--jtl-font-head); font-weight:700; font-size:18px; color:#fff; }
.jtl-footer-hotline small{ display:block; color: var(--jtl-gold); font-size:11.5px; text-transform:uppercase; letter-spacing:.1em; font-weight:600; margin-bottom:6px; }
.jtl-footer-bottom{ display:flex; align-items:center; justify-content:space-between; padding:22px 0; font-size:12.5px; color:#7c8ba1; flex-wrap:wrap; gap:10px; }
.jtl-footer-bottom a{ color:#7c8ba1; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px){
  .jtl-hero-inner{ grid-template-columns:1fr; }
  .jtl-hero-stats-col{ border-left:0; border-top:1px solid rgba(255,255,255,.16); padding-left:0; padding-top:28px; margin-top:8px; }
  .jtl-hero-stats{ flex-direction:row; flex-wrap:wrap; gap:24px 30px; }
  .jtl-trustbar-grid{ grid-template-columns:repeat(3,1fr); row-gap:20px; }
  .jtl-trustbar-item:nth-child(3){ border-right:0; }
  .jtl-about-grid{ grid-template-columns:1fr; }
  .jtl-about-grid-r{ grid-template-columns:1fr; }
  .jtl-about-img{ height:340px; }
  .jtl-services-grid{ grid-template-columns:repeat(2,1fr); }
  .jtl-team-grid{ grid-template-columns:repeat(2,1fr); }
  .jtl-industries-grid{ grid-template-columns:repeat(4,1fr); row-gap:24px; }
  .jtl-industry-item:nth-child(4n){ border-right:0; }
  .jtl-projects-grid{ grid-template-columns:repeat(2,1fr); }
  .jtl-news-grid{ grid-template-columns:repeat(2,1fr); }
  .jtl-feature-cards-grid{ grid-template-columns:repeat(2,1fr); }
  .jtl-clients-grid{ grid-template-columns:1fr; }
  .jtl-contact-grid{ grid-template-columns:1fr; }
  .jtl-footer-col{ flex-basis:45%; }
}
@media (max-width: 782px){
  .jtl-header-inner{ flex-wrap:nowrap; }
  .jtl-nav-toggle{ display:flex; }
  .jtl-nav-menu{
    display:none; flex-direction:column; align-items:stretch; gap:4px;
    position:absolute; top:100%; left:0; right:0; z-index:99;
    background:#fff; padding:16px 24px 22px; margin:0;
    box-shadow:0 16px 30px rgba(7,28,54,.14);
    max-height:80vh; overflow-y:auto;
  }
  .jtl-nav-menu.is-open{ display:flex; }
  .jtl-nav-menu li{ width:100%; }
  .jtl-nav-menu a{ display:block; padding:10px 0; }
  .jtl-nav-cta-item{ margin-left:0; margin-top:10px; }
  .jtl-nav-cta-item a{ width:100%; justify-content:center; }
  .jtl-hero-title{ font-size:34px; }
  .jtl-page-header-title{ font-size:28px; }
  .jtl-quote-heading.jtl-rich-text p{ font-size:24px; }
  .jtl-quote-mark-lg{ font-size:48px; }
  .jtl-career-card{ flex-direction:column; align-items:stretch; }
  .jtl-career-apply{ text-align:center; justify-content:center; }
  .jtl-trustbar-grid{ grid-template-columns:repeat(2,1fr); }
  .jtl-trustbar-item:nth-child(2n){ border-right:0; }
  .jtl-about-pillars{ grid-template-columns:1fr; }
  .jtl-services-grid{ grid-template-columns:1fr; }
  .jtl-team-grid{ grid-template-columns:1fr; }
  .jtl-org-card{ width:160px; }
  .jtl-org-row{ gap:32px; }
  .jtl-org-row:not(:first-child){ margin-top:48px; }
  .jtl-industries-grid{ grid-template-columns:repeat(2,1fr); }
  .jtl-industry-item:nth-child(2n){ border-right:0; }
  .jtl-projects-grid{ grid-template-columns:1fr; }
  .jtl-news-grid{ grid-template-columns:1fr; }
  .jtl-feature-cards-grid{ grid-template-columns:1fr; }
  .jtl-form-grid{ grid-template-columns:1fr; }
  .jtl-footer-col{ flex-basis:100%; }
  .jtl-footer-brand-col{ flex-basis:100%; }
  .jtl-topbar-left{ gap:14px; }
  .jtl-logos{ grid-template-columns:repeat(2,1fr); }
}
