/* ==========================================================================
   S Z Aviation - design system
   Ported from the Claude Design source of truth. Tokens first, then the
   component classes the Elementor markup hooks into.
   ========================================================================== */

:root {
  --color-bg: #ffffff;
  --color-surface: #f4f7fc;
  --color-text: #101a33;
  --color-accent: #58d3ff;
  --color-accent-2: #58d3ff;
  --color-divider: rgba(41, 69, 151, 0.16);

  --color-accent-100: #eaf9ff;
  --color-accent-200: #cdf1ff;
  --color-accent-300: #a8e6ff;
  --color-accent-400: #7fdcff;
  --color-accent-500: #58d3ff;
  --color-accent-600: #2fb4e6;
  --color-accent-700: #1c7fa8;
  --color-accent-800: #145d7d;
  --color-accent-900: #294597;

  --font-heading: "Prata", Georgia, serif;
  --font-heading-weight: 400;
  --font-body: "Jost", system-ui, sans-serif;

  --radius-md: 4px;
  --sz-shell: 1320px;
  --sz-gutter: 40px;
}

/* -- base -- */

body.sz-site {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 15px;
  line-height: 1.55;
}

.sz-site h1, .sz-site h2, .sz-site h3,
.sz-site h4, .sz-site h5, .sz-site h6 {
  font-family: var(--font-heading);
  font-weight: var(--font-heading-weight);
  line-height: 1.18;
  letter-spacing: 0;
  text-transform: none;
  margin: 0 0 6.8px;
}

.sz-site a { color: var(--color-accent-700); text-underline-offset: 3px; }
.sz-site a:hover { color: var(--color-accent-900); }
.sz-site img { display: block; max-width: 100%; }

/* -- shell -- */

.sz-shell {
  max-width: var(--sz-shell);
  margin: 0 auto;
  padding-inline: var(--sz-gutter);
  width: 100%;
}

.sz-section { padding-block: 104px; }
.sz-section--tight { padding-block: 0 104px; }
.sz-section--ruled { border-top: 1px solid var(--color-divider); }

.sz-panel {
  position: relative;
  background: var(--color-accent-900);
  color: var(--color-bg);
  overflow: hidden;
}
.sz-panel h1, .sz-panel h2, .sz-panel h3, .sz-panel h4 { color: var(--color-bg); }

.sz-grid-lines::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(to right, rgba(242, 242, 243, .08) 1px, transparent 1px);
  background-size: calc(100% / 12) 100%;
  pointer-events: none;
  z-index: 1;
}
.sz-panel > .e-con-inner { position: relative; z-index: 2; }

/* -- eyebrow -- */

.sz-eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--font-heading);
  font-size: 12px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--color-accent-700);
}
.sz-eyebrow::before {
  content: "";
  width: 44px;
  height: 1px;
  flex: none;
  background: var(--color-accent);
}
.sz-eyebrow--light { color: var(--color-accent-300); font-size: 13px; letter-spacing: .34em; }
.sz-eyebrow--light::before { background: var(--color-accent-400); }

/* -- buttons -- */

.sz-site .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  text-decoration: none;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--color-text);
  background: transparent;
  border: 1px solid var(--color-divider);
  border-radius: 999px;
  padding: 14px 28px;
  transition: background .18s, color .18s, border-color .18s;
}
.sz-site .btn-primary {
  background: var(--color-accent);
  color: #10233f;
  border-color: var(--color-accent);
}
.sz-site .btn-primary:hover { background: var(--color-accent-400); color: #10233f; }
.sz-site .btn-onnavy {
  color: var(--color-bg);
  border-color: rgba(242, 242, 243, .42);
}
.sz-site .btn-onnavy:hover { background: rgba(242, 242, 243, .12); color: var(--color-bg); }
.sz-site .btn-sm { padding: 11px 18px; letter-spacing: .1em; }
.sz-site .btn-lg { padding: 14px 26px; font-size: 15px; letter-spacing: .1em; }

/* -- blueprint frame -- */

.blueprint {
  position: relative;
  border: 1px solid var(--color-divider);
  border-radius: 4px;
}
.blueprint > .corner { display: none; }

/* -- duotone photo treatment -- */

.duotone { position: relative; overflow: hidden; }
.duotone::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: var(--color-accent);
  mix-blend-mode: color;
  opacity: .22;
}
.duotone img { width: 100%; height: 100%; object-fit: cover; }

/* -- divider strips -- */

.sz-strip {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
}
.sz-strip > * {
  padding: 30px 22px;
  border-right: 1px solid var(--color-divider);
}
.sz-strip > *:first-child { padding-left: 0; }
.sz-strip > *:last-child { padding-right: 0; border-right: 0; }

.sz-strip--claims > * {
  font-family: var(--font-heading);
  font-size: 14px;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.sz-strip--why > * { padding-block: 34px; }
.sz-strip--why h4 { font-size: 22px; text-transform: uppercase; margin: 0 0 12px; }
.sz-strip--why p {
  font-size: 14px;
  line-height: 1.65;
  color: rgba(16, 26, 51, .68);
  margin: 0;
}

.sz-strip--steps > * { padding-block: 32px; }
.sz-strip--steps .step-no {
  font-family: var(--font-heading);
  font-size: 11px;
  letter-spacing: .28em;
  color: var(--color-accent-700);
}
.sz-strip--steps .step-label {
  font-family: var(--font-heading);
  font-size: 24px;
  text-transform: uppercase;
  margin-top: 10px;
}

.sz-ruled-top { border-top: 1px solid var(--color-divider); }
.sz-ruled-both {
  border-top: 1px solid var(--color-divider);
  border-bottom: 1px solid var(--color-divider);
}

/* -- division cards -- */

.sz-paths {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.path {
  display: block;
  padding: 44px;
  text-decoration: none;
  color: var(--color-text);
  transition: background .18s;
}
.path:hover { background: rgba(88, 211, 255, .08); }
.path .path-no {
  font-family: var(--font-heading);
  font-size: 12px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--color-accent-700);
}
.path h3 { font-size: 38px; text-transform: uppercase; margin: 16px 0 14px; }
.path p { font-size: 15px; color: rgba(16, 26, 51, .7); margin: 0 0 28px; }
.path .path-cta {
  font-family: var(--font-heading);
  font-size: 14px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-accent-700);
}

/* -- service cards -- */

.sz-services {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.svc {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 34px;
  text-decoration: none;
  color: var(--color-text);
  transition: background .18s;
}
.svc:hover { background: rgba(88, 211, 255, .07); }
.svc:hover .svc-arrow { transform: translateX(6px); }
.svc .svc-no {
  font-family: var(--font-heading);
  font-size: 12px;
  letter-spacing: .28em;
  color: var(--color-accent-700);
}
.svc h4 { font-size: 26px; text-transform: uppercase; margin: 0; }
.svc p {
  font-size: 14px;
  line-height: 1.65;
  color: rgba(16, 26, 51, .68);
  margin: 0;
  flex: 1;
}
.svc-arrow { font-size: 18px; color: var(--color-accent); transition: transform .18s; }

/* -- stat badge -- */

.sz-stat {
  position: absolute;
  left: -34px;
  bottom: -30px;
  background: var(--color-bg);
  padding: 26px 34px;
  z-index: 3;
}
.sz-stat .stat-figure {
  font-family: var(--font-heading);
  font-size: 64px;
  line-height: 1;
  color: var(--color-accent-700);
}
.sz-stat .stat-label {
  font-family: var(--font-heading);
  font-size: 13px;
  letter-spacing: .2em;
  text-transform: uppercase;
  margin-top: 6px;
}

/* -- partner strip -- */

.sz-partner {
  margin-top: 48px;
  padding: 40px 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.sz-partner .partner-kicker {
  font-family: var(--font-heading);
  font-size: 12px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--color-accent-700);
}
.sz-partner .partner-name {
  font-family: var(--font-heading);
  font-size: 30px;
  text-transform: uppercase;
  margin-top: 8px;
}
.sz-partner .partner-note {
  font-size: 14px;
  color: rgba(16, 26, 51, .65);
  margin-top: 4px;
}

/* -- display type scale -- */

.sz-h1 {
  font-size: clamp(54px, 7.2vw, 108px);
  line-height: .95;
  letter-spacing: -.01em;
  text-transform: uppercase;
  margin: 0;
  max-width: 16ch;
}
.sz-h2 { font-size: clamp(34px, 4vw, 56px); text-transform: uppercase; letter-spacing: -.01em; margin: 0; }
.sz-h2--sm { font-size: clamp(32px, 3.6vw, 50px); }
.sz-h2--lg { font-size: clamp(38px, 5vw, 72px); }
.sz-lead { font-size: 19px; line-height: 1.65; max-width: 56ch; }
.sz-body { font-size: 16px; line-height: 1.75; color: rgba(16, 26, 51, .78); }
.sz-onnavy-text { color: rgba(242, 242, 243, .78); }

/* -- header -- */

.sz-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--color-divider);
}
.sz-header .sz-nav .elementor-item {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 12.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--color-text);
}
.sz-header .sz-nav .elementor-item:hover,
.sz-header .sz-nav .elementor-item.elementor-item-active { color: var(--color-accent-700); }

/* -- footer -- */

.sz-footer { background: var(--color-accent-900); color: var(--color-bg); }
.sz-footer a { color: rgba(242, 242, 243, .72); text-decoration: none; }
.sz-footer a:hover { color: #f2f2f3; }
.sz-footer .footer-heading {
  font-family: var(--font-heading);
  font-size: 12px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--color-accent-400);
  margin-bottom: 18px;
}
.sz-footer .footer-links {
  display: flex;
  flex-direction: column;
  gap: 11px;
  font-size: 14px;
}
.sz-footer .footer-brand {
  font-family: var(--font-heading);
  font-size: 22px;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-top: 22px;
}
.sz-footer .footer-tagline {
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--color-accent-400);
  margin-top: 8px;
}
.sz-footer .footer-blurb {
  font-size: 14px;
  line-height: 1.7;
  color: rgba(242, 242, 243, .66);
  max-width: 34ch;
  margin-top: 22px;
}
.sz-footer .footer-offices {
  display: flex;
  flex-direction: column;
  gap: 14px;
  font-size: 14px;
  color: rgba(242, 242, 243, .72);
}
.sz-footer .footer-offices strong { color: var(--color-bg); font-weight: 500; }
.sz-footer .footer-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 22px 0 32px;
  border-top: 1px solid rgba(242, 242, 243, .18);
  font-size: 12px;
  letter-spacing: .08em;
  color: rgba(242, 242, 243, .55);
}
.sz-footer .footer-bar .footer-cities { text-transform: uppercase; letter-spacing: .2em; }

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1180px) {
  :root { --sz-gutter: 28px; }
  .sz-strip--claims > * { font-size: 12.5px; letter-spacing: .12em; }
  .path { padding: 34px; }
  .path h3 { font-size: 32px; }
}

@media (max-width: 1024px) {
  .sz-section { padding-block: 72px; }
  .sz-section--tight { padding-block: 0 72px; }
  .sz-services { grid-template-columns: repeat(2, 1fr); }
  .sz-strip { grid-template-columns: repeat(3, 1fr); }
  .sz-strip > * {
    padding: 24px 20px;
    border-bottom: 1px solid var(--color-divider);
  }
  .sz-strip > *:first-child { padding-left: 20px; }
  .sz-strip > *:last-child { padding-right: 20px; border-right: 1px solid var(--color-divider); }
  .sz-strip > *:nth-child(3n) { border-right: 0; }
  .sz-stat { left: 0; bottom: -22px; padding: 20px 26px; }
  .sz-stat .stat-figure { font-size: 48px; }
}

@media (max-width: 880px) {
  :root { --sz-gutter: 22px; }
  .sz-section { padding-block: 56px; }
  .sz-section--tight { padding-block: 0 56px; }
  .sz-paths { grid-template-columns: 1fr; gap: 18px; }
  .sz-services { grid-template-columns: 1fr; gap: 16px; }
  .sz-strip { grid-template-columns: repeat(2, 1fr); }
  .sz-strip > *:nth-child(3n) { border-right: 1px solid var(--color-divider); }
  .sz-strip > *:nth-child(2n) { border-right: 0; }
  .sz-h1 { font-size: clamp(38px, 10vw, 56px); max-width: none; }
  .sz-lead { font-size: 17px; }
  .sz-partner { padding: 28px 24px; gap: 24px; }
  .sz-partner .partner-name { font-size: 24px; }
  .sz-footer .footer-bar { flex-direction: column; align-items: flex-start; gap: 10px; }
}

@media (max-width: 600px) {
  .sz-strip { grid-template-columns: 1fr; }
  .sz-strip > * { padding-inline: 0 !important; border-right: 0 !important; }
  .sz-strip > *:last-child { border-bottom: 0; }
  .path { padding: 26px; }
  .path h3 { font-size: 26px; }
  .svc { padding: 24px; }
  .svc h4 { font-size: 22px; }
  .sz-site .btn { padding: 12px 22px; font-size: 11px; }
  .sz-stat { position: static; margin-top: 16px; padding: 18px 22px; }
}

/* ==========================================================================
   Elementor bridges
   Elementor renders its own markup inside each widget, so the brand classes
   are applied to the widget wrapper and re-targeted at the inner element.
   ========================================================================== */

/* Button widget -> .btn */
.sz-site .sz-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--color-text);
  background: transparent;
  border: 1px solid var(--color-divider);
  border-radius: 999px;
  padding: 14px 28px;
  fill: currentColor;
  transition: background .18s, color .18s, border-color .18s;
}
.sz-site .sz-btn--primary .elementor-button {
  background: var(--color-accent);
  color: #10233f;
  border-color: var(--color-accent);
}
.sz-site .sz-btn--primary .elementor-button:hover { background: var(--color-accent-400); color: #10233f; }
.sz-site .sz-btn--onnavy .elementor-button {
  color: var(--color-bg);
  border-color: rgba(242, 242, 243, .42);
}
.sz-site .sz-btn--onnavy .elementor-button:hover { background: rgba(242, 242, 243, .12); color: var(--color-bg); }
.sz-site .sz-btn--sm .elementor-button { padding: 11px 18px; letter-spacing: .1em; }
.sz-site .sz-btn--lg .elementor-button { padding: 14px 26px; font-size: 15px; letter-spacing: .1em; }

/* Heading widget -> display scale (the widget wrapper carries the class) */
.sz-site .sz-h1 .elementor-heading-title {
  font-size: clamp(54px, 7.2vw, 108px);
  line-height: .95;
  letter-spacing: -.01em;
  text-transform: uppercase;
  max-width: 16ch;
}
.sz-site .sz-h2 .elementor-heading-title {
  font-size: clamp(34px, 4vw, 56px);
  text-transform: uppercase;
  letter-spacing: -.01em;
}
.sz-site .sz-h2--sm .elementor-heading-title { font-size: clamp(32px, 3.6vw, 50px); }
.sz-site .sz-h2--lg .elementor-heading-title { font-size: clamp(38px, 5vw, 72px); }
.sz-site .sz-panel .elementor-heading-title { color: var(--color-bg); }

/* Text editor widget -> body copy */
.sz-site .sz-lead .elementor-widget-container { font-size: 19px; line-height: 1.65; max-width: 56ch; }
.sz-site .sz-body .elementor-widget-container { font-size: 16px; line-height: 1.75; color: rgba(16, 26, 51, .78); }
.sz-site .sz-panel .sz-lead .elementor-widget-container,
.sz-site .sz-panel .sz-body .elementor-widget-container { color: rgba(242, 242, 243, .78); }
.sz-site .sz-lead p:last-child,
.sz-site .sz-body p:last-child { margin-bottom: 0; }

/* Header nav */
.sz-header .sz-nav { margin-left: auto; }
.sz-header .sz-nav .elementor-nav-menu--main .elementor-item {
  padding: 0;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 12.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--color-text);
}
.sz-header .sz-nav .elementor-nav-menu--main .elementor-item:hover,
.sz-header .sz-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--color-accent-700); }
.sz-header .sz-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after {
  content: "";
  display: block;
  height: 2px;
  background: var(--color-accent);
  margin-top: 4px;
}
.sz-header .sz-nav .elementor-nav-menu--dropdown .elementor-item {
  font-family: var(--font-body);
  font-size: 13px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

@media (max-width: 1180px) {
  .sz-header .sz-nav .elementor-nav-menu--main .elementor-item { font-size: 11.5px; letter-spacing: .06em; }
}

/* Elementor strips the flex minimums that these overlay layouts rely on */
.sz-site .e-con > .e-con-inner { min-width: 0; }
.sz-media-frame { position: relative; min-width: 0; }
.sz-media-frame img { width: 100%; height: 100%; object-fit: cover; }
.sz-media-frame--520 { height: 520px; }
.sz-media-frame--520 .elementor-widget-container,
.sz-media-frame--520 .elementor-image { height: 100%; }

/* Hero photo layer + navy scrim */
.sz-hero-media {
  position: absolute;
  inset: 0;
  opacity: .34;
  z-index: 0;
}
.sz-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.sz-hero-scrim::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, var(--color-accent-900) 8%, rgba(41, 69, 151, .55) 70%);
  pointer-events: none;
  z-index: 1;
}
.sz-charter-scrim::after {
  background: linear-gradient(90deg, var(--color-accent-900) 20%, rgba(41, 69, 151, .4));
}

/* Footer grid */
.sz-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
  gap: 56px;
  padding-bottom: 64px;
}

@media (max-width: 1024px) {
  .sz-footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; padding-bottom: 48px; }
}
@media (max-width: 600px) {
  .sz-footer-grid { grid-template-columns: 1fr; gap: 34px; }
  .sz-footer .footer-blurb { max-width: none; }
}

/* ==========================================================================
   Page-level compositions
   ========================================================================== */

/* spacing helpers used on Elementor widget wrappers */
.sz-site .sz-mb-20 { margin-bottom: 20px; }
.sz-site .sz-mb-28 { margin-bottom: 28px; }
.sz-site .sz-mb-48 { margin-bottom: 48px; }
.sz-site .sz-mt-16 { margin-top: 16px; }
.sz-site .sz-h2--narrow .elementor-heading-title { max-width: 20ch; }

/* Elementor drops zero-height containers; these panels stack their layers */
.sz-site .sz-hero > .e-con-inner,
.sz-site .sz-charter > .e-con-inner { padding: 0; }
.sz-site .sz-hero-inner,
.sz-site .sz-charter-inner { position: relative; z-index: 2; }

/* hero */
.sz-site .sz-hero .sz-lead .elementor-widget-container { margin: 34px 0 44px; }
.sz-site .sz-cta-row { width: auto; flex-wrap: wrap; }
.sz-site .sz-cta-row > .e-con-inner { flex-wrap: wrap; }
.sz-site .sz-cta-row .elementor-widget { width: auto; }
.sz-site .sz-cta-row--center { justify-content: center; }
.sz-site .sz-cta-row--center > .e-con-inner { justify-content: center; }
.sz-site .sz-cta-center { text-align: center; }
.sz-site .sz-cta-lead .elementor-widget-container {
  font-size: 18px;
  line-height: 1.7;
  color: rgba(242, 242, 243, .76);
  max-width: 60ch;
  margin: 0 auto 38px;
}

/* claims band */
.sz-claims-band { border-bottom: 1px solid var(--color-divider); }

/* who we are split */
.sz-site .sz-split > .e-con-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.sz-site .sz-split > .e-con-inner > * { width: 100%; min-width: 0; }
.sz-intro-media { position: relative; min-width: 0; }

/* charter band */
.sz-charter-copy { max-width: 52ch; }
.sz-kicker-light {
  font-family: var(--font-heading);
  font-size: 12px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--color-accent-300);
  margin-bottom: 18px;
}
.sz-charter-copy .sz-h2-plain {
  font-size: clamp(34px, 4vw, 56px);
  text-transform: uppercase;
  margin: 0 0 10px;
  color: var(--color-bg);
}
.sz-charter-sub {
  font-family: var(--font-heading);
  font-size: 20px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--color-accent-300);
  margin-bottom: 26px;
}
.sz-charter-body {
  font-size: 16px;
  line-height: 1.75;
  color: rgba(242, 242, 243, .78);
  margin: 0;
}

/* airline block */
.sz-airline-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
  margin-bottom: 64px;
}
.sz-h2-inline {
  font-size: clamp(34px, 4vw, 56px);
  text-transform: uppercase;
  margin: 0;
}
.sz-h2-inline--sm { font-size: clamp(32px, 3.6vw, 50px); }
.sz-airline-intro {
  font-size: 16px;
  line-height: 1.75;
  color: rgba(16, 26, 51, .78);
  margin: 0;
  padding-top: 8px;
}
.sz-partner-logo {
  width: 240px;
  height: 96px;
  min-width: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.sz-partner-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }

@media (max-width: 1024px) {
  .sz-site .sz-split > .e-con-inner { gap: 48px; }
  .sz-airline-head { gap: 40px; margin-bottom: 48px; }
  .sz-site .sz-hero-inner { padding-block: 96px 84px !important; }
  .sz-site .sz-charter-inner { padding-block: 80px !important; }
}

@media (max-width: 880px) {
  .sz-site .sz-split > .e-con-inner { grid-template-columns: 1fr; gap: 56px; }
  .sz-airline-head { grid-template-columns: 1fr; gap: 24px; }
  .sz-media-frame--520 { height: 380px; }
  .sz-charter-copy { max-width: none; }
  .sz-site .sz-hero .sz-lead .elementor-widget-container { margin: 24px 0 32px; }
  .sz-partner-logo { width: 100%; max-width: 240px; }
}

@media (max-width: 600px) {
  .sz-site .sz-hero-inner { padding-block: 72px 64px !important; }
  .sz-site .sz-charter-inner { padding-block: 64px !important; }
  .sz-media-frame--520 { height: 300px; }
  .sz-site .sz-cta-row > .e-con-inner { flex-direction: column; align-items: stretch; }
  .sz-site .sz-cta-row .elementor-widget { width: 100%; }
  .sz-site .sz-cta-row .elementor-button { width: 100%; }
}

/* ==========================================================================
   Panel layering
   Three layers share each navy panel: photo (0), scrim + grid lines (1),
   content (2). Elementor's .e-con-inner must stay out of the stacking order
   or it traps the photo above the scrim.
   ========================================================================== */

.sz-site .sz-panel > .e-con-inner { position: static; z-index: auto; }
.sz-site .sz-hero-media { z-index: 0; }
.sz-site .sz-grid-lines::before { z-index: 1; }
.sz-site .sz-hero-scrim::after { z-index: 1; }
.sz-site .sz-hero-inner,
.sz-site .sz-charter-inner,
.sz-site .sz-cta-center { position: relative; z-index: 2; }

/* ==========================================================================
   Spacing authority
   Elementor emits per-element padding shorthand at .elementor-element-{id}
   specificity, which beats these classes and would flatten the shell gutter
   and the section rhythm. These declarations reclaim it.
   ========================================================================== */

.sz-site .sz-shell { padding-inline: var(--sz-gutter) !important; }
.sz-site .sz-section { padding-block: 104px !important; }
.sz-site .sz-section--tight { padding-block: 0 104px !important; }

@media (max-width: 1024px) {
  .sz-site .sz-section { padding-block: 72px !important; }
  .sz-site .sz-section--tight { padding-block: 0 72px !important; }
}
@media (max-width: 880px) {
  .sz-site .sz-section { padding-block: 56px !important; }
  .sz-site .sz-section--tight { padding-block: 0 56px !important; }
}

/* ==========================================================================
   Interior pages
   Shared by Services and the remaining sub-pages.
   ========================================================================== */

/* anchor targets clear the sticky header */
.sz-site [id] { scroll-margin-top: 92px; }

/* page hero (navy band, no photo) */
.sz-site .sz-page-hero-inner { padding-block: 110px 96px !important; }
.sz-site .sz-h1--page .elementor-heading-title {
  font-size: clamp(42px, 5.6vw, 86px);
  line-height: .98;
  text-transform: uppercase;
  max-width: 20ch;
}
.sz-site .sz-hero-lead .elementor-widget-container {
  font-size: 18px;
  line-height: 1.7;
  max-width: 64ch;
  color: rgba(242, 242, 243, .76);
}

/* section kicker without the rule */
.sz-kicker {
  font-family: var(--font-heading);
  font-size: 12px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--color-accent-700);
}

/* generic grids */
.sz-grid { display: grid; gap: 20px; }
.sz-grid--2 { grid-template-columns: repeat(2, 1fr); }
.sz-grid--4 { grid-template-columns: repeat(4, 1fr); }
.sz-grid--5 { grid-template-columns: repeat(5, 1fr); }

/* plain bordered card */
.sz-card { padding: 28px; }
.sz-card h4 { font-size: 21px; text-transform: uppercase; margin: 0 0 10px; }
.sz-card p {
  font-size: 13px;
  line-height: 1.6;
  color: rgba(16, 26, 51, .68);
  margin: 0;
}
.sz-card--step { padding: 34px 28px; }
.sz-card--step h4 { font-size: 24px; margin: 12px 0 0; }
.sz-card--step .sz-kicker { font-size: 12px; letter-spacing: .28em; }

/* compact service tile (the 4-across index) */
.svc--compact { padding: 30px; gap: 10px; }
.svc--compact h4 { font-size: 24px; }
.svc--compact p { font-size: 14px; line-height: 1.6; }
.svc-cta {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 30px;
  background: rgba(88, 211, 255, .08);
}
.svc-cta-title {
  font-family: var(--font-heading);
  font-size: 24px;
  text-transform: uppercase;
  line-height: 1.1;
}
.svc-cta .btn { margin-top: 18px; align-self: flex-start; }

/* two-up section head: heading left, copy right */
.sz-site .sz-split--start > .e-con-inner { align-items: start; }
.sz-site .sz-split--mb56 { margin-bottom: 56px; }
.sz-site .sz-split--mb64 { margin-bottom: 64px; }

.sz-media-frame--420 { height: 420px; }
.sz-media-frame--440 { height: 440px; }
.sz-media-frame--420 .elementor-widget-container,
.sz-media-frame--440 .elementor-widget-container { height: 100%; }

/* six-across process strip */
.sz-strip--6 { grid-template-columns: repeat(6, 1fr); }
.sz-strip--6 > * { padding: 32px 18px; }
.sz-strip--6 .step-no {
  font-family: var(--font-heading);
  font-size: 11px;
  letter-spacing: .26em;
  color: var(--color-accent-700);
}
.sz-strip--6 .step-label {
  font-family: var(--font-heading);
  font-size: 22px;
  text-transform: uppercase;
  margin-top: 10px;
}

@media (max-width: 1180px) {
  .sz-grid--5 { grid-template-columns: repeat(3, 1fr); }
  .sz-strip--6 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1024px) {
  .sz-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .sz-site .sz-page-hero-inner { padding-block: 84px 72px !important; }
  .sz-media-frame--420, .sz-media-frame--440 { height: 360px; }
}
@media (max-width: 880px) {
  .sz-grid--5 { grid-template-columns: repeat(2, 1fr); }
  .sz-strip--6 { grid-template-columns: repeat(2, 1fr); }
  .sz-site .sz-split--mb56 { margin-bottom: 40px; }
  .sz-site .sz-split--mb64 { margin-bottom: 44px; }
}
@media (max-width: 600px) {
  .sz-site .sz-page-hero-inner { padding-block: 64px 56px !important; }
  .sz-grid--2, .sz-grid--4, .sz-grid--5 { grid-template-columns: 1fr; }
  .sz-strip--6 { grid-template-columns: 1fr; }
  .sz-media-frame--420, .sz-media-frame--440 { height: 280px; }
  .svc-cta { padding: 24px; }
}

/* ==========================================================================
   About page
   ========================================================================== */

.sz-site .sz-h1--18ch .elementor-heading-title { max-width: 18ch; }
.sz-site .sz-body--17 .elementor-widget-container { font-size: 17px; line-height: 1.75; color: rgba(16, 26, 51, .8); }

/* uneven splits */
.sz-site .sz-split--085 > .e-con-inner { grid-template-columns: .85fr 1.15fr; }
.sz-site .sz-split--08 > .e-con-inner { grid-template-columns: .8fr 1.2fr; gap: 64px; }

/* vision / mission panels */
.sz-panel-card { padding: 48px; }
.sz-panel-card h3 { font-size: 34px; text-transform: uppercase; margin: 18px 0; }
.sz-panel-card p {
  font-size: 16px;
  line-height: 1.75;
  color: rgba(16, 26, 51, .72);
  margin: 0;
}
.sz-panel-card .sz-dash-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 15px;
  margin-top: 18px;
}
.sz-panel-card .sz-dash-list > div { display: flex; gap: 12px; }
.sz-panel-card .sz-dash-list span { color: var(--color-accent); }

/* core values strip */
.sz-strip--values > * { padding-block: 36px; }
.sz-strip--values .value-no {
  font-family: var(--font-heading);
  font-size: 12px;
  letter-spacing: .28em;
  color: var(--color-accent-700);
}
.sz-strip--values h4 {
  font-size: 22px;
  text-transform: uppercase;
  margin: 14px 0 0;
}

/* leadership */
.sz-lead-name { font-size: 38px; text-transform: uppercase; margin: 14px 0 4px; }
.sz-lead-role {
  font-size: 14px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(16, 26, 51, .6);
  margin-bottom: 28px;
}
.sz-tint { background: rgba(88, 211, 255, .07); }
.sz-quote-card { padding: 30px 34px; }
.sz-quote-card p {
  font-size: 15px;
  line-height: 1.75;
  margin: 0;
  color: rgba(16, 26, 51, .75);
}
.sz-team-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 36px;
}
.sz-team-card { padding: 28px; }
.sz-team-card h4 { font-size: 22px; text-transform: uppercase; margin: 0 0 6px; }
.sz-team-card .role {
  font-size: 13px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--color-accent-700);
}

/* closing navy band */
.sz-site .sz-cta-band > .e-con-inner {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.sz-site .sz-cta-band { padding-block: 96px !important; }
.sz-site .sz-cta-band .elementor-widget { width: auto; }
.sz-site .sz-cta-band .sz-h2--20ch .elementor-heading-title { max-width: 20ch; }

@media (max-width: 1024px) {
  .sz-site .sz-split--085 > .e-con-inner,
  .sz-site .sz-split--08 > .e-con-inner { gap: 48px; }
  .sz-panel-card { padding: 34px; }
  .sz-panel-card h3 { font-size: 28px; }
  .sz-site .sz-cta-band { padding-block: 72px !important; }
}
@media (max-width: 880px) {
  .sz-site .sz-split--085 > .e-con-inner,
  .sz-site .sz-split--08 > .e-con-inner { grid-template-columns: 1fr; gap: 44px; }
  .sz-lead-name { font-size: 30px; }
}
@media (max-width: 600px) {
  .sz-panel-card { padding: 26px; }
  .sz-quote-card { padding: 24px; }
  .sz-team-grid { grid-template-columns: 1fr; }
  .sz-site .sz-cta-band { padding-block: 56px !important; }
  .sz-site .sz-cta-band .elementor-widget { width: 100%; }
}

.sz-site .sz-mb-56 { margin-bottom: 56px; }
@media (max-width: 880px) { .sz-site .sz-mb-56 { margin-bottom: 36px; } }

/* ==========================================================================
   Air Chartering page
   ========================================================================== */

.sz-site .sz-charter-hero-inner { padding-block: 130px 118px !important; }
.sz-site .sz-h1--charter .elementor-heading-title {
  font-size: clamp(40px, 5.2vw, 80px);
  line-height: .98;
  text-transform: uppercase;
  max-width: 22ch;
}
.sz-site .sz-hero-lead--60ch .elementor-widget-container { max-width: 60ch; }
.sz-site .sz-split--09 > .e-con-inner { grid-template-columns: .9fr 1.1fr; }

/* roomier bordered card (the four support tiles) */
.sz-card--wide { padding: 34px; }
.sz-card--wide h4 { font-size: 24px; text-transform: uppercase; margin: 14px 0 12px; }
.sz-card--wide p { font-size: 14px; line-height: 1.65; }

.sz-media-frame--460 { height: 460px; }
.sz-media-frame--460 .elementor-widget-container { height: 100%; }

/* three-across numbered process row */
.sz-strip--3 {
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 1px solid var(--color-divider);
  margin-top: 56px;
}
.sz-strip--3 > * { padding-block: 32px; }
.sz-strip--3 .proc-no {
  font-family: var(--font-heading);
  font-size: 44px;
  line-height: 1;
  color: var(--color-accent-700);
}
.sz-strip--3 h4 { font-size: 22px; text-transform: uppercase; margin: 14px 0 8px; }
.sz-strip--3 p {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(16, 26, 51, .66);
  margin: 0;
}

/* closing band that carries a heading plus a line of copy */
.sz-site .sz-cta-band > .e-con-inner > .e-con { width: auto; max-width: 60ch; }
.sz-site .sz-cta-band .sz-band-note .elementor-widget-container {
  font-size: 17px;
  color: rgba(242, 242, 243, .74);
}

@media (max-width: 1024px) {
  .sz-site .sz-charter-hero-inner { padding-block: 96px 84px !important; }
  .sz-site .sz-split--09 > .e-con-inner { gap: 48px; }
  .sz-media-frame--460 { height: 380px; }
}
@media (max-width: 880px) {
  .sz-site .sz-split--09 > .e-con-inner { grid-template-columns: 1fr; gap: 44px; }
  .sz-strip--3 { grid-template-columns: 1fr; margin-top: 40px; }
}
@media (max-width: 600px) {
  .sz-site .sz-charter-hero-inner { padding-block: 72px 64px !important; }
  .sz-media-frame--460 { height: 280px; }
  .sz-card--wide { padding: 26px; }
}

/* ==========================================================================
   Contact page
   ========================================================================== */

.sz-site .sz-split--125 > .e-con-inner { grid-template-columns: 1.25fr .75fr; gap: 64px; }

/* form shell */
.sz-form-card { padding: 48px; }
.sz-site .sz-form-card > .e-con-inner { padding: 0; }

/* Elementor Pro form fields -> the .input treatment */
.sz-site .sz-form .elementor-field-group > label {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 400;
  margin-bottom: 5px;
  color: rgba(16, 26, 51, .7);
}
.sz-site .sz-form .elementor-field-textual {
  width: 100%;
  min-height: 36px;
  padding: 8px 10px;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 300;
  line-height: 1.5;
  color: var(--color-text);
  caret-color: var(--color-accent);
  background: var(--color-surface);
  border: 1px solid var(--color-divider);
  border-radius: 4px;
  box-shadow: none;
}
.sz-site .sz-form .elementor-field-textual:hover { border-color: rgba(16, 26, 51, .45); }
.sz-site .sz-form .elementor-field-textual:focus {
  border-color: var(--color-accent);
  outline: none;
  box-shadow: none;
}
.sz-site .sz-form .elementor-field-textual::placeholder { color: rgba(16, 26, 51, .38); }
.sz-site .sz-form textarea.elementor-field-textual { min-height: 110px; resize: vertical; }
.sz-site .sz-form select.elementor-field-textual {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, currentColor 50%),
    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 18px) 17px, calc(100% - 13px) 17px;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

/* submit button */
.sz-site .sz-form .elementor-button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #10233f;
  background: var(--color-accent);
  border: 1px solid var(--color-accent);
  border-radius: 999px;
  padding: 14px 30px;
  margin-top: 12px;
  width: auto;
  transition: background .18s;
}
.sz-site .sz-form .elementor-button[type="submit"]:hover { background: var(--color-accent-400); }
.sz-site .sz-form .elementor-field-type-submit { justify-content: flex-start; }

/* offices list */
.sz-offices {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: var(--color-divider);
  border-top: 1px solid var(--color-divider);
  border-bottom: 1px solid var(--color-divider);
}
.sz-offices > div { background: var(--color-bg); padding: 24px 0; }
.sz-offices h4 { font-size: 24px; text-transform: uppercase; margin: 0 0 4px; }
.sz-offices .office-role {
  font-size: 13px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--color-accent-700);
}
.sz-contact-note { margin-top: 32px; padding: 26px 28px; }
.sz-contact-note p {
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
  color: rgba(16, 26, 51, .75);
}

@media (max-width: 1024px) {
  .sz-site .sz-split--125 > .e-con-inner { gap: 48px; }
  .sz-form-card { padding: 34px; }
}
@media (max-width: 880px) {
  .sz-site .sz-split--125 > .e-con-inner { grid-template-columns: 1fr; gap: 44px; }
}
@media (max-width: 600px) {
  .sz-form-card { padding: 24px; }
  .sz-site .sz-form .elementor-button[type="submit"] { width: 100%; }
}

/* ==========================================================================
   Airline Services / Industries / Global Network
   ========================================================================== */

.sz-site .sz-h1--16ch .elementor-heading-title { max-width: 16ch; }
.sz-site .sz-hero-lead--58ch .elementor-widget-container { max-width: 58ch; }
.sz-site .sz-hero-lead--62ch .elementor-widget-container { max-width: 62ch; }

/* passenger journey strip (four across, oversized figures) */
.sz-strip--journey { grid-template-columns: repeat(4, 1fr); }
.sz-strip--journey > * { padding-block: 36px; }
.sz-strip--journey .proc-no {
  font-family: var(--font-heading);
  font-size: 44px;
  line-height: 1;
  color: var(--color-accent-700);
}
.sz-strip--journey .step-label {
  font-family: var(--font-heading);
  font-size: 26px;
  text-transform: uppercase;
  margin-top: 12px;
}

/* partner panel */
.sz-panel-card h3.sz-partner-title { font-size: 36px; margin: 16px 0 6px; }
.sz-partner-note-lg {
  font-size: 15px;
  color: rgba(16, 26, 51, .65);
  margin-bottom: 28px;
}
.sz-partner-logo--lg {
  height: 120px;
  max-width: 280px;
  width: 100%;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.sz-partner-logo--lg img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* industries cards: photo on top, label beneath */
.sz-ind-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.sz-ind-card { padding: 0; min-width: 0; overflow: hidden; }
.sz-ind-card .ind-media { height: 240px; min-width: 0; }
.sz-ind-card .ind-media img { width: 100%; height: 100%; object-fit: cover; }
.sz-ind-card .ind-body { padding: 26px 28px 30px; }
.sz-ind-card h3 { font-size: 27px; text-transform: uppercase; margin: 12px 0 0; }

/* oversized statistic block */
.sz-site .sz-split--07 > .e-con-inner { grid-template-columns: .7fr 1.3fr; gap: 64px; }
.sz-bignum {
  font-family: var(--font-heading);
  font-size: clamp(80px, 10vw, 150px);
  line-height: .86;
  color: var(--color-accent-700);
}
.sz-bignum-label {
  font-family: var(--font-heading);
  font-size: 16px;
  letter-spacing: .24em;
  text-transform: uppercase;
  margin-top: 14px;
}
.sz-why-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px 48px;
}
.sz-why-grid h4 { font-size: 22px; text-transform: uppercase; margin: 0 0 8px; }
.sz-why-grid p {
  font-size: 14px;
  line-height: 1.65;
  color: rgba(16, 26, 51, .68);
  margin: 0;
}
.sz-site .sz-ruled-pt80 { border-top: 1px solid var(--color-divider); padding-top: 80px; }

/* network office cards */
.sz-net-card { padding: 34px; }
.sz-net-card h3 { font-size: 34px; text-transform: uppercase; margin: 12px 0 6px; }
.sz-net-card .net-role {
  font-size: 13px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(16, 26, 51, .62);
}

/* banking partners: a ruled table built from a grid */
.sz-bank-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--color-divider);
  border-left: 1px solid var(--color-divider);
}
.sz-bank-grid > div {
  padding: 32px 24px;
  border-right: 1px solid var(--color-divider);
  border-bottom: 1px solid var(--color-divider);
  font-family: var(--font-heading);
  font-size: 20px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

@media (max-width: 1024px) {
  .sz-strip--journey { grid-template-columns: repeat(2, 1fr); }
  .sz-ind-grid { grid-template-columns: repeat(2, 1fr); gap: 22px; }
  .sz-bank-grid { grid-template-columns: repeat(2, 1fr); }
  .sz-site .sz-split--07 > .e-con-inner { gap: 44px; }
  .sz-site .sz-ruled-pt80 { padding-top: 56px; }
}
@media (max-width: 880px) {
  .sz-site .sz-split--07 > .e-con-inner { grid-template-columns: 1fr; gap: 40px; }
  .sz-why-grid { gap: 28px 32px; }
}
@media (max-width: 600px) {
  .sz-strip--journey { grid-template-columns: 1fr; }
  .sz-ind-grid { grid-template-columns: 1fr; }
  .sz-ind-card .ind-media { height: 200px; }
  .sz-bank-grid { grid-template-columns: 1fr; }
  .sz-bank-grid > div { font-size: 17px; padding: 22px 18px; }
  .sz-why-grid { grid-template-columns: 1fr; }
  .sz-net-card { padding: 24px; }
  .sz-net-card h3 { font-size: 28px; }
  .sz-partner-logo--lg { max-width: none; }
}
