:root {
  --zz-ink: #080a0d;
  --zz-ink-2: #111820;
  --zz-paper: #f4f7fa;
  --zz-white: #ffffff;
  --zz-yellow: #ffec32;
  --zz-blue: #5dc0ff;
  --zz-blue-deep: #1688d4;
  --zz-muted: #697581;
  --zz-line: #d7e0e8;
  --zz-display: "Barlow Condensed", Impact, sans-serif;
  --zz-body: "Inter", system-ui, sans-serif;
  --zz-shadow: 0 28px 70px rgba(8, 10, 13, 0.15);
}

/* Service-page editorial system — v1.3.0
   Layout follows the kind and amount of content instead of rotating every H2
   through the same oversized split composition. */
.zz-service-detail--media.e-con,
.zz-service-detail--card-grid.e-con { padding-block: clamp(76px,7vw,92px) !important; }
.zz-service-detail--media:nth-of-type(even).e-con,
.zz-service-detail--card-grid:nth-of-type(even).e-con { background: var(--zz-paper); }
.zz-service-media-grid > .e-con-inner { display: grid !important; grid-template-columns: minmax(0,1.05fr) minmax(360px,.95fr) !important; align-items: stretch !important; gap: clamp(44px,6vw,78px) !important; }
.zz-service-detail-content > .e-con-inner { height: 100%; display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: flex-start !important; gap: 0 !important; }
.zz-service-detail--reverse .zz-service-detail-content { order: 2; }
.zz-service-detail--reverse .zz-service-detail-image { order: 1; }
.zz-service-detail--media .zz-service-detail-heading { margin-bottom: 25px; }
.zz-service-detail--media .zz-service-detail-heading h2.elementor-heading-title { max-width: 720px; font-size: clamp(2.75rem,4.3vw,4.6rem) !important; line-height: .91 !important; text-wrap: balance; }
.zz-service-detail--media .zz-service-detail-copy { max-width: 690px; }
.zz-service-detail--media .zz-service-detail-image { min-height: 410px; height: auto; align-self: stretch; border-bottom: 7px solid var(--zz-service-accent); clip-path: polygon(0 0,96% 0,100% 100%,4% 100%); }
.zz-service-detail--reverse .zz-service-detail-image { border-bottom-color: var(--zz-service-secondary); clip-path: polygon(4% 0,100% 0,96% 100%,0 100%); }

.zz-service-card-grid > .e-con-inner { display: grid !important; grid-template-columns: minmax(330px,.7fr) minmax(0,1.3fr) !important; grid-template-areas: "heading heading" "photo copy"; align-items: stretch !important; gap: 34px clamp(42px,5vw,72px) !important; }
.zz-service-detail--card-grid .zz-service-detail-heading { grid-area: heading; max-width: 1000px; }
.zz-service-detail--card-grid .zz-service-detail-heading h2.elementor-heading-title { max-width: 980px; font-size: clamp(2.9rem,4.8vw,5rem) !important; line-height: .9 !important; text-wrap: balance; }
.zz-service-detail--card-grid .zz-service-detail-image { grid-area: photo; height: auto; min-height: 100%; border-top: 7px solid var(--zz-service-accent); box-shadow: none; }
.zz-service-detail--card-grid .zz-service-detail-copy { grid-area: copy; }
.zz-feature-intro,
.zz-checklist-intro { margin: 0 0 20px !important; max-width: 700px; color: var(--zz-muted); font-size: 1rem; line-height: 1.7; }
.zz-feature-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.zz-feature-cards article { position: relative; min-height: 175px; padding: 25px 24px 23px; border: 1px solid var(--zz-line); background: white; box-shadow: 0 12px 30px rgba(8,10,13,.055); }
.zz-feature-cards article > span { display: block; margin-bottom: 18px; color: var(--zz-blue-deep); font: 900 .72rem/1 var(--zz-display); letter-spacing: .12em; }
.zz-feature-cards h3 { margin: 0 0 9px !important; font-size: 1.35rem !important; line-height: 1.02 !important; }
.zz-feature-cards p { margin: 0 !important; font-size: .88rem !important; line-height: 1.58 !important; }
.zz-service-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.zz-service-checklist p { min-height: 76px; display: flex; align-items: center; gap: 13px; margin: 0 !important; padding: 18px 20px; border: 1px solid var(--zz-line); background: white; color: #344149 !important; font-size: .9rem !important; line-height: 1.45 !important; }
.zz-service-checklist span { flex: 0 0 28px; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--zz-yellow); color: var(--zz-ink); font-weight: 900; }

.zz-service-detail--text-band.e-con { padding-block: clamp(62px,6vw,78px) !important; overflow: visible; background: white; }
.zz-service-detail--text-band:nth-of-type(even).e-con { background: var(--zz-paper); }
.zz-service-text-band-grid > .e-con-inner { display: grid !important; grid-template-columns: minmax(300px,.82fr) minmax(0,1.18fr) !important; align-items: center !important; gap: clamp(42px,7vw,92px) !important; }
.zz-service-detail--text-band .zz-service-detail-heading { position: static !important; padding: 0 0 0 25px; border-left: 7px solid var(--zz-service-accent); }
.zz-service-detail--text-band .zz-service-detail-heading h2.elementor-heading-title { max-width: 650px; font-size: clamp(2.7rem,4.4vw,4.55rem) !important; line-height: .91 !important; text-wrap: balance; }
.zz-service-detail--text-band .zz-service-detail-copy { padding: 0; border: 0; background: transparent; box-shadow: none; }
.zz-service-detail--text-band .zz-service-detail-copy p { font-size: .98rem; line-height: 1.68; }
.zz-service-detail--proof.e-con { background: var(--zz-ink); }
.zz-service-detail--proof .zz-service-detail-heading { border-left-color: var(--zz-yellow); }
.zz-service-detail--proof .zz-service-detail-heading h2.elementor-heading-title { color: white !important; }
.zz-service-detail--proof .zz-detail-index { color: var(--zz-yellow) !important; }
.zz-service-detail--proof .zz-service-detail-copy p { color: #becbd2; }
.zz-service-detail--proof .zz-service-checklist p { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.045); color: #edf3f6 !important; }

.zz-service-inline-cta.e-con { padding-block: 64px !important; overflow: hidden; background: linear-gradient(110deg,var(--zz-blue-deep),var(--zz-blue)); }
.zz-service-inline-cta::after { position: absolute; top: -90px; right: 7%; width: 260px; height: 260px; content: ""; border: 45px solid rgba(255,255,255,.09); border-radius: 50%; }
.zz-service-inline-cta-grid > .e-con-inner { position: relative; z-index: 2; display: grid !important; grid-template-columns: minmax(0,1fr) auto !important; align-items: center !important; gap: 44px !important; }
.zz-service-inline-cta-copy > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-service-inline-cta h2.elementor-heading-title { max-width: 760px; color: white !important; font-size: clamp(2.8rem,4.3vw,4.7rem) !important; line-height: .9 !important; text-transform: uppercase; text-wrap: balance; }
.zz-service-inline-cta-copy p { max-width: 760px; margin: 15px 0 0; color: #eaf5fb; line-height: 1.6; }
.zz-service-inline-cta .zz-button--primary { width: auto !important; }
.zz-service-inline-cta .zz-button--primary .elementor-button { white-space: nowrap; background: var(--zz-yellow) !important; color: var(--zz-ink) !important; box-shadow: 8px 8px 0 rgba(0,0,0,.25) !important; }

.zz-service-faq.e-con { padding-block: clamp(76px,7vw,92px) !important; }
.zz-service-faq .zz-faq-grid > .e-con-inner { grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr) !important; gap: clamp(48px,7vw,92px) !important; }
.zz-service-faq h2.elementor-heading-title { font-size: clamp(3rem,4.8vw,5rem) !important; line-height: .9 !important; text-wrap: balance; }
.zz-service-faq .elementor-accordion-item:nth-child(n+5) { display: block; }

@media (max-width: 1080px) {
  .zz-service-media-grid > .e-con-inner { grid-template-columns: minmax(0,1fr) minmax(320px,.86fr) !important; gap: 42px !important; }
  .zz-service-card-grid > .e-con-inner { grid-template-columns: minmax(280px,.62fr) minmax(0,1.38fr) !important; gap: 30px 36px !important; }
  .zz-feature-cards article { min-height: 165px; padding: 22px 20px; }
  .zz-service-text-band-grid > .e-con-inner { grid-template-columns: minmax(270px,.8fr) minmax(0,1.2fr) !important; gap: 48px !important; }
}

@media (max-width: 900px) {
  .zz-service-media-grid > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-service-detail--reverse .zz-service-detail-content,
  .zz-service-detail--reverse .zz-service-detail-image { order: initial; }
  .zz-service-detail--media .zz-service-detail-image { min-height: 390px; height: 390px; clip-path: none; }
  .zz-service-card-grid > .e-con-inner { grid-template-columns: 1fr !important; grid-template-areas: "heading" "photo" "copy" !important; }
  .zz-service-detail--card-grid .zz-service-detail-image { min-height: 360px; height: 360px; }
  .zz-service-text-band-grid > .e-con-inner,
  .zz-service-faq .zz-faq-grid > .e-con-inner { grid-template-columns: 1fr !important; gap: 32px !important; }
  .zz-service-inline-cta-grid > .e-con-inner { grid-template-columns: 1fr !important; gap: 28px !important; }
}

@media (max-width: 720px) {
  .zz-service-detail--media.e-con,
  .zz-service-detail--card-grid.e-con { padding-block: 68px !important; }
  .zz-service-detail--media .zz-service-detail-heading h2.elementor-heading-title,
  .zz-service-detail--card-grid .zz-service-detail-heading h2.elementor-heading-title,
  .zz-service-detail--text-band .zz-service-detail-heading h2.elementor-heading-title,
  .zz-service-inline-cta h2.elementor-heading-title,
  .zz-service-faq h2.elementor-heading-title { font-size: clamp(2.65rem,12vw,3.75rem) !important; line-height: .91 !important; }
  .zz-service-detail--media .zz-service-detail-image { min-height: 320px; height: 320px; }
  .zz-service-card-grid > .e-con-inner { grid-template-columns: 1fr !important; grid-template-areas: "heading" "photo" "copy" !important; gap: 28px !important; }
  .zz-service-detail--card-grid .zz-service-detail-image { min-height: 300px; height: 300px; }
  .zz-feature-cards,
  .zz-service-checklist { grid-template-columns: 1fr; }
  .zz-feature-cards article { min-height: 0; padding: 22px 20px; }
  .zz-service-checklist p { min-height: 66px; }
  .zz-service-detail--text-band.e-con { padding-block: 62px !important; }
  .zz-service-detail--text-band .zz-service-detail-heading { padding-left: 18px; border-left-width: 5px; }
  .zz-service-inline-cta.e-con { padding-block: 58px !important; }
  .zz-service-inline-cta .zz-button--primary,
  .zz-service-inline-cta .zz-button--primary .elementor-button { width: 100% !important; }
  .zz-service-faq.e-con { padding-block: 68px !important; }
}

html { scroll-behavior: smooth; }
body { margin: 0; background: var(--zz-paper); color: var(--zz-ink); font-family: var(--zz-body); }
body.zz-intro-active { overflow: hidden; }
.zz-shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.zz-section { position: relative; width: 100%; }
.zz-section h1,
.zz-section h2,
.zz-section h3,
.zz-site-header .elementor-nav-menu a { font-family: var(--zz-display); }
.zz-section h1,
.zz-section h2 { margin: 0; font-weight: 900; line-height: .86; letter-spacing: -.035em; text-transform: uppercase; }
.zz-section h1 { color: var(--zz-white); font-size: clamp(4rem, 7.4vw, 7.4rem); }
.zz-section h2 { font-size: clamp(3.4rem, 6vw, 6rem); }
.zz-section h1 em,
.zz-section h2 em { color: var(--zz-yellow); font-style: italic; }
.zz-section p { line-height: 1.7; }
.zz-eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 20px; color: var(--zz-blue); font-size: .75rem; font-weight: 800; line-height: 1.65; letter-spacing: .16em; text-transform: uppercase; }
.zz-eyebrow::before { width: 22px; height: 4px; content: ""; background: linear-gradient(90deg,var(--zz-yellow),var(--zz-blue)); }
.zz-eyebrow--dark { color: var(--zz-blue-deep); }
.zz-eyebrow--dark::before { background: var(--zz-yellow); }
.zz-lede { max-width: 690px; margin: 26px 0; font-size: 1.08rem; line-height: 1.65; }
.zz-actions { display: flex; flex-flow: row wrap; gap: 12px; margin-top: 28px; }
.zz-button .elementor-button,
.zz-text-button .elementor-button { border-radius: 0; font-family: var(--zz-body); font-size: .74rem; font-weight: 900; letter-spacing: .075em; text-transform: uppercase; }
.zz-button .elementor-button { min-height: 52px; display: inline-flex; align-items: center; padding: 15px 23px; border: 2px solid transparent; }
.zz-button--primary .elementor-button { background: var(--zz-yellow); color: var(--zz-ink); box-shadow: 7px 7px 0 var(--zz-blue); }
.zz-button--primary .elementor-button:hover { background: var(--zz-white); transform: translate(-2px, -2px); box-shadow: 10px 10px 0 var(--zz-blue); }
.zz-button--ghost .elementor-button { border-color: rgba(255,255,255,.28); background: transparent; color: var(--zz-white); }
.zz-button--dark .elementor-button { background: var(--zz-ink); color: var(--zz-white); box-shadow: 7px 7px 0 var(--zz-blue); }
.zz-text-button .elementor-button { padding: 0; background: transparent; color: var(--zz-blue-deep); }
.zz-text-button .elementor-button::after { margin-left: 10px; content: "→"; }

/* Universal header */
.zz-site-header { position: relative; z-index: 90; background: rgba(8,10,13,.98); border-bottom: 1px solid rgba(255,255,255,.1); }
.zz-header-inner { min-height: 96px; display: flex; flex-direction: row; align-items: center; gap: 34px; }
.zz-header-logo { flex: 0 0 250px; }
.zz-header-logo img { width: 250px; max-height: 82px; object-fit: contain; object-position: left center; }
.zz-primary-menu { flex: 1; }
.zz-primary-menu .elementor-nav-menu--main > .elementor-nav-menu > li > a { padding: 38px 13px; color: var(--zz-white); font-size: 1rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.zz-primary-menu .elementor-nav-menu--main > .elementor-nav-menu > li > a:hover { color: var(--zz-yellow); }
.zz-primary-menu .elementor-nav-menu--dropdown { border: 1px solid #26333e; background: var(--zz-ink-2); box-shadow: var(--zz-shadow); }
.zz-primary-menu .elementor-nav-menu--dropdown a { min-width: 280px; padding: 11px 18px; color: #e9f1f7; font-size: .82rem; }
.zz-primary-menu .elementor-nav-menu--dropdown a:hover { background: #172631; color: var(--zz-yellow); }
.zz-header-phone { flex: 0 0 auto; }
.zz-header-phone .elementor-button { min-height: 46px; border: 1px solid var(--zz-yellow); background: var(--zz-yellow); color: var(--zz-ink); box-shadow: none; }

/* Homepage hero */
.zz-hero { overflow: hidden; background: radial-gradient(circle at 77% 22%, rgba(22,136,212,.23), transparent 34%), linear-gradient(120deg, #080a0d, #0d151d 72%, #071522); color: var(--zz-white); }
.zz-hero::before { position: absolute; inset: 0; content: ""; opacity: .12; background: repeating-linear-gradient(125deg, transparent 0 96px, rgba(93,192,255,.3) 97px 98px); pointer-events: none; }
.zz-hero-grid { min-height: 670px; display: grid; grid-template-columns: 1.04fr .96fr; align-items: center; gap: clamp(50px, 7vw, 95px); padding-block: 70px 86px; }
.zz-hero-copy { position: relative; z-index: 3; }
.zz-hero-copy h1 em { display: block; }
.zz-hero-copy .zz-lede { color: #bbc6cf; }
.zz-credentials { margin-top: 30px; color: #8495a4; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.zz-credentials b { padding-inline: 8px; color: var(--zz-yellow); }
.zz-hero-visual { position: relative; min-width: 0; }
.zz-hero-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; clip-path: polygon(7% 0,100% 0,93% 100%,0 100%); border-bottom: 6px solid var(--zz-yellow); filter: saturate(.9) contrast(1.04); box-shadow: var(--zz-shadow); }
.zz-hero-bolt { position: absolute; z-index: 4; top: -46px; left: -42px; width: 115px; transform: rotate(-8deg); filter: drop-shadow(8px 9px 0 rgba(93,192,255,.7)); }
.zz-photo-caption { position: absolute; z-index: 4; left: 36px; bottom: 36px; display: grid; gap: 2px; color: white; text-transform: uppercase; }
.zz-photo-caption span { color: var(--zz-yellow); font-size: .65rem; font-weight: 900; letter-spacing: .16em; }
.zz-photo-caption strong { font: 800 1.4rem var(--zz-display); }
.zz-experience { position: absolute; z-index: 5; right: -22px; bottom: -10px; display: flex; align-items: center; gap: 13px; padding: 15px 20px; background: var(--zz-yellow); color: var(--zz-ink); box-shadow: 0 14px 40px rgba(0,0,0,.28); text-transform: uppercase; }
.zz-experience strong { font: 900 2.7rem/.8 var(--zz-display); }
.zz-experience span { font-size: .62rem; font-weight: 900; letter-spacing: .08em; line-height: 1.3; }
.zz-proof-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.1); }
.zz-proof-item { min-height: 105px; padding: 24px 28px; border-inline-start: 1px solid rgba(255,255,255,.1); }
.zz-proof-item:last-child { border-inline-end: 1px solid rgba(255,255,255,.1); }
.zz-proof-item h3 { margin: 0 0 5px; color: white; font-size: 1.15rem; text-transform: uppercase; }
.zz-proof-item p { margin: 0; color: #8fa0ae; font-size: .75rem; line-height: 1.4; }

/* Shared sections */
.zz-services,
.zz-related-services { padding-block: 100px; background: var(--zz-paper); }
.zz-split-heading { display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 70px; margin-bottom: 50px; }
.zz-split-heading > .elementor-widget-text-editor p { margin: 0; color: var(--zz-muted); font-size: 1.04rem; }
.zz-services h2 em,
.zz-about h2 em,
.zz-faq h2 em,
.zz-related-services h2 em { color: var(--zz-blue-deep); }
.zz-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.zz-service-card { position: relative; min-height: 295px; padding: 70px 28px 28px; overflow: hidden; background: var(--zz-white); border: 1px solid var(--zz-line); transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease; }
.zz-service-card::before { position: absolute; top: 28px; left: 28px; width: 42px; height: 6px; content: ""; background: linear-gradient(90deg,var(--zz-blue) 0 42%,var(--zz-yellow) 42%); transform: skewX(-28deg); }
.zz-service-card:hover { background: var(--zz-ink); color: white; transform: translateY(-6px); box-shadow: 0 22px 55px rgba(8,10,13,.14); }
.zz-service-index-widget { position: absolute !important; z-index: 4; top: 24px; right: 24px; width: auto !important; max-width: none !important; margin: 0 !important; }
.zz-service-index-widget .elementor-widget-container { width: auto !important; }
.zz-service-index { position: static; color: #a8b3bd; font-size: .72rem; font-weight: 800; letter-spacing: .13em; }
.zz-service-card h3 { margin: 0 0 12px; font-size: clamp(1.7rem,2.4vw,2.2rem); line-height: .95; text-transform: uppercase; }
.zz-service-card p { margin: 0; color: var(--zz-muted); font-size: .88rem; }
.zz-service-card:hover p { color: #b7c2cc; }
.zz-service-card .zz-text-button { margin-top: auto; padding-top: 18px; }
.zz-services > .zz-shell > .zz-button--dark { margin-top: 28px; }
.zz-about { padding-block: 110px; background: var(--zz-white); }
.zz-two-column { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(65px,8vw,120px); }
.zz-collage { position: relative; min-height: 610px; }
.zz-collage-main { position: absolute; inset: 0 auto 12% 0; width: 75%; }
.zz-collage-main img { width: 100%; height: 100%; object-fit: cover; box-shadow: var(--zz-shadow); }
.zz-collage-small { position: absolute; right: 0; bottom: 0; width: 49%; height: 52%; border: 9px solid white; box-shadow: 0 18px 55px rgba(8,10,13,.16); }
.zz-collage-small img { width: 100%; height: 100%; object-fit: cover; }
.zz-copy-column .zz-lead { color: var(--zz-ink); font-size: 1.22rem; font-weight: 700; }
.zz-copy-column p { color: var(--zz-muted); }
.zz-check-list { margin: 28px 0; padding: 0; list-style: none; }
.zz-check-list li { position: relative; padding: 12px 0 12px 23px; border-bottom: 1px solid var(--zz-line); font-size: .9rem; font-weight: 650; }
.zz-check-list li::before { position: absolute; top: 23px; left: 0; width: 11px; height: 4px; content: ""; background: var(--zz-blue-deep); transform: skewX(-28deg); }
.zz-process { overflow: hidden; padding-block: 105px; background: radial-gradient(circle at 50% 110%,rgba(22,136,212,.26),transparent 45%),var(--zz-ink); color: white; }
.zz-process .zz-split-heading > .elementor-widget-text-editor p { color: #a9b6c1; }
.zz-process-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 25px; margin-top: 70px; }
.zz-process-card { position: relative; padding-top: 75px; }
.zz-process-number { position: absolute; top: 0; left: 0; width: 56px; height: 56px; display: grid; place-items: center; border: 2px solid var(--zz-blue); background: var(--zz-ink); color: var(--zz-yellow); font: 900 1rem var(--zz-display); box-shadow: 0 0 0 7px var(--zz-ink),0 0 18px rgba(93,192,255,.25); }
.zz-process-card h3 { margin: 0 0 10px; font-size: 1.35rem; text-transform: uppercase; }
.zz-process-card p { margin: 0; color: #9eabb7; font-size: .82rem; }
.zz-areas { padding-block: 105px; background: var(--zz-yellow); }
.zz-areas h2 em { color: transparent; -webkit-text-stroke: 1px var(--zz-ink); }
.zz-area-board { padding: 28px; background: var(--zz-ink); color: white; border-bottom: 8px solid var(--zz-blue); box-shadow: 0 24px 55px rgba(8,10,13,.18); }
.zz-area-board-top { display: flex; justify-content: space-between; padding-bottom: 18px; color: var(--zz-blue); font-size: .63rem; font-weight: 900; letter-spacing: .14em; }
.zz-area-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: #27323c; }
.zz-area-list span { min-height: 72px; display: grid; place-items: center; padding: 12px; background: #111820; color: white; font: 800 1.05rem var(--zz-display); text-align: center; text-transform: uppercase; }
.zz-area-list span:nth-child(1), .zz-area-list span:nth-child(5), .zz-area-list span:nth-child(6) { color: var(--zz-yellow); background: #172631; }
.zz-area-board > p { margin: 18px 0 0; color: #8fa0ae; font-size: .74rem; }
.zz-faq { padding-block: 105px; background: var(--zz-white); }
.zz-faq-grid { display: grid; grid-template-columns: .72fr 1.28fr; align-items: start; gap: clamp(55px,9vw,120px); }
.zz-accordion .elementor-accordion-item { border-color: var(--zz-line); }
.zz-accordion .elementor-tab-title { min-height: 80px; display: flex; align-items: center; padding: 20px 0; color: var(--zz-ink); font: 800 1.45rem/1.1 var(--zz-display); text-transform: uppercase; }
.zz-accordion .elementor-tab-content { padding: 0 55px 28px 0; color: var(--zz-muted); border-color: var(--zz-line); }
.zz-final-cta { overflow: hidden; padding-block: 96px; background: var(--zz-blue); text-align: center; }
.zz-final-cta::before { position: absolute; inset: 0; content: ""; opacity: .18; background: repeating-linear-gradient(125deg,transparent 0 90px,rgba(255,255,255,.55) 91px 92px); }
.zz-final-cta-inner { position: relative; z-index: 2; align-items: center; }
.zz-final-cta-inner .zz-eyebrow { justify-content: center; color: var(--zz-ink); }
.zz-final-cta-inner h2 { max-width: 900px; font-size: clamp(3.2rem,5.5vw,5.7rem); }
.zz-final-cta-inner > .elementor-widget-text-editor p { max-width: 650px; margin: 22px auto 28px; }
.zz-final-cta-inner .zz-actions { justify-content: center; }

/* Interior pages */
.zz-interior-hero { overflow: hidden; padding-block: 95px; background: radial-gradient(circle at 78% 30%,rgba(22,136,212,.24),transparent 35%),linear-gradient(120deg,#080a0d,#0d151d 72%,#071522); color: white; }
.zz-interior-hero--compact { padding-block: 80px; }
.zz-interior-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(55px,8vw,110px); }
.zz-interior-hero h1 { font-size: clamp(3.6rem,6.1vw,6.6rem); }
.zz-interior-hero-copy .zz-lede { color: #bbc6cf; }
.zz-interior-hero-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; clip-path: polygon(7% 0,100% 0,93% 100%,0 100%); border-block: 5px solid var(--zz-blue); box-shadow: var(--zz-shadow); }
.zz-content-section { padding-block: 86px; background: white; }
.zz-content-section--alt { background: var(--zz-paper); }
.zz-content-grid { display: grid; grid-template-columns: .72fr 1.28fr; align-items: start; gap: clamp(55px,9vw,120px); }
.zz-content-grid h2 { color: var(--zz-ink); font-size: clamp(2.5rem,4.2vw,4.4rem); }
.zz-rich-copy { color: var(--zz-muted); }
.zz-rich-copy p { margin: 0 0 17px; }
.zz-rich-copy h3 { margin: 28px 0 8px; color: var(--zz-ink); font-size: 1.45rem; text-transform: uppercase; }
.zz-list-item { position: relative; padding: 11px 0 11px 25px; border-bottom: 1px solid var(--zz-line); color: var(--zz-ink); font-weight: 650; }
.zz-list-item::before { position: absolute; top: 24px; left: 2px; width: 12px; height: 4px; content: ""; background: linear-gradient(90deg,var(--zz-blue) 0 45%,var(--zz-yellow) 45%); transform: skewX(-28deg); }
.zz-related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; margin-top: 35px; }
.zz-related-card { min-height: 190px; justify-content: space-between; padding: 30px; background: white; border: 1px solid var(--zz-line); border-bottom: 5px solid var(--zz-blue); }
.zz-related-card h3 { margin: 0; font-size: 1.8rem; line-height: 1; text-transform: uppercase; }
.zz-section-intro { max-width: 680px; margin: 22px 0 45px; color: var(--zz-muted); }

/* Contact */
.zz-contact-section { padding-block: 100px; background: var(--zz-paper); }
.zz-contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: start; gap: clamp(55px,8vw,100px); }
.zz-contact-info h2 { font-size: clamp(3rem,5vw,5rem); }
.zz-contact-details { display: grid; gap: 1px; margin-top: 35px; background: var(--zz-line); border: 1px solid var(--zz-line); }
.zz-contact-details > * { display: grid; gap: 4px; padding: 18px 20px; background: white; color: var(--zz-ink); text-decoration: none; }
.zz-contact-details strong { color: var(--zz-blue-deep); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.zz-form-card { padding: clamp(28px,4vw,48px); background: white; border-top: 7px solid var(--zz-yellow); box-shadow: var(--zz-shadow); }
.zz-contact-form .elementor-field-group { margin-bottom: 16px; }
.zz-contact-form .elementor-field-label { margin-bottom: 7px; color: var(--zz-ink); font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.zz-contact-form .elementor-field { min-height: 50px; border: 1px solid #c8d3dc; border-radius: 0; background: var(--zz-paper); }
.zz-contact-form textarea.elementor-field { min-height: 150px; }
.zz-contact-form .elementor-button { min-height: 54px; border-radius: 0; background: var(--zz-ink); color: white; font-size: .76rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; box-shadow: 7px 7px 0 var(--zz-blue); }

/* Universal footer */
.zz-site-footer { padding: 68px 0 24px; background: var(--zz-ink); color: #aab5be; }
.zz-footer-grid { display: grid; grid-template-columns: 1.45fr 1fr 1fr .8fr; gap: 48px; }
.zz-footer-logo img { width: 250px; }
.zz-footer-brand p { max-width: 320px; font-size: .84rem; }
.zz-footer-column h3 { margin: 0 0 17px; color: var(--zz-yellow); font-family: var(--zz-body); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.zz-footer-column a,
.zz-footer-column span { display: block; margin: 7px 0; color: inherit; font-size: .81rem; text-decoration: none; }
.zz-footer-column a:hover { color: white; }
.zz-footer-bottom { margin-top: 50px; padding-top: 22px; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.1); color: #7d8c98; font-size: .65rem; letter-spacing: .07em; text-transform: uppercase; }

/* Intro animation */
.zz-intro { --zz-intro-duration: 4.2s; position: fixed; z-index: 99999; inset: 0; display: grid; place-items: center; overflow: hidden; isolation: isolate; background: radial-gradient(circle at 50% 48%,rgba(43,126,185,.24),transparent 36%),linear-gradient(130deg,#080a0d 0%,#0d1319 55%,#071522 100%); animation: zz-intro-dismiss var(--zz-intro-duration) cubic-bezier(.65,0,.35,1) forwards; }
.zz-intro-grid { position: absolute; inset: 0; opacity: .13; background-image: linear-gradient(rgba(93,192,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(93,192,255,.12) 1px,transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(circle at center,black,transparent 70%); }
.zz-intro-atmosphere { position: absolute; inset: -15%; display: grid; place-items: center; }
.zz-intro-cloud { width: min(1180px,100vw); opacity: 0; filter: drop-shadow(0 24px 70px rgba(0,0,0,.9)); animation: zz-cloud-expand var(--zz-intro-duration) ease-out forwards; }
.zz-intro-charge { position: absolute; z-index: -1; width: 52vw; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle,rgba(220,246,255,.64),rgba(93,192,255,.18) 38%,transparent 68%); opacity: 0; animation: zz-charge var(--zz-intro-duration) linear forwards; }
.zz-intro-lightning { position: absolute; width: min(1450px,110vw); opacity: 0; filter: drop-shadow(0 0 8px white) drop-shadow(0 0 30px var(--zz-blue)); animation: zz-lightning var(--zz-intro-duration) linear forwards; }
.zz-intro-logo { position: relative; z-index: 6; width: min(720px,72vw); opacity: 0; transform: scale(.82); filter: drop-shadow(0 18px 30px rgba(0,0,0,.8)); animation: zz-logo-reveal var(--zz-intro-duration) cubic-bezier(.2,.8,.2,1) forwards; }
.zz-intro-flash { position: absolute; z-index: 5; width: 10vw; aspect-ratio: 1; border-radius: 50%; opacity: 0; background: white; box-shadow: 0 0 120px 90px white,0 0 260px 160px rgba(93,192,255,.9); animation: zz-flash var(--zz-intro-duration) linear forwards; }
.zz-intro-skip { position: absolute; z-index: 10; right: 22px; bottom: 20px; padding: 8px 12px; border: 1px solid rgba(255,255,255,.25); background: rgba(0,0,0,.2); color: rgba(255,255,255,.72); font: 700 .65rem var(--zz-body); letter-spacing: .08em; text-transform: uppercase; }
.zz-intro.zz-intro--waiting * { animation-play-state: paused; }
.zz-intro.zz-intro--skipped { display: none; }
@keyframes zz-cloud-expand { 0%,8%{opacity:0;transform:scale(.65)} 26%{opacity:.95;transform:scale(.92)} 48%{opacity:1;transform:scale(1.12)} 66%{opacity:.9;transform:scale(1.18)} 78%,100%{opacity:0;transform:scale(1.25)} }
@keyframes zz-charge { 0%,25%{opacity:0;transform:scale(.45)} 42%{opacity:.55} 52%{opacity:1;transform:scale(1)} 65%,100%{opacity:0;transform:scale(1.45)} }
@keyframes zz-lightning { 0%,43%{opacity:0} 45%{opacity:1} 47%{opacity:.12} 49%{opacity:1} 52%{opacity:.22} 54%{opacity:1} 59%,100%{opacity:0} }
@keyframes zz-flash { 0%,44%{opacity:0;transform:scale(.1)} 47%{opacity:1} 50%{opacity:.18;transform:scale(7)} 53%{opacity:1} 60%,100%{opacity:0;transform:scale(11)} }
@keyframes zz-logo-reveal { 0%,51%{opacity:0;transform:scale(.82)} 59%{opacity:1;transform:scale(1.1)} 69%{opacity:1;transform:scale(1)} 86%{opacity:1;transform:scale(1)} 100%{opacity:0;transform:scale(1.03)} }
@keyframes zz-intro-dismiss { 0%,88%{visibility:visible;opacity:1} 100%{visibility:hidden;opacity:0;pointer-events:none} }

@media (max-width: 1080px) {
  .zz-header-logo { flex-basis: 210px; }
  .zz-header-logo img { width: 210px; }
  .zz-primary-menu .elementor-nav-menu--main { display: none; }
  .zz-primary-menu .elementor-menu-toggle { display: flex; margin-left: auto; color: white; background: transparent; border: 1px solid rgba(255,255,255,.2); }
  .zz-primary-menu .elementor-nav-menu--dropdown { position: absolute; right: 0; top: 100%; width: min(420px,100vw); }
  .zz-header-phone { margin-left: auto; }
  .zz-hero-grid,
  .zz-interior-hero-grid { grid-template-columns: 1fr; }
  .zz-hero-visual { width: min(680px,92%); margin-inline: auto; }
  .zz-proof-grid { grid-template-columns: repeat(2,1fr); }
  .zz-service-grid { grid-template-columns: repeat(2,1fr); }
  .zz-process-grid { grid-template-columns: repeat(3,1fr); }
  .zz-two-column,
  .zz-faq-grid,
  .zz-contact-grid,
  .zz-content-grid { grid-template-columns: 1fr; }
  .zz-collage { width: min(650px,100%); }
  .zz-footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .zz-footer-grid > :last-child { grid-column: 2; }
}

@media (max-width: 720px) {
  .zz-shell { width: min(100% - 32px,1180px); }
  .zz-header-inner { min-height: 76px; gap: 10px; }
  .zz-header-logo { flex-basis: 185px; }
  .zz-header-logo img { width: 185px; }
  .zz-header-phone { display: none; }
  .zz-primary-menu { margin-left: auto; flex: 0 0 48px; }
  .zz-primary-menu .elementor-menu-toggle { width: 46px; height: 46px; padding: 10px; }
  .zz-section h1 { font-size: clamp(3.25rem,16vw,5rem); }
  .zz-section h2 { font-size: clamp(2.9rem,14vw,4.3rem); }
  .zz-hero-grid { min-height: auto; padding-block: 58px 76px; gap: 55px; }
  .zz-actions { flex-direction: column; }
  .zz-actions > * { width: 100%; }
  .zz-actions .elementor-button { width: 100%; justify-content: center; }
  .zz-hero-bolt { top: -25px; left: -20px; width: 74px; }
  .zz-photo-caption { left: 22px; bottom: 25px; }
  .zz-photo-caption strong { font-size: 1.12rem; }
  .zz-experience { right: -10px; bottom: -20px; padding: 12px 14px; }
  .zz-proof-grid { grid-template-columns: 1fr 1fr; }
  .zz-proof-item { min-height: 105px; padding: 18px 16px; }
  .zz-split-heading { grid-template-columns: 1fr; gap: 22px; }
  .zz-services,
  .zz-about,
  .zz-process,
  .zz-areas,
  .zz-faq,
  .zz-related-services,
  .zz-contact-section { padding-block: 75px; }
  .zz-service-grid,
  .zz-process-grid,
  .zz-related-grid,
  .zz-area-list { grid-template-columns: 1fr; }
  .zz-service-card { min-height: 245px; }
  .zz-collage { min-height: 470px; }
  .zz-interior-hero { padding-block: 65px; }
  .zz-interior-hero-grid { gap: 45px; }
  .zz-content-section { padding-block: 65px; }
  .zz-footer-grid { grid-template-columns: 1fr; }
  .zz-footer-grid > :last-child { grid-column: auto; }
  .zz-footer-bottom { flex-direction: column; }
  .zz-intro-cloud { width: 145vw; }
  .zz-intro-lightning { width: 150vw; }
  .zz-intro-logo { width: 88vw; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .zz-intro { display: none; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* -------------------------------------------------------------------------
   Elementor host compatibility + approved Vercel homepage fidelity
   Elementor 4 wraps every container's children in .e-con-inner. The layout
   grid/flex rules therefore belong on that inner wrapper, not on the outer
   editor container. These rules intentionally mirror the approved mockup.
   ------------------------------------------------------------------------- */
body > #site-header,
body > #site-footer { display: none !important; }
body,
.elementor-widget-text-editor { font-family: var(--zz-body) !important; }
.zz-section .elementor-heading-title,
.zz-site-header .elementor-heading-title,
.zz-site-footer .elementor-heading-title { font-family: var(--zz-display) !important; }
.zz-site-header.e-con,
.zz-site-header .e-con,
.zz-site-footer.e-con,
.zz-site-footer .e-con,
.zz-section.e-con,
.zz-section .e-con { padding: 0 !important; }
.zz-site-header.e-con > .e-con-inner,
.zz-site-header .e-con > .e-con-inner,
.zz-site-footer.e-con > .e-con-inner,
.zz-site-footer .e-con > .e-con-inner,
.zz-section.e-con > .e-con-inner,
.zz-section .e-con > .e-con-inner { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0; gap: 0; }
.zz-header-inner.e-con,
.zz-hero-grid.e-con,
.zz-actions.e-con,
.zz-proof-grid.e-con,
.zz-split-heading.e-con,
.zz-service-grid.e-con,
.zz-two-column.e-con,
.zz-process-grid.e-con,
.zz-faq-grid.e-con,
.zz-interior-hero-grid.e-con,
.zz-content-grid.e-con,
.zz-related-grid.e-con,
.zz-contact-grid.e-con,
.zz-footer-grid.e-con { display: block !important; }
.zz-shell.e-con { width: min(1180px, calc(100% - 48px)) !important; max-width: none !important; margin-inline: auto !important; }
.zz-shell > .e-con-inner { width: 100% !important; max-width: none !important; }

.zz-runtime-header { position: sticky; top: 0; z-index: 9998; }
.admin-bar .zz-runtime-header { top: 32px; }
.zz-runtime-footer { position: relative; z-index: 2; }

/* Header */
.zz-site-header.e-con { width: 100% !important; max-width: none !important; border-top: 3px solid var(--zz-yellow); background: rgba(8,10,13,.96); color: white; backdrop-filter: blur(16px); }
.zz-site-header > .e-con-inner { display: block !important; width: 100% !important; max-width: none !important; }
.zz-header-inner.e-con { min-height: 0 !important; }
.zz-header-inner > .e-con-inner { min-height: 84px; display: flex !important; flex-flow: row nowrap !important; align-items: center !important; justify-content: space-between !important; gap: 28px !important; }
.zz-header-inner .elementor-widget { width: auto !important; margin: 0 !important; }
.zz-header-logo { flex: 0 0 228px !important; }
.zz-header-logo .elementor-widget-container { display: flex; align-items: center; }
.zz-header-logo img { width: 228px !important; max-height: 74px !important; object-position: left center; }
.zz-primary-menu { flex: 1 1 auto !important; min-width: 0; }
.zz-primary-menu .elementor-menu-toggle,
.zz-primary-menu .elementor-menu-toggle.elementor-active { color: var(--zz-white) !important; }
.zz-primary-menu .elementor-menu-toggle svg,
.zz-primary-menu .elementor-menu-toggle svg path,
.zz-primary-menu .elementor-menu-toggle.elementor-active svg,
.zz-primary-menu .elementor-menu-toggle.elementor-active svg path { color: var(--zz-white) !important; fill: var(--zz-white) !important; }
.zz-primary-menu .elementor-nav-menu--main > .elementor-nav-menu { justify-content: center; gap: clamp(12px,1.7vw,26px); }
.zz-primary-menu .elementor-nav-menu--main > .elementor-nav-menu > li > a { padding: 31px 3px !important; color: white !important; font-family: var(--zz-body) !important; font-size: .78rem !important; font-weight: 700 !important; letter-spacing: .06em; text-transform: uppercase; }
.zz-primary-menu .elementor-nav-menu--main > .elementor-nav-menu > li > a:hover,
.zz-primary-menu .elementor-nav-menu--main > .elementor-nav-menu > li.current-menu-item > a { color: var(--zz-yellow) !important; }
.zz-primary-menu .elementor-nav-menu--dropdown { border-top: 3px solid var(--zz-yellow) !important; }
.zz-header-phone { flex: 0 0 auto !important; }
.zz-header-phone .elementor-button { min-height: 54px; padding: 8px 18px !important; border: 0 !important; border-left: 1px solid rgba(255,255,255,.15) !important; background: transparent !important; color: white !important; font: 800 1.18rem var(--zz-display) !important; letter-spacing: .03em !important; box-shadow: none !important; }

/* Hero */
.zz-hero.e-con { width: 100% !important; max-width: none !important; background: radial-gradient(circle at 78% 34%, rgba(43,126,185,.24), transparent 31%), linear-gradient(130deg,#080a0d 0%,#0d1319 55%,#071522 100%); }
.zz-hero > .e-con-inner { display: block !important; width: 100% !important; max-width: none !important; }
.zz-hero-grid.e-con { min-height: 0 !important; }
.zz-hero-grid > .e-con-inner { min-height: 635px; display: grid !important; grid-template-columns: 1.02fr .98fr !important; align-items: center !important; gap: clamp(50px,6vw,96px) !important; padding-block: 60px 68px !important; }
.zz-hero-copy > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-hero-copy .elementor-widget { width: 100% !important; }
.zz-hero-copy h1.elementor-heading-title { color: var(--zz-white) !important; font: 900 clamp(4rem,7.2vw,6.9rem)/.84 var(--zz-display) !important; letter-spacing: -.025em !important; }
.zz-hero-copy h1 em { display: block; color: var(--zz-yellow); font-style: italic; }
.zz-hero-copy .zz-eyebrow { line-height: 1.65 !important; }
.zz-hero-copy .zz-lede { max-width: 650px; margin: 30px 0 32px; color: #d8e1e9; font-size: 1.08rem; line-height: 1.75; }
.zz-actions > .e-con-inner { display: flex !important; flex-flow: row wrap !important; align-items: center !important; gap: 12px !important; }
.zz-actions.e-con { margin-top: 0 !important; }
.zz-actions .elementor-widget { width: auto !important; }
.zz-button .elementor-button,
.zz-text-button .elementor-button { border-radius: 0 !important; font-family: var(--zz-body) !important; font-size: .74rem !important; font-weight: 900 !important; letter-spacing: .075em !important; text-transform: uppercase !important; }
.zz-button .elementor-button { min-height: 54px; display: inline-flex !important; align-items: center; padding: 15px 23px !important; border: 2px solid transparent !important; }
.zz-button--primary .elementor-button { min-height: 54px; background: var(--zz-yellow) !important; color: var(--zz-ink) !important; box-shadow: 0 10px 30px rgba(255,236,50,.16) !important; }
.zz-button--primary .elementor-button:hover { background: #fff56b; transform: translateY(-3px); box-shadow: 0 15px 38px rgba(255,236,50,.28); }
.zz-button--ghost .elementor-button { min-height: 54px; border-color: rgba(255,255,255,.25) !important; background: transparent !important; color: var(--zz-white) !important; box-shadow: none !important; }
.zz-button--dark .elementor-button { background: var(--zz-ink) !important; color: var(--zz-white) !important; box-shadow: none !important; }
.zz-text-button .elementor-button { padding: 0 !important; background: transparent !important; color: var(--zz-blue-deep) !important; box-shadow: none !important; }
.zz-credentials { margin: 26px 0 0 !important; color: #9eabb7; font-size: .75rem; font-weight: 700; line-height: 1.65 !important; letter-spacing: .06em; }
.zz-hero-visual.e-con { min-width: 0; min-height: 0 !important; padding: 18px 18px 86px 16px !important; }
.zz-hero-visual > .e-con-inner { position: relative; display: block !important; width: 100% !important; height: auto !important; min-height: 0 !important; }
.zz-hero-photo { position: relative !important; width: 100% !important; margin: 0 !important; overflow: hidden; clip-path: polygon(7% 0,100% 0,93% 100%,0 100%); box-shadow: var(--zz-shadow); }
.zz-hero-photo::before { position: absolute; inset: 0; z-index: 2; content: ""; border-top: 5px solid var(--zz-blue); border-bottom: 5px solid var(--zz-yellow); pointer-events: none; }
.zz-hero-photo::after { position: absolute; inset: 0; z-index: 2; content: ""; box-shadow: inset 0 -130px 100px -65px rgba(0,0,0,.92); pointer-events: none; }
.zz-hero-photo img { width: 100% !important; aspect-ratio: 4/3; object-fit: cover; border: 0 !important; clip-path: none !important; }
.zz-hero-bolt { position: absolute !important; z-index: 5 !important; top: -22px !important; left: -28px !important; width: 86px !important; margin: 0 !important; transform: none !important; }
.zz-hero-bolt img { width: 86px !important; height: auto !important; filter: drop-shadow(5px 6px 0 var(--zz-blue)) drop-shadow(3px 4px 0 var(--zz-ink)); }
.zz-photo-caption { left: 36px; right: 36px; bottom: 24px; }
.zz-experience { right: -26px; bottom: 8px; }
.zz-proof-grid > .e-con-inner { display: grid !important; grid-template-columns: repeat(4,1fr) !important; }
.zz-proof-item.e-con { min-height: 0 !important; }
.zz-proof-item > .e-con-inner { min-height: 96px; display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: flex-start !important; padding: 22px 26px !important; }

/* Shared homepage sections */
.zz-services.e-con,
.zz-about.e-con,
.zz-process.e-con,
.zz-areas.e-con,
.zz-faq.e-con,
.zz-final-cta.e-con { width: 100% !important; max-width: none !important; }
.zz-services.e-con,
.zz-about.e-con,
.zz-process.e-con,
.zz-areas.e-con,
.zz-faq.e-con { padding-block: 96px !important; }
.zz-final-cta.e-con { padding-block: 96px !important; }
.zz-services > .e-con-inner,
.zz-about > .e-con-inner,
.zz-process > .e-con-inner,
.zz-areas > .e-con-inner,
.zz-faq > .e-con-inner,
.zz-final-cta > .e-con-inner { display: block !important; width: 100% !important; max-width: none !important; }
.zz-section h2.elementor-heading-title { color: var(--zz-ink) !important; font: 900 clamp(3.2rem,5.2vw,5.35rem)/.84 var(--zz-display) !important; letter-spacing: -.025em !important; }
.zz-section .zz-eyebrow { line-height: 1.65 !important; }
.zz-services h2 em,
.zz-about h2 em,
.zz-faq h2 em { color: var(--zz-blue-deep) !important; }
.zz-process h2.elementor-heading-title { color: var(--zz-white) !important; }
.zz-process h2 em { color: var(--zz-yellow) !important; }
.zz-areas h2.elementor-heading-title { color: var(--zz-ink) !important; }
.zz-areas h2 em { color: transparent !important; -webkit-text-stroke: 1px var(--zz-ink); }
.zz-final-cta h2.elementor-heading-title { color: var(--zz-ink) !important; }
.zz-final-cta h2 em { color: var(--zz-yellow) !important; }
.zz-split-heading > .e-con-inner { display: grid !important; grid-template-columns: 1.2fr .8fr !important; align-items: end !important; gap: 60px !important; }
.zz-heading-group > .e-con-inner,
.zz-copy-column > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-service-grid > .e-con-inner { display: grid !important; grid-template-columns: repeat(6,1fr) !important; gap: 14px !important; }
.zz-service-card { grid-column: span 2; }
.zz-service-card:nth-child(1),
.zz-service-card:nth-child(2) { grid-column: span 3; }
.zz-service-card.e-con { min-height: 290px !important; box-sizing: border-box; }
.zz-service-card:nth-child(1),
.zz-service-card:nth-child(2) { min-height: 330px !important; }
.zz-service-card > .e-con-inner { min-height: 288px; display: flex !important; flex-direction: column !important; align-items: flex-start !important; padding: 72px 28px 28px !important; }
.zz-service-card:nth-child(1) > .e-con-inner,
.zz-service-card:nth-child(2) > .e-con-inner { min-height: 328px; }
.zz-service-card h3.elementor-heading-title { color: var(--zz-ink) !important; font: 800 clamp(1.7rem,2.5vw,2.3rem)/.95 var(--zz-display) !important; }
.zz-service-card p { margin: 0 !important; color: var(--zz-muted) !important; font-size: .88rem; }
.zz-service-card:nth-child(1)::before,
.zz-service-card:nth-child(2)::before { width: 30px; height: 42px; top: 17px; background: url("zz-bolt-flat.png") center/contain no-repeat; transform: none; filter: drop-shadow(2px 2px 0 var(--zz-blue)); }
.zz-two-column > .e-con-inner { display: grid !important; grid-template-columns: 1fr 1fr !important; align-items: center !important; gap: clamp(70px,8vw,120px) !important; }
.zz-collage.e-con { min-height: 640px; }
.zz-collage > .e-con-inner { position: relative; display: block !important; min-height: 640px; }
.zz-collage-main { position: absolute !important; left: 0 !important; top: 0 !important; width: 73% !important; height: 88% !important; }
.zz-collage-small { position: absolute !important; right: 0 !important; bottom: 0 !important; width: 48% !important; height: 51% !important; }
.zz-collage-main .elementor-widget-container,
.zz-collage-small .elementor-widget-container { width: 100%; height: 100%; }
.zz-collage-main img,
.zz-collage-small img { width: 100% !important; height: 100% !important; object-fit: cover; }
.zz-work-stamp { position: absolute; z-index: 5; top: 30px; right: -10px; width: 142px; min-height: 112px; display: grid; place-content: center; text-align: center; background: var(--zz-yellow); border-left: 6px solid var(--zz-blue); box-shadow: 8px 8px 0 var(--zz-ink); }
.zz-work-stamp span { font-size: .55rem; font-weight: 900; letter-spacing: .12em; }
.zz-work-stamp strong { font: 900 1.35rem/.85 var(--zz-display); }
.zz-process-grid > .e-con-inner { position: relative; display: grid !important; grid-template-columns: repeat(5,1fr) !important; gap: 24px !important; }
.zz-process-grid.e-con { margin-top: 28px !important; }
.zz-process-grid > .e-con-inner::before { position: absolute; top: 27px; left: 7%; right: 7%; height: 2px; content: ""; background: linear-gradient(90deg,var(--zz-yellow),var(--zz-blue),var(--zz-yellow)); box-shadow: 0 0 16px rgba(93,192,255,.35); }
.zz-process-card.e-con { padding-top: 75px !important; }
.zz-process-card > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-process-card h3.elementor-heading-title { color: var(--zz-white) !important; font: 800 1.4rem var(--zz-display) !important; }
.zz-process-card p { line-height: 1.625 !important; }
.zz-areas .zz-two-column > .e-con-inner { grid-template-columns: .8fr 1.2fr !important; }
.zz-faq-grid > .e-con-inner { display: grid !important; grid-template-columns: .72fr 1.28fr !important; align-items: start !important; gap: clamp(50px,9vw,120px) !important; }
.zz-accordion .elementor-tab-title { min-height: 84px; padding: 18px 0 !important; color: var(--zz-ink) !important; font: 800 clamp(1.25rem,2vw,1.65rem)/1.15 var(--zz-display) !important; }
.zz-accordion .elementor-tab-title { display: flex !important; align-items: center; justify-content: space-between; gap: 30px; }
.zz-accordion .elementor-accordion-title { order: 1; flex: 1; color: inherit !important; font: inherit !important; }
.zz-accordion .elementor-accordion-icon { position: relative; order: 2; flex: 0 0 32px; float: none !important; width: 32px !important; height: 32px; display: block !important; border: 1px solid var(--zz-line); border-radius: 50%; }
.zz-accordion .elementor-accordion-icon i { display: none !important; }
.zz-accordion .elementor-accordion-icon::before,
.zz-accordion .elementor-accordion-icon::after { position: absolute; top: 14px; left: 9px; right: 9px; height: 2px; content: ""; background: var(--zz-blue-deep); transition: transform .25s ease; }
.zz-accordion .elementor-accordion-icon::after { transform: rotate(90deg); }
.zz-accordion .elementor-tab-title[aria-expanded="true"] .elementor-accordion-icon { border-color: var(--zz-yellow); background: var(--zz-yellow); }
.zz-accordion .elementor-tab-title[aria-expanded="true"] .elementor-accordion-icon::after { transform: rotate(0); }
.zz-accordion .elementor-tab-content { padding: 0 55px 27px 0 !important; color: var(--zz-muted) !important; font-family: var(--zz-body) !important; font-size: .92rem; line-height: 1.65; }
.zz-accordion .elementor-tab-content p { margin: 0 !important; line-height: inherit; }
.zz-accordion .elementor-accordion-item:nth-child(n+5) { display: none; }
.zz-final-cta-inner > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: center !important; }
.zz-final-cta-inner h2.elementor-heading-title { width: 100%; max-width: none !important; }
.zz-final-cta-inner > .e-con-inner > .elementor-widget-text-editor:not(.zz-eyebrow-widget) { width: 100% !important; }
.zz-final-cta-inner > .e-con-inner > .elementor-widget-text-editor:not(.zz-eyebrow-widget) p { max-width: 620px; margin: 26px auto 30px !important; line-height: 1.65; }
.zz-final-cta-inner .zz-actions > .e-con-inner { justify-content: center !important; }
.zz-final-cta .zz-button--primary .elementor-button { background: var(--zz-ink) !important; color: var(--zz-white) !important; box-shadow: none !important; }
.zz-final-cta .zz-button--ghost .elementor-button { border-color: var(--zz-ink) !important; color: var(--zz-ink) !important; }

/* Service pages: source-site copy in a more expressive, homepage-led system. */
.zz-service-hero,
.zz-service-signals,
.zz-service-detail { --zz-service-accent: var(--zz-blue); --zz-service-secondary: var(--zz-yellow); }
.zz-service-tone--commercial,
.zz-service-tone--power,
.zz-service-tone--backup { --zz-service-accent: var(--zz-yellow); --zz-service-secondary: var(--zz-blue); }
.zz-service-tone--lighting,
.zz-service-tone--specialty { --zz-service-accent: #fff56b; --zz-service-secondary: var(--zz-blue); }
.zz-service-hero.e-con { width: 100% !important; max-width: none !important; overflow: hidden; isolation: isolate; color: white; background: radial-gradient(circle at 78% 28%,rgba(22,136,212,.28),transparent 32%),linear-gradient(126deg,#080a0d 0%,#0d151d 62%,#071522 100%); }
.zz-service-hero.e-con::before { position: absolute; inset: 0; z-index: -1; content: ""; opacity: .16; background-image: linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px); background-size: 54px 54px; mask-image: linear-gradient(90deg,#000,transparent 78%); }
.zz-service-hero.e-con::after { position: absolute; z-index: -1; top: -30%; right: -10%; width: 52vw; min-width: 620px; aspect-ratio: 1; content: ""; border: 1px solid rgba(255,255,255,.08); transform: rotate(35deg); box-shadow: inset 0 0 0 34px rgba(93,192,255,.025),inset 0 0 0 68px rgba(255,236,50,.018); }
.zz-service-tone--lighting.zz-service-hero.e-con { background: radial-gradient(circle at 78% 24%,rgba(255,236,50,.2),transparent 28%),linear-gradient(126deg,#080a0d,#101820 70%,#1a1a0a); }
.zz-service-tone--future.zz-service-hero.e-con { background: radial-gradient(circle at 76% 22%,rgba(93,192,255,.38),transparent 34%),linear-gradient(126deg,#080a0d,#0a1822 68%,#06243a); }
.zz-service-tone--water.zz-service-hero.e-con { background: radial-gradient(circle at 80% 18%,rgba(93,192,255,.3),transparent 31%),linear-gradient(126deg,#080a0d,#0a1620 63%,#071c2a); }
.zz-service-tone--outdoor.zz-service-hero.e-con,
.zz-service-tone--entertainment.zz-service-hero.e-con { background: radial-gradient(circle at 76% 20%,rgba(255,236,50,.16),transparent 29%),radial-gradient(circle at 90% 80%,rgba(93,192,255,.22),transparent 34%),linear-gradient(126deg,#080a0d,#111820); }
.zz-service-hero > .e-con-inner,
.zz-service-signals > .e-con-inner,
.zz-service-detail > .e-con-inner { display: block !important; width: 100% !important; max-width: none !important; }
.zz-service-hero-grid > .e-con-inner { min-height: 690px; display: grid !important; grid-template-columns: 1.06fr .94fr !important; align-items: center !important; gap: clamp(60px,7vw,108px) !important; padding-block: 78px 92px !important; }
.zz-service-hero-copy > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-service-hero-copy h1.elementor-heading-title { max-width: 710px; color: white !important; font: 900 clamp(4rem,6.2vw,6.75rem)/.84 var(--zz-display) !important; letter-spacing: -.03em !important; text-transform: uppercase; }
.zz-service-hero-copy h1 em { color: var(--zz-service-accent) !important; }
.zz-service-hero-copy .zz-lede { max-width: 640px; margin: 29px 0 31px; color: #c8d3dc; font-size: 1.02rem; line-height: 1.72; }
.zz-service-hero-copy .zz-actions { margin-top: 0; }
.zz-service-visual.e-con,
.zz-service-visual > .e-con-inner { min-height: 560px; }
.zz-service-visual.e-con { position: relative; }
.zz-service-visual > .e-con-inner { position: relative; display: block !important; }
.zz-service-visual::before { position: absolute; inset: 12px -10px 30px 30px; z-index: 0; content: ""; border: 1px solid rgba(255,255,255,.16); transform: skewX(-4deg); }
.zz-service-hero-photo { position: absolute !important; inset: 0 18px 58px 0; overflow: hidden; clip-path: polygon(8% 0,100% 0,92% 100%,0 100%); box-shadow: var(--zz-shadow); }
.zz-service-hero-photo .elementor-widget-container,
.zz-service-hero-photo img { width: 100% !important; height: 100% !important; }
.zz-service-hero-photo img { object-fit: cover; filter: saturate(.86) contrast(1.05); }
.zz-service-tone--lighting .zz-service-hero-photo img,
.zz-service-tone--specialty .zz-service-hero-photo img { filter: saturate(.92) contrast(1.03) brightness(1.04); }
.zz-service-hero-photo::after { position: absolute; inset: 0; content: ""; box-shadow: inset 0 -150px 110px -75px rgba(0,0,0,.95); pointer-events: none; }
.zz-service-visual-bolt { position: absolute !important; z-index: 5; top: -34px; left: -38px; width: 92px !important; transform: rotate(-7deg); filter: drop-shadow(6px 7px 0 var(--zz-service-secondary)) drop-shadow(2px 3px 0 #080a0d); }
.zz-service-visual-bolt img { width: 92px !important; }
.zz-service-visual-marker { position: absolute; z-index: 6; right: 0; bottom: 0; width: min(360px,78%); padding: 20px 24px 22px; background: var(--zz-service-accent); color: var(--zz-ink); box-shadow: 11px 11px 0 rgba(0,0,0,.38); }
.zz-service-marker-widget,
.zz-approved-note-widget,
.zz-service-visual .elementor-widget-text-editor:has(.zz-service-visual-marker),
.zz-approved-hero-media .elementor-widget-text-editor:has(.zz-approved-hero-note) { position: static !important; }
.zz-service-visual-marker span { display: block; margin-bottom: 7px; font-size: .58rem; font-weight: 900; letter-spacing: .15em; }
.zz-service-visual-marker strong { display: block; font: 900 clamp(1.35rem,2.2vw,2rem)/.95 var(--zz-display); text-transform: uppercase; }
.zz-service-signals.e-con { width: 100% !important; max-width: none !important; background: #0d1116; border-top: 1px solid rgba(255,255,255,.1); border-bottom: 4px solid var(--zz-service-accent); }
.zz-service-signal-grid > .e-con-inner { display: grid !important; grid-template-columns: repeat(3,1fr) !important; }
.zz-service-signal-item.e-con { min-height: 118px; border-left: 1px solid rgba(255,255,255,.1); }
.zz-service-signal-item:last-child { border-right: 1px solid rgba(255,255,255,.1); }
.zz-service-signal-item > .e-con-inner { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 18px !important; padding: 22px 28px !important; }
.zz-service-signal-item .elementor-widget-text-editor { width: 100%; }
.zz-service-signal-item .elementor-widget-container { display: flex; align-items: center; gap: 18px; }
.zz-service-signal-item span { color: var(--zz-service-accent); font: 900 1rem var(--zz-display); }
.zz-service-signal-item strong { color: white; font: 800 clamp(1.15rem,1.8vw,1.45rem)/1.05 var(--zz-display); text-transform: uppercase; }
.zz-service-detail.e-con { width: 100% !important; max-width: none !important; padding-block: 102px !important; overflow: hidden; background: white; }
.zz-service-detail-grid > .e-con-inner { display: grid !important; grid-template-columns: .78fr 1.22fr !important; align-items: start !important; gap: clamp(62px,9vw,128px) !important; }
.zz-service-detail-heading > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-detail-index { margin: 0 0 22px !important; color: var(--zz-service-accent) !important; font: 900 .72rem var(--zz-body); letter-spacing: .18em; }
.zz-detail-index span { padding: 0 9px; color: #9aa6b0; }
.zz-service-detail h2.elementor-heading-title { max-width: 470px; color: var(--zz-ink) !important; font: 900 clamp(2.8rem,4.45vw,4.7rem)/.88 var(--zz-display) !important; letter-spacing: -.025em !important; text-transform: uppercase; }
.zz-service-detail-copy { position: relative; }
.zz-service-detail-copy p { margin: 0 0 20px; color: var(--zz-muted); font-size: 1rem; line-height: 1.75; }
.zz-service-detail-copy p:last-child { margin-bottom: 0; }
.zz-service-detail-copy h3 { margin: 32px 0 10px; color: var(--zz-ink); font: 800 1.75rem/1 var(--zz-display); text-transform: uppercase; }
.zz-service-detail-copy .zz-list-item { position: relative; margin: 0 !important; padding: 15px 16px 15px 38px; border-bottom: 1px solid var(--zz-line); background: rgba(244,247,250,.7); font-size: .92rem; }
.zz-service-detail-copy .zz-list-item::before { position: absolute; top: 25px; left: 16px; width: 11px; height: 4px; content: ""; background: linear-gradient(90deg,var(--zz-service-accent),var(--zz-service-secondary)); transform: skewX(-28deg); }
.zz-service-detail--dark.e-con { background: radial-gradient(circle at 88% 110%,rgba(22,136,212,.2),transparent 38%),var(--zz-ink); }
.zz-service-detail--dark h2.elementor-heading-title,
.zz-service-detail--dark .zz-service-detail-copy h3 { color: white !important; }
.zz-service-detail--dark .zz-service-detail-copy p { color: #aebbc5; }
.zz-service-detail--dark .zz-service-detail-copy .zz-list-item { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.035); }
.zz-service-detail--panel.e-con { background: var(--zz-paper); }
.zz-service-detail--panel .zz-service-detail-copy { padding: clamp(30px,4vw,52px); background: white; border-top: 6px solid var(--zz-service-accent); box-shadow: 0 24px 60px rgba(8,10,13,.1); }
.zz-service-detail--panel .zz-service-detail-heading { position: relative; padding-left: 30px; }
.zz-service-detail--panel .zz-service-detail-heading::before { position: absolute; top: 5px; bottom: 4px; left: 0; width: 8px; content: ""; background: linear-gradient(var(--zz-service-accent),var(--zz-service-secondary)); transform: skewY(-12deg); }

/* Interior grids and footer use the same Elementor inner-wrapper correction. */
.zz-interior-hero > .e-con-inner,
.zz-content-section > .e-con-inner,
.zz-related-services > .e-con-inner,
.zz-contact-section > .e-con-inner,
.zz-site-footer > .e-con-inner { display: block !important; width: 100% !important; max-width: none !important; }
.zz-interior-hero-grid > .e-con-inner { display: grid !important; grid-template-columns: 1.05fr .95fr !important; align-items: center !important; gap: clamp(55px,8vw,110px) !important; }
.zz-content-grid > .e-con-inner { display: grid !important; grid-template-columns: .72fr 1.28fr !important; align-items: start !important; gap: clamp(55px,9vw,120px) !important; }
.zz-related-grid > .e-con-inner { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 15px !important; }
.zz-contact-grid > .e-con-inner { display: grid !important; grid-template-columns: .85fr 1.15fr !important; align-items: start !important; gap: clamp(55px,8vw,100px) !important; }
.zz-footer-grid > .e-con-inner { display: grid !important; grid-template-columns: 1.5fr 1fr 1fr .7fr !important; gap: 50px !important; }
.zz-footer-brand > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-interior-hero.e-con { padding-block: 95px !important; }
.zz-interior-hero--compact.e-con { padding-block: 80px !important; }
.zz-content-section.e-con { padding-block: 86px !important; }
.zz-related-services.e-con,
.zz-contact-section.e-con { padding-block: 100px !important; }
.zz-form-card.e-con { padding: clamp(28px,4vw,48px) !important; }
.zz-related-card.e-con { padding: 30px !important; }
.zz-site-footer.e-con { padding: 68px 0 24px !important; }
.zz-mobile-actions.e-con { display: none !important; }

@media (max-width:1080px) {
  .zz-hero-grid > .e-con-inner,
  .zz-interior-hero-grid > .e-con-inner,
  .zz-two-column > .e-con-inner,
  .zz-faq-grid > .e-con-inner,
  .zz-contact-grid > .e-con-inner,
  .zz-content-grid > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-service-grid > .e-con-inner { grid-template-columns: repeat(2,1fr) !important; }
  .zz-service-card,
  .zz-service-card:nth-child(1),
  .zz-service-card:nth-child(2) { grid-column: auto; }
  .zz-process-grid > .e-con-inner { grid-template-columns: repeat(3,1fr) !important; }
  .zz-process-grid > .e-con-inner::before { display: none; }
  .zz-footer-grid > .e-con-inner { grid-template-columns: 1.4fr 1fr 1fr !important; }
  .zz-two-column > .e-con-inner { gap: 60px !important; }
  .zz-areas .zz-two-column > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-primary-menu .elementor-nav-menu--main { display: none; }
  .zz-primary-menu .elementor-menu-toggle { display: flex !important; margin-left: auto; }
}

@media (max-width:782px) {
  .admin-bar .zz-runtime-header { top: 46px; }
}

@media (max-width:720px) {
  body { padding-bottom: calc(68px + env(safe-area-inset-bottom,0px)) !important; }
  .zz-shell.e-con { width: min(100% - 32px,1180px) !important; }
  .zz-header-inner > .e-con-inner { min-height: 70px; gap: 10px !important; }
  .zz-header-logo { flex-basis: 190px !important; }
  .zz-header-logo img { width: 190px !important; }
  .zz-header-phone { display: none !important; }
  .zz-primary-menu { flex: 0 0 48px !important; }
  .zz-primary-menu .elementor-menu-toggle,
  .zz-primary-menu .elementor-menu-toggle.elementor-active { width: 46px; height: 46px; display: flex !important; align-items: center; justify-content: center; padding: 10px !important; border: 1px solid rgba(255,255,255,.52) !important; background: rgba(255,255,255,.045) !important; color: var(--zz-white) !important; }
  .zz-primary-menu .elementor-menu-toggle svg,
  .zz-primary-menu .elementor-menu-toggle svg path { color: var(--zz-white) !important; fill: var(--zz-white) !important; }
  .zz-hero-grid > .e-con-inner { min-height: auto; padding-block: 32px 100px !important; gap: 52px !important; }
  .zz-hero-copy h1.elementor-heading-title { font-size: clamp(3.6rem,18vw,5.4rem) !important; }
  .zz-hero-copy .zz-lede { font-size: .96rem; }
  .zz-section h2.elementor-heading-title { font-size: clamp(3rem,15vw,4.6rem) !important; }
  .zz-actions > .e-con-inner { flex-direction: column !important; align-items: stretch !important; }
  .zz-actions .elementor-widget,
  .zz-actions .elementor-button { width: 100% !important; justify-content: center; }
  .zz-hero-visual.e-con { min-height: 0 !important; padding-inline: 0 !important; }
  .zz-hero-visual > .e-con-inner { min-height: 0 !important; }
  .zz-hero-bolt { top: -16px !important; left: -17px !important; width: 64px !important; }
  .zz-hero-bolt img { width: 64px !important; }
  .zz-experience { right: -13px; }
  .zz-proof-grid > .e-con-inner { grid-template-columns: 1fr 1fr !important; }
  .zz-proof-item > .e-con-inner { min-height: 108px; padding: 17px 16px !important; }
  .zz-services.e-con,
  .zz-about.e-con,
  .zz-process.e-con,
  .zz-areas.e-con,
  .zz-faq.e-con { padding-block: 80px !important; }
  .zz-split-heading.e-con { margin-bottom: 36px !important; }
  .zz-split-heading > .e-con-inner { grid-template-columns: 1fr !important; gap: 24px !important; }
  .zz-service-grid > .e-con-inner,
  .zz-process-grid > .e-con-inner,
  .zz-related-grid > .e-con-inner,
  .zz-footer-grid > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-mobile-actions.e-con { position: fixed !important; z-index: 9999; right: 0; bottom: 0; left: 0; width: 100% !important; max-width: none !important; display: block !important; padding: 0 0 env(safe-area-inset-bottom,0px) !important; background: var(--zz-ink); box-shadow: 0 -10px 30px rgba(0,0,0,.22); }
  .zz-mobile-actions > .e-con-inner { width: 100% !important; max-width: none !important; display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 0 !important; }
  .zz-mobile-actions .elementor-widget { width: 100% !important; margin: 0 !important; }
  .zz-mobile-actions .elementor-button-wrapper { height: 64px; }
  .zz-mobile-actions .elementor-button { width: 100% !important; height: 64px; min-height: 64px !important; display: flex !important; align-items: center; justify-content: center; gap: 8px; padding: 12px 16px !important; border: 0 !important; background: var(--zz-ink) !important; color: var(--zz-white) !important; box-shadow: none !important; font: 900 .75rem var(--zz-body) !important; letter-spacing: .055em !important; text-transform: uppercase; }
  .zz-mobile-action--call .elementor-button::before { content: "☎"; font-size: 1rem; line-height: 1; }
  .zz-mobile-action--contact .elementor-button { background: var(--zz-yellow) !important; color: var(--zz-ink) !important; }
  .zz-service-card.e-con,
  .zz-service-card:nth-child(1),
  .zz-service-card:nth-child(2) { min-height: 270px !important; }
  .zz-service-card > .e-con-inner,
  .zz-service-card:nth-child(1) > .e-con-inner,
  .zz-service-card:nth-child(2) > .e-con-inner { min-height: 268px; }
  .zz-collage.e-con,
  .zz-collage > .e-con-inner { min-height: 500px; }
  .zz-process-grid.e-con { margin-top: 50px !important; }
  .zz-process-grid > .e-con-inner { row-gap: 45px !important; }
  .zz-process-card.e-con { min-height: 140px; padding: 0 0 0 82px !important; }
  .zz-process-number { top: 2px; }
  .zz-area-board { padding: 18px; }
  .zz-area-list { grid-template-columns: repeat(2,1fr) !important; }
  .zz-area-list span { font-size: .95rem; }
  .zz-areas .zz-two-column > .e-con-inner { gap: 50px !important; }
  .zz-areas .zz-copy-column { min-height: 327.21875px; }
  .zz-faq .zz-copy-column { min-height: 269.21875px; }
  .home .zz-faq .zz-copy-column h2.elementor-heading-title { white-space: nowrap; }
  body:not(.home) .zz-faq .zz-copy-column h2.elementor-heading-title { white-space: normal; overflow-wrap: anywhere; }
  .zz-accordion .elementor-tab-title { min-height: 76px; }
  .zz-accordion .elementor-tab-content { padding-right: 0 !important; }
  .zz-collage.e-con,
  .zz-collage > .e-con-inner { min-height: 470px; }
}

@media (max-width:420px) {
  .zz-proof-grid > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-proof-item > .e-con-inner { min-height: 88px; }
  .zz-collage.e-con,
  .zz-collage > .e-con-inner { min-height: 440px; }
  .zz-footer-grid > .e-con-inner { grid-template-columns: 1fr !important; }
}

@media (max-width:1080px) {
  .zz-service-hero-grid > .e-con-inner,
  .zz-service-detail-grid > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-service-hero-grid > .e-con-inner { padding-block: 72px 88px !important; gap: 68px !important; }
  .zz-service-visual.e-con { width: min(720px,94%) !important; margin-inline: auto; }
  .zz-service-detail-grid > .e-con-inner { gap: 48px !important; }
  .zz-service-detail h2.elementor-heading-title { max-width: 760px; }
}

@media (max-width:720px) {
  .zz-service-hero-grid > .e-con-inner { min-height: auto; padding-block: 32px 78px !important; gap: 52px !important; }
  .zz-service-hero-copy h1.elementor-heading-title { max-width: 100%; font-size: clamp(3.35rem,15vw,4.6rem) !important; }
  .zz-service-hero-copy .zz-lede { margin: 25px 0 28px; font-size: .96rem; line-height: 1.72; }
  .zz-service-visual.e-con,
  .zz-service-visual > .e-con-inner { min-height: 430px; }
  .zz-service-visual.e-con { width: 94% !important; }
  .zz-service-hero-photo { inset: 0 6px 52px 0; }
  .zz-service-visual-bolt { top: -22px; left: -22px; width: 66px !important; }
  .zz-service-visual-bolt img { width: 66px !important; }
  .zz-service-visual-marker { right: 0; width: min(310px,84%); padding: 17px 19px 19px; }
  .zz-service-signal-grid > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-service-signal-item.e-con { min-height: 86px; border-right: 1px solid rgba(255,255,255,.1); border-bottom: 1px solid rgba(255,255,255,.1); }
  .zz-service-signal-item > .e-con-inner { padding: 18px 20px !important; }
  .zz-service-detail.e-con { padding-block: 76px !important; }
  .zz-service-detail-grid > .e-con-inner { gap: 35px !important; }
  .zz-service-detail h2.elementor-heading-title { max-width: 100%; font-size: clamp(2.85rem,13vw,4.15rem) !important; }
  .zz-service-detail--panel .zz-service-detail-copy { padding: 28px 24px; }
  .zz-service-detail--panel .zz-service-detail-heading { padding-left: 22px; }
}

/* Approved interior-page system — September 2026 */
.zz-approved-hero-media.e-con,
.zz-approved-hero-media > .e-con-inner { min-height: 500px; }
.zz-approved-hero-media.e-con { position: relative; }
.zz-approved-hero-media > .e-con-inner { position: relative; display: block !important; }
.zz-approved-hero-media::before { position: absolute; inset: 24px -22px -20px 28px; content: ""; border: 1px solid rgba(93,192,255,.18); transform: skewX(-5deg); }
.zz-approved-hero-media .zz-interior-hero-image { position: absolute !important; inset: 0 8px 28px 0; }
.zz-approved-hero-media .zz-interior-hero-image .elementor-widget-container,
.zz-approved-hero-media .zz-interior-hero-image img { width: 100% !important; height: 100% !important; }
.zz-approved-hero-media .zz-interior-hero-image img { aspect-ratio: auto; border: 0; object-fit: cover; }
.zz-approved-hero-bolt { position: absolute !important; z-index: 5; top: -28px; left: -34px; width: 82px !important; transform: rotate(-7deg); filter: drop-shadow(6px 7px 0 var(--zz-blue-deep)); }
.zz-approved-hero-bolt img { width: 82px !important; }
.zz-approved-hero-note { position: absolute; z-index: 6; right: 0; bottom: 0; width: min(370px,82%); padding: 18px 22px 20px; background: var(--zz-blue); color: var(--zz-ink); box-shadow: 10px 10px 0 rgba(0,0,0,.34); text-transform: uppercase; }
.zz-approved-about-hero .zz-approved-hero-note { background: var(--zz-yellow); }
.zz-approved-hero-note span { display: block; margin-bottom: 7px; font-size: .58rem; font-weight: 900; letter-spacing: .15em; }
.zz-approved-hero-note strong { display: block; font: 900 clamp(1.2rem,2vw,1.75rem)/.95 var(--zz-display); }

/* Service stories now move through six image-led compositions. */
.zz-service-detail-image { overflow: hidden; box-shadow: var(--zz-shadow); }
.zz-service-detail-image .elementor-widget-container,
.zz-service-detail-image img { width: 100% !important; height: 100% !important; }
.zz-service-detail-image img { object-fit: cover; filter: saturate(.9) contrast(1.04); }
.zz-service-detail-grid > .e-con-inner { gap: clamp(40px,6vw,78px) !important; }
.zz-service-detail--story .zz-service-detail-grid > .e-con-inner { grid-template-columns: .92fr 1.08fr !important; grid-template-areas: "photo heading" "photo copy"; grid-template-rows: auto 1fr; align-items: center !important; }
.zz-service-detail--story .zz-service-detail-heading { grid-area: heading; align-self: end; }
.zz-service-detail--story .zz-service-detail-image { grid-area: photo; height: 560px; clip-path: polygon(0 0,94% 0,100% 100%,6% 100%); }
.zz-service-detail--story .zz-service-detail-copy { grid-area: copy; align-self: start; }
.zz-service-detail--story .zz-service-detail-copy::after { display: block; width: 92px; height: 8px; margin-top: 30px; content: ""; background: linear-gradient(90deg,var(--zz-service-accent) 0 62%,var(--zz-service-secondary) 62%); transform: skewX(-26deg); }

.zz-service-detail--options.e-con { background: var(--zz-paper); }
.zz-service-detail--options .zz-service-detail-grid > .e-con-inner { grid-template-columns: .84fr 1.16fr !important; grid-template-areas: "heading heading" "photo copy"; }
.zz-service-detail--options .zz-service-detail-heading { grid-area: heading; max-width: 830px; }
.zz-service-detail--options .zz-service-detail-image { grid-area: photo; height: 390px; align-self: stretch; border-bottom: 7px solid var(--zz-service-accent); }
.zz-service-detail--options .zz-service-detail-copy { grid-area: copy; padding: clamp(28px,4vw,50px); background: white; box-shadow: 0 18px 50px rgba(8,10,13,.1); }

.zz-service-detail--feature.e-con { background: radial-gradient(circle at 86% 100%,rgba(22,136,212,.23),transparent 40%),var(--zz-ink); }
.zz-service-detail--feature .zz-service-detail-grid > .e-con-inner { grid-template-columns: .82fr 1.18fr !important; grid-template-areas: "heading photo" "copy photo"; grid-template-rows: auto 1fr; align-items: stretch !important; }
.zz-service-detail--feature .zz-service-detail-heading { grid-area: heading; align-self: end; }
.zz-service-detail--feature .zz-service-detail-image { grid-area: photo; height: 500px; border-top: 5px solid var(--zz-service-accent); box-shadow: none; }
.zz-service-detail--feature .zz-service-detail-copy { grid-area: copy; align-self: start; }
.zz-service-detail--feature h2.elementor-heading-title,
.zz-service-detail--feature .zz-service-detail-copy h3 { color: white !important; }
.zz-service-detail--feature .zz-service-detail-copy p { color: #aebbc5; }
.zz-service-detail--feature .zz-list-item { border-color: rgba(255,255,255,.13); background: rgba(255,255,255,.035); color: #d5dfe4; }

.zz-service-detail--gallery.e-con { background: white; }
.zz-service-detail--gallery .zz-service-detail-grid > .e-con-inner { grid-template-columns: 1.12fr .88fr !important; grid-template-areas: "photo heading" "photo copy"; grid-template-rows: auto 1fr; align-items: center !important; }
.zz-service-detail--gallery .zz-service-detail-heading { grid-area: heading; align-self: end; }
.zz-service-detail--gallery .zz-service-detail-image { grid-area: photo; height: 540px; border-left: 8px solid var(--zz-service-secondary); }
.zz-service-detail--gallery .zz-service-detail-copy { grid-area: copy; align-self: start; padding-right: 24px; }

.zz-service-detail--panel.e-con { background: var(--zz-paper); }
.zz-service-detail--panel .zz-service-detail-grid > .e-con-inner { grid-template-columns: .68fr .82fr 1fr !important; grid-template-areas: "heading photo copy"; align-items: center !important; gap: 28px !important; }
.zz-service-detail--panel .zz-service-detail-heading { grid-area: heading; }
.zz-service-detail--panel .zz-service-detail-image { grid-area: photo; height: 440px; }
.zz-service-detail--panel .zz-service-detail-copy { grid-area: copy; padding: 38px; }
.zz-service-detail--panel .zz-service-detail-heading { padding-left: 0; }
.zz-service-detail--panel .zz-service-detail-heading::before { display: none; }

.zz-service-detail--yellow.e-con { background: var(--zz-yellow); }
.zz-service-detail--yellow .zz-service-detail-grid > .e-con-inner { grid-template-columns: 1fr 1fr !important; grid-template-areas: "heading photo" "copy photo"; grid-template-rows: auto 1fr; align-items: stretch !important; }
.zz-service-detail--yellow .zz-service-detail-heading { grid-area: heading; align-self: end; }
.zz-service-detail--yellow .zz-service-detail-image { grid-area: photo; height: 500px; box-shadow: none; clip-path: polygon(7% 0,100% 0,93% 100%,0 100%); }
.zz-service-detail--yellow .zz-service-detail-copy { grid-area: copy; align-self: start; }
.zz-service-detail--yellow .zz-detail-index { color: var(--zz-blue-deep) !important; }
.zz-service-detail--yellow .zz-service-detail-copy p { color: #344149; }
.zz-service-detail--yellow .zz-list-item { border-color: rgba(0,0,0,.17); background: rgba(255,255,255,.28); }

/* Generic support sections are intentionally typographic instead of carrying
   unrelated stock photos. This keeps the page paced and the imagery honest. */
.zz-service-detail--text-only.e-con { position: relative; background: var(--zz-paper); }
.zz-service-detail--text-only.e-con::before { position: absolute; top: 0; left: max(24px,calc((100% - 1180px)/2)); width: 112px; height: 7px; content: ""; background: linear-gradient(90deg,var(--zz-service-accent) 0 68%,var(--zz-service-secondary) 68%); transform: skewX(-26deg); }
.zz-service-detail--text-only .zz-service-detail-grid > .e-con-inner { grid-template-columns: .78fr 1.22fr !important; grid-template-areas: "heading copy" !important; align-items: start !important; gap: clamp(44px,7vw,96px) !important; }
.zz-service-detail--text-only .zz-service-detail-heading { grid-area: heading; position: sticky; top: 118px; }
.zz-service-detail--text-only .zz-service-detail-copy { grid-area: copy; padding: clamp(32px,4vw,54px); background: white; border: 1px solid var(--zz-line); border-top: 6px solid var(--zz-service-accent); box-shadow: 0 20px 52px rgba(8,10,13,.09); }
.zz-service-detail--text-only .zz-service-detail-copy p { font-size: 1.02rem; }
.zz-service-detail--text-card-1.e-con { background: var(--zz-ink); }
.zz-service-detail--text-card-1 h2.elementor-heading-title { color: white !important; }
.zz-service-detail--text-card-1 .zz-detail-index { color: var(--zz-yellow) !important; }
.zz-service-detail--text-card-1 .zz-service-detail-copy { border-color: rgba(255,255,255,.08); border-top-color: var(--zz-yellow); background: #10222e; box-shadow: 0 20px 52px rgba(0,0,0,.28); }
.zz-service-detail--text-card-1 .zz-service-detail-copy p { color: #c4d0d6; }
.zz-service-detail--text-card-1 .zz-service-detail-copy h3 { color: white; }
.zz-service-detail--text-card-1 .zz-list-item { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.035); color: #d5dfe4; }
.zz-service-detail--text-card-2.e-con { background: var(--zz-yellow); }
.zz-service-detail--text-card-2.e-con::before { background: linear-gradient(90deg,var(--zz-blue-deep) 0 68%,var(--zz-ink) 68%); }
.zz-service-detail--text-card-2 .zz-detail-index { color: var(--zz-blue-deep) !important; }
.zz-service-detail--text-card-2 .zz-service-detail-copy { border: 0; border-left: 7px solid var(--zz-blue-deep); box-shadow: none; }
.zz-service-detail--text-card-2 .zz-service-detail-copy p { color: #344149; }

.zz-approved-process.e-con { width: 100% !important; max-width: none !important; padding-block: 102px !important; overflow: hidden; background: radial-gradient(circle at 50% 115%,rgba(22,136,212,.24),transparent 44%),var(--zz-ink); color: white; }
.zz-approved-process > .e-con-inner { display: block !important; width: 100% !important; max-width: none !important; }
.zz-approved-process-head > .e-con-inner { display: grid !important; grid-template-columns: .9fr 1.1fr !important; align-items: center !important; gap: 72px !important; }
.zz-approved-process-title h2.elementor-heading-title { max-width: 620px; color: white !important; font-size: clamp(3.3rem,5.4vw,5.7rem) !important; }
.zz-approved-process-title > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-approved-process-title--center > .e-con-inner { align-items: center !important; text-align: center; }
.zz-approved-process-title--center h2.elementor-heading-title { max-width: 840px; }
.zz-approved-process-title--center p { max-width: 650px; color: #aebbc5; }
.zz-approved-process-photo { height: 300px; overflow: hidden; border-top: 5px solid var(--zz-blue); }
.zz-approved-process-photo .elementor-widget-container,
.zz-approved-process-photo img { width: 100% !important; height: 100% !important; }
.zz-approved-process-photo img { object-fit: cover; }
.zz-approved-process-grid > .e-con-inner { display: grid !important; grid-template-columns: repeat(4,1fr) !important; margin-top: 72px; border-top: 1px solid #293944; }
.zz-approved-step.e-con { min-height: 200px; padding: 34px 28px 0 0 !important; border-right: 1px solid #293944; }
.zz-approved-step:last-child { border-right: 0; }
.zz-approved-step > .e-con-inner { position: relative; display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 10px; }
.zz-approved-step-number,
.zz-approved-step > .e-con-inner > .elementor-widget-text-editor:first-child { width: auto !important; }
.zz-approved-step-number .elementor-widget-container > span,
.zz-approved-step > .e-con-inner > .elementor-widget-text-editor:first-child .elementor-widget-container > span { width: 40px; height: 40px; display: grid; place-items: center; margin-top: -55px; margin-bottom: 18px; background: var(--zz-yellow); color: var(--zz-ink); font: 900 1rem var(--zz-display); line-height: 1; box-shadow: 0 0 0 8px var(--zz-ink); }
.zz-approved-step h3.elementor-heading-title { color: white !important; font-size: 1.5rem !important; text-transform: uppercase; }
.zz-approved-step p { max-width: 28ch; margin: 0; color: #a9b6bf; font-size: .9rem; line-height: 1.6; }

.zz-related-card--image.e-con { min-height: 430px; padding: 0 !important; overflow: hidden; border: 0; background: var(--zz-ink); }
.zz-related-card--image > .e-con-inner { position: relative; display: block !important; min-height: 430px; }
.zz-related-card-image { position: absolute !important; inset: 0; }
.zz-related-card-image .elementor-widget-container,
.zz-related-card-image img { width: 100% !important; height: 100% !important; }
.zz-related-card-image img { object-fit: cover; }
.zz-related-card--image::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg,transparent 22%,rgba(5,10,14,.95) 100%); pointer-events: none; }
.zz-related-card-body.e-con { position: absolute !important; z-index: 2; right: 28px !important; bottom: 28px !important; left: 28px !important; width: calc(100% - 56px) !important; max-width: calc(100% - 56px) !important; min-width: 0 !important; }
.zz-related-card-body > .e-con-inner { width: 100% !important; max-width: 100% !important; min-width: 0 !important; display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-related-card-body > .e-con-inner > .elementor-element { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
.zz-related-card-body span { color: var(--zz-yellow); font-size: .62rem; font-weight: 900; letter-spacing: .14em; }
.zz-related-card--image h3.elementor-heading-title { max-width: 100%; margin: 9px 0 15px; color: white !important; font-size: clamp(1.72rem,2.15vw,2.3rem) !important; line-height: .94 !important; overflow-wrap: anywhere; text-wrap: balance; }
.zz-related-card--image .zz-text-button .elementor-button { color: var(--zz-blue) !important; }

/* Services directory */
.zz-hub-service-card.e-con { min-height: 430px; padding: 0 !important; overflow: hidden; background: var(--zz-ink); box-shadow: 0 16px 38px rgba(8,10,13,.13); }
.zz-hub-service-card > .e-con-inner { position: relative; display: block !important; min-height: 430px; }
.zz-services-directory-grid > .e-con-inner { grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap: 18px !important; }
.zz-services-directory-grid .zz-hub-service-card.e-con,
.zz-services-directory-grid .zz-hub-service-card > .e-con-inner { min-height: 460px; }
.zz-hub-service-image { position: absolute !important; inset: 0; }
.zz-hub-service-image .elementor-widget-container,
.zz-hub-service-image img { width: 100% !important; height: 100% !important; }
.zz-hub-service-image img { object-fit: cover; }
.zz-hub-service-card::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg,rgba(5,10,14,.02) 25%,rgba(5,10,14,.96) 100%); }
.zz-hub-service-card .zz-service-index-widget { top: 18px; right: 18px; }
.zz-hub-service-card .zz-service-index { color: var(--zz-yellow); }
.zz-hub-service-body.e-con { position: absolute !important; z-index: 3; right: 25px !important; bottom: 24px !important; left: 25px !important; width: calc(100% - 50px) !important; max-width: calc(100% - 50px) !important; min-width: 0 !important; }
.zz-hub-service-body > .e-con-inner { width: 100% !important; max-width: 100% !important; min-width: 0 !important; display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-hub-service-body > .e-con-inner > .elementor-element { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
.zz-hub-service-body h3.elementor-heading-title { max-width: 100%; color: white !important; font-size: clamp(1.55rem,1.75vw,1.95rem) !important; line-height: .94 !important; text-transform: uppercase; overflow-wrap: anywhere; text-wrap: balance; }
.zz-hub-service-body p { margin: 8px 0 12px; color: #c4d0d6; font-size: .78rem; line-height: 1.5; }
.zz-hub-service-body .zz-text-button .elementor-button { color: var(--zz-blue); }

/* Service areas and city-page system */
.zz-approved-area-directory.e-con,
.zz-area-properties.e-con,
.zz-area-detail.e-con { width: 100% !important; max-width: none !important; padding-block: 104px !important; }
.zz-approved-area-directory.e-con { background: white; }
.zz-approved-area-directory > .e-con-inner,
.zz-area-properties > .e-con-inner,
.zz-area-detail > .e-con-inner,
.zz-area-local-proof > .e-con-inner { display: block !important; width: 100% !important; max-width: none !important; }
.zz-approved-area-directory h2 em { color: var(--zz-blue-deep); -webkit-text-stroke: 0; }
.zz-approved-section-head > .e-con-inner { display: grid !important; grid-template-columns: 1.12fr .88fr !important; align-items: end !important; gap: 70px !important; margin-bottom: 50px; }
.zz-approved-section-title > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-approved-section-head > .e-con-inner > .elementor-widget-text-editor p { color: var(--zz-muted); }
.zz-area-properties.e-con { background: var(--zz-paper); }
.zz-area-property-grid > .e-con-inner { display: grid !important; grid-template-columns: 1.16fr .84fr !important; align-items: end !important; gap: 18px !important; }
.zz-area-property-card.e-con { position: relative; min-height: 560px; overflow: hidden; color: white; }
.zz-area-property-card:nth-child(2) { min-height: 470px; }
.zz-area-property-card > .e-con-inner { position: relative; display: block !important; min-height: inherit; }
.zz-area-property-image { position: absolute !important; inset: 0; }
.zz-area-property-image .elementor-widget-container,
.zz-area-property-image img { width: 100% !important; height: 100% !important; }
.zz-area-property-image img { object-fit: cover; }
.zz-area-property-card::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg,transparent 28%,rgba(3,9,13,.96)); }
.zz-area-property-copy-widget { position: absolute !important; z-index: 2; right: 34px !important; bottom: 32px !important; left: 34px !important; width: calc(100% - 68px) !important; max-width: calc(100% - 68px) !important; min-width: 0 !important; margin: 0 !important; }
.zz-area-property-copy-widget .elementor-widget-container,
.zz-area-property-copy { width: 100%; max-width: 100%; min-width: 0; }
.zz-area-property-copy { position: static !important; }
.zz-area-property-copy span { color: var(--zz-yellow); font-size: .62rem; font-weight: 900; letter-spacing: .14em; }
.zz-area-property-copy h3 { margin: 8px 0 10px; color: white; font: 900 clamp(2.5rem,4vw,4.1rem)/.9 var(--zz-display); text-transform: uppercase; }
.zz-area-property-copy p { max-width: 560px; margin: 0; color: #d0dce2; font-size: .82rem; }
.zz-area-detail-grid > .e-con-inner { display: grid !important; gap: clamp(40px,6vw,76px) !important; }
.zz-area-detail-image { overflow: hidden; box-shadow: var(--zz-shadow); }
.zz-area-detail-image .elementor-widget-container,
.zz-area-detail-image img { width: 100% !important; height: 100% !important; }
.zz-area-detail-image img { object-fit: cover; }
.zz-area-detail--story.e-con { background: white; }
.zz-area-detail--story .zz-area-detail-grid > .e-con-inner { grid-template-columns: .9fr 1.1fr !important; grid-template-areas: "photo heading" "photo copy"; grid-template-rows: auto 1fr; align-items: center !important; }
.zz-area-detail--story .zz-area-detail-heading { grid-area: heading; align-self: end; }
.zz-area-detail--story .zz-area-detail-image { grid-area: photo; height: 510px; clip-path: polygon(0 0,94% 0,100% 100%,6% 100%); }
.zz-area-detail--story .zz-area-detail-copy { grid-area: copy; align-self: start; }
.zz-area-detail--dark.e-con { background: var(--zz-ink); }
.zz-area-detail--dark .zz-area-detail-grid > .e-con-inner { grid-template-columns: .88fr 1.12fr !important; grid-template-areas: "heading photo" "copy photo"; grid-template-rows: auto 1fr; }
.zz-area-detail--dark .zz-area-detail-heading { grid-area: heading; align-self: end; }
.zz-area-detail--dark .zz-area-detail-image { grid-area: photo; height: 500px; border-top: 5px solid var(--zz-blue); box-shadow: none; }
.zz-area-detail--dark .zz-area-detail-copy { grid-area: copy; }
.zz-area-detail--dark h2.elementor-heading-title,
.zz-area-detail--dark .zz-rich-copy h3 { color: white !important; }
.zz-area-detail--dark .zz-rich-copy p { color: #aebbc5; }
.zz-area-detail--panel.e-con { background: var(--zz-paper); }
.zz-area-detail--panel .zz-area-detail-grid > .e-con-inner { grid-template-columns: 1.1fr .9fr !important; grid-template-areas: "photo heading" "photo copy"; grid-template-rows: auto 1fr; align-items: center !important; }
.zz-area-detail--panel .zz-area-detail-heading { grid-area: heading; align-self: end; }
.zz-area-detail--panel .zz-area-detail-image { grid-area: photo; height: 500px; }
.zz-area-detail--panel .zz-area-detail-copy { grid-area: copy; align-self: start; padding: 34px; background: white; border-top: 5px solid var(--zz-yellow); box-shadow: var(--zz-shadow); }
.zz-area-local-proof.e-con { position: relative; width: 100% !important; max-width: none !important; min-height: 560px; overflow: hidden; background: var(--zz-ink); }
.zz-area-local-proof::after { position: absolute; inset: 0; z-index: 1; content: ""; background: linear-gradient(90deg,rgba(5,10,13,.98) 0 42%,rgba(5,10,13,.57) 72%,rgba(5,10,13,.2)); }
.zz-area-local-proof-image { position: absolute !important; inset: 0; }
.zz-area-local-proof-image .elementor-widget-container,
.zz-area-local-proof-image img { width: 100% !important; height: 100% !important; }
.zz-area-local-proof-image img { object-fit: cover; object-position: center 43%; }
.zz-area-local-proof-inner { position: relative; z-index: 3; min-height: 560px; justify-content: center; align-items: flex-start; color: white; }
.zz-area-local-proof-inner > .e-con-inner { min-height: 560px; display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: flex-start !important; }
.zz-area-local-proof-inner h2.elementor-heading-title { max-width: 600px; color: white !important; }
.zz-area-local-proof-inner p { max-width: 570px; color: #c3d0d6; }
.zz-area-place { position: absolute; z-index: 2; right: -20px; bottom: -30px; color: rgba(255,255,255,.08); font: 900 clamp(7rem,13vw,13rem)/.8 var(--zz-display); letter-spacing: -.06em; text-transform: uppercase; white-space: nowrap; }

/* About page */
.zz-about-story.e-con,
.zz-about-values.e-con,
.zz-about-crew.e-con,
.zz-about-capability.e-con { width: 100% !important; max-width: none !important; padding-block: 105px !important; }
.zz-about-story > .e-con-inner,
.zz-about-values > .e-con-inner,
.zz-about-crew > .e-con-inner,
.zz-about-capability > .e-con-inner { display: block !important; width: 100% !important; max-width: none !important; }
.zz-about-story.e-con { padding: 118px 0 128px !important; overflow: hidden; background: white; }
.zz-about-story-grid > .e-con-inner { display: block !important; }
.zz-about-story-panel.e-con { position: relative; width: min(960px,100%) !important; margin-inline: auto; padding: 70px 82px 62px !important; overflow: hidden; background: var(--zz-paper); border-top: 5px solid var(--zz-yellow); box-shadow: var(--zz-shadow); }
.zz-about-story-panel::before,
.zz-about-story-panel::after { position: absolute; width: 190px; height: 2px; content: ""; background: var(--zz-blue); opacity: .38; transform: rotate(-52deg); }
.zz-about-story-panel::before { top: 25px; left: -58px; }
.zz-about-story-panel::after { right: -58px; bottom: 25px; }
.zz-about-story-panel > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center; }
.zz-about-story-panel .zz-eyebrow { justify-content: center; }
.zz-about-story-panel h2.elementor-heading-title { max-width: 760px; font-size: clamp(3rem,5.2vw,5.2rem) !important; }
.zz-about-story-panel > .e-con-inner > .elementor-widget-text-editor:not(.zz-eyebrow-widget) { max-width: 720px; }
.zz-about-story-panel p { color: var(--zz-muted); }
.zz-about-story-principles { display: grid; grid-template-columns: repeat(3,1fr); width: 100%; margin-top: 28px; border-top: 1px solid var(--zz-line); }
.zz-about-story-principles span { padding: 22px 14px 0; color: #263741; font: 900 .95rem/1 var(--zz-display); letter-spacing: .03em; text-transform: uppercase; border-right: 1px solid var(--zz-line); }
.zz-about-story-principles span:last-child { border-right: 0; }
.zz-about-values.e-con { background: var(--zz-ink); color: white; }
.zz-about-values .zz-approved-section-head p { color: #aebbc5; }
.zz-about-values-grid > .e-con-inner { display: grid !important; grid-template-columns: 1.25fr .75fr .75fr !important; grid-template-rows: repeat(2,250px); gap: 14px !important; }
.zz-about-value-card.e-con { position: relative; padding: 34px !important; overflow: hidden; background: #0f1c24; border-top: 3px solid var(--zz-blue); }
.zz-about-value-card:first-child { grid-row: 1/3; justify-content: flex-end; background: var(--zz-yellow); color: var(--zz-ink); border-color: white; }
.zz-about-value-card > .e-con-inner { display: flex !important; flex-direction: column !important; justify-content: flex-end !important; align-items: flex-start !important; }
.zz-about-value-card b { position: absolute; top: 20px; right: 23px; color: rgba(93,192,255,.13); font: 900 4rem/.8 var(--zz-display); }
.zz-about-value-card:first-child b { color: rgba(7,10,13,.13); }
.zz-about-value-card h3.elementor-heading-title { color: white !important; font-size: clamp(1.7rem,2.5vw,2.5rem) !important; text-transform: uppercase; }
.zz-about-value-card p { margin: 10px 0 0; color: #9aabb4; font-size: .82rem; line-height: 1.55; }
.zz-about-value-card:first-child h3.elementor-heading-title { color: var(--zz-ink) !important; font-size: 3rem !important; }
.zz-about-value-card:first-child p { color: #27343b; font-size: .94rem; }
.zz-about-crew.e-con { background: var(--zz-paper); }
.zz-about-crew-gallery > .e-con-inner { display: grid !important; grid-template-columns: 1.35fr .65fr !important; gap: 16px !important; min-height: 640px; }
.zz-about-crew-main,
.zz-about-crew-side { position: relative; overflow: hidden; }
.zz-about-crew-main > .e-con-inner { position: relative; display: block !important; min-height: 640px; }
.zz-about-crew-side > .e-con-inner { display: grid !important; grid-template-rows: 1fr 1fr; gap: 16px !important; min-height: 640px; }
.zz-about-crew-image,
.zz-about-crew-image .elementor-widget-container,
.zz-about-crew-image img { width: 100% !important; height: 100% !important; }
.zz-about-crew-image img { object-fit: cover; }
.zz-about-crew-main .zz-about-crew-image { position: absolute !important; inset: 0; }
.zz-about-crew-caption { position: absolute; z-index: 2; bottom: 0; left: 0; padding: 25px 30px; background: var(--zz-ink); color: white; border-top: 4px solid var(--zz-yellow); text-transform: uppercase; }
.zz-about-crew-caption span { display: block; color: var(--zz-blue); font-size: .6rem; font-weight: 900; letter-spacing: .14em; }
.zz-about-crew-caption strong { display: block; margin-top: 7px; font: 900 1.8rem/1 var(--zz-display); }
.zz-about-capability.e-con { background: white; }
.zz-about-capability-grid > .e-con-inner { display: grid !important; grid-template-columns: .95fr 1.05fr !important; align-items: center !important; gap: 80px !important; }
.zz-about-capability-gallery > .e-con-inner { display: grid !important; grid-template-columns: 1.1fr .9fr; grid-template-rows: 250px 250px; gap: 12px !important; }
.zz-about-capability-image:first-child { grid-row: 1/3; }
.zz-about-capability-image .elementor-widget-container,
.zz-about-capability-image img { width: 100% !important; height: 100% !important; }
.zz-about-capability-image img { object-fit: cover; }

/* Contact page */
.zz-contact-approved-hero.e-con { width: 100% !important; max-width: none !important; overflow: hidden; background: radial-gradient(circle at 82% 20%,rgba(22,136,212,.23),transparent 31%),linear-gradient(126deg,#080a0d,#0d151d 70%,#071522); color: white; }
.zz-contact-approved-hero > .e-con-inner,
.zz-contact-expectations > .e-con-inner,
.zz-contact-prep > .e-con-inner,
.zz-contact-coverage > .e-con-inner,
.zz-contact-team > .e-con-inner { display: block !important; width: 100% !important; max-width: none !important; }
.zz-contact-approved-grid > .e-con-inner { min-height: 780px; display: grid !important; grid-template-columns: .82fr 1.18fr !important; align-items: center !important; gap: 72px !important; padding-block: 72px 82px; }
.zz-contact-approved-copy > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
.zz-contact-approved-copy h1.elementor-heading-title { color: white !important; font-size: clamp(4.1rem,6vw,6.4rem) !important; }
.zz-contact-approved-copy .zz-lede { color: #d1dce2; }
.zz-contact-details--dark { width: 100%; margin-top: 24px; border-color: #263842; background: #263842; }
.zz-contact-details--dark > * { min-height: 76px; padding: 18px 20px 18px 74px; background: #0b151c; color: white; position: relative; }
.zz-contact-details--dark > *::before { position: absolute; inset: 0 auto 0 0; width: 56px; display: grid; place-items: center; content: "↗"; background: #10232e; color: var(--zz-yellow); font: 900 1.3rem var(--zz-display); }
.zz-contact-details--dark strong { color: var(--zz-blue); }
.zz-contact-approved-form.e-con { padding: 48px !important; border-top: 6px solid var(--zz-yellow); box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.zz-contact-approved-form > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: stretch !important; }
.zz-contact-approved-form h2.elementor-heading-title { font-size: clamp(3rem,4.4vw,4.7rem) !important; }
.zz-contact-approved-form h2 em { color: var(--zz-blue-deep); }
.zz-contact-approved-form p { color: var(--zz-muted); }
.zz-contact-approved-form .zz-contact-form .elementor-button {
  border: 0 !important;
  background: var(--zz-yellow) !important;
  color: var(--zz-ink) !important;
  box-shadow: 7px 7px 0 var(--zz-blue) !important;
}
.zz-contact-approved-form .zz-contact-form .elementor-button:hover {
  background: white !important;
  transform: translate(-2px,-2px);
  box-shadow: 10px 10px 0 var(--zz-blue) !important;
}
.zz-contact-expectations.e-con,
.zz-contact-prep.e-con,
.zz-contact-coverage.e-con,
.zz-contact-team.e-con { width: 100% !important; max-width: none !important; padding-block: 104px !important; }
.zz-contact-expectations.e-con { background: var(--zz-paper); }
.zz-contact-expectations .zz-approved-process-title h2.elementor-heading-title { color: var(--zz-ink) !important; }
.zz-contact-expectations .zz-approved-process-title p { color: var(--zz-muted); }
.zz-contact-expect-grid > .e-con-inner { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 20px !important; margin-top: 50px; }
.zz-contact-expect-card.e-con { position: relative; min-height: 270px; padding: 36px !important; overflow: hidden; background: white; border-bottom: 4px solid var(--zz-blue); box-shadow: 0 12px 32px rgba(16,32,42,.08); }
.zz-contact-expect-card > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: flex-end !important; }
.zz-contact-expect-card span { position: absolute; top: 23px; right: 24px; color: #e4ebef; font: 900 4rem/.8 var(--zz-display); }
.zz-contact-expect-card h3.elementor-heading-title { font-size: 1.9rem !important; text-transform: uppercase; }
.zz-contact-expect-card p { color: var(--zz-muted); font-size: .82rem; }
.zz-contact-prep.e-con { background: white; }
.zz-contact-prep-grid > .e-con-inner { display: grid !important; grid-template-columns: 1.1fr .9fr !important; gap: 18px !important; }
.zz-contact-prep-image { min-height: 570px; }
.zz-contact-prep-image .elementor-widget-container,
.zz-contact-prep-image img { width: 100% !important; height: 100% !important; }
.zz-contact-prep-image img { object-fit: cover; }
.zz-contact-prep-copy.e-con { padding: 56px !important; justify-content: center; background: var(--zz-yellow); }
.zz-contact-prep-copy > .e-con-inner { display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: flex-start !important; }
.zz-contact-prep-copy h2.elementor-heading-title { font-size: clamp(3rem,4.5vw,4.9rem) !important; }
.zz-contact-prep-copy p { color: #2d3940; }
.zz-contact-prep-copy .zz-list-item { width: 100%; border-color: rgba(0,0,0,.18); background: transparent; }
.zz-contact-coverage.e-con { background: var(--zz-ink); color: white; }
.zz-contact-coverage h2.elementor-heading-title { color: white !important; }
.zz-contact-coverage .zz-copy-column p { color: #c3d0d6; }
.zz-contact-team.e-con { background: white; }
.zz-contact-team-grid > .e-con-inner { display: grid !important; grid-template-columns: .9fr 1.1fr !important; min-height: 440px; }
.zz-contact-team-image .elementor-widget-container,
.zz-contact-team-image img { width: 100% !important; height: 100% !important; }
.zz-contact-team-image img { object-fit: cover; }
.zz-contact-team-copy.e-con { padding: 52px !important; justify-content: center; background: #0c1b25; color: white; }
.zz-contact-team-copy > .e-con-inner { display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: flex-start !important; }
.zz-contact-team-copy h2.elementor-heading-title { color: white !important; font-size: clamp(2.7rem,4.1vw,4.25rem) !important; }
.zz-contact-team-copy p { color: #aebbc5; }

@media (max-width:1080px) {
  .zz-service-detail--story .zz-service-detail-grid > .e-con-inner,
  .zz-service-detail--options .zz-service-detail-grid > .e-con-inner,
  .zz-service-detail--feature .zz-service-detail-grid > .e-con-inner,
  .zz-service-detail--gallery .zz-service-detail-grid > .e-con-inner,
  .zz-service-detail--panel .zz-service-detail-grid > .e-con-inner,
  .zz-service-detail--yellow .zz-service-detail-grid > .e-con-inner,
	.zz-service-detail--text-only .zz-service-detail-grid > .e-con-inner,
  .zz-area-detail--story .zz-area-detail-grid > .e-con-inner,
  .zz-area-detail--dark .zz-area-detail-grid > .e-con-inner,
  .zz-area-detail--panel .zz-area-detail-grid > .e-con-inner { grid-template-columns: 1fr !important; grid-template-areas: "heading" "photo" "copy" !important; }
  .zz-service-detail-heading,
  .zz-area-detail-heading { grid-area: heading !important; }
  .zz-service-detail-image,
  .zz-area-detail-image { grid-area: photo !important; width: min(760px,100%); }
  .zz-service-detail-copy,
  .zz-area-detail-copy { grid-area: copy !important; }
	.zz-service-detail--text-only .zz-service-detail-heading { position: static; }
  .zz-approved-process-head > .e-con-inner,
  .zz-about-capability-grid > .e-con-inner,
  .zz-contact-approved-grid > .e-con-inner,
  .zz-contact-prep-grid > .e-con-inner,
  .zz-contact-team-grid > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-area-property-grid > .e-con-inner { grid-template-columns: 1fr 1fr !important; }
  .zz-services-directory-grid > .e-con-inner { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
  .zz-approved-section-head > .e-con-inner { grid-template-columns: 1fr !important; gap: 18px !important; }
  .zz-about-crew-gallery > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-about-crew-side > .e-con-inner { grid-template-columns: 1fr 1fr; grid-template-rows: 320px; min-height: 320px; }
  .zz-contact-approved-grid > .e-con-inner { padding-block: 70px 82px; }
}

@media (max-width:900px) {
  .zz-services-directory-grid > .e-con-inner { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .zz-approved-process-grid > .e-con-inner { grid-template-columns: repeat(2,minmax(0,1fr)) !important; row-gap: 54px; }
  .zz-approved-step.e-con { min-height: 190px; }
  .zz-approved-step:nth-child(2n) { border-right: 0; }
  .zz-about-values-grid > .e-con-inner { grid-template-columns: repeat(2,minmax(0,1fr)) !important; grid-template-rows: 300px 250px 250px; }
  .zz-about-value-card:first-child { grid-column: 1/-1; grid-row: auto; min-height: 300px; }
}

@media (max-width:720px) {
  .zz-interior-hero.e-con { padding-block: 38px 70px !important; }
  .zz-contact-approved-grid > .e-con-inner { padding-block: 38px 72px; }
  .zz-approved-hero-media.e-con,
  .zz-approved-hero-media > .e-con-inner { min-height: 390px; }
  .zz-approved-hero-bolt { top: -20px; left: -18px; width: 62px !important; }
  .zz-approved-hero-bolt img { width: 62px !important; }
  .zz-service-detail-image,
  .zz-service-detail--story .zz-service-detail-image,
  .zz-service-detail--options .zz-service-detail-image,
  .zz-service-detail--feature .zz-service-detail-image,
  .zz-service-detail--gallery .zz-service-detail-image,
  .zz-service-detail--panel .zz-service-detail-image,
  .zz-service-detail--yellow .zz-service-detail-image,
  .zz-area-detail-image { height: 360px; }
  .zz-service-detail--panel .zz-service-detail-copy,
  .zz-area-detail--panel .zz-area-detail-copy { padding: 27px 23px; }
  .zz-approved-process.e-con,
  .zz-approved-area-directory.e-con,
  .zz-area-properties.e-con,
  .zz-area-detail.e-con,
  .zz-about-story.e-con,
  .zz-about-values.e-con,
  .zz-about-crew.e-con,
  .zz-about-capability.e-con,
  .zz-contact-expectations.e-con,
  .zz-contact-prep.e-con,
  .zz-contact-coverage.e-con,
  .zz-contact-team.e-con { padding-block: 76px !important; }
  .zz-approved-process-grid > .e-con-inner,
  .zz-contact-expect-grid > .e-con-inner { grid-template-columns: 1fr !important; row-gap: 22px !important; }
  .zz-approved-process-grid > .e-con-inner { margin-top: 52px; border-top: 0; }
  .zz-approved-step.e-con { min-height: 0; padding: 24px 20px 24px 78px !important; border-top: 1px solid #293944; border-right: 0; }
  .zz-approved-step > .e-con-inner { min-height: 84px; justify-content: center !important; gap: 7px; }
  .zz-approved-step-number,
  .zz-approved-step > .e-con-inner > .elementor-widget-text-editor:first-child { position: absolute !important; top: 4px; left: -62px; width: 40px !important; margin: 0 !important; }
  .zz-approved-step-number .elementor-widget-container > span,
  .zz-approved-step > .e-con-inner > .elementor-widget-text-editor:first-child .elementor-widget-container > span { width: 40px; height: 40px; margin: 0; box-shadow: 0 0 0 6px var(--zz-ink); }
  .zz-approved-step h3.elementor-heading-title { margin: 0 !important; font-size: 1.35rem !important; line-height: 1.05 !important; }
  .zz-approved-step p { max-width: none; margin: 0; font-size: .9rem; line-height: 1.55; }
  .zz-related-card--image.e-con,
  .zz-related-card--image > .e-con-inner,
  .zz-hub-service-card.e-con,
  .zz-hub-service-card > .e-con-inner { min-height: 380px; }
  .zz-services-directory-grid > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-services-directory-grid .zz-hub-service-card.e-con,
  .zz-services-directory-grid .zz-hub-service-card > .e-con-inner { min-height: 410px; }
  .zz-related-card-body.e-con { right: 24px !important; bottom: 24px !important; left: 24px !important; width: calc(100% - 48px) !important; max-width: calc(100% - 48px) !important; }
  .zz-area-property-copy-widget { right: 24px !important; bottom: 26px !important; left: 24px !important; width: calc(100% - 48px) !important; max-width: calc(100% - 48px) !important; }
  .zz-area-property-grid > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-area-property-card.e-con,
  .zz-area-property-card:nth-child(2) { min-height: 440px; }
  .zz-area-local-proof.e-con,
  .zz-area-local-proof-inner,
  .zz-area-local-proof-inner > .e-con-inner { min-height: 520px; }
  .zz-area-local-proof::after { background: linear-gradient(90deg,rgba(5,10,13,.95),rgba(5,10,13,.55)); }
  .zz-area-place { font-size: 6rem; }
  .zz-about-story.e-con { padding: 76px 0 86px !important; }
  .zz-about-story-panel.e-con { padding: 52px 28px 44px !important; }
  .zz-about-story-principles { grid-template-columns: 1fr; }
  .zz-about-story-principles span { padding: 18px 10px; border-right: 0; border-bottom: 1px solid var(--zz-line); }
  .zz-about-story-principles span:last-child { border-bottom: 0; }
  .zz-about-values-grid > .e-con-inner { grid-template-columns: 1fr !important; grid-template-rows: auto; }
  .zz-about-value-card.e-con { min-height: 240px; }
  .zz-about-value-card:first-child { grid-row: auto; min-height: 320px; }
  .zz-about-crew-main > .e-con-inner { min-height: 430px; }
  .zz-about-crew-side > .e-con-inner { grid-template-columns: 1fr; grid-template-rows: 290px 290px; min-height: 596px; }
  .zz-about-capability-gallery > .e-con-inner { grid-template-columns: 1fr; grid-template-rows: repeat(3,310px); }
  .zz-about-capability-image:first-child { grid-row: auto; }
  .zz-contact-approved-grid > .e-con-inner { min-height: auto; padding-block: 58px 72px; gap: 52px !important; }
  .zz-contact-approved-form.e-con { padding: 32px 25px !important; }
  .zz-contact-prep-image { min-height: 420px; }
  .zz-contact-prep-copy.e-con,
  .zz-contact-team-copy.e-con { padding: 35px 28px !important; }
  .zz-contact-team-image { min-height: 380px; }
}

/* Service-page editorial system — late cascade safeguards.
   Elementor's generated .e-con.e-flex rule loads with greater specificity
   than ordinary container selectors. Keep these rules at the end so the
   content-led service layouts remain grids on the live site. */
.zz-service-detail--media .zz-service-media-grid.e-con.e-flex > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0,1.03fr) minmax(360px,.97fr) !important;
  align-items: stretch !important;
  gap: clamp(40px,5.5vw,72px) !important;
}
.zz-service-detail--media.e-con { padding-block: clamp(70px,6vw,84px) !important; }
.zz-service-detail--media .zz-service-detail-content.e-con.e-flex > .e-con-inner {
  height: 100%;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: flex-start !important;
}
.zz-service-detail--media .zz-service-detail-image {
  min-height: 400px !important;
  height: 100% !important;
  max-height: 560px;
}

.zz-service-detail--card-grid.e-con { padding-block: clamp(68px,5.5vw,80px) !important; }
.zz-service-detail--card-grid .zz-service-card-grid.e-con.e-flex > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(315px,.76fr) minmax(0,1.24fr) !important;
  grid-template-areas: "heading copy" "photo copy" !important;
  grid-template-rows: auto minmax(270px,1fr) !important;
  align-items: start !important;
  gap: 26px clamp(38px,5vw,68px) !important;
}
.zz-service-detail--card-grid .zz-service-detail-heading {
  grid-area: heading !important;
  align-self: end;
  max-width: 480px;
}
.zz-service-detail--card-grid .zz-service-detail-heading h2.elementor-heading-title {
  max-width: 480px;
  font-size: clamp(2.7rem,3.9vw,4.2rem) !important;
  line-height: .91 !important;
}
.zz-service-detail--card-grid .zz-service-detail-image {
  grid-area: photo !important;
  align-self: stretch;
  width: 100% !important;
  min-height: 285px !important;
  height: 100% !important;
  max-height: none;
}
.zz-service-detail--card-grid .zz-service-detail-copy {
  grid-area: copy !important;
  align-self: center;
}
.zz-service-detail--card-grid .zz-feature-cards article { min-height: 150px; }

.zz-service-detail--text-band .zz-service-text-band-grid.e-con.e-flex > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(300px,.82fr) minmax(0,1.18fr) !important;
  align-items: center !important;
  gap: clamp(40px,6vw,82px) !important;
}
.zz-service-detail--text-band.e-con { padding-block: clamp(58px,5vw,72px) !important; }

.zz-service-inline-cta .zz-service-inline-cta-grid.e-con.e-flex > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto !important;
  align-items: center !important;
  gap: 44px !important;
}
.zz-service-faq .zz-faq-grid.e-con.e-flex > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr) !important;
  align-items: start !important;
  gap: clamp(48px,7vw,92px) !important;
}
.zz-service-faq .zz-accordion .elementor-accordion-item:nth-child(n+5) { display: block !important; }

@media (max-width:900px) {
  .zz-service-detail--media .zz-service-media-grid.e-con.e-flex > .e-con-inner,
  .zz-service-detail--card-grid .zz-service-card-grid.e-con.e-flex > .e-con-inner,
  .zz-service-detail--text-band .zz-service-text-band-grid.e-con.e-flex > .e-con-inner,
  .zz-service-inline-cta .zz-service-inline-cta-grid.e-con.e-flex > .e-con-inner,
  .zz-service-faq .zz-faq-grid.e-con.e-flex > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  .zz-service-detail--card-grid .zz-service-card-grid.e-con.e-flex > .e-con-inner {
    grid-template-areas: "heading" "photo" "copy" !important;
    grid-template-rows: auto !important;
  }
  .zz-service-detail--card-grid .zz-service-detail-heading,
  .zz-service-detail--card-grid .zz-service-detail-heading h2.elementor-heading-title { max-width: 760px; }
  .zz-service-detail--card-grid .zz-service-detail-image {
    min-height: 320px !important;
    height: 320px !important;
    max-height: 320px;
  }
  .zz-service-detail--media .zz-service-detail-image {
    min-height: 360px !important;
    height: 360px !important;
    max-height: 360px;
  }
}

@media (max-width:720px) {
  .zz-service-detail--media.e-con,
  .zz-service-detail--card-grid.e-con,
  .zz-service-faq.e-con { padding-block: 62px !important; }
  .zz-service-detail--card-grid .zz-service-card-grid.e-con.e-flex > .e-con-inner,
  .zz-service-detail--media .zz-service-media-grid.e-con.e-flex > .e-con-inner { gap: 25px !important; }
  .zz-service-detail--card-grid .zz-service-detail-image,
  .zz-service-detail--media .zz-service-detail-image {
    min-height: 270px !important;
    height: 270px !important;
    max-height: 270px;
  }
  .zz-service-detail--card-grid .zz-service-detail-heading h2.elementor-heading-title {
    font-size: clamp(2.55rem,11.5vw,3.45rem) !important;
  }
  .zz-service-detail--card-grid .zz-feature-cards article { min-height: 0; }
  .zz-service-inline-cta .zz-service-inline-cta-grid.e-con.e-flex > .e-con-inner { gap: 26px !important; }
}

/* Compact service card grids — v1.3.5
   Keep the headline, supporting image and content in one deliberate row.
   Dense service lists use the full width below a shallow lead band so a long
   card collection does not force an unrelated portrait-style image to grow. */
@media (min-width:901px) {
  .zz-service-detail--card-grid.e-con {
    padding-block: clamp(52px,4.5vw,66px) !important;
  }
  .zz-service-detail--card-grid .zz-service-card-grid.e-con.e-flex > .e-con-inner {
    grid-template-columns: minmax(220px,.68fr) minmax(240px,.76fr) minmax(0,1.56fr) !important;
    grid-template-areas: "heading photo copy" !important;
    grid-template-rows: auto !important;
    align-items: center !important;
    gap: clamp(28px,3.5vw,48px) !important;
  }
  .zz-service-detail--card-grid .zz-service-detail-heading {
    align-self: center !important;
    max-width: 340px;
  }
  .zz-service-detail--card-grid .zz-service-detail-heading h2.elementor-heading-title {
    max-width: 340px;
    font-size: clamp(2.55rem,3.2vw,3.65rem) !important;
  }
  .zz-service-detail--card-grid .zz-service-detail-image {
    align-self: center !important;
    min-height: 280px !important;
    height: clamp(280px,25vw,350px) !important;
    max-height: 350px !important;
  }
  .zz-service-detail--card-grid .zz-service-detail-copy {
    align-self: center !important;
  }
  .zz-service-detail--card-grid .zz-feature-cards article {
    min-height: 132px;
    padding: 20px 19px;
  }
  .zz-service-detail--card-grid .zz-service-checklist p {
    min-height: 64px;
    padding: 14px 16px;
  }

  .zz-service-detail--dense-grid .zz-service-card-grid.e-con.e-flex > .e-con-inner,
  .zz-service-detail--card-grid:has(.zz-feature-cards article:nth-child(4)) .zz-service-card-grid.e-con.e-flex > .e-con-inner,
  .zz-service-detail--card-grid:has(.zz-service-checklist p:nth-child(4)) .zz-service-card-grid.e-con.e-flex > .e-con-inner {
    grid-template-columns: minmax(0,1.45fr) minmax(260px,.55fr) !important;
    grid-template-areas: "heading photo" "copy copy" !important;
    gap: 24px clamp(34px,4vw,58px) !important;
  }
  .zz-service-detail--dense-grid .zz-service-detail-heading,
  .zz-service-detail--card-grid:has(.zz-feature-cards article:nth-child(4)) .zz-service-detail-heading,
  .zz-service-detail--card-grid:has(.zz-service-checklist p:nth-child(4)) .zz-service-detail-heading {
    max-width: 760px;
  }
  .zz-service-detail--dense-grid .zz-service-detail-heading h2.elementor-heading-title,
  .zz-service-detail--card-grid:has(.zz-feature-cards article:nth-child(4)) .zz-service-detail-heading h2.elementor-heading-title,
  .zz-service-detail--card-grid:has(.zz-service-checklist p:nth-child(4)) .zz-service-detail-heading h2.elementor-heading-title {
    max-width: 760px;
    font-size: clamp(2.7rem,3.8vw,4.15rem) !important;
  }
  .zz-service-detail--dense-grid .zz-service-detail-image,
  .zz-service-detail--card-grid:has(.zz-feature-cards article:nth-child(4)) .zz-service-detail-image,
  .zz-service-detail--card-grid:has(.zz-service-checklist p:nth-child(4)) .zz-service-detail-image {
    min-height: 210px !important;
    height: 210px !important;
    max-height: 210px !important;
  }
  .zz-service-detail--dense-grid .zz-feature-cards,
  .zz-service-detail--card-grid:has(.zz-feature-cards article:nth-child(4)) .zz-feature-cards {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
  .zz-service-detail--dense-grid .zz-service-checklist,
  .zz-service-detail--card-grid:has(.zz-service-checklist p:nth-child(4)) .zz-service-checklist {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }

  .zz-service-detail--proof-grid .zz-service-card-grid.e-con.e-flex > .e-con-inner {
    grid-template-columns: minmax(220px,.7fr) minmax(240px,.78fr) minmax(0,1.52fr) !important;
    grid-template-areas: "heading photo copy" !important;
  }
  .zz-service-detail--long-heading-grid .zz-service-card-grid.e-con.e-flex > .e-con-inner {
    grid-template-columns: minmax(300px,.82fr) minmax(0,1.18fr) !important;
    grid-template-areas: "heading heading" "photo copy" !important;
    gap: 24px clamp(36px,5vw,66px) !important;
  }
  .zz-service-detail--long-heading-grid .zz-service-detail-heading,
  .zz-service-detail--long-heading-grid .zz-service-detail-heading h2.elementor-heading-title {
    max-width: 1000px;
  }
  .zz-service-detail--long-heading-grid .zz-service-detail-image {
    min-height: 280px !important;
    height: 300px !important;
    max-height: 300px !important;
  }
  .zz-service-detail--long-heading-grid .zz-feature-cards,
  .zz-service-detail--long-heading-grid .zz-service-checklist {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}

@media (max-width:900px) {
  .zz-service-detail--dense-grid .zz-service-card-grid.e-con.e-flex > .e-con-inner,
  .zz-service-detail--proof-grid .zz-service-card-grid.e-con.e-flex > .e-con-inner,
  .zz-service-detail--long-heading-grid .zz-service-card-grid.e-con.e-flex > .e-con-inner {
    grid-template-columns: 1fr !important;
    grid-template-areas: "heading" "photo" "copy" !important;
  }
}

/* Typography and spacing QA — v1.3.3
   Barlow Condensed has unusually tall caps and numerals. These rules reserve
   enough vertical room for the glyphs and prevent Elementor widget wrappers
   from collapsing around short display labels. */
.zz-section .elementor-heading-title {
  overflow: visible !important;
  text-rendering: geometricPrecision;
}
.zz-service-hero-copy h1.elementor-heading-title {
  line-height: .91 !important;
  padding-block: .03em .09em;
}
.zz-service-detail--media .zz-service-detail-heading h2.elementor-heading-title,
.zz-service-detail--card-grid .zz-service-detail-heading h2.elementor-heading-title,
.zz-service-detail--text-band .zz-service-detail-heading h2.elementor-heading-title,
.zz-service-faq h2.elementor-heading-title,
.zz-approved-process-title h2.elementor-heading-title {
  line-height: .97 !important;
  padding-bottom: .09em;
}
.zz-process-card.e-con,
.zz-approved-step.e-con { min-width: 0; }
.zz-process-card > .e-con-inner,
.zz-approved-step > .e-con-inner { overflow: visible !important; }
.zz-process-card.e-con {
  min-height: 160px !important;
  padding: 0 !important;
}
.zz-process-card > .e-con-inner {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 56px minmax(0,1fr) !important;
  grid-template-rows: auto 1fr !important;
  align-content: start !important;
  align-items: start !important;
  column-gap: 16px !important;
  row-gap: 8px !important;
  padding: 74px 0 0 !important;
}
.zz-process-card > .e-con-inner > .elementor-element:first-child {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
}
.zz-process-card > .e-con-inner > .elementor-element:nth-child(2) {
  grid-column: 2 !important;
  grid-row: 1 !important;
}
.zz-process-card > .e-con-inner > .elementor-element:nth-child(3) {
  grid-column: 2 !important;
  grid-row: 2 !important;
}
.zz-process-number {
  position: static !important;
  inset: auto !important;
}
.zz-process-card > .e-con-inner > .elementor-element,
.zz-approved-step > .e-con-inner > .elementor-element {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
.zz-process-card h3.elementor-heading-title,
.zz-approved-step h3.elementor-heading-title {
  line-height: 1.12 !important;
  padding-block: .05em .12em !important;
  overflow-wrap: normal;
  word-break: normal;
}
.zz-process-number,
.zz-approved-step-number .elementor-widget-container > span,
.zz-approved-step > .e-con-inner > .elementor-widget-text-editor:first-child .elementor-widget-container > span {
  line-height: 1.15 !important;
  padding-top: .08em;
}
.zz-service-signal-item > .e-con-inner { min-height: 128px; padding-block: 30px !important; }
.zz-service-signal-item .elementor-widget-container {
  align-items: center !important;
  overflow: visible !important;
}
.zz-service-signal-item span {
  flex: 0 0 auto;
  line-height: 1.15 !important;
  padding-block: .08em .14em;
}
.zz-service-signal-item strong {
  line-height: 1.16 !important;
  padding-block: .08em .14em;
  overflow: visible !important;
}
.zz-service-inline-cta.e-con {
  display: flex !important;
  width: 100% !important;
  min-height: 340px !important;
  padding-block: 92px !important;
  background-color: #1688d4 !important;
  background-image: linear-gradient(110deg,#1688d4,#5dc0ff) !important;
}
.zz-service-inline-cta h2.elementor-heading-title {
  color: #fff !important;
  line-height: .98 !important;
  padding-bottom: .08em;
}
.zz-service-inline-cta-copy p { margin-top: 18px; color: #eaf5fb !important; }

@media (max-width:900px) {
  .zz-process-grid > .e-con-inner { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .zz-process-card.e-con { min-height: 150px !important; }
  .zz-process-card > .e-con-inner { padding-top: 20px !important; }
  .zz-service-signal-item > .e-con-inner { min-height: 112px; padding-block: 25px !important; }
}

@media (max-width:720px) {
  .zz-service-hero-copy h1.elementor-heading-title,
  .zz-service-detail--media .zz-service-detail-heading h2.elementor-heading-title,
  .zz-service-detail--card-grid .zz-service-detail-heading h2.elementor-heading-title,
  .zz-service-detail--text-band .zz-service-detail-heading h2.elementor-heading-title,
  .zz-service-faq h2.elementor-heading-title,
  .zz-approved-process-title h2.elementor-heading-title {
    font-size: clamp(2.3rem,10.4vw,3.2rem) !important;
    line-height: 1 !important;
  }
  .zz-process-grid > .e-con-inner { grid-template-columns: 1fr !important; }
  .zz-process-card.e-con { min-height: 0 !important; padding: 0 !important; }
  .zz-process-card > .e-con-inner { padding: 18px 0 !important; }
  .zz-service-signal-item > .e-con-inner { min-height: 104px; padding: 24px 22px !important; }
  .zz-service-inline-cta.e-con { min-height: 300px !important; padding-block: 72px !important; }
}
